Refocusing

When you begin to worry, go find something to do. Get busy being a blessing to someone; do something fruitful. Talking about your problem or sitting alone, thinking about it, does no good; it serves only to make you miserable. Above all else, remember that worrying is totally useless. Worrying will not solve your problem.

Joyce Meyer

Worrying solves nothing.

I know that, but lately, that is all that I have been doing and doing a bad job pretending I am not worrying, not stressed, and not hopeless. It has led to many panic attacks, more loneliness, and more pain. It seems to be negatively affecting my only real relationship. I have a few options; a few of them are appealing but refocusing myself to be more positive and busier. It will not change much, but perhaps it will decrease the anxiety, especially when I wake. I sleep so little lately, sometimes less than an hour, but even that is a wonderful reprieve.

The only time I am happy lately is when I am asleep. Surprisingly, I am not having any bad dreams. They are just wonderful dreams of what I wish for. When I wake, it takes a second or two for the anxiety to come flooding back in. These dreams feel so real because my mind is having difficulty figuring out what is real and what is not.

If I did not have photos of recent activities, I would be questioning if that was real. It would be easier if it were all a delusion.

I know my paranoia is bad, so I make myself quiet to keep it from showing. I am not sure I am succeeding or if it is all that helpful. Maybe everything I worry about is real. I just wish I knew because the unknown is very difficult to deal with. Even if I got outside confirmation that my worst fears were real, I could deal with it so much easier.

If I thought it would not end in getting committed, I would ask my doctor if she could put me in a coma. Maybe just before Halloween since that is the only holiday I enjoy. Yeah, she won’t, and I don’t know if I could dream, and with my luck, I would have nightmares. Maybe I could let my mind go and make myself believe that everything is fine and my dreams came true. I would not return to reality if I did that. Okay, those are not real or productive solutions, so I have to focus.

What I need to do is stay busier. Recent physical injuries make it much more difficult to achieve that. A 30-minute bike ride makes my knees scream in pain lately, but at least I start physical therapy tomorrow. Hopefully, it will help a little with a degenerative condition plus a tear that cannot likely be operated on without causing more pain. I can still walk and have been walking for 3-4 hours at a time. The problem with walking is that it doesn’t do a thing to calm my mind. I have a lot of work in my garden, but it is impossible to do everything I need to without causing more damage.

I am trying to un-paralyze my mind without further damaging my broken body.

There are plenty of things that I can do to keep my mind busy and have some amount of fun. I need to post more fun and positive essays, and there are lots of things I can do that will make it easier. I have no reason to wallow in misery; I hope I do not, but I am doing just that.

I really need to get seriously back into programming. That can keep my mind occupied for many hours at a time when I think of nothing else. It would also improve this journal with better articles. I have been meaning to write a blasphemous article about how Erlang is object-oriented (OO) programming done right.

Java, C++, Python, and many others miss the point of OO programming (it is all about message passing!!!). They turn it into some bizarre, complicated religion cult. Smalltalk, of course, and Ruby are the only OO languages I am aware of that didn’t miss the point. Ruby also has fairly strong functional features. The Smalltalk language was developed by the guy who coined the term, and Ruby took a lot of inspiration from Smalltalk.

I am fully aware that Erlang is not an OO language. Its main developer Joe Armstrong (RIP), would very kindly disagree. The processes and communication between them in Erlang perfectly model the idea behind OO. I think learning Erlang would greatly improve OO programmers, especially the OO-fetishists that work in Java.

That might be a fun article to write. It would at least get some bombs thrown my way in the comments.

At the very least, go learn Smalltalk or Ruby.

Erlang is so great that it even spawned two movies.

Speaking of Java, I could write about how the language only supports pass-by-value. It makes me nerd rage to read all the misconceptions online.

I want to start poking around Kotlin and report my findings. It appears to be a language that finally makes the Java platform tolerable. Yes, I am aware of JRuby, Scala, Clojure, and others, but they all have their issues interacting with the Java environment. Even on Android, Kotlin is supposed to make it so much less painful, which is a miracle if true. My initial look at it seemed like it had most, if not all the power of Ruby, even if it doesn’t have quite as nice syntax and some downright annoying syntax. It seems like it lacks some of Ruby’s downsides. That is very exciting!

Elixir is another language I want to get more into. It runs on the highly reliable and rock-solid Erlang/OTP platform while getting rid of some of the pain of Erlang, like adding great string support. Plus, it gets closer to the power of Lisp macros than Ruby, which tickles my brain. It seems that you really do need to write your code as an abstract syntax tree to get a true homoiconic language.

Languages that get close to being homoiconic, like Elixir and Ruby without the dizzying look of Lisp code, are a big win in my book.

Don’t worry that I will write yet another ‘PHP sucks’ article. That language is not even worth this sentence. It would be like writing about how water is wet. There are millions of such articles if you need some programmer entertainment. There may be random PHP potshots, however.

Most of all, I want to get back into my projects and start new ones.

I have an extremely private, narrowly focused social-media-like application that I need to work on. My family uses to stay in contact, well used to until I pretty much stopped working on it. It was way more than just social media stuff, and I could make it more general. That way it could easily be used for all sorts of groups that want to stay off information sucking services, like Facebook. It did start to get a little complex for a single person, but it might still be manageable. I am not very reliable for the foreseeable future. It is mostly Ruby with a touch of C and Python on the backend and way too much frontend JavaScript. Some of the Ruby code would probably be better suited to be rewritten in Elixir, especially the chat and games functions.

I have another project I did for a graduate computer architecture course that Kotlin would be perfect for. The instructor created a simple language and compiler for learning to write code that ran across multiple processors; it was more of an external DSL written in C than a standalone language.

My task was to write a virtual machine to run the compiled programs. It worked well. I thought the language was perfectly simple. Sadly, it was very limited. The program either successfully ran, or it did not. I thought it would be much more useful with a visualizer to step through the code.

Banging on code until it works properly is not very educational.

I suggested something more useful. It was still simple and can help show how locks, mutex, and semaphores work. It could display graphically in very simple terms what is going on in the various cache levels, and the processors. He was not receptive to the idea, but I am not sure if he thought it was stupid or just too much for a course project that I was doing alone.

I think a more general program would be useful to teach other types of asynchronous programming. It could also teach various data structures and their algorithms along with their properties. Watching your code create a graphical representation of a red-black tree or a queue or heap would be useful, in my opinion. I could also add modules for teaching network protocols and programming and security problems.

So many self-taught programmers lack the mathematics and theoretical background to understand what they are writing and what is going on underneath. A formal computer science education is extremely time-consuming and expensive. I think an interactive program with visualizations with a simple internal DSL, would help assist people not in college to gain more depth and breadth in their knowledge.

I know I would have loved something like this as a computer science student.

My master’s project could also be rolled into this for teaching networking and security concepts, with the functionality to probe and attack networks removed. It was mainly written in JRuby, and the graphical part was Java using Swing. Moving it to Kotlin would be trivial, and the Ruby parts can come over as-is. In a nutshell, this would be an extremely flexible and modular program that could help teach many computer science topics in a rigorous but accessible manner.

That is a big project but could keep me busy for the rest of whatever life I have left. At least it would make me somewhat useful again.

I wish I was well enough to teach. I really miss helping people, and this project could potentially do just that. The best part would be that it would not interfere with my current attempts to have a normal life, and if I get rejected in those attempts, I have something to fall back on.

I have also been struggling to learn the guitar. I can devote more time to it and see if I can play a song a special someone wants me to learn how to play.

It sounds pathetic, but I have a challenging puzzle I can work on, maybe in my evenings.

When I was a student, my programming projects took my days and evenings and much of my nights. I do not want them to become all-consuming again. I didn’t have a life as a student, and I hope I could find one now.

I can also write about books, music, and movies to mix things up.

There is a certain movie that is not well-known that I have been meaning to write about. That is because it can tie into recent things I have been going through.

I still need to write about how music can help depression.

I mostly want to avoid talking about depression going forward, but I will probably write a few more essays. Hopefully, I can make them more positive and helpful.

I could certainly improve the look of this site. I hate web design, it is headache-inducing. Perhaps I could move off Octopress as it seems to not have a lot of development activity lately.

Of course, I have many books I can also read, so I have a lot of things I can do to keep busy.

However, outside the small possibility of helping people learn computer science topics, is this truly a life of value?

All of my ideas are solitary activities, which is what I was trying to fix.

I still believe I have the possibility of sharing my life with someone very special, and thus being able to live a normal and fulfilling life.

Perhaps it doesn’t make sense but working on things to help people while being alone is not as good of a life as helping people while being with the love of my life.

The former feels empty.

I just don’t know where things stand right now.

Scars from my distant past are affecting me negatively, yet again. I guess I need to be patient and not focus so much on that and simply remember what she told me over the past few weeks.

She is not among the people who scarred me.

Is this too greedy? I was starting to believe it might be possible, but I don’t know. I have zero doubts about her feelings. I hope she knows this.

I have no idea if I have anything to look forward to, so I need to stay out of my head, be more focused and be far more positive.

“It has been said time heals all wounds. I do not agree. The wounds remain. In time, the mind, protecting its sanity, covers them with scar tissue and the pain lessens, but it is never gone.”

Rose Kennedy