March 2023
February 2021
October 2019
July 2019
April 2019
January 2019
- 08: One Year Without Self-Promotion (2)
December 2018
- 23: Group Log Data by Timestamp in Python with Pandas
- 15: Attach Remote Debugger to Jar File and Scala REPL
- 06: How to Rollback WordPress 5 to older version
November 2018
October 2018
- 21: Analyzing 200,000 Deleted Tweets with Spark, 40 Billion Comparisons
- 19: Yelp Forces Mobile App Download to Get Full Experience (2)
- 16: Short Commute is the Top Benefit (4)
August 2018
- 21: YouTube should Stream Audio for Free (5)
- 20: How to use Virtualenv in Python to Install Packages Locally (3)
- 02: One Year Without AMP (5)
July 2018
June 2018
May 2018
April 2018
February 2018
- 23: How to Restart Python Script after Exception and Run it Forever (16)
- 21: My Strategy for SQL Injection Attack (1)
- 16: Angular 1 Documentation Disappeared from Google Search Results (3)
- 05: Facebook Needs to Remove Political Content (1)
January 2018
- 19: It’s NOT OK to Still Use Angular 1 in 2018 (8)
- 04: Transcribing Speech to Text with Python and Google Cloud Speech API (78)
- 01: Do NOT Share Your Google Photos (82)
December 2017
- 24: How to read CSV file in Python (8)
- 20: Convert JSON to dot notation with Python
- 19: Writing Bad Code is Depressing (2)
- 06: Bitcoin Energy Waste in 2017 is Estimated to Equal 1.5 Million Cars (1)
- 02: Parsing “Ask HN: Who is hiring?” with Python and Hacker News API
November 2017
October 2017
- 30: 5 Rules to Cope with a Bad Tech Job (2)
- 19: Drama with Visual Studio Code Icon (6)
- 11: Restoring Original Visual Studio Code Icon on MacOS (2)
- 02: Copy any API call as CURL request with Chrome Developer Tools (1)
- 02: JavaScript is Not a Joke (1)
September 2017
- 15: How to install old version of SBT using Homebrew (6)
- 10: Latest news headlines in pure HTML, for Irma evacuees
- 10: Google AMP is Winning or My History with AMP (9)
- 01: Dear Twitter, Please Make AMP Optional
- 01: Some thoughts on AMP at Condé Nast
August 2017
- 17: Simple Python Threading Example (2)
- 11: Debugging Xvfb Server with VNC
- 11: WebDriver.createSession Error in Protractor after Chrome Update
- 10: Using Code Snippets in Chrome Developer Tools (8)
- 02: Fix Issue with Python installed via Brew after OS X El Capitan 10.11.6 Update (1)
- 02: Network Analysis of Donald Trump’s Tweets for 2017
July 2017
- 28: Building a Simple Stopwatch App with Electron (14)
- 26: One Month Without AMP (16)
- 06: Writing Good Code is a lot Like Writing Prose (7)
- 03: Firefox Marketing Declares a War on Chrome (4)
June 2017
- 26: How to Disable AMP on WordPress (25)
- 26: I decided to disable AMP on my site (60)
- 22: JavaScript Fatigue or My History with Web Development (9)
- 16: AI is the New Electricity – Andrew Ng – Transcript (1)
- 10: Please Make Google AMP Optional (25)
- 06: Whiteboard Interviews Suck, Get Good at Them Anyway (12)
- 01: It’s OK to Still Use Angular 1 in 2017 (17)
May 2017
- 01: Compile Node.js to Native Binaries (5)
- 01: Understanding differences between npm, yarn and pnpm (4)
April 2017
- 21: OMG – NPM clone that finally makes sense
- 13: Running Any Linux Browser in (almost) Headless Mode (1)
- 08: Convert video to images via command line (1)
- 07: Save Ammonite (Scala REPL) History to File (3)
- 07: Write or Paste Multi-Line Code in Scala REPL
- 06: 64% of Developers are still using Angular 1 vs Angular 2+ (1)
March 2017
February 2017
- 26: AMP Link Button and Speaking Up (1)
- 23: Why Uber May Win After All
- 19: My Interview at Uber (19)
- 10: How to Copy One File from Vagrant Virtual Machine to Local Host (1)
- 08: AMP Toolbar Now Has a Button to View and Copy the Original URL (5)
- 03: How to use git log command line parameters
January 2017
- 30: Our Iraqi Interpreter Sammy
- 27: Emotionally Surviving as a Writer in the Age of Social Media (2)
- 19: Are Software Engineers more likely to have boys?
- 14: AMP Toolbar Is Now Scrollable on Mobile Safari
December 2016
- 21: God as a Model of the World (1)
November 2016
- 30: Simple RSS Reader in 85 Lines of PHP (6)
- 22: Chrome Dev Summit 2016 Highlights
- 19: Twitter API Example – Search and Get User Tweets in Python (5)
- 03: Summary of My Meeting with Google AMP Team after “Google may be stealing your mobile traffic” post (33)
October 2016
- 25: Git grep multiple repos at once (2)
- 15: Google May Be Stealing Your Mobile Traffic (286)
- 06: Parse JSON Object to Map in Scala Using Jackson (2)
September 2016
- 13: Adding SSL Certificate to Your Blog is Free and Easier Than You Might Expect (3)
- 11: Front Page of Hacker News in 5 Easy Steps (1)
August 2016
- 13: Generate Weekly Reports from Your Git Commits (2)
- 12: Tech Debt Snowball – A Simple Strategy to Manage Technical Debt (4)
July 2016
- 14: How to Add Git Auto-Completion for the Command Line Tools in Mac OS X
- 13: How to Remove Shell Integration From iterm2 (4)
May 2016
- 03: Git Mind Map (2)
April 2016
- 28: What is the best part about being a Software Engineer? (15)
- 12: Dead Simple JavaScript Next Boilerplate (1)
- 08: TypeError – The Header Content Contains Invalid Characters (2)
- 04: I Tried To Virtually Stalk Mark Zuckerberg (44)
December 2015
- 24: Simple Guide to Finding a JavaScript Memory Leak in Node.js (55)
- 09: Automate the Boring Stuff with Python by Al Sweigart – Book Review (7)
November 2015
October 2015
September 2015
April 2015
March 2015
- 10: Git Cheat Sheet (19)
February 2015
June 2014
- 28: Summary of Maintainable JavaScript Talk by Nicholas C. Zakas (16)
- 27: Batch Rename Files in Unix Command Line (1)
- 03: Easy Way to Run JavaScript Tests On Multiple Browsers Using Free Tools
May 2014
- 30: Delete Fork Dependency of a Repository on Atlassian Stash or GitHub
- 02: How to Allow Node.Js App to Bind to Port 80 on Mac – For Testing Purposes Only (1)
April 2014
- 23: Pipe Your Localhost to the Real World (2)
- 23: Summary of a talk by Tom Katis – CEO of Voxer at Silicon Valley Bank Talks
- 23: MySQL Pretty Print in Command Line (5)