私が歌川です

@utgwkk が書いている

技術

やり直しのきく人生を認識するために、「今のなし」で直前のツイートを削除するスクリプトを書いた

今のなし、で前の発言が消える仕組みを作ろうね— 私が歌川です (@utgwkk) 2015, 10月 29 コード "(いま|今)のなしで?" で前のツイートを削除できるぞ!!!!! あとがき 人は間違う。間違うからこそ人だ。 人生は、やり直しがきく。やり直しがきくからこそ…

Linux Mint で存在しないコマンドを叩いた時の処理がバグっていたので、何とか修復した

症状 Linux Mint の bash で存在しないコマンドを叩いたら、次のような Python のエラーが出る。 Traceback (most recent call last): File "/usr/lib/command-not-found", line 27, in <module> from CommandNotFound.util import crash_guard ImportError: No modu</module>…

Linux Mint 17.2 に rbenv を導入するメモ

インストールしたての Linux Mint 17.2 に rbenv を導入しようとして、微妙に詰まったのでメモ。 # g++をインストール sudo apt-get install g++ # これも必要ぽい sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev この後に rbenv install […

画像付きツイートをふぁぼったらSlackチャンネルに流すスクリプトを書いた

こんにちは 歌川です。 今日のテーマ発表 今日のテーマは「SlackのAPIをフル活用して生活をより良いものにしよう」です。たった今決めました。 Slack みなさん、突然ですか、Slackを使っていますか。 ぼくが所属する京大マイコンクラブ(以下KMC)は、Slackを…

venvに導入した最新のPython3.5.0からMeCab使いたいよね!!!!

っていうQiita記事を書こうとしたんですけど……。 qiita.com ほとんどこの記事の通りでできてしまったので特に書くことがない……。 注意点 pythonコマンドからsetup.py installを実行すると、pyenv globalのものにインストールされてくれない。 env pythonから…

Pietの処理系をGolangで書いた

github.com はじめに 2日ほど生活リズムを崩すことで、Goで書かれたPietの処理系が一応できあがりました。 きっかけ utgwkk.hateblo.jp Pietとは David Morgan-Mar氏によって設計された難解プログラミング言語 画像がソースコード 数値は色の面積で表現され…

進捗

@utgwkk じゃあpietのクエリ投げたら処理してくれるGAEでも作ってください— wass (@wass80) September 7, 2015 @wass80 ok— 私が歌川です (@utgwkk) September 7, 2015 Pietの処理系をGoで書いています。 できたこと 画像の読み込み 色情報の読み込み できて…

Python3.4.3でMeCabの導入に成功したので、入力文字列が575かどうか判定するスクリプトを書いた

qiita.com 後述するサイトの情報を参考にしたら、割とすんなり動きました。 ただ、やや動作に難があったり、エンコード沼にはまりそうになったりして、工夫してコードを書かないといけなかったので、大変でした。 MeCab.Tagger.parseToNode(str) が正常に動…

進捗

Project Euler で Level1 を25問解くことができた。めでたい。 Problem 69 106以下の自然数nについて、を最大化するnを出力せよ、という問題。 愚直にを計算していくと、めちゃくちゃな時間がかかってしんどい。 ぐらい。

TABLEタグをTSVに変換するやつを作った

Convert <TABLE> to TSV. 検索してみて、TSV→TABLE はたくさん出てきたけど、逆はあまり出てこないなあ、と思ったので、サクッと書いた。 html.parser.HTMLParserでいい感じに書けるぽい。 後はこれをシュッとメソッド化してやれば、汎用になりそう。</table>

ペイントとPythonで名刺を作った

用意するもの Python 3.x(2.xはダメ) Python Imaging Library (Pillow) 名刺にしたい画像 Python Imaging Libraryは、コンソールで、 sudo pip install Pillow を叩けばインストールされます。 手順 名刺にしたい画像を作る 私はペイントで作りました。 おも…

Ubuntuで、起動時にマウスを接続してたらタッチパッドを無効化したい

はじめに ノートパソコンの悩みの種になりうるタッチパッドくん。 キー入力中にタッチパッドに触れて、あらぬ方向をクリックしてたら、もう怒りをどこにぶつけてよいか分からなくなりますよね。 で、Touchpad-Indicatorなるソフトがあるらしいんですが、最新…

参考URLを貼るときに使うBookmarklet

このリンク先をお気に入り登録 [ページタイトル] [URL] ([yyyy/m/d]閲覧) というフォーマットのテキストを得られます。多分。

5/5 なので GAE/Go で Twitter bot を作り直した

GAE/Go で Twitter bot を作ってGWを溶かした話です。

Pythonと文字コードの話

問題のコード # coding: utf-8 lines = [] ''' sample.txt ファイルの文字コードは UTF-8 ''' with open('sample.txt', 'rt') as f: for text in f.readlines(): text = text.rstrip() lines.append(text.split(' ', 1)) import csv with open('output.csv',…

PyTouhou を試してみた

PyTouhou とは Libre reimplementation of the Touhou 6 engine in Python つまり、「自由な東方紅魔郷の実行環境を!」みたいな感じです。 OpenGL や SDL 等によって「自由」な実行環境を実現しています。 入手方法 バイナリ・ソース共にこちら(PyTouhou の…

ASUS X555L の HDD を SSD に換えたメモ

換えました。 ただし写真を撮っていないのと、他のページに書いてある手順でできることと、換装前のデータを取っていないことから、ここではメモ程度にとどめます。 ASUS X555L って何ですか ノートパソコンです。こういうやつです。 安くて Core i5 が内蔵…

口分田の面積などを計算するやつを作った

さいきんブログを更新する時間がないので少しだけ 口分田・租税・庸税計算機 正丁、次丁などの人数を入れてボタンを押すだけの簡単仕様です。 奈良時代の国司の気分を味わってみよう!

Python で一時ファイルを扱う

tempfile を import すればよい コード例 SQLite のテーブル上のデータを HTML テーブルに整形して、ブラウザで表示します。 gist11319825 ポイント tuple tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]]) 最も安全に一時ファイル…

Pythonで、フォルダ内の重複する画像を自動的に削除する方法

ハッシュ値を比較しよう 指針 ファイルのハッシュ値を取得する もう一方のファイルと比較する 同一であれば一方を削除する ソースコード 利点 標準ライブラリのみで書けるし動かせる アルゴリズムが簡素である 約14500ファイルのMD5を取得するのに326sec (44…

Python でライフゲームをつくった

以前、このような記事を書きました。 今日はね、これをね、Pythonでちょちょっと書きなおしてみたんですよ。 A Lifegame for Python (requires Pygame) Pygame を導入してこれを実行してやればオッケーです。 ん? なんで cells_swp = cells じゃないんだろ…

エジプト式分数を生成するスクリプト

エジプト式分数とは? エジプト式分数(エジプトしきぶんすう、単にエジプト分数とも、英: Egyptian fraction)とは、いくつかの異なる単位分数(分子が 1 の分数)の和、あるいは分数をそのように表す方式を意味する。例えば、通常 5/6 で表す分数を 1/2 + …

ウラムの螺旋を作るスクリプト

数学ガールの秘密ノート/整数で遊ぼう 作者: 結城浩 出版社/メーカー: SBクリエイティブ 発売日: 2013/12/19 メディア: 単行本 この商品を含むブログ (9件) を見る 先日、「数学ガールの秘密ノート/整数で遊ぼう」を購入、読了しました。 素数やら数学的帰…

m3u 形式のプレイリストを自動作成

iTunesのライブラリに取り込んでいるm4a形式のファイルを、Media Player Classicでまとめて再生したい。 いちいちディレクトリを開くのは面倒。ワンクリックで再生できるようにプレイリストを作ろうじゃないですか。m3u形式なら、ファイルパスを羅列するだけ…

GitHub Pages メモ

$ git clone git@github.com:username/username.github.io $ vim <filename> $ git commit -a -m "Message" $ git push</filename>

update_name for Python

update_name するやつを Python で書きました。 @[screen_name] update_name [newname] というリプライを送ってやるだけで名前を変更できます。 gist8876833

エラトステネスの篩

エラトステネスの篩(エラトステネスのふるい)は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がある。 (エラトステネスの篩 - Wikipedia より引用) im…

Kuin でライフゲームをつくった

Kuin でライフゲームを作りました。やったぜ。ダウンロードこんな感じでウネウネうごきます。

if文のないFizzbuzz

メモリーさんマジ勘弁 for i in range(1,101): print [0,'Fizz','Buzz','FizzBuzz'][(i%3<1)+2*(i%5<1)] or i 条件分岐ありません。三項演算子もありません。あるのはfor文と配列とビット演算だけです。 仕組みは察してください。A or Bは、Aが偽だったらBを…

tweets.csv で黒歴史を削除しよう!

tweets.csv を基にNGワードを含む過去ツイート(RT)を削除してすっきりトゥイッターライフ ... これはなに tweets.csv を用いて、過去のツイートからNGワードを含むものを削除するスクリプトです。 Python 2.7 と tweepy を必要とします。各自導入してくださ…

TwitterのユーザーページからFavstarとaclogに飛ぶBookmarklet

Bookmarkletなんて時代遅れでしょ 使い方 右のリンクをお気に入りに登録します Favstar aclog Twitterのユーザーページで使います Favstar(aclog)に行けます BANは知らない

Linux で東方輝針城をプレイしてみた

Wineをインストール 東方輝針城をインストール 起動 これだけでOKでした。かなり軽快に動きます。 ただ、弾密度が高くなるよ若干カクつく気がします。 おそらくWindowsのときよりも要求するスペックが高いからかと思われます。 なので、ハイスペックなパソコ…

誕生月ランキングジェネレーター

http://utgw.gozaru.jp/monthranking.htm頭がゆるふわな人が好きな誕生月ランキングとやらを簡単に作れます。 RT稼ぎのお供にどうぞ!

Image to Square - 画像をドット絵HTML風に変換

Python Image Library (PIL) を使って画像をHTMLで表そう+α - Evening Twilightこの記事で生成したものと同じものが作れます。要はこれが作れるということです。↓こちらです。Image to Squareここだけの話、GoogleAppEngine だと PIL そのものが使えるわけ…

Python Image Library (PIL) を使って画像をHTMLで表そう+α

はじめに うたがわきき です。 Pythonで、コマンドラインの暗くて狭い世界を抜けだそうキャンペーン(そんなものはない)の一環として、今回は画像処理をしてみようと思います。まずはこの画像を用意します。赤蛮奇です。誰が何と言おうと赤蛮奇です。 この画…

見ているページをTwitterで共有するブックマークレット

使い方 このリンクをお気に入りに追加します( ◠‿◠ ) 共有したいページで↑を開きます(´・‿・`) つぶやきます( ◜‸‾) 楽しい!!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

GoogleAppEngine で リダイレクト

GoogleAppEngine でこういうコードを書いた。(実際はもっといろんなことを書いている) # coding: utf-8 print "Location: http://cranalyzer.appspot.com/do" print で、実行してみる。 ……あれ? リダイレクトされないぞ。ナンテコッタイ<(^o^)>調べてみた…

ぼくのかんがえた最短のFizzBuzz

何も意識せずに書いたコード 1.upto(100) do |i| if i % 15 == 0 then puts 'FizzBuzz' elsif i % 5 == 0 then puts 'Buzz' elsif i % 3 == 0 then puts 'Fizz' else puts i end end 何の変哲もないコードだ。178バイト。(インデントは半角スペース2つ) これ…

FizzBuzz をする Mery マクロ

max = window.prompt("どこまで?","100"); for(i=1;i<=max;i++){ if(i%15==0){ document.selection.Text = "FizzBuzz"; }else if(i%5==0){ document.selection.Text = "Buzz"; }else if(i%3==0){ document.selection.Text = "Fizz"; }else{ document.select…

たけやぶやけたー(回文探しの旅に出よう)

// =0;i--){ res += bo[i]; } document.rumia.res.value = res; } // ]]>

Ruby で並べ替え問題じゃないときの樹形図(すべての事象)を書き出す

まずはじめに 「Ruby 樹形図」でググっても、アルファベットを並べ替えるというのしか出てこないワケです。 ちゃうねん! ぼくが求めているのは、そっちの樹形図じゃない。 たとえば、コインを4つ投げたときの表裏の出方の全ての場合を書き出したい、という…

鏡ったー

//

RubyでCookieを扱う(CGI::Cookieは使いづらいねって話)

RubyでCookieを扱いたくてググってたが、いかんせんCGI::Cookieは使いづらい。 初心者には敷居が高い、というかどうやって動かすんだこれ……で、やっぱり、Cookieをセットするには、HTTPヘッダーに、 Set-cookie: rumia=love; expires=Sun, 14-Jul-2013 20:00…

藤原竜也ったー(文字列に濁点を添える快適な阿鼻叫喚ライフをあなたに)

// 使い方 上゛の゛テ゛キ゛ス゛ト゛ボ゛ッ゛ク゛ス゛に゛文゛字゛を゛入゛力゛し゛て゛「藤゛原゛竜゛也゛」を゛押゛し゛た゛ら゛下゛の゛テ゛キ゛ス゛ト゛エ゛リ゛ア゛に゛結゛果゛が゛出゛ま゛す゛!!!! 次の文字に゛を付けない ! ? ・‥… () 「」 …

Ruby忘録 ディレクトリ(フォルダ)を扱う

ファイルを開くときはFile.openと習った。しかし、一つのフォルダの中のファイルを一つずつ開きたいときはどうするの?( ◠‿◠ )☛そんな時にDir.openが便利なんですよ dir = Dir.open("rumia") と記述することで、rumiaというフォルダを開くことができるのだ。…

RubyでCSVを扱うときの基礎の基礎

CSVファイルは、一言で言えばカンマ区切りの形式を持つファイルである。Excelなどの表計算ソフトで開いたり、編集したりできるが、分かりやすい構造なので、普通のテキストエディタでも編集できる。ログを記録するのにも便利。 RubyにはCSVファイルを扱うた…

Ruby忘録 upto文、downto文、times文

いがいと忘れられがち三兄弟。upto文は、見た目通り、aがbになるまでインクリメントしながら繰り返す。downto文は、見た目通り、aがbになるまでデクリメント繰り返す。times文は、見た目通り、n回繰り返す。説明が適当になった。ソース見たほうが早いね。 #!…

Ruby忘録 each文

eachとは「それぞれ、めいめい」のことである。注意すべきはeachは単数であるということである。つまり、Each person does well. のように、現在形はいわゆる三単現を使わなければならない。どうでもいいね。eachは配列やハッシュと共に使うことが多い。Perl…

Ruby忘録 while文

おなじみのwhile文。前回の記事からだいぶ経っているようだが気にしない。所詮備忘録。 #! ruby i = 1 while i <= 10 do # ここに書いてある処理を実行 i += 1 # iをインクリメント(1増やす) end 前回の記事とやってる事は全く同じ。ただ、何が違うかという…

ファイルの内容を1行ずつ読み込んで出力

Perlの場合 #! perl our $fname = "ルーミアちゃんはとてもかわいい.txt"; open(IN,$fname) or die "そのようなファイルは開けない"; while(<IN>){ print; } Rubyの場合 #! ruby fname = "ルーミアちゃんはとてもかわいい.txt" File.open(fname,"r").each do |bo</in>…