February 2012
1 post
SSH tricks →
January 2012
2 posts
How to Manually Create an HDR Photo in Photoshop →
Salary Negotiation: Make More Money, Be More... →
December 2011
2 posts
Ask HN: I just got my first team lead. What should... →
Elegant Coding: Eleven Equations True Computer... →
November 2011
2 posts
Jedi Mind Tricks: 17 Lesser Known Ways to Persuade... →
Constrained Random » Customizing VPN Routing in... →
October 2011
5 posts
In managed code we trust, our recent battles with... →
1Password Mac: New Chrome Extension Beta! |... →
A codebase is a lot like a city...
A codebase is a lot like a city. Initially your tour-guide will show you around the ritzy parts, but soon enough you’ll end up alone in the ghetto with your pants at your ankles begging for mercy.
I had this thought while refactoring a 60-line unit-test in a legacy project.
Sunetos, Inc. :: Introduction to Test Driven... →
Mobile UI Patterns | Lists →
September 2011
3 posts
3 tags
Sync Apps from iphone to itunes changes...: Apple... →
My actual work around to this is:
1. On my itunes apps tab, I uncheck the sync apps tick box if its already checked. this then previews my current iphone page layout.
2. I check it back again then I click on the apply button to start syncing.
3. However, even before the syncing takes effect, I am already clicking at the cancel “x” button on the status window found on the center part...
Time Zones →
Volatile Fields (Page 1 of 2) :: BlackWasp... →
August 2011
3 posts
10.5: How to abort a stuck Time Machine backup -... →
One way to end a stuck Time Machine backup |... →
Awesome but often unknown Linux commands and tools... →
May 2011
3 posts
c# - Is there a name for this "pattern"? - Stack... →
TryParse… TryThis… TryThat…
What’s the pattern where you have a “Try” method for catching exceptions
.net - Visual Studio 2008 Build Dependency Chain -... →
Speeding up Visual Studio build-time to run project. (only compile projects required to run)
Secrets of Power Negotiating - Stavros' Stuff →
house hunting…
April 2011
1 post
android - Error: Unable to open class file R.java... →
This is a mighty annoying error.
It happens 100% of the time when I create a new android project.
What seems to work for me is to just delete the file (which DOES exist and is accessible by my user), then hit build, and it will regenerate it and stop moaning.
It’s clearly a bug as there are too many people getting it simply by filling in the boxes in the new project dialog (like me)...
March 2011
4 posts
Git 201: Slightly More Advanced - Adventurous →
Show all files in the Finder | Software | Mac OS X... →
Vaughan Pratt - Wikipedia, the free encyclopedia →
tech.natemurray.com: 6 Ways to Run Shell Commands... →
Excellent summary.
December 2010
1 post
My talk at the ALT.NET Israel Tools... →
Scroll down to the section on ReSharper.Internal
October 2010
1 post
1 tag
How do I make git ignore mode changes (chmod)? -... →
September 2010
2 posts
1 tag
Dan Rodney's List of Mac OS X Keyboard Shortcuts &... →
August 2010
2 posts
1 tag
Show all files in the Finder | Software | Mac OS X... →
2 tags
VMWare Fusion Shared Folders and Visual Studio... →
1 tag
Executing Shell Scripts from the OS X Dock? -... →
June 2010
1 post
May 2010
3 posts
1 tag
Stone Soup And Boiled Frogs
An old fable goes (something like):
Allied soldiers were returning home from the war. They were hungry. They went into a village which was locked down from being so poor and ravaged. The soldiers put on a pot of water and put three stones in it. One villager asked “what is it”? The soldiers cunningly replied “it’s stone soup, but it would be much better with carrots”....
1 tag
Software Entropy
Entropy refers the the amount of disorder in a system. In software systems, we generally mean software rot
Don’t live with broken windows
Some software systems have code which stays pristine, others tend to rot and decay. What makes the difference is the attitude by those working on the codebase. Researchers of crime statistics proposed a theory of broken windows which states that one...
1 tag
The Cat Ate My Homework
A pragmatic programmer takes responsibility for everything they agree to. You *ALWAYS* have the right to not take on the responsibility, but when you do, you should expect to be accountable for the outcome.
Tip 3: Provide Options, Dont make Lame Excuses
Always be honest and direct, admit mistakes and offer solutions. Don’t say something can’t be done; explain what can be done to...
April 2010
1 post
3 tags
Use GMail for iPad in Chrome
Create a shortcut to the following link:
%userprofile%\AppData\Local\Google\Chrome\Application\chrome.exe —app=”https://mail.google.com/mail” —user-agent=”Mozilla/5.0(iPad; U; iPhone OS 3_2; en-us) AppleWebKit/531.21.10 Mobile/7B314” —user-data-dir=”%tmp%\gmipad”
I like the simple interface here…just clean and simple.
March 2010
2 posts
1 tag
Chrome can now save all open tabs to a bookmark, which nicely complements...
– How do I save tabs? - Google Chrome Help
WeakEvent Patterns →
February 2010
4 posts
1 tag
Smells and Heuristics: Tests
T1: Insufficient Tests - A test suite should test everything that could possibly break. The tests are insufficient so long as there are conditions that have not been explored by the tests.
T2: Use a Coverage Tool - Coverage tools report gaps in your testing strategy
T3: Don’t Skip Trivial Tests - They are easy to write and their documentary value is higher than the cost to produce them
...
.NET Memory Management →
Advice re Procrastinating on finishing projects:
You have to get into the same...
– Why can I never finish what I start? : AskReddit
2 tags
Search and Replace in VI
2,$s/pick/squash/g
Twitter / xerxesb: VIM-fu: 2,$s/pick/squash/g …
January 2010
15 posts
Calling Atheism a religion is like calling bald a hair colour. - Don Hirschberg...
– Twitter / stevenringo: Calling Atheism a religion …
1 tag
Smells and Heuristics: Names
N1: Choose Descriptive Names - Dont be too quick to choose a name. Make sure the name is descriptive. Names are what makes 90% of the code readable.
N2: Choose Names At The Appropriate Level Of Abstraction - Don’t pick names that communicate implementation; choose names that reflect the level of abstraction of the class or function you were working in?
N3: Use Standard Nomenclature When...
1 tag
Smells and Heuristics: General (Part 4)
G28: Encapsulate Conditionals - Boolean logic is hard to understand without having to see it in the context of an IF..THEN. Extract the boolean logic into a function which clearly expresses the intention of the conditional from the clause which executes it.
G29: Avoid Negative Conditionals - Negatives are harder to understand than positives. Conditional operations should be expressed as positives...
1 tag
Smells and Heuristics: General (Part 3)
G19: Use Explanatory Variables - Break up calculations into intermediate values that are held in variables with meaningful names, rather than inlining them. More explanatory variables are generally better than fewer
G20: Function Names Should Say What They Do - Function names should clearly express what the operation will do. If you have to look at the documentation to find out what it does then...
1 tag
Smells and Heuristics: General (Part 2)
G10: Vertical Separation - Variables and private functions should be defined close to where they are used. Local variables should be declared just above where they are used and private functions should be defined just below where they are used. We would like to limit the vertical distance between invocations and definitions. G11: Inconsistency - If you do something a certain way, do all similar...
1 tag
Smells and Heuristics: General (Part 1)
G1: Multiple Languages In One Source File - Mixing more than one language in a single file is confusing and carelessly sloppy. JSP, HTML, XML, English they all contribute to making things less clear. Ideally, keep each file in one language (at most 2)
G2: Obvious Behaviour Is Unimplemented - Based on The Principle of Least Surprise, any function or class should implement the behaviours that...
1 tag
Smells and Heuristics: Functions
F1: Too Many Arguments - Functions should have small number of arguments. No argument is best, followed by one, two and three. More than 3 should be avoided with prejudice and is very questionable
F2: Output Arguments - Output args are counterintuitive. Readers expect arguments to be inputs not outputs.
F3: Flag Arguments - Boolean arguments loudly declare that the function does more than one...