I must write my code to be as flexible and extensible as possible.
This line of thinking is often instilled in students by professors: Don’t just solve the problem you’re trying to solve. Generalize and solve the class of problems it belongs to. The goal is to require as little change to your code as possible to enhance it in the future and to make code as re-usable as possible.
This is certainly a laudable goal, but in a lot of cases, the additional flexibility simply will never be needed. As a result, you’re introducing more complexity than is necessary into your code. And this makes things harder for future maintainers due to the necessary additional layers of abstraction. (I don’t think I ever heard my computer science professors say the words “future maintainers” once in any of my classes.)
99% of the code you write will not be used by anyone else. Just because you post it on github or whatever doesn’t change that. Don’t write a command line tool as though you’re writing a library. The tool’s code should be as problem-specific and small as possible.
A must read Quora answer by Damien Sorresso.
If you’re designing user interfaces that might be shown on a PenTile device, be sure to test how they actually look. Some combinations of colors just don’t work on these screens.
If you’re considering picking up a device with a PenTile screen, you probably want to look at it in person before buying. Make sure you’re okay with how these things look.
Interesting post about pentile oled screens by Lukas Mathis.
I think the difference is pretty obvious. The one on Android pretty much looks like a programming class project.
a post in Android Gripes.
The biggest asset of iOS platform is the user experience so far.
It seems Skype has noticed that there is a discrepancy in quality between the two versions, and has decided to make the two versions more similar to each other. Unfortunately, instead of making the Windows version of Skype better, they’ve decided to fix the discrepancy by making the Mac version of Skype more like the Windows version.
This is exactly how I felt when I saw the new version of skype for mac. Written by Lukas Mathis.
Todolicious is a simple mac app that handles your tasks easily. It doesn’t support folders, tags or any other GTD structures. If you often have 30 tasks in your todo list, probably, it is not what you’re looking for. I usually try to keep my list less than 10 items.
If you use multiple macs, you definitely need to sync your todo list among your computers. Unfortunately, Todolicious doesn’t support syncing natively but Dropbox is here to help. The file you need to sync is ~/Library/Application Support/Todolicious/storedata. You don’t need to copy the data file to your DropBox folder. You can use symbolic links to utilize syncing. Peter Coxhead has a great article explaining this approach.
- Leave the folder or file where it is.
- Create a symbolic link.
- Move the symbolic link to your Dropbox folder.
There are a couple tricks that you need to take care of, go ahead and read the article first. Specifically, second approach under the title of “Synchronizing Existing Folders and Files”.
The only drawback of this approach is that you shouldn’t edit your todo list in 2 different computers at the same time. You might end up having glitches in the data file. So I don’t recommend this approach for real-time syncing. The application should be restarted if the todo list has been edited in another computer.
* If you are not a Dropbox user, you can use my referral link to sign-up. You will get free 250 MB storage in addition to 2 GB.