Peter Gfader's brain noise
Standardization is a way to avoid waste

—> Standardize to avoid wasting time on arguments

Example: coding standards

9 steps to better software design today, by Jeff Bay

The Rules

  1. One level of indentation per method
  2. Don’t use the ELSE keyword 
  3. Wrap all primitives and Strings
  4. First class collections
  5. One dot per line
  6. Don’t abbreviate
  7. Keep all entities small
  8. No classes with more than two instance variables
  9. No getters/setters/properties
A great idea for your next Kata in your Coding Dojo … doing Kanban and eating Sushi … Yes! I wanted to throw in another Japanese word for fun

Full paper
http://www.bennadel.com/resources/uploads/2012/ObjectCalisthenics.pdf

Do you use microtypes / explicit types? via @NotMyself

As per my other entry it makes sense to use MicroTypes to improve readability and to avoid errors.

Bobby Johnson blogged a nice way on how to use the “implicit operator” to create new structs

Using the Implicit Operator in C# for Maximum Nerdy Good Times
http://iamnotmyself.com/2012/03/28/using-the-implicit-operator-in-c-for-maximum-nerdy-good-times/

Have some Nerdy Good Times!

Microtypes to improve readability and avoid errors

I haven’t used Microtypes myself, but I can certainly see the advantage of those. Especially after Refactoring and moving more functionality to those types…

Passing Strings and doubles around in an application can significantly increase the likelihood of inadvertantly passing incorrect parameters to methods. By strongly typing all string and number parameter types, this can be simply avoided. Its then also possible to add behaviour to these types, meaning that “utility” classes are removed, keeping behaviour close to the objects that need it.

http://www.time4tea.net/wiki/display/MAIN/Microtypes

Boy scout rule extended:

Leave the “source code file” in the same condition, as you would like to find it later.

Boy scout rule extended:

Leave the “source code file” in the same condition, as you would like to find it later.

Fluent interfaces #rock

If you havent come across the “Builder pattern” make sure to check this article out

My 2c: Fluent interfaces guarantee a nice coding experience

The Wizard Design Pattern
http://www.javacodegeeks.com/2012/01/wizard-design-pattern.html#ixzz1rm83hM2h

“Dependency Injection” Considered Harmful via @natpryce

Problems with DI frameworks (others call them Inversion of Control containers)

  • They don’t distinguish between “internals” and “peers” (see the GOOS book)

Not all IOC containers can inject dependencies into private member variables.

  • Nasty configuration

Some IOC containers allow wiring up of dependencies in code

  • Auto-wiring of dependencies

Try to express dependencies in code

The constructor is the only meaningful way to let a developer know how to construct an application.

Try to avoid “InitializeContainer”, “BootstrapIOC”

“Dependency Injection” Considered Harmful by Nat Pryce
http://www.natpryce.com/articles/000783.html

You are doing “cross-platform mobile applications”?
I mean iPhone, Android and WindowsPhone?
Yes? Really?
There is more than PhoneGap! See Peter Friese’s great presentation

Notes on .NET and Oracle

Pain with ODP.NET

  • libraries are version specific - Must have 10g ODP.Net for 10g install, 11g for 11g, etc.
  • The ODP.Net drivers rarely work with Visual Studio tooling, and I think still lack any support for LINQ or EF.
  • Bad support
  • Memory leaks with CLOB

Good (contradictions though)

  • ODP.NET 11g works with any version of Oracle Database back to 9.2
    This enhancement was introduced starting in ODP.NET 10.2.0.4
  • Multiple versions of ODP.NET can live on the same box as well
  • XCOPY deployment. You no longer need to use the Oracle Installer to install. We give you files and you just need to gac a few DLLs and update the registry. To download this version look for the “ODAC with Xcopy” download in the list.

June 2009: “System.Data.OracleClient” deprecated in .NET 4
http://blogs.msdn.com/b/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx

Major players
Oracle ODP.NET: http://www.oracle.com/technology/tech/dotnet/msoc/index.html
DataDirect Technologies : http://www.datadirect.com/index.ssp
OpenLink: http://www.openlinksw.com/
Devart: http://devart.com/dotconnect/

ODP.NET home
http://www.oracle.com/technetwork/topics/dotnet/index-085703.html

Oracle Developer Tools for VS2010
http://www.oracle.com/technetwork/developer-tools/visual-studio/overview/index-097110.html

It couldn’t be easier than this. All you need to know is the “CheckAndDownloadUpdateAsync” method. W00t

Oney’s Lip Sync Timing Tutorial - Adobe Flash (by OneyNG)

You can learn heaps from watching others do great work. 

Should we do this more for coders? 
I mean: Record 30min. of our coding day and publish?  

Update: 25 Jan 2012
James Shore does this with his TDD videos for developers here: 
http://www.youtube.com/playlist?list=PL0CCC6BD6AFF097B1 

Nice reminder and puzzle:

  • Minimize code in class constructors
  • Avoid method calls in a constructor especially to abstract methods.