Skip to content

Instantly share code, notes, and snippets.

View yswallow's full-sized avatar

Sanagi yswallow

View GitHub Profile
@yswallow
yswallow / mobilizer.rb
Created June 1, 2015 15:30
htmlの本文のxpathを探すアルゴリズム(その2)
require 'nokogiri'
def mobilizer(page)
page = Nokogiri::HTML(page.to_s) if page.class == String
remove_tags = ['script', 'style', 'select', 'a']
remove_tags.each do |tag|
page.xpath('//' + tag).each { |n| n.remove }
end
path = identifier(page, '/html/body')
module Foo
def self.hoge
fuga
end
def fuga
'bar'
end
end

日本語入力システムの予測変換辞書を用いた文書圧縮

動機

  • 入力が楽→入力する文字数が少ない→入力した文字と変換キーを押した回数を記録すれば(文字列については)高効率に圧縮できるんじゃね?
  • 圧縮したあとの文字列も日本語風になるからそれを既存の圧縮方式でさらに圧縮することも可能(?)

実装

  • 入力文字は半角カナで、変換キー押下回数はそのまま数字で。英数字や珍しい漢字、特異な顔文字は制御文字に挟んで平文で。

Google IMEがクローズドソースだった場合

@yswallow
yswallow / unsortable-sort.rb
Created July 13, 2015 04:32
Rubyで可逆ソート
class Array
protected
attr_accessor :matrix
public
def sort_with_matrix
item_with_index = self.map.with_index { |item,i| [item,i] }
item_with_index.sort_by! { |item,i| item }
new_array = []
matrix = []
@yswallow
yswallow / mishuna.rb
Created July 14, 2015 08:23
ミシュナ分配
module Mishuna
def self.mishuna(_isan, ary)
isan = _isan
size = ary.size
half_min = ary.min / 2
sum = ary.inject(&:+)
if isan <= half_min * size
return [ isan/size ]*size
elsif isan <= sum - half_min * size
new_ary = []
@yswallow
yswallow / tweet-html.rb
Last active August 29, 2015 14:25
Twitter gemのTweetにto_htmlメソッドを足す
class Twitter::Tweet
def status_html
tweet = self.full_text.dup
urls = []
self.urls.each do |url_obj|
urls << { indices: url_obj.indices,
display_url: url_obj.display_url,
url: url_obj.expanded_url }
end
@yswallow
yswallow / install-ownapp-on-SH07E.md
Last active August 29, 2015 14:25
開発したアプリをSH-07Eで動かす手順

AQUOS PHONE si SH-07E に開発したアプリをインストールする

  1. 端末情報>ビルド番号 を連打
  2. 何かが表示される
  3. 設定に 開発者向けオプション が表示されるから ON にする
  4. 開発者向けオプション>USBデバッグを ON にする
  5. 楽しい!
@yswallow
yswallow / hirasuna-ccr-holiday.md
Last active May 3, 2018 09:16
平砂学生宿舎前停留所の時刻表

休日 つくばセンター方面

| hour | 土浦 | 循環 | |:--:|:--:|:--:|:--:| | 5 | | | | 6 | | 42 | | 7 | 00,20,55 | 22 | | 8 | 15,30,50 | 02,43 | | 9 | 05,20,35,55 | 23 | | 10 | 15,35,55 | 03,43 |

@yswallow
yswallow / 02ifup
Created December 6, 2015 15:09
NetworkManagerでネットワーク接続時に認証する
#! /bin/sh
# in /etc/NetworkManager/dispatcher.d
ruby2.0 /home/user/ruby/PATH/utlan-auth.rb > /tmp/nw-utlan-login
@yswallow
yswallow / calc.rb
Last active December 7, 2015 03:28
経済学入門IIで出題された問題(3x4行列4x5個それぞれから和が10になる組み合わせを探す)をRubyで解く
str = File.read("./data.csv")
sets = str.gsub(".","").each_line.map { |s| s.split(" ").map(&:to_i).sort }
#sets.each { |s| p s }
sets.each_with_index do |set,i|
puts "set#{i}"
while i = set.pop
while j = set.shift
if i+j >= 1000