Skip to content

Instantly share code, notes, and snippets.

-- обновляем все записи, которые уже есть в таблице
UPDATE existing_table ex
SET field1 = ex.field1 + up.field1,
field2 = up.field2,
FROM updates up
WHERE ex.pkey_field1 = up.pkey_field1 AND ex.pkey_field2 = up.pkey_field2 …;
@ykrkn
ykrkn / gist:a067b6e11c2c5c299200
Last active August 29, 2015 14:07
ubuntu playing midi sf2
sudo apt-get install fluidsynth fluid-soundfont-gm fluid-soundfont-gs lame
git clone https://github.com/beschulz/wav2png
gst-launch-1.0 filesrc location=222.mid ! midiparse ! fluiddec ! pulsesink
gst-launch-1.0 filesrc location=222.mid ! midiparse ! fluiddec ! audioconvert ! audio/x-raw,channels=1 ! lamemp3enc ! filesink location=222.mp3
gst-launch-1.0 filesrc location=222.mid ! midiparse ! fluiddec ! audioconvert ! audio/x-raw,channels=1,format=S16LE ! wavenc ! filesink location=222.wav
fluiddec synth-chorus=false synth-reverb=false synth-gain=1
audioconvert ! rgvolume pre-amp=6.0 headroom=10.0 ! rglimiter ! audioconvert
fluidsynth -C0 -R0 -O s16 -F 222.wav /usr/share/sounds/sf2/FluidR3_GM.sf2 222.mid
@ykrkn
ykrkn / gist:060d0bf68391be57cdb4
Created September 3, 2014 12:17
Batch rename using sed regex
for i in *.gz; do j=`echo $i | sed 's/^calls\.log\.\([[:digit:]]\{8\}\)\.gz$/\1\.be1\.gz/g'`; mv "$i" "$j"; done
@ykrkn
ykrkn / show jars with contents
Created November 14, 2013 14:25
Gradle task for show jars with its contents.
task listJars << {
configurations.compile.each { File file ->
println file.name
def files = zipTree(file)
files.each { File file2 ->
println file2.path + file2.name
}
}
}
@ykrkn
ykrkn / gist:7155172
Created October 25, 2013 14:03
Gradle skeleton
apply plugin: 'application'
apply plugin: 'maven'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
runtime fileTree(dir: 'libs', include: '*.jar')
curl -v --digest -u "79215738505:xxxxx" https://im.megafon.ru/services/resource-lists/users/[email protected]/generallist.xml
// run top -p<PID> -b -d 1.0 > tmpfile
// code for prepare below
var fs = require('fs');
var FILESRC;
var PID;
var SEPARATOR=",";
process.argv.forEach(function(val, index, array) {
@ykrkn
ykrkn / gist:6353117
Created August 27, 2013 12:53
nginx CORS configuration
location /api {
proxy_pass http://localhost:8080/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Origin *;
if ($request_method = OPTIONS ) {
add_header Allow 'POST, GET, PUT, DELETE, OPTIONS';
add_header Access-Control-Allow-Origin *;
void runMidi() throws MidiUnavailableException, InvalidMidiDataException, InterruptedException{
MidiDevice.Info[] mdi = MidiSystem.getMidiDeviceInfo();
MidiDevice out = null;
for(MidiDevice.Info info : mdi){
System.out.println(info);
if("Microsoft GS Wavetable Synth".equals(info.getName())){
out = MidiSystem.getMidiDevice(info);
}
}
utf8string = unicodestring.encode('UTF-8')
and back again
unicodestring = unicode(utf8string, 'UTF-8')