Blog of Rob Galanakis (@robgalanakis)

.NET

The skinny on virtual static methods

Today at work, I saw the following pattern in python: class Base(object): @classmethod def Spam(cls): raise NotImplementedError() class Derived(Base): @classmethod def Spam(cls): return 'Eggs' After thinking it over and looking at the alternatives, I didn’t have an objection. I asked for some verbose documentation explaining the decision and contract,...

Read more

Optional parameters can be harmful

I’ve come around on optional parameters after being an opponent of adding them to .NET.  They can be very helpful, clean up the code by not needing overloads, and inform the caller what the defaults are.  They are an integral part of python and why it is easy to...

Read more

WTFunctional: Be Declarative

Functional programming is one of the most important developments in programming, but one that has been understandably slow to be adopted and understood by many programmers and tech artists.  Over a few posts, I’m going to try to go into the how and why of using a more functional...

Read more

I booted up VS2010 today…

And I’m still waiting for it to load.  Even though I love all of Visual Studio’s features, my god, I forgot how big and heavy it is.  Having a light IDE and a system where I don’t need to create a new project (several more minutes) to just scribble...

Read more

Relearning python, day 4: The ecosystem

I'm mostly finished my service architecture and have moved onto developing the client and UI. As this has moved from the realm of 'normal' programming to more 'framework driven' programming, it has exposed me to a completely new part of python and one I wasn't too familiar with-...

Read more

Relearning python, day 3

The last few days were spent re-organizing my code and writing unit tests.  Here’s what I learned: I was still spending too much time thinking about namespaces, privateness, interfaces, and organization.  Once I got rid of some ‘abstract’ classes that served no purpose (they’re not meant to be subclassed...

Read more

Relearning python, day 2

I got a few hours of python in on Thursday, and had three major breakthroughs. First, I started using PyCharm, a python IDE from JetBrains, the makers of ReSharper.  I think, in many ways, it is better than Wing- I definitely prefer it.  I have a number of the...

Read more

Relearning python, day 1

Yesterday, I started my first major python program, for aggregating together content from social networking sites to post on tech-artists.org.  Holy.  Shit. The first problem is, I got very used to (and good with) Visual Studio and Resharper.  I’m using WingIDE right now but am going to look at...

Read more

Async IO- don’t do naive async!

This post comes from a response here: http://stackoverflow.com/questions/882686/asynchronous-file-copy-move-in-c .  The second-highest rated response includes absolutely terrible advice.  It says, just put the file IO on a background thread.  It shows a complete lack of understanding of how IO works. When your do IO (reading/writing from/to HDD or network), the software...

Read more

The Exception Bogeyman

I recently ran across a post by my colleague Chad Stewart, Lead Dev Support Engineer at BioWare Austin: Try/catch control flow First of all, you ought to know that exceptions are deliberately named. That is to say, they are reserved for exceptional cases. … try { this.SomeRiskyOperation(someParam, someLocal, -1); }...

Read more

1 2 3