Dataset list

I'd like to share my latest project: a list of the biggest datasets for machine learning: dataset list.

There's an increasing number of large, high quality datasets released each year and most of them are published on their own individual websites so it can be difficult to find them.

I've been making a list of these datasets and now I'm putting it out there with as much info as I could find. Hopefully, this makes it easier for others to find the right dataset for their project.

Mapillary browser extension

Mapillary is a street-level imagery platform powered by collaboration and computer vision. It's also the team I've been a part of for the past year.

One tiny project I made before joining Mapillary was a Chrome browser extension that showcases amazing images on Mapillary that were uploaded by users. You can find it at the Chrome web store. There's also a Firefox add-on now available.

It lets you see an awesome image every time you open a new tab and you can start exploring from there.

I've been updating it, adding fresh images and tweaking and simplifying it for a smoother experience. You can see the source code in the mapillary-chrome-extension repository and use it as a starting point for your new browser extension.

Updraft for Reddit

I'd like to introduce you to a project I've been working on for the past year: Updraft for Reddit

It started as an experiment to reimagine how Reddit would look if it used Tinder-like cards for posts and swiping for upvoting/downvoting. From there it grew while I constantly tinkered with it and added new features. I wanted every part of the experience to be different, completely simple and easy to use. The design reflects that, using just two colors and hiding all the complexity at first glance.

The feedback is overwhelmingly positive and, surprisingly, quite a few people have written to say that Updraft is their new main Reddit app. I'm listening to all constructive criticism and advice and I'm hard at work on new updates that will make Updraft even better than before.

It's available for download in the App Store: Updraft for Reddit

Floating labels with pure CSS

Floating labels in input fields are a design pattern that is here to stay. Google's Material design guidelines contain a section describing how they fit in the new design. While this example may be Android-centric, floating labels offer some great usability benefits for user interaction with forms, especially on smaller mobile screens where there is little room to show labels all the time.

If you want to try them in your next responsive or mobile project, here's a way to use them without any Javascript whatsoever:

See the Pen neyCp by Nikola (@nickplesha) on CodePen.

I've styled this example to look like Android to show how easy it is to make it look however you want.

To break it down how this works: using the required attribute on the input fields allows us to apply styling for the :validstate when the input fields has content. Using a CSS transition we achieve the behavior we need. We also add styling on :focus to communicate to the user that the field is selected.

There are some truly awesome examples of floating labels on the web that inspired me, with placeholders that move out of the way and feature nice animation, but I've opted for a much simpler approach mainly because of Chrome auto-fill. The problem is that when the browser fills the input field, the placeholder text doesn't move out of the way since the auto-fill doesn't behave the same way as manual input. This makes it hard to use for e.g. login forms.

Hopefully, this simple example helps you on your way to including floating labels in your project. To see many more examples, check out this blog post by Matt D. Smith that explains how he came up with the concept and has many links to great implementations: mattdsmith.com/float-label-pattern

Add 3D touch quick actions to your Ionic app

Since the release of iPhone 6s and 6s plus last year, more and more users expect your app to have at least some sort of 3D touch support. A lot of the most popular apps have implemented the barest minimum: quick actions menu that opens when the app icon is deep pressed. Since you want your hybrid Ionic app to be able to fit in with the rest of the crowd let's see how we can achieve this really quickly and easily.

I wrote a wrapper for the Cordova 3D touch plugin that will allow us to just that with a few lines of code: ng-cordova-3dtouch

To install the necessary plugins open up your console and use
bower install ng-cordova-3dtouch
We also need the Cordova plugin
cordova plugin add cordova-plugin-3dtouch

That's all we need. Now, include <script src="lib/ngCordova-3dtouch/dist/3dtouch.js"></script> into your index.html and add ngCordova.plugins.3dtouch as a module dependency in your app.

Let's add the first quick action to our app:

                
angular.module('example', ['ionic', 'ngCordova.plugins.3dtouch'])

.run(function($ionicPlatform, $cordova3DTouch, $state) {
    $ionicPlatform.ready(function() {

        //Add a dynamic quick action with title "Saved" and a built-in "Favorite" icon
        $cordova3DTouch.addQuickAction('saved', 'Saved', 'Favorite', null, null, function() {
            //Navigate to target state when the quick action was pressed on home screen
            $state.go('tab.saved');
        });
    }

    });
})
              
That's all there is to it. The quick action will be available in the menu that pops up when the user deep presses on the app icon and tapping it will open up the app and take the user to the screen at state "tab.saved".

Now, if the default available icons (full list) aren't to your liking or if you want to use your own then drag a single-color .png image (atleast 35x35 pixels) to your Resources folder in Xcode.

Then, we'll use it like this:

                
angular.module('example', ['ionic', 'ngCordova.plugins.3dtouch'])

.run(function($ionicPlatform, $cordova3DTouch, $state) {
  $ionicPlatform.ready(function() {

      //Add a dynamic quick action with title "Frontpage" and a custom 'customicon' icon
      $cordova3DTouch.addQuickAction('frontpage', 'Frontpage', null, 'customicon', 'Latest posts', 
        function() {
          //Navigate to target state when the quick action was pressed on home screen
          $state.go('tab.frontpage');
      });
  }

  });
})
              
And that's all you need to add quick actions to your Ionic app. Check ng-cordova-3dtouch for more detailed documentation,