Posts

Showing posts from June, 2011

Uber's Michelangelo vs. Netflix's Metaflow

  Uber's Michelangelo vs. Netflix's Metaflow Michelangelo Pain point Without michelangelo, each team at uber that uses ML (that’s all of them - every interaction with the ride or eats app involves ML) would need to build their own data pipelines, feature stores, training clusters, model storage, etc.  It would take each team copious amounts of time to maintain and improve their systems, and common patterns/best practices would be hard to learn.  In addition, the highest priority use cases (business critical, e.g. rider/driver matching) would themselves need to ensure they have enough compute/storage/engineering resources to operate (outages, scale peaks, etc.), which would results in organizational complexity and constant prioritization battles between managers/directors/etc. Solution Michelangelo provides a single platform that makes the most common and most business critical ML use cases simple and intuitive for builders to use, while still allowing self-serve extensibi...
Today I populated an html div element asynchronously using jQuery and JSON in my ASP.NET MVC2 project. Now, when you were 10 years old, did you think you'd one day find a sentence like that above interesting? I bet not. But here's why it is (lol) : In MVC you're allowed to mix javascript code (client side) with C# code (server side), but you have to understand where each part of it is being run. Here's the code (the important parts of it anyway): Client side (mostly): <script type="text/javascript"> $(document).ready(function() { $.getJSON(' ', function(jsonData) { for (i = 0; i ?serviceAddress=' + jsonData[i].serviceName, function(data) { $("#mainDiv").append(data); }); } }); }); </script> Server side : public class DiskSpaceController : Controller { public JsonResult ...

Mono for Android

Image
I'm excited. I've recently been looking for a way to motivate myself to learn better software development practices, and stumbled on something called mono. No, I didn't get it from kissing someone. Mono for Android is sort of a Visual Studio plug-in which allows one to develop Android applications in C# ! I'm SOOOO happy about this. Personally, I learned Java in school and tried out Android development for a couple weeks, and liked it. Unfortunately, Java is going the way of the dinosaur, and it seems that .NET is taking it's place. That's why I decided to pursue learning C# instead of Android. Now that mono has arrived and (hopefully - I'm updating the API's as I type) works, I can pursue BOTH Android development AND .NET ! Basically this means I can get good at working for the man, and developing for myself. I'm super excited. For a brief history of mono's inception, check out this blog: http://www.koushikdutta.com/search/la...

App.Config files

Dear all, when you use a config file for a Visual Studio application, make sure to do a few things: 1.) Make sure to create an identical app.config file for your test project. Otherwise, when running tests, the config file will not be found. 2.) If you're going to use ConfigurationManager, you have to add a reference to it under the references tab in Solution Explorer. Cheers!

NAnt for automating builds in C# works fine....

I've been learning NAnt the past few days, and it's really quite simple.  Unfortunately, using it with NUnit isn't.  I'm supposed to be able to use NAnt to build my projects automatically and test them too, all with one quick call to a batch file: ./build.bat test where build.bat just calls nant.exe and passes it a buildfile, which is an xml file that includes "targets" for nant to run.  NAnt compiles my project and my test project just fine, but then when NUnit runs, I get some messed up errors.  I can run my tests properly in Visual Studio using ReSharper, and they behave properly, but it doesnt work on the command line using NAnt...what the crap is up?! A couple notes for you: my folder structure is as follows : src : contains application projects in one folder (app) and test projects in another (test) build : should be deleted and rebuilt every time NAnt runs config : contains config files for the project tools : contains the NAnt folder and the...