Recursive graph
Recursive graph or not? Or, infinite data structure or not? While working on implementing a graph database in my spare time, I had troubles choosing the right data structure for the graph. That’s the cornerstone of the whole thing, so some serious thinking was needed to get this base design decision right, because the rest of the implementation is going to depend a lot on it. The critical part was to choose between a recursive or a non recursive representation.
My values
I’ve been thinking about it for a while now, what are my values, my pillars. The foundations that define me. To me, being aligned and true to these values defines integrity. Our integrity is attacked every day, and it’s good to put words on the values that help us keeping looking and going in the right direction, answer doubts, and being proud of ourselves until the end. I think that I have now come to a stable combination.
Lifelong learning
The first time I saw this expression, lifelong learning, was on ACM Learning Center’s web page. Later on I discovered that the terms were coined by Peter Drucker. In addition to the sweet sound of the alliteration, these two words included several important aspects of life, or, should I say, the way I see my life. The first aspect, the most direct, is just what the words mean: learning for a lifetime.
Existence et Applications
I finally decided to rename this blog into a wider name, a bit more personal too. For the anecdote this is the name of the first blog I had on livejournal twelve years ago. Programming Geomechanics was a nice one, but with the time, and after a full day of work, I also want to write about other things than programming or geomechanics. As you may have seen, it’s been a while since I last wrote.
The framework wall
When creating a website, it is often tempting to use a so-called web framework. For the website of a friend, I opted for Django, as I had already some experience with it through the second version of my blog. This version, the third one, is a return to the web pre like button fueled by databases, as too much frustration grew out of the previous one. Just to be clear: I like Django.
Halting funfem
After spending quite some time working on funfem, I just decided to halt it for an undetermined duration. That’s a bit sad but easily understandable. I work on finite elements all day long, and I just figured out that I did not have the motivation to work on finite elements again when back home, during my spare time. But how disappointing. Yet another halted project of mine. I should dedicate this precious time on focusing on a completely different problem domain.
Writing essays
I’ve just spent more than an hour trying to write an essay-like blog entry on a topic of software engineering. The conclusion is: it’s hard. It’s difficult because every essay is essentially difficult to write. That’s why they are interesting to write. And read. The topics they cover have to be interesting too of course, that’s the obvious starting point. Yet, once the subject found and matured, comes the time for writing.
funfem
Time has come for me to introduce funfem. funfem is the functional finite element library. I could say it is a functional finite element library, but there aren’t enough of them to say it is yet another finite element library. To my knowledge, only femlisp exists, and it does not emphasize that much on the functional aspect of it. Funfem is open-source; it follows a BSD3 license. The ‘fun’ in funfem has at least three meanings:
Haskell blog engine
Recently I have moved from Django to static pages for my blog, using a Perl script and a git post-receive hook to trigger the updating script. That was too tempting not to write it in Haskell. The full source code is available on GitHub Let’s start with the central data structure, the Entry data type: data Entry = Entry { entryUrl :: String, entryDate :: CalendarTime, entryTitle :: String, entryTags :: String, entryBody :: String} deriving (Eq, Show) An Entry contains its relative url, its post date, title, tags and body.
Blog engine
A few week-ends ago I wanted to clean up my Django-powered blog. But it went wrong, and even if everything was under version control, I decided not to use Django for it anymore. Don’t get me wrong here, I still think it is a great framework and I use it for the website of a friend; it is also a nice occasion to play around with Python. However, for my personal blog, I did not want to use a framework anymore, and even less a CMS.