|
LATEST POSTS
Wednesday, September 09, 2009
Bahamas Software Development User Group, we hardly knew ye. It’s been just over a year since I started the short-lived group but alas! It is no more. In this post-mortem, we discuss What Went Wrong by providing smug pieces of advice fueled by 20/20 hindsight. Know what you’re getting into As much as you’d like to keep the process lean, there is always work to be done. Initially, you may be required to give the majority of the presentation. There may be sponsors to solicit, presenters to organize, and government officials to appease when you try to explain that that box of lasciviously-shaped USB keys is for an upcoming “code camp”. Get help If you want to follow the Ozark Symphony Orchestra around on its whirlwind tour of Athens, Prague, Vienna, and Paris, you’ll need someone to fill in for you. A group run by a single person isn’t a group. Be prepared for skepticism Okay, this one surprised me when I made up my list. And since I recognize the perils of having unwavering optimism, it shouldn’t have. Many people I talked to came up with half a dozen reasons why it wouldn’t work: people are too secretive, it’s just another marketing tool for Company X, I work all day so why would I bother coming out in the evening. The culmination of this was when one person accused me of using the group as a front to bring my “cronies” in to steal jobs from Bahamians and threatened to call the immigration department on me. Which is odd since I don’t work for a local company. Short version: some people will always look at what you aren’t doing rather than what you are. Be flexible I started the group as a .NET-specific one. In the group’s death throes, I broadened the scope to software development in general to account for the small size of the population and the wide variety of skills and interests. Many people are web designers who have had to learn programming to meet customer demands. And a session titled “Integrating Sharepoint with BizTalk” probably won’t have much relevance. Know your public This was, I believe, the one that effectively killed the group. I’ll have a follow-up post on it with more specifics when I’m able to keep my frustration at bay and can talk about it diplomatically. In the end, whatever external factors exist, the primary reason the group didn’t work is because I didn’t have the fortitude to see it through. Maybe it was arrogance, maybe it was naiveté. Probably a bit of both. I wish this was only the first time I started something without anything more than good intentions. I doubt I’m the only one that starts things like this with an optimistic “let’s see what happens” without giving much thought into the work involved but it’s still kind of embarrassing that I folded up effectively because I didn’t feel like putting in the effort anymore. I’d call it a lesson learned but we all know better… Kyle the Unimproved
Tuesday, December 30, 2008
As the year lurches to a close, I'ma gettin' all reflective and stuff. The last two years have been pretty key for me career-wise. Looking back, you'd almost think I had a plan. In general terms, 2007 was learning hillbilly as I put some effort into a learning regime. More importantly, I got on track for continuous learning. 2008 was community hillbilly as I started connecting more with my online brethren and sistren both in attending, and speaking at, conferences and user groups. I'd enumerate them but if you care that much, you can click on the Community category to get a summary. Plus I don't want to give my wife and daughter any ammunition for the "you're never home" discussions that have abated of late. It also marked the launch of the Bahamas .NET User Group which is something I'm particularly proud of. And this segues nicely into my 2009 plans. The coming year will be introvert hillbilly but not in a bad way. I won't be withdrawing from what I like doing, which is to connect with other people in the industry. But looking over my travel schedule of the last year, and it wasn't nearly as intense as many people I talk to (especially my co-author, who essentially toured Canada coast-to-coast, as well as India, the US, and somewhere in Europe, all for community work), I'm looking to put some direction to my efforts. So my two over-arching goals are: continue doing community work, and travel less. Luckily, we work in an industry where this is not even possible, it's viable. Community comes in two flavours: global and local. For the last year and a bit-ish, I've been skewing more on the former. For 2009, my focus is going to be on the latter. The Bahamas is an untapped treasure trove, I think. The proximity to the US certainly helps and it's a nice, small, manageable market. The industry is so young here that it would be remiss of me not to take advantage of the opportunity. The people want to learn but don't yet have years of bad habits ingrained into them. Not two weeks ago, I kid you not, I had a request on how to access data without using stored procedures. I just about cried with joy. I'm planning to have the e-mail bronzed and framed. So the intent is to spend more time closer to home. Along with regular user group meetings, I'm hoping to try some half-day to day long seminars on various subjects, almost certainly starting with fundamentals. And for those of you following my attempts at a conference, keep your Bermuda shorts on. This winter is too early but it's still a possibility for 2009/2010 winter. Which is not to say I'll be ignoring the global aspect, at least not altogether. As much as Brendan wants to maintain his subscription level, I plan to stick around here for a while yet, if only to see if I can top my single favorite post which I made so early in my tenure. I also have a raft of Dimecast ideas to sift through as well as a few other plans, each more nebulous than the last. Finally, while I recognize that there is little by way of "official CodeBetter" advice here, I'm posting this anyway. I mention this partially to pre-empt the inevitable "stay on topic" comments because responding to them requires more thought, tact, and, most importantly, time than you might think. But mostly because I think there is a parable or two buried in here somewhere for others. In any case, I have no intention of turning this place into a BahaNET bulletin board (other plans are afoot in that arena). Just taking advantage of the latitude usually granted to year-end bloggers. Kyle the Communal
Sunday, November 09, 2008
Been putting this post off until I could give it the attention it deserves but the merits keep piling up on their own. DevTeach starts in about 3 weeks (yikes, is that all?) and there has been a flurry of activity around it. There is still time to sign up and if you are waffling, here is some information to tip the scales: - The Agile Track. And I shan't elaborate
- This is unconfirmed but my sources tell me Jeff Lebowski (or possibly Eddie Vedder) will be doing the keynote. I sure hope that's true because I'll be very disappointed if it turns out to be a fake that just look like him.
- Free copies of Visual Studio 2008 Pro, Expression Web 2, and Tech-Ed to EVERY participant
Despite my hyperbolic tendencies, that last one is not a joke. Over $1000 of software will be given to every attendee. Even if you come only for the regular conference, the net cost to you is approximately fifty bucks. (Of course, we won't mention the hidden fees associated with being in Montreal for a week away from your family/conscience.) To get more information, John "Pipes" Bristowe interviewed main DevTeacher, Jean-Rene Roy about the conference. And Dave Woods outlines many more benefits (including the 10% WestJet discount I wish I knew about before I booked my flight.) Kyle the DevTaught
Monday, October 20, 2008
I'm preparing my presentations for DevTeach and have come to realize that there is a price to pay for creativity. Here are the abstracts for three of my presentations. Guerrilla Refactoring Greetings, comrades. Welcome to the resistance! Our quarry today is a shamefully designed application that grows fat with duplication and crusty with hard-codedness. It feeds on itself behind a shield of corporate deadlines, each one stricter than the last. The cowardly code mocks us with cries of "We don't have time! We don't have time!" while features are grafted onto the application haphazardly with no thought to future reform! But fear not! We have studied our enemy and have altered our attack plan accordingly. No more frontal assaults. We must liberate the code in focused skirmishes from its bourgeois oppressors! Patiently, we shall advance, tightening our grip in an ever-widening net of unit tests as we hunt down bugs like the dogs they are! So join me, brethren and sistren! With our allies, the Design Pattern Legionnaires and the Dependency Liberation Front, we will train you to take your rightful place in the movement toward a better world, where features are not divided into tasks that are meted out to the "database gal" and the "guy that does the UI because he has PhotoShop installed". Rather, they will be fully and utterly DEMOLISHED by fully armed, multi-functional, and domain-inspired programmers full of KNOWLEDGE AND FURY!!!1!!! Viva La Revolucion! (adapted, of course, from my original post on the subject) Implementing a Brownfield Ecosystem: A Cultural Extravaganza So you missed Folklorama again, eh? Of course, you did. It's in Winnipeg. Well, fear not, coders! In this session, we'll throw so much culture at you, you'll think you're back in high school biology. A very important aspect of Brownfield applications is shifting the culture of your team. This starts with your project's ecosystem. Many developers in Brownfield applications don't even realize how many hoops they jump through during the course of a day to do simple things like checking in code and building the application. In this session, we'll implement a full-fledged ecosystem for a Brownfield application. Working from the perspective of a single developer in a team, we'll cover topics such as the structure of your version control system, your check-in process, automated builds, and continuous integration. In the process, we'll talk about common pain points and common areas of friction that we can overcome with a few simple tool choices and a couple of mindset tweaks. I'll be getting by with a little help from my friends as we simulate a team environment using well-placed and impeccably groomed plants in the audience who will act as other developers in the team, some working with me, others not so much. Adding automated tests to an existing codebase It may seem like heresy but there are actual real-live applications out there in the world that don't have unit tests! No, really! And I know it sounds crazy, but you could be brought on to one of these applications and be tasked with adding automated testing to them. Rare as these circumstances may be, it'll help to be prepared for them. Because it won't be as fun as you are probably imagining right now. For example, how do you automate a test for a web form that connects to a database, displays a form, then posts that data back to the database? In this session, we'll look at techniques for integrating tests into an existing codebase that has never had them before. When do you write tests for existing code? How do you test a mammoth method/class? How do you know if you aren't breaking anything else? For answers to all these questions and more, read Michael Feathers' Working Effectively with Legacy Code attend this session.
You see my dilemma. I wrote these in a fit of imagination without stopping to wonder how I would differentiate one from the other. For example, how do I talk about refactoring without mentioning automated tests? How do I implement a brownfield ecosystem without doing same? In the end, I believe there will be overlap among the presentations. Indeed, I will probably use the same sample application for all three. I've justified it in my head by saying that the overlap is probably a good thing to help people see the interaction 'twixt the various concepts. Plus, it means I can focus on a single element in, say, the refactoring presentation and leave some of the details to the automated tests presentation. In any case, here is some clarification on the goal of each presentation: Guerrilla Refactoring: How can you refactor an application for maintainability when there is no explicit buy-in from the PM and/or the business (and/or the rest of the development team)? Implementing a Brownfield Ecosystem: A walk-through on adding source control, CI, and automated testing to an existing application. I'm planning to use plants in the audience to simulate a team environment to demonstrate what happens to you personally when others don't play by the rules. The "cultural" part comes because this is very much an exercise in changing your team's development culture. It was originally intended as a practical follow-up to Donald's Parachuting into a Brownfield Application presentation but I notice he's not doing it this time around. Adding automated tests to an existing codebase: Here, we'll dive deeper into automated testing for an existing app. It will be sort of a continuation of the brownfield presentation which will add the testing framework but not go any further. Admittedly, it will borrow heavily from Feathers' book but I see that as a good thing. For completeness, the fourth session I'm doing is on TDD for MVC applications. This one is more disparate than the others and should be a fun one as well, even if the abstract for it is the most boring of the four. Kyle the Synergistic
Saturday, October 18, 2008
A couple of things have got protectionism on my mind. It comes up surprisingly often because the Bahamas seems to be, by and large, a protectionism nation. That is based solely on personal observation, not on any sort of fact-checking. So I'll assume everyone out there knows the difference between valid journalism and wild blog-induced accusations based on rumours. Protectionism is the restriction of trade and industries by imposing regulations and tariffs to protect local companies and local interests. A few industries are already protected here. Lawyers, for example, must be Bahamian as do real estate agents, I think. And rumour has it, the IT industry is under consideration for the same treatment. Some of this is understandable, given the country's small population, proximity to the US, and political history. And with the recent economic downturn, it gets even harder to discuss the issue without emotions running high. In any case, whether or not that's true is not something I can talk intelligently about. I am, after all, a foreigner here myself so I don't know that I could be an unbiased judge. I take some comfort in the fact that I am living and spending money here, but working for companies in the US and Canada. In any case, one of my goals with the BahaNET user group, which is my current outlet for organizing the software development industry here, is in direct response to this protectionist opinion and it applies anywhere, not just here. To wit: If you want to make sure your job doesn't go to anyone else (local or foreign**), then be better at it than anyone else. Don't give the company a reason to look elsewhere and they won't do it. This seems to be lost on many people. The natural inclination when someone else gets a job you were after (or that you had) is that they did something underhanded to get it. Instead of thinking, "Maybe I need to upgrade my skills," it's easier to assume that someone has ulterior motives and is working against you so that you can maintain the status quo. The decision to hire someone is usually pretty easy when comparing two people. The basic metric is: which one has more skill than the other? If the difference is obvious, then so is the decision. It's only when the candidates are relatively equal in skill level that other factors come into play. It's naive to assume this is always the case, of course. Some companies are more political than others. But it certainly tips the odds in your favour if you are good at what you do. That's why it's encouraging to see the same people coming out month after month to the BahaNET meetings to see what else is out there and to connect with other developers. Regardless of their actual skill level, it tells me that these people are willing to put some effort into making themselves better. So that when it comes to hiring them versus, say, a Canadian with similar skill level for which you'd need to buy an annual work permit, it's a no-brainer. ** Keep in mind that when I refer to a local or foreigner, I'm talking about status, not physical proximity. The "local vs. remote" thing is a whole different issue which I mention to pre-empt any accusations of hypocrisy based on previous posts on working remotely. Kyle the Unprotected
Saturday, September 20, 2008
I have kind of a love/hate thing going for Roy Osherove's blog. The "hate" part comes because he always challenges my perspective when I least expect it. Some of his posts seem like they are baiting people and it is easy to discount them as biased based on his position with TypeMock. But given what I think I know about him, I read these "inflammatory" posts with a different view. That is, as someone who is challenging the view of my personal echo chamber. I read tons of posts extolling the virtues of mock objects and Rhino Mocks. So it hurts my little brain to see someone I respect saying it's okay to keep your current "creative" design and still be able to test it. It starts, "Yeah, whatever. Like I'd ever do that." Then I start mulling it over and grumble to myself, "well, I guess that would have made sense in this past situation", then "actually, that makes sense for quite a few scenarios." Eventually, the train of though leads to my lying on my bed sobbing on the phone with my old employer to apologize for the colourful analogies I made to describe his project when I was unceremoniously let go for rocking the boat too much. Which is an interesting thing to account for when drawing up the timesheet for my current contract. Anyway, this Roy-love isn't the real reason for this post but hopefully, you're used to the hillbilly's verbose lead-ins. Roy's most recent post is another example of one that seemed bound from the beginning to give me a headache just from the title alone. But luckily, it touches on a subject I've thought about before, particularly when dealing with the fledgling Bahamian software industry. I won't paraphrase because chances are, you've read it already but the question it tickled in my mind was, "Are the best practices I've adopted over the last two years practical?" I've mentioned this a little before from the perspective of a small application for my family who can't afford a senior developer should I take up shark-baiting in the near future. And it's going to be hard to talk about this without sounding elitist so I'll call up the good will of my 98 previous posts at CodeBetter and hope y'all assume the best. I took JP's Nothing But .NET course over a year ago and had an absolute blast. But quite a lot of people struggled with it. Since then, I've made a more concerted effort to learn more about things like mocking, dependency injection, the SOLID principles, etc, etc, and so on and so forth. It hasn't always been easy but it's been tremendously rewarding. Learning all of it has made development fun again. Plus it's allowed me to connect with a ton of other people both as mentor and learner. And as a mentor, I've seen my share of people struggle with it. Even before I started, I saw a lot of people fight to understand things like AJAX calls, NAnt scripts, even CSS. By all accounts, these are reasonably bright people. They want to do a good job and are receptive to new ideas. But quite frankly, some of these things are hard. Let no one forget that learning how to properly use mock objects is *not* an easy task and until you "get" them, they will seem like unnecessary overhead. I resisted TDD for many a moon. Even today, it's still not quite second nature. That's mostly because I'm stuck in Livelink-land these days which contains code that would make Michael Feathers shake his head in defeat. When I entertain these thoughts, it's usually a battle between "should we cool our heels a bit until we hit the tipping point" and "should we keep going full tilt until the message starts getting across". As Roy mentions in his point, the learning curve is high. Do we keep pushing the learning so that more people get over it or do we lower the learning curve until most people get it, then raise it a little? I'd like to think we can do the first. The second seems like giving up. And worse, if we start to "dumb things down" in actual projects, it will be that much harder to actually lower the learning curve because no one will be pushing the boundaries. No Fluent NHibernate, no MvcContrib (or even ASP.NET MVC), no StructureMap. We've all seen what teaching to the lowest common denominator has done for the North American education system. Yes, we can put the onus on programmers to "do a better job" but let's face it, these people have lives. My dad is a land surveyor and my mom was a registered nurse. By all accounts, they were/are very good at their jobs and I remember very few instances of them taking their work home with them or advancing their learning outside of their work. With software development, it is almost expected that if you want to get better, you need to do it on your own time. And when you're done, you face going in to work to find that the rest of your team hasn't done their part and thus, are not amenable to the changes you want to make. So how far can we reasonably push people? The work needs to actually get done and it seems a good chunk of programmers still don't put any special effort into making code maintainable over the long term. Do we need to change the message? Or the medium? Are user groups and code camps doing their part or simply enforcing the status quo? Is alt.net making a difference or fragmenting the industry? Or simply being ignored? Will be interested in hearing people's comments on this as I actually have an over-arching reason for this line of questioning. Lord Tunderin' Jayzus, what a friggen essay this turned out to be. Now I gotta go dig up a couple of halfway-relevant images to balance out this tome. Serves me right for thinkin'. Kyle the Introspective
Monday, September 15, 2008
What's the first thing you think of when I say "Bahamas in February"? If you said "code", then you're my target audience for this post. First, a recap of the BahaNET meeting last Thursday night. We finally hit double-digit attendance for the first time which is very exciting, even if the number includes yours truly. A midway surge of three people added 40% to the numbers to bring us to the coveted "ten people". It was very exciting. Especially considering the topic was version control. But that's not what I came here to talk about. Something that's been nagging in the back of my head for some time now is the possibility of an event in the Bahamas, hopefully next February or thereabouts. I don't want to call it a code camp just yet because I'm not sure that's what I want to do. A code camp seems local in scope and I'm still trying to figure out if we have the user base to justify it. Another option is to make it more summit-y. I.e. invite people from around the world for a nice little software development love-in. What can we offer that other conferences don't? Well, nothing from the professional development side of things. But just the same, I think we'd have a decent turn-out for some reason. I've had a *lot* of interest in this option. Not sure how much of that will translate to actual plane tickets being booked but it's encouraging nonetheless. There is a downside to the latter option that I think is pretty important. We would lose the local focus. I think there is still work to be done within the country before we start inviting software heavyweights down here to talk about functional programming and DDDD. Which leads me to another option, and I swear I had this in mind before Kaizen came out. Instead of a code camp where there is presentation after presentation, I'd like to hold two days (minimum) of practical workshops. A workshop would be four hours long and ideally, we'd have at least two or three "tracks", with at least one of them geared very much toward beginners. At least on the first morning. I believe this would offer the best of both worlds. The local development community could benefit from some hands-on training and the global community could pass on their knowledge in between margaritas on the beach. I do have a medium- to long-term plan for the industry in the Bahamas. Realistically, a full day of 75 minute presentations doesn't fit in with that goal right now. And as much as I would love to invite the world to the Bahamas for Caribbean TechFest so we can debate the pros and cons of IronRuby, that isn't going to help the fledgling software industry in my adopted homeland. I've been talking with some people rather vaguely about some of this already for some time and I suppose this is simply a way to try to crystallize things in a semi-permanent format. I'd be eternally grateful to anyone who can provide constructive feedback and/or advice on any of this as February is not quite as far away as I would hope. Kyle the Planned
Tuesday, September 09, 2008
Quick note to announce that Hurricanes Hanna and Ike haven't dampened our resolve! BahaNET is meeting this Thursday, hopefully at the usual place but I haven't quite verified yet. Discussion topic will be source control. Specifically, how to set it up, maintain it, and use it effectively. It's a topic that is often overlooked but can become very cumbersome very quickly when not done properly. I'd tell you war stories but I'm guessing I can't top yours. There will also be some interesting side topics so if you're in the area, it'll be a good one to attend. Hope to see you all there.
Tuesday, July 01, 2008
Well, Canada turns 141 years old today and as we all know, 141 is the Conference anniversary. So in keeping with that, registration is now open for the alt.net Canada Open Spaces Extravaganza. Get your requests in early because only the first 100 will be allowed in and at the time of writing, over 10% of those are filled already. After that, you'll have to do what all Canadians do and try to cozy up to the bouncer. I will personally guarantee satisfaction at *any* cost for all who attend so don't delay. It will be held in the future capital of West Canada: Calgary, Alberta at the University of Calgary. Full details on the site. Organizing, and in attendance, will be a gaggle of good Canucks, including (in alphabetical order by first name): Bil Simser, D'Arcy Lussier, Dave Woods, Donald Belcham, Greg Young, James Kovacs, Justice Gray, and Terry Thibodeau. And facilitating will be facilitator extraordinaire, Doc List, which was a bit of a coup for us. So if you haven't been able to make it to one of the previous events in Seattle or Austin because of "border troubles", no more excuses. Kyle the Hyped
Thursday, June 19, 2008
Many thanks to Sebastian Lambla for inviting me to the alt.net London beers this past Tuesday evening. It was a fun evening and if you are in the London area, I'd recommend checking out future meetings. This was the second night out and they have plans to run it every month in the second or third week. You can watch for it on the alt.net list but if, like me, you're stepping back from the list, Sebastian's blog is probably your best bet. He's a good resource to have in your blogroll in any case. As it was only the second one, the format is still in flux but I like what I heard. Future meetings will including a period of tech talk on a pre-determined topic followed by much socializing. And in my experience, few places on earth are as amenable to that as central London. Also thanks to the local community leaders, Zi Makki and Craig Murphy, as well as the eight or ten others I met briefly but didn't get to talk to as much as I would have liked. For a hillbilly working on his own in the .net frontier that is the Caribbean, it was a much-needed burst of geek socializing. Kyle the Consorted
Friday, May 30, 2008
Need to be more on the ball with announcing community events that I'm hosting. The Bahamas .NET User Group had its second meeting on May 28 and it was another success. Running a user group is an odd kind of thing. There is more work than you imagined when you had the initial idea and you often get to the point where you wonder if it's worth it. Then the meeting starts and goes by in a blur and when you're driving home, you're wishing you could meet every week instead of monthly. It's a rush that is almost as good as...well, let's not get carried away. It's a good feeling is all. The group was seven strong, not including me. That's one more than last time, and that includes six newcomers. The topic was Building Websites in ASP.NET. The group was small enough, and the topic dear enough to my heart, that I could, and did, veer off in directions I didn't anticipate. At one point, I dove into the life cycle of an HTTP request, something I haven't stopped to think about in many a full moon. Still working on getting things to run smoothly. The e-mail I sent to the group reminding them of the date actually contained the wrong date. So between that and the last minute venue change of the last one, it looks like the third one will hopefully be the charm. The good news: I recorded the session. The bad news: The air conditioning didn't work and someone took mercy on me partway through by turning on the fan. A seemingly benign act of philanthropy but the fan happened to be directly over the microphone. Who knew air made that much noise when it moved? The final half hour is nigh-incomprehensible so I had to mute the entire thing and add a soundtrack instead. My apologies for that. Guess you're never to old to learn. Part 1 (47 minutes - 40MB - WMV) Part 2 (44 minutes - 37MB - WMV) Silverlight version may come later when I figure out how to encode them into files smaller than 185Mb each. NEXT MEETING IS TENTATIVELY SCHEDULED FOR Thursday, June 26 at 6:00 at IPBS House The topic is Connecting Web Applications to a Database but there is still room for discussion on that if there is enough interest in something else. And if you have any other suggestions or want to help out yourself, you know where to reach me. The most encouraging part of the last meeting: One attendee asked if we could meet more than once a month. Kyle the Adrenalized
Wednesday, May 21, 2008
I was invited to speak at the Florida Tweener weekend which is the weekend 'twixt the two TechEd weeks in Orlando. The schedule is up and I had no idea what the scale of this thing would be! Not only is there a full day .NET code camp but also over a dozen other activities. The ones I'm excited about are the Day of Agile, the Day of Silverlight, the Open Space, and the Mickey Mouse Club.NET session. The last one's not on the schedule yet but I have high hopes. For my part, I'll be presenting on Brownfield applications, mostly because I have the presentation ready (well, actually Donald Belcham has the presentation ready). Luckily, I'm the first session in the morning on Saturday which leaves the rest of the weekend to drink it all in. Oh, and don't be dissuaded by the registration process. "Click to attend" is an appropriate name given how much &*%$ clicking you have to do to sign up. Kyle the Tween
Sunday, May 11, 2008
'Tis the day before I head out for DevTeach and have already completed my pre-conference ritual with my wife. It's a fun game we play a few times a year called "Why do you do this?" I was just settling in for some quality time with Bear Grylls when she starts the first round off with the standard "So you're taking a week off work?" opening. We'd just had a pretty fun day at the beach so her heart isn't really in it. So I counter with a half-hearted "Yep. Should be a fun time" to let her know I'll take it easy on her, too. She responds with a biting "Didn't you just start your contract last week?". It's a slight breach of etiquette upping the ante that early but I give her the benefit of the doubt and play along: "Yeah, I cleared it with them before I started. They were good with the time off for this as well as our trip to London next month." She gives an appreciative nod at my subtle volley but then her eyes harden for a few seconds while she plans her next move. She throws out a quick "I thought we agreed to cut back on these things" which stuns me for a moment. If I didn't know her better, I'd chalk it up to an amateurish mistake. But in fact, she's looking to buy some time. I'm not letting her off that easy: "We agreed to no such thing and you know it." Her delay tactic isn't long but it's enough: "Do you actually learn anything at these conferences or is it just an excuse to get drunk and speak whatever language it is you people speak?" It's a baiting ploy because we both know I don't imbibe but I don't rise to it and instead bring out the heavy artillery in an effort to return to normalcy: "I've done the cost/benefit analysis already and believe I will gain more than I will lose (though admittedly, the benefits are more long-term and intangible). I'll remind you of our agreement that all aspects of my career remain solely to my discretion as long as we remain on this island. We have already received direct benefit of my community involvement in the form of the upcoming book and my last contract being a direct result of my blogging." There is more admiration than resignation in her face and the battle is all but won. But she can't resist a parting shot. With a twinkle in her eye, she snuggles up to me just in time to see Bear chow down on a live frog and says: "Oh well, I guess I'll just stay home and watch Brokeback Mountain while you go off 'fishing' with your buddies." Kyle the Victor (I think)
Friday, May 02, 2008
NOTE: This post is about a day and a half late. I could claim that I wanted the event to sink in first but the reality is I was trying to get a handle back on things after a very hectic week. Part of it was a short but very successful trip to NYC. So dense was the wife's and daughter's shopping-to-waking-hours ratio that I'll be looking for sponsors for our next trip (anyone from Visa and/or American Girl in my readership?). Closest I got to purchasing anything of value was walking by a Best Buy after closing and laughing at a fellow who tried to sell me a router for $120, which was over half off the ticket price. But that's not what I came to babble about today. Encouraged and invigorated. That's what I felt right after the first BahaNET meeting and what I still feel now two days later. Attendance, including myself and Dave Noderer, was a whopping seven people. Experience ranged from an IT Pro looking to get into programming, to a game programmer (watch for Rudolph the Red-Nosed Reindeer for the Wii this Xmas), to a young lady acting as the sole .NET programmer at a local bank. It was a very interactive meeting with everyone showing genuine interest in solving not only the problems I lamented last time but a few others. Everyone was active in the discussion, especially at the end. And I got the sense that from these seven people, we'll have a good base from which to grow. The main problem I see is simply getting people to see the value of such a group. As such, this was something we discussed for some time. We veered into some unfamiliar territory for me as we talked about some practical ideas as well as some more...ummm...let's say "long term" plans (like a robotics competition). There was much talk on how to change attitudes in the country. This, by far, is why I foresee any real change taking several years. In my last post, I talked about people who have no interest in "talking computers" after working on them all day. But as was pointed out at the meeting, that shouldn't be the focus initially. So I'll be tweaking things more toward the social aspects of the gatherings. But even with the small group, one of the major benefits of regular meetings like this came up several times. Namely, people learned things that they may not have known before. There was tremendous interest in DotNetNuke as a possible platform for creating websites (which is a common business model in the Bahamas), which some of the attendees had never heard of. This was not the only example of side conversation enlightenment by any stretch either. All in all, I believe those that attended will be back and will bring friends. And I got what I wanted out of it: a sense of how to proceed for the benefit of everyone. The final pleasant surprise came when I handed out prizes. People were offered a choice of items and not a single XBox game was claimed. Instead, people took Visual Studio licenses, a book on SQL Server programming, and a copy of Communication Server. We even discussed the next meeting: May 30 at the same location (IPBS House). Topic will be: Creating a Website in ASP.NET. See you there! Kyle the Re-animated
Wednesday, April 30, 2008
Bahamas .NET User Group's first meeting is tonight and I'm using my little pundit here to document some pre-game thoughts for posterity. So that I can compare notes to the post-game show. If I were to be honest with myself, I'd admit that the lead-up to this has been more frustrating than exhilirating. I simply have no clue what is going to happen tonight, but not entirely in a good way. I've sent out several e-mails to people and organizations that might want to attend. (That's not including the mail-outs to the people that were nice enough to register for the group. That's been the only concrete evidence of any kind that people are interested in attending.) With one exception, all of these e-mails have remained unanswered. The exception was from someone who said no one at the organization was interested because they work with computers all day and they have no interest in doing it in the evening as well. A common enough response, albeit a somewhat misinformed one. The assumption is that they have better things to do with their time than learn about software development. Fair enough. It remains up to me to encourage the social aspects of the group rather than the professional ones. Frankly, I'm just happy I got a response because it means I now have an actionable item on my to-do list. Part of the anxiety comes with not knowing how many people to expect (which is a symptom of the unanswered e-mails in some respect). The only confirmed attendees I have are myself and Dave Noderer. More on him later. And neither of us are exactly qualified to discuss the nature of software development as it applies to the Bahamas. A couple of other general attitudes I've encountered. One was summed up succintly by someone who has lived and worked here most of his life: Bahamians aren't good enough for Bahamians. The problem being Bahamians, while a very proud group, do not have confidence in their fellow citizens to pull through on things like this. Unfortunately, even in my limited experience, there is evidence supporting this line of thought. One of my goals with this group though was to reverse it. Or prove it wrong. The second attitude I've come across is an overwhelming sense of protectionism in one's intellectual property. Bahamians seem to be overly secretive about their ideas for fear that someone else will steal them and make money from them. This doesn't really lend itself to open discussions about software techniques. Again, a problem I've recognized and have grandiose plans to counter. I know there are some Bahamians reading this, most of whom don't actually work in the Bahamas anymore. When I first started planning the group, I was excited about the possibilities. I still am. The country remains an untapped resource with unique potential. Realizing it will be, by my estimate, a multi-year process. But it'll be a fun process. Back to Dave Noderer. He represents a group of people that has shown unwavering support and encouragement for the initiative. Namely, the outsiders. That is, people from other groups, Microsoft, INETA, various sponsors, even colleagues and passing acquaintances. I have received nothing but praise and inspiration from them. Granted, a few of them are probably thinking ahead at attending a possible code camp in the Bahamas... Dave, in particular, has been nothing short of stellar in his support, providing me with tips on managing, passing on info on sponsors, and even flying into the country for the night just to attend the first meeting. It's because of people like him and others like him that I've even stuck it out this far. Depending on how things go tonight, I have a couple of back-up plans on how to tweak the direction of the group. Try to my nature, I remain optimistic. Optimistic that there are enough like-minded individuals to sustain the group in some form. Optimistic that the issues I've come across are behavioral rather than cultural. And optimistic that Code Camp in Paradise will happen in early 2009. Kyle the Rose-Coloured
Monday, April 28, 2008
Quick announcement/reminder today. The inaugural meeting for the Bahamas .NET User Group is in two days. Thanks to IPBS for allowing us to use their office to host it. They are located on Moseley Lane. You can get to it by going west on Shirley Street and turning right on to Moseley Lane right after the entrance to Harbour Bay. And I mean RIGHT after the entrance, like about ten feet after so don't miss it. It's a one-way street going north, too so you can't get to it from Bay Street. If you are coming from the west, you can turn into Harbour Bay, head to Shirley Street, then make a U-turn on to it. Festivities start at 6:00pm and will end whenever we run out of things to say. It will be a round-table discussion on the nature of software development in the Bahamas. Thanks to our sponsors for their support, especially the local businesses who see some potential in our little gang: Come for the free food and prizes, stay for the stimulating conversation. Kyle the Marketeer
Thursday, April 24, 2008
Watching the Polyglot Programming video courtesy of enabler-extraordinaire, Dave Laribee, and it revealed (or rather re-revealed) something about myself that I hope is common enough that I'll get at least one BOOYAH in the comments. I watched Amadeus when I was just a wee country whelp. And even at a young age, I could identify with the narrator, Antonio Salieri (at least how he is represented in the movie). It's a simplified comparison, to be sure, but one that has stuck with me. In the movie, Salieri is a composer caught in the large shadow left by Mozart and he becomes increasingly enraged at what he feels is a cruel, cosmic joke. Namely, he has been instilled with the ability to recognize genius and the desire to create good music, but not with the talent. (This is compounded into murderous intentions when he is able to recognize that genius in Mozart, who seems to treat his gift so cavalierly. I don't generally identify with him this far.) Ten years into my career, and some thirty-six years into my life, I don't have many illusions about what I can and can't do anymore. On the strong end of the stick, I can learn new applications and languages relatively quickly. I can be pretty productive when I put my mind to it and am able to communicate my intentions clearly. At least that's what my resume says and it's on the internet so it must be true. But watching this video, and indeed, hanging out with the alt.net crowd in general, makes me refer back to Amadeus on more than one occasion. I can't help thinking there are a lot of Mozarts out there. And I don't mean in their day-to-day work. That's the easy part. I can pound out good code and talk best practices, often coherently. Rather, there are people out there who are able to create beautiful music in our industry by asking the right questions and having a clear vision of what the state of the world should be. Or at least, they recognize problems I didn't know existed (and, it must be said, some problems I still don't have - still a challenge to differentiate the two) and are able to steer the conversation in a way that facilitates solving those problems in a clear way. On the other hand, I am able only to recognize when a "good" idea has been mentioned, or when a vision is worth being part of. "Good" being relative to my immediate sense of the world. Plenty of good ideas go whooshing by if they don't have an short-term impact on what I'm doing. I'm able to run with an idea, maybe even expand on it a little. And I can certainly document my trials, hopefully for potential mass benefit. I'm pretty sure this has to do with my tendency not to take anything in my career too seriously. Not sure if the attitude causes the problem or vice versa, but there it is. Whatever the reason, the attitude has worked for me for over three decades so it's not going anywhere. As for the lack of overall industry vision, as mercenary as it sounds, I'm good with that too. It's hard enough copying what others are doing (e.g. starting a user group), without having to make up the rules as you go. To tie this back to alt.net, I'm happy in my role as semi-silent observer. At least with respect to the bleeding edge trends like polyglot programming and future architectures. It'll help to have that background for when I catch up. And to tie it also back to the metaphor I'm using, it doesn't mean I need to react the same way Salieri did upon realization of fate's sense of humour. (That is, I won't drive the likes of Laribee and Scott Bellware into madness and death, steal their work as my own, then absolve the masses for being as mediocre as I am.) I can still be active in my own way and play off the strengths I have. There are plenty of people in the same boat I'm in now and plenty in the one I was in five and ten years ago. I may not be able to push the boundaries of the playing field, but I can certainly invite more people to the game. Kyle the Metaphoric
Saturday, February 23, 2008
OK, I've already given away the ending so I'll skip the build-up. But to set the stage for the official announcement, I'll direct your attention to the pictures adorning this post. They represent two of the workspaces I frequent, both in my condo complex. All pictures are clickable for larger, more enviable versions. I could try to justify why I'm putting them up with some sort of ergonomic crap but really, I'm just gloating. The formal announcement: The Bahamas .NET User Group is up and, quite possibly, running. With little more than a half-baked plan and a dream (but still no location for the first meeting). The inaugural meeting is April 30 and the topic is Software Development in the Bahamas. It will be a round-table discussion, very likely done in fishbowl style because I predict a lot of opinions on the subject. Many thanks to all who listened to me babble on it to date and those who showed enough enthusiasm to convince me that this might actually work. And to those who critiqued the various incarnations of the websites. These include: Donald Belcham (head of www.edmug.net), Derik Whittaker, Josh Schwartzberg, Dave Noderer (of www.fladotnet.com fame), and Morgan Baker of INETA. Because the version you see before you is actually version 3.0. Version 1.0 was a DotNetNuke site that didn't last long after I received some advice from someone who has had to deal with it on a regular basis. I'd reprint it but I don't want to offend my younger readers. Besides, I'm not sure I could spell some of the profanity he used. Version 2.0 was SharePoint-based. Specifically, it was the Community Kit for SharePoint: User Group Edition template (more commonly known as CKS:UGE, which, and I'm sure this is a coincidence, is o ne letter away from containing all letters from the word "suckage"). This version actually lasted over a week. I even upgraded my server's RAM at GoDaddy to accommodate the slight increase in requirements that SharePoint needs in order to run. (Actually, to be fair to SharePoint, it ran fine on the box. It was every other web application that went on strike in a show of solidarity against the invading new kid.) So I configured SharePoint (on the advice of my psychiatrist, I shan't elaborate) and figured out how to install the CKS:UGE template. It doesn't quite work out of the box but there are pretty detailed instructions on what to do to remedy that. Kudos where they're due, they have done a good job in helping user group leaders get a demo site going from which you can steal ideas. But there were a fair share of minor annoyances with the templa te. You can follow along with my discussion of them with their demo site. Firstly is the usability of the design. There is way too much wasted space at the top which means users need to scroll down to see what is likely going to be the most commonly consumed piece of information: the next meeting. On my display resolution of 1440x900, the main content of the page starts just shy of halfway down the page. Everything above that is noise to me. Also on my display resolution, the Events Calendar section has only enough space to display the title of the event in the bottom right corner (depending on the size of the announcements). In my opinion, this should be the most prominent thing on the site, along with the Welcome message. It shouldn't be relegated to the galleys right above the sponsors that nobody clicks on. Yes, users can subscribe to events with RSS but for those that don't and just want to whip the site up for a quick check (possibly in a mobile device), don't make 'em look for what they need. Next issue: The left sidebar. The links here are mostly redundant so I wanted to ditch the thing and reclaim that space. No such luck. I don't think anyway. I can hide it but then it still takes up space. At least it did when I was logged in as an admin because it displayed the Recycle Bin. Looking at the demo, it doesn't display a Recycle Bin so perhaps it actually does go away when you are logged in anonymously. Final problem is how users sign up. They do it by completing a survey. Which means that for me to see the membership, I need to sign in and navigate to the results of that survey and click on each one individually so see the details. Or export it to Excel. Neither option makes it easy for me to grab a quick list of current membership. These little nitpicks, coupled with the fact that I need only three of the forty features it offers, led me down the custom app route. The three features I wanted for the initial launch: - Ability to sign up
- Ability to display the next event
- Ability to display list of sponsors
That about covers it. Don't need discussion lists, wiki pages, photos, or even a past events page. In fact, for the amount I'll be updating this site, I have serious doubts as to whether I even need to make the events list dynamic at all. I am a software developer after all. How hard is it to cut and paste HTML? Elapsed time to implement the current incarnation of the site: 1 day (thanks in part to the fine folks at www.oswd.org for their free web templat es). This includes a sign up process that writes to a .CSV file and sends an e-mail to me when new members join. Which is about as dynamic as it gets down here. So if you're in the Bahamas and have nothing else to do on April 30, consider joining us at a yet-to-be-determined location. I'm trying to decide between holding it at the local college or commandeering someone's yacht. Now to work on my plan for a CodeCamp every week from November through the end of April. Kyle the Ambitious
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in any way.
Copyright © 2010 Kyle Baley. All rights reserved.
|
|
|
CATEGORIES
|
|
LATEST POSTS
POPULAR POSTS
|
|
ARCHIVE
| August, 2010 (1) |
| July, 2010 (3) |
| June, 2010 (3) |
| May, 2010 (1) |
| April, 2010 (5) |
| March, 2010 (4) |
| February, 2010 (8) |
| January, 2010 (2) |
| December, 2009 (3) |
| November, 2009 (2) |
| September, 2009 (5) |
| August, 2009 (4) |
| July, 2009 (2) |
| June, 2009 (5) |
| May, 2009 (6) |
| April, 2009 (5) |
| March, 2009 (6) |
| February, 2009 (2) |
| January, 2009 (6) |
| December, 2008 (5) |
| November, 2008 (2) |
| October, 2008 (5) |
| September, 2008 (9) |
| August, 2008 (5) |
| July, 2008 (7) |
| June, 2008 (6) |
| May, 2008 (11) |
| April, 2008 (13) |
| March, 2008 (13) |
| February, 2008 (12) |
| January, 2008 (19) |
| December, 2007 (16) |
| November, 2007 (8) |
| October, 2007 (23) |
| September, 2007 (15) |
| August, 2007 (8) |
| July, 2007 (6) |
| June, 2007 (11) |
| May, 2007 (19) |
| April, 2007 (14) |
| March, 2007 (3) |
| February, 2007 (4) |
| January, 2007 (7) |
| December, 2006 (5) |
| November, 2006 (9) |
| October, 2006 (11) |
| September, 2006 (14) |
| August, 2006 (11) |
| July, 2006 (15) |
| June, 2006 (8) |
| May, 2006 (10) |
| April, 2006 (12) |
| March, 2006 (3) |
| February, 2006 (7) |
|
|
|