Skip to content

Instantly share code, notes, and snippets.

Avatar

Emad Elsaid emad-elsaid

View GitHub Profile
@emad-elsaid
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 (
"fmt"
"log"
"reflect"
"github.com/gotk3/gotk3/gtk"
)
@emad-elsaid
emad-elsaid / explain.rb
Created Dec 10, 2020
rails_explain_sql_initializer
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)
end
private
@emad-elsaid
emad-elsaid / web-history.sh
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
View web-history.sh
#!/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 'https://rubygems.org'
gem 'gtk3'
end
@emad-elsaid
emad-elsaid / index.html
Created Jul 15, 2020
WebRTC Chat server using simple-peer and Inbox server
View index.html
<html>
<body>
<form id="userform">
<label>Username</label>
<input id="username" type="text">
<label>Password</label>
<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>
View foreground-process.ps
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Tricks {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
}
"@
while($TRUE)
View README.md

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
end
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 = TTY::Prompt.new
user_name = prompt.ask("What is name of the user or organisation?")
@emad-elsaid
emad-elsaid / README.md
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
View README.md

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:

images/screenshot.png
digitalcraftsman: Updated screenshots -- 3 years, 11 months ago