Join the Anti-If Campaign. Check out http://www.antiifcampaign.com for more info.
Recent Updates RSS Hide threads | Keyboard Shortcuts
-
just3ws
-
Applying Single-Responsibility Principle To Libraries
just3ws
The Single-Responsibility Principle or SRP of SOLID is one of those wonderful little principles that can apply to so much, from your objects to methods to libraries (blog posts, emails, so many other things in your life). I want to focus on libraries for the moment. As I refer to libraries, I mean any bundle of code that is compiled and deployed as a unit. This could be .NET Assemblies, Java JAR Files, whatever your platform uses.
SRP describes the goal of keeping your objects focused on one thing and one thing only. This keeps undesired dependencies and complexity from creeping in. Instead, of munging all the logic into one “God Object” you break the logic into smallest possible objects, making changes to a specific object much easier because you don’t have to worry about breaking some other tangled up responsibility. But let’s change a little terminology, instead of “objects” let’s swap in the word “libraries”. This gives us the goal of keeping our libraries focused on one responsibility and instead of a “God Library” we want to have discrete, focused libraries that do one thing.
Why would this be a good thing? Consider an application that has the entire business framework, business logic, data access and UI logic all contained in one assembly. You have three applications that utilize the library, one to handle web services, one to handle file transformations and another is your companies flagship web application. Now, this is convenient if you always deploy all three applications simultaneously. You only have one library to worry about, just compile and deploy everything. But let’s say you want to change something in the file transformation logic but don’t want to have to redeploy the website? Now you have to try to figure out how to deploy a new version of the master library without impacting the website. Typically, you’ll end up with multiple versions of the same library and a version headache. How can you avoid this? By breaking up the libraries.
Instead of one master library separate your application structure up by responsibility. Our example would probably become three new core libraries, one for the framework, another for data access and business logic and then we’d create libraries for our file transformation logic and web application. This way, when we make a change to the web application we don’t *have* to redeploy the file transformation service and vice-versa.
I’ve used this approach in dealing with my current employer. We have two .NET assemblies that pretty much hold the entirety of the core application and all of it’s sub-processes. These assemblies are stored in the GAC so pretty much, if you want to redeploy the file transformation service you have to also redeploy three other application and the website. By refactoring the file transformation logic into a separate assembly I was able to work freely on the file transformations without having to concern myself with accidentally breaking our primary business systems.
-
Poll: If you could get any Microsoft speaker to present at a conference in Chicago, who would you invite?
just3ws
-
Software Craftsmanship North America Conference
just3ws
I just secured my ticket for the upcoming Software Craftsmanship North America conference. Very excited, speakers include Uncle Bob Martin, Michael Feathers (whose book, Legacy Code, I am currently reading) and a host of other notable professionals. A full-day of learning about Agile, Software Craftsmanship and much more from some of the best for only $99.00US. Don’t pass this up, especially if you live in the Chicagoland area! See you there!
-
Barebones CSS Templates by CSS Tinderbox...
just3ws
As you may know, I am not a designer. Well, actually you probably don’t know that unless you already know me. And you’d likely be surprised to learn that my original career plan was to become a graphic artist. Which after looking at my work you’d quietly murmur a prayer to thanks of whichever deity you report to that they guided me away from that path.
So, as a non-designer, whenever I have to do any kind of layout I like to apply someone elses knowledge first. A good place to start is CSS Tinderbox. These kind people have put together a series of free templates to help layout, with most of the standard structures represented. Box, 1-column, 2-column, 3-column, flex and fixed widths and some starter designs to help understand how to apply the skins to your design skeleton.
-
"... as you may know."
just3ws
As you may know, I hate it when a blogger uses that in a post. They assume two things…
- that everyone should know what the hell they are talking about.
- that only an idiot would not know what they are talking about.
This is particularly annoying on blogs with approximately up to 100x the readership of mine, so about 100 people usually with about one previous post. While their limited catalog of previous material will make it easier for me to find out what I should already know, it’s still work.
-
New Chicago User-Group: Chicago Webgrrls
just3ws
A user group for the female technical community in Chicago. Don’t know much about it but wanted to give it some props. Anything to help support and encourage females in the developer and technical community. Good luck!
-
Random Notes From Pizza and Brew With Microsoft Evangelists.
just3ws
Join the conversation at http://ChiTellMSFT.uservoice.com.
Last night I got to meet with some of the Microsoft Midwest Evangelism team and share some of my perspective as an developer audience member in the Chicago-land event circuit. And I learned a few interesting things as well.
Some interesting tidbits…
- there are something like 143,000 software developers in the greater Chicago-land area. (My memory is fuzzy on this one, due to a pitcher of Leinenkugels and a belly full of Eduordo’s stuffed pizza.)
- the first Visual Studio.NET launch event at Navy Pier drew approximately 3,500 attendees, mostly developers.
- since the first VS.NET launch event all subsequent launches were for multiple products.
- the MDC event was not considered a big success.
- Microsoft is not afraid of sponsoring events that include non-Microsoft technologies.
- a prerequisite for being a Microsoft Evangelist is a high-tolerance for alcohol.
- that Chicago is either the second or third largest developer city, competing with New York and San Francisco.
- the Evangelism team is trying to find ways to get developers attention and attract them to events.
- there is a good chance that a MAJOR Microsoft Developer celebrity will be presenting here in Chicago in January.
- there may be a similar event to StirTrek coming next year around the Iron Man 2 release. maybe.
- community leaders should not be afraid to reach out to the evangelism team for help and advice. Get them involved early.
- their jobs seem as interesting as the guy on the Dos Equis commercial.
- Larry Clarkins is a vegetarian.
- Brian Gorbett (partner evangelist) is a former Army Ranger and the Brian Moore (midwest audience evangelist) was a Helicopter Medic in the ARNG. So they can kick your ass, patch you back up and kick your ass again.
- there are only about 47 or so evangelists throughout the US, and they are assigned to regions.
- Larry Clarkins is our Architect Evangelist. Dave Bost is our Developer Evangelist.
- Larry and Dave host the Thirsty Developer podcast.
- getting the big names out to speak at a conference even in a city like Chicago can be extremely difficult.
- the evangelists belong to a team called the DPE, Developer Platform Evangelism team.
What would you like to see at an event? What didn’t you like about previous events?
Give your feedback at http://ChiTellMSFT.uservoice.com.
-
Guard Your Twitter Credentials
just3ws
I took my Twitter credentials for granted yesterday and willingly gave them to a site that I hadn’t verified. Needless to say, I got cut and am lucky to have gotten through with my limbs intact and no permanent damage (so far.)
Before Twitter implemented OAuth the typical way to allow access your Twitter stream was to provide the requesting site with your actual username and password. Unlike OAuth which provides a sandbox for 3rd-party services to access your Twitter stream. Bypassing OAuth and giving your credentials is akin to a Power of Attorney for Twitter, they gain full access to your entire Twitter account. Additionally, OAuth requires you to explicitly tell Twitter that it’s okay for the 3rd party to access your stream and the ability to disable the access to Twitter from your account. Yes, giving your credentials is as bad an idea as it sounds like. For the most part, the sites I used were recommended by a trusted party or found via a review on an (also trusted) site. But yesterday, I fell for some bait.
NeedFollowers.com (not linking to them) is the site I fell for. They’re deal is your typical multi-level marketing scam, you subscribe for me and I’ll in turn drive traffic to you. I admit I fell for it hook, line and sinker. Mea culpa, mea culpa, mea culpa. But that’s not the worst part. To participate in the scam you have to provide your Twitter username and password, of course so they can hook you up with new followers (of course!) But what they don’t tell you is that they are going to spam your followers with messages from you! Not nice. And this is how they originally got me, one of the people I follow had fallen for the trap as well and was owned by the same spam bot as I was. So they definitely can damage your credibility with your followers, as you will be spewing this spam and not even be aware of it.
There’s no way to disable it, you just have to change your password. Which is a problem itself, because they will continue to try to log into your account thereby locking you out completely. Nice.
So, be forewarned. If you are trying to generate follows by using one of these sites then guard your credentials! Don’t give them the keys to your castle, because next time the Huns might change the locks!
-
How Can Chicagoland Microsoft Developers Improve Their Community?
just3ws
One thing that I’ve always groused about is that all the “cool” conferences are on the coasts, almost never in the Midwest much less Chicago. My suspicion is that the people who typically organize these conventions are from the coasts themselves and have a strong aversion to spending time in flyover-land. I’ve only anecdotal evidence of this, mostly from the dearth of conventions and conferences held here in the Midwest, but also from a few tweets that I exchanged with @codinghorror and @spolsky.
The StackOverflow team had just announced their conventions with multiple dates on the coast but none in-between. I shot off a tweet to express my frustration to @codinghorror and @spolsky without really expecting a response. (tweet)
@codinghorror @spolsky Just curious, 2 DevDays on West Coast but completely ignore Midwest. Why do conventions hate Chicago?
About an hour later and much to my surprise I receive this response from @codinghorror (tweet):
@just3ws correction, conventions do not hate Chicaco, @spolsky hates Chicago
Then about a day later I got this response from @spolsky (tweet):
@just3ws just basic economics, I’m afraid. Chicago has very expensive hotels & conf. centers and relatively few programmers
It’s not surprising that a New Yorker would look down his nose at Chicago, that’s pretty much to be expected. Although I do understand his statement regarding the expense of running a convention here in Chicago. We used to have allot of cool geek conventions but they’ve pretty much all relocated to more convention friendly and more cost effective climes (GenCon being one of the bigger ones). Inter-city Rivalry aside, Joel Spolsky is a savvy and intelligent entrepreneur and developer advocate. So I do think he had to at least consider Chicago as a potential site. Could he have been convinced to hold a StackOverflow convention here if maybe he was offered some form of sponsorship from Microsoft to alleviate some of the cost? Maybe, don’t know if he tried to reach out for some green loving from the Microsoft people. What bothers me though is the statement about insufficient programmers.
I don’t have hard numbers, only my observations at this point. Thinking back to various Microsoft and community events I’ve gone to over the past nine years there never seemed to be a shortage of attendees, ever. I don’t recall ever attending a seminar that wasn’t packed to the gills, nor a conference that didn’t have a bustling and vibrant attendance. The first Visual Studio launch event I attended had to be one of the more impressive gatherings I’ve ever been to, with thousands of developers filling the Navy Pier auditorium to see and hear about the new development product from Microsoft. Thousands, plural. The next two big Microsoft launch events, if I recall correctly were held at McCormick Place. Both of those had very impressive crowds of developers spread throughout a whole wing of the center. Those were free events, so the attendant crowds aren’t entirely surprising. But they do show one thing, there IS a community of developers that exists in Chicago that ARE interested in Microsoft technologies and are HUNGRY to learn and be exposed to new and interesting technologies. Even early paid seminars I attended that were held in Schaumburg to learn about ASP.NET and C#, running about $90ish for a day of presentations, held in a movie theatre were standing room only. Probably 2-300 or so developers in attendance for the sessions I attended.
Fast forward a few years and now we have grassroots user-groups that are hosting their own self-directed meetings and conferences. I try to regularly attend Chicago Alt.NET, Lake County .NET User Group, Rockford .NET User Group and the Chicago Architects Group (last one I’ve only attended one or two meetings). Each of those groups attracts in the neighborhood of 20-30 developers per month, with little overlap in attendance. So that means there are approximately 80-120 developers attending those user groups each month. I’m not counting the Chicago .NET User Group, which from what I’ve been told is in the neighborhood of 100 developers per month by itself [citation needed]. Then let’s looks at various other Microsoft technology groups, such as Chicago Sharepoint User Group, Azure User Group, Visual Studio Team System User Group. I have no numbers on those, but the fact that they exist is significant and noteworthy. [I'm not even counting non-Microsoft-oriented events held by ThoughtWorks or ACM, much less Ruby, Linux, etc. communities.]
These user-groups have spawned a few code camps as well, two that I’ve attended, Codeapalooza and Chicago Code Camp each drew in the neighborhood of 200-300 developers [citation needed] and were free, predominately word of mouth sessions, with extremely small budgets. Still, they were able to pull in developers, but only a small portion of the community that I saw at the Microsoft events.
What does this all mean? First, there’s a passionate group of software developers in Chicagoland who are motivated enough to try to fill the content gap for their chosen platform. Second, Microsoft has the capacity to fill an arena with local developers if they are so motivated. How do we get the chocolate (Microsoft’s clout) into the peanut-butter (communities passion)? That’s what I really want to know? How can we make Chicago a destination for developer content, not just a fly-over for other conventioneers?
I think if we as a community could come together to build a case for Microsoft to further invest through a variety of ways into the Chicagoland developer community that we could become the Microsoft hub outside of Redmond.
To help get the ball rolling and start the conversation, please join me on Twitter using the hashtag #ChiTellMSFT. And the corresponding forum http://chitellmsft.uservoice.com to submit and vote on ideas to help improve the community. Register on http://www.communitymegaphone.com to advertise your user-group and events. If you’re getting together informally, use http://nerddinner.com to organize your soiree. Lastly, if you know someone who works at Microsoft or has access to a Microsoft representative, ask them for advice on how to work with together to improve our home town developers community!


G. Andrew Duthie 11:05 am on June 14, 2009 Permalink
If folks have any questions about Community Megaphone, please let me know, either via the Feedback link on the site, or you can also contact me through my blog at http://blogs.msdn.com/gduthie/.
Community Megaphone is a word in progress, and there are lots of things we’re working on for the future, and we’re always open to suggestions on what we can improve.
Thanks!
G. Andrew Duthie 11:06 am on June 14, 2009 Permalink
Erm…make that *work* in progress.
Note to self…never comment before coffee.