Monday, April 19, 2010

Party with a Purpose - MongoDB WAN Party

 Tonight we had a very different WAN Party. I have been wanting to learn about document databases for a long time. I tweeted about it the other day and someone mentioned that we should do it together on the WAN party. I thought that was a great idea, so tonight we went about implementing it. I used some screensharing software to show everyone my desktop, then all together we went about removing Linq-to-SQL and adding MongoDB to http://bundl.it. It didn’t take us too long, and we all got to learn together. It was really great, and I hope we can do this more often.



 


Anyway, I thought it would be a good idea to share what we learned here. MongoDB seems pretty awesome from the little I’ve used it (basically just tonight). You are able to map your objects and store them in really simple ways.  


We used these blog posts as references for our education session: Jason Alexander'sFredrik Kalseth's



So, the first thing you do is download the executable for Mongo here.


I then opened Mongod.exe to get the server running on my machine, and then mongo.exe to look at and play with our data. What I did next was find a driver so I could access my data from my application (http://bundl.it is written in ASP.NET and C# MVC 3.5 Framework). Someone suggested Norm, it’s a project by Rob Conery and it seemed like it would be up for the task. We downloaded the repo, opened the project, and built it in Release mode. We then went over to the bundl.it solution and included the Norm.dll.


Ok, so, next step was replacing Linq-to-SQL in the bundl.it solution. I gutted all my data access methods, the idea was to get the application back up and working again using MongoDB. The next step was mapping out some classes. There was much dismay at my “BundleManager” class, also my throwing two objects in one class file, however this was for the sake of time and will be fixed before I deploy.


The ease of setting up my objects to Save and Request from MongoDB was suprising. Norm provides a connector class “MongoQueryProvider” within which you pass the name of your datastore as a string. The cool thing is if you haven’t created that particular store yet it will create it for you.


Step next was making sure my objects saved. The syntax on that was “mongoQueryProvider.DB.GetCollection<T>().Insert(object)” or “mongoQueryProvider.DB.GetCollection<T>().Save(object)” (this also does an Update).  Retrieving them was just as easy: “mongoQueryProvider.DB.GetCollection<T>().FindOne(new Object {Property = property})”


 


One thing I loved was the ability to find a list of child objects by passing in the parent using “mongoQueryProvider.DB.GetCollection<Child>().Find(new Child() {Parent = new Parent() {ParentProperty = parentProperty}})” I didn’t have to map out these relationships in a painful ORM manner.


 


I don’t have enough experience with MongoDB to accurately cover the bonuses and pitfalls. However, the little I have worked with so far I really have enjoyed.


 


I’m going to make a “tldr;” how-to below to make life easy:


 


Step 1: Download the mongo executables and unzip.


 


Step 2: Run the mongod.exe from your command line


 


Step 3: Run the mongo.exe from your command line


 


Step 4: Download NoRm 


 


Step 5: Build the NoRm project and Release


 


Step 6: Include the NoRm dll in your project


 


Step 7: Create a MongoQueryProvider


 MongoQueryProvider


Step 8: Add new object


 Add New


Step 9: Update existing object


 Update existing


Step 10: Retrieve object



Retrieve object 


Bonus step: Retrieve children via parent.


 Load child


 


I plan to do the same “learn together” format for the next WAN. I have an idea of what we will learn, but if you have any desire one way or another let me know.


 


 


 


 


 


 


 


 


 



Sunday, April 11, 2010

What the Frig is up with the WAN party?




So, lately the WAN parties have been few and far between. Originally we were going every Wednesday and then we were at once a week, but random days, however the past two months have been spotty and non-existent. Frankly, I've been pretty busy, and I've found it hard to dedicate one night every week for the WAN Parties. I've been looking for someone who could host them when I'm not around (I still am if your interested), however, none have come forward. 


I'm a little torn, because I enjoy them so much, however my responsibilities are many. I'm involved in some pretty cool stuff right now that I will be sharing soon (Some folks already know about, such as theMVC Melee). I'm going to try to have them as often as possible, and you can find out when via twitter. If you do not follow me, shoot me a line and I will make sure to let you know when one is scheduled. 



Thanks to everyone who has been frequenting them. I really enjoy the opinions I hear and the things I have been learning from the group. I look forward to many WAN parties to come.  



Sunday, March 21, 2010

Mix 2010


So, I was lucky enough to go to Mix this week and it was awesome. Vegas was beautiful, the casinos were great, and I got to hear some really cool talks. I was surprised, I expected things to be very designer focused but it wasn't. You have to think, though, how many Windows designers do you know? I don't know any. I think design degrees come with a Mac Book and some granola.  



Douglas Crawford of JSON fame made a special appearance. It was cool to see him speak and even cooler to be sitting in on the same sessions as he was. He had some interesting stuff to say about aging out browsers and Java Script the good/bad. 


There were some cool dynamic language talks, a great "ask the experts" dinner, and many other Java Script sessions I really enjoyed. They have all the videos online and I recommend the following:



Six Things Every JQuery Developer Should Know - Elijah Manor\


How JQuery Makes Hard Things Simple - John Resig



The Tale of Java Script, I mean ECMAScript - Douglas Crawford


The Mono Project - Miguel DeIcaza


Reactive Extentions for Java Script - Eric Meijer


ASP.NET Security - Hanselman and Haack



Check those out and there are dozens more I didn't see that I hope to check out. I leave you with this picture of me and some Microsoft/Mono folk at the awesome attendee party at LAX in the Luxor. 


Happy Developing!





Sunday, March 7, 2010

Introducing the MVC Melee!!!



Hi, how are you? Been well? Awesome. I wanted to tell you about something I think is pretty cool, and that's the MVC Melee. The ever so clever/kick ass JP Toto and I thought it would be cool to put together a competition for y'all to do neat stuff with ASP.NET MVC. 


The basics are that contestants get together in teams of 1-4 folk (I suppose one person isn't really a team, is it?) and get 48 hours to build the coolest web app they can think of in ASP.NET MVC. The applications submitted are then voted on by the community and then winners are crowned in a few different categories. 


I'm hella excited about this and a bit jealous I can't participate. JP and I will be starting soon with building the supporting framework that will make the contest possible. 


Check out the site, tell your friends, and be excited. We will be hosting teams at New Work City and other co-working spaces around the country are welcome to join in. We plan on plowing through the weekend, so bring a sleeping back (if you plan on sleeping). 


Review of my MVP trip coming soon. See you at Mix! 



Tuesday, February 16, 2010

BLOGGING LIVE


That sounds so cool, doesn't it? This week I will be blogging daily from the MVP Summit in Redmond starting tomorrow. Hear it here first as I DONT tell you what I learn (as per NDA) but I DO tell you who I meet. 


I will also be taking lots of pictures, and trying not to feel like a weirdo about it. 


Stay tuned!!



Sunday, January 31, 2010

Blogging is hard, let's go shopping!



I have been extremely negligent with blogging lately. Partially because I am learning to manage a very full plate, and also because  I haven't really been inspired by anything. I'm working on a technical post, but until then I figured I'd throw a quick "What UP?" out here. 


So, come things. Well, NY Code Camp call for speakers is out,  you can send in your abstract here. This is something I'm looking forward to. One addition it appears we are making is hands on Labs for sessions. 


Vote for Barbie to be a Computer Engineer!



I am working with the Girl in Tech NY on some development classes geared towards women. I will put more information here when I have it. 


So, the WAN Party, instead of being every Weds at 7:30 has been taking place usually either Wednesdays or Thursdays, I always announce it on Twitter so tune in to get the scheduled or just email me and I will let you know. 



Cheers! 



Monday, January 11, 2010

Thank You, Yahoo


 In October of this year Yahoo host Open Hack Day in NYC. It was a cool event, they had great speakers (including a keynote from Clay Shirky); they also provided space, resources, and food to those who wanted to compete in an overnight coding competition. They had workshops, and cool exhibits (like the Makerbot 3d printer using icing). They had amazing food that included a  hot dog stand and Stella (my favorite beer). It was a great experience, I didn't get to catch many of the talks, but I did get to speak to other developers, meet some fine folks, and learn much about Yahoo's dev tools. 


In our welcome pack we got a bag, which included our schedule, a toolkit for "hacking," and a bag of toiletries for those of us that decided to stay the night.  The bag included things like soap, toothbrush, toothpaste, deodorant...etc. It was a great idea, and nice of Yahoo to consider the developer's personal hygiene. 


Thinking I could use the soap or the lotion included I threw my kit in my gym bag. I've taken to working out before heading into the coworking space I work out of some days recently. The week before last I was at my gym, freshly showered and about to put work clothes on when I realized I had forgotten to grab deodorant. I remembered I had that little Hack Day toiletry kit and I remembered the deodorant inside. I have used men's deodorant in a tight spot before, I figured I would just make due. I automatically assumed it would be men's deodorant, I mean, this was a coding competition? 


It wasn't! It was scentless gender neutral deodorant. I know it's dumb, but this surprised me greatly and made me feel included. I know there was some scandal involving the Hack Day in Taiwan and female dancers, however, the Hack Day in New York was a smashing success and whomever planned the goodie bag is awesome. 



So, thanks, Yahoo, for thinking of the ladies as few as we may be.