Skip to content

Instantly share code, notes, and snippets.


Stevey's Google Platforms Rant

I was at Amazon for about six and a half years, and now I've been at Google for that long. One thing that struck me immediately about the two companies -- an impression that has been reinforced almost daily -- is that Amazon does everything wrong, and Google does everything right. Sure, it's a sweeping generalization, but a surprisingly accurate one. It's pretty crazy. There are probably a hundred or even two hundred different ways you can compare the two companies, and Google is superior in all but three of them, if I recall correctly. I actually did a spreadsheet at one point but Legal wouldn't let me show it to anyone, even though recruiting loved it.

I mean, just to give you a very brief taste: Amazon's recruiting process is fundamentally flawed by having teams hire for themselves, so their hiring bar is incredibly inconsistent across teams, despite various efforts they've made to level it out. And their operations are a mess; they don't real

View InfiniteScroll.js
(function($, window, undefined) {
var InfiniteScroll = function() {
this.initialize = function() {
this.setupEvents = function() {
miclovich /
Created Feb 5, 2019 — forked from scrapehero/
Python 3 code to extract amazon reviews
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Written as part of
from lxml import html
from json import dump,loads
from requests import get
import json
from re import sub
from dateutil import parser as dateparser
from time import sleep
miclovich /
Created Jan 29, 2019 — forked from agconti/
Fabfile for django 1.7 + for easily deploying on heroku.
import os
import random
import string
from fabric.api import env, local, require, lcd
from fabric.colors import cyan
from fabric.operations import prompt
current_dir = os.getcwd()
env.project_name = '{{cookiecutter.app_name}}'
miclovich / gist:e31d1edd02338f60fd578b74fcbb6c23
Created Jul 28, 2018 — forked from carolineschnapp/gist:5397337
Sample JavaScript file added with ScriptTag resource. This sample file is meant to teach best practices. Your app will load jQuery if it's not defined. Your app will load jQuery if jQuery is defined but is too old, e.g. < 1.7.
View gist:e31d1edd02338f60fd578b74fcbb6c23
/* Sample JavaScript file added with ScriptTag resource.
This sample file is meant to teach best practices.
Your app will load jQuery if it's not defined.
Your app will load jQuery if jQuery is defined but is too old, e.g. < 1.7.
Your app does not change the definition of $ or jQuery outside the app.
Example: if a Shopify theme uses jQuery 1.4.2, both of these statements run in the console will still return '1.4.2'
once the app is installed, even if the app uses jQuery 1.9.1:
jQuery.fn.jquery => "1.4.2"
$.fn.jquery -> "1.4.2"
miclovich /
Created Jul 14, 2018 — forked from jefftriplett/
Python Requests + Tor (Socks5)
pip install requests
pip install requests[socks]
super helpful:
miclovich /
Created May 16, 2018 — forked from KhepryQuixote/
Python script to connect to Tor via Stem and Privoxy, requesting a new connection (hence a new IP as well) as desired.

Crawling Anonymously with Tor in Python

adapted from the article "Crawling anonymously with Tor in Python" by S. Acharya, Nov 2, 2013.

The most common use-case is to be able to hide one's identity using TOR or being able to change identities programmatically, for example when you are crawling a website like Google and you don’t want to be rate-limited or blocked via IP address.


Install Tor.

miclovich /
Created May 7, 2018 — forked from stevenhaddox/
Convert .crt & .key files into .pem file for HTTParty

Two ways to do it, but only worked for me so I'll put it first and the second for reference:

$ openssl pkcs12 -export -in hostname.crt -inkey hsotname.key -out hostname.p12
$ openssl pkcs12 -in hostname.p12 -nodes -out hostname.pem

Other options for this method in comments below:

# Note, the -certfile root.crt appends all CA certs to the export, I've never needed these so it's optional for my personal steps
$ openssl pkcs12 -export -in hostname.crt -inkey hsotname.key -certfile root.crt -out hostname.p12

Note, I've always had my hostname.crt as part of my .pem, so I keep my certs but apparently you may not have to, hence the nocerts flag being an extra option in this sample

View sentence_counter.js
var sentence_object = {
// also has properties that are passed in:
// sentence (sentence content)
// count (number of words you want returned and position)
count_words: function (){
var sentence = this.sentence;
// split sentence to words
var words = sentence.split(' ');
// create object of words and counts
var words_counts = {};
View paragraphs
Scientific American is the world's leading source and
authority for science and technology information for
science-interested citizens, delivering understandable,
credible and provocative content to an audience of more
than 5 million people worldwide.