Significant Whitespace

Monday, 11 of January 2016

Or more like significant pain in the rear

Today I want to talk about something that is bugging me lately. As you might've guessed from the title, it's significant whitespace in programming languages.

While I was learning Python, I didn't give it much of a thought. Now admittedly I do not know Python as much I'd wanted to, but I wrote enough scripts and small tools in it, that I feel comfortable. I haven't thought of significant whitespace much, because it was new, and it seemed cool. (it makes me format my code (not that it ever was a problem)) But now that I tried Haskell, my opinion changed, and in a bad way.

Okay, so you're a programmer? You solve problems, you write the solution to it as such that the dumbest thing can understand it - computer. So most of the time programmers drink coffee and stare at the celling are problem solving, and writing the solution down. Therefore, does it seem like a good idea to make a developer think how to write it down, rather than what to write down. In my humble option, you can always refactor the code and/or prettify it later, after the task have been solved.

When I just started to learn Haskell I got a bunch of errors that complained about indentations. That threw me off the track from solving problem on the hand a few times. I wrote possible solution down, tried it, and got errors that are not telling me what is wrong with my solution, but tell me that my code is misaligned. While I try to fix that, I lose my train of thought. (Also what is it about Haskell and tabs? :unset -fwarn-tabs anyone?)

In the end, all I want to say is that in my opinion tools should help us solve the problems, not get in the way. And significant whitespace gets in the way, especially in the beginning.

New Year, Migration, Current state and Future plans

Monday, 04 of January 2016

Year++

So it happened, we made another orbit around The Sun. 2015 was a weird one. A lot of stuff happened, University happened. As I expected it wasn't anything good, although small part of me hoped it would be useful at least in some way. Well exams are passed and that's that. I also landed my first job, signed my first NDA, and got my first salary. Although due to some problems on the place (I don't really want to disclose that in details), as well as me not really having enough time for both University and Job, I decided to leave it early. I'm glad they were really nice about it and understood me.

Here's to 2016 being even cooler, and in a good way, weirder!

Migration

A Droplet in the Ocean of Data

Speaking of 2016, one thing I did this year was migrating my web site, you might have heard of it; in fact you're on it. Yes, codebite.xyz has moved, and to a better place! It's now on virtual server in the cloud! Yes the mysterious cloud that doesn't actually exist, and in fact is another peoples' computers. The provider is digitalocean.com, they're pretty cool if you ask me. If you click that link and register, you will get free $10 of credits to use! (My referral link), and that's 2 month of their lowest tier offer.

So here I am, own a server to do as I please with it. I AM GOD NOW, you might don't get why I am excited, but previously codebite.xyz was hosted on simple web-hosting, all I had were a folder on someone's server, FTP and MySQL access. But now I have everything I want, of course that meant configuring it all with my own hands. Fortunately, I loved that!

Let's Encrypt

I also could finally use letsencrypt.org, which is an amazing tool. At the time of writing this blog entry, they are in public beta and I encourage people to use it. It's free! As in freedom! They provide a simple installer (especially if you're on Debian-based distro and use Apache) and generate keys for free. If you really liked it, and can afford it, please do donate for their cause, this people are fighting for free and secure internet!

Now on CentOS 7 (My OS of choice for servers) I needed to do it "manually", meaning I needed to tweak my Apache config file myself. But that's about it, everything else was done by magic of Let's Encrypt and some quick Googling.

Current State of Affairs

Or should I say 'stateless', because I am learning functional programming. To be precise Haskell. And we try to avoid global states in FP (Functional Programming). I don't want to go on huge tangent here, but I quite like it. It's weird, it's new, it's fun. I feel like I am learning programming from ground up once again. Maybe it's because, in a way, I do. It requires one to think in a different from imperative programming way, it makes you think about what things are, rather than how to make them. I am still quite a newbie in it, but I can see some very nice things about it. (Although I do dislike significant whitespace, that rant can be dealt later and is Haskell specific)

getPlans :: (Future a, Plans b) => a -> [b]

As of today, I have a quite a list for future plans. I do not want to disclose everything, but I can say next:

  • More Functional Programming
  • Game Development
    • A lot of small ideas
    • Few bigger ones ;)
  • New Programming Language development (Think Glocal 2.0)
  • N-th try at Operating System development
  • And in general, my low-level level (ha, ha) needs to be raised (ha...)

Therefore, as you can see, I have a lot of stuff to do, so it's better if I stop here and go make it happen!

Once again, Happy New Year people and take care of yourselves!

← Older