Skip to content

Instantly share code, notes, and snippets.

View glejeune's full-sized avatar

Gregoire Lejeune glejeune

View GitHub Profile
@glejeune
glejeune / READLE.md
Created November 12, 2011 20:43
A (very) simple chat service using MQTT

Run

  1. Install and run an MQTT server (mosquitto is a good choise)

  2. Install mqtt and ncurses-ruby gems

    sudo gem install ruby-mqtt ncurses-ruby

  3. Run the client

ruby ./mqtt-chat.rb

@glejeune
glejeune / Test.java
Created November 22, 2011 19:33
Find a (UNIX) process in Java
import java.lang.Process;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Test {
static public class OsProcess {

Show me the code

[[7,"Qix"],[5,"Bar"],[3,"Foo"]].inject(_.to_s){|r,d|i,k=d;r[/^/]=(_%i==0)?k:"";r.gsub!(/#{i}/,k);(r[/\D/].nil?)?r:r.tr("0124689","")}

This is Ruby \o/

No! Wait, this one is better :

((f={3=>:Foo,5=>:Bar,7=>:Qix}).sort.collect{|i,j|_%i==0?j:""}+_.to_s.split(//).collect{|c|f[c.to_i]||""}).join.sub(/^$/,_.to_s) #foobarqix
(setq *fbq* (make-hash-table))
(setf (gethash 3 *fbq*) "Foo")
(setf (gethash 5 *fbq*) "Bar")
(setf (gethash 7 *fbq*) "Qix")
(defun foo (v) (
let ((div ""))
(maphash #'(lambda (key value)
(cond ((= (mod v key) 0)
(setf div (concatenate 'string value div))
@glejeune
glejeune / foobarqix.sh
Created November 25, 2011 11:52
Yet another FooBarQix solution
#!/bin/sh
_() {
[ $(expr $V % $1) == 0 ] && R=$(echo $R$2)
}
foobarqix() {
_ 3 "Foo";_ 5 "Bar";_ 7 "Qix"
R=$(echo $R$V | sed -e 's/3/Foo/g' | sed -e 's/5/Bar/g' | sed -e 's/7/Qix/g' | sed -e 's/[0-9]//g')
[ "Z$R" == "Z" ] && R=$V
}
@glejeune
glejeune / markdown_viewer.rb
Created December 9, 2011 14:18
A tiny Markdown Viewer with Ruby/Gtk
#!/usr/bin/env ruby
require 'tempfile'
require 'rubygems'
require 'gtkmozembed'
require 'markdown'
class MarkdownViewer < Gtk::Window
def initialize(file)
super
@glejeune
glejeune / id3editor.rb
Created December 16, 2011 21:20
My simple ID3v2 tag editor
#!/usr/bin/ruby
require 'rubygems'
require 'mp3info'
require 'readline'
TAGS = {
"AENC" => "Audio encryption",
"APIC" => "Attached picture",
"COMM" => "Comments",
@glejeune
glejeune / extractDMG.sh
Created January 5, 2012 19:12
Extract DMG on MacOSX
#!/bin/sh
usage() {
echo "$0 /path/to/image.dmg [/output/path]"
exit 0
}
DMG=$1
OUTPUT=$2
@glejeune
glejeune / gist:4131931
Created November 22, 2012 16:18
C/C++ useful macros
#define CONCATENATE(arg1, arg2) arg1##arg2
#define IN_NARG(...) IN_NARG_(__VA_ARGS__, IN_RSEQ_N())
#define IN_NARG_(...) IN_ARG_N(__VA_ARGS__)
#define IN_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, N, ...) N
#define IN_RSEQ_N() 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
#define IN_1(x, v, ...) ((v) == (x))
#define IN_2(x, v, ...) ((v) == (x)) || IN_1(x, __VA_ARGS__)
#define IN_3(x, v, ...) ((v) == (x)) || IN_2(x, __VA_ARGS__)
@glejeune
glejeune / xml_parser.sh
Last active October 10, 2023 09:45
A simple XML parser for sh, zsh, bash, ...
#!/bin/sh
# This script is a very naive XML parser for sh
# ...
# This fontion is called once for each file. It initialize the parser
#
# Type: private
# Parameters: