Clojure Defmulti and Defmethod
As I continue my journey with learning functional programming, I have started to explore deeper into the languages that I enjoy and do some experimenting with interesting parts of those languages. This has led me to defmulti and defmethod, enabling you to create methods that deal with different implementations that are selected by a dispatch function. This is certainly easier to see in code, but it allows you to create a function based on the return of the dispatch function that will send the parameters to another function.
Ahead-Of-Time Compilation With .Net Core
I’m still on my journey with exploring F# but I want to look at something with the .Net Core platform itself, so this will apply to both C# and F#. Ahead-Of-Time (AOT) compilation isn’t a new concept. Languages like C and C++ need to be compiled before (or ahead of) execution time. The JVM and CLR took a different approach, creating “virtual machines” or runtimes that could run your code, giving us the promise of “write once, run anywhere” or anywhere that has a virtual machine at least.
Optional Types and Pipes in F#
For this first topic of showing off parts of F# I want to use a code challenge I have used for interviewing candidates at a couple different companies. This challenge is simple to solve but is left open ended to allow the candidate to discuss and debate the decisions they have made. The main point of the challenge isn’t the coding, but it does provide us with an example to show off optional types and pipe operator in F#.
A Look Into F#
As I’m sure, so many other people have also found their lives disrupted due to the pandemic and other world events; I’m just getting to the point where I can think about blogging again due to getting a sense of normality back. One of the things I have been doing is continuing my journey with functional programming languages by looking into F#. I’m not entirely sure why but there’s something alluring about F# that appeals to my style of development.
Taste of Clojure
Clojure seems to be coming up a lot in postings, books, and social media. Some most notable mentions are by Gene Kim in a couple of different instances, Love Letter To Clojure being the biggest but also in his book The Unicorn Project where Clojure is a beloved language by Maxine the main protagonist hero of the story. Another well-known name that has talked about Clojure on his blog is Robert Martin (aka Uncle Bob) with his posting Why Clojure?
Learn Functional Programming
This time of year, I always find it interesting the number of articles telling you the top languages you should learn. Yes, there’s a steady stream of these types of articles throughout the year but right at the end when a new year is about to start is when I’ve seen them the most. Titles typically include something along the lines of “Top Five languages to learn in 2020”, “Languages to improve your developer life”, “Programming Languages that you need to know in 2020”.
For the Brave and True
In my last post, I said I was in Italy on vacation and you may be thinking to yourself (most likely not, but just go with it) “what high tech gizmos did he bring with him on his travels?” and I would happily reply “A book!”, yes a paper book. Being a software developer, I have access to tons of technology, more so when it comes to paper book replacements but there is just something about a real book that makes reading and learning for me better than using a computer, tablet, or doohickey.
Not All Who Wander Are Lost
As I sit here in Venice on my vacation, I figure this would be a great time to dust off my blog. I haven’t put much time into it lately, I find myself wanting to write when I have a good balance with work and life with some learning on the side. Sadly, this balance has been missing for a bit, which leads us into a bit of a back story, the details are not important but the overall experiences that I gained are.
Setting Up GPG Signature Verification for Github
GPG stands for GNU Privacy Guard, it’s a public-key cryptography that can be used to digitally sign items like commits in Git. GPG provides a lot more functionality, but let’s go into why you would want to digitally sign your Git commits. Git does not have any way to validate the author of a commit. When setting up a Git client on your system you are able to use any email address you desire.
Setting Up a Local Python Development Environment
Over the past couple months, I’ve been working on fine tuning my Python skills, part of this has been taking tutorials online along with building some applications. One of the things I’ve been wanting to document, mostly for myself, is setting up a new environment for developing with Python. I’m using macOS Sierra right now, it seems that most operating systems still comes with version 2.x of Python. It’s always a good idea to be able to control the version of Python you are using.