「VisualBasic」を含む日記 RSS

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

2017-03-28

私が死んだら代わりはいない

なんとかならないこともないだろうが、結構大変な事になるに違いない。

というのは、完全に内製の、パソコン上でスタンドアロンとして動作しているシステムがある。

これは私が独自に作ったもので、VisualBasic for Application(Excel)って奴だ。

 

ある業務を別の人から引き継いだんだが、そいつは大して引き継ぎ資料も残さずにさっさと辞めてしまったもんだから、私はかなり大変な事になった。

彼はパソコンといえばExcelくらいしか使えず、プログラムなんか全く書けない人だった。

でも、やたらと毎日一人忙しく仕事しているので社内的評価もそこそこ高い人だったのだが、引き継いだ私は彼の仕事振りに唖然とする羽目になった。

どう考えても、私から見るに自分勝手に金にもならないのに仕事を増やしていただけ、としか思えない。

詳しい事は書ききれないので、ざっくり言うと、「なんでそこまでこの業務を複雑にしたんだ?」って感じ。

しかし、今更その業務簡素にする事は最早無理な状況。

そこで考えあぐねて、業務自体簡素にする事は出来なくとも、業務を処理するシステムを組むことにより仕事を減らそうと決めた。

IT系会社では全くないし、社内にもそんな人材はいない上に個人の考えで外注業者に依頼するわけにもいかいから、独力でVBAを学び、業務を進めつつ四苦八苦してシステムを完成させた。

出来上がったものは、使う分には誰でも簡単に使う事が出来る様になっているので、実際私自身がメンテナンス以外では使う事もなくなり、もっぱら部下にやらせている。

効率が上ったなんてもんじゃない、前任者はその業務に掛かりっきりだったが、私は普通に他の業務をいくつか抱えても特に大きな問題もないほどである

 

だが、劇的に効率上げて実質的コスト削減までしたのに、会社は私のことをまるで評価しないどころか、前任者より仕事をしてないという目で見てくるので正直頭に来てて退職を考えている。

で、そのシステム個人的に作ったものしかいから、仕様書なんてあるはずもなく、勝手に触られても困るのでソースコードを弄られないようにパスワードロックを掛けてある。

さらに、ある時期以降そのシステム更新しないで使うとその業務に支障を来たす為、内部的にタイマーセットしてその日以降は使えないようにもしてある。

それがあと二ヵ月後。 

 

うそう、そのシステムに載せれば問題はないと、調子に乗って前任者より業務さらに複雑にしてしまったんだけど。

どうなっても俺は知らん、ぞと。

 

追記:

id:mazmot

業務改善? 簡素しろという意味なら難しすぎて無理。例えるならば今更Core i7を8086に出来るわけがないって感じっすかねw

id:aukusoe

使えなくするのは嫌がらせではなく、業務仕様がその時期に変わる事が予定されてるからです。誤って使わないようにとの配慮ですよ。

id:houyhnhm

これも同様、嫌がらせではなくて、業務上理由からそうしているだけです。パスワード開示請求があれば即座に応じますよ。金貰ったらメンテナンスも考えなくもありません。

追記2:

まぁ、私がいなくとも何とかならんこともないだろう、という事は冒頭に書いたとおりです。

もうちょっと考察してから書くべきでしたが、多分私の言いたい事は会社が駄目駄目ってことなんじゃないかなと思います

一応、簡単に引継ぎ時にあまりに大変な事は上司にも報告したんです。会議でも言った。

ところが、ほぼ無視あいつに出来たんだからお前にも出来るだろーって感じで放ったらかしにされたというのが偽らざる実感。

でも業務は放ってはおけないので、愚痴っててもどうにもならない。

どうしようもないから、プログラム書いて効率化って方向に進めざるを得なかった、というか判断になったわけです。

こうした細かい話も散々報告したのに全然聞いてないんですよ、上司連中はさ。

ちゃんと聞いてたら、後々になっても私が関与できなくなっても、最低限どうにかして仕様書に落とすとか、あるいは外注してもっとマシなシステムにするような方向で考えるとか、いくらでも検討できた筈です。

それが、トラバレスでも書いたけど「あいつの方が仕事してたよな」って噂流されたんですよ?

「私が死んでも代わりはいる」って増田記事にひっかけて増田に書いたわけですが、実際私自身は私が辞めても業務は滞りなく進んで欲しいと思ってます、というかそうあるべきだと思います

まー、辞めますけどね。もちろん世の中、努力が報われない事も多いですけど、でも馬鹿馬鹿しくてやってられないです。

 

追記3:

Excel VBAパスワード解除は簡単です。それは知ってますし、そんなのググれば一発で出てきます

何遍でも言いますが、パスワードかけたのは不用意に知らない人が触ってシステムおかしくならないように、との意図であって私がやめた後に使えなくする意図などありません。

ただし、会社から指示されない限り、パスワードについて話すつもりもありません。

ですが、もしパスワードを解除してソースを見たら、コメントだらけのソースが読めるようにはしてあります

これは、私が初心者から自分で書いててもよくわからないことが多かったのであくまでもそんなバカ自分のために書いたものなのですけど、変数名前付に至るまで出来る限り意味理解やすものにしてあるつもりです。

何千、何万行もあるような大層なものでもないのでそんなに理解は難しくはないと思います

独学なので色々と変なことはしてると思いますけどね。

2015-08-19

僕のいつまで経っても初心者プログラミング

タイトル通り、ちょっとでも詳しい人なら情けなくなるレベルでさえそこに達するのに何年も掛かった。

何せ、本業どころか趣味ですらないし、たぶん一般的プログラマとは全然違う。

ともかく、レベル的にはがっかりするような話であることは最初にどうしても断っておきたい。

 

事の始まりは前職の会社就職した時のことである

非常に特殊仕事で、ある環境計測データ現場で測定し、それを持ち帰って取りまとめて分析して報告書を提出するのが主たる業務の会社であった。

世の中にはほんと色んな仕事があるもので、そんな業種があるなんて務めるまで聞いた事もなかっただけど、パソコンという文明機器に触れたのも僕はその会社が初めてだった。とても古い話でお前いったい何歳だ?みたいな。

 

なので、その最初に触れたPC-9801シリーズの型番は言わないが、勤め始めた時にその会社にあったHDDは外付けでSCSI接続されたものがたった一台あっただけ、とは言っておこう。

環境計測データを取り扱うのが主たる仕事からパソコンデータ処理出来なければ仕事にならない。

その計測機器基本的に、当時は計るだけであり、記録データと言えば、記録紙にペンで波形記録してくれるレコーダーや、分析値を印字出力してくれる分析器、あるいはまた磁気記録によるデータレコーダくらいしかなく、今みたいにパソコンどころかメモリーカードや、スマホデータ記録といった直接AD変換記録してくれるものなんてなかった。

・・・いや、あるにはあったけど、そのAD変換機器パソコンをつないで自家製プログラムで処理したりしていた。

とにかく、アナログ値をどうにかしてデジタル値に変換するのは、手入力やらプログラムやらで処理するほかはなかったから、それなりにプログラム技術をどうしても身につける必要があった。

 

一番最初に書いた、ちょっとはまともに動くプログラムとして憶えているのは、サインとかコサインみたいな計算をやってパソコン上で波形を構成し、その値を使ってXYペンプロッターで作図する、というものであった。

ペンプロッターなんて今でも生きているのをたまに見る事があるけど、今は普通にプリンタだよね。

でも当時は、プリンタで作図したものを打ち出すとかありえない世界だった。ドットインパクトプリンタ?くらいしかなかった。

感動したよ、実際には今とは比較にならないほど極超低速だけども、滅茶苦茶にウィンウィン素早く動くペンに感動したもんだ。

僕が書いたとおりに動く、と言う感動。

言語はN88-Basic

ペンプロッタをRS-232Cパソコンと繋いで、描画命令を送るとその通りに動く。

但し、プログラムバグがあると紙とペンのインクを無駄にする。

僕はそこからプログラムを書くという魅力に取り憑かれるようになり、その会社では在職期間中、多分数で言えば一番プログラムを多く書いたのではないかと思う。と言ったって小さなさなプログラムばかりだが。

なお、それから何年か経ち、レーザープリンタが導入されたけども、作図のやり方自体は変わらず、プリンタに直接描画命令を送って、みたいなやりかたをしてたよ。だって当時、レーザープリンタを買うと漏れなくコマンドマニュアルが付いてきた時代だったしね。

 

しかし、言うまでもないけど、DOS上で、いちいちエディタを使ってBasicソースコードを書き、保存してrunさせるという一連の手続きはとても面倒で、N88-Basicは行番号を行ラベル、GOSUB~RETURNという感じでのサブルーチン処理が出来たくらいで、例えば変数初期化を忘れて気付かずに同じ変数名でサブルーチンを使ってしまうと、最悪ハングアップしてどうしようもなくなり、リセットする羽目になること屡だった。

から自家製ブレークポイントと言うか、STOP命令ソースのあちこちに書いて、うまく行けばSTOPを削除するとかコメントアウトするとかは必須な当時だった。

 

そんなこんなで勤めてから半年くらいで確か社長マイクロソフトのQuickBasicを買ってきた時にはほんとに感激した。

構造Basicであることもさることながら、統合開発環境ほとんど全てやってしまえるってのが如何にすごい効率化を生むかを知った。

汎用サブモジュールを作ってしまえば、あとはそのソースファイルを読み込んで、引数与えてサブルーチンを読めば同じ記述を何度もこぴぺする必要から開放される。

あるいはもう、バイナリライブラリファイルにまとめて、クイックベーシック起動時にスイッチで読み込むバッチファイルとしてしまえば考える必要もない。

さらに、exe形式の実行ファイルも作れてしまい、特定の処理のためにいくつもそれ用に実行ファイルを作っておけば、プロンプトから一発で様々な処理が出来る様になった。

 

QuickBasic時代が一番多くのプログラムを書いたと思う。もちろん、数だけの話で行数や文字数ではないけれど。

しかしそれは、僕にとってのプログラミング世界を狭小なものにしてしまった。

ちっとも勉強しなかったと言えばそれまでだけども、僕はいまだにBasic言語しか使えない。

Cやらその他の言語を書けなくはないのだけど、Basic言語で先ず考えて、みたいな頭に出来上がってしまったみたいである。

 

いや実のところ、早いことBasic以外の言語も覚えたかったのだけど、その会社社長がそれを許さなかった。

一度、Pascalを使ったプログラムを書いた事があったのだけども、社内で僕以外の他の誰も触ることができないと言う理由で禁止されてしまった。

社長は元々FORTRANから始めた人で、BASICと非常に良く似ていると言う理由で、会社を立ち上げた時からBASIC一本やりだった。

彼はそもそもプログラムは書いたとしてもプログラミング技術にはあまり興味がない人で、とにかく仕事のために問題なく動きさえすればよく、言語などどうでも良かったのである

からプログラムスピードアップのためにC言語の導入を僕が進言した時には「それを覚える時間無駄」と取り合ってもらえなかった。

Windows時代になってVisualBasicが導入されてもそれは変わらなかった。

VisualBasic6.0にもなると、純粋オブジェクト指向ではないが、それなりにオブジェクト指向っぽいことは出来る様になっていたし、オブジェクトを扱う方が、サブルーチンコールだけに頼るやり方よりもずっと能率的だって事くらいは分かっていたので、僕はオブジェクト指向っぽくプログラムを書きたくて仕方がなかったのだけども、社長ユーザー定義変数を使うことすら許さない。

VisualBasicから最低限、フォームやらコマンドボタンを使う必要があるから、それらのプロパティメソッドなどを使わざるを得なくなっていたし、社長も使っていたのに、いざクラスを書こうとすると滅茶苦茶怒られた。

「一つ一つのプログラム会社資産であり君のものではない。別の人間保守できなければ、君がいなくなったらただのゴミだ」

というのが彼の口癖だった。

 

なので、構造プログラミングレベルで工夫するしかなく、それから数年後に辞めるまで、僕は構造プログラミング技術を磨き続けただけで進化は停止してしまったのである

Windows環境になり、VB5以降にもなると、プログラムはどんどん肥大化して行った。

DOS時代のようにメモリを気にする必要があまりなくなって行き、1つのプログラムで様々な事が出来る様になると、困った問題が1つ重くのしかかるようになって来た。

社長フローチャートを書かないと絶対に許さない。

どんな小さなプログラムでも業務上で使うものである限り、自分しか使わないユティリティーレベルのもの以外については、絶対フローチャートを提出し確認を貰う必要があった。

細かな変数やら関数やらのドキュメント仕様書は、ソースコード内に所定の様式コメントを書けばそれでオッケーだったが、小さなサブルーチンでさえもそれが存在する限り、細かくフローにしないとダメなのだった。

入社当時こそ、それが非常に勉強になったし、他人の書いたプログラム理解するのに役立ったのだけれども、慣れてくると煩わしくて仕方なかった。

だいいち、うちの会社プログラムを外部に売っているわけではない。

データ処理や分析など、業務に必要から作っているに過ぎない。

流石に、稀にある、ソフト設計自体重要意味を成す業務では、詳しい仕様書をまとめて、その仕様書を通して取引先とやり取りしたりしていたけども、そんなのは滅多にない話だったし、汎用プログラムでさえも、一回完成させたら、その中身を見ることなんか滅多になかった。

実際、不具合があったらフローチャートなんか見ずに、誰もが直接コードを叩いて直したりしていただけだし。

 

DOS時代の時は、そんなに大きなプログラムは書けなかったので、フローチャートもそんなに面倒ではなかったが(そもそも僕はめんどくさくなると業務自体を早く終わらせたいのでソースを完成させたあとにフローチャートを起こしていた)、VB時代になるとフローチャートがあまりにも複雑怪奇になって行き、そんなフローチャートを例え完璧に作っても、誰も読んで理解しようとは思わないくらいにさえなっていった。

僕以外の社員も実際困ってて、そのせいでみんな夜遅くまで残業するようになっていった。

社長はどうかというと、社長業が忙しくなり、自分プログラムする事は滅多になくなったし、あっても少しサブルーチン的なところを書いたりとか、大雑把なフロー書いて、実装社員に任せっきりだった。

但し、社員の作ったプログラムフローには絶対に目を通す人で、ソースコード自体はあまり見ないが、フローがしっかりしてないと何度でもダメ出しをし、社員社長のオッケーが出るまで何度も書き直さないといけない。

 

で、ある業務で、いつものようにプログラムを先に完成させてフローに起こし直していた時のことだった。

どーせソースコードなんか見ないだろう、と辻褄の合うようにだけフローを書き、実際のソースとはかなり違うフローチャートを提出し社長にオッケーを貰った。

ところが、その業務で追加の仕事が発生し、時間的に僕では無理で、社長が僕のプログラムを触るしかない状況になった。

フローとあまりに違うソースコード社長激怒し、しかしそれまでめんどくさいフロー起こしに鬱憤を貯めていた僕もその鬱憤を晴らすかのごとく、かなり暑くなって反論し返してしまい、もう少しで暴力沙汰になる手前まで口論して、それから数日後、僕は辞表を提出したのであった。

 

その会社を辞めてから、次の仕事は全く関連のない無関係な全く違う職種になり、パソコンこそ触るものプログラムなんか書くことはなくなってしまった。

DOS時代パソコン通信フリーソフトを二つほど作った事がある程度で、必要に迫られない限り、プログラミングをする人間ではない。

ただ、当時どうしても許されなかったオブジェクト指向だけはいつの日かチャレンジしてみたいなぁとは思っていた。

それで、あるとき思い立って、何度か仕事で生かせないかなぁと思い、エクセルVBAを使って、昔取った杵柄じゃないけども、こそこそプログラムを書くようになり、もしかしてオブジェクト指向的に書けばちっとは勉強になるかなぁとやってみたのではある。

しかし、大雑把な初歩的・概念的なことは知っていたけども、実際、オブジェクト指向プログラムしようとしても、構造プログラミングをあまりにもやりすぎたせいか、どーしてもオブジェクト指向的にならない。

歳を食ったせいもある。頭が新しいことを憶えたがらない。

クラス設計書であり、インスタンス実体である、とか言われても理屈こそ分かっても頭が理解を許さない。

フローチャートロジックばかりが頭に浮かんでしまい、インターフェース的な理解をしようとしない。

 

最近になってようやく、少しはまともなオブジェクト指向が身に付き始めたんだけどね。

ほんと、こんな歳になって、いったい何年掛かったのやらw

 

長々と、単に自分記憶を掘り出しただけの文章披露してみただけで、ごめんなさいです。では失礼。

2014-09-06

http://anond.hatelabo.jp/20140906083135

最近地方中央省庁とあるデータのやりとりが、AccessベースAccessVisualBasicからExcelベースExcelマクロ)に変わったんだが…。

うちの県ではVisualBasicランタイムを作業用PCインストールするだけで折衝に一年越しだったから、一応変更自体は歓迎だったんだけれども、これが…。

ちなみに、扱うデータ量は、ざっくり言って、一都道府県当たり平均で5000行×1000列の表くらい。多い都や府なら、列の方がこの数倍行くだろうな。で、あくま個人的感想として、どんな感じかつーと、

(1)データ触ったり集計したりしにくくなった。

前のシステムは、データ自体は単なるAccessデータだったので、間違いを修正したり別の集計に使用したりが意外と気楽に出来た。

今度は、Excelを無理矢理マクロやらで動かしてデータベース化してるからAccess時代よりも途中でデータが触りにくくなった。で、データミスがあれば、いちいち一番大元の支所の担当者に連絡して最初の打ち込みデータから変更して貰わないとならない。

(2)めちゃくちゃ重くなった。

これは、まあ想像つくと思うけど…重い。Excelはいファイルが数十メガとかあって、デカから扱いに困るし、重さについては、特にデータから選択して表示させる機能が弱いらしく、やたらに時間がかかる。これが結構致命的かも。支所に配付した入力システムですら、4年前のPCではフリーズしまくった(新しいPC使えと言ったら、結局個人用のPC使ったとかいう噂も……ウソでしょ?)。県庁での取込・集計システムは、取り込んだデータ10支所ごとのまとめ表を閲覧表示しようとするだけで大体数分かかる。なお、一支所毎に表示する機能がないので(なんだそれ)仕方なく、支所ごとに、システムから一覧表(紙)を打ち出して送付してもらっているが(なんだそれ)、そうなると今度は、データと紙が一致しないという事例が発生した。表示機能特に重いので、先方でも、データの中身は余り見ずに送ってるらしく、最終段階でデータいじったのを忘れたりしてそういうことが起こるらしい(なんだそれ)。

(3)マクロ部分で起きていることが把握しづらい。

これは仕方ないことだが、RDBなら元々ソフト機能でしていることをマクロやらせてて、そこを触られたくないからだろうが、やってることの中身が把握できない。で、たとえばデータ保存の際にいろいろエラーメッセージが出ることがあるんだが(2年前のシステムで、標準で.xlsで保存する仕様になってるため、「機能低下が云々」とか)、おそらく問題なかろうとは思いつつも、不安なまま運用してる。

結論

エクセルから入力とか扱いとか、気楽になった部分は評価する。なので、データベースとしての運用を想定したDB機能強化版のExcel Proとか出ないものか? と。

あと、これ中央ではちゃんと動いてんのかね? 心配なんだけれども。

まあ、そんなこんなでおにーさんはいろいろ困っています。。。

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コピペ

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

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

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

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

じゃあの。

2013-05-14

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき、女はどう答えたらいいの?

あ、まず前提として、

貴女プログラミング大好き男を夢中にさせることが、

はたして貴女幸福にするかどうか、それはまた別問題だけれど。

はいえ、プログラミング大好き男たちは玉石混交ながら、

IT系の超かしこい男なども多く、

多くっつーかIT系でないのにプログラミング大好き男っていうのは超かしこ学生まぁこれは有望株)か研究者系なんか、

あとはまったくかしこくもないクセに頭いいつもりして「Lispやってます(キリッ ハローワールドくらいですが」とか言っちゃうアホしかいないわけで、

したがって、釣り師たる女たちにとっては、

なかなかあなどれない釣り場です。

では、プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女は、どう答えれば理想的でしょう?

まず最初に、その男COBOLのようなタイプレガシーコード

あとはC/C++、そして(TechEdに参加するほどではないけれど)VisualBasicが大好きな、

そんなタイプ場合は、

貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、

「わたしが、仕様書を作ってあげる♪」

これこそまさに必殺の答えです。

そこでプログラミング大好き男が、えへへ、とやにさがったならば、

貴女は、ひそかに、「コピペ量産しやすい技術的ポイントを抑えた仕様書」あたりを

ひそかに練習しておきましょう。これで成功まちがいなしです。

しかし、ここでは、もう少しハイブロウな(?)いわゆるプログラミング好きの男の

落とし方をお伝えしましょう。

この場合貴女は、こう答えましょう、

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

もしも貴女がそう答えたならば、

その瞬間、プログラミング大好き男の目はきらりと輝き、

かれの貴女への恋心は、

20%増量になるでしょう。

なぜって、Scalaは、

ちょっぴりお洒落Ruby風味に記述できて、

Maybeモナド差し込んで、

コンパイルは遅いながらも、そこがまた

ちょっぴりメモリを多く積めばいい富豪プログラミングみたいなふんいきをかもしだしていて。

しか関数型言語としての不変変数・不変Listを実装して

質高くふるまっていて、なおかつ、

JVM上で動くくせにJavaが「やるやる」と言ったまま実装してなかったラムダ式と仮想拡張メソッド型推論を実装した功績もあって。

したがってScalaこそは、

本来なんの接点もないまったく縁もゆかりもない別々の世界に生きている、

インタプリタ言語大好きな綺麗系OLと、玉もあれば石も混じっている、そんなプログラミング大好き男たちが、

この世界で唯一(いいえ、JVM系列のJRubyClojure と並んで唯三)遭遇しうる場所です。


では、参考までに、危険な回答を挙げておきましょう。

プログラミング大好き男に「どの言語が好き?」と訊ねられたとき

貴女がこう答えたとしましょう、

MicrosoftVisual Basic for Applicationが好き♪ 週3回は Excelコーディングするの。」

その瞬間、プログラミング大好き男の貴女への恋心は消えます、

なるほどMicrosoftは、世界最大のOS供給メーカー

特にOfficeは平凡ながら、ま、無難にまとめてあるものの、

しかし、「新UIのリボンUI!」「メトロUI対応!」とかなんとか無意味な自慢を吹聴し、

VBAはさらプログラミングについての謬見を撒き散らした罪がありますからプログラミング大好き男にとっては天敵なんです。

ティーガー戦車乗りのオットー・カリウスは「ティーガー乗りなら誰でも片側の履帯がはずれ僚車に牽引されて帰ってきた経験を持つはずだ」 って言ったけど

社内SESIerなら誰でもクソみたいな前任者が書いたクソみたいなExcel-VBAコードを直した経験があるはずなんです。

また、もしも貴女が「PHPが大好き♪ あたしが書いたPHPのWebサイトが、さくらサーバに7件あるよ♪」

と答えたとしても、同様の効果をもたらすでしょう、

なぜって、PHPは、1990年代にはWeb系を目指す人にとっては簡単で要件を満たすWebサイトが簡単に作れる輝きの道だったものの、

しかし2000年代うそうからセキュリティ関係の問題で転落し、

いまや、あの貧弱な言語能力では、Rubyの魅力に遥かに及びません。

(注1)

またもしもたとえあなたプログラミング言語が大好きで、

「わたし、.NET FrameworkのC#が好き、フォームアプリでも書くけど、

最高に好きなのはASP.net♪ SQLServer連携も、ajax control toolkitもすっごくおいしいの。」

と、答えたとしたらどうでしょう

なるほど、貴女の趣味は高く、

しか.NET Frameworkは、C# が cool であるのみならず、

.NET Framework上で動く F# や IronPythonIronRubyマネーJScriptも最高においしいんですけれど、

しかし、貴女の答えを聞いて、プログラミング大好き男はきっとおもうでしょう、

(なんだよ、MS信者な女だな、カネかかりそう)って。

(注2)

貴女が、プログラミングが大好きで、言語の名を挙げるにしても、

たとえば、JavaScript(node.js)ならば安心でしょう、

なぜならば、JavaScriptは、かけだしのプログラミング初心者にもマニアにもともに愛されるめずらしい言語で、

貴女がその名前を挙げても必ずしも、(jQueryがやっとの初心者と思われることはあっても)あなたプログラミング言語おた宣言をしているとは受け取られないでしょう。

しろへぇ。ちゃんとprototypeは使ってる?」と聞かれたら「当たり前じゃない。むしろnode.jsでいいMVCフレームワークが分からないんだけど…」と話を振ってみましょう。

男は嬉々として、30個くらいのnode.jsフレームワークを教えてくれることでしょう。(まぁどれもどれで帯に短し襷に長しなんですが)

あるいはRighno上で動かしたコードをnodeへ移植する話とか、CoffeeScript、甚だしきはClojureScriptを振ってみてもいいかもしれません。

しかし、たとえば、世界が(つーか竹内先生ポール・グレアムが)誇る超絶関数型言語の名作、Common Lispにせよ、

selfと書きまくることと海外で使われてることに定評のあるPythonにせよ、

バージョンアップごとに言語仕様が変わり、かなり素敵なものではあるもののobsolatedな罠にはまりやすRubyにせよ、

まったく読めない$_だらけで頭悪い仕様リセットしてPerl6にする(そしてまた全く読めない)Perlにせよ、

気さくなクジラ飛行机さんがふるまう素敵においしい日本語プログラミング言語ひまわりなでしこにせよ、

基地外トリッキー言語の代表BrainFxck・Glass・Missa・WhiteSpaceにせよ、

そういう言語名前をいきなり挙げるのは、ちょっぴり微妙。

ましてや貴女が、「Haskellが大好き♪ わたし、プロジェクトオイラーの問題もうほとんどHaskellで、解いちゃった♪」

と答えたならば、どうでしょう

これはかなり博打な答え方で、

なるほど、Haskellは、純粋関数型でありつつも副作用のある操作が行える超絶名言語ゆえ、

あなたがそう答えた瞬間、プログラミング大好き男がいきなり超笑顔になって、

へぇ、やっぱりHaskellなら大抵の問題は4行以内くらいで解いちゃった?」とか言いながら

鼻の下がだら~んと伸びちゃう可能性もあるにはありますが、

しかし、逆に、(なんだよ、この女、プログラミングおたくかよ)とおもわれて、どん引きされる可能性もまた大です、

なぜって、必ずしもプログラミング大好き男がプログラミング大好き女を好きになるとは、限らないですから

しかも、この答えには、もうひとつ問題があって、

男たちは、女を導き高みへ引き上げてあげることが大好きゆえ、

もしも貴女が、「Haskellが大好き♪」なんて言ってしまうと、

そこにはもはや、男が貴女圏論モナド教育する余地がまったく残されていません、

したがって貴女のその答えは、

プログラミング大好き男の貴女への夢を潰してしまうことに他なりません。

ま、ざっとそんな感じです、貴女の目にはプログラマーたちはバカでスケベで鈍感に見えるでしょうが

しかし、ああ見せて、プログラマープログラマーで繊細で、おざなりに扱われると傷つきやすく、ローカル変数名前一つにも気を使い、女と自分の将来に夢を持っています、

貴女の答え方ひとつで、プログラマー貴女への夢は大きくふくらみもすれば、

一瞬で、しぼんでしまいもするでしょう。


では、スキットを繰り返しましょう。

「わたしは、JVM上のScalaが好き。

型推論もあるしラムダ式クロージャスクリプト言語みたいに書けるの、豊富組み込みのコレクションメソッドはいつも便利だし、

XMLリテラルCaseクラスによるパターンマッチもTraitベースMixi-inも、大好き♪」

そして、その瞬間、プログラミング大好き男の目がらんらんと輝いたなら、

貴女はこう重ねましょう、

それからね、いま、わたしが使ってみたいWebアーキテクチャは、

Play Framework、素敵なリアルタイム嗜好のアーキテクチャって噂を聞いたから。

あなたのお暇なときがあったら、わたしをPlayへ連れてって♪」

これでもう完璧です。

PlayFrameworkと、Play(遊ぶ・じゃれる)のダブルミーニングでかれの股間も刺激しちゃえます。

そうなったらこっちのもの

デートの日には、ペアプロ用に Happy Hacking Keyboard をばっちり決めて、かわいい下着をつけて(注3)、

github.comの通販で売ってるoctcatのTシャツか、facebookの「いいね!ボタンがムネのところにあるTシャツ、 あるいは初音ミク(ないし彼のお気に入りアニメキャラ。北米ならMyLittlePonyで鉄板なんだけど)のコスプレを着てゆきましょう。

その日からプログラミング大好き男は貴女の虜になるでしょう。

では、釣り師としての貴女の、愛の幸運幸福をお祈りします!

注1:

(と、書いたもののPHPの現状をよく知りません。グローバル変数だらけになるのとか旧ASPみたいなもんなのかなぁ。count($array); とか書くのアホと思うがpythonも同じだった)

(あと、マジで機能とかTwitter連携とか診断メーカー的なのでもPHPで7つも作ってる女子居たら付き合いたい)

注2:

もっとも。objective-Cなんていう言語をやることに比べれば個人で行う程度なら金のかからない手法もなくはないのですが。

注3:

プログラマーにとっての「かわいい下着」と、女性にとっての「かわいい下着」の定義にずれがあるので注意。

半数くらいのプログラマーしましまぱんつが可愛いと思ってる気がするので、妙齢の女性が着用するには抵抗あると思うが、ボーダー柄のコットンショーツ(ただしキャラ絵のは除く)とか、

過度でないていどにフリルがついたものオススメ。また、色は、レッドだとプログラミング大好き男は引いてしまう(だってそれはコンパイルエラーときの色だ)ので、薄ピンクホワイト、薄ブルー、せめて黒(に差し色でピンクとか)あたりに留めたい。

補記:

 元ネタhttp://tabelog.com/tokyo/A1301/A130101/13002457/dtlrvwlst/3464106/

補記2:

  「プログラマー」か「プログラマ」かの問題については、特に意味は無いが前者を採用した。

補記3:

 言うまでも無いけど、ネタです。 

 また、COBOLとVB、C++ではまったくもって難易度が違うことも分かっています。後者になるほど圧倒的に難しい。

2013-02-04

ポインタの何がわからないって…

僕は99%ベーシック言語しか使ったことはない人間だ。

プログラマーではないが、特殊な業務上の事情プログラムを色々と書かないといけなかった。

もう転職して何年にもなるけど、その前職ではN88-BASICに始まり、QuickBasicVisualBasicBasic畑を突き進んだ。

 

一度だけ、C言語に挑戦するべきかどうか迷ったことがある。

速度の点でしばしば問題になることが多かったからだ。

それでも、色々とアルゴリズムなどを工夫してBasicで何とかしてきたが、0.1秒間隔の正確な時間単位連続リアルタイム処理をするとあるプログラムを作っていた時にはほとんどお手上げになった。

最終的にはものすごい裏技的な、実に納得のいかない記述方法をとるとどうにかなってしまったのでBasic(VB)でなんとかなったけど、解決するまでの間、カーニハン&リッチーの「プログラミング言語C」などを買ったりしてたっけ。

 

C言語ポインタが難しいという話は聞いていた。

理屈はそれなりに分かってたが、頭がこんがらがることこんがらがること。

こっちがポインタで、アドレスの指し示す変数がこれで、こう書くとポインタ意味になって、こうやって代入して、変数の中身はこれで、いやいやこっちがアドレス値だからアドレスの指し示すポインタが…、…、…、あーもう!どれがどれやねーん!!!!!

 

C言語記述することができれば、問題が解決することは分かってたし、ポインタの扱いをうまくやれば速度の問題は全くなくなることも分かっていたが、悪戦苦闘してもお手上げだった。

 

分かっている人からすれば笑い話なのだろうけど、当時は時間に追われてたし、勉強する暇もなかったから結局ポインタを理解できないままC言語を放り投げてしまった。

要はコンピュータそれ自体を扱う言語コンピュータに扱われる言語の違いなんだろう。

 

嫁をうまく扱うより、嫁の尻にひかれている方がやっぱ俺的には楽なんだよな。

 

2010-09-07

IT系とかそれ以外のスキル列挙するから何ができそうか教えて欲しい

色々教えてください偉い人。

自分で考えろってのはご尤もですが、色々な方の意見が聞いてみたいのです。

純粋Java(max5000行程度)

Struts(ver2じゃないほう)上でのJava(max2000行程度)

perl(max7000行程度)

c/c++(ちょっと)

Haskell(ほんの少し)

VisualBasic.NETじゃないほう)(ほとんど忘れた)

HTML/CSS(セマンティック厨)(HTML5勉強中)(バイトWEBデザイン経験有)

javascript(簡単なものなら)

XML/XSL自作プログラムI/Oに利用)

MovableTypeCMSとして利用。ちょっとした企業サイトレベルくらいのものの構築。簡単なプラグイン作成とかも)

Apache(セットアップと最低限の設定くらい)

Tomcat(同上)

LinuxCentOSUbuntu。セットアップとちょっとした設定程度)

IPA資格ソフトウェアネットワークデータベース

Tex論文プレゼンテーション作成

AdobeDTP製品(CS2)(雑誌編集経験有、ただし学生レベル

Oracle10g)(Bronzeレベルの知識とちょっと触ったことがある程度の経験

postgreSQL(ちょっと触ったことがある程度)

会計関連の知識(日商簿記2級)(大学管理会計をかじった)

数学系の知識(論理とか集合やらの基礎。大学計算機科学をかじった)

印刷物/WEBサイトデザイン(独学だけどそれなりに。一般人よりはそれっぽいデザインが作れるかと)

・文章/記事作成(取材→記事執筆。文章校正経験有)(随筆みたいのは無理)

漫画ゲームが大好き

2007-06-30

俺とプログラミング

http://anond.hatelabo.jp/20070630181251

触発されて、俺もプログラミングとのかかわりを考えてみた。

小学生時、家にはFM-TOWNSがあり、PCには触る機会が多かった。当時、ソフトウェアというものはメーカーが作るものだという思い込みがあったが、フリーソフトというのものの存在を知り、どうやってそれが作られているのか気になる。プログラムがしたいと思うが、開発環境が手に入らず断念。

おかんがPC9801を仕事で借りてきた。マニュアル群の中にROM-BASICの説明書(文法解説付き)がありいじりまくる。しかし、ROM-BASICは保存が出来ないので、毎日プログラムを一から組みなおしていた。作っていたのは、ほぼIFとGOTOのみからなるアドベンチャーゲームもどき。

中学生時、友人家にN88BASICを見つけて借りて帰る。今は無きBASICマガジンを毎月買って、載っているプログラムを打ち込み、それを参考にしてゲームを作っていた。

高校に入り、この頃から家にWindowsマシンがあったので、VisualBasic適当プログラムを組みまくる。いま考えたら恥ずかしいホームページを作って、ソフトを公開する。いくつかのソフトがWindows100%なんかの雑誌に載ったりする。Cとかもちょっとだけ触る。受験とともにプログラミングから離れる。

大学4年目、研究室に配属されてプログラムに久しぶりに触る。いろいろな言語の開発環境が揃っているので、適当に遊んでみる。

今はハードウェア記述言語Verilog-HDLを書いてる。結構面白い。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん