Posts

Showing posts from 2008

40 Tips for better Programming

How to code better? I collected some tips about self-improvement for programmers. Tips are ordered in no particular order and divided into seven categories. It was hard, but I excluded some cool tips for sake of simplicity. I didn't mention tricks for programming concurrent software, scalable software, and many more. Optimization tricks were unfairly omitted too. General tips These tips are a philosophical counterpart to the rest of this article. Use priority queue to implement user's requirements. - It is better to implement high priority features or the hardest features first. It minimizes risks of being stuck in the middle of the project. Fix bugs before writing new code . This is a special case of the first tip. Read more... Improve yourself . Read books and blogs. There is always something new and useful to read out there. Have quiet working conditions . It is scientifically proved that you can improve your productivity just by removing distractions. Quite workplace is ju

Review of Effective Java 2nd Edition

I have read Effective Java 2nd Edition recently. It contains 78 "items" where Joshua Bloch depicts usage of Java language the right way. All in all, I liked this book very much. Especially the chapters 2, 4 and 8 were most valuable to me. Except some introductory "items", whole book is a set of interesting articles similar to a blog. Next I'll write down a summary of the most items of this book. I use bold font when I found an item important and italic font when I found it surprising . Chapter 2 - Creating and Destroying Objects The interesting stuff starts here. Item 1 introduces you to the static factory methods and their advantages and disadvantages over constructors (boring). Item 2 is much more useful - it introduces the "Builder pattern" as the best method to initialize objects. More widespread term is IMO the " Fluent Interfaces ". Item 3 shows us how to implement a singleton the right way - through a single-element enum (remember th

How to install OS for simple user

My procedure when installing OS for simple user: Optional: Create system and data partitions with appropriate sizes. Install OS to system partition. Optional: Install newest drivers from the Internet or alternately from drivers CD. Install programs (Chrome, VLC Media Player, Office Suite, Skype, Total Commander / FreeCommander, JRE), e.g. using chocolatey script below. Optional:  Update OS (Windows Update). Optional:  Set up OS (through the Control Panel). Optional: Move users' settings folders to the data partition. Optional:  Hide dangerous folders (system, backups). Set up programs (home page, bookmarks, Skype account, ICQ account, TC panels). Chocolatey script for installing all necessary programs (run in Admin cmd): @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"