December 2004 - Posts
Sam's post on Christmas eve was perfect. People often ask me why I work with MS technologies and I always say the same thing. “Microsoft provides me with all the software I need to develop, roadmaps to future technology so I can be prepared, and all the tools to make my customers successful FASTER.” MS is all about time to market and so is the business world. That's the difference. Anyway thought it was a great post.
Especially:
“The technologies enable me to go fast, make my customers delighted and make money for them and me. That's success to me.” Sam Gentile, 2004
Omaha's next local Microsoft.NET UG (Omaha.NET) meeting will be held on the 20th of January at Creighton University, West Omaha Campus. Ken Getz will be presenting on a topic to be determined. Whatever it is, mark your calenders as he is a great speaker and always does a kick ass job laying down the smack. This will be his second appearance at the Omaha.NET group, and it's all made possible by INETA.
I have been fortunate enough to be involved with INETA since the beginning and feel privileged to be both a UG liaison for other groups in my region, as well as a strategic member of the UG relations board. Thanks INETA for all of our speakers, both past and future.
Roll call to this date: Sam Gentile, Ken Getz, Jon Box, Rockford Lhotka, Martin Shoemaker, and Dan Wahlin
Yesterday I received an update on a project I am somewhat involved with including the standard Visio diagram with a purposed database layout from one of the developers on the project. After a quick glance there were some glaring revisions that needed to be made in order for the document to be an accurate representation of what the schema should look like. On of the suggestions I made was to use Xref tables between entities like Person > Address, Person > PhoneNumber, etc.. I explained to him the advantage of using an Xref table with a type field and how it would solve the problem of one person having many addresses, while minimizing the duplication of data in the address field. To my surprise, the developer had never heard of Xref tables or any of the other suggestions I made. A couple of the other main suggestions I made were:
- Use a standard nomenclature for tables,pks, and fks ie. Person(Table), Person_ID(PK), PersonID(FK)
- Use a guid for the identifier in certain tables for added security
Having said all of that, I started to wonder whether what I was explaining to him was standard or simply preference, or maybe a little bit of both. I was shocked to hear that he knew nothing of Xref tables, he had not even heard the name before. Is this no longer part of development education. Is the education market so corporate that we talk more about tools than theory and practical application now?
Anyway, I would be interested in hearing from you're thoughts on these issues. What are some of your practices in regards to the above mentioned suggestions?
If you have not heard yet, Yahoo! has launched their
beta movie search. You'll immediately notice the similar layout and color scheme of Google's Image Search, and after performing a search you'll realize the power of this tool. I have spent about an hour surfing for movies and I have yet to not find something I am looking for. I am surprised I have not heard more pub, but I suspect it's because of the release stage of the software. Pretty cool though.
Okay, so if you have not heard about LinkedIn yet, you're missing the boat. I know I am probably coming in on this WAY late, but it's great. Sam, hipped me to this site a few weeks back and I have been addicted since. I am trying to get everyone I can involved as many of you know how I get when I love something. I tend to feel that everyone else needs to love it just as much or more.
Anyway, the site is a people networking site (think “Six Degrees of Separation”) that brings people together through mutual friendships. The site is free as I believe it's in some sort of a beta stage. (I received an email the other day asking me how much I would be willing to spend to use it on a paying basis, so it's my only conclusion.) So far I have over 100 contacts throughout the network and it's growing daily. It's a real thrill to look through everyone's contact lists trying to think of what types of things you may be able to help each other out with.
Having said that, I've recently started to think about this type of a site in the same light as blogs. Both offer information at your finger tips, but require time and investment to understand the full potential and benefits. Being extremely short on time in this world of sleepless technology, I find myself having to make more time organization related decisions with each release of this type of technology. Do I subscribe to another blog, or work on growing my network. Should I comment on 5 more blogs, or should I send out 5 contact requests. etc.. etc.. As a developer, I find myself asking one question: “How can I be more productive as a user?” It's the age old question that all of us strive to solve everyday. Is it fundamentally flawed? Can we keep creating applications by attacking the chores that take the most time to complete? Won't we end up creating more work to fill in for the time we are saving?
It reminds me of a trip to the zoo recently. I was with my little cousin who is in love with frogs. We sat through a 20 minute video on frogs and it had a real impact on how I've thought about technology lately. It's funny the similarities between frogs and technology or evolution in general. Frogs start out as tad poles swimming through the water. Life is simple and they can get places fast. The entire subsystem moves at an alarming place below the water. Tad poles zip though the water with virtually no impedance. As the tad pole grows, it becomes bulkier and more sophisticated, loosing touch with the simpler aquatic life and becoming oriented with the land based environment and a slower systemic existence. I'm mixing words here, but the point is the tadpole is forced to grow up. Even though he is forced to leave a streamlined and simplistic environment, for a slow and methodical one, the new world gives the tadpole opportunities to do things he could not do in the water. My point being, sometimes you have to go backward to go forward in technology. What may seem like a hitch today, may become the catalyst tomorrow.
First off, I loooove .NET. I have been a web developer for years and enjoy taking a couple of hours and turning them into a super productive web app dev session. Writing code in .NET is fast and clean, god bless it. Having said that, I realized the one thing that I hate about .NET today. It hit me like a sack of rocks this afternoon.
While sitting in another boring intro session at a client's office, I was subjected to another severely over architected framework. I found my self asking the question I have asked before at other clients all deriving from “What the F**k”? This one was the mother load. I am talking over 40 name spaces, countless classes, needless nesting, and tens of thousands of lines of code. Sometimes I couldn't remember how I even got to the method I was looking for in the first place. The kicker, this company has 300 people at it! 300! It's like IBM was here and sold a solution 100 times to large. But I digress..
What I am trying to get it is when did .NET mean more time to architect systems. I think some people are confused about what .NET's core purpose is. Saving time in the construction effort does not mean more architecture time, it means faster deliveries and time to market. Some one needs to arm some Microsoft marketing reps with a ton of material and send them out on a bounty: “Wanted: Over Zealous Architects”. I think there must be some award that no one knows about that is givin to the person who can create the most retarded infrastructure. I think these people get together in a cottage in the Alps, dressed in robes, drinking martinis, and laughing about the poor suckers who have to develop on this crap. Most of all, where can I get a copy of the shareware app that turns 1 predifened class into 10 abstract ones? If I hear “It really allows flexibility..” one more time I think I will have an aneurysm.
Bottom line is this has to stop. Fellow architects, here me and here me well. Stop polluting your company with ridiculous systems that do no more than cause additional work for everyone. Everyone knows your the architect, you don't need to further develop the stereotype by creating bloated architectures. Time is money, stop wasting mine.
Joe Olsen
Located 7 layers deep, line 2571, wondering why...
I just finished attending the Omaha.NET December UG meeting where David Chappel spoke on SOA and Indigo. While I really enjoyed the Indigo talk it was very high level and I would have liked a bit more depth. I have been studying Indigo (Microsoft's next messaging framework) ever since it's announcement, but still don't feel like I have my head around the workings of it. We did get to see some syntax (already outdated of course) that provided some good examples of what to expect. I like the way he related Indigo and ServiceMethods to WebMethods. It really took the edge off with the audience and put them into a familiar zone having dealt with web services.
One of the things I was most impressed with and completely bewildered by at the same time was the following:
[ServiceMethod]
private void Something()
{
}
I don't know if I am quite sold on this idea, which is a fundamental idea of Indigo. The idea being that a method can be private and not accessible within the same app domain, but can be accessed through the exposed service. It was really the sticking point for me at which I started to really think hard about whether I thought that was a good or bad idea. I think it's an interesting concept and maybe I am just a little confused about it's implementation. It just feels weird. I probably just need to get used to this object vs. service thing. I do see the relevance of forcing a method to be called through a service in order to enforce some sort of process or authentication scheme. I also see the downside, being forced to call a service within a trusted area. Why be forced to call something that is going to take longer just because. I have heard Don Box talk several times on the push within Microsoft to make SOAP calls faster by making the XML parser faster etc.., but how long will that take?
Now I know Indigo will not be CTP until February (whole day of Indigo at VS Live! .. hmm), and the release will most likely be the latter part of 2006 (probably December 31st), but I still don't see how the benefit of making these types of calls will be speedy enough when release time comes. I love Indigo, don't get me wrong, I am simply a little more confused about the purpose and effort going on then before I went to this session. I may also be tired and grumpy as well.
David also talked about BizTalk and it's role in the SOA as a business management process server. He gave some very good explanations showing the need for a BizTalk environment within your communication infrastructure. I also really liked the way he pointed out the ways BizTalk 2004 is different then it's predecessors, which by the way is in almost every single way.
All in all it was an excellent break form my day and I appreciated the views. It was just about the opposite of Rocky's talk at the HDC last week, so seeing them back to back was really interesting. Both are very passionate about their ideas and are great presenters.
If you missed the conference in Des Moines on Friday, you really should kick yourself. It was a great time and there were some great presentations. I want to thank all of the speakers for coming, most of whom came on their own dime. Some reflections about the conference..
1) If there is a chance to win something (ie. Xbox) and you do not know what time the drawing is to be held, don't leave the conference. A very unfortunate attendee was not present when his name was called and an Xbox was consequentially given away to another attendee. Upon his return, he seemed pretty pissed he missed it and was giving me shit about it. I told him next time he should stick around, which didn't seem to help his demeanor. Oh well, he's probably sitting at home not playing Xbox thinking the same thing.
2) Note to self: Geeks like caffeine more than air. If there is one glaring mistake we made this year it was not having enough caffeine. Next year we'll be swimming in it, I guarantee you. Additionally, next year we need to have bigger rooms, more heat, snacks, pay for speakers, more sessions, additional days, more attendees, and a totally different hotel. No offense to the staff, but the hotel blew..bigtime. My bed was like layered foam from the local furniture store. You know, the kind they use to wrap furniture. I crashed on the bed about 3:15AM for my two hour nap before the conference and when I hot the bed I think I cracked a rib. Which brings me to my last point on this topic, next year we start at 9:00AM.
Lastly, I want to thank Kent, both Erics, Diane, and the other members of the Heartland Developers Network for all the hard work in making the conference a success. Additionally, I want to thank all the other UG leaders for the “User Group Leader of the Year” award. I am not good at taking public recognition, but please know I appreciate it immensely.
Looking forward to 2005, I am very excited to see how next year's conference shapes up. Right now, we are shooting for 300, so we'll see what happens.
Okay, okay, I am through listening to the constant badgering from my colleagues and friends to start blogging. As you can see from the previous post, I gave it the old college try and failed miserably. I guess you could attribute it to me working 60-70 hours a week between my full time job and all the side business. You could also probably attribute it to running the
Omaha.NET UG, serving as UG liaison to the North Central region for
INETA,or leading the efforts for the
Heartland Developers Network. Whew... Anyway, I decided to stop bitching and blog. Hopefully things go better this time around.