Archive for January, 2016

And what’s going on?

Friday, January 1st, 2016

Let me try to explain. I don’t know that I really can, but you all know I’m lousy at keeping secrets, and I’m going to take a stab at it.

$person, I’ve been talking with you every day for years. One big problem I have is I don’t know if I’m talking to a copy of you, or the real you. Or even if that distinction makes *any* sense. What you tell me is that I’m talking to you in the future – when we all know better how to be who we really are. That fits the data.

I have seen more than one world during my time on Earth. I have seen a world where people rollerblade in the street, completely secure in the knowledge no car will hit them – a world where there are no locks, no passwords, nor any need for them. A world where love won over fear. I’ve seen this. I’ve seen the people – so beautiful, so healthy, so happy. I’ve danced with them and skated with them. I don’t know what makes the transition happen, other than it seems to involve my mental headspace in some way. And then I’ve seen this. A world where social media seems to have replaced being social. A world where the news constantly tells us of wars and gunshots fired and bad decisions made because of money.

My gut feeling is both of them are real. I’m a musician, see, and I understand about multitrack decks. And I also understand that there’s no reason to think a three dimensional reality wouldn’t fit in a multitrack deck. You’d just have to have a really really big one. (Big in terms of bytes stored)

I fell in love with you the minute I met you. This isn’t just true of you. There’s a LOT of people out there I fell in love with the minute I met. If you could see my office wall, you would see the pictures of them. But we live in a world that preaches fear. Well, I don’t honestly know where you live.. but you sure act like you live in a world where fear won. And I know I did, or I’d be recording albums instead of writing commissions systems. And in fear world, we do stupid things. Things that don’t work very well. Like not being able to tell people how we feel about them.

When you knew me as a teen I was extrordinarily screwed up. Now I’m just somewhat screwed up, and forever am chasing being a better friend and lover and dreamer. I keep persuing personal growth, but I don’t have any good way to measure success. I do, however, have a good way to measure failure. Showing up in court and being told “I think if you talk to me in the next two years you should go to jail”, that’s failure. Not sure which of us it’s indicative of failure in. Used to think I knew every failure was me. No longer so sure about that.

Now, one mental model I use for handling all this is to think that I’m a very big neural network, and that part of my neural network is the person that’s on the ride, experiencing reality, and part of it is the glue that connects me to the world I’m in. And it’s entirely possible that glue is faulty. What I saw, might not have happened, might have happened, or might have happened entirely differently. Because the you that I talk to using the mental equivalent of texting (this may be prayer, but I wouldn’t want to bet on it) tells me things like ‘Let me in’ and ‘Come home’.

Fuck if I know where home is at this point, or how I would get there.

As far as not talking to you out there, I do the best I can. I think it’s a stupid request, I think you’re being blind, but I also think it’s a request you should be free to make, and one I should comply with. But my mind is broken. Occasionally it glitches and suddenly I’m on a different track’s memories even though I’m still in this track. And I REMEMBER! We’re not supposed to have to live afraid. We did so much better once. And I keep trying to light the fuse.. leave the keys in the ignition, leave the doors unlocked, trust and hope the others trust too.

What split me?

Friday, January 1st, 2016

So, I have multiple personalities. Blame never really helped anyone, but I’m really curious what happened to me to make this true.

1) My inability to say no resulting in my parents not recognizing I was refusing their religion. I tried to say no, but I’m not that great at it now and I was really bad at it then. I did tell them I wasn’t sure I was ready for this. They essentually said that I had to. Now, at this point I know the right thing to do – Kids, if someone does this to you, explain to anyone who will listen why you’re not ready for it. Walk down to the center of the building, grab the mic, and start talking. You have just as much right to be talking as the preacher – if he’s trying to force the religion into your mind, you have MORE right than he does. Your mind belongs to you. You get to choose the software that runs on it.

2) My sister’s attitude towards me. I don’t know how many of my memories are viable, so I don’t know if remembering her punching me in the stomach, pulling my hair, taking my things, criticizing me in a carefully crafted tone, etc are all real. But I do know that my impression is she hates me and wants me to hurt, and is quite willing to use all her skills to make that happen.

3) School. In general, I find Earth’s schools fatally flawed for my type of cat. The best way for a person like me to learn is to be given access to information and left alone. Grading me does bad things to my self-image and even worse things to my feelings about you. Telling me what I should learn when is just plain selfish.

4) Whatever $thing I can’t remember that makes sexual contact with males unpleasant and the idea of being on the receiving end of anal sex terrifying. I remember finding both boys and girls attractive at one point. Something happened to me. I am not sure I *want* to know what.

5) My mother’s extremely screwed up attitude about sex. I’ll just leave that there. Don’t be so afraid of your children doing what they naturally are going to do, what they should do, that you send hardcore negative emotions their way and are hypercritical of them for cuddling with one of their friends and listening to music.

One more thing..

Friday, January 1st, 2016

My best theory at the moment is that God is *us*. That we built this universe, and that we’re in fact inside some sort of hypervised experience. However, if I’m wrong, I challenge God: Come down here, in person – as long as you don’t use weapons on us I am absolutely fine with you being totally invulnerable – and give us a religion that doesn’t suck.

I should warn you my standards for ‘doesn’t suck’ are high. If you can read my mind (and you’re welcome to, whoever you are, if you have the tech, please do!) you know how I define heaven. The heaven in both major world religions is *pathetic*. Given access to a big computer system connected to my mind and infinite time, I could do so much better. And I’m one tiny li’l inconsequential dude.

I think it enormously telling that I get a lot more out of going to a church if I don’t speak the language.

But what about me?

Friday, January 1st, 2016

One thing that’s really frustrating for me is that I don’t feel like my friends are pulling their weight for me as much as I am pulling it for them. I paid two people’s rent this month. And I certainly don’t want anyone getting evicted. But I would like some idea that my friends are doing *something* to further *my* dreams:

Worldwide goals:

1) Everything for everyone – a end to money as a limiting factor in the lives of people
2) A end to abuse of authority and power. No more parents breaking their children. No more cops shooting citizens. No more politicians starting wars.
3) A end to irrational fear – certainly not a series of systems that perpetuate it, which is what we have now.

Personal goals:

1) Real life friendship with $person
2) Music career
3) Lucid dreaming, of sufficient quality to be able to experience things like controlled flight with accelerator data (Look, when I go into a dive, I want to FEEL it, caprice?)

Friday, January 1st, 2016

Like Kirk, I don’t really believe in the no-win scenario. I appear to be in a couple of them (my desire to be real-life friends with $person and my desire for a music career without sacrificing quality of life) but I also tend to remind myself that I’m in the middle of the ride – that both of them appear no-win right now doesn’t mean to give up, it just means I haven’t figured out everything I need to know.

I’m trying to master the art of *almost* going crazy. Because there definitely is something special that happens when I get my mind up to wide-open road speeds that is worthy of having – every time I do it, I get more capacity, mental-wise. But there’s some point at which it starts shaking like a unbalanced tire, and then Bad Things Happen. ™ If nothing else, I have to think that time spent in a blackout is not exactly productive, and there’s no doubt that I push $person further away whenever I’m in that state, and I can’t run a multitrack deck to save my life, because I lose the ability to easily see cause and effect and Earth’s tech is still too buggy to be relied on to Just Work.

My current thinking is the goal is to slam the throttle up, and then back down as I come over the top. I think using seroquel every day is definitely the wrong use of the drug – like all sleeping pills, it loses control authority. So the challenge is to treat it like it’s a addiction – as soon as I get to where I *need* to use it every day to sleep, I need to be fighting it and trying my hardest to get off it. Then once I’m ‘clean’, wait for the spool up (currently happens twice a year) and then use seroquel scaled to my current clock speed to make sure I still get sleep.

I would dearly love it if I could trust Earth’s health care system, but so far it hasn’t given me *any* reason to think that I can and has given me a number of reasons to think I can’t. Sometimes I think this planet is deliberately cracked in a whole bunch of ways just to teach us how not to.

I know what I would build, if I were in charge of mental health. Because it’s so obvious to me, and I don’t know nearly as much as the powers that be, I have to suspect that they don’t want cures. For whatever reason, they like seeing people hurt. I hate them for it, and wish I could take away their power over me. If anyone is curious:

Artificial Neural Network + Trans-cranial electromagnetic induction + FMRI = win.

How to write really good code

Friday, January 1st, 2016

1) Test *every single line*. I generally execute whatever I’m writing about once every 2-3 lines of code, once I’ve got the skeleton up. If you can’t do this quickly, change your workflow so you can.

2) Use human-language function names, variable names, method names, and class names. If a loop won’t fit on a standard IDE screen, use a human language iterator name instead of i.

3) If you find yourself cutting and pasting code more than once, use a method or a function.

4) If you’re not sure exactly how something is going to play out (like a regular expression, library system call, etc) create a very small program that only tests the way you are using it. This will encourage you to test out the possibilities involved more thoroughly, and once you get used to doing it it can be a very fast thing to do.

5) In #4, deliberately create bad data. Pass in empty strings, negative numbers, nulls, strings with SQL injection in them, strings that are too long, email addresses with no @ sign, and the like.

6) If you have a try {} catch {} – make sure you do something useful in the catch. If you need to break this rule (and occasionally you will) write a very descriptive comment as to why.

7) Know when you’re not in the headspace to code. Don’t try to program when you’re not capable of simultaneously seeing things as black and white and as shades of grey. Only you will know which emotions and thoughts make you write bad code – but in general, if you’re not in the place to program, don’t try. The rest of the team thanks you. Coding is the very essence of explaining rational thought about a subject in very very small steps, so if you’re not thinking rationally, you’re not going to write good code.

8) If you’re working on a very big project (20k+ lines), try to do all your developing in little testbed programs (as in #4) until you’ve got it working completely correctly. It is much faster to build and run small programs, and you also stand a much better chance of not stepping on someone else’s work

9) Use source code control. Check in early and often.

10) If you have a group of related data (for example, information about a customer), use a class. Even if it’s just carrying data – later you may find reasons to add methods to it. There’s a fine line to be walked here, however. You don’t want to use a class for the customer’s phone number’s format string. Usually.

11) Once you know and understand how to write code, you will see that a lot of the things your teachers tell you are basic rules are meant to be broken, occasionally. When you do break them, however, comment on which one you broke and why.

12) Build quality stuff. You never know when you will have to maintain it.

13) Refactor and rewrite. You will often get much better results the second and third time you write the same function. I actually prefer to write most things in a prototyping language (php, perl) before writing them in a compiled binary language, and I think switching languages also helps me write better code.

14) I generally write out psuedocode in human-readable language (english, in my case) before I start programming. This encourages me as a developer to think through what I’m trying to do before I start thinking about breaking it down into if/then/else

15) Every function should have a sane default path through it. switch() is a very powerful and useful tool because it encourages this. Sometimes the sane default thing to do is throw a exception.

16) For every variable that comes from ‘the outside world’ (a human out there on the net, a A/D converter, etc) make sure your code can cleanly handle completely unexpected values. What would happen if there were special characters? If it’s a signed type, did you handle negative? If it’s a nullable type, do you handle null?

17) While you’re doing #1, notice where the ‘pain points’ are. Use a profiler, or just capture high resolution timestamps. Figure out what ran slow and how you can make it run faster. This can be a fine art – for example, knowing which types of data sort will run better on the database engine and which will run better natively in your code takes quite some time to master.

18) When refactoring – if the source code is getting shorter, you’re doing it right.

19) Beware of excess convolution. Occasionally you will find you have done something silly like failed to initialize a useful variable set early in the process and instead calculated the value for that variable all over a set of nested function calls. If it feels confusing reading it, you probably need to rethink your approach.

20) Above all, have fun. Building really high quality things can be a great joy, if you let it. Remember to keep a positive attitude, and always work on having more patience. If you find yourself getting angry, you are probably not thinking rationally, see #7.

21) Remember, *nothing is set in stone*. One of the joys of programming in this era is you can go back and change your mistakes.