May 22, 2007
@ 12:13 PM

One of the presentations I got to go to at Code Camp PDX was on Mocking, and to my excitement, Rhino Mocks was used for all the examples. The Presenter was John Hann, and I think he did a great job. There is also a lot of useful content on his weblog. If you are test-driven, or trying to get there, check it out!


 
Categories: CodeCamp | links | tdd

May 22, 2007
@ 05:33 AM

This last weekend, my friend Jason and I went to Portland for Code Camp PDX 3.0. It was a lot of fun. There were people all the way from Chico, CA and Bosie, ID. There was also a large Olympia/ssdotnet contingent. Our group rocks!

I did a presentation on using PowerShell to automate .NET applications. It was fun and there were a lot of really cool people in attendence.

Here are the slides and demo code from the talk. Let me know if you have any feedback/advice/etc. See the sidebar for contact info and don't hesitate.

Thanks to Stuart Celarier, Jason Mauer, WSU Vancouver, and the tons of other people involved for all their hard work!


 
Categories: CodeCamp | community

December 1, 2006
@ 06:17 AM

Long time since I last posted. Need less to say, I have been a little busy. I hope to resume most of my regular life soon, but here are a few highlights (to be followed with further posts later) of what I've been up to:

  • Julie and Allie came back from a month long trip to Taiwan, to visit Julie's mom. Allie got her second hair cut - the last was when she was 1. She went from waste length hair to just past the shoulders. She made amazing progress in Chinese. Before this trip, she had a bad accent and very limited vocabulary. Hanging around with two cousins she adores, as well as dozens of other extended family members willing to spend time doing things with and talking to her made a huge difference.
  • At the beginning of November, I was invited to participate in a week long training session my company puts on - not for developers, but for analysts. It was a really neat experience and I think it speaks highly of our management - that they get the need to keep developers as up to speed as anyone else on how the business works. I learned a ton of stuff, and go to spend time with top minds in the industry (and bug them with questions.) In addition, I met a bunch of cool people from our offices all over the world. We have a lot of work to do on the technology front to improve our organization, but I have now doubt that we're going to do it. This company will grow amazingly over the coming years, and I am glad to be here to take part in that.
  • We were going to go to our friends Monique and Dominique's house, in Portland, for Thanksgiving, but ended up inviting a few people over. More people got invited. Then a few more. In the end, I think 19 people showed up. We had a blast, but it was a lot of work to get ready and clean up.

Enough personal stuff...

  • I enjoyed the final day of the Seattle Code Camp. I got a chance to talk to two of my agile heroes, Brad Wilson, and Peter Provost. I also got to talk to Stuart Celarier, and was introduced to the Seattle XP Group. Too bad their meetings are the same day as South Sound .NET - which I haven't gone to either in several months. Argg...
  • Speaking of user groups: Some co-workers finally got me excited enough to form an in house Developers Group. I had the good fortune of getting to know someone in our company that is one of those "do-er" kinds of people - the kind that can organize a teleconference on 3 continents with 100 people, in under an hour, without batting an eye. I kind of bashfully asked if there was any way we could use one of our company's fancier meeting/conference rooms after hours for around 20 people. She basically said, "Go for it!" and I found that it was actually as easy as inviting the room to our conference. I could even invite coffee and his friends pizza and sandwiches from the cafeteria downstairs if my boss was willing to pay for them (hmm...haven't asked about that...) We got a sweet conference room on the twelfth floor, with an awesome view of the Puget sound, a massive projector and computer, fancy mood lighting, comfy chairs, a mezzanine level - the whole nine yards. I hope about 10 people will show up, which we will try to grow to 20 or 30 as time passes. Thanks Wei, Michael, and Ariel for finally pushing me over the edge on this!
  • I've been learning SSIS. It's been kind of frustrating, kind of fun. Mostly, it's only fun when it works. It was really painful to get to the "works" stage with my first couple of projects, but aside from a few gripes, I see how powerful and useful it could be going forward.
  • Our development team at work feels like it's getting tighter. Inspired by Brad and Peter, we spent more energy trying to do pair programming and share code better. I think we are good, but we could be a lot better. We only have one project we are doing right now that is truly owned by all developers on the team. The other 4 projects we actively work on all have code owners, and we are working to abolish that.
  • My boss said I was a "hippy coder" at a recent team meeting held down the street, in an...umm...off site meeting facility with fermented beverages. I was a little shocked. I try to be open minded, but compared to most of the other developers in our organization, I think I am _more_ disciplined - I use TDD, automated builds, normalized database schemas, consistent names, etc., in comparison with the local standard, which is to say "good enough" a lot. I guess I was just kind of shocked about this, but my boss has a history of making startling observations about me, which give me great cause for self reflection - which is a good thing.
  • I installed Vista...like it...not the stuff of dreams, but lots of little things I like (parental controls especially.)
  • I finally checked out the "Baroque Cycle" from the local library. What a read. Lots of history. Lots of math and science. Heavy. Sucked up a lot of time.
  • I have been working on something kind of neat, integrating SQL Server, our applications, and OLAP. For a taste, here's a paper a colleague wrote several years ago, about doing almost the same thing, just using SAS for the application part (where I would be using .NET.)

Anyway, I hope to blog more now. Later!


 
Categories: agile | career | CodeCamp | database | tdd | ug

October 29, 2006
@ 03:43 AM

The surprise theme for me was XNA. I was thinking pragmatic programmer - wanting to try something different. I attended a morning session "Making an XNA Game for the Xbox 360" and started getting crazy ideas. Being able to write C# code for the XBox just opens all kinds of doors. I started imaging a world where lots of rich-rich-client apps could be build for mega-markets of people that have consistent, stable, XBoxes in their homes.

As some friends know, I used to do graphics programming, from around 1996 to 1998, for a company in Taiwan that made educational and real games. I never worked on real games, but I learned a lot about graphics working there. It was fun to get a review - normals, phong shading (which you can implement in hardware now, using pixel shaders! Wow!), and all the geometry parts. Funny quote, "10,000 triangles was considered a lot back in DX5!" (everybody but me laughed - I remember at an Intel Programmer's Seminar in 1998 seeing them show a demo with 5,000 polygons, and getting lots of oohs and ahhs. I am old.)

I attended Jeffery Richter's presentation on scalable applications. One word: guilty. Yeah, I've built lots of applications that create a thread for an I/O operation. I don't see the problem as being as serious as Jeffery mentioned - if my application isn't doing lots of I/O operations, what's the big difference? The specter of 1MB of memory wasted? That's virtual memory, not physical! I understand it's not free, and _now_ there is a better way to do it (letting the thread pool manage threads), and in fact that's what I do now, but only since .NET came out. Even that has flaws - one thread per CPU? I'm never going to have the only active threads on the system.

Another problem I see is that with modern frameworks, it's all but impossible to take advantage of things like asynchronous SQL Client methods (BeginExecuteReader() and friends.) Getting something like NHibernate to use asynchronous SQL Client APIs would require a major shift in the way things work. 

If I was implementing a different kind of application (Outlook, SQL Server, IIS?), I would be a requirement that I closely follow this advice. For my work, it's well advised, but I am not going to lose sleep over creating an extra thread once a day to gather data without hanging a UI thread. It was a really cool talk and gave lots of information (from what Michael told me after attending the DevScovery version of this, this was just the tip of the iceberg.) I hope I get to go to devscovery or something next year to hear the rest of the story.

The afternoon was all XNA. I was disappointed to learn, before the start of the afternoon session, that XNA has no networking support. That crushed most of the cool ideas I had (the one I had fixated on: data visualization and equity trading on the xbox.) I can imagine that XNA enables lots of bundle-ware-ish scenarios for the xbox - how about a product brochure as an xbox DVD? It looks like it would be easy to throw this kind of stuff together with very little programming. Too bad they are so sensitive about security with the xbox. I think they are maybe missing the huge potential the XBox has with respect to things other than games, or for non-traditional games that need more than just a fixed dataset to run.

Looking forward to today. My plan: Dependency Injection, (Card Spaces | WoW - not a player, but sounds interesting ), (WPF | reporting servicesmore reporting services | or micro-pairing), then (calling reporting services | virtualization.)

I've already missed several presentations I wanted to see, and will miss more today!


 
Categories: CodeCamp

October 2, 2006
@ 09:47 AM

This sounds like a lot of fun. I wish I could go. It looks like there are a lot of really good sessions (Taking Mash-Ups beyond the Browser, Programming Windows Communications Foundation, The CAB Pragmatist, and Practical Domain Driven Design in .NET, all look really interesting, just to name a few.)

I would actually consider flying down there, but Julie and Allie are leaving for Taiwan Saturday. I checked and didn't see too many people from Sacramento (that I know anyway) attending. Code Camps rock.

If you are from Sacramento, go to Silicon Valley Code Camp! It's free and looks like it has all the makings of a really good code camp!

Link to SiliconValley CodeCamp 2006

Currently listening to Humming Chorus by William Orbit from the album Hello Waveforms


 
Categories: CodeCamp

July 25, 2006
@ 07:32 PM
In comment to my Portland Code Camp 2.0, Jason Mauer, _the_ father of Northwest Code Camps, said there will be a Seattle Code Camp October 28/29 at the same location as last year (DeVry in Federal Way). Needless to say, I'll be there. I can't wait.


 
Categories: CodeCamp | event

July 24, 2006
@ 01:01 PM

…was pretty good.

 Hi-lights:

  • Scott’s Power Shell presentation. Filled a lot of cracks in the pavement of my power shell knowledge. Maybe this will get me using power shell more and I can reach critical mass.
  • Wilco’s Iron Ruby presentation. I fealt dumb and lazy after this. How come I can’t build a compiler in a few months. I had the feeling, in this presentation, that I was in the presence of a future computer science super star.
  • Jeff Berkowitz’s Poker Bot presentation. I wish this had lasted about 3 hours longer. Too bad I don’t actually know how to play poker. I may have understood more. Never the less, I knew enough to recognize some common patterns with securities trading. At a high level, it’s all about information theory. Just when we were getting to the good part, though, we had to break. I caught a glimpse of what looked like a hard coded strategy – from poker book strategy to C#. My next step would be to take a bunch of those strategies and put them in a genetic program, or even more like what I do, break them down by information atom and put them in a neural net to get weighted, running against Poker Academy. Poker Academy can’t beat the best players. Maybe it would be better to train bots against real poker game data, or on real online poker networks. Awesome presentation.

Low-lights:

  • Too hot. Didn’t want to stay for outdoor BBQ. Bailed.
  • Too short. Day 2 would have been good.
  • The hotel I was looking forward to going to was full. We stayed in a really bad hotel and paid too much. Maybe planning ahead and making reservations is a good idea sometimes.

 

I sure hope we get to see another Seattle Code Camp, a *Con, or something along those lines before the year is over. If not, I might start driving to the Portland .NET users group meetings (in addition to ssdotnet.)


 
Categories: CodeCamp | event