Meandering Musings

Everything not fit to publish


| Comments

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; 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; 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. The 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 fairly recent activities, I would be questioning if that was real also. 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 really 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 true, 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 at least 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. So I am trying to un-paralyze my mind.

There are plenty of things 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!!!) and 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 and Ruby also has fairly strong functional features. Of course, 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 and its main designer, Joe Armstrong (RIP) would very kindly disagree, but 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. At the very least go learn Smalltalk or Ruby. That might be a fun article to write. It would at least get some bombs thrown my way in the comments.

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 with 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, without many of its 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. I guess you really do need to write your code as an abstract syntax tree to get a true homoiconic language but languages that get close like Elixir and Ruby without the dizzying look of Lisp code is a big win in my book.

Don’t worry, PHP is not even worth this sentence so there will be no ‘PHP sucks’ writeups. It would be like writing about how water is wet.

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 I need to work on that 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 and 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 might still be manageable but 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 I could use Kotlin to redo. The instructor created a simple language and compiler for learning to write code 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, but very limited and the program either successfully ran or it did not. I thought it would be much better with a visualizer and the ability to step through the code and follow it in the visualizer. Banging on code until it works is not very educational. Instead, I suggested something more useful but still simple that can help show how locks, mutex, and semaphores work along with displaying graphically in very simple terms what is going on in cache 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 I was doing alone.

I also got to thinking something like this would be useful to teach other types of asynchronous programming as well as teach various data structures and their algorithms and 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 math and theoretical background to understand what is going on behind what they are writing and a computer science education is extremely time-consuming and expensive. I think an interactive program with visualizations and a simple internal DSL for writing the code, probably written in Ruby to allow for quick code writing would be very useful for someone.

My masters project could also be rolled into this for teaching networking and security concepts, with the functionality to probe and attack real networks removed. It was written in mostly JRuby and the graphical part was Java using Swing so 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 would be able to 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 again, 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 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 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 that topic going forward but I will probably write a few more essays if I can make them more positive and helpful.

I could certainly improve the look of this site, although 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 has 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. This is what I have to look forward to so I need to stay out of my head, be more focused and be far more positive and hopefully be able to be more talkative to the best thing that has ever happened to me.

"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