The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
This is a guest post from Valeri Karpov, a MongoDB Hacker and co-founder of the Ascot Project.
A few weeks ago, a friend of mine asked me for help with PostgreSQL. As someone who’s been blissfully SQL-free for a year, I was quite curious to find out why he wasn’t just using MongoDB instead. It turns out that he thinks MongoDB is too difficult to use for a quick weekend hack, and this couldn’t be farther from the truth. I just finished my second 24 hour hackathon using Mongo and NodeJS (the FinTech Hackathon cosponsored by 10gen) and can confidently say that there is no reason to use anything else for your next hackathon or REST API hack.
Moving day (1)
Tumblr CEO (David Karp) talkin bout Yahoo acquisition. (at 30 Rockefeller Plaza)
Team Foundation Server doing a gated check-in.
Waited 20mins for TFS to finish gated check-in and 1 unit test fails for absolutely NO REASON!
Hello Brad, I was checking out the jquery plugin that you wrote, but the demo seems to be down, any chance you've got another copy of it lying around?
It has also become the swiss-army knife of programming languages. Mostly thanks to the amazingly successful projects like jQuery, Google’s V8, and Node.js. Not to mention the fast-growing community that has sprung up around Node’s Packaged Modules (NPM)
So to get started, check out:
I also suggest using these tools/libraries to get your hands dirty.
Here’s a great JS101 course (via blog posts):
When you’re ready to start building serious apps, checkout Ember.js
Hackathon tools for 2013
Here’s what I’m currently using for my hacks / prototypes. Keep in mind a lot of these tools are chosen because they get you up and running fast and\or have some widespread use. Team-friendly tools are key.
MacBook Pro - yep, finally ditching my PC, but still have a VM for asp.net projects.
IDE / Text Editor
Sublime Text - an amazing text editor for working with almost any type of open source project. Command palette makes it fun to learn and gets better the more I use it.
Trello - try it out. May still need Basecamp for some projects, but this is a great tool to try out.
Source Control & Issue Tracking
Git + GitHub - a no brainer at this point.
Open source Tools
Bootstrap - mainly because i know it so well and gets the job done.
Foundation3 - a pretty awesome responsive front-end lib. Nice to have a decent alternative to bootstrap.
Node.js - changing the way the web is built. NPM rocks.
Meteor - this is an amazing jumpstart to building awesome apps. Serves as full-stack.
MongoDb - a must have document db, try MongoHQ.
Hackpad - great for creating docs.
Cloudmine - back-end as a service
LaunchRock - creating a landing page in minutes
Keynotopia - great for a non-coder to build a usaable UI. I usually use HTML though.
Photoshop - duh.
AppGyver - build a mobile prototype from UI images in minutes.
If you think I’m missing anything, let me know. I suppose I could list some wireframing tools, but I rarely use them.
Comscore released unduplicated audience size across mobile and desktop (US only for now) for the top 30 web properties/services.
Using the Comscore data and the fact that more than half of US wireless subscribers are using a smartphone I color coded the data (link to Google Doc) so you can…
My choice of champagne for tonight.
Happy New Year!! #2013
Querying Abstract Multi-Map Indexes in RavenDB (C#)
So… let’s say you have 2 similar classes in your system, like User & Person.
Now lets say we’d like to return those documents into a single list. In order to do this you simply need to define the “AbstractMultiMapIndex”, like so:
I call it the People index, (because Users are people too!)
After we’ve done that we need to create that index, like so (on App_Start):
Now… all that’s left is creating an Action like so:
All this does, is execute the query on the index and return the results to the View (with a dynamic ViewBag)
See last post on Initializing RavenDB with StructureMap
Initializing RavenDB in MVC4 with StructureMap
I hear more and more .Net devs are starting to get into the world of NoSQL, partly in thanks to the insanely awesome product, RavenDb (from the builders of RhinoMocks and NHibernate Profiler). I feel pretty strongly this is one of the biggest contributions to .Net web developers since MVC.
So, I want to share a very simple/clean way to initialize the RavenDB DocumentStore (on app start) and ALSO the DocumentSession (on each Http Request) using a popular IoC (Inversion of Control) container called StructureMap.
Here’s how it works:
1. Create a new MVC4 project (I’m using the empty template) and use NuGet to install the RavenDB client and StructureMap from the package manager console.
PM> Install-Package RavenDB.Client -pre
PM> Install-Package StructureMap.MVC4
2. Even though RavenDb is very simple to install locally, try out RavenHQ and get yourself a free db. All you will need is the connection string (under ‘Manage’) after you create a db.
3. Add the RavenDb connection string to your web.config, like so:
<add name="Raven" connectionString="Url=https://2.ravenhq.com/databases/your-db; ApiKey=your-api-key" />
4. Find the IoC.cs file and add these 2 “Initialize expressions”.
5. Now, just add a Controller which accepts IDocumentSession in the constructor and you’re all set. Like so:
I personally don’t mind having the IDocumentSession in each of my controllers if the project isn’t too large. But there are some other ways to handle this, like a base controller or a ActionFilter, but I may have a forthcoming post on that as well.
If you have any feedback why you like\dislike this approach, I would love to hear your thoughts.
Remember, keep it simple…but not simpler.