Browsing Posts published by matt

    We’ve all done it. You start a proof-of-concept project to try to figure something out. Almost no planning or thought goes into it, you just dive right in. You finally get something working, but just barely. Now you’re in fix it mode. Hacking away at it, trying to salvage it, trying to mold it into something usable.

    It’s not that bad, you say. A little refactoring here, some more over there. Patch this, whack that. Oh wait, shouldn’t I be testing this?

    I just went through this and caught myself before I went too far down this rabbit hole.

    The idea is a digital picture frame app for the iphone using images from Facebook. Sure, there are apps that already do this, but I wanted some exposure to the Facebook api. I also wanted to do a relatively small iphone app before I dive into some of my other ideas for projects.

    It was going along pretty well. I wrote some code to pull down pictures from Facebook. I had some code that cycled through the pictures. Then I started trying to shove more feature into it. I definitely need some settings, right? Where will the Facebook connect button go? I’ll definitely need some background threads!

    As I started on my third pass of refactorings, I realized what I was doing…poor code didn’t know what hit it.

    Now, taking the lessons learned and some code snippets (for reference), it’s time to toss the proof of concept into the trash bin. It’s where it belongs.

    This is really just a test post from my iPhone. I just wanted to see what it was like to post from the wordpress app.

    Unfortunately, there doesn’t seem to be a way to embed a picture, oh well. Nevermind, I found it…

    Anyway, I’ve got some ideas for some upcoming posts:

    1) Why my boys will love the ipad
    2) Why my dad will hate the ipad
    3) Why the ipad will be another apple tv

    So, this was my test post from the wordpress app…

    Later!

    Goodness…april.  That certainly feels like forever ago.

    Anyway, here’s a bit of what I’ve been up to.  After the april freelance gig, I was able to do another project with the same company, but this time I got to work with Academy Award winners!  Kinda cool and a bit odd since the industry we were working in was definitely not entertainment.  Since then, it’s been a bit quiet, which is nice since burning the candle at both ends was starting to wear on me.

    So, for 2010, what am I going to do?  Well, I think I’m going to finish the company website.  It’s very…empty.  Also, while contracting can be lucrative, I’m just not that into it.  Sure, technically, I’m on my own, but I’m not driving the direction of the projects.  So next year will be a product year.  I’ve got a few ideas in the pipeline for some iphone apps as well as standalone software.  I think this coming year will be way more enjoyable working for myself.  I just hope I don’t end up hating my new boss :)

    As some may or may not have heard, I started freelancing on the side.  My first side project is pretty interesting ( was interesting if your reading this in the distant future.)  Basically, the project was to talk to different devices and provide status information back from the devices through an LCD panel.

    Pretty straightforward.  Oh wait, it has to run on an EPIA platform.  Also, Windows XP isn’t a viable option…

    Hello Linux and Mono!  Did I mention that my preferred language is C#?  I’m not a fan of writing C or C++ since I drank the .Net Kool-Aid back in 2003.

    Surprisingly, my development platform of choice (Vista and VS 2008) and the target platform (Linux + Mono) work out well.  Really the only hiccups I’ve encountered have been with the project files and NUnit.  If I create a test project in VS2008 and open it with MonoDevelop (on the Linux development machine), it can’t seem to locate that NUnit assemblies, but after I correct it in MonoDevelop, VS2008 doesn’t have a problem with it.

    Maybe it’s just me, but the ability to run the same code on two different platforms makes me happy.  And it’s crazy easy to run a Mono development environment.  Just download VMware’s player, download the virtual machine for the Mono development environment and run…it rocks.!

    Actually, I fibbed just a bit…there’s been one other issue with Mono that kind of annoys me.  It’s with the implementation of the SerialPort class.  Basically, the SerialPort class has no notification for received serial data.  It’s pretty easy to work around this (it involves polling the SerialPort and works on Windows just as well), but it is a pain point.

    So, if you find yourself needing to do cross platform development in .Net, check out Mono.

    Ok, don’t freak out…there are still plenty of places to waste time on the Internet.  Just Google something, anything…

    But seriously, maybe it’s just me or has anyone else noticed that when using IE7 to read a story on slashdot, there is no way to change the threshold on the comments?

    In Firefox or Safari, it works just great…you get a nice menu where you can adjust the comment threshold like this:

    slashdotmenu

    In IE7, no such menu, all I get is a dreaded “Error on page.”  This is the first place that I’ve seen that doesn’t work with IE7.  Actually, I take that back, github also has some issues when trying to use IE7 to navigate around.

    So besides griping, is this a sign of things to come?  Granted, I’d bet that most people going to slashdot/github may be more inclined to use alternative browsers that implement web standards more vigorously, but will more websites start foregoing IE?

    Ah, when Unix time was 1234567890.  I remember it like it was a couple of hours ago…

    CodeRush is one of the greatest tools I’ve ever used in Visual Studio.  Quick navigation, code templates, re-factoring, all kinds of goodies to help make working with code easier.  Even though CodeRush has some  great features, it’s two main drawbacks are not everyone uses it and it only works within Visual Studio.

    Tonight I felt a little like Scotty in Star Trek IV: The Voyage Home:

    scotty_trek4 [faced with a 20th century computer]
    Scotty: Computer. Computer?
    [Bones hands him a mouse and he speaks into it]
    Scotty: Hello, computer.
    Dr. Nichols: Just use the keyboard.
    Scotty: Keyboard. How quaint.

    So tonight, I’m just happily writing an email when I realize that I want to select a bunch of lines to move them.  So, what do I do?  I start hitting the ‘+’ key on the numpad.  In CodeRush, this will start selecting text, increasing the selection scope with each press of the ‘+’.  I finally stopped after 3  or 4 presses when it finally dawned on me that all I was doing was typing ‘+’.

    “Oh,”  I thought to myself, “this isn’t Visual Studio.”

    How quaint.

    Git And You

    No comments

    Git is the new hotness.  There are other distributed version control systems, but git seems to be the one that’s taken off the most from what I’ve seen.  There’s Mercurial (the command “hg” is pretty sweet) or Bazaar (does anyone use this?), but it seems that most all of the projects I’m interested in that use dvcs are using git (I’m looking at you IronRuby.)

    Git may be a bit confusing when you first start working with it, but fortunately, http://gitready.com/ has a bunch of tips for dealing with git day to day.

    I was recently reminded of this by Scott Bellware on this hanselminutes episode.

    It’s easy to fall into the trap of thinking about TDD as a testing technique.  I mean, Test is the first word in TDD.  And normally you hear it talked about as Test Driven Development, not Test Driven Design.  Since most development going on is probably not Greenfield, but is in maintenance/support mode, I’d bet that those involved with most applications think that the design phase is “done”.  Even when new features are being added to an existing application/platform, it’s not like you’re starting from scratch, you’re usually bolting things on to existing functionality.

    And therein lies a pitfall.  Most people would probably be more concerned with not breaking existing functionality, as opposed to letting TDD help design the new functionality.

    Another pitfall comes from that first word, Test.  Don’t get me wrong, I love tests.  However, it is quite possible that you follow the red/green/refactor methodology of writing tests and still come out with poorly designed code. This comes from what I like to call the “Mother of Invention Principle”.  Yeah, I just coined a principle.  Basically, one of the ideas of TDD is that there should be no new code added until it is required by at least one test.  So, if you follow this principle, then you should technically have 100% code coverage when finished.

    Unfortunately, 100% code coverage isn’t useful.  Anything but 100% would be useful (but more on that in another post.)  Maybe the tests were poorly designed.  Maybe the tests are spot on, but they require huge amounts of setup and teardown for each test.  Sure, it’s tested, but is it designed well?

    This kind of thinking, about “fully” tested code, sure make TDD a good sell to management and QA, but alas, that’s not what TDD was meant for.

    Anyway, I won’t belabor the point, listen to the podcast.  Scott and Scott talk about this much more eloquently than I can.

    I won the lottery?

    No comments

    As amazing as this may sound, I’m pretty sure that before tonight, I have never received a scam email. I’ve gotten tons of spam, but never a scam.  Perhaps I’m a bit too excited about this turn of events but, I’ve never won a lottery before!

    It’s amazing to me that these scams still work.  If they didn’t, why on earth would they continue to be sent out?  Why would there be site after site explaining the scam if people didn’t respond to them?

    What annoys me is that it seems as if the scammers aren’t even trying.  Here’s the email I received:

    Subject:CLAIM YOUR PRICE
    We the Bonoloto Combinacion Ganadora wishes
    you mery xmas and prosperous new year in advance. 
    
    We wish to inform you that, you are lucky
    to have been selected among the 50
    Recipients,your Email Address attached
    to a Ticket Numbers(7 9 17 20 23 27)
    has won an Award Sum of 1,200,000.00.
    (One Million Two Hundred Thousand Euros)
    in Bonoloto. Combinacion Ganadora, Madrid,
    Spain. 
    
    For further inquiry and processment of
    your prize fund,please Contact
    our Fiduciary Agent:
    ...blah, blah, blah

    Now, I’m not the best at grammar, but come on, just hit F7 before pasting this text into a mass email.

    What really annoys me, is if they send this garbage out as-is and people respond to it, what does that say about people in general?