Tech TLDR;: Recent Episodes

None

Mostly a tech blog

View Details

This blog post is a collections of programming books that comes up most often in various discussion on this subject. The data was Scrapped/Polished with LLMs so take it with a grain of salt.

| Rank | Book Title | Authors | Mentions | | --- | --- | --- | --- | | 1 | The Pragmatic Programmer | Andrew Hunt, David Thomas | 7 | | 2 | Designing Data-Intensive Applications | Martin Kleppmann | 6 | | 3 | Programming Pearls | Jon Bentley | 6 | | 4 | Clean Architecture | Robert C. Martin | 5 | | 5 | Domain-Driven Design: Tackling Complexity in the Heart of Software | Eric Evans | 5 | | 6 | Refactoring: Improving the Design of Existing Code | Martin Fowler | 5 | | 7 | Code Complete | Steve McConnell | 5 | | 8 | The Mythical Man-Month: Essays on Software Engineering | Frederick P. Brooks Jr. | 5 | | 9 | Clean Code: A Handbook of Agile Software Craftsmanship | Robert C. Martin | 4 | | 10 | The Design of Everyday Things | Don Norman | 4 | | 11 | Computer Architecture: A Quantitative Approach | John L. Hennessy, David A. Patterson | 4 | | 12 | Peopleware: Productive Projects and Teams | Tom DeMarco, Timothy Lister | 4 | | 13 | Game Programming Patterns | Robert Nystrom | 4 | | 14 | Operating Systems: Three Easy Pieces | Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau | 4 | | 15 | The Art of Computer Programming | Donald E. Knuth | 4 | | 16 | Introduction to Algorithms | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | 3 | | 17 | Algorithms Unlocked | Thomas H. Cormen | 3 | | 18 | How to Solve It | George Pólya | 3 | | 19 | The Elements of Statistical Learning | Trevor Hastie, Robert Tibshirani, Jerome Friedman | 3 | | 20 | The Programming Brain | Felienne Hermans | 2 | | 21 | The Phoenix Project | Gene Kim, Kevin Behr, George Spafford | 2 | | 22 | Tidy First! | Kent Beck | 2 | | 23 | C Programming: A Modern Approach | K.N. King | 2 | | 24 | The Little Schemer | Daniel P. Friedman, Matthias Felleisen | 2 | | 25 | Artificial Intelligence: A Modern Approach | Stuart Russell, Peter Norvig | 2 | | 26 | How to Design Programs | Matthias Felleisen et al. | 2 | | 27 | Statistical Rethinking | Richard McElreath | 2 | | 28 | What Is This Thing Called Science? | A. F. Chalmers | 2 |

The post Top 28 Programming Books Recommended by Hacker News Users (Analyzed with ChatGPT) appeared first on Tech TLDR;.

View Details

Table of Contents* Implementation + 1. Getting OpenAI API Key + 2. Install OpenAI module + 3. Generating the Transcript * Example + Back Story from 2018 + A Speech by Winston Churchill Transcribed * Conclusion

Implementation1. Getting OpenAI API Key1. Navigate to https://platform.openai.com/signup and sign up for an account. 2. Navigate to “Personal” -> “View API Keys” 3. Click on “Create new Secret Key”

  1. Install OpenAI moduleIn your command line run

pip install openai 3. Generating the TranscriptModify and run the following Python script

import openaiopenai.api_key = <YOUR API KEY HERE>f = open("./your-file-to-transcribe.mp3", "rb")transcript = openai.Audio.transcribe("whisper-1", f)print(transcript['text'])Code language: PHP (php) ExampleBack Story from 2018In 2018 I wrote a blog post titled Transcribing Speech to Text with Python and Google Cloud Speech API. Back then, the task was complex because the API only accepted audio clips of up to 60 seconds. To work around this, I had to split my audio into smaller files, transcribe them individually, and then combine them into a single text file (making sure to maintain order etc).

Today, OpenAI announced release of Wisper API and I decided to compare it to my results from 2018.

Note: My implementation in 2018 was flawed. For example, I did a hard split by 30 second mark, instead of finding a point of silence. Google gets a lot of credit for having this amazing technology 5 years ago. Google did update their API since then to accept longer files.
This post is not comparing Google to OpenAI. This post is comparing how much developer experience and quality of Audio transcription improved over time.

In 2018 I had 3 types of audio files:

  • My wife, a native English speaker, read something out loud as if she was dictating to Siri for about 1.5 minutes, recorded on iPhone 6s.
  • A snippet of Sport Radio Station.
  • Famous (but very low quality) 1934 speech by Winston Churchill, titled The Threat of Nazi Germany.

My 2018 version did well on the high-quality audio, but struggled with the last speech.

OpenAI excelled with all of the three files.

Furthermore, my 2018 implementation required some engineering. OpenAI version is just a few lines of glue code in Python.

See for yourself.

A Speech by Winston Churchill Transcribed

Many people think that the best way to escape war is to dwell upon its horrors and to imprint them vividly upon the minds of the younger generation. They flaunt the grisly photographs before their eyes. They fill their ears with tales of carnage. They dilate upon the ineptitude of generals and admirals. They denounce the crime and insensate folly of human strife. Now all this teaching ought to be very useful in preventing us from attacking or invading any other country, if anyone outside a madhouse wished to do so. But how would it help us if we were attacked or invaded ourselves? That is the question we have to ask. Would the invaders consent to visit Lord Beaverbrook’s exhibition or listen to the impassioned appeals of Mr. Lloyd George? Would they agree to meet that famous South African, General Smuts, and have their inferiority complex removed in friendly, reasonable debate? I doubt it. I have borne responsibility for the safety of this country in grievous times. I gravely doubt it. But even if they did, I am not so sure we should convince them and persuade them to go back quietly home. They might say, it seems to me, you are rich, we are poor. You seem well fed, we are hungry. You have been victorious, we have been defeated. You have valuable colonies, we have none. You have your navy, where is ours? You have had the past, let us have the future. Above all, I fear, they would say, you are weak and we are strong. After all, my friends, only a few hours away by air there dwells a nation of nearly 70 million of the most educated, industrious, scientific, disciplined people in the world, who are being taught from childhood to think of war as a glorious exercise and death in battle as the noblest fate for man. There is a nation which has abandoned all its liberties in order to augment its collective strength. There is a nation which with all its strength and virtue is in the grip of a group of ruthless men preaching a gospel of intolerance and racial pride, unrestrained by law, by parliament, or by public opinion. In that country all pacifist speeches, all morbid war books are forbidden or suppressed and their authors rigorously imprisoned. From their new table of commandment they have omitted, thou shalt not kill. It is but 20 years since these neighbors of ours fought almost the whole world and almost defeated them. Now they are rearming with the utmost speed. And ready to their hands is this new lamentable weapon of the air, against which our navy is no defense, and before which women and children, the weak and frail, the pacifist and the jingo, the warrior and the civilian, the front-line trenches and the cottage home, all lie in equal and impartial peril. Nay, worse still, for with the new weapon has come a new method, or rather has come back the most brutish methods of ancient barbarism, namely the possibility of compelling the submission of races by terrorizing and torturing their civil population. And worst of all, the more civilized the country is, the larger and more splendid its city, the more intricate the structure of its social and economic life, the more it is vulnerable, the more it is at the mercy of those who may make it their prey. Now these are facts, hard, grim, indisputable facts, and in face of these facts I ask again, what are we to do?

Whisper results in 2023

Diff of Google Cloud API from 2018 vs Whisper in 2023Note: Missing sentences and funny words like DVD on the left and near perfect transcription on the right.

ConclusionThe future is now.

I encourage you to glance through my post from 2018 and compare how much effort it took me to go through a similar exercise back then.

In 2023, this whole exercise and the blog post took me about an hour to complete.

It was a special moment for me to listen to Winston Churchill give his historic speech and follow along, line by line, with a near-perfect transcription generated by OpenAI. The future is now…

The post Transcribing Speech to Text with Python and OpenAI API (Whisper) appeared first on Tech TLDR;.

View Details

I wrote the following tool to do load test on Google Cloud PubSub. It’s a pretty simple but effective tool to generate a lot of data. This assumes user is using gcloud auth application-default login for credentials. In this particular examples: Every third request is adding a different attribute. Python dict as a payload that […]

The post Load Testing Google Cloud PubSub appeared first on Tech TLDR;.

View Details

Localize.js is a great service. Gone are the days of having to internationalize your websites by hand. That being said, existing UI has a pretty annoying in my opinion limitation – there is no way to add phrases manually. 99% of the time, Localize.js is able to automatically pick up all of the phrases on […]

The post How to Manually Add Phrases to Localize.js appeared first on Tech TLDR;.

View Details

Golang does not have built it sets. Basic functionality can be mimicked using maps with empty struct{}. Another option is to use a Boolean value, but empty struct does not use any space and therefore more efficient. Another benefit of empty struct is that Boolean value can be set to true or false, which could […]

The post Golang “Set” Data Structure Example appeared first on Tech TLDR;.

View Details

I recently watched the following speech by Arnold Schwarzenegger: It had a lot of good points, but one quote by Ted Turner really stood out for me: Early to bed, early to rise, work like hell, and advertise Mr. Schwarzenegger then went on to explain the meaning of the second half of this quote. It’s […]

The post Work Hard and Advertise appeared first on Tech TLDR;.

View Details

Here are the steps that I too to merge multiple GitHub repos into one, while preserving all commit history. The process took about 30 minutes for 5 repos. As a result, I feel like my GitHub page is cleaner and code is actually better organized and easier to find. TLDR: Create new repo (or use […]

The post Git – Merge Two or More Repositories Together and Keep History appeared first on Tech TLDR;.

View Details

One year ago I decided to stop self-promoting this blog. Previously I would spend a lot of time submitting my links to Social Media sites such as Hacker News and Reddit. It was taking up a lot of my time and attention. I even got a warning from Hacker News admin for repeatedly submitting links […]

The post One Year Without Self-Promotion appeared first on Tech TLDR;.

View Details

I often find myself with logs in the following format, exported in CSV. First column is timestamp in milliseconds, second column is timing for some request, also in milliseconds. Often I’d like to see the min, max and average request time, group by day and hour. Here is how to get this insight using Pandas […]

The post Group Log Data by Timestamp in Python with Pandas appeared first on Tech TLDR;.

View Details

I was investigating a bug that would only happen in production and wanted to attach a debugger to a particular workflow. I could have run the entire application and attached remotely, via: In my case, I wanted to invoke a specific method and see what happens via Scala REPL. Turns out it’s pretty easy to […]

The post Attach Remote Debugger to Jar File and Scala REPL appeared first on Tech TLDR;.

View Details

Update: 2021 I am now happily using new editor I usually update my WordPress as soon as I can for security reasons. I tried WordPress 5 and I did not like it. My main complain is that I write in WordPress using Markdown and it is not well supported in WordPress 5. My posts were […]

The post How to Rollback WordPress 5 to older version appeared first on Tech TLDR;.

View Details

Ammonite is an interactive REPL for Scala, kind of like ipython is for Python. I usually use IntelliJ IDE for Scala (which has a REPL and debugger among other things). Ammonite is great replacement though, when I don’t want to start up full blown IDE. It’s really easy to get started with Ammonite. First it […]

The post Adding Ammonite REPL to Scala For Ad Hoc Testing appeared first on Tech TLDR;.

View Details

My wife and I were watching Jack Ryan, where John Krasinski is playing an FBI analyst. I wanted to be like him, so I began to look for things to analyze. In the past I’ve done text analysis for comments left on Mark Zuckerbergs Facebook post, which I described in I Tried To Virtually Stalk […]

The post Analyzing 200,000 Deleted Tweets with Spark, 40 Billion Comparisons appeared first on Tech TLDR;.

View Details

In this episode of tech companies behaving badly, I would like to call out Yelp for forcing users to download their mobile app. I am 90% certain that I was able to get full experience on mobile Yelp in the past. Now it forces me to download a mobile app if I want to view […]

The post Yelp Forces Mobile App Download to Get Full Experience appeared first on Tech TLDR;.

View Details

My work used to be three miles away from my house, which was a huge blessing and my commute was guaranteed to be under 15 minutes. A month ago my work moved… Closer to my house. Now my commute is only 1.3 miles, making it an enjoyable 30 minute walk. I live in San Francisco/Bay […]

The post Short Commute is the Top Benefit appeared first on Tech TLDR;.

View Details

I should be able to lock my phone while using YouTube and still hear the sound in the background. Currently this functionally is only available to YouTube Premium subscribers for $12 a month. This is a bad business practice for YouTube and a bad thing for the world. Bad for Youtube Why is it bad […]

The post YouTube should Stream Audio for Free appeared first on Tech TLDR;.

View Details

There are two philosophies when it comes to package installation, global first and local first. Global meaning all applications that rely on a certain package have access to the same copy of the library that was installed once. Local means that each project has its own folder of dependencies installed specifically for this project and […]

The post How to use Virtualenv in Python to Install Packages Locally appeared first on Tech TLDR;.

View Details

A bit over a year ago I decided to disable Accelerated Mobile Pages (AMP) Project on this site. I have a long history with AMP and at some point I was one of it’s main critics. I’ve since accepted that it has a role to play, with no valid alternative. At the same time, I […]

The post One Year Without AMP appeared first on Tech TLDR;.

View Details

As smartphones have become part and parcel of our lives to the extent that they almost have engaged us, it should be made sure that we effectively navigate the perilous minefield known as life. From ensuring that we don’t miss any necessary birthdays, occasions or dinner dates, mobile phones nowadays can also provide you reminders […]

The post 5 Location Based Reminder Apps for Absent Minded – Guest Post appeared first on Tech TLDR;.

View Details

My company hired a new VP of Engineering. He asked me an interesting question during our one-on-one: “What makes you a good engineer?”. I had to think about it for a second and I realized that it wasn’t technology or knowledge of certain principles. Obviously there are certain skills that one needs to have to […]

The post Good Engineers Care appeared first on Tech TLDR;.

View Details

TLDR; Use blue page icon in the title bar (see image bellow) or about:reader?url= in front of your URL to switch to reading mode in Firefox. New FireFox has a “Reader” mode, that you can activate by clicking on the “document” button, highlighted in blue (in the nav bar) in the screenshot above. Part of […]

The post Have Firefox Read to You and How to Force Reader View appeared first on Tech TLDR;.

View Details

I am taking a cyber security class. This week’s assignment had us work on Honeypots. Honeypot is a server that pretends to have a vulnerability of sorts (open ports, old software etc.) and instead collects data on people who are trying to hack it. At the end of the experiment I ended up with some […]

The post Crunching Honeypot IP Data with Pandas and Python appeared first on Tech TLDR;.

View Details

Here is a simple trick that I used to restart my python script after unhandled exception. Let’s say I have this simple script called test.py that I want to run forever. It will just wait 2 seconds and throw an error. I use the following script called forever in the same directory: It uses python […]

The post How to Restart Python Script after Exception and Run it Forever appeared first on Tech TLDR;.

View Details

I am attending a Cyber Security course provided by CodePath and sponsored by Facebook (thank you). During SQL Injection week I found myself very frustrated. I felt like I did not have a process that I followed and instead was copy-pasting various commands in hopes that one will eventually work. I wanted to share the […]

The post My Strategy for SQL Injection Attack appeared first on Tech TLDR;.

View Details

Update 02/18/2018: – Expected search result is back on Google. Perhaps it was just a bug after all. I use AngularJS (aka Angular 1) in my daily work. When I need to look up documentation for something specific, I just search for it on Google. At least I used to do that. Few days ago […]

The post Angular 1 Documentation Disappeared from Google Search Results appeared first on Tech TLDR;.

View Details

Few weeks ago I decided to take it easy on my Social Media use. Top 3 social media sites that I visited were Facebook, Twitter, and Reddit. I miss Reddit the least. I still visit Twitter for direct mentions, but I don’t miss my general feed all that much. I really miss Facebook. Facebook is […]

The post Facebook Needs to Remove Political Content appeared first on Tech TLDR;.

View Details

I wrote a post 8 months ago titled It’s OK to Still Use Angular 1 in 2017. There are still a lot of companies using Angular 1 in legacy products and it is OK. That being said, some of the arguments that I made in my last post no longer seem valid. I wanted to […]

The post It’s NOT OK to Still Use Angular 1 in 2018 appeared first on Tech TLDR;.

View Details

This tutorial will walk through using Google Cloud Speech API to transcribe a large audio file. All code and sample files can be found in speech-to-text GitHub repo. Transcribe large audio files using Python & our Cloud Speech API. @akras14 shows how https://t.co/dY56lmE0TD — Google Cloud (@googlecloud) January 11, 2018 View Post Sample Results This […]

The post Transcribing Speech to Text with Python and Google Cloud Speech API appeared first on Tech TLDR;.

View Details

All shared Google Photos are open to the public, even if they were only shared with specific people. This is different from Google Drive, where only people granted permission via the “Share with others” drop-down are able to view the content. Below is a screenshot of my private album (that I shared with one person) […]

The post Do NOT Share Your Google Photos appeared first on Tech TLDR;.

View Details

TLDR; Using pandas (pip install pandas) Using native csv.DictReader Reading as a List Let’s say we have the following CSV file, named actors.csv. You can download this file here. The first method demonstrated in Python docs would read the file as follows: Open the file Create a CSV reader Skip first line (header) For every line (row) in […]

The post How to read CSV file in Python appeared first on Tech TLDR;.

View Details

There are many use cases for converting JSON to a dot notation. For example, my current company used Hue to query our log data. Our logs are stored in JSON, and Hue queries expect a dot notation. For example, this JSON file Will look like this, when converted to dot notation: Note, I am starting […]

The post Convert JSON to dot notation with Python appeared first on Tech TLDR;.

View Details

Recently I was working on a fun idea, that was going to take me longer than one week to complete. Towards the second week I found myself dreading going back to work on my “fun” project. I wasn’t sure why… Was I no longer excited about the idea? Was I just too tired? Was I […]

The post Writing Bad Code is Depressing appeared first on Tech TLDR;.

View Details

Bitcoin Energy Consumption Index is an attempt to estimates total energy cost of mining Bitcoin. Their methodology is based on the fact that energy needed to mine Bitcoin will increase in response to oversupply of mining resources. To quote the Bitcoin Wikipedia article: Every 2,016 blocks (approximately 14 days at roughly 10 min per block), […]

The post Bitcoin Energy Waste in 2017 is Estimated to Equal 1.5 Million Cars appeared first on Tech TLDR;.

View Details

Have you heard of Hacker News? It’s a great mini social network dedicated to all things tech. Once a month they post a thread called “Ask HN: Who is hiring?”, where anyone can list their job openings. With hundreds of comments it quickly gets overwhelming. Turns out it’s very easy to get the same data […]

The post Parsing “Ask HN: Who is hiring?” with Python and Hacker News API appeared first on Tech TLDR;.

View Details

Bellow is a list of tools that I find helpful as a web developer. Mozilla Developer Network Mozilla Developer Network – MDN is a great HTML/CSS/JavaScript reference. It is sponsored by Mozilla a non-profit behind Firefox, but anyone is welcome to contribute the content. W3schools – Beginner friendly tutorial site. I learned my first HTML, […]

The post Free Tools for Front End Web Developers appeared first on Tech TLDR;.

View Details

What does 1 + 2 + 3 equal to? It was 6, not anymore. Apple released its new operating system (iOS 11) for iPhone on September 19, 2017. One of the updates was a redesigned calculator app. Mid October, a post titled “Try quickly typing 1 + 2 + 3 into the iOS 11 Calculator. […]

The post Death by Redesign appeared first on Tech TLDR;.

View Details

Background Few years ago I found myself in a bad situation. I accepted a job that was not a good fit. After sixth months I hated my job and was ready to quit. At the same time my wife and I just found out that we were expecting our second child. She asked me to […]

The post 5 Rules to Cope with a Bad Tech Job appeared first on Tech TLDR;.

View Details

Two weeks ago Microsoft released a new version of Visual Studio Code (VSCode) which updated their default icon from a blue infinity sign, to something that looks a little strange and very orange. Most people who do not use VSCode will probably fail to see what the big deal is. If anything, it looks much […]

The post Drama with Visual Studio Code Icon appeared first on Tech TLDR;.

View Details

A lot of people don’t like the New Visual Studio Code (aka VS Code or just Code) icon and they prefer the old icon better. I am one of these people. I was inspired by this comment to bring the old icon back. If you want to do the same on MacOS, you can:Note: For […]

The post Restoring Original Visual Studio Code Icon on MacOS appeared first on Tech TLDR;.

View Details

Chrome Developer Tools have a very useful option that allows to copy any API request as a CURL command. This tool can be used to test APIs without having to rely on the Browser, get access to unofficial APIs, scrape data and many other useful scenarios. Please allow me to demonstrate. In this video, I […]

The post Copy any API call as CURL request with Chrome Developer Tools appeared first on Tech TLDR;.

View Details

Two recent post of mine were ridiculed on r/programmingcirclejerk: Building a Simple Stopwatch App with Electron – Submitted by someone as Building a 100MB stopwatch app. Compile Node.js to Native Binaries – Submitted by me as Making 60Mb ls clone in JavaScript. I submitted my own post, because I enjoyed the humor in those threads. […]

The post JavaScript is Not a Joke appeared first on Tech TLDR;.

View Details

I’ve recently ran into issue where our projects were expecting to run with SBT version 0.13.12, but the only version that was installing with home-brew via brew install sbt was 1.0.1. Global Setting I’ve Googled and realized that I can install older version with brew install sbt@0.13 but this installed version 0.13.16 which was still […]

The post How to install old version of SBT using Homebrew appeared first on Tech TLDR;.

View Details

I created a light weight RSS reader for people on poor internet connection to get latest headlines: https://techtldr.com/textnews/ I am kind of away form keyboard, but saw that Tweet from @samccone pointing out that http://lite.cnn.com/ was making users download a lot of JavaScript, … and now it seems down. https://twitter.com/samccone/status/906714941360553986. I wanted to provide a […]

The post Latest news headlines in pure HTML, for Irma evacuees appeared first on Tech TLDR;.

View Details

I’d like to open with the following comment on one of my anti-AMP shares, that I received today. HI I see that you have constant opposition to AMP because it renders badly on iphone. Do you know how expensive is DATA here in 3rd world? Native websites, force people to load trackers + install stupid […]

The post Google AMP is Winning or My History with AMP appeared first on Tech TLDR;.

View Details

Two month ago I wrote at length how Twitter was redirecting links on mobile devices to AMP versions of the content. Served not from AMP Cache, but from actual site’s web servers. Few weeks before that, I wrote an article asking to make AMP links optional in Google search result. Based on how well it […]

The post Dear Twitter, Please Make AMP Optional appeared first on Tech TLDR;.

View Details

Yesterday, I read an interesting article titled The Why and How of Google AMP at Condé Nast. I’ll let Condé Nast introduce themselves in their own words: Condé Nast is one of the world’s most prestigious publishers. You may recognize some of our brands which include Ars Technica, Bon Appétit, Golf Digest, GQ, Pitchfork, The […]

The post Some thoughts on AMP at Condé Nast appeared first on Tech TLDR;.

View Details

At my work we have a Python library that interfaces to all our API micro services (that are written in Java/Scala). It is a very useful tool for debugging and working with our platform, so I spend a lot of my time in a Python REPL. Often times I find myself needing to hit multiple […]

The post Simple Python Threading Example appeared first on Tech TLDR;.

View Details

Recently I had to debug an issue with Xvfb server. It was hard to debug, because I was not able to “see” what was going on. I was able to reproduce and fix one of the issues by mimicking the build server in a Vagrant box. When I tried the fix on the build server, […]

The post Debugging Xvfb Server with VNC appeared first on Tech TLDR;.

View Details

We run our protractor tests in Chrome instance via xvfb server. Last week after Chrome update to 60.0.3112.90, it began to fail with the following error. The solution was to use an older version of Chrome driver for Selenium, via the following command:

The post WebDriver.createSession Error in Protractor after Chrome Update appeared first on Tech TLDR;.

View Details

Sources view in Chrome Developer Tools has a code snippets feature, kind of like a built-in text editor, that allows to write, debug, save and re-use code snippets. Creating a code snippet To get to code snippets: Open the Developer Tools Navigate to Sources at the top menu Select Snippets in the left menu (see […]

The post Using Code Snippets in Chrome Developer Tools appeared first on Tech TLDR;.

View Details

Looks like the recent update to OS X El Capitan version 10.11.6 breaks python installed via homebrew. At least it happened to me both on my work and my home machines. If you are experience the same issue, you may see something that looks as following: Here are the steps that I took to fix […]

The post Fix Issue with Python installed via Brew after OS X El Capitan 10.11.6 Update appeared first on Tech TLDR;.

View Details

A year and a half ago I Tried To Virtually Stalk Mark Zuckerberg. It was a failed attempted and instead I analyzed comments on one of Mark’s posts. Few days ago I came across a repo/archive of Donald Trump’s Tweets and I thought it would be interesting to run a similar analysis on this data. […]

The post Network Analysis of Donald Trump’s Tweets for 2017 appeared first on Tech TLDR;.

View Details

Few days ago I decided to find a Stopwatch app for my Mac. I went over to the App Store and noticed that there were no good free options available. I thought to myself, how hard would it be to make one with Electron? Turns out, it was very easy. Getting an Electron shell running […]

The post Building a Simple Stopwatch App with Electron appeared first on Tech TLDR;.

View Details

One month ago I decided to disable Accelerated Mobile Pages (AMP) support on my site. This is a quick follow up on my experience so far and some metrics. In summary, I like it. Proof that it’s gone The following image captured in Google Webmaster’s Search Console indicates that the total count of AMP pages […]

The post One Month Without AMP appeared first on Tech TLDR;.

View Details

Introduction I love to write prose. I also love to write code. Different people have different approaches to writing code. I had a co-worker whose criteria for writing good Software was to make sure that one block of code can be read without having to scroll. My criteria for writing good code can be summarized […]

The post Writing Good Code is a lot Like Writing Prose appeared first on Tech TLDR;.

View Details

It appears that Firefox has gone all-in with a new marketing campaign aiming at presenting Google Chrome as a big brother/browser that is watching your every step. They kicked it off with the following billboard posted somewhere in San Francisco. Firefox also appears to be a running ads on various sites targeting similar message. A […]

The post Firefox Marketing Declares a War on Chrome appeared first on Tech TLDR;.

View Details

Few days ago I disabled AMP support on my site. To disable AMP support, I took the following steps. Log in to my WordPress dashboard Go to Plugins -> Installed Plugins Find “AMP” plugin Click “Deactivate” link under the AMP plugin Click “Delete” link under the AMP plugin That is all I had to do, […]

The post How to Disable AMP on WordPress appeared first on Tech TLDR;.

View Details

I have a long history with Google’s Accelerated Mobile Pages (AMP) project, but yesterday I drew the final straw. I was on Twitter (in Safari on iPhone 6) and I noticed that somebody linked to my site using an AMP link. I replied with a real link, but when I clicked on it, I was […]

The post I decided to disable AMP on my site appeared first on Tech TLDR;.

View Details

I’ve only been a full time web developer for the past 5 years. It’s barely enough time to start calling myself a “senior” Software Engineer. In that short period of time the web technology stack has evolved tremendously. January 2012 – jQuery In early 2012 I was finishing up my master’s degree and got a […]

The post JavaScript Fatigue or My History with Web Development appeared first on Tech TLDR;.

View Details

If you don’t yet know who Andrew Ng is, he is the Founder and Lead of Google Brain (Deep Learning) project, Adjunct Professor of Computer Science at Stanford University, Co-Founder of Coursera and author of one of the best (if not the best) Machine Learning courses. In other words he is to AI, what Justin […]

The post AI is the New Electricity – Andrew Ng – Transcript appeared first on Tech TLDR;.

View Details

I was reading some articles on Hacker News about how we’ve lost the internet to big companies and how we are not doing anything about it and it got me thinking about Google’s Accelerated Mobile Pages (AMP) again. My story with AMP started in early 2016 when I enabled it on this site. It kind […]

The post Please Make Google AMP Optional appeared first on Tech TLDR;.

View Details

Most people agree that whiteboard interviews suck. They have little co-relation with the job requirements and thousands of great engineers are being rejected every day just because they don’t do well with CS 101 types of questions. On a flip side, the whiteboard interview have been the industry standard for many years and they are […]

The post Whiteboard Interviews Suck, Get Good at Them Anyway appeared first on Tech TLDR;.

View Details

Update Jan 19, 2018: I was wrong, please read It’s NOT OK to Still Use Angular 1 in 2018 instead. I saw an old friend over the weekend, who is a Director of Front End at a local start up. He asked me what framework we were using, and I said, still Angular 1. He […]

The post It’s OK to Still Use Angular 1 in 2017 appeared first on Tech TLDR;.

View Details

Guillermo Rauch (Socket.io, Mangoose.js, Hyper.js, Now) is the guy to watch, and last night he did not disappoint. The following tweet announced pkg – a simple tool to generate a native executable file from Node.js code targeting Mac, Linux, and Windows. Introducing pkg Single command binary compilation for Node.js pic.twitter.com/Dbe9L1gb0x — ZEIT (@zeithq) April 29, […]

The post Compile Node.js to Native Binaries appeared first on Tech TLDR;.

View Details

Introduction I am not an expert on either of the package managers. Contrary, until few days ago I didn’t realize that npm used a local cache. Unaware, I wrote an article titled OMG — NPM clone that finally makes sense and was called out on some of my false assumptions. That feedback forced me to take a […]

The post Understanding differences between npm, yarn and pnpm appeared first on Tech TLDR;.

View Details

Note: Everything I’ve assumed was wrong, I am keeping track of things as I discover them via the medium post: https://medium.com/@akras14/omg-npm-clone-that-finally-makes-sense-3478588879 I’ll update this post when the dust settles 🙂 Last week I came across a yet another NPM clone, called pnpm, but unlike other clones (cough Yarn) this one is actually interesting! What so […]

The post OMG – NPM clone that finally makes sense appeared first on Tech TLDR;.

View Details

I just saw an articled on Hacker News announcing that Chrome 59 is going to have cross-platform headless support. A lot of people are excited by this announcement, mainly because it will allow them to move away from PhantomJS – a buggy headless browser currently used as a de-facto solution to run unit tests and […]

The post Running Any Linux Browser in (almost) Headless Mode appeared first on Tech TLDR;.

View Details

I often find myself needing to convert video to a series of images. It’s a great way to look through the content to find some details or identify screenshots that are worth keeping. For example I used this method to look through all talks given at Chrome Dev Summit to supplement my notes. Another use […]

The post Convert video to images via command line appeared first on Tech TLDR;.

View Details

I use Ammonite and ipython like REPL for Scala. I find it handy to save history to file, so here is how to do it in Ammonite. Ammonite exposes a global object called repl, which has a method called history. The code above converts history to a new line separated string and writes it to […]

The post Save Ammonite (Scala REPL) History to File appeared first on Tech TLDR;.

View Details

I love Python and ipython, so I often crave similar experience when working with Scala. Scala already has a built in REPL which is a huge plus, however, I wasn’t sure how to copy/paste multi-line text. For example, I had a snippet of code saved somewhere that looked as such: This would work fine if […]

The post Write or Paste Multi-Line Code in Scala REPL appeared first on Tech TLDR;.

View Details

Two years ago I wrote a blog post on Angular Performance, that remains the most popular post on this site. Even two years ago it seemed like Angular 1 was on it’s way out, so I was surprise to see my Angular 1 post still getting so much traffic. I conducted a poll on Twitter, […]

The post 64% of Developers are still using Angular 1 vs Angular 2+ appeared first on Tech TLDR;.

View Details

With popularity of Github and many other competing offerings, it’s easy to overlook how simple it is to set up (unlimited) private repos on any network connected computer. For example, I run this blog on a cheap instance of Linode, where $5 a month get’s you 20Gb SSD storage. But you don’t have to pay […]

The post Private Git Repository on Any Computer appeared first on Tech TLDR;.

View Details

Four month ago I noticed something weird with Google’s Accelerated Mobile Pages (AMP) project and wrote a blog post outlining my concerns. I first submitted the post to Reddit where it was not received well. People told me to “Read the Fucking Manual”. I remember telling my wife that I didn’t understand why people on […]

The post AMP Link Button and Speaking Up appeared first on Tech TLDR;.

View Details

Introduction Three days ago I wrote about my interview at Uber. I did not think of Uber as a great place to work. People that I’ve met seemed young, smart and overworked to the point of exhaustion. From my conversation with recruiter I took away that Uber had no problem being the lowest bidder and […]

The post Why Uber May Win After All appeared first on Tech TLDR;.

View Details

A little less than a year ago I had the “pleasure” to interview at Uber. I didn’t know much about the company at the time, other than that they were big. I was looking for work already and Uber’s recruiter reached out to me, so I figured to give it a shot. Up to this […]

The post My Interview at Uber appeared first on Tech TLDR;.

View Details

Step 1. Find what port Vagrant is connected to by running vagrant port The output Will look as follow: Indicating that Vagrant is running on port 2200 Step 2. Get the absolute path for the file that you want to copy i.e. /vagrant/some-file.txt You can get it by ssh’ing into the machine and locating the […]

The post How to Copy One File from Vagrant Virtual Machine to Local Host appeared first on Tech TLDR;.

View Details

This is another follow up to my 4 Month old blog post – how you may be loosing your mobile traffic to Google AMP pages. Note: AMP stands for Accelerate Mobile Pages – and it’s a roughly year old project from Google that aims to optimize mobile browsing experience by providing a free cache/CDN layer, […]

The post AMP Toolbar Now Has a Button to View and Copy the Original URL appeared first on Tech TLDR;.

View Details

Git comes with a very power history viewing command – git log, which supports a number of command line parameters. This options are very powerful, especially when used in combination. Here are the ones that I use the most: --author=“Alex Kras" – Only show commits made by a certain author --name-only – Only show names […]

The post How to use git log command line parameters appeared first on Tech TLDR;.

View Details

I was born in the former Soviet Union in the early 80s. When I was 16, my family immigrated to Israel. A year or so later, my mother won a Green-card. We moved to San Francisco in June of 2001, 2 months before 9/11. Six months after 9/11, I enlisted in the United States Marine […]

The post Our Iraqi Interpreter Sammy appeared first on Tech TLDR;.

View Details

I am by no means a professional writer, but I like to write. I feel like I have something meaningful to say and writing it down is my preferred means of expression. Writing, to me, is simply thinking through my fingers.Isaac Asimov Of course, as most writers, I hope that somebody would read what I […]

The post Emotionally Surviving as a Writer in the Age of Social Media appeared first on Tech TLDR;.

View Details

For a while now I had a theory that Software Engineers are more likely to have more boys than girls. I know it sounds like a stupid idea, but I had some strong anecdotal evidence to suggest that I might be onto something. Anecdotal Evidence Here is the list of past 3 companies where I […]

The post Are Software Engineers more likely to have boys? appeared first on Tech TLDR;.

View Details

3 Month ago I wrote how you may be loosing your mobile traffic to Google AMP pages, that got some attention. AMP stands for Accelerate Mobile Pages – and it’s a roughly year old project from Google that aims to optimize mobile browsing experience by providing a free cache/CDN layer, as well as a subset […]

The post AMP Toolbar Is Now Scrollable on Mobile Safari appeared first on Tech TLDR;.

View Details

I am currently reading a book by a Russian author – Alexander Nikonov, titled “Upgrade of the Monkey”. I believe it’s only currently available in Russian. It reminds me a lot of A Short History of Nearly Everything by Bill Bryson, except it’s much less politically correct. Author opens up with a strong stance against […]

The post God as a Model of the World appeared first on Tech TLDR;.

View Details

I wanted to create a simple RSS reader for myself. All I wanted to see was some top headline from top news site (according to Google it’s BBC, CNN and Fox News). No images, no fluff, just a headline and a link. I settled on 7 headline, which provided me a good balance between too […]

The post Simple RSS Reader in 85 Lines of PHP appeared first on Tech TLDR;.

View Details

Originally posted on http://www.apixio.com/technical-post/notes-from-the-2016-chrome-dev-summit/ Two weeks ago I got to attend the Chrome Dev Summit, an annual two-day conferencehosted by Google where they announced latest developments relevant to the webtechnology. Here are my full notes from this conference. Since there was somuch information presented, I decided to organize it by subject, instead ofchronological order of […]

The post Chrome Dev Summit 2016 Highlights appeared first on Tech TLDR;.

View Details

Last week I wanted to scrape my Tweets for the past few days. It was very easy to do with Python. In this tutorial we will explore: How to install Twitter API library in Python How to set up Twitter API authentication How to Search with Twitter API How to Get User Tweets with Twitter […]

The post Twitter API Example – Search and Get User Tweets in Python appeared first on Tech TLDR;.

View Details

Two weeks ago I wrote a blog post with a controversial title Google may be stealing your mobile traffic, where I outlined some criticism of Accelerated Mobile Pages (AMP) project. Shortly after Paul Bakaus (a developer advocate for AMP project) invited me to join him and Malte Ubl (product manager for AMP project) for lunch […]

The post Summary of My Meeting with Google AMP Team after “Google may be stealing your mobile traffic” post appeared first on Tech TLDR;.

View Details

Updated in 2020 to work with Python 3. My company uses multiple git repos that all depend on one another. Often I find myself trying to grep through a few of them at the same time. Regular grep works, but it takes a long time and displays a lot of noise. git grep only searches […]

The post Git grep multiple repos at once appeared first on Tech TLDR;.

View Details

Update 10/17/2016 6:30pm: You can read a response from the tech lead of the AMP Project for Google, in the comment area. Update 11/01/2016 10:40pm: After learning more about AMP, it became clear that the original title was inaccurate. A better title would have been You may be losing Your Mobile Traffic. Update 11/03/2016 10:30pm: […]

The post Google May Be Stealing Your Mobile Traffic appeared first on Tech TLDR;.

View Details

I couldn’t find a good example online, so here it goes. Hope it helps

The post Parse JSON Object to Map in Scala Using Jackson appeared first on Tech TLDR;.

View Details

Adding SSL Certificate few years ago was a painful and expensive process. This is no longer the case. Last year Let’s Encrypt Certificate Authority came to life and made SSL certificate available to anybody free of charge. It is sponsored by a number of organizations such as Mozilla Foundation, that want to make the web […]

The post Adding SSL Certificate to Your Blog is Free and Easier Than You Might Expect appeared first on Tech TLDR;.

View Details

First, let me establish some credibility. In the past year a few of my posts made it to the front page of Hacker News, including: I Tried to Virtually Stalk Mark Zuckerberg Git Tips What is the best part about being a Software Engineer? Prior to my first Hacker News (HN) breakthrough, my articles have […]

The post Front Page of Hacker News in 5 Easy Steps appeared first on Tech TLDR;.

View Details

My current work requires me to submit weekly reports and so did some other jobs that I’ve had in the past. To help with that task, I wrote the following script that: Goes through every one of my git repos Checks if I’ve made any commits in the past week If I did, prints the […]

The post Generate Weekly Reports from Your Git Commits appeared first on Tech TLDR;.

View Details

If you’ve never heard of the Debt Snowball approach for getting out of debt created by Dave Ramsey, you may find this term misleading. Tech Debt Snowball may sounds like something suggesting that left unchecked, tech debt will snowball out of control. While I have no doubt that this statement is true, what I mean […]

The post Tech Debt Snowball – A Simple Strategy to Manage Technical Debt appeared first on Tech TLDR;.

View Details

Git supports auto-completion when used via the terminal, which includes all basic commands such as git status or git checkout as well as local and remote branch names etc. It comes pre-installed on Ubuntu, but a few simple steps (bellow) have to be followed to get it working on Mac. Open up your terminal app […]

The post How to Add Git Auto-Completion for the Command Line Tools in Mac OS X appeared first on Tech TLDR;.

View Details

I tried shell integration for iterm2 and I didn’t like it. I wasn’t sure how to remove it, so I looked into the install script. I am currently using bash, so all they did was to add an entry into my ~/.bash_profile file and download a ~/.iterm2_shell_integration.bash file. All I had to do, is remove […]

The post How to Remove Shell Integration From iterm2 appeared first on Tech TLDR;.

View Details

I’ve been cleaning out my old computer and came across a git mind map that I’ve used to put together this Git Cheatsheet. Both are aimed towards beginners. If you are an intermediate Git user, you might find 19 Tips For Everyday Git Use to be more interesting. I’ve thought that some people might prefer […]

The post Git Mind Map appeared first on Tech TLDR;.

View Details

A week ago I saw an article on Hacker News titled – What’s awful about being a {software engineer, tech lead, manager}?. The article was spot on and it got a lot of attention. It also left me feeling depressed about my profession. My great grandmother used to say: “Don’t compare yourself to people who […]

The post What is the best part about being a Software Engineer? appeared first on Tech TLDR;.

View Details

TLDR; Visit this repo for minimum ES6+ Boilerplate Lately a lot people have been writing about how much they miss the good old days of JavaScript development. Five years ago creating a new web project looked as follows: Create an index.html file. Create a JavaScript file. Require your JavaScript file in your index.html file. Open […]

The post Dead Simple JavaScript Next Boilerplate appeared first on Tech TLDR;.

View Details

A few weeks ago our production code started to throw a weird error, that looked like this: This was very strange, since it was coming from a code that used to work for a long time. The only thing that has changed was the Node version. I’ve tried Googling for the issue, but all I […]

The post TypeError – The Header Content Contains Invalid Characters appeared first on Tech TLDR;.

View Details

Part 1. A Naive Dream The Dream In late 2015, I finished reading Automate the Boring Stuff with Python and was very inspired to try to automate something in my life. At the same time, I have been always fascinated by Mark Zuckerberg – the Bill Gates of our time. A lot of people love […]

The post I Tried To Virtually Stalk Mark Zuckerberg appeared first on Tech TLDR;.

View Details

Table of Contents Introduction Minimal Theory Step 1. Reproduce and confirm the problem Step 2. Take at least 3 Heap dumps Step 3. Find the problem Step 4. Confirm that the issue is resolved Links to some other resources Summary Something you might want to bookmark: Simple Guide to Finding a JavaScript Memory Leak in […]

The post Simple Guide to Finding a JavaScript Memory Leak in Node.js appeared first on Tech TLDR;.