Last week I tried installing Arch Linux on my 6yo MacBook Air (Mid-2012), to my surprise it went much better than expected :)Read more...
In the past couple of weeks I've been researching databases and optimization techniques and I just wanted to share something I discovered.
I have an "items" table with 15 columns (5 string, 5 integer, 1 text, 2 date and 2 float) and I'm trying to add 100,000 items to the table.Read more...
Usually when you write hebrew in Vim, you have to write from left to right, which is a little annoying. Vim has two settings that allow typing hebrew easier:
set rightleft (or
set rl) - display the entire buffer from right to left
set keymap=hebrew - changes the keyboard mapping to hebrew (doesn't effect
the OS mapping)
I first heard about unit tests at an open source developer conference in 2006 and since then I've been trying to understand this concept.
The first tests I wrote were with PyUnit, I don't remember what the project was, I just remember that it was horribly implemented, I didn't have any notion of the SOLID principles, so it was very difficult to write the tests and eventually I gave it up.
A couple of years later I started to develop a large enterprise application in .NET which forced me to improve my software architecture skills, I started reading a lot of books on the subject:
As I was reading the books I began to realize how little I understand about software craftsmanship and how much more there is to learn.
So I started writing tests again (still after the code itself), I could see the value of the tests, since it helped the stability of the application I was working on (to this day there aren't any new bugs).
But the tests still didn't feel right, they didn't cover all of the scenarios, they were annoying to write, I kept having to change the original after adding the tests.Read more...
About four months ago I started writing a couple of projects in Ruby on Rails, and the more I used it, the more amazed I was at how easy it was and how fast I was advancing.
The purpose of this post is to share some of the things I love about Ruby on Rails.Read more...
The purpose of this post is to quickly go over some of the basic things most developers would require from source control software.
If you committed some code by accident you have the following options:
If you just forgot a file or wrote the wrong comment, stage your changes and run
git commit --amend. This will merge the new commit with the previous commit
(overriding the old comment).
Rebase means taking commits to made to an older revision of a branch and applying them to a newer revision of that branch (usually when the origin branch has changed while we were commiting).
Rebase is an alternative for merge, it's main advantage over merging is that it allows you to maintain a clean linear history.Read more...
In all of my days as a programmer a lot of people approached me with the question "Why isn't my code working?" and it's usually because of one of the following reasons:
A couple of days ago I was helping a good friend with a coding problem and he told me: "Don't solve it, tell me the strategy to solve it", this was the first time anyone told me that and it got me thinking... he was right, by solving every problem I'm not allowing the young programmers to learn and that gave me the idea to write this post.
I tried to think of the ways I deal with coding problems and I came up with several principles.Read more...