So I've had this blog for a number of years. Posted to it for a while but then for a variety of reasons I stopped. Figure it's time to start back up. First bit of news is the final edits for the next edition of Professional C# are finished. Seems like with each edition the task gets more and more difficult to get done. I'm undecided if I'll do the next edition.
I've been digging into Windows Workflow the past couple of weeks. Very interesting stuff. Once you get your head around the paradigm, it seems to have a lot of possibilities. One thing that concerns me a little, doesn't seem to be a lot of community support around it. Perhaps I'm not looking in the right places. I'd like to see what Microsoft has in store for the future of WF. I've seen reports of it being merged with WCF, and I can see where this makes some sense but does that mean that WF is getting swept under the rug, so to speak. We're thinking of building some funtionality around it, and before I pull the trigger I want to make sure that this is something that will be viable for a while.
I love the sport of hockey. I play 3 or 4 times a week, I coach my son's team and I have season tickets to the Nashville Predators. What happened to Richard Zednik last night
is every hockey players worst fear. Thank God he's OK, last report he is stable but still in intensive care.
This whole idea of Morts is really getting out of hand. How insecure in your profession must you be before you need to create a category of developers to put yourself over. I keep seeing comments like
I'm teaching a class of Morts today
Can Morts enter the new frontier of programming
I know what the origins are of Mort, but it seems it has become somewhat of a derogatory term.
It seems that of you don't follow the same development methodology of certain "developers" you are classified a Mort. If you want to go home at a decent hour, you're a Mort. If you do something that just works, instead of using a certain framework or design paradigm, you're a Mort. What a bunch of crap.
Corporations across the world have teams of developers that just get the job done. Not every developer wants to be a rock star. Not every developer wants to be on the cutting edge. Most just want to get the job done the best way they can. They want to use the tools that give them the most bang for the buck. They don't have the time or the budget to experiment with new ideas. And guess what, they're getting the job done.
Instead of spending so much time making sure everyone knows that they're NOT a Mort, some should spend a little more time making sure they're not just jousting with windmills.
That's how long since my last post. Main reason was that the company that I worked for "frowned" on blogging, speaking etc. I had to get permission to work on Pro C# books. That is all behind me now. I have been working for Juris by LexisNexis for about 2 months now. Man what a difference. I haven't been excited to go to work in a very long time. I got the word from my CIO today that not only does LexisNexis approve of blogging, speaking, writing etc, they actually encourage it. What a concept.
So along with the new job, the past couple of years have been:
- Release of Pro C# 2005 with .NET 3.0
- Coaching, playing and watching a lot of hockey
- Creating and maintaining PredNation
- Working on Pro C# 2008 (can't believe it's on Amazon already)
- Started using a MacBook Pro (really digging this)
I used CommunityServer for the PredNation site. Interesting stuff in CommunityServer. Not sure I would have made the same architectual decisions along the way, but the product works and that's what's important.
Well after the NHLPA and the NHL have finally resolved their differences, Bob Goodenow has resigned. Goodenow was the head of the players association. If it wasn;t for his blinders and for his arrogance, thier probably would have been hockey last year. I have the pleasure of knowing a couple of NHL players and for the most part, everyone was willing to except the cap long ago. Bob decided that he knew best and kept pushing back. It's a shame that it took so long for the NHLPA to see that this guy was not doing them any favors, but at least I'll be able to use my season tickets this year ;-)
I was able to attend the CAB training session at Redmond earlier this week. It was a very informative couple of days. We were able to meet and talk with the dev team of CAB. We went through a series of Hands On Labs that will be available soon. I am still trying to get my head around the how CAB works at a detail level. I have a good understanding of things at at a higher level.
If you are building a larger client application (non ASP) then you would be doing yourself a favor by looking at it. It is an implementation of MVC or MVP (Model-View-Controller or Model-View-Presenter). One of the big advantages that I see in it is consistency. If some dev thinks it's a good ide to put a couple of hundred line of code in the click event of button, it will stick out like a sore thumb. Another great feature is the extensibility. You can your own Services (a service provides functionailty such as persistence or cryptography) or workspaces (a container for visual items). This allows a great deal of flexibility and also allows you to create a framework that can offer a high level of reuse.
As I get more comfortable with CAB I'll try and post more about it.
I have been a FireFox user for well over a year now. The number one reason is that I can get the tab functionality to work the way that I want it to work (with the addition of a couple of addins). So far IE7 is falling a little short in tab functionality.
- The menu, shortcut and standard button bar are linked to each tab. Remove the standard button bar on one tabe, it is still available in other tabs. I understand that this may be nice in some situations, but I would at least like to be able to turn it off.
- Because of number 1, the tabs are above the menu, shortcuts and standard button bar. I would rather the tabs be above the page and the menus and toolbars be above the tabs. Doesn't seem to be a way to change this.
- When I type a url in the address bar, I want that page to open in a new tab. Can't seem to make that happen. No option to turn it on.
- When I select an iten from the Favorites menu I want to have a way to open it in a new tab. Doesnt seem to be a way for this to happen.
- Can't seem to find a refresh button anywhere. It's not in the list of buttons to add. What's up with that?
I know this is the first beta, so I am hoping that there is more control on tab settings on the way. I want to be able to configure how pages are loaded into the tabs, and most importantly I do not want to ever have more than 1 IE window open. Everything else seems to be stable. Performance seems OK, and of course rendering is fine.
There has been a couple fo posts recently regarding the hiring practices of companies. I have had a couple of interesting experiences with this recently. These experiences I would classify as how *not* to hire someone.
First one happend about 4 or 5 months ago. I submitted a resume to consulting firm. The company is fairly well know in the .NET development circles as is the owner. I received a call from one of the developers in the company and we chatted for about 5 or 10 minutes. Very informal, very non-technical kinda stuff. A day or so later I get a call from the owner. Again chatted for about 5 or 10 minutes, again very informal and again very non-technical. He then tells me all about the company, benefits, clients etc. Next thing I know I'm being offered a position with a 6 figure salary. I discuss this with my wife and for some reason neither one of us feels very comfortable with something. Can't determine what exactly, but somethings not warm and fuzzy. I turn down the offer, make my apologies and that's that. Thinking about for a while I realize that I was offered a job, but was never asked one single technical question. Fastforward to TechEd and I see that this company has a booth. I figure great, I can at least meet everyone and again thank them for their time. I walk by the booth and see someone sitting with their feet up on a table talking on a cell phone completely ignoring anyone that walked by the booth. Great way to sell your organization. Goes to show that the bad feeling that my wife and I had apparently was worth listening to.
Another experience I had was more recent. This was for a position in a very large company. I was asked to submit a resume which I did. Few days later I had the call from the recruiter to set up a screen with a higher ranking official. We played phone tag a little, but were finally able to talk. This was a technical discussion (they at least got that right). Final words were that he would like to have me come on site for more talks. Fine with me. Week goes by, no contact. Another few days and I get a call from the recruiter that says you need to get here as soon as you can. The higher up offical is ticked because we didn't get you is sooner. Arrangements for a hotel are made, directions are given and a couple days later I drive the 5 + hours (yes they made me drive) to their office. I get to the hotel and the desk clerk asks “How will you be paying for this Mr. Glynn?” Huh? This should be picked up by the xxx comapny. Nope, sorry, no record of that. So I try and call recruiter, but not at her desk so I leave a message. If it wasn't for the fact that I just drove 5+ hours to get there, I would have left and went back home. I pull out the credit card and get the room. I get a call from the recruiter and she apologizes and fixes the problem (so I thought). I still ended up having to pay for the sandwich that night, breakfast the next morning and for parking. The meeting goes fairly well, they did make good on the other expendentures and I head back home. No word for a week. I send an email. No word for another week. My wife is going crazy because she doesn't know if we are moving or not. Finally an email. Don't know what's happening, I'll check and let you know. This was from the person that I would be working for. How could he not know what's happening? Am I on the running, are their other candidates, when can I expect to hear soomething? At this point I had decided that even if they did make an offer, chances were very likely that I would not except. Another week goes by. I send another email. Another week goes by and I get a call from someone in Personnel, thanks but we hired someone else. Couple of days later a postcard comes in the mail, thanks for your resume.
Bottom line is that when your hiring you always have to remember that the candidate is interviewing you as well. Because of the experiences I had with these comapanies, I doubt that I would ever be interested in working for either of them. These may be great places to work for, but first impressions do make a diference.
I sent the final edits in for Professional C# 2005
yesterday. Writing a book is (even just the 8 chapters that I did for this one) is a lot of work. So many late nights, frustrations in getting pre-pre-pre-beta software to work, redoing chapters when the pre-beta software is released etc etc etc. I probably will be taking a little time off from writing. Time to enjoy coaching my son's hockey team.
Without question the message from TechEd this year was services. How to migrate services, how to make services, how to use data in services etc etc etc. However, a comment was made in the BOF session I hosted that has me thinking. The question came up that since his organization is trying to move to service based architecture, he has found that the design of the application is changing. Instead of having a nice pluimp object model, he said he now is just pumping messages around. His problem was that he wasn't sure if that is what he should be doing. My first reaction was if that's what the situation calls for, then your doing the right thing. However as I thought this over for a while I'm starting to question that. I see where services are a “Good Thing”. But part of the reason for services is flexibility. In our organization flexibility means that the object or component might be implemented in a server based application or on a disconnected mobile device. In that case disregarding that nice plump object model may be a mistake. If I'm on that disconnected mobile devoce, services are worthless. I'll be saving data to a local database and forwarding changes later in batch mode. I'll need that object model. If that component is implemented on a server, a service facade could be placed over it.
The point to all of this is that we are hearing a lot about why to do services and how to do services, but we aren't hearing alot about the design of the business entity that the service will be servicing. Are we supposed to change the design of the entity like the person at the BOF session was describing, or is it better to do business entities just as we have been doing and wrap them up in a service layer? I'm feeling that the later may be the better option.
I hosted the Pragmatic Architecture BOF session last night and it turned out to be a really great session. There was some great discussion about when and if SOA is the correct answer, how to deal with upper management on determining the right way to implement and architecture and how does an architect stay current on the technologies. It was satisfying for me to know that others are struggling wioth the same questions that we are regarding the "right thing" to do.
I read in SD Times today that OASIS is going to define SOA for us. From the article:
Just what is and what is not part of a service-oriented architecture is the subject of the latest work the Organization for the Advancement of Structured Information Standards (OASIS) is pursuing
Writing a specialization of SOA for electronic business was going to get difficult because a generalized definition of SOA didn’t exist
They are comparing this process to describing the parts of a car. Where the parts are and how they relate to each other in the overall function of the car. They said the reference model should be completed by the end of the calendar year. I feel so much better now. We'll finally have someone that tell us exactly what SOA is (and how the driveshaft is connected to the axel).
I'll be working the in the Community Lounge at the Author/Publishers booth. As of now I'll be there Mon during lunch, most of the day on Wed and for a couple of hours on Thurs. I'll also be hosting the Pragmatic Architecture BOF session on Wed night BOF041 in Cabana 2.
One other note, the Professional C# 2005 book is getting close. I'm working on the final edits of the Winforms and XML chapters now. It's really tough only having 1 chapter for the Winforms in the book. So many topics to discuss, so few pages. 2005 adds so many great features to client development it's hard to keep it all under 70 pages.
I have to vent a little here on something that struck a nerve earlier today. I happened on this post from Eric Sink. Basically it states that they were looking for a developer. Now first I want to say that I actually use Eric's product. This is not a slam on Eric or his product, but in the post there is this one line:
You have a bachelor's degree in computer science from a good university.
Now I meet all of the other qualifications (other then the part about moving to Illinois, but that's another story). However I do not have a degree. I've taken a few classes here and there, but no degree. I have worked on over half a dozen books, 2 of which I know are used as text books, one I wrote and one that I tech edited. So apparently I am qualified to teach the applicants that Eric wants to hire, but I myself would not be qualified. I currently hold a senior architect level position at a very large financial institution. They trust me to develop software that handles billions of dollars a year, but Eric doesn't think I qualify. I've been developing software for close to 20 years, how many on Eric's staff can say that? Again I don't mean to pick on Eric or his company, I have nothing but respect for his company and for Eric. But for some reason this just hit me the wrong way.