2012-01-01から1年間の記事一覧

腐ったmakeを支える技術

まさか自分と同い年のMakefileと戦うことになるとは。— Tsushimaさん (@utisam) 12月 26, 2012 あんまり身に付けたくない力だけど付いてしまったものは仕方がない. これ以上C/C++のビルドごときで時間を取られたくないので文章化したい(パズルみたいでちょ…

BLAKE2をPythonから

Sourceforge.JP Magazine の記事 に BLAKE2 というものが載ってたので,ctypesの練習がてら書いてみた. Makefile: :::makefile CC=gcc CFLAGS=-shared -std=c99 -O3 -march=native -Wall -fPIC -fopenmp -I../sse -I/usr/include/python2.7 LIBS= #FILES=bl…

Pythonで補完できる使い勝手の良いCUIアプリを

自分で作ったCUIアプリで補完が欲しいと思ってたら それっぽいもの があった. ここ のSimpleCompleterを使えば良いのだけど, 単純なので良ければbisectを使うともうちょっとうまく書けると思う. :::python import readline import bisect def complete(c)…

OpenGLでマルチスレッド使うといろいろと詰む話

ウインドウ系のスレッドとビジネスロジックのスレッドを分けてglutPostRedisplay適当に呼んだらいいかなーとか思って作ってたら詰んだ. コールバック以下でないとglutPostRedisplayを呼べないらしい. glutGetModifiersも同様にコールバック以下でないとダ…

2進数の話

読んだ内容を確かめるときによくIPythonを使うんですが… :::python In [18]: format(-10, '08b') Out[18]: '-0001010' 違うんだ.期待した答えはそうじゃないんだ…… :::python In [19]: format(0x100 - 10, '08b') Out[19]: '11110110' ビット操作のアルゴリ…

負の数の割り算

Pythonで割り算に負の数を含めるとC/C++と違う挙動をする. :::sh $ python -c "print 4//(-3)" -2 $ gcc -xc - int main() { printf("%d\n", 4 / (-3)); } $ ./a.out -1 pythonは負の無限大方向に丸めてくれる. これは数学的に望ましいらしい(The History …

Pythonで競技プログラミング

ありがたいことにAOJもAtCoderもいろいろな言語に対応しています. 邪道な感じですが新しい発見があっておもしろいです. 入力 C/C++/Javaから始めるとraw_inputもinputも1行とってくるので一瞬つまります. raw_inputをsplitしましょう.カンマ区切りも柔軟…

waf + msvc + boost

boost::threadをwafでコンパイルしようとして頑張った。 Visual Studioでググった通りにコンパイル オプションを復元してコマンドでコンパイル wafで同じオプションになるようにwscript書く 最終的なwscriptは以下の通り #!/usr/bin/env python def configur…

C++でクラスを作るときに気を付けるべきこと

C++って,「このクラスこういう使い方していいの?」とか,「こう書いたらあれしたらマズイことになる」とか,「ほげほげなクラスはこう書かなくてはいけない」とか多すぎる気がするのでまとめてみる. 継承される可能性があるか デストラクタかvirtualかそ…

libxppを立ち上げました

github Windowsでもそれほどgitが不便ではないようです. DirectX10で作ろうと思っています. 11は対応するPCが無いので未定です. でもまぁ9, 10ほど違うわけではないので大丈夫かなとか思ってます. DirectX10以降は3Dはシェーダ必須なのがすごくだるいで…

ICPC夏合宿

ICPCの夏合宿に参加してきました. 昨年までは招待制でしたが,今年からは自由に参加することが出来ました. Day1の懇親会ではもう少し交流できたらよかったなぁと後悔しています. 懇親会では,まだ日本では未発売のNexus7触らせていただきました. 今持っ…

SSH先でメール出す

SSHで接続してそこからmailコマンド使うとき,mailコマンドは文字コードをよしなにしてくれないので,UTF-8で送ると文字化けしてしまう. nkfが入っていれば良いのですが,入ってなかったのでスクリプト書きました. #!/usr/bin/env python #-*- coding:utf-…

モバイル版Firefoxで崩れる

モバイル版firefoxだとデザイン崩れるけど、アプリのコメント見る限りズームおかしいのはこっちのせいでは無い気がする。— Tsushimaさん (@utisam) 9月 7, 2012 Media Queriesが効くようになったら多分大丈夫だと思う.

Markdownテスト

マークダウンで書けるようにしてみた markdown 突然のマークダウン!!! Markdown コード #!/usr/bin/python # Code goes here ... from django.db import models class Entry(models.Model): DRAFT, PUBLISHED = ('D', 'P') STATUS_CHOICES = ((DRAFT, 'dr…

ブログ移動しました

Bloggerも良かったのだけれど, 今のVPS,乗り換え時期に乗り換えれなかったので,そろそろ乗り換えたい.— Tsushimaさん (@utisam) 8月 25, 2012 ということで,いろいろとDjango+Sphinx+gitでまとめて見ました.

django-admin.pyの補完が古い

zsh

Ubuntu12.04のzshの補完関数にあるdjango-admin.pyでstartprojectが補完されない. というわけでパッチ

DjangoでAJAX

Ajaxを勉強しようの初めのサンプルをdjangoで動的に返せるようにしてみる. $ django-admin.py startproject ajax $ cd ajax $ chmod 775 manage.py $ gedit ajax/(urls.py|views.py) $ python manage.py runserver 単純にURL割り当ててviewsで返すだけ. 非…

twitter feat. gedit commander plugin

commanderプラグインを読んでたらtweepyと合わせて簡単に出来そうだったので作ってみた. pipからtweepyをインストール gedit-pluginsパッケージとかからCommanderプラグインを入れて設定から有効にします. $HOME/.config/gedit/commander/modules/ にお好…

geditをコンパイル

ふとgeditの最新版が欲しくなったのでgitから落としてきてコンパイルした. とくに新しいからといってめぼしい機能はないのだけれど,気分の問題. debian stable の時はいろいろとパッケージがなくて断念したんだけど,Ubuntuは充分揃ってていがいとすんな…

pygameでゲームのプロトタイプを

なんか急にコードどうでもよいプログラミングがしたくなったのでむかつくアイコンぶっ飛ばすゲーム作った. #!/usr/bin/env python #-*- coding:utf-8 -*- import pygame import pygame.locals from pygame.locals import Rect import random import math im…

Ubuntu12.04を試してみた

Ubuntu12.04を試してみた. ネットにつなぎながら普通にインストール. 11.04にしたときは残念だったUnityも結構不満なく使えるようになってきました. eclipseのスクロールーバーとかも大丈夫です. DropboxとSkypeはインジケーターの関係でCanonicalのpart…

不揃いなtupleをunpack

listの中のtupleの長さが揃ってないと,unpackするときに例外が出て不便. って思ったら下のように書けばよかった. for t in [(1, 2, 3), (4, 5)]: x, y = t[:2] print x + y

先頭一致で定まるならcd

zsh

TABを押すことすら面倒になった人向け. function prefixcd() { unalias ls if [ `find . -maxdepth 1 -type d -ipath "./$1*" | wc -l` = "1" ]; then cd `find . -maxdepth 1 -type d -ipath "./$1*"` else cd $* fi alias ls="ls -F --color=auto" } alias…

intype

こんなつぶやきをしながらやっぱりプログラミングが好きな人はエディタ戦争とかそういう話好きなわけですよ. で,WindowsではgPadが最近メインですが,intypeもなかなかよさそうということで,intypeもクイック起動に並んでいたりします. こいつがどうして…

開発とゲーミフィケーション

http://developers.slashdot.jp/story/12/01/22/0946221/ ↑の記事を見て,Visual Studioだけじゃなくて, SubversionとかGitとかにもそういうプラグインあるといいんじゃないかと思った. たとえば, チェックアウトを成功 コミットに成功 1000行以上の変更…

LinuxMintに移行

gnome3も使いたくなってきたし,Debian sqeezeがflashplayerと共にお亡くなりになるので,思い切って変えてみました. 最初のうちは,いろいろと設定中にsegfaultで落ちますが,それを越えると気になる量は出なくなります. あの辺りは報告も少なさそうなの…

gglコマンドのCygwin対応

Cygwinで >> import webbrowser >> webbrowser.open("http://www.google.com") False >> 馬鹿な!! gglコマンドが使えないじゃないか. というわけで改良してみる. #!/usr/bin/env python #-*- coding:utf-8 -*- import sys import webbrowser import urll…