The reason I prefer to conform to good practice is because I want to be able to understand the source code that I have written six month ago, if I didn’t conform to good practice in programming than the source code I have written will be difficult to understand in six month time not only for me but other programmers as well, that the main point of conforming to good practice.

Happy New Year to Everyone 🥳

28/11/2018 18:56 GMT

I’m used to working with Windows and Linux, I needed something that is cross compatible with those operating systems, I did some research on embedding asset and pinning them to one file, I had a look at a few existing solutions online, but I just didn’t like any of them, they often rely on using go generators to embed the asset, I honestly thought that approach was very sloppy.

So I decided to build an my own solution and came up with ZipFS, which happens to be based on a classic and proven Zip Archive format , I thought this was simple yet brilliant. How does it work? It’s quite simple, first you create the zip archive with all the asset in, with compression disabled and than append the content of the zip file to the end of the compiled application, which is very easy to do, all you have to do is run the follow Unix command.

$ cat asset.zip >> application

Provided you got zipfs.InitZipFs("asset.zip") in the source code of the application.

All the asset you see on this site, for example favicons, *.css and *.js are served with ZipFS, so if you can see it, you know it’s working. I mean it’s works so well, I decided to stop using Docker containers for my web application, as ZipFS is now doing the isolation and also because Docker has issues with IPv6 at the moment.

I think it’s awesome, that I use some legacy solution to simplify the entire site to one file, therefore making deployment a breeze, oh I mean it’s very quick with SCP, so satisfying and very easy to automate.

Special thanks to Rémy Oudompheng, Mechiel Lukkien and Derek Parker, without them, I couldn’t came up with ZipFS. Of cause it’s not a new idea, it’s been done before, but still awesome!

P.S. Those PHP and Node users think I’m the crazy one!

14/10/2018 13:35 BST

I’m really not looking forward to writing this, or am I, anyway but here goes the rant!

What the fanboys want you to know about NodeJS?

  • Its JavaScript, the ability to work with the same language on frontend and backend.
    • Like being a polyglot a bad thing, I beg to differ. I know Go, PHP, SQL and JavaScript, I had exposure to Python, Ruby, Java, C and C++ and I had thought about learning C# and Rust.
  • That its fast and highly scalable.
    • This is very debatable. If I read correctly, its good with IO but not with computation scalability. Why not pick a language that is good with both? Like Go for example.
  • That its very easy to write code with.
    • Maybe for a small to medium application, but what about a very big application?
  • That it’s highly accessible.
    • That is true, I can’t argue with that. JavaScript is practically in every web browser.
    • Keep in mind you can use any language with any VPS such as DigitalOcean and there is also Web Assembly, that currently in it’s infancy, but will get better with time.
  • That it’s hugely popular and has a good ecosystem.
    • But popularity does not make it a product of exceptional quality, a highly popular product can be badly thought out. This logic can be applied to other product such as MySQL and PHP 😁
    • Good ecosystem? I thought the ecosystem was a game of Jenga; I get to the package manager in the next section.
  • They like to point out that there are big companies using NodeJS, such as PayPal, Walmart, NASA and Uber.
    • Yet, there is barely any job opening for nodejs in those companies, there mainly job opening for Java Dev, even if there were opening for node, it’s mainly for frontend. 😂😂😂

| |