はてなキーワード: makefileとは
Nix はいいぞ。
#!/usr/bin/env nix-shell
...っていうのができる。
上記の例の "zsh" を、"make -f" とかすると Makefile になるし、リポジトリ nixpkgs に含まれるファイルを渡す式のコマンドなら何でも使える。実行ファイルにしたスクリプトを走らせると、その場でインストールされてないツールをインストールしてくれる。
ささっと書いたカジュアルなスクリプトでも、将来、環境が変わっても使えてると嬉しい。本格的なプロジェクトを作ってパッケージマネージャのリポジトリに登録するつもりはない、そんな場合に Nix のシェバン機能は役に立つ。
Nix 言語を使うと、かなり柔軟にインストールの方法を作りこめる。シェバン機能を覚えておくだけでも効果が高いから、おすすめだよ。
プログラミング未経験から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自体は局面を入れたら評価値を吐く謎の箱という扱いでよい。
グラフ化や数値の扱いだけでなく、将棋AIとのやりとりをやってくれるあれこれもあるようなので。
あと習得が楽だと聞いた。その話を教えてくれた人はもう10年間英語学習法をブクマし続けてるけど。
あと「読みやすいコードじゃないと動かない」って設計思想がかっこいい。ついでに言うといわゆる「おまじない」が少なそうなのも魅力。(CのHello worldで挫折した経験あり。studio.hって何……)
プログラム講師をやっている?方が音楽制作を初歩からやってみる、という(残念ながら)リアルタイム視聴者が俺だけしかいないような配信があったので、音楽の基礎(についての知識は持っていた)を教えてあげたお返しのような形で、「pythonでこういうことがしたくてこういうライブラリがあるのはわかった。経験はHTML+CSS(変数導入前、Bootstrapなんてなかった)のみ。どうしたらよいか」という質問をしたら、「progateは簡単すぎると思うのでPaizaが丁度いいのではないか」というアドバイスを頂き、比較もせずに即登録したのだが結果的にはこれがドンピシャだった。
最近流行りの、環境構築不要で講座の内容を書いて覚えるタイプのサイト。
無料で入門講座の序盤を受けていたらふと目に入ったのが、「対象者:これからプログラミングを学びたい方。HTMLがどのようなものかを知っている方。」でYoutuber先生のオススメ完璧か?と思った。そして実際に完璧だった。
基本的に1講座3分+演習1~2問+やりたければ問題集たくさんという形式なのだが、これが簡単すぎることなく難しすぎることもなく、俺の知識レベルにベストマッチだった。基本的に毎回何か書くことになるので、変数とは~みたいな解説だけで終わる回がほぼ無いのも飽きなくてよい。
Python入門(と言ってはいるがまだこれだけで発展編はない)の見出しは「プログラミングとは」「条件分岐・比較演算子」「ループ処理」「リスト」「辞書」「多次元リスト」「関数」「クラス」「クラス発展」「例外処理」に各5~8講座*3分+演習、という感じ。クラス発展の途中で行けそうだと思ったのでドロップアウトして実製作に移った。実際関数まで理解していれば、この程度の小さなツールには十分だった(もしかしたらクラスを使えば多少楽になった場面はあったかもしれないけど)。
また、これは書いてる今気づいたことだが、上のコースで学んだことで、実際に役立たなかったものはほとんどなかった(強いて挙げれば辞書くらい?使えてないだけかも)。このこともコース構成の優秀さを示している。
ここまででだいたい2週間くらい。
もともとこのサービスは知っていたのと、谷合先生が実際に使っていたように、便利そうなライブラリのcshogiが主にcolab(jupyter)上で動かすことを意図しているようだったので、まずここから入った。最初はcshogiが列挙してくれる特定局面での合法手をリストに入れて、そのリストの項目数=その局面での合法手の数を出力することから始めた。これは本当に簡単にできて興奮した。
学習と好きなことが直結してると、こんなサンプルコードみたいな簡単なことで喜べるのでコストパフォーマンスがよい。
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)
ここは絶対もっとマシなやり方があるはずなので、識者の教えを請いたい。
Colab上でまあまあ目処がついたので、この辺りでPythonの環境を作った。ここまでそれをやっていなかった理由は、「おま環」トラブルの可能性をなるだけ遠ざけておきたかったからである。環境が悪いのか俺が悪いのか分からない、というのは初心者にとって限りなきストレスである。あーネットが繋がらなくてルーターの設定や接続とか支払いとか文字通り部屋をひっくり返しながら調べてたら実はフレッツ自体が落ちてた件を思い出してイライラしてきた。cshogiはJupyter上で動かすことを意図しているようなので、それで動かなければ自分の書き方が間違っているのだとほぼ確実にわかる。
まあこの辺りはいろんなサイト見ながら仮想化などしつつ普通に。仮想化が何か分かってないんですけど。
これまで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日。圧倒的成長!
Paizaラーニング再び。後半ではデータベースとか本格的な話もあるようなのだが、txtに書き込む一行掲示板を作るまでの前半部を高速で履修(演習は全部飛ばした)。なるほどー、こうやってやりとりするのね、と最低限は完全に理解した。
Jupyter向けのコードを普通のPythonに直してあっちで数字を出してこっちでそれを受けて元に戻して……とかやってると循環参照か何かで怒られることに。その対策に細かく部分を分けて関数にしたのだが、その場合ってもしかしてdefの内部しか読まれない?(共通部分も読まれると思ってた)(いや、共通部分は読まれるけど他のdef内が見えないのか?何も分からん)なるほど。こうなると関数の内部から上に戻るためにクラスとか欲しくなるのかなーという感想。
最終的にWebに公開しようとこの時点では思ってたので、txtに一旦出力するのが安全性的にどうかとか考えてたのだが、テキストの読み取り周りでハマる。結局抜け出せず諦めた。
以降は、HTMLにダブルクオートが抜けてるのに一時間気づかないとか、FlaskのXSS対策の対策をするとか、ファイルの書き込み設定をミスって2万手くらい蓄積されて評価値グラフが大変なことになったが、原因に気づかずひたすらグラフ生成部を調べ続けるなど、非本質的な問題にかかずらっていたので書くことは特にない。
なので、最初に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様に、厚く御礼申し上げます。
ふと、C言語でテトリスでも作りたいなぁ、GTKがいいなぁと思い、どの環境が一番適しているか調べてみたが
意外にもLinux&Qt Creator&CMakeの組み合わせが最強であった。
・Windows(MinGW)…pkg-configの出力がc:\msys2\mingwではなく/mingwになりIDEへのライブラリの設定に難儀するなど、何をするにもトラブる。
・Qt Creator…CMakeでプロジェクトを作って読み込んだらビルド設定やインテリセンス、補完、デバッガがすべて完璧に動作した。MakeFileプロジェクトでも、AutoToolsでも何でもうまく行く気がする。
・Vim…めんどくさすぎる
・Anjuta…AutotoolsでGTKのプロジェクトをデフォルトでサポートしていて何も設定が必要ないが、
ウィンドウの縦分割ができない、ブレークポイントの設定がマウスで出来ない、定義への移動のショートカットがデフォルトで設定されてないなどつらすぎる場面が多い
・Geany…補完をするのにctagsコマンドで辞書ファイルを作成する必要がある。このことから補完以外でもマトモな支援は期待できなそう
・Eclipse…ビルドツールの設定に難あり。依存ライブラリの追加が一個ずつしか出来ない。"."や"::"を入力するか、Ctrl+Spaceを押さないと補完が出てこない。
俺、Macbook使ってるんすよ(タッチバー付13インチPro
俺、プログラミングスクールでプログラミング教えるアルバイトしてるんすよ(そいつはそのスクールの卒業生
懇親会で「皆さん嫌いな言語とかフレームワークはありますか?」と話題になると私は即座にRailsと言う。
「あのコマンドを打つと中で何が起きてるか知ってますか?」(知らない
「ActiveRecord?生でクエリ書いたことある?インデックスの意味くらい知ってるよね?」(書いたことない、適当なこと言う
3分後
「alert('XSS')」
百歩譲って学生エンジニアならまあセキュリティに無知なのは分かる。
しかしだな、文系エンジニアは「俺もハッキングしたい(笑)」な勢いで詳しく解説することを要求してくる。非常にウザい。
"
"
しょうがないので優しく解説すると「君ってハッキングとかしてそう(笑)」「君将来ハッカーになりそうだわ(笑)(クラッキング的な意味で)」
死ねよ。
俺、Git使って開発したんすよ(GUIのSourcetree
え?バグ?ちゃんとテストしたんだけどなぁ(完全手動テスト()笑
AWSとGCPは登録はしたものの使い方が分からなくて結局放置
pwdとcdしか知らない(Makefileを作ったことないからいつもネットのコピペコマンド
はい、ゴールデンタイムに鯖落ち。復旧した時にはゴールデンタイム終了のお知らせ。
理由、CDNを刺してない、貧弱なプランの鯖(勿論ロードバランサなんか使ってない)
でも彼らは一応優秀な文系エンジニア。高学歴、サービスも作ったこともある、それなりの実績も持っている。しかし文系だ。
こういう奴らがいるからちゃんとしたエンジニアを軽視される。黙って営業職に転職してこい。
まあでも大学じゃ作者の気持ちしか考えてないのだから当然のなのかもな(笑)
追記
残念な理系名前を書くだけ一発採用派遣SIerは対象としてない。論外だ。
給料が安い?
そんなことは無い。400万以上貰える会社に内定もらっているから嫉妬も不満も特に無い。
だがしかし、ムカつく。
そんな奴が同期にいたら蹴り飛ばしてやりたくなる。
だが見てみろ、あいつらのアプリバックエンドが無いんだぞ?意欲は認める。だがそれで胸を張ってiOSエンジニアなんて無理があるだろ?
サイト名 | onalife(オナライフ) |
---|---|
URL | http://www.onalife.com |
説明 | xvideos動画の共有・ユーザー参加型のまとめサイト |
Webサービスの勉強には「アダルトサイト」という記事をはてなの記事で何回か読んだことがあるため、今回は便乗しました。
ありきたりかも知れませんが、「Xvideosから誰でもお気に入り動画を追加してまとめる・みんなで共有」できるサービスを作ります。
協力していただける方は、サービスを使っていただいて、要望・コメントしていただけると助かります。
http://ja.wikipedia.org/wiki/PDCAサイクル
ではないですが、
試験リリース → テスターによるテスト → 問題抽出 → 問題解決のためのプラン → 解決 → 最初に戻る
を繰り返していき、
などを考察していければよいと思っています。(あくまで勉強目的)
ありません
※だって恥ずかしいし、煩わしいよね
シーンを登録してください
今回どうしても満たしたい仕様は以下です。
検索?
要望あれば検討ということにしました。(他に優先すべきことが多々あるため)
お仕事 | 主に組み込みLinux系 |
---|---|
Web開発経験 | なし(Wordpressを昔にちょこっと触った程度) |
プログラミング歴 | 10年目くらい |
---|---|
使える言語 | C言語、ShellScript、Perl、Make |
お触りした言語 | C++、C#、VisualBasic、Python |
時代の流れに乗ろうかと。
仕事内容は主に組み込みLinuxです。Linuxカーネルをごにょごにょしたり、開発環境の整備(プロジェクト全体のMakefile管理)、システム部分の機能実装などをやっており、PythonやRubyといった言語には縁がない状況です。
昔から機会があればRubyかPython、PHPとかでWeb系の知識も身につけたいと思っていましたが、今回思い切って勉強しようと思いました。
皆さんの中にも新しい言語を勉強するときに、とっかかりがよくわからなくて諦めた経験を持っている方は結構いらっしゃるのでは?
インターネットで検索するといろいろなサイトが出てきますが、なかなかゼロから学習するのには向いていない場合が多いです。
そ・こ・で!
私は以下のサービスを使いました。
Ruby on Railsの動画を何度も見て、基本的なプロジェクトの立ち上げ方・コーディング方法などが学べました。
平日 | 1時間/日 |
---|---|
休日 | 2~3時間/日 |
こんな程度です。
平日 | 0時間 |
---|---|
休日 | 1時間/日 |
平日は1時間未満が多かったですね。
ドットインストールの講座を1・2個見て終わりというような感じでした。
無理をしない、です。
私のように、長いスパンでコツコツ積み上げていくのがよいのかもしれません。
短いスパンでリリースしようとすると、1日あたりの学習&プログラミング時間が相当確保しないと難しいように思います。
この時間を確保することの困難さがモチベーションの低下の原因ではないかと思います。
一日平均4時間(休日含む)でやれば1カ月から2カ月くらいでそこそこのサービスをリリースできそうです。
結構はてなで「初心者がWebサービスをリリース」なんて記事を見ますが、みなさん本当にすごいな、と感じました。
自分でいざサービスを立ち上げてみて、初めてわかることもたくさんあります。
プログラミングの仕事しているにも関わらず、ベータ版リリースまで約半年ほどかかってしまいました。(そもそも時間をそれほど確保できなかったのも原因ですが)
もしよろしければwebサービスを使ってみて不満点をコメント欄にでもどんどん記入してください!
今後の参考にしたいです!
タグはなるべく詳細に入れてもらえると、自動的に動画を関連付けます。
以前思いついて長らく脳の片隅に押し込めてきた妄想が昨夜旧友と深酒した明けに頭をもたげたので勢いで書き逃げる。
キモオタ発想とオヤジギャグの混合物で、一般受けする要素はもちろんのこと何らかの意義・意味も一切ない。受ける層がないような気もする。
筆者は化粧の経験も美容の知識もない。ついでにUnixとか画像処理についても素人。
一言で書くと「*nixのmakeコマンドのノリで、メイクアップのイメージを生成・出力するジョークソフト」。
イメージに直接塗ったり盛ったりするソフトはあるのかも。でもそれはWYSIWYGなのでCUIで。
みたいなフォーマットでmakefileを書いて、すっぴん顔のイメージを用意して「make」すると顔がどんどんメイクアップされていくという感じ。
あえてプロセスにちょっとディレイ入れてだんだんとイメージがメイクアップされていく様を見るのは楽しい(筆者が)。
メイクアップコマンドはアクション名でもよくて「make dohade」でごってごてになるような指定とか「make clean」ですっぴんだけ残して消去するような指定をする。
実装難しそう。顔そのものの自動認識はできても、目元やら唇を自動判別してそこに適切なメイクアップ効果を重ねるのは…。
画像処理でパターン認識やってる学生さんは現実逃避の自由研究にぜひ。
ある程度テンプレート決め打ちだとまだやりやすいか。実写か二次元だとどっちがいいんだろう。
ひょっとしたら各メイクアップコマンドを適切に設計して作ればmakeコマンド自体のようなものは再発明しなくてもいいような気がした。どっちが楽かという話はある。
http://anond.hatelabo.jp/20070709151106
あれから大学を卒業してWeb系のベンチャーに就職。もうすぐ一年になる。あと一ヶ月ほどで後輩とか出来るらしいよ。
会社に入って最初の仕事はlinux系のOSのインストールだったよ。その後はネットワークの設定。
DNSやルータやスイッチの設定、ネットワークの構築も未熟ながら出来るようになったよ。
vimってすごいよね。最初は入力すら出来なかったけど、今やfirefoxにvimperatorを入れて、タブバーさえ消してしまう始末さ。
インストールだって「このバイナリ動かないじゃん、ソースから入れた方が早いな」とか言っちゃうよ。なんならMakefileまでいじっちゃうぜ。
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 は使えないんだ。でもこれだけためにインストールするのは嫌。そこでどうするか?
実は最近の ruby の Makefile には作ったばっかりの ruby をライブラリパス込みで動作させるコードが入ってる。これを使って irb を動かしてみるというのが今回のハックのネタというわけ。
masuda@localhost:~/ruby-1.9.1-p0 $ make (ruby の make はすべて終了したとする) 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を使ってるから編集も楽だし、マジおすすめ。
http://anond.hatelabo.jp/20081105135432
彼女ができた。なんとHaskellerだ。
8月に参加したLLイベントで知り合い、10月から付き合い始めた。なんでLLイベントにHaskellerが…
これまで5人くらいのプログラマと付き合ったことがあるけれど、一般的なプログラマと比較して
といった点が目立つ。
見た目はLisperを少し丸くしたようなかわいらしさがあるのだけれど、要するに中身はPrologだ。
初めは戸惑いもあったが、案外こういうプログラマとつきあうのは楽で楽しいと分かってきた。
コードは深い問題もFizzBuzzのような軽い問題も内容を伴って書ける。
いろいろメタプログラミング・アロー記法・ユニコード演算子などを試そうとするなど好奇心が強い。
純粋関数型言語も習得しているというのに論理系の言語も習得しようと勉強していて向上心の強さがある。
IOモナドをコントロールできない自分に「おかしいな、普段はこんなはずじゃないのに///」と恥ずかしがる。
Haskeller、はっきり言ってオススメです。
問題はどうやって知り合うかだけれど、職場(あるのか?)という戦闘モードの時に誘うのではなく、.emacsなどを書いているオフタイムが狙い目としか。
初めの一歩が難しいだけで、後は一般的な女の子よりも付き合いは簡単かも。
ここみる 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
make && make test して出てきた not installed を f**k
=> install Test::Spelling
sudo gnome-terminal
cd /home/pc/.cpan/build/HTML-DoCoMoCSS-0.01
・・・いけたか?
・・・
・・・
・・・
はいむりー
おおどうもありがとうございます。
社会人暦は数年あるんですが、この業界に入ったのは今年の3月頃です。全く別職種から。
元々理系なんでCとかFORTRANのスパゲティコードくらいは書いたことがあったという感じでした。
自作PCは昔々に1台作りました。SATAの読み方は最近知りましたw
ジャンルはweb系ではないです。業務系でも組み込み系でもないですが。
ネットワークとDBはさっぱりです。あとGUIもわかりません。これはまずいと思っています…。
あと地味にUNIX系OSもよくわかってないです。
この前valgrindをインストールしようとしてよくわかんなくて諦めましたorz
今日はmakefileが上手く動かなくて発狂しそうになったりもしました。
emacsのキーバインドにも慣れないし、cygwinの日本語化も結局未だに上手く行かず…。
周りが優秀なので焦るばかりです。これは感謝すべきことですが。
プログラム一本で食べていけるとは思えないし、自分のやりたいこととも少し違うので、
プログラミングに関しては中の上から上の下くらいのレベルを目指そうと思っています。
あと1回は転職すると思いますし、今26なので、30までにはどこにでもいけるようになりたいと思っています。
それにしても憶えること多すぎですね…。全体がわかるようになるのはいつになるのか…orz
さあて、viでも使うか……
さあて、これからの時代はやっぱ、Kateだよな。
どっかの統合開発環境みたく、プロジェクトごとに開くファイルを設定できるんだぜ。
そうです、私がグヌウの信者です。
今日の話題はAutomakeです。
Automakeを使うと、何がうれしいのか。
それは、Makefileを書くのが楽になるからです。
Makefile.amにファイル名を追加するだけでよくなります。
Automakeを使うのに最低限必要なファイルは「configure.ac」と「Makefile.am」の二つだけです。
あとは、「autoreconf -i」とかしておけば、必要なファイルは全て自動で揃いますので心配ありません。
# プログラム名とそのインストール先ディレクトリ(ここではbin)の指定 bin_PROGRAMS = helloworld # プログラムhelloworldを作るのに必要なファイルの指定 helloworld_SOURCES = helloworld.c
# 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()
/* これは単なるサンプルプログラム */ #include <stdio.h> int main() { printf("Hello World!"); }
手順2: autoreconf -iを実行します
手順3: ./configureを実行します
手順4: makeを実行すると、helloworldがコンパイルされます。
ワンポイントメモ: 「ターゲットがありません」系のエラーが出たら、Makefile.amの記述ミスが考えられます。見直しをしてから、./configureからやり直すと、幸せになれるかもしれません。