What a year and a half that it has been been! I can't imagine many other times in my life that everything has been the confused mess that it has for the past 18 months. Its amazing that no matter how much new technology is introduced and scientific proof is given there seems to be a growing number of people in the world that have relieved themselves of any matter of common sense and produce their own logic based in complete non-sense. I really wouldn't care that much normally and would just let Darwin take over to settle the matter but unfortunately innocent people are impacted by the complete idiocy of others this time. I'm not saying that you shouldn't get your concerns and questions answered, but I am saying that Dr. Facebook is probably not the best place to do so. Zuck isn't your friend, I can assure you of that. If there is money to be made from another person's pain, FB is all over it. Ask the number of developers who have either left the company or have turned down interviews with them when they cold called us... just saying.
So what have I been doing over the past 1.5 years or so? Well I've been working on a long term project that has been sitting on the shelf for way too long, spending some time trying to begin to understand Rust, at least enough to be able to make a judgment call on whether it is something I want to deep dive into. Looking very closely at Zig which I definitely want to revisit at some point. Zig looks really interesting, possibly more so than Rust for me. Spending a small amount of time traveling during the gap of goodness as I call it, that was May/June of 2021 and as you can see, making yet another change to my web page.
Don't get me wrong, I really liked the layout and design of my page prior to this one. It was very professional looking IMHO and just eye catching. I have several reasons really for the change.
One is that I spent a lot of time with Haskell working on that page just getting the environment up and running, learning some of the real basics of working with the language. I found it to be a really solid language and also due to its static nature, really picky about things. To Haskell folks this is a positive as with it comes stability of the compiled code and I agree with that. I did find the development environment not something though that was to my liking, not nearly as much as Clojure or Common Lisp. So after I deemed I had given it a good investigation, I thought it was time to select something that would allow me to work in a development environment that fit me personally better and would allow me to increase my knowledge of the language that I choose.
This time it would be more about the understanding the internals of the base language and less about the general "bling" of the site. The CSS in the prior page was actually taken from another person's Hakyll site on GitHub that I went through and attempted to strip down as much as possible. However, the original code they used was actually from a WordPress site so it had gone through several transformations and was just pretty messy at the end of the day. With this new site, I wanted to either clean up that code if I was going to continue to use it, or I was going to go with something completely new that I understood the pieces much better.
After weighing all of these things I decided to make a change rather than continue to use Hakyll as I found that I wasn't really using Haskell outside of the web site so it didn't make much sense to continue having simply a static website leveraging Haskell for its creation. I did spend a bit of time weighing out if I wanted to try to use Rust for it, but decided against that ultimately. In the end I realized that I just love the REPL.
What is so special about the REPL is a common question that I get from people who have worked in Ruby or in Python (as well as other languages)? Their comments are generally something along the lines of, I can spin up a Python prompt/REPL also, so why is the REPL in a language like Common Lisp different, or better? This is actually something that I may do a deep dive in at some point in the future if I have the time, but I can assure you that there is a difference in the workflow of development between something like Python and Lisp. For now I will leave you with Eric Normand's video What Makes a REPL as a quick introduction that I believe does identify one of the, if not the most important difference.
I could have leveraged Clojure for this but I ended up deciding on Common Lisp, Steel Bank Common Lisp actually in the end. One of the nice features of Lisp is that there exist many flavors of Lisp out there but they will generally all follow the ANSI Standard for Common Lisp. So whether you choose Steel Bank, or Common Lisp, LispWorks, or another Common Lisp, the code will run on all of them.
I picked Steel Bank since it is considered more optimized for speed than Common Lisp and unlike LispWorks is a free option as I won't need to have the support of a pay option at this point.
The actual library that I decided upon is called Coleslaw which seems to work very nicely and does support extensions if I decide to add something that I want later. There are number of sites out there that run Coleslaw so I had access to a few blogs that talked about the configuration and setup procedures.
What about the presentation layer? It turns out that Coleslaw does provide some themes by default but I decided to create my own theme using Bootstrap and leveraging some of the themes that exist readily out there for it. I ended up customizing a theme from Bootswatch which wasn't a terrible experience. Once I started to understand their CSS it was relatively simple to get it to look how I wanted it. There are couple of things that I still need to work out, but I think it is pretty nice now. The big thing is that I can maintain this pretty simply at this point.
Hopefully this read was both interesting and informative. It does feel good to work on this site again and throw out some new content. Something to keep my mind off of the craziness going on in the world at the moment!
Until the next blog, don't talk about it...
Just got my Atom and RSS feeds enabled and configured. If you
want to subscribe to the feed, its relatively simple. Install a
plugin for your browser that allows subscribing to Atom feeds. Simply
look for the "Feeds" pulldown menu item in the navigation bar on the
top of the web page and select your preference. That will take you to
the respective xml file if you would like to look at its contents. I
personally am using the FeedBro client which once you have installed
and have the XML displayed in your window, select "Find Feeds in
Current Tab" and press "Subscribe" That is all there is to it.
The modifications in the source code to generate the XML feed were very simple and took about 5 minutes. I spent more time reading through the document and reading the code prior than I did actually writing it.
Until the next blog, don't talk about it...
Happy 4th to everyone in the USA! Another year has passed us by and here we
are in the midst of summer with the appropriate 90+ degree F weather that
comes with it.
This seemed like the perfect day to kick off this new site and new post. New beginnings for the US were set forth on paper and signed today and thus it is with web sites and blogs.
In the past I was working with a much more complex system leveraging Plone, but my Plone site broke a couple years ago as I was too busy to keep it updated as I should have. The version leap was large, not to mention the supporting library issues. All the data was locked in my Zope DB and became lost. I'm pretty certain that I may have been able to get it out if I put the time in, but really didn't have the time to do so.
I have completely switched gears and decided to run with a static site this time. I'm currently fully engaged with functional programming and have been so for a few years, mostly living in the Clojure world and getting my feet wet with regards to the mindset that is required there. I have always wanted to put time into learning Haskell however and this seemed like the perfect time to make the jump. I created this page using a package called Hakyll and have just begun to get into the configuration etc. So far its been really challenging and a lot of fun. I'm sure I'll be posting things I learn as I move forward in this world and become more savvy in Haskell, at least that is my hope at this point.
Again Happy 4th!
Until the next blog, don't talk about it...