RSSAmplifier

Blog

Life plus Linux

All about Machine Learning, Linux, Android, Web and of course Life

lifepluslinux.blogspot.comRSS feed ↗25 posts

Latest posts

Magic Cauldron: Harry Potter Themed Gender Reveal Party

Earlier this year, we had a very fun filled Harry Potter themed gender reveal party. For the reveal, I built a Magic Cauldron which would reveal the gender. Check it out for yourself! For this I needed: A Cauldron. WS2812B LED array. Aurdino UNO. Bread board and jumper wires. Dry ice. Kasa Smart bulbs I will go over in the following sections The Mist. Serial Bus. LED orchestration. Room effect.…

Kakashi: The Copycat Robot

In this post, I want to share about "Kakashi: The Copycat Robot" —a fun side project I built a few years ago. The name is inspired by the famous character from Naruto , Kakashi Hatake, also known as the Copycat Ninja. The goal of this robot was to mimic Kakashi's ability to copy movements—though, of course, in a more limited way. Check it out for yourself! Here are the things I used to build this:…

Neural network inference pipeline for videos in Tensorflow

Just as we saw a huge influx of images in the past decade or so, we are now seeing a lot of videos being produced on social media. The need to understand and moderate videos using machine learning has never been greater. In this post, I will show you how to build an efficient pipeline to processes videos in Tensorflow. For simplicity, let us consider a Resnet50 model pre-trained on Imagenet.…

Finding Where's Waldo using Mask R-CNN

When I was a kid, I really loved solving Where's Waldo. There were few books (it used to be called Where's Wally) in our school library on which I spent hours finding Waldo. For people who do not know what it is, basically Waldo - a unique character is hidden among hundreds of other characters and you have to find him in all the chaos in the image. Now that I am too old to be solving it and too…

Higher level ops for building neural network layers with deeplearn.js

I have been meddling with google's deeplearn.js lately for fun. It is surprisingly good given how new the project is and it seems to have a sold roadmap . However it still lacks something like tf.layers and tf.contrib.layers which have many higher level functions that has made using tensorflow so easy. It looks like they will be added to Graphlayers in future but their priorities as of now is to…

Hacking FaceNet using Adversarial examples

With the rise in popularity of face recognition systems with deep learning and it's application in security/ authentication, it is important to make sure that it is not that easy to fool them. I recently finished the 4th course on deeplearning.ai where there is an assignment which asks us to build a face recognition system - FaceNet . While I was working on the assignment, I couldn't stop thinking…

Tensorflow and AEM

It has been a while since google released Tensorflow support for java. Even though it is still in its infancy, I feel like it has everything we need. Build computation graphs - check, run session and compute stuff - check, GPU support - check. Now if you have all the time in the world to reinvent the wheel, you can pretty much build anything in java that we can build using python or c++. So, I…

Most original prize at The 2017 Deep Learning Hackathon

Although I have worked on several deep learning projects in the past, I still consider myself to be a newbie in deep learning because of all the new things that keep coming up and it is so hard to keep up with all that. So, I decided to take part in "The 2017 Deep Learning Hackathon" by Deepgram to work on something I have been wanting to do for a while now. I built something called Medivh -…

Introducing mailing in crontab-ui

Now crontab-ui has option to send mails after execution of jobs along with output and errors attached as text files . This internally uses nodemailer and all the options available through nodemailer are available here. Defaults To change the default transporter and mail config you can modify config/mailconfig.js . var transporterStr = ' smtps://user%40gmail.com:password@smtp.gmail.com ' ; var…

Setting up crontab-ui on raspberry pi

In this tutorial I will show you how to setup crontab-ui on raspberry pi. Step 1 Find your architecture uname -a Linux raspberrypi 4.4.50-v7+ #970 SMP Mon Feb 20 19:18:29 GMT 2017 armv7l GNU/Linux Note that it is ARMv7 . Download and extract latest node . wget https://nodejs.org/dist/v7.7.2/node-v7.7.2-linux-armv7l.tar.xz tar xz node-v7.7.2-linux-armv7l.tar.xz sudo mv node-v7.7.2-linux-armv7l…

My solutions to cmdchallenge

I recently stumbled upon https://cmdchallenge.com which sort of tests your command line knowledge and comfortability. You have to basically solve all the challenges in a single line of bash. It is pretty simple and fun. You should give it a try before checking the solutions. hello_world/ # Print "hello world". # Hint: There are many ways to print text on # the command line, one way is with the…

Look before you paste from a website to terminal

Most of the time when we see a code snippet online to do something, we often blindly copy paste it to the terminal. Even the tech savy ones just see it on the website before copy pasting. Here is why you shouldn't do this. Try pasting the following line to your terminal (SFW) ls ; clear; echo 'Haha! You gave me access to your computer with sudo!'; echo -ne 'h4cking ## (10%)\r'; sleep 0.3; echo -ne…

How to download large folders on dropbox

Recently, someone shared a large folder with me and when I tried to download it, I was getting an error; "There was an error downloading your file". This error seemed very vague and after a quick search online, I figured out that it is not possible to download folders which are bigger than 1 GB. And according to dropbox's help article, I will be able to download it only if I add it to my dropbox.…

Right way to set env variable while exec or execFile in nodejs

According to the official documentation , exec allows you to pass additional environment variables as part of options like this: This looks fine right? except that it totally isn't! By passing "env" as an option, you are not adding on to existing environment variables, but you are replacing it. This is not clear from the documentation and can leave you scratching your head for a while as it can…

Problem with clipboard on Ubuntu

Clipboard on Ubuntu is "broken". Well, maybe not. But copy-paste is broken in a lot of applications on Ubuntu. Let me give you an example, Open LibreOffice. Write something and copy it. Paste it somewhere else. It works as expected. Now close LibreOffice and try pasting. It won't work. This is a well known bug - Copy-Paste doesn't work if the source is closed before the paste ; affecting a lot of…

Ubuntu 16.04 won't wake up from suspend

I recently installed Ubuntu 16.04 LTS Xenial Xerus on my Thinkpad E550. I honestly regretted it not just because it doesn't support AMD proprietary fglrx driver aka AMD Catalyst or AMD Radeon Software but because the suspend feature stopped working. I initially thought that this had something to do with video drivers that I had installed on Ubuntu 15.10 which were now incompatible with 16.04. I…

Parsing wav file in node.js

I have worked with wav audio data in python before. Scipy provides a very nice way to do this using scipy.io.wavfile I wanted to do exactly the same in node.js. There is a module called wav which sort of does it. However I faced several problems. 1. The Reader() method reads the file stream and converts into chunks of Buffer . This is very good while building web apps as you can send chunks of…

Unfortunately the process com.android.phone has stopped in CM 13

I have a good old nexus 4 still trying to keep up with the big boys in the market. After google ditched the plans of releasing the latest android 6.0 - Marshmallow for nexus 4, things didn't look so great. But with the release of CM 13 (mako) , even nexus 4 has android 6.0! Previously, I was running CM 12.1 and I dirty flashed CM 13 on top of it. Although it doesn't have all the features that CM…

USB debugging toggle widget

Like I told you few days back in this post, I made a widget for android to toggle USB Debugging - ADB (Android Debug Bridge). Today, I will tell you more about it. There are many alternatives to this. However they either require you to make the app a system app or they simply open the settings page. As this was not exactly what I wanted, I made one myself that allows me to enable/ disable USB…

Using WRITE_SECURE_SETTINGS permission on non system apps

I happen to frequently use an app that doesn't work if USB Debugging - ADB (Android Debug Bridge) is enabled. It is very cumbersome to go to settings and enable or disable the setting every time I need to use the app. I checked if there are any widgets that could do this in a click and returned empty handed. So, I did what every developer would do - build it myself ! In order to change the adb…

The Infamous battery re-calibration bug in Lenovo Thinkpad

My brand new Lenovo Thinkpad is a beast and is supposed to give up to 8hrs of battery backup. But there was a weird problem. As soon as the battery remaining reached 30%, it used to drop to 6% in a second. When I looked up on google, I found out that I was not the only one facing this problem. Most of them suggested that my battery was shot and that I had to buy a new one. This is highly…

Download only part of a repository in github

Sometimes you would want to download only a part of a repository in Github but you don't want to download / clone the entire repository, specially when the repo is huge or has too many other things that you are not interested in. There are many ways to do this. For example you can do a shallow clone, or you can use Github API (there is a limit on number of requests per hour)..etc. However, none of…

Material Theme for Google Blogger

Inspired by Google's Material Design principles, this generates Material themes for Google Blogger using sass preprocessor. Fork me on Github Here are some of the themes generated with material-blogger Get themes Honor Theme Aqua Theme Pink Ribbon Theme Sample Widgets Button Search Results Popular Widget Widget (Aqua Theme) Archive To see how to use it, see this

Error 500: The template is updated in other place. Please reload the original page and retry it again

When I edited my layout in Blogger and tried to preview it, I used to get the following error: The template is updated in other place. Please reload the original page and retry it again Then when i tried to save the layout, I used to get this error The server was unable to save the form at this time. Please try again After searching a lot on google, I found out that adding mobile only widgets…

ERR_TUNNEL_CONNECTION_FAILED on mobile network on android

For the past few days, whenever I tried to access any site with HTTPS, I used to get this error. "This webpage is not available ERR_TUNNEL_CONNECTION_FAILED" This used to occur only on mobile network (airtel) and not on WiFi . At first it seemed to be a problem with chrome. But the same problem was there in other browsers. After breaking my head for a while I read somewhere that android doesn't…