I recently discovered that my music player (Clementine) stores its metadata in a SQLite database.
The first thing I did once I knew this was to do a bunch of queries which summarised the data in interesting ways. My favourite so far is a count of albums released on each year, as represented in this graph:
Most of the programming languages I have learned and used so far have been from the imperative programming paradigm, which means that they describe the problem to be solved in terms what needs to be done, step by step, in order to solve it. (Object oriented programming, while often considered a separate paradigm, is essentially just a highly modular type of imperative programming.)
The alternative to the imperative paradigm is declerative programming, which describes the problem in terms of what it should accomplish, rather than how it should get there. The declerative paradigm includes logic programming languages (such as Prolog), and functional programming languages (such as Lisp or Haskell).
Functional languages are the one major paradigm which I haven't had any exposure to. Until now. I've decided that, in order to be a well-rounded coder, and also because it might be fun, I should learn a functional language; and I've chosen Haskell.
After reading the first few chapters of the strangely titled "Learn You a Haskell for Great Good!" I began thinking about what problems I can try to solve using my new language, in order to help cement my understanding. That's when I remembered about Project Euler - a series of mathematical problems intended to be solved with computer programs. I've been meaning to do Project Euler for a while now, but kept putting it off; but since Haskell is a language well suited to solving mathematical problems, I thought this was a perfect opportunity to combine the two, in ProJeX Haskell: learning Haskell through using it to solve Project Euler problems (and presenting the mathematics using LaTeX - another thing I've been meaning to learn).
Part of the reason I decided to add a blog to my website was so that I could write about software development. I wanted to be able to pass on the things I learn, write about what I'm working on, and share my thoughts and ideas related to coding and software.
I've been interested in computer programming and web development in some form or other since I was about 14. That was when I started teaching myself HTML, and created a "personal website" for myself. That site went through many iterations over the years, most of them of no interest to anyone but myself, and it eventually became this website right here.
Older posts >>