Skip to content

Instantly share code, notes, and snippets.

View joystick's full-sized avatar
🧨

Alexei Kozhushkov joystick

🧨
View GitHub Profile
@vanbwodonk
vanbwodonk / read-stm32-firmware.md
Last active October 8, 2025 21:09
Read stm32 firmware binary with openOCD

read-stm32-firmware

OpenOCD scripts for read STM32 firmware binary

Requirements

Linux

OpenOCD (Open On-Chip Debugger) is open-source software that interfaces with a hardware debugger's JTAG port. OpenOCD provides debugging and in-system programming for embedded target devices. OpenOCD provides the ability to flash NAND and NOR FLASH memory devices that are attached to the processor on the target system. Flash programming is supported for external CFI compatible flashes (Intel and AMD/Spansion command set) and several internal flashes (LPC2000, AT91SAM7, STR7x, STR9x, LM3 and STM32x).

OpenOCD was originally developed by Dominic Rath at the University of Applied Sciences Augsburg. The OpenOCD source code is now available through the GNU General Public License (GPL).

# QEmu
brew install qemu
# Home for out tests
mkdir ~/arm-emu
cd ~/arm-emu
# Download initrd and kernel
wget http://ftp.de.debian.org/debian/dists/jessie/main/installer-armel/current/images/versatile/netboot/initrd.gz
@joeladdison
joeladdison / youtube-test.sh
Created January 16, 2017 08:40
Test stream for YouTube Live
#!/bin/sh
YT_SERVER="rtmp://a.rtmp.youtube.com/live2"
# Needs AUTH, which is the "Stream Name" from Ingestion Settings > Main Camera
# apt-get install --assume-yes gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools
# https://bugzilla.gnome.org/show_bug.cgi?id=731352#c6
@voxlet
voxlet / rx_meteor.js
Created October 22, 2015 09:55
Rx Observable from Meteor reactive source
import Rx from 'rx';
function fromTrackerSource(source) {
return fromAutorun(function(observer) {
try {
observer.onNext(source());
} catch (e) {
observer.onError(e);
}
});
http {
proxy_cache_path /tmp/nginx/cache
levels=1:2
keys_zone=main:10m
max_size=1g inactive=1d;
proxy_temp_path /tmp/nginx/tmp;
server {
listen 80;
server_name app.example.com;
@staltz
staltz / introrx.md
Last active November 27, 2025 14:07
The introduction to Reactive Programming you've been missing
@joedevivo
joedevivo / gist:7305410
Created November 4, 2013 16:42
Mapping of riak configuration values from app.config to riak.conf current as of November 4, 2013
app.config field riak.conf variable
-------------------------------------------------------------------------------------------
yokozuna.enabled yokozuna
yokozuna.solr_port yokozuna.solr_port
yokozuna.solr_jmx_port yokozuna.solr_jmx_port
yokozuna.solr_jvm_args yokozuna.solr_jvm_args
yokozuna.yz_dir yokozuna.data_dir
riak_repl.data_root mdc.data_root
riak_core.cluster_mgr mdc.cluster_manager
riak_repl.max_fssource_cluster mdc.max_fssource_cluster
@taddev
taddev / nginx.conf
Last active February 20, 2025 07:39
Nginx reverse proxy to Exchange 2010/2013
server {
listen 80;
#listen [::]:80;
server_name mail.gwtest.us autodiscover.gwtest.us;
return 301 https://$host$request_uri;
}
server {
listen 443;
#listen [::]:443 ipv6only=on;
@bryancusatis
bryancusatis / mongoid-no-rails.rb
Created September 17, 2012 15:17 — forked from adamzaninovich/mongoid-no-rails.rb
Using Mongoid without Rails
require 'mongoid'
Mongoid::Config.instance.from_hash({"database" => "oid"})
class Tweeter
include Mongoid::Document
field :user
embeds_many :tweets
end
@errzey
errzey / llist_db_move.py
Created September 23, 2011 17:20
An interesting technique for creating a linked list like structure using SQL with minimal overhead.

I wrote this a long time ago as a proof-of-concept for a vaporware project. Recently I have had the need to something which seems easy at a high-level standpoint, but is actually quite hard to implement.

The original purpose for this concept was to easily maintain a strict order of data held within the rows, while still having the option to reorder the rows in an efficient manner (one table, no joins, no special embedded scripts etc).

A little insight into what I was doing: I once worked on a network security team for a tier-1 ISP. A coworker and myself had already written some really nice code to deal with the thousands (yes, thousands) of firewalls we dealt with on a daily basis. We created an API which generated abstracted structures of firewall configurations; by abstracting I mean creating a singular data-structure which represented rules, and rule-sets (a nice side-effect of this method was we could morph one firewall syntax structure to another. E.g., juniper filters -> netscreen rules. Needless to s