Skip to content

Instantly share code, notes, and snippets.


Anil Kulkarni intentionally-left-nil

View GitHub Profile

Building a Secure Arch Linux Device

Locking down a linux machine is getting easier by the day. Recent advancements in systemd-boot have enabled a host of features to help users ensure that their machines have not been tampered with. This guide provides a walkthrough of how to turn on many of these features during installation, as well as reasoning for why certain features help improve security.

The steps laid out below draw on a wide variety of existing resources, and in places I'll point to them rather than attempt to regurgitate full explanations of the various security components. The most significant one, which I highly encourage everyone to read, is Rod Smith's site about secure boot, which is the most comprehensive and cogent explanation of UEFI, boot managers and boot loaders, and secure boot. Another incredibly useful resources is Safeboot, which encapsulates many of the setup steps below in a Debian application.

intentionally-left-nil /
Last active Jan 6, 2021
Takes the current vote counts per-county and extrapolates them to 100%
import urllib.request
import json
headers = {'Referrer': '', 'Accept': 'application/json',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0'}
url = ''
request = urllib.request.Request(url, headers=headers)
response = json.load(urllib.request.urlopen(request))
for data in response['data']:
candidates = data['candidates']
intentionally-left-nil /
Last active Jul 27, 2022 — forked from flesueur/
Delete (very) old tweets obtained from a twitter archive
# Largely copied from
# However, Mathew's script cannot delete tweets older than something like a year (these tweets are not available from the twitter API)
# This script is a complement on first use, to delete old tweets. It uses your twitter archive to find tweets' ids to delete
# How to use it :
# - download and extract your twitter archive (tweet.js will contain all your tweets with dates and ids)
# - put this script in the extracted directory
# - complete the secrets to access twitter's API on your behalf and, possibly, modify days_to_keep
# - delete the few junk characters at the beginning of tweet.js, until the first '[' (it crashed my json parser)
# - review the script !!!! It has not been thoroughly tested, it may have some unexpected behaviors...
intentionally-left-nil /
Last active Feb 22, 2018 — forked from jasonblanchard/
Watching build mode on Create React App

Create React App does not provide watching build mode oficially (#1070).

This script provides watching build mode for an external tool such as Chrome Extensions or Firebase app. You can either build the dev bundle once with build:dev, or continually rebuild it with watch

How to Use

Create a React app.

Put the script into scripts/build.js.

import os
from slackclient import SlackClient
import requests
slack_token = os.environ["SLACK_API_TOKEN"]
sc = SlackClient(slack_token)
if not os.path.exists('files'):
channels = sc.api_call("channels.list")["channels"]
intentionally-left-nil /
Created Oct 27, 2017
Updating a cloudfront SSL certificate via boto
import boto3
import os
from copy import deepcopy
acm = boto3.client('acm')
cloudfront = boto3.client('cloudfront')
cert_arn = None
View Gemfile
group :test do
gem 'rspec-rails'
gem 'simplecov', require: false
gem 'rails-controller-testing'
gem 'shoulda-matchers'
gem 'faker'
gem 'capybara'
gem 'poltergeist'
gem 'factory_girl_rails'
intentionally-left-nil /
Last active Sep 26, 2017
Setting up eslint in atom
#! /bin/bash
npm install -g eslint eslint-config-react-app babel-eslint eslint-plugin-flowtype eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react
apm install linter linter-eslint
echo '{' > ~/.eslintrc
echo ' "extends": "react-app",' >> ~/.eslintrc
echo ' "env":' { >> ~/.eslintrc
echo ' "browser": true,' >> ~/.eslintrc
echo ' "jquery": true,' >> ~/.eslintrc
echo ' "jasmine": true' >> ~/.eslintrc
echo ' }' >> ~/.eslintrc
View first_initials.rb
def first_initials(names)
names.reduce({}) do |letters, name|
first_letter = name[0]
if letters[first_letter] == nil
letters[first_letter] = 1
letters[first_letter] += 1