The Open Source A.I. Boom — Standing on the Shoulders of Giants

One of the things that excites me about artificial intelligence is how open it is. All of the brilliant minds that are working on it aren’t hoarding their ideas and keeping them close to their chest, hoping to make billions off of them. The amount of free and open source technology that is available to build your own artificial intelligence is mind blowing, to the point where you can use the same underlying tech that Google or Microsoft uses, without paying a dime. Ever. No strings attached.

A lot of what has been developed in AI started with research, typically academic research. Most academic researchers publish their findings in journals, or academic texts. If you’re a nerd like me, you probably realized after leaving university that there’s no chance in hell you can afford all of those amazing journals you had access to as a student. Journals charge hundreds of dollars for access to single articles, let alone open access to their entire databases. Furthermore, academic texts usually costs hundreds of dollars each, again, no surprise to students or recent grads (or parents of students) out there.

Open Source

With technology, we’ve always had a quiet ruckus movement of those supporting free and open source software (FOSS). It’s the idea that the best way to make amazing software is by making the source code available to everybody, so that they can find bugs, fix bugs, add functionality, or build off someone else’s idea. This leads to innovation, and is the reason why more than 70% of the internet is powered by Linux, an operating system that is open source, unlike Windows or Apple Mac OS.

The research behind artificial intelligence is done by those who grew up in a world where open source software made sense. We have websites like GitHub that have over 1.1 billion contributions of open source software stretching from kids creating games, college students doing their homework, all the way to multinational billion dollar companies hosting their source code. Many AI researchers have even come out against traditional academic journals, stating that they won’t publish to their journals if they are closed access.

A good way to look at it is that source code = time. It takes time to write code, but it also takes time to collect and curate the information necessary to build and train an AI model. So the impact of working off of someone else’s code is that it let’s you start with a head start. Like a 10 year head start.

Labeling 14 Million Pictures

ImageNet is a image database that is organized in a structured format, and contains 14 million images that have been labelled and categorized by humans. You need something like ImageNet if you want to train an AI to detect objects in pictures. It is run by professors from Stanford and Princeton, and has been in development since 2009.

How we teach computers to understand pictures | Fei Fei Li

You Only Look Once

If you think ImageNet is cool (nerd), then you might find the project Darknet Yolo interesting. This tool allows you to download some software, hook it up to a camera, and you have instant object recognition capabilities. It can highlight the objects it sees and label them. If there are 3 dogs, 2 people and a frying pan in the picture, it will find them, put a big rectangle around each, with a label indicating what it’s found. Just. Like. That. It was developed by a student at University of Washington, and it’s free and open source. The best part, it was trained using ImageNet data. One amazing project that ties into another. If you want to create a smart camera to classify the objects it records, all of the hard work is done for you. For free.


Google — Solving the World’s Problems

Image result for tensorflow

Lastly I want to talk about Google. Google is using machine learning to solve some pretty huge problems in health care. In developing countries, there are too many people that require medical attention that simply do not have access to a doctor. There aren’t enough doctors being trained to treat all of the patients. An example of this is the rise of diabetes in India. If you have diabetes, you need to be in and out of doctor’s offices to check not only you blood sugar, but diabetes can lead to high blood pressure, increased risk of heart attack and stroke, kidney disease, nerve damage, you can even go blind if you don’t regularly see the eye doctor. In India, there aren’t enough eye doctors for people to see. That means that people with diabetes are going blind, which is completely preventable, if you have access to an eye doctor. Google has built an AI that can help with this, and can perform a quick scan using just a camera and it’s software to determine if the patient is a high risk of going blind. The best part? The software Google used to create this tool is absolutely free. Even better, the software was created by Google. TensorFlow is a free and open source tool that Google has developed and made available to everybody to use, for free. And if it’s good enough for Google, I think it’s good enough for me.

So I’m off to go program some AI. I hope you enjoyed this post. If you found it interesting or useful, feel free to comment below.

Tech Skills You Need to Nail That Presentation

We’ve all been there.  Standing in front of some really important people, trying to make a great first impression when:

  1. You can’t get the projector working
  2. The people in the back can’t read your PDF and they ask if you can zoom in
  3. You accidentally move forward too many slides and don’t know how to go back

Any presentation that includes a projector can be riddled with technical challenges.  You may not be in IT but that’s no excuse for not having a basic knowledge of computer presentation skills.  It doesn’t matter how prepared you are, and it doesn’t matter how comfortable you are speaking in front of a crowd.  Stopping the presentation to wait for the tech guy to come to show you how easy it is to fix your problem will derail even the best presentation.  Don’t get stuck in this rut – learn the basic technical skills you need to nail that presentation.



If you’re bringing your laptop with the expectation of presenting from it, it’s important to know what video ports you have and make sure you’re equipped for maximum compatibility.  There used to be a time where 1 display port ruled them all, and asking “can I hook up my laptop” was the only question to ask.  Now, it’s important to know what ports you can use – “does your projector have an HDMI hookup?”.  Different laptops have different ports, regardless of age or make.  Refer to the chart below to determine what port(s) you have.  Also, if you plan to present often from this laptop, it might be worth investing in an adapter to ensure you never end up having to project from someone else’s computer.


There are two types of adapters I want to talk about.  One will convert from one port to another, and the second will give you multiple ports via USB.

For the first adapter, let’s day you have a super thin ultra book, so the manufacturer used a mini display port.  Nobody has a mini display port cable and projector just hanging around, so you’re going to want to get a mini display port to HDMI or VGA adapter.

The second type of adapter doesn’t use your current display port, but instead it creates a new one through USB.  I don’t recall seeing a laptop made since the year 2000 that didn’t have a usb port.  You can buy adapters that will turn USB ports into VGA or HDMI, which should pretty much ensure your compatibility and only required carrying around 1 adapter instead of multiple.


Most laptops will automatically mirror your display when you plug a projector in.  If it doesn’t you’re going to want to press and hold the Windows Key on your keyboard and use the “P” key to set the display type.

Changing inputs

Some projectors are set to auto input, most are not.  This means that once you have your computer sending a signal to the projector, you still need to set the projector to show your computer.  Grab the controller for the projector and look for a source or input button.  Often times you will have to click this repeatedly until you find the right input.  Inputs are often labelled by the port type you are using, so being familiar with your ports (see above) will help you find your input source on the projector.

Controlling Content

Navigating slides

Most people simply use a left mouse click to progress their PowerPoint slides forward.  This is fine until they advance too far and need to go back.  Then you get into a fiasco of right clicking and selecting “Previous Slide”.  If you’re this person, there’s an easier way.  The two preferred ways of navigating slides is by using the arrows keys on the keyboard or the scroll wheel on the mouse.  Using these methods (or at least knowing about them), makes moving back and forth a breeze.

Creating awesome slides

Think less is more.  Take the content of what you’re saying into consideration.  People don’t want to read what they are hearing.  Your slideshow should highlight key points in what you are saying, or provide illustration and visuals to help visual learners better understand.  Slides full of text – so small that nobody in the back can read – will put an audience to sleep because their brains won’t know what to focus on, your voice or their inner voice reading your slides.

Stick to a theme.  You don’t need fancy backgrounds with flashy fonts, but once you chose some basic colors and fonts – stick with them.  There should be some consistency to your presentation.

Visuals are key.  The reason you have a slideshow is to cater to visual learners.  Remember that people won’t be able to read small numbers or text, and that high contrast is important.  Grey font on a white background will wash out once you are a few feet away from the screen.

Animations are a nightmare.  You should only use animations under very specific circumstances (ie on one slide you ask a question and then want to advance to show the answer).  Timed drop-ins, fly-ins and rotating images will seriously mess up the flow of your presentation and are never well received by an audience.

Zoom at will

Remember what I said about the people in the back?  If you find yourself showing websites, PDFs or any other content and you get complaints that it’s too small, the solution is simple.  For almost any program (the only exception I can think of is Excel), zooming in and out is as simple as holding the Ctrl button on your keyboard and either using the scroll wheel on your mouse or the + and – buttons on your keyboard.  No longer will you have to look for the tiny magnifying glass that zooms in at glacial speeds.  People at the back can’t read the table? Ctrl and +.  Now the picture is too big to fit on the screen?  Ctrl and scroll down.


Stop projecting when not in use – people will automatically watch the screen if it’s there.  Turn it off (most projectors have a Blank button as well to blank out the screen) so that the focus shifts to you, and so that people aren’t reading your email notifications coming in.  This is important while looking for things on your PC or just setting up.  If you aren’t showing the audience anything, stop projecting.

Turn off applications with notifications – Outlook, Gmail, Skype…all of these applications have popups that will present themselves at inopportune times.  Your best bet is to close down any unused apps before the big presentation so that you don’t get an email notification that lets the audience know you’ve been shopping for underwear.

Don’t count on audio – Some people like to jazz up presentations with sound effects or video.  Not all meeting rooms are equipped with speakers, and your little laptop speakers are nowhere loud enough to fill a meeting room.  If you need audio, bring your own speakers – mini Bluetooth speakers are cheap and usually have a headphone jack so you can easily connect it to your laptop

Don’t count on screen size – More and more meeting rooms are going for 50 inch TVs rather than huge projectors.  This means that you’re going to want to stick with large fonts and big pictures.

Don’t count on internet – Again I’m going to put a damper on your fancy embedded YouTube video by saying that internet connections in meeting rooms are spotty.  Most of the time you’ll be projecting over WiFi and if you’re in a large meeting, there’s a good chance that an extra 50 people just hopped on the company’s already strapped WiFi with their phones, tablets and laptops.  You don’t want to end up waiting 8 minutes for your video to buffer, or have key information that you can’t show because the web page simply won’t load.

Have a backup plan – Always bring a thumb drive.  Easy peasy.  I’ll also usually email a copy of the presentation to myself as well.  Can never have too many backups

Show up early and setup the tech – Nothing is more frustrating for the local IT guy or gal than being called into a full meeting room, 5 minutes after you were supposed to start, to troubleshoot the projector.  Do everyone a favor and as soon as you arrive at your meeting, get your tech setup

Proper computer maintenance prevents problems – Windows updates force restarts, Java asks every 3 minutes if it can update.  Do yourself a huge favor by keeping your machine up to date and run anti-virus scans regularly.  Stop ignoring that flashing window on the bottom right hand side of your screen, because it’ll be when 50 people are staring at your screen that your machine will magically decide to reboot, and to install Windows updates while doing so.  20 minutes later and you’ll be right back where you were, except now you’ll be terribly embarrassed and only have 5 minutes left to present.