Skip to content

Instantly share code, notes, and snippets.


Emad Elsaid emad-elsaid

View GitHub Profile
emad-elsaid / gtk.go
Created Mar 4, 2021
this will load a UI/glade file using GTK builder and will bind objects from the UI to a go struct using the struct field tag as an ID
View gtk.go
package main
import (
emad-elsaid / explain.rb
Created Dec 10, 2020
View explain.rb
class Explainer < ActiveSupport::LogSubscriber
def sql(event)
payload = event.payload
return if ignore_payload?(payload)
debug color(ActiveRecord::Base.connection.explain(payload[:sql], payload[:binds]), :yellow)
emad-elsaid /
Last active Oct 12, 2020
This will read your google chrome local history database and offer you fuzzy search with dmenu to open one of them
#!/usr/bin/env bash
cp ~/.config/google-chrome/Default/History /tmp/History
sqlite3 /tmp/History "select url, title from urls;" \
| dmenu -i -l 20 -fn "Source Code Pro:regular:size=16" \
| awk 'BEGIN { FS = "|" } ; { print $1 }' \
| xargs xdg-open
View import-image-to-directory
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'bundler/inline'
require 'fileutils'
gemfile do
source ''
gem 'gtk3'
emad-elsaid / index.html
Created Jul 15, 2020
WebRTC Chat server using simple-peer and Inbox server
View index.html
<form id="userform">
<input id="username" type="text">
<input id="password" type="password">
<label>Other peer Username (only if your the initiator)</label>
<input id="to" type="text">
<button onclick="CreateUser()" type="button">Create</button>
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Tricks {
public static extern IntPtr GetForegroundWindow();

the bash_profile snippet will let you run the first file when you press tab when you have empty command , you need to put the cmd file in your path and make it executable with chmod +x cmd

View thread_pool.rb
class ThreadPool
def self.execute(objects:, method:, pool: 5)
new(objects: objects, method: method, pool: pool).execute
def initialize(objects:, method:, pool:)
@objects = objects
@method = method
@pool = pool
@queue = queue
View clone-github-user.rb
#!/usr/bin/env ruby
require 'tty-prompt'
require 'open-uri'
require 'json'
require 'colorize'
require 'colorized_string'
prompt =
user_name = prompt.ask("What is name of the user or organisation?")
emad-elsaid /
Created Jun 3, 2019
accepts a file or stream of file paths and it'll return every file with the last commit message and time under every path, and example down below

this script will read every line (file path) passed to it, then shows the last commit message and time (human readable period), you can use it to see who added png images and when to your project for example:

git ls-files | grep png | git-last-commit

you can get some results similar to the following:

digitalcraftsman: Updated screenshots -- 3 years, 11 months ago