「Perl」を含む日記 RSS

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

2015-08-05

androidが分かるからiosに手を出した。

サーバデータスマフォから見ることになった。perl必須と書いてあったけど、perlならやったことある

androidもやったことがある。iosはない。マックiphoneすら持っていない。

androidと同じようにサーバ情報を受け取って画面を表示するだけだと思った(受注者もそう思ってたらしい)のでiosも込みこみで受けた。

しかし、今、不安である。色々あって、この仕事に手をつけるのが延び延びになってしまい、営業に調整を任せているが、どうなることか。

知らない技術も「お前ならどうにかなるんじゃない?」といわれて、実際どうにかしてきた。しかしそれはちゃんと知っている人が傍にいたからだ。聞ける人がいたからだ。

ま、やっての後悔。仕事も、それ以外も気づくことがたくさんあったので、最終的にお金を払ったとしてもオレとしては悪いことじゃなかったよ。

iosはやったことなからできない”で断っては、今までの堅守過ぎる人生と変わらない。多少分からない技術でもいけ!っと思ったけど、無理だね。できたとしてもこんなに時間を持っていかれるんだったら寝ていたほうがましだよ。

この年になったら自分の持っているカードだけで勝負するしかないか。

2015-07-10

ジェイヴjava

フィップ php

ぴちょん python

ルバイ ruby

ペルリ perl

2015-06-16

なんつーか

http://b.hatena.ne.jp/entry/news.tv-asahi.co.jp/news_society/articles/000052631.html

perl使ってそうとか、SQL使ってそうとか、切断処理がんばってるけどさ、

裏を返せば、PerlDBを使えませんと公言してるようなものなんだけど、それでいいのか?

複数言語を使ってる人から見ると、アホに見えるぞ。

2015-06-13

プログラミングしたいけど、作りたいものがない

ゲームを作りたいとか、Webサービスを作りたいって欲があるんだけど、「さて、じゃあ何を作ろうか」って考えるところでいつも躓く。

MySQLPerlあたり使って掲示板でも作ってみるか。でも作っても別にそれを活用するわけでもないしなー、みたいなデモデモダッテな感じ、

何作ろうかなあ。

2015-06-07

おでんの集計

結局どうやるのが良かったんだろう。grepwcで頑張るには複雑すぎる気がした。

ツイートの取得のやり方は思いつかないんだけど、集計はmecabに渡した後Perlなりで名詞連想配列に放り込んでカウントダンプするのがよさそうかなと思った。

…量そんなないし手作業でやるのが一番だったかなぁ。。。

2015-05-13

http://anond.hatelabo.jp/20150513101541

これが真だと思うんだ。

元増田会計には詳しいかもしれないけど、会計以外のあらゆる分野に疎いでしょ。

PHPPerlRubyの違いとかわからないでしょ。

自分の詳しい分野で)みんな間違ってるからちゃんと勉強しろ

ってのは先人の態度としてはちょっと傲慢だとおもうなー。

2015-04-17

Webスクレイピングへの対応どうしよう

Ractive.js辺りを使ってWebアプリを作ろうと思ったのだが、

これを使うとPerlでいうHTML::QueryやRubyでいうNokogiriを使ってデータを抜き出すことができなくなるのだよな…。

かといってHTMLベタ書きするのは大変そうだし、

多少手間はかかるがレンタルサーバーなりPaaSを借りて、

後ろでHTMLを生成するとかのほうが適切なのかなー…。

2015-04-12

車輪の再発明無駄なのか

インプットアウトプットに着目すると対して変わらないように見えても

性能改善してたり

かい違いがでたりするけどな。

TMTOWTDI

Perlモットーを思い出してください:「やり方はいろいろある(ただし,それらのすべてが,同じぐらい優れているわけでも,また同じぐらい正しいわけでもありません.)」

2015-04-10

最近システムソフトウェア開発のトレンドが分からない

10年位前、上位のサイトから電文を受け取り下位のサイトに再配信するプログラムを、Linux上にC言語実装する仕事を引き受け、死ぬ思いで片付けた。

その時にお世話になったのが「UNIXネットワークプログラミング」という本。

この本、POSIX準拠OS(要するにLinuxなどのUNIX系OS)におけるシステムプログラミングのノウハウに関しては名著、いやバイブルと言っていい。


しかし、である

この本は今や絶版なのだ

名著が絶版になる理由は色々あるだろうが、この本に限って言えばもはやそういう時代じゃない、そういう低レベル実装トレンドじゃないということなのだろう。


でも、そしたら「決して遅延が許されない再配信プログラム」は、一体何をどう使って作るんだ?

JavaPerl?全くイメージが湧かない。

プロセス間通信やスレッド制御、更にはシグナルも使い、それらが高速で動作しないといけない(いやスレッドは難しすぎて結局使わなかったけど)システムで、そんなオーバーヘッドが高い言語は使えないと思うのだが。

それらを解決できる気の利いたライブラリフレームワークもなさそうだし。

なので、同じ理由PythonRubyダメだろう。

そうなると、メジャーどころの言語は軒並み使えないじゃん。

或いは回線スイッチを高性能にして、サーバリソースも上げられるだけ上げるというように、インフラ側の強化で解決しちゃうとか?

それとも、そもそもそんな仕事がもはや存在しないってこと?

2015-03-17

perl引数の渡し方の流儀がよくわからない

と思ったんだけど,ちゃんと以下に書いていた.

perlmodstyle - Perl モジュールスタイルガイド http://perldoc.jp/docs/perl/5.20.1/perlmodstyle.pod

引数ハッシュで渡すかハッシュリファレンスで渡すかの問題は主に個人的スタイル問題です。

ハイフンで始まるハッシュキー (-name) や全て大文字ハッシュキー (NAME) は、普通の小文字の文字列が => 演算子で扱えなかった 古いバージョンPerl遺物です。

ということで結論

もっと早く調べておくべきだった.というかちゃんと教材を読めということか.

2015-03-14

2ちゃんねる、新仕様APIへ移行するものの速攻で穴を突かれる

日本で最大規模を誇る電子掲示板サイト2ちゃんねるでは3/13から仕様API対応していない2ちゃんねる専用ブラウザは利用出来なくなった。

しかし、新仕様API移行に反発する有志達(主にオープンソースプロジェクトで開発れていた2ちゃんねる専用ブラウザユーザ)によって新仕様API規約の穴を突かれて突破されてしまっている。

仕様API規約によればWebスクレイピングJavascriptなどが禁止されているが、例えばPerlPythonシェルスクリプトなどのユーザスクリプトによるHTTPソースの改変は規制されていない。

そこで有志達は規約通りに新仕様APIを介して2ちゃんねるHTMLファイルを取得しユーザスクリプトによってHTMLを従来の2ちゃんねる専用ブラウザで読み込めるdatファイルへ変換する方法を編み出した。

ユーザが個人で楽しむ範囲HTMLソースdatファイルに変換するにのは法的にも問題が無いと思われ、2ちゃんねる運営にもそれらを規制する法的根拠を得るのは難しいと考えられている。

他にもルータフィルタリング機能DNSサーバー設定の変更で広告を表示しないようにしてしまうなど、2ちゃんねる運営は思い通りにならない2ちゃんねらー達にやきもきさせられてしまう格好だ。

今後の2ちゃんねる運営2ちゃんねらーいたちごっこが見物である

2015-03-09

http://anond.hatelabo.jp/20150309140548

そんなインサイダー情報じゃなくても

はてな社員が上げてる勉強会資料から察するに相当レガシーシステムだろうしそりゃ辞めたいだろ

 

はてブレガシーっぽいけどこっちはフルスクラッチ予定って言ってるし。

 

Perl人類には早すぎた感ある。

2015-03-08

http://anond.hatelabo.jp/20150308171953

案件としてJavaよりPythonの方が専門的で高度なことさせられそう

PerlPHPならどっこい

2015-03-05

営業出身の30代おっさんプログラミング人生を変えた話

俺の半生

大学一般教養Pascalを習った程度。専門課程に入る前に文法はすっかり忘れた。専攻は都市工学からその後プログラミングとは縁はなかった。卒業前に第一種情報処理技術者資格だけはとれてたのでプログラミングの何たるかとかオブジェクト指向なんかも知識としては知ってた。

大学卒業後にデスクトップユーティリティーのメーカー技術営業をやった。顧客製品仕様を説明するのが主な仕事なのでパワポばかり使ってた。その会社ではLinuxソフトも販売してたから、Linuxコマンドは打てるようになった。そこでシェルスクリプト習得しようと思ったがあえなく挫折

その後ネットワーク機器メーカー転職トラブルシューティングLinuxさらに使うようになった。そこではHTTPプロキシを主に扱っていたので、HTTPプロトコルについては一通り知識を身につけた。その知識を実際にLinux上でシミュレーションしてみたくなり、Cを習得しようと思ったがやっぱり挫折

部署移動でメールサーバーを扱うようになった。SMTPプロトコルの知識は身についた。ここでもSMTPLinux上でシミュレーションしてみたくなり、こんどはperl習得しようと思ったがやっぱり(ry

今はExchangeを扱ってる部署で働いてる。ここではExchangeメールメタ情報MySQL上で扱ってるからSQLSELECT文くらいは見よう見まねで使えるようになってる。

Pythonとの出会い

そんな俺も部下を持つようになり、デスクワーク時間が増え、比較自由時間が持てるようになった。そんなときはてブでみかけたCoursera(https://www.coursera.org/)で本当に偶然に「初心者のためのプログラミング」というコースを見つけた。

Programming for Everybody

https://www.coursera.org/course/pythonlearn

コース自体英語だが、別に教授と会話するわけではないし、Python文法以外は条件分岐や繰り返しといった過去挫折しながらも知識としてだけはぼんやりと覚えていたことの繰り返しだ。英語が少しくらいわからなくても、図を見ていれば何を解説しているかくらいはわかる。

結論から言えば、このコースを受講したおかげでいままで断片的に持っていた知識 -単語だけは知っていた「オブジェクト指向」、「条件分岐や繰り返し」「アルゴリズム」などなど- がパズルピースのようにかっちりと組み合わさり、Pythonが難なく習得できた。いままでにシェルスクリプトやCに挫折したのがウソのようだ。LinuxHTTPSMTPSQLといった周辺知識も余すところなく役に立った。何のことはない、Pythonの標準ライブラリを使えばHTTPSMTPシミュレーションなんて簡単にできたのだ。以前トラブルシューティングで夜中まで手作業でちまちまやっていた作業は、全部Python一発で解決したんじゃないか。

このコースをきっかけとして、俺の人生(といってはおおげさだが)が大きく変わった。小さいところで言えば、自宅PC上でバックアップにつぐバックアップでわけのわからなくなったフォルダ構造の中から、同一のファイルを探し出し削除できるようになった。(傍から見れば何を大げさなと思うかもしれないが、ここ10年くらいの俺の中で最大の懸案だったのだ。)仕事でも日次で発生する業務をバッチ化したり、繰り返し発生する手作業を全部Python自動化した。(経営陣へのレポート作成とかそんな類のものだ。)おかげで残業どころか定時前に帰宅できるようになり、自由時間さらに増えた(笑)

ひとつ言語習得してしまえば、あとは同じことの繰り返しだ。増えた自由時間を利用して、いまはPHPJavaScriptjQueryを身につけて何かWebサービスを立ち上げようと目論んでいる。出来上がったら、またここでそれまでの道のりを紹介したいと思っている。

こんなことが自分の身に起こるとは、1年前の自分には想像すらできなかっただろう。それまでは「Webサービス」なんて言葉自分とは一切縁がないと思っていたから。

欲を言えば10年前、いや5年前でもいいからこのコースに出会ってPythonを身につけていたら、今とはまったく違った人生を歩んでいたかもしれない。

コースを開講した教授との相性もよかったのだろう。彼の人柄にも好感をもてたし、「for Everybody」というだけあって、非常にわかりすい説明だった。英語だということを差し引いてもこのコースはおすすめだ。

3/6/2015 追記

たくさんのコメントありがとう。こんなチラ裏文章ホッテントリ入りしてかなりびびっている(笑)

いくつかのコメントに返答したい。

こういう反応があることは投稿したときに予想はしていた。だが、何がきっかけでプログラミングを身につけたのかを具体的に書かないと、何の役にも立たない本当のチラ裏になってしまうので、コース名を書くことにした。だがこのコースをはてブで見つけたのは単なる偶然だ。このとき見つけたのがドットインストールRuby講座だったら、Coursera→ドットインストールPythonRubyになっていただけのことだ。ここで言いたかったのは、断片的でも一度触れたことのある知識は後になってどこで役に立つか分からない、ということだ。Steve Jobsも言っていたが、「人生を振り返ったときに点と点をつなぐことはできるが、その点がなんの役に立つかをあらかじめ予想することなんてできない」ってやつが自分にも起こった、それだけのことだ。

なお、Courseraのこの教授自分の授業内容をすべてオープンにしている。http://www.pythonlearn.com/ 教科書さえもここで無料で手に入る。Courseraに登録するのに抵抗があり、自習上等という人はここで俺が受けたのとまったく同じ内容を確認することができる。ちなみに授業はすべてYoutube上で公開されている。

  • 「なぜPHP?Pythonでやればいいのに」について

これについてはまったくその通りだ。ただ、もう新たな言語を覚えることにまったく抵抗がなくなったのと、PHPRuby on RailsWebサービス界ではメジャーらしいので、とりあえずPHPもやってみよう、くらいの軽い気持ちで思いついただけだ。ひょっとしたら実際にはPython+Djangoとかで開発するかもしれない。

今日初めてpython触ったけど

良さがちっともわからなかった。少なくとも他から際立った良さみたいなのはなかった。

インデントだけで入れ子関係判断するっていうのは保守性とか可読性とか上がりそうで期待してたんだけど、実際書いてみたら見づらいし閉じカッコを書かないのがこんなに気持ち悪いとは思わなかった。

あと入出力も意外と面倒。フォーマットとかエラー出力とかもっと単純にかけたらいいのに。

エラー出力について調べてたら基地外みたいにエラー出力の作法について熱弁してる記事見かけてやや引き。

関数引数も参照だけど参照じゃなかったー!みたいな感じで中途半端だし挙動がわかりづらい。

ネット上にある資料も以外と少なくて、perlのほうがよっぽど調べやすい。

慣れればなんでも使いやすいだろうけど期待が大きかった分なんかがっかり。本当にみんなpython使い始めてんの?

2015-02-28

http://anond.hatelabo.jp/20150228173819

アメリカの凄腕ハッカーに全角スペースを混入したプログラムを渡してデバッグをお願いしたら、数時間悩んだ挙句発狂したって話もあるから、全角スペースは難しい。

という話だけを単独で見ると、そういう話があると思う理由はないね

だって

がどれも書かれていないから

このエピソードは誰でも適当に作れるし、誰でも簡単に拡散できるし、誰も裏が取れないし、誰も「俺はそんなことはしなかった」とか「○○言語ならコンパイル時/実行時にこんなエラーが出るからありえない」と否定することもできない。

すなわち、信じる理由がとくにない。

twitterでその話の内容を呟いた人は Perl関連のセミナー(?)のタグをつけているから、Perlの話なのかもしれないが、はっきりとは書かれていない。「人から聞いた話なので詳しいことは分からない。Perlの話かどうかも知らないが、たまたまPerlの話のときに引き合いに出した」という可能性も十分考えられる)

2015-02-19

仕事のできない天才プログラマの後輩

酔っているからとりとめのない内容になるかも。

本人に言えとか、増田に書いてどうなるとか言われるんだろうが、本当にただの愚痴から、この記事でどうこうしようってわけじゃない。

ただ吐き出させてくれ。

うちみたいな弱小ベンダー新卒で入ってきた後輩がガチ天才プログラマだった。

だが、その手の天才の御多分にもれず協調性に難ありで、大手をふられてきたのだろう。

入社後の研修期間中、そいつは1週間で3万行のHaskellコードを書き、独自社内wikiシステムを完成させた。

超使いやすい。

ただし、その1週間、そいつは1日も会社に来なかった。

研修終わって俺の下でプロジェクトに参加するようになっても、使いづらいったらありゃしない。

まず、俺がやれと言ったことをやらない。

もっとエレガントなやり方があるのに、なんでそんなやり方をするんだと言ってきかない。

それはな、お前の好きなエレガントな解法で解決できるのは、お前の目の前にある問題だけだからだよ。

システム全体、保守運用人材確保、全領域から見た折衷案しかエンジニアリングでは解法として採用されないんだ。

お前の馬鹿にするPerlだって、30年にも渡る資産の蓄積には、いくらお前一人が頑張ったって、勝てやしないんだよ。

でもこいつ、本物の天才だし、うちみたいなところで腐らせておくには惜しいんだよな。

Matzみたいに、全く新しいことを初めて、勝負しろとは言ってるんだが。

2015-02-02

不正アクセスされた

まえがき

恥ずかしすぎてハンドルネームでやってる自分ブログにすら書けず、かと言ってどこかに吐き出したくはあったのでここに書いておく。

見た人は存分に笑い飛ばして欲しい。


不正アクセスされたことについて

先週、趣味で立てたVPSサーバー(CentOS 6.5)のCPU使用率が、気付くまでの9時間ずっと100%になっていた。

作動中のプロセスを見ると、2つのperlプロセスがその原因であることが分かった。

そのプロセスユーザー「postgres」によって実行されたプロセスだった。

postgresは、PostgreSQLインストールすると勝手に作られるユーザーだ。

先日自分PostgreSQL9.4をインストールしたので、このユーザー存在自体問題無い。

その時このpostgresに、「postgres」という簡素パスワードを、passwdコマンドで設定した。

特に理由はない。その時理由を聞かれていたとしたら、

「まぁ無いよりはマシなんじゃね?サーバー内でしか使わないユーザーからハッキング心配とかないしどうでも良いけど〜。」

と言ってたと思う。

その程度の認識だった。

これにより下記コマンドでpostgresとしてサーバーに入れてしまう状態になっていた。

$ ssh postgres@my.server.address.com

実行するとパスワードを求められるが、もちろんそれは前述のパスワード「postgres」だ。

それまではパスワードを設定していなかったので逆に助かっていた。

パスワードが設定されていないユーザーにはsshでは入れないからだ。

「もちろん」というが、それまではユーザーパスワードsshで入る時のパスワードになることを知らなかった。

そしてそれだけで接続可能になる可能性があることを知らなかった。

sshサーバーの設定はひと通り、自分が使っているVPSサービスがやってくれており、多分大丈夫だろうとそのまま使っていたからだ。

それでハッキングされ、そいつに謎のperlスクリプトを走らされていた。

具体的なスクリプトファイルや.bash_historyは消されていたようで、どんなものを走らせられていたのかよく分からない。

踏み台としてどこかにDoS攻撃していたんだろうか。

ハッキングであることを知ったのは、/var/log/secure を見たからだが、そもそもこの自体に陥るまで /var/log/secure の存在とその役割を知らなかった。

「ポスグレ(PostgreSQL)がなんかバグったわ〜でも原因がよく分からんわ〜ヒマだしハッキングの可能性も考えとくか〜でも絶対ポスグレがバグったんだわ〜」

でググって初めて知ったぐらいだ。

それで見たらパスワード設定してから9日間でそれぞれ別の端末23から不正アクセスを受けていたことが分かった。

VPSサービスコントロールパネルを見ると、その内の1件が侵入した3分後にCPU100%現象が始まったので、十中八九そいつ仕業だろう。

それ以外の連中が何をやったのかは分からない。

からないのでOSを再インストールした。DoS攻撃だったらあとで攻撃先に訴えられるかもしれないので、全データを家のパソコンDLする事で証拠(?)を保存してから

不正アクセスに気付いてからやったこと
1. パスワードによる認証原則不可にした

/etc/ssh/sshd_config には、sshサーバーの設定が書かれている。

その中のPasswordAuthenticationをnoにし、公開鍵暗号方式による認証のみ受け付けるようにした。

2. ユーザー「postgres」のパスワードを削除した


3. http://www.websec-room.com/2014/02/09/1822 を全て適用した




他になんかやることとかある?おしえてぴょーん

2015-01-29

初めてじゃなかったCの思い出

今やプログラミングといえば、Webなどで使われるような高水スクリプト言語中心のアプリケーションプログラミングが主流だ。

そんなこともあり、もはや以前の低レベル言語によるシステムプログラミングの苦労など、タダの昔話である

そこに来て、実際は齧った程度の分際で、性懲りもなくそんな昔話を書いてみる。


今も昔も、基本的に難しい仕事無茶振りから始まるものだ。

少なくとも10年位前に自分が手がけた(押し付けられた)仕事はそうだった。

大学で初めて触ったC言語しかポインタからないで止まっているような奴に、電文の再配信プログラムを任せたのだから


客は「遅延が絶対許されないシステムなのでJavaとかPerlとかはやめてねー」とにこやかな笑顔かつ笑ってない目で注文してきた。

そうなるとC/C++くらいしか事実上選択肢がない。

このうちC++は、Java経験がある自分からしても仕様が膨大かつ複雑すぎて、とても手に負えないと感じ、必然的にCで書くことに。

勿論Cの言語仕様がKR本一冊で収まるほどコンパクトであっても、それが簡単であることを全く意味していないというのを開発早々に思い知らされたのだが。

あ、Cと言えば電文提供側の機関が受信用のスケルトンプログラムを一応は用意してくれていたが、どう見ても電文受信中に接続が切れた時のことを考慮していない内容で、全く参考にならなかった。

その時点で相当ヤバいである


コード書きにおいては、例え一人屋台の俺ルールであろうが、コーディング規約のようなもの絶対必要である

その時のルールは「gccオプションに"-Wall"を入れた状態で、Warningゼロになること」にしてみたが、その途端、日付変更線をまたがない限り退社できない生活が始まった。

というかオブジェクトを使えないだけでも地味に辛いのに、更にCの言語仕様コンパクトである以上に原始的と言っていい代物で(だからWarningは基本無視できないのだ)、しか言語仕様以外の環境依存要素が山積していると来たもんだ。

そんな言語システムコールだらけのコードかつ複数ファイルディスクリプタの同時監視(即ち非同期でノンブロッキング)しかマルチプロセスシグナルもあるよ!とか、お客さんは俺を殺す気か、そもそも完成させる気無いだろとか、今だったら思う(当時はそう思う余裕もなかった)。

仕方なく最初のKRに加えて「UNIXネットワークプログラミング」をわざわざ東京に出かけてまで買って読み漁った。

後にも先にも、古今東西の名著と呼ばれるような本を、泣きながら読んだのはこの時だけだったりする。

そこまで凄い良書なのになんで絶版になったんだか。


いかし、それでも「子供を殺しても死なない」、かなり前の処理での領域破壊のせいで突然プログラムが止まっちゃうなどなど、やればやるほど問題が出る。

シグナルを受信し、仕様のとおりに処理するのがこんなに難しいのか!と途方に暮れたこともあった。

そして途方に暮れても解決の手段になるような便利なツールもなければライブラリもない。

結局、「ある程度正しく動いたら、あとは出来た所まで」で勘弁してもらってようやく開放されたが、今でも当時の自分仕事ぶりには全く満足していない。

無駄に頑張ったというか、頑張っただけの仕事であり、折角低レベル実装というCの本領発揮分野の案件でありながら、スレッドmalloc()、可変長引数は遂に習得できなかった。

こういうプログラムって、どうやったら正しく動かせるんだろ。


このような経験を経て、後年、Cやシステムプログラミングを指してギークな人々が

Cはとても高効率ですし、マシンリソースもドカ食いしません。残念ながら、Cがそれだけの効率性を実現するには、あなた自身が低レベルリソース管理(たとえばメモリ管理)を手作業でやってあげなくてはならないのです。それだけ低レベルコードがあると、複雑でバグも起こりやすいし、デバッグですさまじい時間をとられることになります今日マシンはずいぶん強力になっているので、これは通常は悪いトレードオフです――マシン時間を少し非効率に使っても、あなた時間をずっと効率的に使う言語を使うほうが賢明でしょう。

本物のプログラマアプリケーションプログラムなど書かず、まっさら金属板にゼロから書き込んでいく。アプリケーションプログラミングなど、システムプログラミングのできない弱虫のすることだ。

と言っていたことは正真正銘の事実であると痛感した。

あと、あれほど苦手だったポインタについても、「ポインタ理解できないと永久にC初心者」というのを嫌でも理解した。

あれはギターのFコードやSEALsのヘルウィークみたいなもので「習得できなかった者にとってはキャリアの終わりを意味するが、習得できた者にとっては始まりですらない」ものなのだ


・・・で、これだけで終わってしまうと本当にタダの黒歴史だが、これには少しだけ嬉しい後日談がある。

それから数年後、やはり電文転送系のシステムで、かつて自分がCのソロプレイでこなしていた規模の数万倍はあると思しき超大型案件助っ人の「兵卒」として参加したのだが、そこはインプラとアプリでチームが分かれており、アプリ側だった自分

配列ポインタ構造しか使わないで済むなんて、なんて楽な仕事なんだ!」と左うちわのんびり過ごし、しかも高評価をいただいて帰ってこれた。

実は今までの案件で一番幸福感が最高だったのは内緒である

2014-12-02

僕はもうプログラミングしなくていいんだ

大学回生の夏、下宿の扉に「出入禁止」とチョークで大書し、親を呼ばれて精神病院に連れて行かれた。

 

パソコンを買ってもらったのは小学三年生の冬だった。今でも覚えている。1996年12月2日のことだ。Windows95発売で世間は揺れていた。インターネット回線がうちに来たのは翌97年の1月、これはそこそこ早い導入だったと思う。さらに翌々年の99年にはケーブルテレビ常時接続になった。親には先見の明があったが、しかしパソコンには詳しくなかった。PC-8001も確かそうだ。親はこれが次世代の必需品になると確信して買っていたが、買った一方で使い道が分からなくてオブジェとして放置していた。親はPC-8001パソコンだと言っていたけれど、僕にとってパソコンはおっきなテレビが標準で付属しているものだったし、マウスもなかったので、それがパソコンだとは到底思えなかった。でも親は言った。今度来るのは違うんだ、オフィスも入っているパソコンなんだ。僕は聞いた。一太郎っていうやつは入ってないの?テレビで言ってたよ、と。親は答えた。オフィスってのは一太郎より機能がスゴイんだよ。僕はへぇ、とだけ言った。どちらにせよペイントは入っているだろう。ペイントなら親戚の家で使わせてもらったことがある。パソコンお絵かきができるのだ。マウスをカチカチして、キーボードをカチャカチャするのだけが楽しみで、納品の日を一週間ひたすら待った。その頃、漢字宿題提出が滞っていて、そのままでは居残りでさせられることになっていた。僕は久々に奮起した。いつもは踏み倒していた宿題を、全部一気に終わらせた。家に帰るとパソコン電気屋さんの手で設置されつつあった。今は亡き、ニノミヤで買われたパソコンであった。

 

97年にインターネットを始めた。一日一時間まで。実のところ電話代の問題ではなく、一時間ほど使うとブルースクリーンが発生するからだった。一日一時間以上動かすと壊れるから。PC-8001キッチリ買った親なのに、それぐらいの(?)ITリテラシーであった。ただ別にそれを責めるつもりはない。僕はすぐにアングラサイトに入り浸った。人に飢えていたのだ。普通のチャットには人がいない。テレホタイムにならないと、誰一人ログイン氏亡いのだ。でも、アングラサイトなら四六時中書き込みがある。僕は思う存分厨房行為を楽しんだ。煽り騙りなんかは、小学生がやっても大人がやっても大して変わらないものだ。You is a big fool manという文句をリアルタイムで目にした人は、多くても数百人だっただろう。何千、何万のツイッタラーが押し寄せ、ブクマが1000以上付くような今の炎上とはほど遠い暢気さだ。当時の匿名掲示板とはそういうものだった。誰一人本気で投稿しなかったし、しかし誰一人面白くない書き込みをしようとはしなかった。トイレでもネタを考え、思いつけばすぐに投稿し、ワラタが付くのを待ち続ける。あやしいあめぞうあやしい、2ch。人の多いところから人の多いところへ。ワラタが多くもらえる場所へ。気づいたらインパクが終わっていた。

 

その一方で僕は中高一貫私立校入学していた。高校受験がないことから、ネット依存さらに加速した。しかし2000年を境にアングラ掲示板は衰退の一途をたどり、2ch一強時代を迎えていた。1ch.tvボコったりするなど楽しいネタがないわけではなかったが、匿名掲示板ネタの宝庫と言うより、本気でちゃんと議論することもできる場所になり始めていた。ちゃんと議論しようとしたらすぐさま崩しにかかるのが2ch隆盛以前の匿名掲示板文化であったが、2003年頃を境にはっきりと潮目が変わっていったように思う。まあその辺はどうでもいい。アングラと非アングラの境目は消え始めていた。

 

その狭間に、僕は生きていた。

 

自分掲示板を設置することにした。けれども何をして良いのか分からない。CGIレスキューに救援要請をして本も買った。Perlだ。Perlしかない。しかしPerlがどうして動いているのかは、全く分からなかった。何十行、何百行もの文字の羅列が、どこでどうなって、掲示板になるのか。インタプリタコンパイラ?訳が分からない。そもそもCPUがどうやって動いているのかも分からない。僕にとってプログラムとは、セットアップウィザードCD-ROMをギュンギュン言わせながらインストールするものであって、掲示板というものは、Teacupで借りるものだったからだ。でもどうやらそうじゃないらしい。コンピューター翻訳するのがコンパイラです。さっそくコンパイラを使ってみましょう……

 

お手上げだった。

 

コンパイラがないのだ。コマンドプロンプトにはない。Linuxを入れる?使い方が分からない。Vine Linux初心者お勧めだった頃の話だ。ボケッとしててもGNomeぐらいは動かせる程度には簡単になっていたが、そこからターミナルを開いてgccでコンパイルするなんて想像も付かないことだった。Hello, Worldはなんとか表示できても、それをGUIで動かす方法が分からない。僕はデスクトップに「Hello, World」のポップアップウインドウを表示させたかったのに。全然訳が分からなかった。

 

プログラムが動いている方法を知らなければならない。プログラミングを学ばなければいけない。しかし全体像を把握するにはあまりにもほど遠い……。絶望感が支配し始めていた。Hello, Worldはできたけれど、その先が全くわからない。どの参考書を読んでも分からない。ググってもググっても分からない。ポインタで躓く初心者が多いです!……どの本にも書いてあったけれど、僕はポインタどころか、変数の種類がたくさんあるところでお手上げだった。int?char?long???意味不明文字列が並び続ける。メモリメモリって、挿したらいいんじゃないの?確保?fopen????どんなプログラミング言語も、何一つ分からなかった。その頃インターネットは加速し始めていた。切るのが当たり前だったJavascriptが復権し、Ajaxと名を変えてやってきた。掲示板スクリプトもどんどん高機能化し、もはやPerlを知るだけでは何一つできないようになってしまった。苦痛の日々が始まった。どの言語も、全く分からなかった。分からなければならないという焦りが募っていった。

 

あるとき、一年間ほど、とりあえずお手上げのままにしておくことにした。大学受験が迫ってきたからだった。そして案外あっけなくそれは終わった。僕は某大学情報科学科に入った。

 

教授ガイダンスで説明したとおり、情報科学科のプログラミング演習はそれほど多いものではなかった。一回生の時なんか、キーボードを目で追って人差し指で打っている人もいるぐらいだった。学校の授業はアテにならない。そして大学受験でいったん引っ込んだ、とにかく十代でなにかしないと、という焦りが復活してきた。

 

大学キャンパスは広すぎた。何をして良いのか全く分からなかった。授業内容はひどくつまらなく、何が役に立つのかも分からず、ただただ苦痛で、キャンパスサークル活動に打ち込んで楽しく過ごせるほど社交的ではなく、かといってオタク集団に混じる勇気も無く、とにかく、とにかくここで四年間、四年間で何かしないと、何かしないと就職に間に合わない、大学院進学に間に合わない、十代のうちに何か大きな事を成し遂げなければならない。日々研鑽に励み、日々プログラミングスキルを磨き、日々勉強会に参加し、日々コードを書き、日々環境設定をし、日々本を読み、そして日々コードを美しく書かなければならない、そういう焦りだけがどんどん加速していった。大学生協で片っ端からプログラミングの本を買った。ド初心者向けのPerl本から、美しいコードは何か、みたいな本まで。でも、どれ一つ、僕のスキル向上には役に立たなかった。プログラミングスキルの向上=自分自身の地位=生活の保障、と思っていた自分には、悪夢のような現実だった。

 

とにかくインターネットと一緒に歩んできた僕にとって、ITスキルはすなわち力であり、むしろITスキル以外は何の価値も持たないもの、と思えるほど脅迫的な観念にとらわれていた。入ってくる情報さらに増えていった。Cができるのは当たり前、Ruby on Railsがアツい、Java、PHPはもちろんできるよね、MySQLは当然使えるよね、もちろんHaskellSchemeObjective-Cもやらなきゃね……何一つできないのに、習得すべき言語だけがどんどん増えていく。加えて美しいコードを書け!という文句が飛んでくる。クソッタレが。何が美しいコードじゃ。goto使ってもいいだろ。好きなだけ使わせろクソッタレが。全部getsで書いてやる。クソが。アルゴリズムアルゴリズム勉強会勉強会ビューティフルコードMacMacMacジョブズジョブズジョブズ……???????????????

 

それでもなんとか、そう、なんとかなった。友達が優秀だったのだ。僕には到底できないような、きれいに整理されたコードを書く人だった。聞けば在学中から外注プログラマをやっていて、それなりに稼いでいたのだという。性格ちょっとアレで、風俗に勇気を出して行こうかどうしようか迷ったけどその金でオナホ買ってシコってオナホを床に叩きつけたみたいなヤツだったけれど、そいつからもらったコードを、わざと汚く成形し、変数名も汚らしくし、提出し、なんとかなった。結局自分最初から最後までプログラムを作ることはできなかった。丸々コピペはしなかったけれど、コピペがなければ卒業は無理だっただろう。

そうして三回生の終わり、試験がどっと押し寄せてきた。一月のことだった。機械学習と……なんだっけ?そういう感じの試験が、2月の初日、行われることになった。三回生はただでさえ試験が多かったが、その大トリこそが機械学習だったのだ。

 

僕は試験放棄した。

 

まるで意味が分からなかった。推論、それは分かる、機械学習機械学習??やっていることは数式だしベイズがどうの……まるで分からない。泣きそうだった。三年間必死こいて勉強したり勉強会に行ったりプログラミングスキルを上げようとしたり本を読んだり色々したのに、何一つ得るものは無かったのだ。僕はあやしいわーるどオマンコ連呼していた頃から、何一つ成長出来なかったのだ。そしてそれは、間違いなく、疑いようがなく、自分のせいだった。自分頭が悪いせいで。自分の勉強不足のせいで。自分のせいで……コンピュータとともに、十何年も育っていた僕にとって、コンピュータに関するスキルこそが、全ての力の基準だったのに、その全てを否定されたような気持ちだった。プログラミングができなければ、死ぬだって友達はみんな就職して、SEになったりSIerで働いたりネットワーク管理者になったりしてるのに、僕はなんで、こんなところに。そいつらに取り残されるのに。みんな勉強会に出てMacを持ち寄ってハッカソンしてるのに。泊まり込みでプログラミングしたりしてるのに。なんで僕は、fgetsすらマトモに使えず、getsとscanfだけであなた名前を入力してください オマンコ オマンコさん、こんにちは!みたいなプログラムしか書けないんだ。

 

大学回生になった。研究室を選択する必要があったがしなかった。しないでは困るとのことで、適当に書いたらその一番上に配属された。でも一切研究せず、下宿に引きこもって何もしないをした。今日輪講はここまで進みました!という報告が毎週回ってくるが、まるで研究室では日本語でなくアラビア語公用語になっているのではないかと思えるぐらいの光景だった。この頃、近所の人の証言によれば、言動がおかしく、訪ねてきた人に暴言で返し、殺す殺すなどの声が聞こえ、時折モノを投げつける音が聞こえたりしたそうだ。まあよく知らない。僕は普通に何もせずぼんやりネットを見ていただけのような気がするけど。

 

それからしばらく経った。

 

結局僕は中退した。そして別の大学に入り直した。今度は、工学じゃない別の場所に。みんなキーボードの文字を読みながら指先でキーを叩いている。安心する光景だった。僕らはプログラミングを習わなくてもいい。これから習う必要も無い。タッチタイピングだって、できるに超したことはないだろうけど、できなくてもいい。ただ、そこにある便利なモノを使えば良いだけなのだChromeを使っていて、うっかり開発者向けコンソールを開いてしまっても、何も分からなかったことにして閉じて良いのだ。きっとマクロを書けば、楽ちんに勝手にやってくれるような作業を、人の手で何度もやる。それでいいんだ。マクロを考えるために必死になる必要なんか無い。マウス右クリックコピーペースト。それでいいのだ。キーバインドすら覚えなくて良い。メモ帳を使ってもいい。viやEmacsキーバインドを覚えなくてもいい。マウスも使えないようなエディタと格闘する必要は無い。Macを買っても、XCodeportsを入れる必要は無い。iTunesiPhoneを同期させて、音楽を聴くだけでいいんだ。

 

僕はもうプログラミングしないでいいんだ。

 

それが分かったとき、全てから解放されたような気がした。僕を苦しめ続けたプログラミングというものは消えてなくなった。パソコンでやる作業は、昔と一緒、匿名掲示板オマンコと書き込むだけだ。それ以上のことをしなくてもいいんだ。勉強会に出てハッカソンする必要は無いんだ。プログラミングスキルを錬磨しないと死ぬなんてのはウソだったんだ。美しいコードを書かないと天罰が下るというのはウソだったんだ。毎日毎日はてブホッテントリを見てると、プログラミングマスターしなければならないこと、何何する方法開発者必須スキル、便利ツール、Macでのアプリ開発、セキュリティ、通信、データベース勉強会ハッカソン、そういうもので溢れている。苦しくないのか不思議で仕方ない。もちろんプログラミングをしていて楽しい人もいるんだろう。けれど、僕みたいに、プログラミングという行為が苦痛で苦痛で苦痛でしかない人もいる。たとえ1000回の同じ操作でも、人力でやる方がマクロを書くよりも楽だという人も、ここに存在するのだ。そしてそのような人の存在も当たり前に肯定されるのだ。みんな苦しまなくて良いんだ。誰かが勝手にやってくれればいい。できる人にお金を渡して、僕らはそれを享受するだけで良いのだ。ここでプログラミングという言葉を連呼したけれど、コーディングという言葉との違いとか、そういうのを気にするような人とおつきあいする必要は無いのだ。いずれプログラミング必須スキルになるとか言われて何年も何年も苦しみ続けてきた。けれど、そんなことをする必要は無いんだ。

 

さようなら。僕はもうプログラミングしません。

 

 

 

 

それでぶっちゃけここからが本番なんだが、十代でなんとかしないと、という焦りはこないだの青木君の小四なりすましの話に似ている。僕もそうだった。僕らの世代だと登大遊氏なんかが結構輝いてて、ああいう感じにならなきゃ、と思っていた節はある。十代の時になにか成し遂げないといけない、そのためには誰かに認めてもらわなければならないという焦りは、どれくらいの「大人」に理解してもらえることなのだろうか?誰かの承認を得たいという承認欲求を、同じ世代の誰かを使って満たすことができず、むしろ同じ世代の誰かを一緒に引き連れて、承認欲求を満たしてくれる「教祖」にすがりつく。NPOの大学生が「承認」を欲し、政治家が「承認」を与えているのだ。AO入試用の作文?図?みたいなものも見かけたが、「私はリーダーシップがあります!」とか実にくだらないことしか書いていない。しかしそういうものでさえ、学生団体とやらは「承認」してくれる。結局、オウム真理教が丸ごと開けたポジションに、バラックが建ち並び闇市が行われていて、コミュニケーションで自然と得られるはずの承認欲求が、法外な札束で取引されている、そんな感じのような気がする。

 

意外にブクマが増えていた。PC-8001は俺が産まれる前に買われたもので、ずっとオブジェだったのだ。動くかどうかもわからない。テレビに接続するコードがなかったから。

2014-11-08

http://anond.hatelabo.jp/20141108111513

元々Perlプログラマだったろ。

自分では1流じゃなかったつってるけど、凡百プログラマよりは上だろ。

2014-09-25

前に動的型の言語はめんどくさいだろって記事を書いたら

http://b.hatena.ne.jp/entry/anond.hatelabo.jp/20140522162254

↑動的型の言語信者が「お前テスト知らないの?」みたいになテストがあるから型チェックいらないみたいな反論してきたけど、

http://gihyo.jp/news/report/01/rubykaigi2014/0002

Rubyは静的型の要素を検討してるって話だし、Python検討中らしいじゃん。

ここらの言語に静的型チェックの要素が導入されたら、信者も「この機能便利だわ。さすがmatz」とか手のひら返すんだろうな。

スクリプト系の言語のよさって記述を簡潔にできるってことで、型が動的な部分はそれとは関係ないんだけど盲目信者は好きな言語を全部肯定しないと気が済まないんだよね。

静的型で記述が簡潔な言語が勃興してきてるからスクリプト系の言語はその役目を終わりつつあって、10年後にはPerlみたいに衰退してると思う。

その時は、信者の人たちも、動的型バンザイしてたのは若かったころの黒歴史として胸にしまって「やっぱ静的型は素晴らしいわ」って改宗してるんだろうな。

平和な世の中になりますように。

2014-09-21

PerlからPythonに乗り換えようかと思う

steamとかゲームサービスをつなぐツールgithubにあってpythonjavascriptなどが多い

perl製がほぼない

これからwebで生きていくにはpyothon,javascript(node.js)なんだよなぁ

perlモジュールがそういう最新技術っぽい部分がおいつてなくてしょぼい

websocket,非同期,xmpp,rtmpとかperl資料が増えてほしいわ

Mojolicious使わないと無理らしい、めんどくせー

2014-09-05

http://anond.hatelabo.jp/20140905152346

http://anond.hatelabo.jp/20140905152302

あ、いや、全然上級なことはなくて。

単に「社内にある昔ながらのモノ」を使わないといけないというだけで・・・

今どき代表FTPしかftpsでとか。一社に一台Windows Active Directoryとか。

特にAD、つなぐのにldap://ではNGldaps://じゃないとダメ(書いてねーぞ!)とか、

 my $charmap = Unicode::Map8->new('latin1') or die;

 my $uniPass = $charmap->tou('"' . $password . '"')->utf16le();

とかPerlに慣れてもイミフな事しないとダメとかね・・・

で、Active Directoryのついでに、データベースグループウェアとレン鯖のメールアカウントも同時に登録しないといけない。

零細企業でよくありそうなカオス管理者業務ですね。

共感かいらないです。もう、ただの愚痴だったと思って下さい。Rubyから始めていたら挫折したに違いない・・・ただそれだけです。

すみません

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