Skip to content

Instantly share code, notes, and snippets.

View garyharan's full-sized avatar

Gary Haran garyharan

View GitHub Profile
@garyharan
garyharan / first_user_in_faq_app.ex
Created December 2, 2016 04:08
How to get the first user in Ecto
Faq.Repo.get(Faq.User, 1)
@garyharan
garyharan / ELIXIR_PHOENIX_TOOLING.md
Last active December 23, 2016 13:39
Useful resources I found while learning Elixir
Repo.update_all(Question, set: [published_at: Ecto.DateTime.utc(:usec)])
@garyharan
garyharan / rails_helper.rb
Last active March 15, 2017 17:06
Speed up tests marginally
# ...
config.before(:suite) do
connection = ActiveRecord::Base.connection
query = connection.tables.map { |t| "ALTER TABLE #{t} SET UNLOGGED;" }.join("\n")
# one line for each foreign_key at the end of your schema.rb
ActiveRecord::Migration.remove_foreign_key "reports", "users"
connection.execute(query)
end
@garyharan
garyharan / threads_maximum.rb
Created September 27, 2018 17:25
Reaching maximum threads in ruby
loop { Thread.new { sleep } rescue puts "Borked at #{Thread.list.count} threads." }
@garyharan
garyharan / maximum_processes.ex
Created September 27, 2018 17:51
How to calculate maximum number of processes in Elixir
0..1_000_000
|> Enum.each(fn(_n) ->
IO.puts "Creating process: #{Process.list |> Enum.count}"
spawn(fn -> Process.sleep(:infinity)
end)
end)
@garyharan
garyharan / uncommit_and_stash.sh
Created February 7, 2019 16:02
How to stash your unpushed commits
$ git status
5 commits pending
$ git reset --soft HEAD~5 # where 5 is the number of commits you saw in the `git status`
$ git stash
@garyharan
garyharan / split_pushed_commits.sh
Created February 24, 2020 17:52
Workflow for splitting commits already pushed
# initiate the change with an interactive rebase from the point you want
git rebase -i SHA^
git reset HEAD^
# do this as many times as you need.
git add -p
git commit -v
# once all your changes are committed
git rebase --continue
@garyharan
garyharan / fix_mac_audio.sh
Created March 17, 2020 20:02
Restart all core audio when airpods do not work
# Instead of rebooting system
# If audio has half going through speakers and half going through headphones.
ps aux | grep 'coreaudio[d]' | awk '{print $2}' | xargs sudo kill
@garyharan
garyharan / experience.txt
Last active June 7, 2021 14:05
Experience and diversity have value
A friend of mine, approaching 50, works as a programmer in a medium sized consultancy. In a recent conversation he told me how he felt like he was feeling older now that they had hired many 20-somethings in his company. The younger developers, he said, would do things faster than he would and it started to look like he was just a slower developer than the more youthful new hires. He was wondering if his days were numbered.
He was resigning himself to the idea that he was experiencing some kind of decline of his faculties if he compared himself to the more youthful years of his career. However this wasn’t the only conversation I had about the work at his company. The conversation before that one had him put the finger on something crucial.
So I had a conversation with him about it and we connected the dots.
Me: What was the password story they tackled?
Him: A password reset.
Me: And what was wrong with how they implemented it.
Him: Well the user typed their email in and then if they click the “forgot passw