in

Blog By Bob

Blog by Bob

  • Vanity Plate

    I was going to get ROADKILL on my plate on my motorcycle, but bike plates are only 7 letters. These things just never seem to work out...

    Posted Mar 04 2008, 07:53 AM by Bob with no comments
    Filed under:
  • Floss

  • HAHA

    They're coming to take me away, HA HA
    They're coming to take me away, HO HO HEE HEE HA HA
    To the funny farm
    Where life is beautiful all the time
    And I'll be happy to see
    Those nice, young men
    In their clean, white coats
    And they're coming to take me away, Ha-haaa!

  • Solo Scrum

    I do Scrum solo and pair program with myself. I even usually understand what I am writing.

    Posted Jul 19 2007, 07:05 AM by Bob with 2 comment(s)
    Filed under:
  • Sunglasses

    So, I came in at 5:30 this morning (woot! early morning releases) and accidently wore my dark riding glasses. So, of course, this was stuck in my head the whole morning.

    Posted Jun 21 2007, 04:55 AM by Bob with 1 comment(s)
    Filed under:
  • Process Got You Down?

    Process got you down? Have to jump through too many hoops to get your work done? Rules for the sake of rules? http://cristgaming.com/pirate.swf Turn up your volume, open that and get it done!

    Posted Jun 06 2007, 06:27 AM by Bob with no comments
    Filed under:
  • Raymond Chen Talks About Smacking People

    SMACK! Well, not really but funny none the less...

    <small quote>
    The developer who was responsible for investigating the bug decided to use this "signature value" technique. It is often the case that, for throwaway temporary signatures like this, you will use your own initials as the signature value. This is partly egotism but mostly just lack of creativity. But this particular developer had a better idea. Since he had a pretty good idea which component was corrupting the memory, he used not his own initials, but the initials of the developer responsible for the component he thought was the corruptor! That way, when that developer's component corrupted the signature, it'd just be corrupting his own initials.

    Of course, when the developer of the suspect component saw this check-in, he felt kind of insulted. After all, his friend just accused him of corrupting memory.
    </small quote>

    Posted Jun 04 2007, 10:49 AM by Bob with 1 comment(s)
    Filed under:
  • 15 Minutes

    No, not 15 minutes of fame, I have never had that experience.

    I have, however, been having a weird dream lately. I don't sleep much. My normal routine is bed between 2 and 4am, getting up at 7:30 for work. And this goes on and on. On the weekends, I usually try to go to bed just early enough that I can fall asleep without hearing all the people around me getting up and being noisy, so 4 to 5 am, but I do sleep in on the weekends until 11 or 12.

    Well, I think lately I have been getting just a hair less sleep than I need. I have been waking up at 7:15, and in a half awake/half asleep state, I convince myself I can travel in time. But only for 15 minutes. So, in this theory of mine, I can travel back in time 15 minutes, go back to sleep for 15 minutes, half way wake up, and do it all again. As many times as I would like.

    Of course, 15 minutes goes by and my alarm clock wakes me up, so I guess so far it hasn't actually worked...

    Posted May 31 2007, 09:29 PM by Bob with 2 comment(s)
    Filed under:
  • Upgraded Community Server Today

    You would think I would learn by now, to let things be. I wanted to do the whole CSS Reboot thing (even though I am already late) and decided if I was going to redo my theme from scratch, I would do it on CS 2007. Yeah,...about that...

    ~9 hours later the site is back up and running, using the nice shine...default theme. I am setting this blog post as my home page for exactly 12 months to remind me what happens when one doesn't leave things well enough alone.

    I lost pretty much everything, except I was able to save the posts themselves. Good times...

    Posted May 27 2007, 12:28 AM by Bob with no comments
    Filed under:
  • Stop Already

    When people say 'Comment your code!', they are not saying that you should comment your code just because someone said to.

    //Save the data
    myObject.SaveMyData();

    Blah.

    Rules of Commenting:
    Avoid comments that explain the obvious.
    Write readable code, don't comment unreadable code.
    Appropriately name variables and methods.

    Now, all of your code is self documenting, no one should have trouble figuring out *what* your code does. Comments explain *why* your code is doing it.

     

    Exceptions:
    All methods should have XML documentation filled in fully. Then they only need to read the intellisense and not the code. If the method is properly refactored and scoped, it should be enough.

  • Windows (Office) Sticky Notes

    As I work through out the day, I usually have an instance of Notepad open to keep a running to do list, copy and paste a chunk of code into before I test big changes etc. I have always been some what jealous of the the built in sticky notes on the Mac, but I decided to find a simple (don't have to buy anything or write anything) way to have the same thing in Windows.

    Let me preface that somewhat, we all work for a living and part of that work is in Office, so I am going to assume that we all have it already.

    Grab your office icon and make a shortcut to it on the desktop.
    Add /c ipm.stickynote to the target field, for instance, mine looks like this "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE" /c ipm.stickynote
    You should also see a Shortcut key on the same screen in properties. I assigned Ctrl - Alt - S to mine
    You can also choose a new icon for your shortcut, I made mine an icon of...the Office Sticky Note

    Bam. Ctrl - Alt - S, new sticky note.

    All the note pad, half the fat.

  • Rails Performance

    Rubyonrails.org recently (somewhat) linked to some performance numbers on the perfomance of Rails 1.2.

    <quote>
    Stephan Kaes, our resident performance expert, has released a new version of RailsBench. He then created new Rails 1.2 vs Rails 1.1 benchmarks, discovering that things aren’t as bad as they seem. Of course, those numbers won’t mean a whole lot until you read the full report
    </quote>

     Best Comment on the page?

    Kay on 14 Apr 12:26:
    “Things aren’t as bad as they seem” should be the new Rails motto.

  • Rebuttal by bob

    The author of Half Sigma recently posted a blog about why a career in computer programming sucks, as well as several follow up posts.

    Everyone should have their opinion, and be free to express it, and as such, I wanted to provide a rebuttal for people who maybe wanted to slit their wrists after the long morbid read. I am going to quote, selectively, passages of text and offer my own words in response. Do I agree with some of the items he brings up? Sure. I would be surpirsed if anyone, computer programmers included, didn't dislike certain facets of their career. Even people who work in an industry doing what they would do for free as a hobby anyhow.

    Why a career in computer programming sucks

    <quote>
    Computer programming is a job that’s heavily dependent on temporary knowledge capital. It’s temporary because the powers that be keep changing the languages and tools that programmers need to do their jobs. In nearly all other professions, knowledge capital increases as you grow older because you keep learning more about your field. But in computer programming, the old knowledge becomes completely obsolete and useless.
    </quote>

    While I agree much of our knowledge is fleeting and could be considered 'temporary', the knowledge that is such is meaningless weighed against the knowledge that *does* carry forward. Moving from language to language, platform to platform as time progresses, you will indeed find challenges in learning new tools, and new languages. The trade off on languages is almost a moot point though, would anyone seriously consider programming in VB 6 that they already know, superior to programming in .Net? Actually, don't answer that. I have worked with people who do indeed believe such a thing.
    What knowledge travels with us? Do you suddenly forget how to write legible, well documented code? Do you forget how to properly refactor? Do you forget all of your architectual knowledge and start writing code spaghetti code in the code like you did 20 years ago?

    <quote>
    So what advantage does a 60-year-old .NET programmer have over a 27-year-old .NET programmer when they both have, at most, 5 years of experience doing .NET programming? Absolutely none.
    </quote>

    I think I already answered this, the 60 year old developer is more likely to build an architecture correcly the first time. His years of experience will allow him to see more readily when he is painting himself into a corner. And this is only talking from a pure code perspective. What about domain knowledge in the fields he has worked in? And experience implementing this knowledge in previous code bases, living through the scares of failure to write better code *because* of those failures. Programmers retain alot more knowledge than the language of the day, and this is a strong advantage to someone with more experience. Ever walk into a new job as a contractor and try to quickly work up an application, accessing a multitude of legacy datastores and systems, many not even following basics such as the normal forms? Let someone fresh out of college do that as effeciently as the 60 year old.

    <quote>
    Other professional fields are not like this. I remember reading the classic 1933 edition of Securities Analysis by Benjamin Graham, and as I read it I was amazed by how useful and relevant the material was even though it was more than 65 years old.
    </quote>

    This comment I agree with. I can't think of many 'professions' that change and morph as quickly as computer programming. But to say that you can't read anything from decades past about computer programming that is not still relevant? Edgar Codd maybe? Not much changing there. And for the things that do change, anyone would be hard pressed to deny the improvements are phenominal. And how many computer programmers do you really think would be interested in programming if it were as static as 'Security Analysis'? The main criteria I use to judge my progress every year is to look back at the previous January and realize what a hack I was. The day I stop seeing the difference is the day I will wish computers stood still. I hope that day never comes.

    <quote>
    Computer programming is a low prestige profession.
    This relates to the prestige thing again. When a company I worked for wanted to save money on rent, guess what department they decided to move to the low rent satellite office? You guessed it, the IT department.
    </quote>

    This is a quote I wanted to discuss, but in a much different way. I grouped sentences from two sections together because they are closely related. I have no arguement with alot of his comments in this section. He talks about cubes instead of offices, and having to fight nail and tooth to get such cheap, simple, amazingly productive adding tools like large or second monitors. I am actually going through something similar, where I have been trying, pretty much since being hired, to get a second monitor. I have even offered to bring in my own video card and monitor.
    Having agreed, I want to somewhat disagree for a moment. I don't think the developers are necessarilly the victims here. I too often see a majority of developers who really only see this as a job. They aren't providing a good screaming sign that developers provide value. Until our profession can provide value as a whole, we will be treated like this. Is it fair to the developers providing value? No, not really, but life is often not fair.

    <quote>
    I’m sorry about using a word that doesn’t exist in the dictionary, but foreignization best explains what’s happening in the computer programming industry.
    First of all, there is the familiar outsourcing of jobs to foreign countries, mostly India. Because of this, the computer programming industry within the United States is an industry with a shrinking number of jobs, although as a worldwide phenomenon I’m sure computer programming will grow at a brisk rate. Would outsourcing of computer programming and other IT jobs be such a big trend if the industry were more prestigious? I think not.
    </quote>

    I have a two part response to this item as well. First, outsourcing sucks. I do not think our country as a whole should move knowledge positions outside of the country. With the extent that manufacturing has fleeted, knowledge is our power. Then again, programming is the act of manufacturing software in a way, so maybe there is some method to the maddness.
    Once again, having somewhat agreed, let us address the flip side. If the rest of the country is anything like North Carolina, companies *can't* fill their positions. When I recently started looking for a job, I participated in a long process of interviewing companies until I found one that I thought was a great match for me. I said no to several along the way, with little worry that I would be left stranded. Is it always like this for our occupation? Definitely not, but if you have the passion and the skillset, and you *want* this career and aren't just punching the clock, you *will* be in demand. Period. Have you ever had to maintain a code base when the project was outsourced? I don't think our livelyhood is really being threatened.

    <quote>
    It is often suggested that the most natural next move “up” is into project management. But the first problem with this situation is that project management sucks too.
    </quote>

    While I agree that going from being a computer programmer into Project Management would suck, I have seen many people who are very good at fullfilling this role and enjoy doing so. I also don't think that this is the only path for programmers any more either. In the old days, you either became a manager or you stagnated. Now adays, in organizations that are more dependent on driving their business with technology, there is a new option opening up for seasoned developers. The new role falls under the title of Software Architect. I should clarify, this isn't necessarily new, but it is expanding to be a viable role in a much wider breadth of companies. While this could still be considered management of sorts, it is the kind of management that I, being passionate about developing would not be averse to filling.

    The death of the generalist software developer

    <quote>
    Because the new technology is so much more complicated than the old technology, it's now impossible for one person to be an expert in all the different tools out there, and even in a single project this is often impossible. In a single project, you will often find database programmers who just do back end work in Oracle or SQL Server, middleware programmers who would do the C#.NET type programming, and then web designers who do the HTML, CSS, and JavaScript programming.
    </quote>

    Welcome to the maturity of our industry. Look at the housing industry. While the plumber can probably do the electrical work a new house needs, and maybe can even paint and lay the foundation, specialization allows you to have each participant in a project do *a better job faster*. I have had a thing for XHTML and CSS for awhile now, when I realized I was lacking in these skills. I can get by with them now, and even do some clever tricks when needed. But, get a true user interface/graphics artist to do the user interface for your application and suddenly their value becomes very, very apparent. Developers are not known for creating the best user interfaces, why *make* users use one made by them. And for SQL code? Hell, I don't even *want* to write SQL code. Thank god for DBAs!

    <quote>
    The interesting thing about .NET is that there are various language flavors to it. There's Visual Basic.NET, C#.NET and even J#.NET. This tips us off that the actual language is only a minor part of the whole development tool. Much more complicated is the huge class libarary, and understanding the idiosyncracies of how everything works.
    Fancy coding expertise, like the ability to write a Quicksort, is not necessary in the modern software development environment. Knowing how to set everything up so you can call Object.Sort() is what's required.
    </quote>

    Once again, this goes back to providing value. If I can write the business layer for my application in the new tools in the same amount of time it used to take to write that jazzy sorting algorithm in the old tools, how am I not providing more value to the business now?

    <quote>
    The second trend, and the more interesting one in my opinion, is that the computer programmer's role in the organization is shrinking. The software developer who does everything--talks to users, develops the "architecture," codes it, tests it, and then deploys it, is pretty rare. In fact, it would probably seen as an example of an out of control software development process.
    </quote>

    Believe it or not, this is actually a trend that is reversing, and Agile has alot to do with it. In an Agile product cycle, you probably *are* architecting the application, building the tests and coding it up. And you better be talking to the users, that is the driving difference in Agile. It is all about communication. I have been doing Agile for a while now, and even with the down falls, the communication aspect is definitely worth it. The days of going of in a corner and writing up some code until you turn it over to QA could be coming to an end. If not from Agile itself, then from an upcoming methodology that will learn to leverage the things it does right, and maybe supress some of the things it does not so right. I don't say wrong simply because Agile is just that, agile. You leverage the parts that work for you and augment or replace the parts that don't. You aren't stuck with a concrete list of 'things to do'. But enough about that.

    Many of his replies to commentors relate their comments to naivity, and their fresh out of collegeness(hmm, new word?), while the author is in his late 30s. Well, just to push that aside, I am 36, maybe a couple years younger, but definitely not noticably.

    Now, while this was a rebuttal to many of the posters comments, I do thank him for his passion on the subject. It sent me down a path to truly reflect on what I do day in and day out. What I like and don't like about it, and what I want to get out of it, both now, and going forward. Thank you for a good read.

    Does a career in computer programming suck? Not for me, no, not for me.

  • Staring me in the Face

    Sometimes, well, often even, I amaze myself with my own stupidity. I have been disgruntled for awhile because you can't make a region token multiline, so you can do something like

    My Magic Method

    but you can't do something like

    My Magic Method
    Is Better Than
    Your Magic Method

    and then one day the solution light bulb popped on and I could not believe how in the hell I had not thought of it soon. And the change to my coding/commenting style is minor

    #region My Magic Method
    /// <summary>
    /// This method does magic as many times as the NumberOfTime sent to it
    /// </summary>
    /// <param name="NumberOfTimesToDoIt">int for how many times to do magic</param>
    public void SomeMagicDo(int NumberOfTimes)
    {
        10 PRINT
    "Doing some magic";
        20 GOTO 10;
    }
    #endregion

    versus

    /// <summary>
    /// This method does magic as many times as the NumberOfTime sent to it
    /// </summary>
    /// <param name="NumberOfTimesToDoIt">int for how many times to do magic</param>
    #region My Magic Method
    public void SomeMagicDo(int NumberOfTimes)
    {
        10 PRINT
    "Doing some magic";
        20 GOTO 10;
    }
    #endregion

     BLAM! I always had my multiline region ability, I just didn't realize it, and noone took pity and told me.

    This post brought to you by Coding With Line Numbers ®

  • MS Wish Responds to Bob

    So, I sent a SQL 2005 request to MS Wish last week, basically what I would like to see is a client side ability to set up database diagrams in a read only manner. It would be nice to be able to visually look at how tables are linked and interconnected without requiring the DBA to add the necessary permissions to allow you to do it on the server. DBAs get nervous about giving you the permissions you would need to do server side diagrams, especially since it adds one more attack vector and diagrams can allow you to *modify* the table schemas etc (yes, I assume you don't *need* modify permissions)

    So, I get a response from MS Wish this morning.

    <quote>

    Hello Bob,

    This is not a form letter response. This email is to inform you that Steve Ballmer has *personally* requested all future emails from all of your known address, and *any* address that could in any way possibly maybe sort of be from you be blocked until the end of time.

    Thank you for taking the time to contact Microsoft and have a great day!
    MS Wish Team
    </quote>

    Ok, so maybe that wasn't their *exact* response, but it is what it amounted to in my head.

More Posts Next page »
Copyright © :: BlogByBob.com
Powered by Community Server (Non-Commercial Edition), by Telligent Systems