Yuriy Dybskiy

Curious JavaScript Engineer, @html5cat

Getting Started With Machine Learning

Updated January 17, 2016 (GitHub repo if you prefer)

There’s a been a lot of attention directed to AI and Machine learning lately so I’d like to collect great materials to get you up to speed.

Ping me if something is missing or shouldn’t be here.

Courses

Andrew Ng’s course — https://www.coursera.org/learn/machine-learning

Andrew Ng’s CS229 Stanford course — http://cs229.stanford.edu/materials.html

Practical Machine Learning (part of PML, from John Hopkins University) is a lighter version compared to Andrew Ng’s ML class, with a little overlap — https://www.coursera.org/learn/practical-machine-learning

AN’s ML class is a lot more advanced regarding algorithms, so requires more rigorous background knowledge and skills.

PML is Practical, uses the language R, which is widely used in Predictive Analytics field in the industry.

ML is for more CS focused folks, uses Octave (Matlab-like language).

You can use WEKA library if you use Java to develop. WEKA is wrapped also in R as well as in Python. But both R and Python has tons of ML libraries already.

NLP

Natural Language Processing by Dan Jurafsky & Christopher Manning – https://www.coursera.org/course/nlp

Two books seem to be fundamental in this field:

  • Speech and Language Processing, by Chris Manning & Hinrich Schütze
  • Foundations of Statistical Natural Language Processing, by Daniel Jurafsky & James H. Martin

Datasets

Neural networks

Fun projects

Jobs

Misc

Getting Started With Computer Security

I had a conversation with my uncle Michael recently about getting started with Computer Security. Here are some notes from that call. Input is very much appreciated as I’d like to make it a useful guide 🤓

There doesn’t seem to be a single place/course that is a good starting point. Field is pretty much defined by constant education, constant new attack vectors. Michael’s specialty — forensics and identity management, sometimes border line legal work. It’s a huge field: * Cryptography — why hash, why salted separately, basics (mathematical architecture) * Compression, entropy of information * Database security * Identity management

Steps to get started

Identity management, Cryptography 101

Some links

Latest hacks – https://h1.sintheticlabs.com/ NIST site — http://csrc.nist.gov/ http://sintheticlabs.com/tools.html https://h1.sintheticlabs.com/

//update via Steve Woodrow

Security courses at universities:

Driss Zouak on How to Write More

me: I keep running around instead of sitting down and writing code and posts. How do you get yourself to write so much? Is it something that needs to be forced in the beginning or once the proper project comes in, it will come naturally?

Driss: Would you like a real but very metaphysical answer?
It comes from realizing something, I believe.
I travel through time, and through places, by writing.
My body is limited in where I can go.
My finances are limited in where I can go.
But in the universe, you can fold every place unto itself, step from one end to the other, and then unfold it, and realize the distance you’ve traveled.
Now, practically speaking, what that means is that I have built up the skill in thinking, really thinking.
Stopping the world and thinking.
Disengaging.
And I get tremendous joy out of a well sculpted story.
Some people feel the same way about painting or photography.
My writing has now made me interested in seeing some places, so that I can imagine my characters there.
I don’t know if that helps, but it is probably the most true answer I can give.

Today We Mourn

Following Eric Meyer’s posts during the last couple of weeks was very hearbreaking. Brings a lot of perspective to day-to-day problems we have.

Today we mourn.

#663399Becca

Meteor Devshop Lightning Talk

Since August 2012 I’ve talked at and hosted Meteor events in Vancouver, Portland, Seattle and Buenos Aires. In this lightning talk I’m sharing my experiences and why you might want to host or attend a Meteor event too.

Laptop Sticker Standard

or: “How standards are made on small scale”

Yesterday Max Ogden stopped by EsriPDX offices and amongst other things showed his new laptop sticker collection. We quickly agreed that there should be a standard for them and that the most useful one seems to be 2”x1.75” hexagons. I tweeted it and the reaction was way more amazing than I expected.

According to Twitter Analytics this tweet had “160x normal reach” (Update 285x as of Apr. 14).

I think there are two forces at play here:

  1. Max is undeniably awesome.
  2. Laptop sticker sizes are indeed in need of some standards.

Terin Stock and Jason Denizac were fiddling with this idea as well and Terin created a GitHub repo with the possible spec: https://github.com/terinjokes/StickerConstructorSpec

I’m very curious to see how this experiment goes. This could be a nice playground to see how standards are made and adopted.

How to Get the Most Out of Your Next Google I/O

I just attended my first Google I/O and I want to take a moment, reflect on it and write down some things I’ve learned that might help you in the future at I/O or other conferences.

tl;dr

  1. Plan, Prepare, Execute
  2. Skip some Sessions
  3. Check out the Demo Stands
  4. Meet Google Engineers
  5. Take Breaks

Choosing a JS MVC Framework: Angular.js vs Ember.js

tl;dr

As of late March 2013, after spending a month with each project, digging into documentation and examples available, I can say with confidence: it’s not fair to compare them. But if you really don’t have time to learn both – use AngularJS. Ember is not ready for prime time, yet.

AngularJS is a dream if you’re accustomed to HTML data- style behavior like you find as part of Twitter Bootstrap’s javascript

Some context

Year 2013 started with a great R&D project for me. The problem: existing webapp codebase had too much technical debt and it was incredible hard to add new features without regression. Solution: re-write the app using MVC framework.

Problem #2: which MVC framework to use? Solution: build a prototype using two most promising ones and decide. The app is purely client-side single page JavaScript app, talking to a few server APIs. Think simplified version of Double-Click or Google Analytics.

You might have heard or seen the talk by Double-Click team about moving to AngularJS. So have I and my gut feeling was that Angular would be a perfect fit for this project. Glancing into the future, or actually present, that assumption was spot on and it is Angular’s sweet spot type of app.

MVC framework comparison algorithm:

  1. Check out available docs, blog posts and example apps
  2. Go through Tutorial
  3. Build app prototype
  4. Rinse and repeat

How AngularJS won me over

Apart from the data-bindings and MVC awesomeness that both frameworks bring to the table, here are three things that drew me to AngularJS:

Focus on testing

AngularJS team is using Karma (formerly Testacular) to test the framework itself and go extra mile writing end-to-end and unit tests for all the steps in the Tutorial. Having testable code is part of AngularJS philosophy. Making it easy to write tests is crucial. I don’t care how good your code is – if it’s not testable, it’s useless in the long run.

App structure

It might sound like a minor thing, but if you have a team of developers working on a project, having a scalable app structure right out of the box is very helpful. Key Angular concepts translate naturally into controllers, directives, filters and services files or directories. I also like the way the app is broken into such concepts – seems very natural to me, unlike the Ember approach.

Extending HTML

Angular’s main philosophy is extending HTML syntax instead of abstracting HTML away with another templating language – Angular is what HTML would have been had it been designed for applications (from Docs/Overview)

If you are using the classical code quality measurement metric of WTFs/minute, Angular will make you happy.

What about Ember?

March was pretty rough for Ember team with a lot of angry posts about how confusing and hard it is getting started with it. Significant changes to the router didn’t help that either and the amount of up to date examples and articles was approaching 0. That being said, best way to resolve Ember questions appeared to be just reading its source code and comments there.

Here is a list of interesting posts in chronological order:

  1. EmberJS Confuses Me – by Rob Conery from Tekpub

  2. Ember: Baby Steps – by Rob Conery

  3. “GETTING STARTED WITH EMBER.JS IS EASY.” – no it isn’t – discussion on Discourse which is built using Ember

  4. MAKING EMBER.JS EASIER – response from Ember team

  5. STABILIZING EMBER DATA – another response from Ember team

  6. Ember… What If (Part 1) – by Rob Conery

Ember team is hard at work in bridging the gap of everyone’s expectations and reality of getting up to speed with the framework.

Final thoughts

AngularJS is built by Google. Google has one of the strongest engineering cultures. Combine that with the resources that they have and with the power of open source and you get a really powerful mix.

The quality of documentation is really good and there are plenty of example code and apps out there which help tremendously in getting started.

During the recent Angular meetup in Mountain View I’ve chatted quickly with the creator of AngularJS, Miško Hevery. He confirmed my assumptions that AngularJS team is in sync with Chrome Dev team and it is a very strong strategic advantage, considering interesting advances in Web Components.

Meteor Aftermath (Meteor Meetup at Mozilla)

This week is definitely a week of Meteors!

While the world is amazed by this:

We know that it’s actually late for the party that looked more like this: and happened on Wednesday at 6:30pm PST at Mozilla’s Vancouver office.