about me, myself and I
How to become a great software developer
- Start with design patterns – Always start with a design pattern, then try to make your problem fit it. Ideally start with the pattern you have most recently read about as this is most likely to be the best one.
- Do programming Katas – Repeatedly solving the same simple problem is the best way to improve your coding skills. The faster you can do it, and the more you sense a feeling of ‘flow’ when solving this problem, the better a developer you are becoming. Ideally, video yourself performing the kata, so others can learn from your achievements.
- Mock everything – When testing, make sure you mock everything. The less you’re really testing the more likely your test will pass. Green lights in IDEs are the most important measure of the quality of your code.
- Follow practices strictly – Follow practices as laid out in books, or explained to you at conferences, and follow them to the letter. It’s a lot easier to follow rules than to think, and thinking poses certain risks (see point 12).
- Read only books written in the last 10 years – As we are all aware, nobody knew how to program until the dot com boom, and books written before this historic moment are of no value. Ideally make sure the books you read are signed off or endorsed by a big name in the Agile community, as this will ensure quality.
- Beware of old ideas – New ideas are always better, fact.
- Pair program, properly – Pair often, and when you do, remember that your job is to make the other person code what you know to be correct. Pair programming is the only way to resolve communication issues and conflicts. Focus on the process of pair programming, not on the people involved.
- Recognise bullshit when you hear it – Be suspicious when you hear words and phrases like ‘problem solving’, ‘planning’, ‘programming’, ‘coding’, ‘testing’, ‘algorithm’, ‘design’, ‘prototyping’ etc. Such buzzwords are made up by people who don’t really understand software development, or how it relates to martial arts and eastern culture in general.
- Learn new terms – The field of computer programming and software development is lacking in jargon. The best way to improve your knowledge is by learning new terminology for the same concepts. Real knowledge is about memorising terminology, not understanding principles.
- Java is dead* – Do not learn Java, and if you’re a Java programmer, you better start learning Ruby/Python/Scala/Clojure fast. Java has been dead for many years and everyone knows this. Ideally learn a language that allows you to write in 2 lines what would cost you 4 lines of Java. Productivity and readability are about number of lines of code, fact.
- Be a craftsman and a professional, not an engineer – You’re not building a bridge, you’re carving a beautiful statue. Remember you’re also just like a lawyer, or a doctor, you’re a professional. Spend your time contemplating who you are, not what you’re doing.
- Never fall into the trap of thinking for yourself – Instead, read a book, post a question somewhere, follow a practice, phone uncle Bob, anything as long as it means you don’t have to think for yourself. Thinking for yourself poses the risk that you will come up with the wrong answer. Books, forums, practices and consultants however, are always right.
- Read blogs, like this one – When you have a disagreement with somebody who doesn’t follow the above advice like you do, send it to them. Blogs are the authority on matters of programming, fact.
* Replace “Java” with “Ruby” in the heading for same effect. The point is not about the language itself, its about making sure you’re using the most recent language available to mankind.
USGerman Keyboard Layout: Easier German umlauts on a US keyboard for Mac OS X
Works with Snow Leopard!
Please follow the new installation instructions if you updated to Snow Leopard. Until you do, you may not be able to use your admin account under 10.6.If you are using Mac OS X with a US keyboard layout, but need to type lots of German text, then download the file USGerman Keyboard Layout 0.98.zip (28 KB), unzip it, and put the file Roman.bundle into the following folder:
/Library/Keyboard Layouts
Don't use (your home directory)/Library/Keyboard Layouts with Snow Leopard (10.6) as you probably did in Leopard (10.5), otherwise you cannot enter any administration passwords anymore!
You may have to create this folder if it doesn't exist already.
Now close all open applications (running applications will not recognize the new keyboard layout and, under Leopard, may not respond to keyboard input with the new layout selected until you closed and relaunched them).
Launch System Preferences under the Apple menu (close it first if it was open already), go to the "International" Preferences pane, and select the "Input Menu" tab.
Check the "U.S. With Umlauts via Option Key" Keyboard layout, and uncheck the U.S. one if possible. Also check the "Show input menu in menu bar" option at the bottom.
Log out and back in once after first installing it to make it work in all applications (including Spotlight, the Finder, etc.).
After logging back in, in your menu bar, select the US/German flag from the new flag menu.
Now you can use the following keyboard shortcuts for German special characters:
option-a for ä
option-o for ö
option-u for ü
option-s for ßThis also works as expected for uppercase umlauts (Shift-option-A, Shift-option-O, Shift-option-U), and with Caps Lock enabled. Shift-option-S or Caps-option-S will create "SS", in accordance with typographical standards.
The Option key is also labeled "alt" on most keyboards.
I created this keyboard layout using the nice web interface at http://wordherd.com/keyboards/. Check out their web site if you have any problems with this file. To recreate the above mapping, use the name "U.S. With Umlauts via Option Key", check "autodefine all unassigned keystrokes", leave the other options at their defaults, and paste the following code into their online form::: U.S. With Umlauts via Option Key
:: Copyright 2004,2005,2007,2008 by Prof. Dr. Jan Borchers, RWTH Aachen University, Germany
:: http://hci.rwth-aachen.de/borchers
:: All rights reserved. License: You are free to modify and/or redistribute this product,
:: as long as you do not change or remove the copyright notices or this license.
Oa $E4 :: Option-a creates ä
OSa $C4 :: Option-Shift-a creates Ä
OCa $C4 :: Option-Caps-a creates Ä
Oo $F6 :: Option-o creates ö
OSo $D6 :: Option-Shift-o creates Ö
OCo $D6 :: Option-Caps-o creates Ö
Ou $FC :: Option-u creates ü
OSu $DC :: Option-Shift-u creates Ü
OCu $DC :: Option-Caps-u creates Ü
Os $DF :: Option-s creates ß
OSs SS :: Option-Shift-s creates SS
OCs SS :: Option-Caps-s creates SSPaste the resulting page into an empty TextEdit window, select "Make Plain Text" from the Format menu, and save the resulting file as "U.S. With Umlauts via Option Key.keylayout" into the folder specified above and select it as described. You won't get Nils' cool icon that way, and we have tweaked this layout some more to make it work better (see version history below), but otherwise it works the same. Log out and back after activating it if it doesn't work right away.
To find the above hexadecimal Unicode character codes, open the International System Preference, click on the Input Menu tab, make sure Character Palette is checked, and make sure Show input menu in menu bar is checked at the bottom too. Then open the Character Palette under the little keyboard icon in the menu bar, select the Accented Latin character category, then click and hover over the character you want to see its Unicode character code.
Note that you need to be running Mac OS X 10.2 or newer for this to work.Enjoy!
- Jan & Nils
Known Bugs
- Under Leopard, after first installing the new keyboard layout, running applications will not respond to keyboard input if you select the new layout in the menu bar. You have to go back to the U.S. layout, or quit and relaunch them. This is also true for the Finder, Spotlight, etc., which are non-trivial to relaunch. The easiest therefore is to follow the above instructions and log out and back in once after first installing the new layout. After that, changing between layouts from the flag in the menu bar is possible at any time and recognized immediately, even by running applications.
- Breaks keyboard shortcuts in Adobe Illustrator CS1 (although not Photoshop or any other app I tried) under Tiger. Solution: It works fine under Illustrator CS3 (CS2 may also work). Alternative workaround: Check the U.S. layout again in the International System Preferences Pane, and switch to the standard U.S. layout for that app, using the flag menu in the Mac menu bar.
Revision History
- Sep 10, 2009: Updated installation instructions for Snow Leopard, which requires you to install the keyboard layout to /Library/Keyboard Layouts instead of in HOME/Library/Keyboard Layouts. You need Administrator access to your Mac for this (which you will have if you're the only user).
- Jan 3, 2008 (Version 0.98): Checked that the keyboard layout still works with Mac OS X 10.5.1 (Leopard). Updated the installation instructions, stressing the need to log out and back in. Changed URLs to new "hci" server. Changed long name to use official Apple "Optionstaste" German wording. Updated web page and synced Readme file to it. Updated version numbers to 0.9.8. No Xcode rebuild, just hacked plist and other text / string files. (Jan) Also entered listing at VersionTracker
- July 28, 2007 (Version 0.97): Following a post on the Ukelele forum, changed the bundle name to Roman, the keyboard name to "U.S.", and verified that the ID is 5000, to avoid Mac OS X switching back to the default U.S. layout automatically. Changed long name to use official Apple "Option Key" wording. Updated web page and synced Readme file to it. Updated version numbers to 0.9.7. No Xcode rebuild, just hacked plist and other text / string files. (Jan)
- August 25, 2005 (Version 0.96): Updated property list to look more like a U.S. keyboard to the system, changing to ISO code "en", works better with Tiger when entering passwords. (Nils)
- March 14, 2005: Recreated keylayout using current wordherd.com web site, added uppercase sharp s mapping, added Caps Lock mappings, renamed layout to "U.S. With Umlauts via Option key", documented wordherd.com syntax and Unicode character codes, added do-it-yourself instructions. (Jan)
- January 18, 2005 (Version 0.95): English / German localization and icon all wrapped in a Bundle. (Nils)
- January 08, 2004: Initial version. (Jan)
Copyright notice
Copyright 2004,2005,2007,2008 by Prof. Dr. Jan Borchers, RWTH Aachen, Germany - all rights reserved.
http://hci.rwth-aachen.de/borchers
License
You are free to modify and/or redistribute this product, as long as you do not change or remove the copyright notices or this license.
Feedback
Heute habe ich im Internet ihr keyboard layout für die Eingabe deutscher Umlaute gefunden und möchte mich hiermit ganz herzlich für Ihren Einfallsreichtum bedanken. Ich suche schon seit längerem nach einer einfacheren als der von Apple angeboten Lösung, bisher jedoch erfolglos. Vielen Dank nochmals. (C. Kick, Reutlingen, 2008)
Vor längerer Zeit habe ich ähnliche Tastenlayouts für Windows und Linux
erstellt. Als Neu-Mac-Benutzer freut es mich, dass ich die Arbeit für
den Mac nicht nochmal machen muss. (B Schoeller, Zürich, 2009)
Links
Philipp von Weitershausen posted a similar idea in his 2006 blog. Check it out.Bernd Schoeller has created similar layouts for Linux and Windows (9.2009).
Created by borchers. Last Modification: Monday 09 of November, 2009 00:19:47 by borchers.
was ich immer gesucht habe :D