Some Windows tools

I’ve been using Windows as my choice of office OS for a long time. I have a Mac at home, but for office work, Windows seems like the best choice. But not Windows itself. It is the apps that make it my go-to OS and often I find myself looking at OS X and thinking, “well I’m glad I have Windows too!”

Here’s a small list of Windows apps which I use on a daily basis –

  1. Sublime Text 2 – the less said about this, the better. This is the King of code.
  2. WinSCP – you know how you want to find a simple tool to send files to your servers and just can never get the workflow right? Or you want to quickly edit your linux VPS’ .bashrc and hate ssh-ing, then opening the file in vim/nano/emacs/pico/whatevs? This is it. Easy to use and manage. Right-click-Edit to open any editable file in the right editor (mostly Sublime Text for me). Or move files in and out of servers with ease. When I want to look at large log files and can’t be bothered with the CLI, I open them in Sublime Text through WinSCP.
  3. mRemoteNG – I have yet to discover all the awesome features this tool has. Manage your SSH/Telnet/RDP/VNC connections in the same app, organize everything into folders and export the connections as a file in Dropbox for ultimate portability. I recently discovered that if you punch in google.com and connect using HTTP/HTTPS, mRemoteNG fires off its in-built browser for your convenience. Woah!
  4. Rebex Tiny SFTP Server – recently, I got a Windows VM that I needed to send some files to. It was hooked up to the network, but not really setup. I looked for a solution and found rebex through this site. This thing works like a charm! I fired it off and started the default session (username: tester, password: password). The next moment, I had connected to it using WinSCP and was throwing files at it like a pro.
  5. CLink – I’ve only recently added this to my workflow. It makes the Windows command line so much better. The most important thing I needed in there is a persistent history, which Microsoft has till now ignored. CLink does the job and then some!

Notice that I’m talking about a very specific environment here. I’m in the networking-software testing world. But if you’re ever in a fix about what tool to use to edit code on Windows, or fling files between two networked but not truly connected machines, or are looking for a way to SSH into your servers across the world, these are the best tools out there.

I may add tools to this list as I go about discovering what else is out there. But that’s all for now.

This book by @grantdraws is one of the most beautiful, meaningful, and inspiring art I’ve seen. Saw this book recently and I had to have it! Some of my favorite comics ever are in it… #webcomic #inspiring #ideas #shapeofideasbook #incidentalcomics

Come back from a painful #firsthikeofthesummer and this awesome book by @phd_comics is waiting for you. Perfect way to close out an amazing weekend!

Random clicks sometimes have so much beauty!
.
.
#sunnydays #random #eyeinthesky #nofilter

Facebook’s biggest mistake with Snapchat

Facebook has a problem. No, not Snapchat. Snapchat is competition.

Facebook’s problem is SnapCreep. After failing to buy out their competition, Facebook has steadily been trying to steal the best (or worst, depending on who you ask) parts of Snapchat and integrate them into their own apps.

This invasion has been reflected on Instagram, WhatsApp, Facebook Messenger, and now the main Facebook app as well. But for all that work they’re putting into copying for their competitor, they’re rather unsuccessful in making it obsolete.

This is because Facebook doesn’t seem to understand that the markets they’re looking at are different. People who want the notorious features of Snapchat doesn’t want it in the same apps as they use to keep in touch with their high school frenemies. They want to keep those worlds separate. Similarly, people who want to use WhatsApp to communicate with family and close friends don’t want to post silly photo updates. They already use the camera functions rather well.

Facebook seems to think that it can meld certain features into existing apps and wish away Snapchat. But that’ll not happen because of the way these apps are setup and used. That’s Facebook making a big bet and trying to change the rules on the racetrack after the race has begun. WhatsApp is a cure for traditional SMS. Facebook is the social network of default. Instagram is photo-sharing on drugs (which is why people certainly seem to be taken by the daily stories features, but they’re loathe to use things like disappearing pics or face filters). All of these have set functions, set features and that’s why they sort-of go together. That’s also why Facebook has been able to integrate the users in all these apps together, though I do have a complaint about pushing the same users over to WhatsApp and Instagram as I already have in my Facebook lists.

Snapchat is a slightly different beast. It has a precedence, no doubt. Yahoo Chat, melded with Omegle. But neither the use case, nor the customer base lends itself to a traditional keep-up-with-your-friends social network. Which is why Facebook will not beat Snapchat by pushing similar changes to their current customers through these apps. They’ll only end up alienating smart users who have looked at Snapchat and notice the pattern.

Instead, Facebook needs to do something they’ve not done in a long time – start from scratch. Take a page out of Meerkat’s book (no Facebook, this does not mean go and buy that company) and build something from the ground up, the app and it’s user base. Let your experiments go under the radar, and fail often. But please, keep these out of the glaring view of the media and your own idiosyncrasies until it’s actually a product and not just patchwork.

Your problem with Snapchat isn’t that Snapchat exists, it’s that you’re trying to replicate it, without actually making the effort of building something new. The solution is clear to your users – go and build it. They might come.

How to make GIFs of sites using WayBackMachine

So… I like following fivethirtyeight’s interesting 2016 Election Prediction page. It shows the ups and downs and the general mood of the election. I’ve been staring at it for so long that I wanted to collect the daily changes and make a nice GIF. I know the Internet Archive’s WayBack Machine collects archives of popular websites, so I went there and found that the Election Prediction page is on there too.

So, I started looking for ways to make a GIF from the WayBack machine. There were some node and ruby scripts and applications which didn’t really work. But then I landed on waybacklapse. Its developer – Kyle Purdon – works for bitly and has built two versions of waybacklapse. The older one is python, node, imagemagick and then some. The newer one is python3 and docker. Eww. I followed the steps of the tutorial for the older version, with a few notable exceptions –

  1. The tutorial is for OS X and is a little dated. What I have on hand is an Ubuntu 15.04 VM, so I went ahead and used apt-get install instead of brew
  2. The tut tells you to use the command “git checkout -t v1.1.0”, but it should be “git checkout -b v1.1.0”. Technically v1.1.0 is a tag, not a branch, but I didn’t know that and just used -b, which worked, so why mess with a good thing, amiright?
  3. You need to have node installed, but not the new node. Install old node with “apt-get install nodejs-legacy” and use the command “nodejs app.js” when you’re running screenshot-as-a-service
  4. The tut doesn’t mention that you need to actually *run* screenshot-as-a-service. I went to the github page for the service and found out that I need to run the above “nodejs app.js” command in order to run a server on the localhost. Technically, waybacklapse has code in it to warn you that the server isn’t running. But that didn’t work so well for me.
  5. The user prompts for waybacklapse only allow for monthly or yearly snapshots. But fivethirtyeight has only been running the site for about 3 months, with daily updates, so those didn’t make sense to me. I wanted to get all the changes. So, after installing waybacklapse with pip, I went ahead and modified the code inside /usr/local/lib/python2.7/dist-packages/waybacklapse/waybacklapse.py with one small change to get all the screenshots instead of just monthly or yearly ones –
    1. In the create_payload function, I commented out the collapse variable as follows –

[gist https://gist.github.com/nitinthewiz/260780defd28739c50c05e1c1f83df53]

All was well and good, but not really. Turns out, screenshot-as-a-service pulls a screenshot of the entire page, not just above the fold. Which is great, and not so much. I was looking at a GIF that was way too long to be palatable. So, I needed a way to extracts parts of the screenshots so I could make a nice, clean and small-ish GIF. Luckily, waybacklapse made me install imagemagick. So I looked around and made the following script.

[gist https://gist.github.com/nitinthewiz/d6bebb2e1dc3b39df0dee915f3de0cbc]

It must sit inside the screenshot folder. It parses through the screenshots and converts them into smaller versions of themselves. Finally, I found the command inside waybacklapse which creates the GIF. I modified it a bit and used it to recreate the GIF.

convert -delay 30 /root/fivethirtyeight/2016081011081470853418/final-*.png /root/fivethirtyeight/2016081011081470853418/timelapse/2016electionforecastss.gif

Now, I could go about changing waybacklapse and submitting the code to the author, but he’s moved on to docker and in-house solutions for the dependencies, so I doubt it’ll be a benefit to anyone. Instead, I’ll just leave these notes here so I can reference them in the future. If they helped you, shout out in the comments section. Oh, and I’ll leave you with the GIF I made. –

FiveThirtyEight's Election Forecast in a GIF

No Waze

So, I gave Waze a try after being a Google Maps user for a long time. I had enjoyed using Waze way back in 2012, when I drove all over California trusting this app.

But this time, it chose to disappoint. Routes keep changing arbitrarily. When I let Waze decide the route, more often than not, it picks some convoluted route with a lot of loops for no good reason. When I ask it to compute routes again, it straightens up and gives me the right route. Worst of all – when I noticed a mistake on the map, I submitted it. But instead of a streamlined process, I got contacted by another Wazer (probably a map editor) who asked me some more details about the business, and had never heard nor bothered to google for the business. I was told that Google Maps is not a valid source of information because Waze policy says no copyrighted information may be used to correct the map. (That seems like an OK policy.) Eventually, though, the map edit was accepted as is. Perhaps the user trusted me or perhaps they did their due diligence. However, a week later and the map edit has still not appeared on Waze. So much for that bureaucracy.

Waze has also been showing me ads for nearby businesses as soon as I stop at a traffic light or slow down. I don’t actually blame them for this. It could just be a tactic by Google to force people to just skip over to Google Maps.

All in all, I think my little Waze experiment is over. Time to go back to Google Maps, which keeps improving on a daily basis, by hook or by crook.

p.s. The last straw came just yesterday, when I sent my wife a message from the Waze app, to inform her of my ETA. The app asked me to pick out the contact and showed me her name and phone number. Normally, such a notification would be an SMS with a link. Uber does it like that, Lyft does it like that and frankly, that makes the most sense – the other person gets a link, opens it and can track you in their browser. But Waze noticed that my wife had the Waze app installed, so they decided to send her a notification inside the app. She doesn’t have notifications turned on for Waze. Why would she? No one needs random notifications from a low-usage app. So, she never even received the ETA link. This failure from Waze is a UX issue which they should resolve. They don’t need to re-invent the wheel. Just use the same SMS notification services that every other app in the world uses and get it over with. Since they chose to do it in this half-baked, non-thought-out manner, I think it’s high time I part with the service.

Photo by oniitamo

This is why Google+ integration failed

 

google+ spam

I got the above chat request a few days ago. This came in Hangouts, which is tied into my GMail. I opened it today. Amanda wants to chat. OK.

But, who’s Amanda? No where in the above window is there a link that goes out to Amanda’s Google+ profile. I can’t even see Amanda’s gmail ID from this dialog. But that’s supposed to be a moot point if I can get access to her (it’s?) Google+ profile.

But if I can’t see either of those, how do I know it’s spam or a legit chat request. To err on the side of caution, I’ve Ignored, Reported and Blocked Amanda.

This is why the Google+ integration failed from the get go. If you’re going to shove it down our throats, at least be thorough with it.