Priorities in Software Development

02.07.2018 02:00

There are many choices that are made during software development.

Some want to make cool stuff faster, while other want small size or support “everything”. Or stability. Some of these choices can work together, while others do not.

These choices depend on a lot of stuff. But most important they depend on the kind of product you want to build and who are going to use them.

For example, if you use React and modern web development tools like webpack, your web app’s resources will be larger, and not support every browser on the market. But you will be able to iterate much faster and cooler stuff. But that will not work if a lot of your potential users are using old devices and or older browsers.

In some cases you might not want to make your whole solution rely on JavaScript, while other times you have to do that in order to make what you want to make.

It all comes down to what priorities you and your company have.

If I were to build something for schools or enterprise I’d probably build something using Python or C# where almost everything were handled by the web server, and the JavaScript would simply be a “added bonus”. But if I were to build a really cool web app for individuals or smaller companies where it is more likely than not that they run a modern version of Chrome or Firefox, I’d probably build something entirely in JavaScript.

A web site on the other hand, like this one, is still something where I would not do too much in JavaScript, because most people don’t spend a lot time there at a time.


29.06.2018 02:00

Fork seems like a good alternative to Tower.


29.06.2018 02:00

Yay! New episode of the HelloCode podcast


29.06.2018 02:00

Vacation time!

Getting started with Emacs

29.06.2018 02:00

Emacs is one of the most powerful programs I have ever used. The way I usually describe it is imagine excel where the macro language is so powerful that most of excel itself is implemented in it. Others have called Emacs a “big repl”. The difficult thing about Emacs is getting started with it. Emacs is very powerful, but it isn’t optimised for beginners. I personally think that is great, because it means it have been built for those of us who spend most of our time in it.

I recommend that you start with one of the configuration systems available. At least in the beginning. Spacemacs is awesome, because it is really easy to get started with. Before you move on look at both the regular Emacs Keybindings and VIM / Evil keybindings and pick the one that appeals the most to you.


28.06.2018 02:00

Tower, the awesome git app for Mac and Windows are moving to a subscription model. I’m not against subscriptions. Seriously. I’m not. But I’m not going to subscribe to Tower, because I think it is too expensive. The yearly price will be the same as I have paid for both versions up to this date. I would not have any problems with the subscription if it was somewhere between $20 and $25 a year.

Lightroom CC

28.06.2018 02:00

I have used Lightroom CC for a while now, and I’m very happy with it. Everything about it looks and feels much more modern than the Classic Lightroom. You don’t mess around with Preview Generation or any of that crap. You just import your photos and Lightroom and the Adobe Cloud deals with the rest. If you like me want a local copy of all your raw files you can tell Lightroom CC to store it at a separate location (or the same).

What I love about it is that it is cloud first. That means that instead of generating previews and a like on your machine, Adobe does it in the cloud. This is good news if you have a great internet connection, and not so great if you don’t. But it also means that you can import your photos any time, and still be able to use your computer while you wait for the previews to get back. This was a huge problem with the old version. I had to always do it outside of when I was doing some real development or work, because Lightroom would occupy most of my systems CPU for hours upon hours.

The one thing I wish they would focus on bringing back from Classic is batch operations. For example to be able to apply “Auto tone” to a set of images, and a button for purging rejected images. Other than that an awesome app.

I know a lot of people aren’t fund of subscriptions. But CC makes it much more worth than previous Lightroom versions.


27.06.2018 02:00

LISP is one of those languages. Very old, but still very relevant. And probably the most beautiful language ever. Some languages you learn because you want to use a framework, other times you learn them to run code on a certain device or even because of the job market. But you also have languages that you should learn because they will bring a different perspective to stuff. Both Haskell and LISP is like that.

LISP is not one language though. You have many different versions. The most popular ones are probably Common Lisp, Emacs Lisp and Clojure. My advice is to start with Clojure because the tools are much better and it is just much easier to work with than some of the other Lisp versions.

I have written about Lisp a few times because I think it’s awesome. It is a little bit weird, and it takes a while to get into it. But you kind of don’t care that much for other languages once you get into it.

Being forced into a structure

26.06.2018 02:00

Some languages and / or frameworks force you to structure your code in a certain way. I have always hated that. The reason is simple: very few projects are at the right size for that structure. Because it is either way too complex for your silly little app, or not complex enough for your large enterprise app.

My personal preference is that the languages and or frameworks don’t force much structure on you. But instead give you good defaults and advice on how you should do it. And then just let you do it as you think works best for where your project is at.

When you start out learning something it might be the best to just have on file, and then start splitting it into different stuff. And that process is very good for learning how shit works. Something you lose when you are forced into a structure.

Getting into web development

26.06.2018 02:00

1. Django / Ruby on Rails

Pick either one; both are great. ## 2. Learn how to use it well enough to build a web site or web app with it Focus on building stuff, learning how the different parts work together. ## 3. Learn how to build a RESTful API with it Learn about RESTful and building HTTP api’s. ## 4. Learn React or Vue Pick either or; some like React while others prefer Vue. Learn how it works, when it is appropriate. ## 5. Use the API with React Learn how to bind your Django or Rails stuff together with your web app through the API’s you wrote. ## 6. Dig into the following technologies - HTML - CSS - JS - React / Vue - Django / Rains - Databases - HTTP Protocol