Skip to content

Instantly share code, notes, and snippets.

@syusui-s
syusui-s / mikutter_renko_chan.rb
Last active December 17, 2015 23:29
連呼ちゃん。mikutterプラグインです。TLから拾った「らこらこらこ〜w」などの連呼を抽出して、それっぽい連呼を生成して、確率的につぶやきます。
#-*- encoding: utf-8 -*-
Plugin.create(:renko_chan) do
def find_repeat(str)
t=String.new()
for i in 1..(str.size)
if str.index(t+str[i-1],i) then
t+=str[i-1]
end
end
@syusui-s
syusui-s / penbuild.sh
Last active December 17, 2015 23:29
[aki017/OpenRitsPen]( https://github.com/aki017/OpenRitsPen )をビルドするためのシェルスクリプト。ライセンスはパブリックドメイン。
#!/bin/bash
if hash git 2>/dev/null;then
git clone https://github.com/aki017/OpenRitsPen &&
cd OpenRitsPen
elif hash wget 2>/dev/null;then
wget https://github.com/aki017/OpenRitsPen/archive/master.zip --no-check-certificate &&
unzip master &&
cd OpenRitsPen-master
else
echo "error: git or wget is not installed in your computer. Aborting."
@syusui-s
syusui-s / mikutter_favme.rb
Last active December 22, 2015 05:18
Alt+Xして、コピペして、Ctrl+Enterしよう
Plugin.create(:target_fav) do
on_update do |svc, rawmsgs|
msgs = Plugin.filtering(:show_filter, rawmsgs.select{|m| m.user.idname == 'syusui_s' and m.favoritable? and m[:created] > DEFINED_TIME}).first
if not msgs.empty? then msgs.each{|m| m.favorite(true);} end end end
@syusui-s
syusui-s / mp3_random_play.sh
Last active December 22, 2015 21:59
汚いけど上げておく
#!/bin/bash
NOWDIR=$PWD
cd ./ # target directory
if ls | grep .mp3 &> /dev/null ;then
SONGRAND=$(expr $RANDOM % $(ls -1 *.mp3 | wc -l) + 1)
mpg123 "$(ls -1 *.mp3 | awk 'NR=='$SONGRAND'{ print $0 }')"
else
exit 1
fi
@syusui-s
syusui-s / mikutter_battry_presenter.rb
Last active December 23, 2015 10:09
バッテリ残量で次の人ソートする奴
# -*- conding: utf-8 -*-
Plugin.create(:presenter_sort_battery) do
hash = {}
on_endpresen do |service|
if not hash.empty?
sorted = hash.sort
idname = sorted[0][0]
service.update(:message => "@#{idname.to_s} next is your turn")
@syusui-s
syusui-s / schedule_scraping.js
Created September 25, 2013 10:04
某大学のWebサイトから自分の時間割をスクレイピングするJavaScriptコード。時間割表示して、ブラウザのコンソールに打ち込むと、文字列が返ってきてくれるはず。ChromeとFirefoxで動作確認済み。
var schedule = new Array();
rows=document.getElementsByClassName("schedule_box")[0].rows;
for(var i=1;i<rows.length;i+=2){
cells=rows[i].cells;
var days=new Array();
for(var j=1;j<cells.length;j++){
days.push(cells[j].textContent.replace(/\s/g, ''));
}
schedule.push(days);
}
@syusui-s
syusui-s / mikutter_eject_huurin.rb
Created September 25, 2013 13:36
Eject風鈴のソースコード
# -*- coding: utf-8 -*-
Plugin.create(:eject_huurin) do
UserConfig[:eject_huurin_lock] ||= false
def optEject
if not UserConfig[:eject_huurin_lock] then
UserConfig[:eject_huurin_lock] = true
system("eject /dev/sr0;sleep 1;eject -t /dev/sr0")
UserConfig[:eject_huurin_lock] = false
@syusui-s
syusui-s / sleep_sort.rb
Last active December 24, 2015 01:19
授業も始まったし、早速
ary = [8,2,3,7,1,2,5,7,8,3,5,6]
result = []
threads = []
ary.each{|e|
threads.push Thread.new{
sleep e
result.push e
}
}
loop do
@syusui-s
syusui-s / bogo_sort.rb
Created September 27, 2013 01:27
やっぱりこのソートも実装しないとね。
ary = [9,2,4,5,1,2,4,5,1,8]
def is_sorted?(array)
arr = array.clone
fst = arr.pop
while not arr.empty? and fst >= (nxt=arr.pop)
fst = nxt
end
return (arr.empty? and fst >= nxt) ? true : false
end
search :: [Char] -> [Char] -> Bool
search [] _ = False
search _ [] = False
search a b
| str == b = True
| str /= b = search (tail a) b
where str = take (length b) a