Archive for July, 2009
Last week’s meeting was pretty cool. We’re getting more and more people sharing things, which is bringing very good diversity to the topics discussed at the meetings. Here’s a quick summary of what we covered:
- Extension Methods: we’ve seen some more examples of using Extension Methods, and also discussed a little about some guidelines as to when to use them and when not to.
- BDD: quick discussion on extension methods and BDD. This post was mentioned: it talks about Context/Specification and xUnit.NET
- Discussed about typesafe INotifyPropertyChanged with MVVM.
- Houston TechFest 2009 has been announced. It’s going to be on September 26, and like always, it’s FREE!! I’ll be presenting 3 sessions there myself.
- Our buddy JB has been sharing some cool code snippets here (fluent interfaces, extension methods, etc.).
- Functional Programming: this book has been recommended. We’ve seen some examples of monad in Ruby#. Here’s a link to the source code presented.
- Window 7: is going to be released in October. By the time it comes out, it’s going to have been a full year since I start using it. To me it’s first (using a version of Windows before it ships so much in advance). More on this later.
- We’ve seen a quick demo of the preview of Office 10. It looks good. I’m going to have to try it out soon.
- Derick Bailey’s series on “Branch per Feature” has been mentioned. It’d be great if we could get Derick to show up at one of our meetings to talk about his series.
On Windows 7
When I’ve mentioned that I’ve been using Windows 7 since Microsoft released the first bits at the PDC last year, I was asked what I liked about it. So here we go:
- I do pretty much all my development work in virtual machines. My Windows XP machines used to be about 15Gb. My Vista machines? 32Gb! Why? No idea. I always have pretty much the same stuff installed (VS, SQL Server, etc.). There’s no reason for Vista to be such a big monster. When I’ve prepared my Windows 7 machine, I noticed that it was about 15Gb in size, so that was great.
- I noticed that my Vista machines seemed to be slower than my XP ones. I then noticed that my Windows 7 was faster than my Vista one, and probably just as fast, or even faster, than my XP ones.
- Vista is annoying. Several times it happened that I’d create a file in some C:\Temp folder, and then the stupid thing wouldn’t let me delete the file, even if I ran Windows Explorer as an admin. The only way to delete it was to run the Command Prompt as an admin. Lame. That’s never happened to me on Windows 7. In fact, I run my Virtual Machine under a least privilege account all the time, and only run Visual Studio as an admin when that’s really a requirement (like when I’m doing WCF development).
- I really like the taskbar on Windows 7. I like being able to hover over an item on the bar and seeing a “live” miniature view of the screens open for that program. I also like the fact that when I hover over one of those miniatures, Windows bring that window forward and hides all the others, allowing me to either click on the miniature to activate the window, or to just go back to whatever window I had activated before. Notice that these features only work if AeroGlass is active. I must say that I couldn’t care less about AeroGlass in Vista: to me, it was just eye candy without anything really useful to me. This thing with the taskbar has changed the way I feel about it now.
I can’t remember seeing Windows 7 crashing on my machines. The only problem I used to have a couple of bits ago was that the NVidia driver for my laptop wasn’t working right, so AeroGlass would disable all of a sudden, and the whole screen would go all blurry and weird. Everything I’ve installed the Release Candidate bits that problem went away. By the way, on my laptop I’m running the 64-bit version, whereas on my virtual machines I’m running the 32-bit.
I’ll upgrade all my machines to the RTM version as soon as it’s available.
Our next meeting is today (July 30) at noon (Central Time). A couple of weeks ago somebody asked about Silverlight “out of browser” experience, but nobody else knew much about it. I’ve contacted my Microsoft buddy Jared Bienz to see if he could stop by and do a quick presentation, share his experiences, and take questions on his subject, and he’ll be joing us today!
This is the link to the meeting: http://snipr.com/virtualaltnet
I’ll see you online!
I’d like to thank everybody who showed up at the Houston C# SIG meeting last night. As promised, I’m making the presentation material available for download here. See you next time!
It’s been a while since I’ve posted a Virtual Brown Bag Meeting follow-up. I’ve been busy, that’s why. But we have been having the meeting weekly, every Thursday, from 12pm-1pm (Central Time), and I’ve kept notes to myself of some of the things discussed in several meetings, so I’ll be posting my notes here (I can’t afford the time to type a lot of details, but the intention is to give people an idea of what kind of things we talk about there). We’ve been getting new people attending to the meetings, and have been receiving very good feedback, so as long as people find the meetings useful, we’ll continue hosting them.
We’ve discussed a little bit about polyglot programmers, F#, dynamic languages. We’ve mentioned CodeCast episodes that talk about dynamic languages such as IronPython and IronRuby. We’ve also mentioned Ted Neward’s article on MSDN mag about the subject. There’s also another one by Neil on CODE Magazine.
This blog post was mentioned, where the author talks about testing C# code with IronRuby.
We’ve also talked briefly about MEF and the fact that’s designed to work with both static and dynamic languages.
This site has been suggested as a good resource on polyglot programmer.
We’ve seen samples of how people are using Extension Methods on IEnumerable, View objects, and a bunch more cool things. In the same vein, we’ve seen some cool usages of F#’s parallel programming capabilities.
We’ve discussed about BDD (behavior-driven development), and discussed a little bit about how to write those tests, citing the context/specification as one way of doing it. This blog post on Elegant Code has some more info about it.
I’ve mentioned how I’ve been working with ViewMode’s that implement INotifyPropertyChanged for the databinding mechanism in WPF to work, and mentioned how’ I’m using Brian Noyes’ NotifyPropertyChanged plugin to help out changing regular properties into properties that raise PropertyChanged. ttp://briannoyes.net/2008/09/01/CustomRefactorProPluginConvertProperty.aspx
I’ve shared a couple of Visual Studio tips as well:
- Ctrl+J: invokes member list
- Ctrl+Shift+Space: show parameter info
- Ctrl+K+I: show quick info
- Cltrl+I: incremental search
- Ctrl+F3: search currently-selected word
- Select word and then Ctrl+F, Ctrl+Shift+F, Ctrl+H (brings up Find/Replace dialogs with the selected word as the search criteria)
- F3: repeat last search
- Tools-Options-Env-Find and Replace (to change dialog’s behavior so it goes away as soon as the search has been performed
There was mention of a cool post on StackOverflow on the “hidden features of C#”
Davig Morton’s shared his experiences playing with Visual Studio 2010, focusing on the new dynamic features introduced to C#, such as the “dynamic” class, the ExpandoObject (which allows both properties and methods to be added to an object dynamically during runtime), and also the DynamicObject. He also covered a little bit of “No PIA” deployment (great for people writing integration with MS Office). David has posts on this blog at blog.davemorton.net
I’ve mentioned about my experiences delivering WPF training at EPS, as well as we covered a little bit of WPF data binding.
I’ve also mentioned Pablo’s e-book on book the S.O.L.I.D. principles.
Meeting was totally dedicated to CodeRush and Resharper. We’ve gone through a lot of features in both tools, and we all agreed that both tools are awesome and every .NET developer should use a tool like that.
MSDN Magazine has a “Usability in Practice” column that’s interesting. The authors offer some good advice for anyone involved with UX (User Experience); for instance, what considerations should be taken into account when deciding on how to compose messages for the user (due to exceptions, failures, or anything else that has to be presented to the user): http://msdn.microsoft.com/en-us/magazine/2009.01.usabilityinpractice.aspx
I mentioned I’ve finished reading Kent Beck’s book, “Implementation Patterns” http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091/. I’ve enjoyed this book. Whereas most “design patterns” books focus on the high level concept of patterns, regardless of what the actual lines of code that implement the patterns look like, this book focuses at how code is written, what patterns to follow, how to write intention revealing code, etc.
I mentioned I’ve started (finally!!) reading Eric Evans’ book, “Domain-Driven Design: Tackling Complexity in Software”: Eric Evanshttp://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/. I’m really enjoying it so far.
Snoop is a great little free tool for anybody doing any WPF development. Check it out!
Here’s a link to the StructureMap extensions for Prism (for those who want to use StructureMap as the container in Prism applications).
I showed how easy it was to create a template in CodeRush that helps me writing tests that make use of stub/mocks created with Rhino Mocks.
The presentations from the Norway Developers Conference (NDC) are posted. There are some great presentations from people like Phil Haak, Hanselman, Ayende, Jeremy D. Miller, Uncle Bob. Videos from presentations are here: http://www.ndc2009.no/en/agenda.aspx?cat=1071&id=1813
Here’s a link to a Hanselminutes’ episode with Glenn Block where he explains what MEF is, and whether or not it is an IoC container.
There was some interest in Visual Studio Extensibility and MEF, and I’ve pointed out Pablo’s blog, which has great posts about it.
Balsamiq has been suggested as a great tool to create screen mockups.
You can find recordings of the meetings here (it’ll be the ones titled “Virtual BBM”).
We’ve been getting great feedback from people who have been attending to the meetings, like this one from Code Renaissance. It’s great to know that people have been finding the meetings to be valuable, and I can say they’ve been great for me too, since I’ve learned about several things I didn’t know before.
We’ll continue on having the Virtual Brown Bag Meetings every Thursday, from 12pm to 1pm (Central Time). All you have to do to attend and participate is go to this link. Make sure you have speakers or a headset. Having a microphone isn’t mandatory, but highly recommended so to facilitate your interaction with everybody else.
I just got back from my first real week of vacation in 5 years! I had almost forgotten how this vacation thing really felt like. Some may wonder about my trips to Brazil in the last couple of years: those aren’t real vacation, unfortunately.
This vacation involved a LOT of driving (almost 5000 miles total!). My wife, my daughter, and a couple of friends with their baby joined us for a drive to the West Coast. And we’ve had a blast! We’ve rented a car (a Saturn Outlook, slightly smaller than a Mini SUV), shared hotels, split gas and other expenses; I’m so glad we have friends who we can spend so much quality time together.
Long story short, we drove up to L.A., and then back to Houston, making stops on the way.
Now, to the long version of the story, just so I can document it for my own sake (and also for those who’d care to read about it):
Day 0 (Fri, July 10)
We pick up the rental car at 6pm. At 8pm we’re leaving my house…
Day 1 (Sat, July 11)
We drove all night and day, and 25 hours later we get to L.A. We took I-10 all the way, going through El Paso, New Mexico, Arizona, etc.
Day 2 (Sun, July 12)
We visit Santa Monica, Malibu, Yogananda, Hollywood, Walk of Fame. A note about the latter: I definitely enjoy seeing starts people such as Jack Nicholson, Tom Hanks, etc., but I just can’t stand seeing stars for Ricky Martin, Celine Dion, Destiny’s Child…
Day 3 (Mon, July 13)
We went for the “house of the stars” tour; it starts at the Walk of Fame, and then it takes us to Beverly Hills, points us out at the houses of some celebrities (we drove by the house where Michael Jackson passed away a couple of weeks ago, but I must say the one house I was dying to get into was the “Playboy Mansion”!). The also takes us to a spot where we can see the Hollywood sign, Rodeo Dr, Bel-Air etc.
Day 4 (Tue, July 14)
The family and I had a blast at the Universal Studios. The place wasn’t crowded at all, so the longest we’ve had to wait in line was 25 minutes; the average was 15 minutes. We were able to go see pretty much every attraction. We loved the Studio Tour, Waterworld, the “Special Effects studio”, and the Simpsons Ride. We all want to do that again when we have a chance. The “Return of the Mummy” ride wasn’t what I expected; it’s good, but too short.
Day 5 (Wed, July 15)
We leave L.A. and head up to San Francisco. We wanted to go through the coast, stopping by Carmel, but we wouldn’t have time, so we just take the ride through the desert. San Francisco is definitely a cool place to visit. I’m hoping to go back there with more time to spare.
Day 6 (Thu, July 16)
We go to the Yosemite park. That was awesome! We’ve hiked 0.8 miles up to the “Durval Fall”, and that was probably one of the most beautiful things I’ve ever seeing; it was breathtaking. We’ve only had time to see a small part of the park, but we’ve enjoyed every bit of it. I’m certainly going back there to spend more time exploring other areas.
Day 7 (Fri, July 17)
We go to the Sequoya park. Boy, those are some big-ass trees! We feel like tiny creatures around them.
Day 8 (Sat, July 18)
We visit the Grand Canyon. That thing is huge!! Astonishing view. This is another thing I want to visit again with more time to spare.
Day 9 (Sun, July 19)
We take the drive back to Houston (we left at 11pm the night before, and got back home 20 hours later).
The trip was awesome. I needed that really bad! As you may have noticed, we tried to squeeze in a LOT of places to go visit. The idea was to get a glimpse of what’s out there and then at some point plan on trips where we go spend more time at those places we enjoyed the most. For sure, the Yosemite/Sequoya/Canyon leg of the trip was the highlight. Universal Studios was also great. We wanted to squeeze in a few more things, but there wasn’t enough time (Las Vegas, Death Valley, Hoover Dam, trip from L.A. to San Francisco through the coast,…), but we’ll have to do that another time.
Now, back to work!
Thanks to all who came to my talk at the Houston D2SIG last night. It’s always great to deliver a talk where there’s a lot of interest and questions from the crowd. As promised, the material (slides and samples) can be downloaded here.
- Sept 9: SRP (Single Responsibility Principle)
- Sept 16: OCP (Open Closed Principle)
- Sept 23: LSP (Liskov Substitution Principle)
- Sept 30: ISP (Interface Segregation Principle)
- Oct 7: DIP (Dependency Inversion Principle)
I’d love for these meetings to be very interactive; the way I see it, I’d like to introduce each principle, run through a couple of samples, and then open up the discussion so that other people could share their own samples, thoughts, experiences, etc. Please, don’t hesitate in contacting me if you have any ideas, suggestions, or comments that could help us make these meetings as valuable as possible to everybody. I’ll post more details as they become available.