Python 101 for the .NET Developer

I get to add another talk to my list of Python/IronPython talks, as I’ve been asked to speak at the Cleveland C#/VB.NET SIG for their June meeting. The talk will start with a focus on Python, giving my fellow SIG members a glimpse at yet another language to add to their toolboxes. We’ll take a look at what it is, how it compares to C# and VB.NET, where it is strong and where it is weak. If time allows, I will use one of its weak points to transition into IronPython, which is the best of both worlds, bringing .NET to the Python language.

If you’re interested in heckling me or maybe even seeing my talk and learning about the language, here are the details:

Hope to see you there!

The New Pick-up Icon – the Netbook

I’ve had my netbook since the middle of January, running Windows 7 from day 1. No, my netbook doesn’t have a DVD drive. However, a USB to IDE adapter gave me the ability to hook a drive up to the netbook to get Windows installed.

Everywhere I take it – user groups, coffee shops, hotels – I’m asked what “this little laptop” is. I call it my laptop’s laptop. Check this out for a size comparison:

Laptop, netbook, and wireless keyboard
15″ ASUS G1 laptop on the left, Dell Mini 9 on the right

It’s such a great conversation piece. I’ve had total strangers – both male and female – stare for a bit and then come up and ask me about it. So look out cute kids and puppies, the netbook is the new pick-up icon!

So what do I tell people about it? I love traveling with it – smaller footprint than my 15″ laptop, much lighter, and great for things like checking email, reading things on the Internet, chatting online, and basic office functions. Going away for work and want to stay in touch with the fam? This one has a webcam built-in, great for video chatting. I had tested it with one of my friends, who was amazed with the webcam’s clarity, as if he was looking directly into my house. With wi-fi, wired, and Bluetooth capabilities, I can get my Internet fix in a number of ways. The SD card reader is nice for offloading pictures from my digital camera to a hard drive while I’m on trips.

Ah… but the hard drive. So the Dell Mini 9 that I have has a 16GB solid state drive. That’s right, only 16GB. So I have to watch my space. Now I know I can upgrade my hard drive and that Dell is shipping Minis now with bigger hard drives, but from my personal basic setup, 16GB is what I have to work with, which isn’t really that much space for storing pictures – especially when 7GB alone is eaten up by the operating system.

Battery life is good enough for me. With wireless on and full use, I can get a couple hours easily. However, I’m typically not promiscuous with my netbook, so the wireless is usually off and the display brightness isn’t super bright. This means I get about 3-3.5 hours of battery life.

The processor and the memory are my limiting factors. I’ve got 1GB of memory, with a 1.6GHz Atom processor. So it’s great for the stuff I mentioned above. However, as a developer, I wouldn’t compile code on it. Writing scripts, HTML pages, and other notepad tasks… sure. Working on a Silverlight app… probably not.

There are little quirks, but I had to expect something had to change, considering the size. One of the other things I struggle with sometimes is the keyboard layout. For the most part, it’s a QWERTY keyboard, but my tilde (~) and my apostrophe (‘) are in different spots, and that throws me off, for as much as I use those characters.

Despite the headache it was to get it shipped, I am fairly content with my netbook. If you’re doing simple tasks on a computer while on the go, I’d recommend the Dell Mini 9.

My Experience with the Web Platform Installer – Part 1, Web Platform

Over the past couple months, I had been leery about my hard drive in my laptop. It had been getting noisier, and a noisy hard drive is never a good sign. Before I went to PyCon, we got a new hard drive, just in case we had to swap it out at the last minute. Thankfully, the electronic powers that be smiled down on me for the past 3 presentations (PyCon, Central Ohio Day of .NET, and Kalamazoo X) – the hard drive stayed noisy, but it also stayed strong.

Tonight, we replaced my hard drive with a new one, and instead of imaging the old drive to the new one, I did a fresh install of the release candidate of Windows 7 Ultimate. Rather than installing everything else, I came up with an idea to try out the Web Platform Installer.

Jeff Blankenburg has mentioned this in his MIX recap talk that’s touring user groups and in his Stir Trek talk. I had played with this a little bit with my previous setup, but I already had other software packages (like Visual Studio 2008) installed. This time, I wanted to see just what it could do with beefier packages (other than just the Silverlight tools).

The best way I can describe the Web Platform Installer is something along the lines of an apt-get GUI for web products that can run on Windows.

Now keep in mind that I’m a web junkie, so this tool is perfect for me. Let’s add a little background to explain the method behind my madness – I’m hoping to work with MVC soon enough, and as for PHP, well, you may see me talk about that more.

I run a site called Cleveland Tech Events, and I’m currently using Joomla as my content management system (CMS). However, there are a lot of features and things that I want that Joomla can’t give me. I can look at other CMS packages, but I need to keep my PHP skills up, so I’m going to write my own. Cleveland Tech Events lives with many of my other domains, where PHP is the common base. So I’ll stick with what I have. Seeing that the Web Platform Installer has PHP as an option, I’m truly curious now.

After downloading it and installing it, I was ready to use the Web Platform Installer to get my web development environment setup. So this is what I’m telling it to install:
Web Platform Installer - Selected Packages

One thing you’ll notice, the Web Platform Installer will download dependencies, much like apt-get. I did not have anything installed beforehand, but it added SQL Server Express and Visual Web Developer Express, without me having to select that.

Web Platform Installer - Selected Packages with Dependencies

Web Platform Installer - Installing Dependencies

However, I did run into an issue with one of my installs – that would be the Silverlight 3 Tools installer. I reran the Web Platform Installer and reselected the tools after the first set of installations finished, and Silverlight cooperated the second time around.

Web Platform Installer - Failed Install

Now I focused on the Web Platform side for this installation, since I’m trying to get my laptop setup as a development environment. But wait, there’s more! Stay tuned for Part 2, when I get into what’s hiding in the Web Applications tab.

Advice for Young Geekettes

There were quite a few female attendees at Stir Trek yesterday – it was quite impressive! We got to talk with the ladies of the Centerburg Trojan Robotics Club about women in tech, and here are some of the things I had to say.

Don’t let the bad rumors or the guys intimidate you.

Sometimes, you will run into guys who make it their goal to intimidate you. Do not give into them. They are few and far between in the industry, but they give the field a bad rep for women in general. I’ve been working in various aspects of technology – tech support, IT, and software development – and most of the guys that I’ve worked with wish that we had more women in our workforce. As women, we can offer a different perspective on problems and how to solve them. You should have a tough backbone in case you do run into one of those guys who tries to discourage you. But something you’ll find is that many guys will be welcoming and want to show you the ropes – if you run into those guys, learn to trust them and learn from them. Oh, and be warned… we’re a bunch of geeks in the field, so bad puns and bad humor are abound.

Do what you enjoy doing.

If you like working with robots or writing code or whatever it is that you like doing, stick with it and look into possible career opportunities related to it. Work doesn’t have to be a boring thing that you do for 40 hours a week just to put a roof over your head. Why waste life working a boring job when you can do what you like and have fun at the same time?

Get involved!

I don’t think I can stress this enough. These ladies are freshmen in high school – which means plenty of time for them to get involved in the community and get their names out there. For example, seeing that they’re currently geeking out with robotics, they may want to look into the Columbus Robotics Society and getting involved with them (attending meetings/events, join their mailing list, etc.). Another way to get involved is to join Twitter and look for others with similar interests that you can talk with, bounce ideas with, and network with.

The more you get involved with the community, the more people you interact with, the more recommendations you can get… which can lead to internship opportunities at both the high school and college levels and job opportunities in the future. You will also find that in networking with others, you will learn more from the people you meet and their experiences in the industry. You are never too young to get involved in the community, but if you get involved early, that gives you more time to get your name out there, which also means more time for you to meet people and take advantage of more opportunities in the industry.

Stir Trek Recap

Yesterday, I took the day off of work to attend Stir Trek. I’d been hearing about it for quite awhile, as Jeff has been quite excited about it and talked about it quite often throughout its planning stages. After two months of planning, the event finally happened!

I arrived in Columbus Thursday night, just in time to catch the tail end of their geek dinner. It was good to finally meet Rachel Appel, and I also enjoyed seeing all of my friends who were there. I apparently had good timing, as some of the guys who were there wanted to play Zombie Fluxx (in the food court?!?) and I happened to have my set on me. It was good to see the gang before the event, as the day of the event would be quite busy!

Friday morning, I was up bright and early to help transport supplies to the theater. Once we had our caravan of vehicles unloaded, I joined the registration team and helped them with setup.

Carey Payette and Jody A. Morgan, running the registration

Carey Payette and Jody A. Morgan took over leading the registration team. These two ran a great operation on getting people their bags, their tickets, their nametags, their shirts, and everything else needed for registration. I worked with Lilyn Chang and Brian Moore on getting tickets and bags to those waiting to register.

The Stir Trek registration team

After people registered, they were sent down the hall, where they could get something to eat for breakfast. Brian Sherwin did an excellent job of setting up the breakfast, including the artistic arrangement of the fruit.

Breakfast at Stir Trek

There were two tracks for this event:

The Rich UI Track

The Web Track

There were many topics covered between the 2 tracks. Special thanks to the speakers who came out and shared their knowledge on the topics covered, in no particular order:

Thanks to our sponsors for helping make it happen:
The Microsoft Booth, with Mike Eaton and Jeremy Adams

DeVry University


And thanks to the attendees who came out for this amazing event. I saw many people from Cleveland, and I’m glad they came out. There were over 300 attendees at the event that came from all over – Washington, Missouri, Kentucky, and Michigan, to name a few places.

Thanks to the volunteers who helped the organizers with the event. And most of all, thanks to the organizers – Jeff Blankenburg, Matt Casto, Tim Hibner, and Carey Payette – for bringing this event to Columbus (and not Detroit for once!).

I took a lot more pictures than the ones included in this post. You can see my pictures in my Stir Trek set on Flickr.

Looking forward to next year’s event – something along the lines of Iron Man 2… hmm….

Cleveland Architecture SIG Inaugural Meeting Recap

Last night, I attended the inaugural meeting of the Cleveland Architecture SIG. The group itself is being organized by Jody A. Morgan and Andrew Craze.

We had people of various backgrounds in attendance – some with a formal architect title, and others who have had (or currently have) some architect-like roles. We started introducing ourselves around the circle, and then Jody and Andrew got the ball rolling as to what they want to achieve with the group.

They mentioned that they wanted to do a fishbowl format, so Phil Japikse (from the Cincinnati groups) taught us how to set up the fishbowl and how the format works. From there, we suggested topics for the fishbowl and then voted on them. Some of the topics that were mentioned included:

  • Patterns
  • Frameworks
  • Is Agile anti-architectural?
  • How do you define the role of an architect? How does your company see it?
  • What will the architect’s role be like in 15 years?

The main question of the night was defining the role of the architect. There was plenty of talk of the ivory tower. But the guys in attendance appeared to not like that part of the position, and some even questioned how to handle it when the company perceives the role of an architect as an ivory tower position but the architect wants to interact with the minions.

The Ivory Tower

First and foremost, I’m a developer. However, I do have enough leeway in my projects that I can sometimes make the call of using a technology or not using a technology. knowing what I do with our environment, our systems, and our end users. Personally, I would see a software architect as a person with a wide background – one that can understand the business goals and can see the technologies out there and see which technologies are appropriate for the project. Sometimes, the architect will want to use a technology that the devs won’t agree with. That’s when proofs of concepts need to be used, so that architects can get others to buy into their ideas.

As you can see in the proposed topics, those topics are pretty generic. These guys want to keep the group focused on architecture in general and do not want to shut out any particular platforms. So no matter what your platform is, if you’re a software architect, you should be at these meetings.

Thanks to Microsoft for hosting the inaugural meeting. Next month’s meeting is moving to LeanDog, on the former Hornblowers boat. The big topic that people really wanted to talk about was Frameworks. Watch their website for the next meeting announcement with the time and date. Hope to see you there!