Thursday, July 31, 2008

Weekly "Hello"




   Do, normally this would be an iteration wrap up post. HOWEVER, I stil lhave work to do so I will be woring tomorrow. Then I will write about it.




   Don't know if you guys caught this but this is the story of my life.... I'm sure you can relate. It's from Wellington Grey




  


So, there is ONE thing I am a traditionalist about, and that is books. Like, the whole kindle thing... to me is like the cd/Record debate. Like there is no difference you know in your mind... infact, the quality of CDs is much better. However, there is nothing like the scratchy tinny sound of a record to make you feel like you're really into the music. For me, tat feeling is felt when I crack open the cardboard and paper smelling spine of a new book so I tend to steer clear of online reading.


   When I saw this link on Reddit, I was like "sounds dumb" but then three hours later I was like "um, I will read one page" I haven't been able to stop since. That's why this post will be uber short. Sorry. I'm on page 12 (which a lot farther then it sounds since it is an online book).


Seriously, read A page:


    

    John Dies At The End



Talk to you soon, happy developing!



Monday, July 28, 2008

Watch Out for Nick Burns




 


You remember Nick Burns, no? Who didn't relate to that guy, users can be annoying. I've recently noticed myself snapping at more and more people, though. Last week I found my voice getting testy when I was explaining to someone how to install SQL Server 2005 on their home machine. Just today I caught myself acting like the poor support guy at GoDaddy was completely incompetent because he was trying to tell me that “Default Website” is not something they install in when loading Windows Server 2003. I'm sitting there talking to him like a child, and I had to stop myself. Why was it so bad he didn't know that? How long ago did I not know that? Where is this coming from?




 


Is it because now I'm the one sole-ly responsible for the success of my project? Is it because just now am I getting the confidence that, yes, I may know a few things about programming (though reading this blog you'd think I might know everything, lol)? I can't tell you what it is, however I'm going to try to nip this in the bud.




 


I mean, I've worked with some Nick Burnses in my time. Sometimes my questions have been met with incredulous looks and patronizing answers. I thought that these guys had just always been more negative. You know, those guys who spend their free 8 hours in WoW forums flaming noobs. It's ironic that I find myself acting this way. In fact, it wasn't that incredibly long ago I had to have someone explain to me what a checksum was. Why am I so quick to judge people that may need a little of the same help?




 


I've become that commenter lately too. Where I give feedback on articles and opinions with answers that scream “duh" or "this is such the obvious answer, how could you NOT see it?"

 


It's getting a little funny, I think about someone touching my code.... like if I were to hire a more junior developer to work on this project, and I cringe at the thought of them screwing things up. This is borderline ridiculous due to the fact that not six months ago I was that developer in someone else's code. I'm sure there were many times they were cringing and ready to bite my head off for doing things in a way that they wouldn't, or considered incorrect.




 


Have any of you reached this point in your career? Is it just developer adolescence? The responsibility of my own project?




 


Hopefully this is something I will be able to get under control before I am dealt a heaping serving of humility.


 


Oh, and by the way, YOU'RE WELCOME.

 



Monday, July 21, 2008

newest article


Howdy folks. First things first, Phillies Mets Weds night with my favorite men in the world, my brothers. Can't wait.


Contest: Need something offensive to Philly to paint on a tee shirt. The default will be "I Heart #35", but if someone can think of something that will get Philly fans mad you will win a G-Dev tee shirt. Something like "the Iggles Suck" or "Boyz to Men were off key" something good.


Here is my latest article, and even cooler than that below it is my awesome "Web Wall" where I keep a running schedule of my iteration and schema changes and all kinds of things. I was going to blur my schema but I couldn't make it out when it was magnified 282348723 times, so unless you're in the FBI or on Criminal Minds you're not making it out. (If you are in the FBI or on Criminal Minds just email me I will send it).


Without further ado, Article , Wall (it rulez):




Sunday, July 20, 2008

Reflection - Iteration 1


Well, here it is, my first post-iteration reflection. (I definitely rested over the weekend, so that's already taken care of). Looking back I'm generally happy about how things went. I got a lot done, the database is completed, Subversion installed (I want to keep my work as transparent as possible, so even though I'm the only developer I want my boss and people working on the site to have access to my code. Also, I plan on versioning related documents and comps that they are supplying), business base completed, about ¼ of the business objects done, staging server set up, login control completed, login status control created, user security framework done, nHibernate implemented. All in all I'm pleased with my progress and am optimistic about the coming weeks.



Some of the things I can work on are better time estimates. I was done with the task cards for the first two weeks last Monday. I do need to get a better grasp on how long things are going to take me, but I'm sure that will come with time.



I also didn't get together with my boss to show him my deliverables. I plan on doing that in the morning and setting a regular meeting every two weeks.



I had a good weekend, a lot of beach and little league. I'm becoming a big fan of my friend Kellie's step children's teams. Fun to watch.



For the cool kids asking for a blue hair pic here it is in all its glory. It's a blurry iPhone pic but it will do for now. I like the photo album idea, going to implement it soon.





Hope you are having a happy Monday!



 



Wednesday, July 16, 2008

Hi Friends



Hi, I have a great new article coming soon. I promise. NOT as contraversial as the last one, LOL.


/* as an aside, I have to tell you, I have been using my "Would another developer be able to look at this sans comments and see exactly what it was doing, quickly?" stance as a rule when developing, and I gotta tell you I'm cranking out some dang beautiful code */ 


So, I was going to focus on writing tonight, however it was the Mt. Carmel fireworks in Berkeley Heights tonight. For those of you not from the area they are really the most amazing fireworks you've ever seen. I actualy usually hate fireworks because I have the internet, and television to entertain me. However, these are magnificent, the team that does them won the best fireworks in the world or something. I don't know, there are lots of rumors.I thought of you guys, so I took some pictures to share.So, for once there is nothing to do with development in a post. I hope it is still entertaining.


Below are the pictures. One last thing, to everyone that reminded me how awesome resharper is, thanks! I had let someone tlak me out of it a while ago and now that I have it back I love it!  Anyway, enjoy!






Monday, July 14, 2008

Making decisions


*sigh* one thing I didn't anticipate about this project is just how much fun designing it would be. From schema choices, to naming conventions, to frameworks, to ORM, to what methods to include in my base business object. It really is a freaking blast, and also very daunting. The amount of research I am doing, is something I expected but really didn't know how to approach. I first assumed that the best way of doing things would be the way I was used to doing things. However, after taking a look around to what is out there while making sure I knew what I was doing, I realized that there are so many more options and much better ways to achieve the goals I have for this application.


I'm dizzy with power right now, I really am. Active record set? DDD? NHibernate? Guids? Ints? Camel Case? SVN? Git? I'm gonna throw up.


By the end of this week I hope to have most of those worked out. I'm sure most of you have been here already, this is my very first time. I mean, it's not like I haven't done my own projects before, but never to this scale and this awesome of a project. Does anyone have any wisdom to pass on?


Things to avoid?


Things to make sure to take account of?


Any help greatly appreciated.



Friday, July 11, 2008

Sup Br0s?

Howdy, ya'll, how's things? Good over here, 007 is coming along great with no big surprises yet, however it's only been a week so. I'm going to go more into detail next week with a big dev diary.




 


Vista RAWKS, dead serious bros. It's intuitive, it's attractive, and it's fast. I have a running theory about people being predisposed to hate anything Microsoft. I'm running it on a MAC which makes it really fast. I also learned this week that they all run MACs over at Microsoft, which I think is very cool, I mean they are picking the best hardware. I almost wonder really what level of competition they are to each other. I mean, it seems that Apple more competes with hardware companies, besides OS's is there a product that is important to MS and Apple alike? Ok, so there is the Zune, but I don't feel like that is the focus of Microsoft's development. I think people just enjoy deciding that there is a rivalry. So the moral of this story is that don't think something is crap because everyone else says it is.




 


Best website sent to me this week: http://isxkcdshittytoday.com.


 


Are any of you watching America's Best Dance Crew? I have loved this show, last year there were some kids on it that were street dancers in Boston that I had run into in Quincy Market. They were really talented so I watched all season to support them, I really got into the show though. I have been watching this year again, and I love this show.I hate reality TV, but this show is a fun watch. Try to catch it if you can.  




 


What is everyone up to this weekend? I'm taking it pretty low key, some family stuff, maybe the beach. Catch up on some laundry.




 


Currently interviewing some teams, I need a fast, very attractive, seamless flash video player made. I'd prefer it if the group I worked with was in the tri state area but if find real talent I woul d be willling to deal with people out of the area. Drop me a line if you feel like your group may qualify.




 


Hope everything is going well out there, I think I'm going to throw on my bathing suit and lay out for a while this afternoon, it's beautiful out!


 




 


 




 




 


 




 


 



Tuesday, July 8, 2008

Documentation: A Sure Sign of Garbage Code


When I was coming up as a young VBA pup I was told again and again “all good programmers document their code,” and “constant documentation a good developer makes” and “blah, blah, blah document” and I hated it. I hated documenting, I hated figuring out something fun and then going back and explaining it to someone else in English. I always associated documenting code with reporting and testing as the vegetables of programming, I didn't like it but it was essential for success. The reason it was important, I was told, was because if another programmer had to work with your code you wanted them to know what they are looking at. You wanted them to be able to get right to work and not have to spend much time gearing up and learning the system. I believed this for much of my 27 years on this earth, but lately I have realized one thing, if your programmer needs documentation in order to be able to quickly pick up on what it is doing one of two things are true: either the programmer sucks or, more likely, your code sucks.


 


Now, I'm not talking:


 


//This method was created because the full select query was costing performance, so we made this one to call back only two values.


 


That type of commenting is important because sometimes you need to quickly remember why you DIDN'T do some things in ways that you usually would. We don't always research our bug trackers and dev logs before fixing something we perceive to be broken or done incorrectly. This way we don't change something that we did for a reason we may not remember.


 


I'm more speaking of:

 


 


//07/06/08 S. Chipps This method retrieves a dataset from the DB that contains the records that were entered between the two dates passed. First the values are tested to make sure the second is greater than the first then we insert them into the query to get the data we are looking for.

 


 


An oversimplified version of what I am talking about, but you get the drift.


 


Alright, so, there is no reason anymore to record who wrote the method (or function for you naked C folks), we have source control now. It's much more accurate when you are looking to throw some blame around, so sociopathic coders can't frame others for their crappy code. So, basically, writing manual for your code basically says that there is the chance the person reading it may not understand what they are looking at. There is no good reason for this, besides the fact that they are new to the field or technology. However, in that case, I think the best thing to do is allow them to figure it out for themselves or sit with them and explain it.


 


If you've been fortunate enough to witness a truly beautiful application, learning what a piece of it does is not a chore. Everything is exactly where it should be, the variables? Extremely self explanitory. The data? Corresponds with the variables. The objects? Exactly the same as the data. The methods? You can read the name of them and pretty much learn exactly what they do, if you're still curious look down... everything is done in the simplest, leanest, cleanest way possible.


 


What's my point? Stop documenting code, stop asking your coders to document, stop thinking that documentation is a staple in programming. Because it's not, everyone else has realized it. You shouldn't need to document how to install your application, how to set up your local environment, or what third party executables to run in what order before compiling the second time. If you find that is not the case then you're doing it wrong, and your time would be better spent fixing it rather than writing about it.




 


THE END



Sunday, July 6, 2008

The Links - Patriot Edition



Happy 4th, all. This weekend was pretty low key, project 007 started today and I wanted to be well rested. Speaking of which I need to go to bed in a few, lol. Didn't go see any fireworks. I'm not a fan, they are loud and I have the internet for bright flashy shiny things. Here are some things I have run into lately.


Redesign - How do you guys like the new digs? I have two people to thank, I could never have designed my new banner myself. We all know that I'm horrible at making things look snazzy (except for my rockin blue hair). So, one is a girl named Christin Dorner who is a design student, the other is a child prodigy named Lloyd Humphreys from Whales. Both of their sites are on the right sidebar so make sure to check them out.


 Well, I had a whole bunch of links in here but CMS ate it. That really stinks. Basically complaining about Heilman, I had a funny joke about the new Philly picher being reminicent of Henry Rowengartner. Mad frustrating, I would retype but gotta get some sleep adjusting to the schedule change.


I will be back tomorrow, but I will just say hi and goodnight now.



Wednesday, July 2, 2008

Beauty vs. Usability - a Tale of Two Masters


We as passionate developers (or managers, CTO’s, help desk jockeys…etc) have one thing in common, we are attracted like moths to a flame towards the latest and greatest. If something new is coming out we are all talking about it, reading up on it, we could probably tell you five things it lacks before it’s even released. That’s one of the main reasons we are in this, all the cool sh*t we get to play with. This trait comes with a dangerous side effect, which is getting lost in the bright flashy lights of new technology and forgetting what we are here to do in the first place:  solve problems and make the user experience more pleasing.

I have heard stories, and have seen myself, situations where a system has a hodge-podge of very cool stuff, but isn’t usable. Also, there are applications that have been refactored to death, turned into a bloated barely functional mess. What it means when this happens is that someone couldn’t find the balance between what they think is neat, and what will benefit the business. I myself am coming up on a project I am very excited about. When I first started the planning process in my head I was going to use MVC for URL rewriting (ugly url’s are becoming inexcusable) and LINQ for my SQL and I was going to set up all the designers with the Expression Suite and it was going to be the pinnacle of forward development and everyone would be impressed with what I knew. However, after taking a step back, realizing that organizing a project like this is new for me, I decided to go with more familiar methods like active record sets and stored procedures. The new things I am going with are the 3.5 framework, and VS 2008 from 2005. Why? Well, they both cost me very little “learning overhead” time and the 3.5 Framework is better with paging than 2.0 and VS 2008 has better JavaScript debugging, two things that will save me a lot of time. (seriously, how did it take this long to get good JS debugging? It’s only been around as long as, I don’t know, the internet?).

So, how do we avoid this issue? What are some questions we can ask ourselves that will help us choose a good advancement over one that will spin our wheels but not benefit the application. Well, let’s start at the part where you find something exciting. The first thing you need to think of is your feature debt, what does it look like? How does adding this element to your existing application help to lower that debt? Will it save you time that you can use for development? If so, how much time? Will it eliminate some of that debt? Really? Will it, or are you just saying that so you can feel better about playing with it?

Another great way to tell if your investment is worth taking is to convince your end users or project owners that it is. Non intar-people don’t want to hear about refactoring, or code integrity, or WPF. They want to see bright shiny flashy things that look cool and make their lives easier. Convincing them that they need something they’ve never heard of and don’t care about will be a great barometer to see if this change is worth making.

Someone called the solution this quandary an Aristotelian Mean the other day. I had to look that up, but it basically means a perfect balance between two extremes, which is applicable only if you can attain it. Perfect code is beautiful, but if we keep going back and second guessing ourselves we aren’t always helping our users. All my advice is well and good, but while I have the knowledge I lack the experience of finding this Golden Mean between these development poles. I’m sure I’ll learn on my way, but if anyone has any more suggestions, I’d love to hear them.