「Makefile」を含む日記 RSS

はてなキーワード: Makefileとは

2023-10-12

Makefile www

自分で負け宣言しちゃって惨めじゃないんか?

2022-04-20

anond:20220420015209

Nix はいいぞ。

#!/usr/bin/env nix-shell

#!nix-shell -i "zsh" --pure -p zsh moreutils

# ... moreutils に含まれる ifne とか sponge とかのツールが使える.

パッケージマネージャ Nix のシェバンを使うと、

ツールインストールした上でスクリプトを実行する

...っていうのができる。

上記の例の "zsh" を、"make -f" とかすると Makefile になるし、リポジトリ nixpkgs に含まれファイルを渡す式のコマンドなら何でも使える。実行ファイルにしたスクリプトを走らせると、その場でインストールされてないツールインストールしてくれる。

ささっと書いたカジュアルスクリプトでも、将来、環境が変わっても使えてると嬉しい。本格的なプロジェクトを作ってパッケージマネージャリポジトリ登録するつもりはない、そんな場合に Nix のシェバ機能は役に立つ。

Nix 言語を使うと、かなり柔軟にインストール方法を作りこめる。シェバ機能を覚えておくだけでも効果が高いから、おすすめだよ。

2022-01-07

経験から1ヶ月!Pythonで観る将ライフを向上させた話(プログラム編)

まとめ

プログラミング経験から1ヶ月ほどで、将棋評価値の新たな方法でのグラフ化を行うPythonツールを作った。

https://github.com/k-the-p/notherscore

この記事は2本立てです。プログラミングより結果のグラフ将棋に興味がある方はもう一方の将棋から読むことをおすすめします。

未経験から1ヶ月!Pythonで観る将ライフを向上させた話(将棋編)

目標

評価値以外の観る将の楽しみとして、手の広さの可視化提案する

AIはわれわれアマチュア将棋への親しみを大幅に向上させてくれた一方で、棋士が悩みに悩んだ結果として評価値が下がる手を指してしまったときに、「悪手きたwwww」と騒ぐ主にABEMAのコメント欄には忸怩たる思いがあった。

とはいえ、もう評価値を知らなかった時代に後戻りするなんてことは誰にもできないだろう。そして、電王戦から将棋にハマった自分自身としても、AI否定はしたくない。

であるなら、AIを用いた新しくよりよい将棋の楽しみ方を探っていくしかないのではないか

以前から私は、「AIの手を指せるなら人間も苦労しないんだよなあ」と思っていた。あるとき藤森哲也先生Youtubeチャンネルで言っていたことを聞いて得心がいった。「AIの一手は最強の一手なんです。確かにプラス1000点になるけど一手間違えた瞬間にマイナス何百点になるような綱渡りの手。それよりもアマチュアの皆さんにはプラス数百点で得は少ないけど安全な道、最善の一手を学んで欲しい」(大意)と。

ここで言う「最強の一手」に人間にして最も近いのは紛れもなく藤井聡太四冠であろう。藤森先生アマチュアに向けて喋っていたが、その葛藤は間違いなくプロの中でもあるはずである渡辺明三冠が言うように「藤井くんと全く同じスタイルを今から目指しても絶対藤井くんより強くなれない」のは自明であるからして。

私はここにドラマがあると思う。また、最強の一手と最善の一手が等しく「いい手」に見えてしまうわれわれアマチュアとしては、そこを機械に教えてもらえるのであれば、棋力向上にも繋がりそうである

具体的目標

第1候補手と第2候補手の評価値の差を取ってグラフ化すればよさそう?

(差が小さければ手が広い、差が大きければ絶対手に近い、綱渡り

目指すのはあくまで便利な将棋ツール将棋AIを作りたいわけではないので、将棋AI自体局面を入れたら評価値を吐く謎の箱という扱いでよい。

手法

Python一択

グラフ化や数値の扱いだけでなく、将棋AIとのやりとりをやってくれるあれこれもあるようなので。

あと習得が楽だと聞いた。その話を教えてくれた人はもう10年間英語学習法をブクマし続けてるけど。

あと「読みやすコードじゃないと動かない」って設計思想がかっこいい。ついでに言うといわゆる「おまじない」が少なそうなのも魅力。(CのHello world挫折した経験あり。studio.hって何……)

何をしたか

詳しい人に聞く

プログラム講師をやっている?方が音楽制作を初歩からやってみる、という(残念ながら)リアルタイム視聴者が俺だけしかいないような配信があったので、音楽の基礎(についての知識は持っていた)を教えてあげたお返しのような形で、「pythonでこういうことがしたくてこういうライブラリがあるのはわかった。経験HTML+CSS変数導入前、Bootstrapなんてなかった)のみ。どうしたらよいか」という質問をしたら、「progateは簡単すぎると思うのでPaizaが丁度いいのではないか」というアドバイスを頂き、比較もせずに即登録したのだが結果的にはこれがドンピシャだった。

Paizaラーニング

最近流行りの、環境構築不要で講座の内容を書いて覚えるタイプサイト

無料で入門講座の序盤を受けていたらふと目に入ったのが、「対象者:これからプログラミングを学びたい方。HTMLがどのようなものかを知っている方。」でYoutuber先生オススメ完璧か?と思った。そして実際に完璧だった。

基本的に1講座3分+演習1~2問+やりたければ問題集たくさんという形式なのだが、これが簡単すぎることなく難しすぎることもなく、俺の知識レベルベストマッチだった。基本的に毎回何か書くことになるので、変数とは~みたいな解説だけで終わる回がほぼ無いのも飽きなくてよい。

Python入門(と言ってはいるがまだこれだけで発展編はない)の見出しは「プログラミングとは」「条件分岐比較演算子」「ループ処理」「リスト」「辞書」「多次元リスト」「関数」「クラス」「クラス発展」「例外処理」に各5~8講座*3分+演習、という感じ。クラス発展の途中で行けそうだと思ったのでドロップアウトして実製作に移った。実際関数まで理解していれば、この程度の小さなツールには十分だった(もしかしたらクラスを使えば多少楽になった場面はあったかもしれないけど)。

また、これは書いてる今気づいたことだが、上のコースで学んだことで、実際に役立たなかったものほとんどなかった(強いて挙げれば辞書くらい?使えてないだけかも)。このこともコース構成の優秀さを示している。

ここまででだいたい2週間くらい。

Google colab

もともとこのサービスは知っていたのと、谷合先生が実際に使っていたように、便利そうなライブラリのcshogiが主にcolab(jupyter)上で動かすことを意図しているようだったので、まずここから入った。最初はcshogiが列挙してくれる特定局面での合法手をリストに入れて、そのリストの項目数=その局面での合法手の数を出力することから始めた。これは本当に簡単にできて興奮した。

学習と好きなことが直結してると、こんなサンプルコードみたいな簡単なことで喜べるのでコストパフォーマンスがよい。

cshogiとやねうら王をusi連携する

cshogiのチュートリアルで紹介されているレサ改というAIがどうもmultipv(有望な候補手を2手以上挙げる)に対応してないらしく、強さ的な問題でいずれ手を出すつもりだった予定を繰り上げてやねうら王との連携を試みる。

makeって何?あー、もりかしてMakefileが無いと動かない?(これを書いている今もこんな理解である)みたいな人間でもなんとかやねうら王をビルド?することはできた。レサ改をcshogiに読ませる数行のサンプルコードがとても役に立った。今でもあの完成品らしき拡張子が無いファイルがなんなのか分かってない。(なお、評価関数nn.binが無いと怒られたのでどこのご家庭にもある水匠4のそれをぶち込んだら動いた。評価関数とやねうら王の分担は今もって理解あやふや)(また、途中でAyane[やねうらお謹製ライブラリ]も使おうとしたがcolab上では上手く動かす方法が分からなかった)

一応これでcshogiで局面の最善手と次善手およびそれらの評価値を呼び出せるようになったのだが、単にdebugでずらずらと余計なものまで出力するのではなく、重要な指し手周りのinfoだけ出力するようにしようとしたが、上手いやり方がわからず、結局こうなった。

sys.stdout = open('out.txt', 'a')
engine.go(listener=print)

ここは絶対もっとマシなやり方があるはずなので、識者の教えを請いたい。

ようやくWindowsPythonVSCodeを入れる

Colab上でまあまあ目処がついたので、この辺りでPython環境を作った。ここまでそれをやっていなかった理由は、「おま環」トラブル可能性をなるだけ遠ざけておきたかたかである環境が悪いのか俺が悪いのか分からない、というのは初心者にとって限りなきストレスである。あーネットが繋がらなくてルーターの設定や接続とか支払いとか文字通り部屋をひっくり返しながら調べてたら実はフレッツ自体が落ちてた件を思い出してイライラしてきた。cshogiはJupyter上で動かすことを意図しているようなので、それで動かなければ自分の書き方が間違っているのだとほぼ確実にわかる。

まあこの辺りはいろんなサイト見ながら仮想化などしつつ普通に仮想化が何か分かってないんですけど。

Jupyter notebook

これまでColab上で書いてきたものは多少の書き換えで動いたので、ローカルにJupyter notebookをインストールして、数字計算グラフ化を試みる。

ちなみにこの時点で得られているデータはこんな感じ。

go
info depth 1 seldepth 1 score cp -47 multipv 1 nodes 483 nps 241500 time 2 pv 3c3d
info depth 1 seldepth 1 score cp -86 multipv 2 nodes 483 nps 241500 time 2 pv 4a3b
info depth 2 seldepth 2 score cp -53 multipv 1 nodes 847 nps 423500 time 2 pv 3c3d 9g9f
info depth 2 seldepth 2 score cp -68 multipv 2 nodes 847 nps 423500 time 2 pv 8c8d 7g7f
info depth 10 seldepth 17 score cp -78 multipv 1 nodes 100163 nps 1963980 time 51 pv 8c8d 2f2e 4a3b 7g7f 3c3d 2e2d 2c2d 2h2d 8d8e 6i7h 8e8f 8g8f
info depth 10 seldepth 17 score cp -111 multipv 2 nodes 100163 nps 1963980 time 51 pv 3c3d 7g7f
bestmove 8c8d ponder 2f2e
go
info depth 1 seldepth 1 score cp 117 multipv 1 nodes 206 nps 206000 time 1 pv 2f2e
info depth 1 seldepth 1 score cp 78 multipv 2 nodes 206 nps 206000 time 1 pv 7g7f
...

今回の小目標は、goで区切られた中からから2行目と3行目のcpほにゃららを取得していい感じのリストにする、というものだ。この辺りは正規表現でなんとかなるだろうと見通しを立てたが、実際そうなった。

ただ、後手が見たとき評価値が後手目線なので、それだけにマイナスをかけるのはどうするか(そうしなければ、先手+3000点の次が「後手から見て」-2900点だったりして綺麗にグラフにならないのだ)を調べるのに結構時間が掛かった。

また、詰み周りでまたプラスマイナスカンストの絡む計算をしたくないのもあり、数値にNaNを入れてグラフ表記を省略することにしたのだが、そうするとnumpyの関係整数(とNaN)しか扱わないのに浮動小数点で計算しなければいけなくなって若干気持ち悪かったり。まあ動くのでヨシ!

中間報告

この時点で、ローカルにKIFファイルを保存し、pyファイルでcshogiと水匠を動かし、Jupiter notebookを開き評価グラフと手の広さのグラフを重ねて表示する、というそれなりのものは出来上がった。

簡単に言えばpyファイルで1手10局面(森内チャンネルに出てたHEROZの方が使ってた数字をそのまま使っているので特に意味は無い)探索させ、最善手と次善手についての生の評価データを吐き出させ、ipynbでそれを整形し、グラフ化している。

基本的に全部VSCode上でできるので、慣れれば計算時間も含めて10数秒で結果が出るのだが、このワークフローはいかにも美しくない。

なので、Flaskという簡単らしいフレームワークを使ってローカルWebアプリとして使えるようにしようと思った。inputとoutputをどうにかするだけだから余裕やろ。

Google colabを触り始めてからここまで1日。圧倒的成長!

ローカルWebアプリを作る

Flaskを学ぶ

Paizaラーニング再び。後半ではデータベースとか本格的な話もあるようなのだが、txtに書き込む一行掲示板を作るまでの前半部を高速で履修(演習は全部飛ばした)。なるほどー、こうやってやりとりするのね、と最低限は完全に理解した

モジュール

Jupyter向けのコード普通Pythonに直してあっちで数字を出してこっちでそれを受けて元に戻して……とかやってると循環参照か何かで怒られることに。その対策に細かく部分を分けて関数にしたのだが、その場合ってもしかしてdefの内部しかまれない?(共通部分も読まれると思ってた)(いや、共通部分は読まれるけど他のdef内が見えないのか?何も分からん)なるほど。こうなると関数の内部から上に戻るためにクラスとか欲しくなるのかなーという感想

最終的にWebに公開しようとこの時点では思ってたので、txtに一旦出力するのが安全性的にどうかとか考えてたのだが、テキストの読み取り周りでハマる。結局抜け出せず諦めた。

以降は、HTMLダブルクオートが抜けてるのに一時間気づかないとか、FlaskのXSS対策対策をするとか、ファイル書き込み設定をミスって2万手くらい蓄積されて評価グラフが大変なことになったが、原因に気づかずひたすらグラフ生成部を調べ続けるなど、非本質的問題にかかずらっていたので書くことは特にない。

GithubVSCodeとなら連携がらくらく

なので、最初にgitignoreしてなかったせいで1万ファイルくらい上げそうになったけど、それ以外は特に問題も無く。中間報告からここまで2日ほど。結局1ヶ月かけずにプログラミングをそれなりに身につけることが出来た。「プログラムを覚えたければ作りたいものを見つければいい」というのは本当だな、と改めて思った。

で、どうなったの?

については将棋編の方で詳しく書いています

https://anond.hatelabo.jp/20220107060727

どれくらい書けるようになったのか、を見たい方は主にvalue_output.py(将棋AI思考させてデータを取り出す)とgraph.py(データを整形してグラフを書き出す)を見ていただければいいかと思います

謝辞

最初にPaizaを教えてくださったYoutuberの方、cshogiを初心者でも使いやすいように作って展示してくださったTadaoYamaoka様、水匠開発者のたややん様、水匠含めこんにちの将棋AIの基盤を作ってくださったやねうらお様、cshogiを通して利用したpython-shogiのKIFパーサーを書いてくださったTasuku SUENAGA様に、厚く御礼申し上げます

最後

私は現在仕事Twitterフォロワー募集しています

30歳無職よろしくお願いいたします。

https://twitter.com/k_the_p

2021-11-20

anond:20211120125056

C言語なら書けます

2021-10-04

Makefileを単なるエイリアスとして使うの違和感がある

Makefileってのはなにかの手順をまとめるイメージがあるから単独コマンドオプション付けてるだけの定義みるといや、aliasでええがなと思っちゃうんだよね。

2020-09-20

今どきGTKプログラミングしたいときに最適な環境を調べた

ふと、C言語テトリスでも作りたいなぁ、GTKがいいなぁと思い、どの環境が一番適しているか調べてみたが

意外にもLinuxQt Creator&CMakeの組み合わせが最強であった。

WindowsMinGW)…pkg-configの出力がc:\msys2\mingwではなく/mingwになりIDEへのライブラリの設定に難儀するなど、何をするにもトラブる。

Qt Creator…CMakeでプロジェクトを作って読み込んだらビルド設定やインテリセンス、補完、デバッガがすべて完璧動作した。MakeFileプロジェクトでも、AutoToolsでも何でもうまく行く気がする。

Vim…めんどくさすぎる

・Anjuta…AutotoolsでGTKプロジェクトデフォルトサポートしていて何も設定が必要ないが、

     ウィンドウの縦分割ができない、ブレークポイントの設定がマウスで出来ない、定義への移動のショートカットデフォルトで設定されてないなどつらすぎる場面が多い

・Geany…補完をするのにctagsコマンド辞書ファイル作成する必要がある。このことから補完以外でもマトモな支援は期待できなそう

Eclipseビルドツールの設定に難あり。依存ライブラリの追加が一個ずつしか出来ない。"."や"::"を入力するか、Ctrl+Spaceを押さないと補完が出てこない。

VSCODE…これもほぼ完璧ビルド設定やインテリセンス、補完、デバッガが設定された。

2020-05-20

anond:20200520170159

なぜビルド手順がわからないんだ?slnファイルがあったらVisual Studioだ makefileというファイルがあったらmakeとうて

./configureというファイルがあったら、それを実行して エラーが出たらエラーメッセージを読め

2018-03-20

文系エンジニアなんて死ねばいいのに

文系エンジニアなんて死ねばいいのに

俺、Webサービス作ったんすよ(Rails

俺、iOSアプリ作ったんすよ(Swift

俺、Macbook使ってるんすよ(タッチバー付13インチPro

俺、プログラミングスクールプログラミング教えるアルバイトしてるんすよ(そいつはそのスクール卒業生

これぞ量産型文系エンジニア()

懇親会で「皆さん嫌いな言語とかフレームワークはありますか?」と話題になると私は即座にRailsと言う。

すると文系エンジニアはみんな嫌な顔をする。

そこでちょっとお話をすると皆怯んじゃう。

「あのコマンドを打つと中で何が起きてるか知ってますか?」(知らない

ActiveRecord?生でクエリいたことあるインデックス意味くらい知ってるよね?」(書いたことない、適当なこと言う

へーその作ったサービスURL教えてよ

3分

「alert('XSS')」

Session?Cookie?(何それどんな味のクッキー

CSRF?(企業理念か何か?

百歩譲って学生エンジニアならまあセキュリティ無知なのは分かる。

しかしだな、文系エンジニアは「俺もハッキングしたい(笑)」な勢いで詳しく解説することを要求してくる。非常にウザい。

"

お前はよぉ!自分で探すってことをできねぇのかよ!?

"

しょうがないので優しく解説すると「君ってハッキングとかしてそう(笑)」「君将来ハッカーになりそうだわ(笑)クラッキング的な意味で)」

死ねよ。

文系エンジニアはこれだけではない

俺、Git使って開発したんすよ(GUIのSourcetree

え?バグちゃんテストしたんだけどなぁ(完全手動テスト()

デプロイ先は9割Heroku。(HTTPS対応

AWSGCP登録はしたものの使い方が分からなくて結局放置

SSH証明書を使わずパスワードオンリー

pwdcdしか知らない(Makefileを作ったことないからいつもネットコピペコマンド

見た目重視のTerminal(ネットコピペ設定)

最近聞いた文系エンジニアもっと面白い

新規事業を開発してる文系エンジニア集団がいた。

開発は順調、プロモーションをかけていざリリース

はいゴールデンタイム鯖落ち。復旧した時にはゴールデンタイム終了のお知らせ

理由CDNを刺してない、貧弱なプランの鯖(勿論ロードバランサなんか使ってない)

噂による無線LANルーターの設定も出来ないレベルらしい。

でも彼らは一応優秀な文系エンジニア高学歴サービスも作ったこともある、それなりの実績も持っている。しか文系だ。

こういう奴らがいるかちゃんとしたエンジニアを軽視される。黙って営業職に転職してこい。

まあでも大学じゃ作者の気持ちしか考えてないのだから当然のなのかもな(笑)


追記

残念な理系名前を書くだけ一発採用派遣SIer対象としてない。論外だ。

給料が安い?

そんなことは無い。400万以上貰える会社内定もらっているか嫉妬も不満も特に無い。

だがしかし、ムカつく。

そんな奴が同期にいたら蹴り飛ばしてやりたくなる。

そうさ、今はSwiftiOS時代だ。

だが見てみろ、あいつらのアプリバックエンドが無いんだぞ?意欲は認める。だがそれで胸を張ってiOSエンジニアなんて無理があるだろ?

2013-08-23

Ruby on Rails勉強】 xvideosまとめサイトっておいしいの?

Webサイトはこんなもの


スペックは?
サイトonalife(オナライフ)
URLhttp://www.onalife.com
説明xvideos動画の共有・ユーザー参加型のまとめサイト

2013年9月1日現在でxvideosのみの対応です。

コンセプトは?

Webサービス勉強には「アダルトサイト」という記事をはてなの記事で何回か読んだことがあるため、今回は便乗しました。

ありきたりかも知れませんが、「Xvideosから誰でもお気に入り動画を追加してまとめる・みんなで共有」できるサービスを作ります

試験リリースです。

協力していただける方は、サービスを使っていただいて、要望コメントしていただけると助かります

http://ja.wikipedia.org/wiki/PDCAサイクル

ではないですが、

試験リリース → テスターによるテスト → 問題抽出 → 問題解決のためのプラン → 解決 → 最初に戻る

を繰り返していき、

などを考察していければよいと思っています。(あくまで勉強目的

考察結果はこちらのブログで随時報告予定

現時点で広告フリーです。

エロサイトユーザー登録

ありません

だって恥ずかしいし、煩わしいよね

動画登録だけ?好きなシーン見たいんだけど?

シーンを登録してください

仕様は?

今回どうしても満たしたい仕様は以下です。

  1. xvideosの動画を(誰でも)追加できる
  2. 動画のシーン情報サムネイルを選択・記録できる
  3. シーン情報サムネイルで一覧表示できる
  4. タグ機能
  5. いいね!ボタン

検索

とりあえず、タグから一覧表示できる機能を作ったので後回し。

要望あれば検討ということにしました。(他に優先すべきことが多々あるため)

作ったのはこんなひと

自己紹介は?
お仕事主に組み込みLinux
Web開発経験なし(Wordpressを昔にちょこっと触った程度)
私の能力は?
プログラミング10年目くらい
使える言語C言語、ShellScript、PerlMake
お触りした言語C++C#VisualBasicPython



舞台裏

なぜ組み込みLinux屋がWebサービス

時代の流れに乗ろうかと。

仕事内容は主に組み込みLinuxです。Linuxカーネルごにょごにょしたり、開発環境の整備(プロジェクト全体のMakefile管理)、システム部分の機能実装などをやっており、PythonRubyといった言語には縁がない状況です。

から機会があればRubyPythonPHPとかでWeb系の知識も身につけたいと思っていましたが、今回思い切って勉強しようと思いました。

勉強はどうやってやった?

皆さんの中にも新しい言語勉強するときに、とっかかりがよくわからなくて諦めた経験を持っている方は結構いらっしゃるのでは?

インターネット検索するといろいろなサイトが出てきますが、なかなかゼロから学習するのには向いていない場合が多いです。

そ・こ・で!

私は以下のサービスを使いました。

ドットインストール:bookmark

Ruby on Rails動画を何度も見て、基本的なプロジェクトの立ち上げ方・コーディング方法などが学べました。

プログラミングに当てた時間は?

思い立ったのは、2012年12月末。

では、なぜここまでリリース時間がかかったのか?

→単純にプライベートも充実させたかたから。

すみません、サボってたからです。

力を入れていた時期ですら…
平日1時間/日
休日2~3時間/日

こんな程度です。

力を入れていない時期は?
平日 0時間
休日 1時間/日

平日は1時間未満が多かったですね。

ドットインストールの講座を1・2個見て終わりというような感じでした。

モチベーション持続の秘訣は?

無理をしない、です。

私のように、長いスパンでコツコツ積み上げていくのがよいのかもしれません。

短いスパンリリースしようとすると、1日あたりの学習プログラミング時間が相当確保しないと難しいように思います

この時間を確保することの困難さがモチベーションの低下の原因ではないかと思います

短い時間学習サービスリリースするには、少なくとも…

一日平均4時間(休日含む)でやれば1カ月から2カ月くらいでそこそこのサービスリリースできそうです。

私は無理ッス…休日は買い物やデート行きたいよね!!

最後

結構はてなで「初心者Webサービスリリース」なんて記事を見ますが、みなさん本当にすごいな、と感じました。

自分でいざサービスを立ち上げてみて、初めてわかることもたくさんあります

プログラミング仕事しているにも関わらず、ベータ版リリースまで約半年ほどかかってしまいました。(そもそも時間をそれほど確保できなかったのも原因ですが)

http://www.onalife.com

もしよろしければwebサービスを使ってみて不満点をコメント欄にでもどんどん記入してください!

今後の参考にしたいです!

使い方

# ヘッダーのAddクリック

# xvideosのURLコピペ

# タイトルサムネイルタグ、説明を記入

# これだけで動画追加できます

タグはなるべく詳細に入れてもらえると、自動的に動画を関連付けます

タグ名をクリックすることでタグ検索も可能になるなど、ベネフィットも多いです。

じゃあの。

2010-05-03

Request For Implementation

はじめに

以前思いついて長らく脳の片隅に押し込めてきた妄想が昨夜旧友と深酒した明けに頭をもたげたので勢いで書き逃げる。

注意

キモオタ発想とオヤジギャグの混合物で、一般受けする要素はもちろんのこと何らかの意義・意味も一切ない。受ける層がないような気もする。

筆者は化粧の経験も美容の知識もない。ついでにUnixとか画像処理についても素人

妄想

一言で書くと「*nixのmakeコマンドのノリで、メイクアップイメージを生成・出力するジョークソフト」。

イメージに直接塗ったり盛ったりするソフトはあるのかも。でもそれはWYSIWYGなのでCUIで。


ターゲット(化粧する顔の場所、大元イメージ): 依存するターゲットメイクアッププロセス

    メイクアップコマンド(どうメイクするか)

みたいなフォーマットmakefileを書いて、すっぴん顔のイメージを用意して「make」すると顔がどんどんメイクアップされていくという感じ。

あえてプロセスにちょっとディレイ入れてだんだんイメージメイクアップされていく様を見るのは楽しい(筆者が)。

メイクアップコマンドアクション名でもよくて「make dohade」でごってごてになるような指定とか「make clean」ですっぴんだけ残して消去するような指定をする。


実装難しそう。顔そのものの自動認識はできても、目元やら唇を自動判別してそこに適切なメイクアップ効果を重ねるのは…。

画像処理パターン認識やってる学生さん現実逃避自由研究にぜひ。

ある程度テンプレート決め打ちだとまだやりやすいか。実写か二次元だとどっちがいいんだろう。


ひょっとしたら各メイクアップコマンドを適切に設計して作ればmakeコマンド自体のようなものは再発明しなくてもいいような気がした。どっちが楽かという話はある。

おわりに

脱線する。上で「make child」だと化粧始めたばかりでぎこちない薄化粧になるような指定、

と書きかけてふと我にかえると完全に別方向の意味が頭に浮かんでこれ以上は自分でも嫌になったのでここで筆を置く。

2009-02-25

一年

http://anond.hatelabo.jp/20070709151106

このエントリ一年上前自分が書き込んだエントリ

前に自分が書いたエントリぼんやり眺めていたら見つけたよ。

あれから大学卒業してWeb系のベンチャー就職。もうすぐ一年になる。あと一ヶ月ほどで後輩とか出来るらしいよ。

会社に入って最初の仕事linux系のOSインストールだったよ。その後はネットワークの設定。

DNSルータスイッチの設定、ネットワークの構築も未熟ながら出来るようになったよ。

vimってすごいよね。最初は入力すら出来なかったけど、今やfirefoxvimperatorを入れて、タブバーさえ消してしまう始末さ。

インストールだって「このバイナリ動かないじゃん、ソースから入れた方が早いな」とか言っちゃうよ。なんならMakefileまでいじっちゃうぜ。

あと、プログラミングにはフレームワークっていう便利なものがあるんだよ。

成長のレベルはともかく、成長を実感できるってのは楽しいね。

2009-01-31

最新版Ruby-1.9.1を思う存分試してみたい人のためのちょっとしたハック

Ruby-1.9.1リリースおめでとう!

http://www.ruby-lang.org/ja/news/2009/01/30/ruby-1-9-1-released/

まあ、ライブラリがぜんぜん1.9に対応してないから今すぐ1.8から移行するなんてことはできないんだけど、こうやって安定版を出せばライブラリの移行を促せるんだから、ちょうど鶏が先か卵が先かみたいなもんで、リリースすることに意味があるんだよね。

ところで、Ruby といえば、そのままコマンドラインruby を使っている人はあんまりいなくて、普通irb を使うよね。でも、単に ruby自分のホームディレクトリmake しただけだと、当然、irb は使えないんだ。でもこれだけためにインストールするのは嫌。そこでどうするか?

実は最近rubyMakefile には作ったばっかりの rubyライブラリパス込みで動作させるコードが入ってる。これを使って irb を動かしてみるというのが今回のハックのネタというわけ。

masuda@localhost:~/ruby-1.9.1-p0 $ makerubymake はすべて終了したとする)

masuda@localhost:~/ruby-1.9.1-p0 $ cat > test.rb
require 'irb'
require 'irb/completion'
IRB.start
^D
(^D はCtrl-dで入力終了のこと。普通は表示されない)

masuda@localhost:~/ruby-1.9.1-p0 $ make runruby
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./runruby.rb --extout=.ext  -- ./test.rb
irb(main):001:0> puts "Have a fun!"

これで適切なライブラリパスが指定されて、その場で最新の ruby が使い放題だ。Readlineを使ってるから編集も楽だし、マジおすすめ

というわけで、Ruby開発者さんたちに感謝しつつ、Enjoy Hacking! ピース

2008-11-07

Haskellerと付き合い始めたのだが

http://anond.hatelabo.jp/20081105135432

彼女ができた。なんとHaskellerだ。

8月に参加したLLイベントで知り合い、10月から付き合い始めた。なんでLLイベントにHaskellerが…

これまで5人くらいのプログラマと付き合ったことがあるけれど、一般的なプログラマと比較して

といった点が目立つ。

見た目はLisperを少し丸くしたようなかわいらしさがあるのだけれど、要するに中身はPrologだ。

初めは戸惑いもあったが、案外こういうプログラマとつきあうのは楽で楽しいと分かってきた。

コードは深い問題もFizzBuzzのような軽い問題も内容を伴って書ける。

いろいろメタプログラミング・アロー記法ユニコード演算子などを試そうとするなど好奇心が強い。

純粋関数型言語も習得しているというのに論理系の言語も習得しようと勉強していて向上心の強さがある。

反面、入出力のコード論理的・合理的なのかな…と思いきや、

IOモナドコントロールできない自分に「おかしいな、普段はこんなはずじゃないのに///」と恥ずかしがる。

Haskeller、はっきり言ってオススメです。

問題はどうやって知り合うかだけれど、職場(あるのか?)という戦闘モードの時に誘うのではなく、.emacsなどを書いているオフタイムが狙い目としか。

初めの一歩が難しいだけで、後は一般的な女の子よりも付き合いは簡単かも。

だって普段Makefileに書いている論理と同じでいいんだから。

2008-11-01

mobircいれるじゅんばんのメモ

svn から mobirc

ここみる http://d.hatena.ne.jp/h_kenan/20080717

apt-get から install Encode

svn から Encode

cd [Encode Dir] してから sudo perl Makefile.PL

モジュール一括インストール? sudo -H cpan App::Mobirc

やっぱり HTML::DoCoMoCSS でコケたので

make && make test して出てきた not installed を f**k

=> install Test::Spelling

=> install Test::Perl::Critic

=> install Test::Pod

sudo gnome-terminal

cd /home/pc/.cpan/build/HTML-DoCoMoCSS-0.01

make && make install

・・・いけたか?

・・・

・・・

・・・

はいむりー

2008-09-17

Linuxソフトウェアインストールする際にやってしまいがちな失敗10

http://japan.zdnet.com/sp/feature/07tenthings/story/0,3800082984,20380440,00.htm

どーこが失敗なんだか。

それに make uninstall が真面目に書いてある Makefile なんかそんなに多くねえよ。

2008-06-27

http://anond.hatelabo.jp/20080627002436

おおどうもありがとうございます。

社会人暦は数年あるんですが、この業界に入ったのは今年の3月頃です。全く別職種から。

元々理系なんでCとかFORTRANスパゲティコードくらいは書いたことがあったという感じでした。

(もちろん今現在スパゲティですが)

自作PCは昔々に1台作りました。SATAの読み方は最近知りましたw

ジャンルweb系ではないです。業務系でも組み込み系でもないですが。

ネットワークDBはさっぱりです。あとGUIもわかりません。これはまずいと思っています…。

あと地味にUNIX系OSもよくわかってないです。

この前valgrindをインストールしようとしてよくわかんなくて諦めましたorz

今日makefileが上手く動かなくて発狂しそうになったりもしました。

emacsキーバインドにも慣れないし、cygwin日本語化も結局未だに上手く行かず…。

周りが優秀なので焦るばかりです。これは感謝すべきことですが。

プログラム一本で食べていけるとは思えないし、自分のやりたいこととも少し違うので、

プログラミングに関しては中の上から上の下くらいのレベルを目指そうと思っています。

あと1回は転職すると思いますし、今26なので、30までにはどこにでもいけるようになりたいと思っています。

それにしても憶えること多すぎですね…。全体がわかるようになるのはいつになるのか…orz

2008-06-21

emacs使いの僕がemacsを使わないとき


さあて、viでも使うか……

vi使いの僕がviを使わないとき


どっちも使わないとき

  • 使いたいコマンドを忘れて、思い出せないとき

さあて、これからの時代はやっぱ、Kateだよな。

どっかの統合開発環境みたく、プロジェクトごとに開くファイルを設定できるんだぜ。

Kateを使わないとき

2008-06-18

Automake

そうです、私がグヌウの信者です。

今日の話題はAutomakeです。

Automakeを使うと、何がうれしいのか。

それは、Makefileを書くのが楽になるからです。

プログラムに新しいソースファイルを追加するときは、

Makefile.amファイル名を追加するだけでよくなります。

Automakeを使うのに最低限必要なファイルは「configure.ac」と「Makefile.am」の二つだけです。

あとは、「autoreconf -i」とかしておけば、必要なファイルは全て自動で揃いますので心配ありません。

手順1:以下の三つのファイルを同じディレクトリに作ります

Makefile.am

# プログラム名とそのインストールディレクトリ(ここではbin)の指定
bin_PROGRAMS = helloworld 

# プログラムhelloworldを作るのに必要なファイルの指定
helloworld_SOURCES = helloworld.c

configure.ac

# Autoconf初期化([パッケージ名]、 [バージョン])
AC_INIT([hoge], [1])

# Automake初期化([オプション])
# ( foreignオプションをつけると、NEWSとかREADMEとかを作る必要が無くなる )
AM_INIT_AUTOMAKE([foreign]) 

# 作成するファイル
# ここでは、Makefile.in から、Makefileを生成することを指定
AC_CONFIG_FILES([Makefile])

# C言語ファイルサポートするように設定
# (具体的にどんな意味があるのか分かってない(汗)
AC_PROG_CC


# config.statusや、Makefileを作成する(らしい)
AC_OUTPUT()

helloworld.c

/* これは単なるサンプルプログラム */
#include <stdio.h>
int main() { printf("Hello World!"); }

手順2: autoreconf -iを実行します

手順3: ./configureを実行します

手順4: makeを実行すると、helloworldコンパイルされます。

ワンポイントメモ: 「ターゲットがありません」系のエラーが出たら、Makefile.am記述ミスが考えられます。見直しをしてから、./configureからやり直すと、幸せになれるかもしれません。

 
ログイン ユーザー登録
ようこそ ゲスト さん