Super Hexagon (by Terry Cavanagh) is one of my all-time favorite games. If you haven’t played it, here’s the trailer (from 13 years ago): It is a rhythm game with only two controls, and an official Linux port. The controls are circular (left and right rotate the player triangle …
This post is an expansion of what I wrote on r/archlinux as a proposal for AUR helpers. It is a call for every package manager to add support for global hooks. The packaging ecosystems that we all rely on have been under constant attacks. The most interesting countermeasures cur…
Over the last decade, I’ve made a bunch of sites using some mix of data/content. The most popular of these is endoflife.date, but there’s also hackercouch.com, mf.captnemo.in and a bunch more. My preferred stack for such projects is Jekyll, now with custom plugins since GitHub P…
My primary domain (captnemo.in, where you’re reading this) was suspended by my registry (.in) for 3 hours last night (4th May 2026). I discovered the issue roughly 30 minutes after it happened, at around 22:45 CET and managed to get on chat with a Namecheap representative in the…
I recently published Kurbelfahrplan, a FOSDEM schedule app for the Playdate. This was the first project where I’ve been quite happy with using Claude Code for development, and used it much beyond Copilot autocomplete and came closer to vibe-coding. You can see the complete devel…
Haven’t posted here in a while, but this is worth an update: I’m moving to Berlin. I’ve loved living in Bangalore for the last decade (I moved here just after the first HillHacks in May 2015), but it is time for an adventure. For the last couple of years, I’ve spent my time livi…
The Amazon US website allows you to export your Order History easily by visiting the “Order History Reports” page. No such option seems to exist for the Amazon websites for other countries. I was trying to write a simple scraper for the Amazon India Order History Page to get the…
“Fantastic Beasts and Where to Find Them” is a curious book: The in-universe book is written by Newt Scamander and was published in 1927. The first edition of the companion book was published in 2001. This is apparently the 52nd in-universe edition with a foreword from Dumbledor…
I recently did some work on analysing the Indian government cyberspace, thought I should document them somewhere outside of my Twitter1. List of GoI websites I’d made a list of Indian government websites in Jan 2019: I ran @18F /pulse on Indian Government websites to see how man…
I have a presentation I sometimes give about Monopoly being a terrible game1. I usually end it by pointing the audience to Monopoly Deal, which I introduce it as “the only Monopoly edition you can enjoy”. The advantages are obvious: Much shorter game length. No dice rolls. Even …
A lot of companies have come up with the idea for reducing all your cards into a single piece of plastic. Here’s a summary of all the ones I could find, and their fate. Beware: this field is very much a startup graveyard. The only remaining survivor seems to be Curve1 but it’s a…
A long time ago, I tried to do a readthrough for Game of Thrones (Book 1) alongside the first season. I managed to reach Episode 5, before I sped through the rest of the book, but I tried. Trying something similar for His Dark Materials, which is a great series if you’re looking…
I tweeted out my recommended viewing order for Star Wars recently1: Happy #StarWarsDay folks. If you've somehow managed to avoid watching Star Wars, here's my recommended viewing order (No Spoilers, 1/n) pic.twitter.com/K70O4ydCB7 — Nemo (@captn3m0) May 4, 2020 Thought I should …
I upgraded my encryption setup recently, so I thought I should write about it, just in case it is helpful to someone else. As a security professional, I have a different threat model from most folks, and as such my setup does involve a bit more complexity than what I’d recommend…
Update: Apple is no longer signing iOS6 for the iPad 2, so this is no longer feasible. I own a iPad 2 (GSM), which is rarely used these days because it is too slow with the latest iOS 9 upgrades. It is a 8 year old device, but I can’t just install Linux on it and make it usable,…
The Google Purchase History feature has been doing rounds in the news recently. In case you missed it, go to https://myaccount.google.com/purchases right now and make sure you are logged in with your personal gmail account to see what all Google thinks you’ve bought. For me it l…
I’ve been running a personal DNSCrypt server in Bangalore for the last 2 years. When I set it up, it was just a compiled version of dnscrypt-wrapper, which was the bare minimum setup I could do. Since then, I’ve upgraded it to a distribution supported version, but recent changes…
Self-Guide for stripping the Audible DRM, in similar vein as my Kindle Self-Guide. Download the aax file from Audible website. Run the inAudible-NG Rainbrow crack table against the AAX file. Easiest way is via docker/podman: cd ~/Music/Audiobooks podman run -v $(pwd):/data ryanf…
I run a non-standard Kindle configuration: Jailbroken (because I want to own the device, not rent it) Runs KOReader (because I want to read EPUBs and PDFs with reflow.) DRM Stripping (because I want to own the book, not rent it) Since I don’t do any of these often enough to auto…
tl;dr: Check your disk usage v/s RAID capacity to ensure that you can remove a disk before trying. If you can connect a new disk without removing the old one, run a btrfs replace - it is much faster. My homeserver setup has a 4 disk setup: 128GB Samsung EVO 850 SSD as the primar…
The Vulnerability The UIDAI Resident Portal (with read access to entire Aadhaar Demographic data) is runing a vulnerable version of LifeRay software. It is running LifeRay 6.1, which was declared End-of-Life in Febrary 2016. This release includes multiple known vulnerabilities, …
A few more changes since the last time I ran this. Update: An automatically updated version of this is available at https://captnemo.in/tld-a-record/ TLD IP Web ai 209.59.119.34 [http] [https] arab 127.0.53.53 [http] [https] bh 88.201.27.211 [http] [https] charity 127.0.53.53 [h…
A little while ago (Jan 2018), I ran a scan to see which all TLDs have an A record set (on the TLD). This is what lets you visit http://ai/ as a valid website on your browser, for eg. I ran the same scan as http://blog.towo.eu/a-records-on-top-level-domains/ (link is down, archi…
Next in the Home Server series, this post documents how I got the networking setup to serve content publicly from my under-the-tv server. Background My home server runs on a mix of Docker/Traefik orchestrated via Terraform. The source code is at https://git.captnemo.in/nemo/nebu…
Re-ran the same scan as http://blog.towo.eu/a-records-on-top-level-domains/ Scan run from AS9498. Results: TLD IP ai 209.59.119.34 android 127.0.53.53 arab 127.0.53.53 cal 127.0.53.53 chrome 127.0.53.53 cm 195.24.205.60 dclk 127.0.53.53 dk 193.163.102.58 drive 127.0.53.53 etisal…
Contents Email Google Play Music Google Keep Phone microG Core UnifiedLP Maps Uber Calendar/Contacts Google Play Store LastPass GitHub As part of working on my home-server setup, I wanted to move off few online services to ones that I manage. This is a list of what all services …
Learnings I forgot to do this on the last blog post, so here is the list: archlinux has official packages for intel-microcode-updates. wireguard is almost there. I’m running openvpn for now, waiting for the stable release. While traefik is great, I’m concerned about the security…
The last time I’d posted about my Home Server build in September, I’d just gotten it working. Since then, I’ve made a lot of progress. It is now running almost 10 services, up from just Kodi back then. Now it has a working copy of: Kodi I was running kodi-standalone-service, set…
I’d been planning to run my own home server for a while, and this culminated in a mini-ITX build recently. The current build configuration is available at /setup/homeserver/. In no particular order, here were the constraints: The case should be small (I preferred the Elite 110, …
Over the last couple of years, I’ve been involved with lots of side projects, both online and offline. Some of them, I’ve written about on the blog, like my music visualizer project. A few of them, got their own project page, like the website for my niece (but no blog post) whil…
I made this as my animated wallpaper recently (Click to play/pause): above video has a audio component, click at your own peril. What follows is the story and the tech behind making this. The Wallpaper I have a long history of using custom wallpapers. This was my wallpaper from …
I tweeted this a while back about my reading progress in 2016, and thought I’d do a post about what I read. Made a graph of my @goodreads reading progress in 2016. I only picked up the pace sometime in May, but managed to read ~10k pages this year. January 13, 2017 Continuing wi…
ACT, for those who don’t know is one of India’s most popular broadband providers. This is a very brief and concise summary. ACT has a mobile application That allows you to login and check your plan details, data usage etc I’ve been wanting to build a command line application tha…
This is specifically about the contest held in 2011, 6 years ago. I’ve written about my experience during the contest on this blog. More specifically, Round 2 of the contest was a pentesting scenario where we were only provided with a VM image and asked to test it and report any…
2015 was a good year for me. I accomplished a lot of things, and was happy for most part of the year. In no particular order, here are the things that stand out for me: Went to HillHacks, and made lots of friends. Helped organize the conference. Joined Razorpay in June Moved to …
I often get a lot of queries from people asking me about how to get started with software development, and how to get better at it. My replies are almost reaching stock-level worthy of copy-paste now, so I thought I might as well write about it publicly. What follows is a list o…
A little while back, I came across HillHacks, a conference in Dharamshala about “hacking and making in the Himalayas”. I was instantly hooked. It took a lot of scheduling troubles, but I decided to stay for the entire unconference, which started at 23rd May. Its hard to describe…
I have always wanted to be a writer. I think secretly us all reader-folk have that ambition. The joy of getting across your thoughts to another person without ever having met them is enormous. Most of my writing time these days is spent over email, chat or my not-so-frequent blo…
Update: Since I published this post, I have changed my opinion somewhat on the matter. This post is quite confrontational and I didn’t mean it to be that way. Medium is not wrong in this matter, but I still think we need to look for better solutions. I have since been working on…
So I recently did a talk on Joy of Software Development. You can read more about the talk here (link includes slides and list of topics covered). This post is devoted to the references I’d promised to link to in the talk. Since it was an introductory talk, and I didn’t want to b…
I consider myself a UX enthusiast. I consider that term to aptly describe my interest in UX. As I’m deeply involved in many UX and design decisions, I try to be well read on design and UX principles. While reading a discussion about iPhone prototypes on HN in June ‘12, I came ac…
February has been an interesting month for me. I haven’t been programming a lot, but have definitely been writing a lot. I have got a few more upcoming projects as well, which I’d love to announce soon. We recently held a short 8-hour CTF (scytheCTF) on Backdoor. I made two chal…
Source I am not a competitive programmer. I love programming, but more so I love building things. As a result, I rarely participate in coding contests. Even when I do, I try to use languages like Ruby and Python just to see if I can do it my way, so to speak. While trying a cont…
To start with, here’s a piece of art that is meant to offend you: The above is an artwork by MF Hussain. Its was sold as an untitled work by Hussain to a private collector, but was named Bharat Mata later when it was sold in an auction. Were you offended by looking at it? Maybe.…
As part of a pre job interview for a position as a security consultant, I was asked this question. The interviewer expanded the question further as : Given the choice between a luxurious journey in a passenger jetliner (flying business class) and a thrilling trip as a fighter pi…
I was eagerly awaiting the release of Yu Yureka, which has been widely hailed as a great budget phone by most reviews. I won’t go into the details of the phone, but rather the flash sale that took place on 13th Jan ‘15 (on amazon.in). Far from being a well-managed affair, the we…
I’m a lazy reader. I’ll often start books and leave them halfway, often juggling 3-4 books at the same time. I read in sprints, often spending a few days just finishing lots of books followed by reading nothing for the next few weeks, perhaps. But that doesn’t mean I don’t appre…
We recently participated in ECTF-14 and it was a great experience. Here’s a writeup to the web400 challenge: Problem Statement The chat feature was added to Facelook website and to test it, founder of the company had sent a message in chat to the admin. Admin reads all the chat …
If you’ve known me for a while, you might know me as a privacy conscious individual or perhaps as someone who leads a very public life. The truth is that I lead both these lives; and while that may sound oxymoronic to some, its perfectly clear to me. I’m a huge privacy advocate.…
Note: This is cross-posted from Quora where I wrote this answer initially. The first project on GitHub was grit. How do I know this? Just some clever use of the search and API. Here’s a GitHub search to see the first 10 projects that were created on GitHub. The search uses the c…
A very common asked question is about our domain name and how does it work locally. When we launched filepanda, and our preliminary homepage a long time ago, we had been using the easy to remember IP address http://192.168.208.208. Now, however we are using the domain name sdsla…
I’ve worked with rails previously before , but that was a long time back and even though I’ve continued to dabble with it, I’d never built anything complete or large enough with it. This time, however, I’m working on an actual large-scale application with all the nuts-and-bolts …
With my recent CCTC Winnings, I decided to purchase a new laptop as my old Dell Inspiron was not performing up to the mark. Being of a time before the Intel i-series launch, it was also severely lacking in several features, most notably virtualization support, which is badly nee…
I was winner of the Deloitte CCTC Wave I, and a finalist for the Wave II. It was natural I was participating this year as well. While the first year involved a simple penetration test as the first round, and it was an abstract submission in Wave II; this time it was a closed jeo…
I recently hosted a Geek Quiz at my college along with Giri. The quiz was mostly geek with some sports and pop-cult trivia. Here are the slides for the quiz (both prelims and finals): Geek Quiz Prelims Geek Quiz Finals Some audio/video files for the finals are up here. BackdoorC…
I was recently a speaker at nullcon 2014, a premier infosec conference in India. My talk was a re-hash of my earlier talk at Deloitte CCTC-2 and was titled “Browser Extension Security”. I applied for the CFP sometime in November with a copy of my talk, paper and code I’d used. M…
If you’re a programmer, by now you’ve surely heard of the various static-site compilers that are taking over the world. My pick of choice is Jekyll, (about which I’ve blogged earlier as well) mostly because it is the default supported tool for the GitHub Pages service. Read my e…
I am an Internet addict. And the website I’m most addicted to is called GitHub. GitHub is a social code hosting website that is totally awesome. Not your general run-of-the-mill awesome, but rather ass-kicking best-thing-in-the-world awesome. If GitHub was a ninja, it would be P…
A few days back, I found the excellent HackerBarApp via Hacker News. Hacker News, for those of you who don’t know, is tech news website run by YCombinator. Hacker Bar was the simplest way of accessing HN stories that I’d ever seen. Unfortunately, it was only for Mac (made using …
I’d done a post on this a long time back (2009), detailing what all softwares I use on a daily basis. This is an update to that post. Since the last post, I’ve moved on to using Linux, using Elementary OS as my primary OS. Over the time period this post was written, I’ve shifted…
Even though I am a long time Linux user, and a big time fan of the many Linux distros that I’ve tried out over time, I still go around recommending Windows to people who ask me for advice. The only exception I make is when the person in question is a developer, in which case I t…
Introduction For the past two years, I have been involved in a student group in our campus called SDSLabs. It has been the most fun two years of my life. I have acted as programmer, developer, manager, monkey-coder, event-manager and all other roles one might expect in a startup…
I’d been one of the most eager users of the new outlook.com redesign. I’m a real fan of Metro (sorry, I must call it the New Windows 8 Design), and think that the correct typgraphy mixed with the correct design language should help the users in a great way forward. Unfortunately…
I’ve changed to using Chrome for iOS as my primary browser. Since I only own an iPad 2, all of my observations are with regard to the iPad version of the browser. Why I love Chrome Chrome is already my primary browser on my primary machine, and after it came out for the iOS, I t…
I recently did something along this line, and this technique is really cool. (I prefer to call it “inception” injection). Its pretty easy once you figure it out, so here it goes. If the result of the first query is used as an input in the second query, and the first query is vul…
This is the obligatory blog post that comes along with winning the Adobe Express Apps Contest. Contest Rules The contest rules asked you to develop a mobile application, using Adobe Phonegap and related technologies(read Dreamweaver) in a time frame of hardly 18 hours. This dura…
Update: I have worked on an editor protype along the lines of this blog post. The result is called Sympathy Editor. Please check it out. I’ve used more than a dozen of editors for mainly two purposes: coding, and writing text. The most liked and used among them would be [Notepad…
I did a redesign of the blog. The main goals for the redesign were to reach a clean, readable layout, which I feel I’ve accomplished. Old Design Everything was plain old bootstrap, except for the hover effect on the photograph. I’ve also removed the old “Related Posts” feature, …
There is Lot of buzz in the startup industry regarding the killing of Hollywood. However, before we do that (Amen), there is something that I wish to learn from it. Hollywood ships. No matter how much we shout at their broken distribution model, there is one thing that I deeply …
So, I was just going through my old blog posts, and saw the Planet IITR Update, which I created out of a need for people to be able to find blogs from other people in IITR. Since no one has ever submitted a single link to the planet , I just thought, why shouldn’t I just crawl a…
I see people learning RoR, PHP, Django, with a single intent: getting their own website. Of course, it is the million dollar idea that will blow everyone away, as always. But what I find fascinating is that too many upcoming web developers are testing the waters with opinionated…
In case someone out there is still stuck with bundler 1.0, and hates seeing the Fetching source index for http://rubygems.org/. screen, please update to bundler 1.1. The following command should do the trick: gem install bundler --pre Bundler 1.1 is faster by a huge margin in co…
Was stuck at this for quite some time: var postData={ a:1, b:2 }; require('request').post({ uri:"http://example.com/test", headers:{'content-type': 'application/x-www-form-urlencoded'}, body:require('querystring').stringify(postData) },function(err,res,body){ console.log(body); …
Being a good programmer is 3% talent and 97% not getting distracted by the Internet. Firstly, a frank admission. I procastinate. For every second I spend in front of my computer, trying to get some work done, there is a continous struggle going on between my “work” and “play” si…
A slide from GitHub’s famous “How Github uses Github to build Github talk”: In their recent version of the talk at RubyConf 2011, they changed the slide slightly: It now reads, “No Pings” instead of “No Managers”. Not nitpicking, just paying attention. If you haven’t seen the ta…
I don’t know how many times I’ve said this, but the best way of creating a multi-user discussion platform is to create a facebook page. A little guidelines on what you should use: Create a group when you really need it (for <100 people) and when you want to have close knit discu…
Dear Google, Please release the Google+ write API as well. In case you’ve forgotten, its been 6 months since you launched. I’ve got stuff I wanna post, stuff I wanna develop. Please keep to your promises, and don’t make me quote Steve Yegge. Also, while you are at it, please fix…
This is a rant, mainly targeted at Apple. If you are a Apple fanboi, just go elsewhere Please, and quickly. I can’t take another minute of this iTunes. It refuses to properly sync songs, does not update my songs tag info, unless I play them individually, and to top it all, my iP…
I recently was part of a team at IIT-Roorkee that won the Deloitte Cyber Collegiate Threat Competition. It was a competition modeled after The Deloitte sponsored CCDC in the US. The event will be organized in the subsequent years as well, and hence this blog post will summarize …
I was working on the Google +1 Listing API (undocumented). So here’s a list of my current +1 urls on github.com. Most of the projects pertain to web-designing. I’ll update this list automatically every week or so, provided I remember to/set a cron job. jayferd/color.js color.js …
Here are a few of the applications that I would heavily recommend. Workflowy Here’s how Workflow describes itself. WorkFlowy is a simple, but powerful way to manage all the information in your life. Here’s their introductory video: If that does not hook you, I don’t know what wi…
For the past few years, there has been a revolution in the blogging scene. People have moved towards better hosting providers, better blogging tools, with automated, and delayed blogging becoming the norm. Posts are written months in advance, and proof-read dozens of times, befo…
I installed Ubuntu as my primary OS back sometime in February. Not that I’d not tried it earlier. In fact, I’d used a copy of Ubuntu 3 back in day. But this time around, Windows (from my dual boot) just gave up and died. The partition with Windows got heavily corrupted, lost lot…
After my attempts at python, Ruby on Rails, this was the time for node.js. You ask me what is node.js ? Remember when Google Chrome came out and went blazing past the rest of the browsers in Javascript benchmarks. That was because of its internal Javascript Engine, called V8. So…
Continuing my quest on Web Designing, I’ve started learning Ruby On Rails, which is like the most-hyped web framefork of the moment. After all, Github runs on Ruby On Rails, Redmine uses Rails, and so do Basecamp,Hulu,Scribd, and even Twitter. Even though RoR has Ruby in its nam…
Planet IIT-R is a blog collection similar to the Planet Ubuntu, Wordpress, and the likes. The basic idea is to create a single address where all blogs of IIT-R are aggregated. This way, people can easily follow happenings and blogs at IIT-Roorkee without individually following v…
Google’s announced its next big thing, Google+ to take on Facebook left people wondering if the next version would be called Google++. Inspite of all the great work that Vic Gundotra has put into Google+, it still lacks something. The creator of linux, Linus Torvalds. Google+ is…
Note: All opinions are mine alone. Please keep your opinions limited to comments. This is in wake of the not-so-anonymous attacks on the nic servers. Apparently a few people had decided to brand their own version of AnonymousIndia and hack into the nic servers. This had been vie…
Introduction Everybody seems to be all about open-source cloud-backup and sync solutions now-a-days. The hype is all around the cloud, they say. However cloud is just a stupid concept for sales people, that I prefer to avoid. However people are coming up with all kinds of crazy …
Just if someone's still following this blog around(don't, its already dead). I've moved over to my new website (http://www.captnemo.in). Its running from github and will be a perfectly static website where the power of my awesome magical skills shall finally be revealed. Just jo…
I worked out the entire IIT-JEE 2011 results and the end result is available here. I’ve intentionally removed the Application Form Number (partially) in the results, so that it may not be misused. I’m thinking of trying a full-scale birthday permutation attempt on the JEE site f…
I had been meaning to learn either Python or Ruby for a long time but had been unable to decide. I had a basic understanding of both of these, but I never had the chance to build an entire application in either. And I’m not talking about using Django or Ruby on Rails (which are …
Since I’ve already decided to make this my newer blog, why not just continue in the same spirit and write a little of the events of my highly boring, lazy life. For one, I was part of the SDSLabs 1st yearly trip to Robber’s Caves which was highly enthralling. We enjoyed a lot, a…
For the uninitiated, Game Of Thrones is a high budget fantasy TV series currently being screened on HBO. It is based on George R.R Martin’s epic fantasy, A Song Of Fire & Ice, book one of the Game Of Thrones series. I had started reading the book a few weeks ago (not knowing the…
Welcome to my github pages. This will be my personal code blog site, or something of that sort. I will soon be transitioning this site to Jekyll for easier publishing and maybe move away from wordpress. (Done) I am a proficient coder in PHP, working on various internal projects …
Copied from OMGUbuntu Press Alt-F2 and type “gksu gedit /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py” Find line 88, change “keyserver.ubuntu.com” to “hkp://keyserver.ubuntu.com:80” Save and close Note that this is the default setting in Ubuntu Natty Narwhal (11.04)…
Download the issue on the WONA archive website. Note about Archival: This post used to live on the (now-dead) piratecoders.co.cc website. I’ve moved it here for archival’s sake. The latest issue of WONA turned up 3 months late at my doorstep. Other than the fact that it was miss…
[Editor’s note: I found this scrawled across a a4 sheet in a classroom. The author drifts off way too much from his thinking to make any sense, but there were some things that I really liked. So I present them to you, unedited, random, and unexplainable thoughts of a genius. My …
Finally, from being a complete programmer to a designer as well, who can create a css template using Paint.Net. Photoshop is way too outlandish for me, you see. It wasn't easy, but it was definately fun. The template was based on a wallpaper by http://leon-gao.deviantart.com. Th…
Aboard The Nautilus, that is I finally decided to write a blog post for my non geek friends with affiliations ranging from DPs to BPs and the oblivious to all, but the elite few, GPs (Keep thinking, non_IITians). In midst of all the chapos, and ghissai(not me, of course), Nautil…
Over the past 2 months, I’ve been learning PHP/mySQL as a great language. After helping out a lot of people, I’ve decided to write a tutorial on using PHP/mySQL to create a cool website. For the entire duration of this tutorial, this is the list of softwares we will be working w…
Almost everyone looks at my laptop’s screen, and asks me “is that Windows 7 ?” and I reply each of them with the same answer “No”. I have not yet moved to 7, because of various reasons, which I am not going to explain over here, but lets just say that I’m still clinging to dear …
This article has been bubbling in my mind for quite some time, and I’ve decided to steam it off. There are games that you must play, like Mario or Contra. Then there are games that you play (Counter Strike, AoE). Some games you wish you could play (Assassin’s Creed, Far Cry). Ga…
This is my first real post on my brand new blog at wordpress, and quite seriously, I’m thrilled to get a new start. I hope this project would flourish unlike many of the other things I took up (Kasiasi, Papercut,…). I have not yet completely given up on Papercut, and I really li…
No posts found