「コマンドライン」を含む日記 RSS

はてなキーワード: コマンドラインとは

2014-03-22

http://anond.hatelabo.jp/20140322210019

MacUnix互換

えーっと、MacBSD系列なんですが、ご存知?

Linux使いからはそりゃ使いにくいこともあろう。

でも、FreeBSDとか使ってたらコマンドとかはむしろLinuxよりMacのが使いやすいかもよ?FreeBSD使いがMacを好むかどうかは知らんが。

UbuntuやらRedHatはすべてLinuxのお仲間なので。

GUIがクソだが便利なLinuxユーザからすればMacGUIがすげぇ糞なディストリビューションだ。情報少ないし。

これはお互いに言える事なので、そりゃ、お前はそう思うんだろうな、ってだけで。。。

まぁやりゃできるのだが、めんどくさいを極めた結果としてコマンドライン使ってるのに、調べるのはもっとめんどくさい。あと変なエラーが出ると大変なのでPCライトユーザにはまったくおすすめしない。

何が言いたいのか全く分からん

Windowsコマンドはよくわからんが、最近情報が多いので特に…あと下手にコマンドいじるよりはフリーウェアを探してくれば良いと思う。

えっと、シェル環境の話をしてるのに何故フリーウェアの話に?

(あんたが言うシェル環境ってのはちょっとしたことを命令するだけの話なのな?)

Macはむしろシェル使うほうがめんどい(前述のとおり)

えーと、どこを見ればいいのかも分からん。単に、BSDコマンドGNUコマンドと違うところがあってワカンネ、ってこと?何が不満?どこが違うかご存知?sedとか?

Linuxは慣れてるディストリビューションならCUIだけで十分。慣れてない奴はめんどくさい。

CUIだけで十分、って、シェルCUI以外から使うことがあるのか。。。?まったくもって意味分からん

フォント

Linux使いなら自分で変えろよ。。。標準で比べる意味分からん

プラグラム開発環境の導入

IDE

これらまとめろよ。。。

おまえ、いったいなにやってんの

MSOfficeは使いやすい。Officeを貶してる奴はだいたいOfficeを使いこなしていない。

から、使いやすいとか使いにくいとか関係なくて、圧倒的なシェアを取ってしまってるからそれを使わざるを得ないだけ。

常駐ソフトウェアWindowsは決して多くないし、あるならメーカプリインストールアプリじゃねぇのっていう。

そういう話だと思うけど?

http://anond.hatelabo.jp/20140322140822

Linux視点追加しつつ突っ込んだ。

MacUnix互換

MacUnix互換」とかMacユーザはいうが、Linuxユーザからするとディストリビューションが違うので正直使いにくい。別に調べりゃ使えるしLinuxユーザというのは黙って調べる人たちなので文句を言わないだけで、好んでMacUnixのように使おうとは思わない。GUIがクソだが便利なLinuxユーザからすればMacGUIがすげぇ糞なディストリビューションだ。情報少ないし。

なお、これは他のLinuxについても言えることで、Ubuntu使いからするとRedhat系は使いにくいし、RedhatからするとUbuntuコマンドわからんことが多々あるので若干めんどくさい。もちろん他のディストリビューションも同じ。BSDとかあんまり使いたくない。まぁやりゃできるのだが、めんどくさいを極めた結果としてコマンドライン使ってるのに、調べるのはもっとめんどくさい。あと変なエラーが出ると大変なのでPCライトユーザにはまったくおすすめしない。

プラグラム開発環境の導入

最近はWindowは一発ポンで入ることが増えてきたので便利だと思う。Cygwin使うよりはVM使ったほうが楽でねーかと個人的には思うが。PHPなどはXamppがあるのでむしろWindowsのほうが楽。文字コードが面倒だが。

なおLinuxは常に糞めんどくさい。すでに入ってるパッケージバージョンが古いが、ディストリビューションによっては上げるのに四苦八苦とかふつうにある。サーバー関連のプログラム以外はいまどきWindowsとかMacとかのほうが断然楽だ。

シェル環境

Windowsコマンドはよくわからんが、最近情報が多いので特に…あと下手にコマンドいじるよりはフリーウェアを探してくれば良いと思う。

Macはむしろシェル使うほうがめんどい(前述のとおり)

Linuxは慣れてるディストリビューションならCUIだけで十分。慣れてない奴はめんどくさい。

フォント

正直Macフォントは目が疲れる。画面のせいかね?

Windowsも良いとは言わないが、不便はない。細めのフォントが好みなのでむしろWindowsのほうが見やすい。

Linuxは標準のやつは好きだけどもうちょっと細くていい。

IDE

そりゃiOSアプリを作るならXCodeしかないし、XCodeは悪く無いと思うが、C/C++とか書く時は使いにくい。

WindowsアプリつくるならVisualStudioしかないし、最近のVSは使いやすいので特に文句はない。C#も良い言語だと思いますよ。すごくよく考えられてると思うし。

Webアプリケーション系もnetbeansなんかはWindowsのほうが軽い印象があるなぁ。ただC++netbeansだと補完機能が弱めになる気がする。まぁそもそもWindows上でMSライブラリ使わないC++とか書きたくないですね。色々違うし。

LinuxIDEEclipse一択みたいな感じになっているが、正直Javaはいいが、それ以外は微妙。と言うか糞重い。netbeansが個人的には好きだが、前述のとおり補完機能Eclipseより弱いかんじがするのであんまりRubyはすっげぇ使いやすかった。C++で一番軽いIDEQtかな。Vim?いうほどいいかね…まぁEmacs派なんですけどね

iOS開発

そりゃiOS開発するならMacしかないだろう。Windowsアプリケーション開発するならWindows機使うしかないのと同じでな!!!

LinuxGUIのあるアプリケーション作るとか、考えたくないな!つうかGUIかいたくないからLinux使ってんだよ!

開発マシン選択肢

Mac選択肢が少なすぎる。金だせばなんでもできるが、カネがないとストレスが溜まる。あとかねかければかけるほど周辺機器もグレードアップしなきゃいけなくなる感じがするのだが…正直Unix系のマインドに反しすぎていると思う。

あといまおれのMacbookProはバッテリが膨らんできてパッドが使えなくなったんだが、Mac対応マウスがないのでコピペすらできない。キーボード純正のやつ使いにくくね?プログラマとしてはHome,Endあたりはキー一個で対応して欲しいですし、Backspaceキーがないのは意味がわかりません。deleteキーって書いてるけどそれBackspaceやん、ほんとのdeleteどこいった!!!とにかくキーボードがひどいのでMac使ってプログラミングしようという意欲がおこらない。むしろ俺がMac嫌いな理由の一番がそれですね!

Linuxはしょぼい機器でも開発可能なのでよいと思います

音楽制作

しらねぇがLinux音楽制作しようとする奴はアホだと思う。

デザインアート制作

ま、正直Macディスプレイはいいと思う。

が、若干コントラストが強目にでるか?という気がする。

Mac以外のディスプレイ自分で細かくカスタマイズしたほうが実際にあってる場合もあり、なんとも言えない。

ちょちょっといじる素人フリーウェアが貧弱すぎて辛い。いやらしい成金札束で顔はたかれているような気持ちになる。

いいわすれたがLinuxデザインデジタル現像しようっつうやつはアホだね。Ubuntuならあるのかなぁ…でもさいきんUbuntu重すぎて…

ゲーム用途

しらん。

ビジネスユース

MSOfficeは使いやすい。Officeを貶してる奴はだいたいOfficeを使いこなしていない。

LibreOfficeとか一昔前のMSOfficeじゃないですかーLinuxだとそれしか選択しないけど使いたくねぇ…それならGoogleDriveのをつかうわ…一太郎とか悪い冗談はやめていただきたい。

ただ、Latexを使う場合Linuxは使い良いとおもう。もちろんWindowsならLatex用のエディタあるんですけども!

ホームユース

WindowsMac特に違いはないが、あえていうならMacフリーウェアが少ない。

Linuxをホームユースで使いたがる人がいたら止めたいが、最近Webだけでも色々できちゃうので、別段問題ない気がしてきた。

その他

9. Macは性能に対してコストパフォーマンスが高い(……かも)

スペック価格比較すると、CPUメモリやらのコストパフォーマンスが悪くない、と思います

10年前は「Macは高くつく」という印象だったものが、ここ5年で「Macって割安」という印象に変換したと記憶しています

10年前に比べて自作メリットが薄れたから、そのように感じるんですかね。

しろ使ったらMacって割高…って思うと思うけどなぁ。最近Windows機は安いしデスクトップなんて価格破壊完全に起こしてるし、使い始めてからほとんどお金がかからない。情報も多いし。なんか情報が全体的に五年くらい古い感じがしますね。もしかして2009年ごろからいらした方が書いたのでしょうか。

12. Macには無駄な常駐ソフトウェアが少ない

何をもって"無駄"と判断するか、非常に難しい論点ではありますが。

へんてこなアザラシマスコットデスクトップを泳ぎ出したり、なんとも言えないモッサリ感の明るさ調整ソフトが突如画面に出現したり。なんて事はありません。

いったいいつのWindowsの話をしているのか…

常駐ソフトウェアWindowsは決して多くないし、あるならメーカプリインストールアプリじゃねぇのっていう。

明るさ調整ソフトってそれはディスプレイのやつだろ?Windowsのせいじゃねぇよ。むしろMacはそういうの調整するときに探すのが大変。いや、あかるさ調整くらいならキーボードでできるけどさ…

常駐ソフト気にするならLinuxが一番管理できると思いますし、LinuxにくらべればMacWindowsも似たようなもんです。

2014-02-28

去年はじめから現在まで

2013年1月か2月

プログラミング経験、ほぼ皆無。

HTMLCSS, JavaScriptちょっとだけ分かる

dotinstallとか見てブラウザタイマー作ってわーいって喜んでるくらいのスキル感。

プログラミング勉強したい

勉強したいけどスクールとかはお金かかるから嫌だ

→本を買ってやるのは安上がりだけど途中で挫折しそう

→じゃあお金稼ぎながら学んだらいいんじゃ

プログラマバイト探そう

求人サイトで見つけて応募してみる

経験でも大丈夫らしい

バイト始めることになった

バイト始まる

はじめは研修アルゴリズムPHPについて

課題を出されて、できたら業務に入れる

フレームワーク使って指定されたwebサービスをつくる

基本自分の力でつくる。放置される

誰も教えてくれない

今思うと初心者やらせるのはなかなかハード

ググってググってググりまくる

他のできる子はさらさらっと1週間くらいで終える

ひーひー言いながら2~3週間でなんとか終えた

この期間、ほとんどプログラミング以外のことしてない

なんとかなった

3月4月

PHPドキュメントを読む習慣がつく

ググってコードコピペして動かしてみる、という段階

動くと楽しい 分かると楽しい

このときくらいにパーフェクトPHPを読んだ。FWは、つくれる!

FWがなんたるかをやっと理解し始める

あーようするにURLを受け取って振り分けたり、DBからデータ引っ張ってきて画面に表示させたりするのね

分かった気になる←分かってない

HTTPリクエストについて気にしだした

GET/POSTでごにょごにょすればいいんだね楽勝だわ←全然分かってない

フレームワークはいくつも種類があることを知る

このころ、Sinatraという言葉を小耳に挟む。支那虎?

5月6月

FuelPHPを聞きかじって、何をトチ狂ったのか在宅でwebサービス受託をやる

まあ良い経験になった

フレームワークいくつかやって、web開発のいろんな概念tipsがたくさん頭に入ってきて、

あーあれかーくらいには思えるようになった

DBCRUD操作, ORM, DBマイグレーション, RESTfulとは, コマンドラインコード生成,認証周りのプラクティス ...

7月くらい

さて、バイトが本格的?になってくる

一人で開発 責任おもい

機能追加のタスク

ごく一般的機能

でもなんか躓いた。

書いたコードに自信が持てない

これでいいのか不安になって手が進まない

やっぱり自分で考えて経験したことのないことはなかなか難しい

DBのテーブル構成を理解するにも骨が折れた 命名規則大事

セキュリティで手直しはたくさんもらった

フレームワークにはDB操作ライブラリがちゃんとついてるのにそれ見ずに自分SQL組み立てて案の定エスケープしてないし、とか

必要ないところでCSRF対策してるし、とか

でも、なんとか完成させた

プッシュして、マージされて、できちんと本番環境で動いてる。やったね。

8月9月

Rubyを知った

PHPと違って()が殆ど無いし、;ないし、do~endとか何だよって感じだった。

ちょっとだけ触ってみた。使いやす

Railsも知った

それからは空いている時間の大半をRubyRailsにつぎ込んだ

まずはRailsTutorialをやってみた

テスト周りでつまづいたけどなんとか終わらせた

dotinstallやらミニツクやら、検索して出てきた記事・チュートリアルはとりあえず手をつけて学んだ

はじめはRuby理解せずにRailsをやっていたけど、すぐにRuby自体に興味が出てきた

はじめてのRuby・はじめてのプログラミング・たのしRubyプログラミング言語Ruby... 入門系の本を乱読した

PHPでさんざん苦労していたからか、Rubyオブジェクト指向を学ぶとなんの無理もなく頭に入ってきた

Rubyドキュメントの読み方を覚えた

その後、パーフェクトRubyで標準ライブラリやらGemやらSinatra支那虎じゃなかった)やらについて学んだり、

メタプログラミングRubyで黒魔術を学んだりした。巻頭のMatz言葉痺れたなー

バイトのほうも何とかこなせるようになってきた 成長すげー

9月10月11月

Vagrantをかじる

インフラ・ミドルネットワーク周りに興味がでてくる

AWSでいろいろ遊ぶ

メタプログラミングRubyは断続的に2~3回ほど読み返す

Rubyってほんと使ってて楽しい

webスクレイピングとか検索APIとか使ってムフフ画像をアハーンしたりして遊んでた

11月12月

Rubyと名のつく書籍を読みあさる

Ruby言語をつくろうだの、スクリプティングを極めようだの、JavaRubyがどうだの。

メタプログラミングだの、デザインパターンだの、テストだの、リファクタリングだの。

借りられる本は借りて済ませた。全部買ってると破産する

他にもRubyとつかない本もいろいろ。

達人プログラマーは途中で挫折した。そのうちもう一度読む

プログラマが知りたい97の何とか。いい本

Ruby関数オブジェクトからのつながりで関数型プログラミングにも手が伸びる

OOPと全く違う。

2014年1月2月

就活はじめるよー

まあ、エンジニア枠で探すことにする

エントリーめんどくさい

ので、1社受けて落ちたら次の会社エントリーするという作戦にした

無計画玉砕作戦

はいえ、なんとかなると思ってやってく

気を揉む期間

いろいろな会社採用ページ眺めていると気になること

入ってやる仕事の内容が分からない

やたらパララックスつかってゴテゴテにしてるわりに、何が言いたいのか伝わってこない

せめてよく使ってる言語くらいはのっけておいて欲しい。

気になる会社はいろいろ調べる

で、1社選んで応募して、選考が始まった

面接、失敗したなと思ったところもあったが

嘘つかない

知らないことを知ってるように話さな

は通せたので良かったと思う。

で、進んでいって最終面接。これもなんかよく分からないうちに終わってた

相手が適宜フォロー入れて話しやすいようにしてくれたのは覚えてる

うん、ぜひ当社にご入社いただけたらと思いますとのこと。やったね。

から気になってた会社ではあった。勝手リスペクトしてた会社

自分が憧れてる技術者さんたちが在籍してる会社でこれから働くことができる

いろいろと運が良かった。嬉しい

他の会社はどうしようかな。

受けてみたい気もするけれど、エントリーがめんどくさい

続けるかどうかは未定だけど、ひとまず休憩することにする

今は、関数型言語についての本買って読んでる。関数型、Rubyに劣らず楽しい

2014-02-27

Apple's SSL/TLS bug (22 Feb 2014)の意訳

例のAppleSSL/TLSバグの件、日本語情報がなかったので意訳しました。

Adam Langleyさんによって書かれた原文はこちら。要所要所に親切なリンクがついているので、ぜひ原文も見てみてください。

Apple's SSL/TLS bug (22 Feb 2014)

https://www.imperialviolet.org/2014/02/22/applebug.html

(Hi Adam Langley, Than you for your blog! We really appreciate you.)

-----

昨日、AppleはばかばかしいiOS向けのセキュリティアップデートを発行した。
それは詳しく明かされていないが、SSL/TSLについてとんでもなく恐ろしい間違いを示すものだった。

その答えは既にハッカーニューストップにタレこまれている(https://news.ycombinator.com/item?id=7281378)し、アップルが隠したい秘密はもうバレてしまっていると思う。
そして現在、俺たちはその誤った情報を正すステージに来ているんだ。

ほらここに、Applebugがあるんだ。:
static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                 uint8_t *signature, UInt16 signatureLen)
{
 OSStatus        err;
 ...

 if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
  goto fail;
 if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
  goto fail;
  goto fail;
 if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
  goto fail;
 ...

fail:
 SSLFreeBuffer(&signedHashes);
 SSLFreeBuffer(&hashCtx);
 return err;
}(Quoted from Apple's published source code.)
(訳者注:(Quoted from Apple's published source code)→sslKeyExchange.c)

2行のgotoがあるだろ。
2行目のgotoは、見て分かる通り常に発動する。
変数[err]にはエラーを示す値が入らず、正常を示す値のままfailに飛ぶってことだ。
それって成功したのと同じなんだよね!

この署名検証処理は(訳者注:SSL/TLSハンドシェイクのやりとりのうちの一つである)ServerKeyExchangeメッセージ署名検証するものだ。
このServerKeyExchangeでは、"the ephemeral key"(通信のための一時的な鍵)を交換するためのDHE や ECDHE という暗号スイートが使われる。
そのサーバーは言うんだ。
「ここに"the ephemeral key"と署名があるよ、ほら、これが証明書だ。君はこれが僕からのものだってわかってくれるよね!」

今、もし"the ephemeral key"と証明書関係が破たんしているならば、すべては無意味なんだ。
これってつまり、正規の証明書チェーンをクライアントに送信したけど、ハンドシェイクへの署名には正しくない間違った(つまり適当にその辺で作った)鍵を使ったり、そもそもハンドシェイク署名しなかったりってことができるってことなんだよ!

そこには、今君が通信しているサーバーが、サーバー証明書に含まれる公開鍵秘密鍵を持っているってことの証明が、何もないんだ。

これはSecureTransport(というライブラリ)に入っていて、以下に影響する。
・iOS 7.0.6より前(俺は7.0.4で確認した)
・OS X 10.9.2より前(10.9.1で確認した)
(訳者注:つまりiOS 7.0.6、OS X 10.9.2で解決した)

これはSecureTransportを使っているすべてに影響するけど、ChromeFirefoxはそうじゃない。
ChromeFirefoxSSL/TLSのためにNSSを使っている。
でも、それはあんまり君のマシンがSecureTransportを使っていないってことを意味しないよ。(ソフトって更新されるしね)


超特急テストサイト作ってみたよ。https://www.imperialviolet.org:1266
ポート番号に気を付けてね。(テストサイトCVE番号になってるよ)
443は通常通りに動いているからね。

ポート1266のサーバーと443のサーバーは同じ証明書を送っているけど、完全に異なるキー署名しているんだ。
君がもしポート1266のHTTPSサイトアクセスできたんだったら、君のマシンはこのイケてるバグを抱えてるってことだね。:)


それってつまり証明書チェーンは正しいってことで、そしてハンドシェイク証明書チェーンの関係は壊れたってことで、もう俺はどんな証明書も信じないよ。

またこれは、DHE または ECDHE 暗号スイートを使っているサイトに影響を及ぼすだけじゃないんだ。
攻撃者は、この暗号スイートを使うサーバー自分で建てるようになるだろう。

また、これはTLS 1.2には影響しない。このバグを含まないTLS 1.2の別の関数があったから。
でも攻撃者は使うプロトコルをある程度選ぶことができるから安心できないよ。
(訳者注:サーバー側がTLS1.2を使えないことにしていたら、それ以外の例えばSSL3.0とかTLS1.0とか1.1で通信が始まっちゃうから。)
でもでも、クライアント側でTLS1.2だけを使えるようにしておけば、それは今回の問題の回避策になる。。
同じく、クライアント側でRSA暗号スイートだけを許可するということも、ServerKeyExchangeが発生しなくなるので今回の問題の回避策になる。
(2つのうち、1つ目のほうがだいぶ好ましい。)

俺のテストサイトでは、iOS 7.0.6 と OS X 10.9.2で問題は解決していた。
(更新:このバグOS X 10.9 のときに入ったように見えたけど、iOS6にもっあったぽい。iOS 6.1.6は昨日リリースされたよ。)

こんなような微妙バグって、悪夢だ。
俺はこれは単なるミスだと思うし、なんかもうほんと最悪って思う。


ここに、今回の問題を明らかにするコードがある。:
extern int f();

int g() {
 int ret = 1;

 goto out;
 ret = f();

out:
 return ret;
}
もし俺が"-Wall "を付けてコンパイルしたとしても、XcodeGCC 4.8.2 や Clang 3.3は死んでるコード(the dead code)について警告をしないんだ。
本当にビックリだよ!!!

ここで警告が出ていたらこの問題は止められたのに。でもたぶん、現実には死んでるコードが多すぎて無視することにしてるんだろうね。
(ピーターネルソンが教えてくれたけど、Clangはこれを警告するための"-Wunreachable-code"を持ってる。でもこれ、なんと"-Wall "には含まれてない!)

if文に{}をつけないことを許すコーディングスタイルはこの問題を誘発したかもしれない。
でも、人は{}を付けたとしても間違ったプログラムを書くことがあるから、これは俺はあんまり関係ないように思う。

テストケースはこれを見つけることができたはずだけど、今回のはいろいろ条件が複雑なやつだったから難しかったと思う。
TLSのめちゃめちゃ多くのオプションを試さなきゃいけなかったからね。しかも正常系じゃないやつも。
俺、TLSLiteでちゃんとテストしてるか思い出せないもん。(月曜日怖いかも)

コードレビューはこの種類のバグについて効果的でありえる。
ただし単なる審査じゃなく、それぞれの変更に対してしっかりとレビューすることだ。
Appleコードレビューカルチャーがどんなもんか知らないけど、もし俺が同じようなことをやっちゃったとしたら、同僚のWan-Teh や Ryan Sleevi がばっちり見つけてくれたと、固く信じてる。
でも、誰もがそんなにいい仲間を持てるわけじゃないよね。


最後に。昨日、Apple証明書ホスト名をちゃんとチェックしていなかったことについて多くの議論があったんだけど、
それは OS Xコマンドラインcurlを使うと、IPじゃない証明書でもIPHTTPSにつながっちゃうってだけだったよ。変だけど。
Safariはこの問題には関係なかったよ。

2013-10-03

Linux Mint 15 (XFCE版) でシステム共通のプロキシサーバを指定する > 私は

Linux Mintベースである Ubuntu でも同じかな?

過去バージョンでは、設定(Windows でいうコントロールパネル)の "Network Connections" から指定できたようだけれど、Mint 15 では設定ファイルをいじる必要があるらしいです。

プロキシサーバを利用するには、システム共通の設定をしなくても FireFox なら GUI の設定から個別指定ができるけど、Google Chrome は 「コマンドライン引数で指定するか、システム共通設定をしてください」とのことで、共通設定をせねばならないようです 。

で、そのシステム共通の設定は "dconf-edit" (Windows でいうレジストリエディタのような存在?)というツールをインストールすると、そこから設定ができるみたいですが、このツールは標準ではないのでネットからダウンロードせねばならない。apt-getダウンロードしてインストールさせるものの、この apt-getプロキシ設定をしなくてはならない。

/etc/apt/に apt.conf という名のファイル作成して

Acquire::http::proxy "http://プロキシサーバ>:<ポート>"

レコードを指定してやる必要があります

sudo apt-get install dconf-tools

パッケージ名は "dconf-edit" や "dconf-editor" ではない)でインストール。終わったら "dconf-editor" とたたけば、GUI で dconf-editor が表示される。ツリーの System > proxy で mode を manual に、さらhttp のなかにある host, port, enabled に登録(除外設定や、各プロトコル共通化は System > proxy の Ignore-hosts, use-same-proxy で)。

Google Chrome を起動、あれ、だめじゃん。。。再起動もさせた。Firefox ではシステム共通設定を読ませてうまくいく。Chromeよ、あんたのために調べもの含めて2時間かけたんだぞ。こんなんばっかで嫌になるよ。「嫌なら使うな」が基本だろうが、業務のために LinuxFlash Playerの動作試験をするために Chrome を使うしかなかったんだ。どうやって日報に書けばいいんだ?Googleから給料分もらってくれと書きたい。

と書いたあと、もう1回再起動させたらFirefoxもだめになった。いじわるだよまったく。日報に「Firefoxではうまくいきます」なんて書かせて恥をかかせたかったのかと勘繰りたくなるよ。

とりあえず、Google Chrome についてはコマンドシェル (Terminal) から

google-chrome --proxy-server=http://プロキシサーバ>:<ポート

と指定して、とりあえずプロキシサーバを利用させることはできたけど。

環境変数に"http_proxy=http://プロキシサーバ>:<ポート>" と指定すればよろしい

結局、コマンドシェル (Terminal) で

export http_proxy=http_proxy=http://プロキシサーバ>:<ポート

などと実行させて、次に

google-chrome

firefox

と打ち込むと、それぞれプロキシ設定されて起動しましたよ。

で、除外判別とかはどうするのだろう? Linux 起動時にこの環境変数の内容を自動で設定させる方法とか、どんな方法が標準なのだろう。

2013-09-21

面白い現象

SIerからユーザ企業転職して結構立つ。

ビールを飲みながらふと振り返って見ると、

いろいろと思うところがあり面白かったので、

酔いながらまとめてみる。

SIer

結構大きい会社

前職のSIer技術力には自身があるらしく、技術力は負けません。と誰かが言っていた。

ITをただのコストダウン戦略のものしかみてない。

構成管理は「日付付きフォルダ」。javaデプロイは、人の手でDB接続情報の構成情報を変更後、Eclipseからwarを生成。人の手でGUIからデプロイ

実装(ひどければ設計も)海外へアウトソース。結果、java知ってますって人が「PermGen space?Xmxを上げとけ!」「Xmxはとりあえず、1.5Gで!」とドヤ顔とか。。

テストは、もちろん担当者が画面エビデンスを取りながらテスト。(もちろん、エビデンステストリリースの時、確認の意味で使うだけ。)

障害時には基本、関係各所集まって、会議。。。プロパティファイル差し替えだけで終わるのですが。。。。

ユーザ企業

結構大きい会社

普通の人から見て、ITと全く無関係な業種の企業

IT活用して、売上、利益を上げてきた。(もちろん、それだけじゃないけど)

構成管理はもちろんバージョン管理ソフトビルドデプロイ作業はコマンドラインで一発。(ただし本番デプロイは一部人の確認作業あり)

実装も、内部で実施テストjunit記述、一日に一度の自動テストと結果レポートが届く。

IT系システムの要件の優先順位の決定権は基本情報部門が持つ。(ただし戦略的に無理な場合あり)

自動テストと、皆が内部実装や仕様を強く知っているからか、自信をもって高速に機能を追加できている。

何より、自分サービスを作っているからか、活き活きと仕事している。

でだ

日本会社もっとIT活用してほしいとおもった今日このごろ。

2013-07-25

プログラムを学ぶための障壁は、今やまったくない。

最近、前からずっとあるのかもしれないが、ビギナープログラマへ向けた教訓めいたエントリなどを

よく見かける。

やれフレームワークから始めるなだとか、なんとかかんとかというものだ。

同時に、これは昔から変わらないが、プログラム勉強したいけどどうしたら良いのかというような

質問などもよく見かける。

こういった数多のやり取りを見ていて、自身もプログラマとしての一面をもつ限りは

頑張っての一声もかけてやりたいと思うし、辛辣な内容のエントリに頷くこともあれば苦い顔をすることもある。

自分プログラム勉強を始めた当時は、プログラマを目指す者にとってはイバラの道だったと思う。

はいはい懐古厨おつと言われてしまいそうだが、実際そうだったのだ。

まずなんたって、パソコンを手に入れるのが容易でない。

当時PC-9821全盛期であったが、1台40万くらいはした。

HDDは数百メガバイトしかない。

容量1.2MBしかないフロッピーしこしこデータを保存していた。

パソコンが起動するまで5分くらい待つ必要があった。

そしてパソコンを手に入れたとしても、情報を調べる手段というのが確立されていない。

今でこそ、ブラウザを開いてGoogle検索すれば、どんな情報だって手に入る。

ブロードバンドという言葉がまだなかった頃は、そうではなかった。

インターネット接続するのも、お金持ちの家はISDNだが、自分の家はモデムでピーがが~とつないでいた。

28800bpsモデムである

今時の携帯でも3G通信でもっと通信速度が早いぞと思う。

そのため、当時はWebサイトのページ容量は画像も含めて数キロバイト以内に収めましょうという

慣習があったように思う。

NTTテレホーダイというサービスがあり、夜11時から朝の7時までは

特定の番号にかけ続けても一定料金でかけられるサービスがあり、みなそれを

利用していた。自然パソコンを利用する人々の活動タイミングは夜間となった。

インターネット接続できたとしても、まだまだ敷居はあった。

当時はまだGoogleがなかった。

Yahoo!全盛期の時代検索精度も低い。

なにより検索情報にたどり着くということはほとんど概念としてなかったんじゃないかと思う。

Yahoo!が用意したカテゴリを元に、登録されたWebサイトアクセスし、

サイトからリンクで新しいサイト発見するという、本当のインターネットサーフィン

しなければ、必要情報へはアクセスできなかった。

IntetnetExplorerはまだバージョン3くらいで、脆弱性がありまくり危険サイト

アクセスすると、ウイルスどころの騒ぎではなかった。

本当の意味でのアンダーグラウンドサイトごろごろあって、

一番陰気な雰囲気を持っていたんじゃないでしょうか。

NetscapeNavigator(今のFirefoxの前身)が人気を博していた時代の話である

さて、情報アクセスできたとして、次に問題になるのは開発環境の話である

昔の昔、基本ソフトBASICだった時代は、パソコンを起ち上げるとBASIC言語を使って

プログラミングが出来たが、Windows95はそうではなかった。

開発環境、そしてコンパイラをまず準備できないと、そもそもプログラム勉強が難しかった。

当時からMicrosoft統合開発環境として、VisualStudio存在したが、よほどの金持ちでないと

買えない値段がした。

そこで、LSI-C試食であるとか、Borland無料開発環境であるとか、N-88互換BASICなどの

無料開発環境を探しだして、しこしこコマンドライン上で動く基本動作だけを勉強したものなのだ

マシン上に、Apache+PHP+MySQLインストールする、なんて手法は夢のまた夢だった。

Webプログラム勉強するには、自分Linuxサーバーを起ち上げるか、CGIが利用できる

レンタルサーバーを使うかなど方法も限られていた。

CGIで利用できる言語も、CかPerlかくらいしかなかった。

JavaScriptもまだまだ発展途上で、今のようにあれこれと使えるようになるのは

まだまだ数年先の話だった。

それが今やどうだろう。

パソコンも一家に1台あるだろう。それどころか職場自分の机の上にも1台あるだろうし、

学校にいってもいくらでも使えるだろう。

そして、パソコンを立ちあげれば、即ネットが使える。

ググればどんな情報だって手に入る。

開発環境なんて、よりどりみどりメモ帳ソフトがあれば、もう勉強を始めることができる。

Windows上で動くアプリだってVisualStudio無料で手に入る。

それで敷居が高ければ、Excelを使ってもいい。VBAを使えば、Windowsアプリ勉強もできるだろう。

これだけ情報も溢れ、環境もどれを選ぶか難しいほどの状態になってしまっているのだ。

もはや、プログラム勉強するには、必要以上のものが用意されている環境にあるといっても過言ではない。

あと必要なのはやる気と実行力だけだ。

がんばってください。

2013-03-27

プログラミングの初級になるためにの目次

http://anond.hatelabo.jp/20130325172822 の続き

言語Java7を想定。(Java8が迫っていますが、Lambdaなど関数型は、まだ早いと言うことで)

定理由は、C++比較して学べるところが大きく、安全シンプル言語から

※いきなりJavascriptはやめとけ、PHPは論外。

RubyScalaでないのは、筆者が初心者には適切には教えられないから。

おもちゃToyとしてjQueryで遊ぶのは、悪くは無いと思う。

0.はじめに

これ以降は名著の紹介や学習方法の紹介が主体となります。名著のコンポジションという形が時間限界ですね。

量については「初級になるなら、専門書を計3,000ページは修得することは覚悟してね」なんて言ったりしています

Javaで初級のわかりやすい指標ですと、[amazon:Effective Java]とGoFまでの修得。

初級になるまでに登竜門への挑戦期間を含めて、3~4年はかかっても仕方が無いとも思います

※逆に「一山いくらのコーダー」というのは、Effctive JavaGoFが達成している技術も知らずに「自分Javaプログラマー」だと誤解してしまっているような人達です。

そういったコーダーは何年経とうとも初級プログラマーにすら敵いません。

初級を目指して、プログラミングを楽しんでください。

ただ、学ぶべきことはべらぼうですが、「各分野毎に、エレガントな方法がある。だから探して修得する」ということが大切です。

※「一を聞いて十を知る」ような優秀な人に、50冊くらいドーンと本を置いてあげて、各本の目次を読ませるだけで、

底の見え無さを悟ってくれたりすると、嬉しくなってしまます

※余談ですが、その底の見え無さは数学という学問のものですね。例えば、関数型言語の底流に「圏論」というここ100年の最新の数学があります

また中級くらいで、Liskovの置換原則などが載っている本を紹介しますが、

そのLiskovの置換原則の周辺で出てくるcovariant(共変)って、圏論という数学概念だったりします。

数学出身としては、数学現実に活かされている嬉しい事例です。

閑話休題

1.目次

1)エディター・コマンドライン正規表現友達

「速く正確に大量の出力」という能力は、プログラミングをする上でも、ドキュメントを書く上でも、何より「つまら仕事」の時間圧縮ができるようになるため、重要です。

スローガンとしては「思考のスピードで出力することを目指そう」です。

紹介するエディターはemacsvimExcelです。ついでにIMEとしてATOKを使用しているため、ATOK操作Emacsライクにする話も紹介します。

ExcelWindows環境Meadowすら入れさせてくれない場合最後の砦という扱いです。

コマンドラインは、「コマンドラインというものがある」「時として非常に強力である」程度の紹介です。

※筆者はzsh全然使えません。使いこなしている方々と接する度に「勉強しなきゃな~、でも、あっちの方を先にやりたい・・・」とグズグズして、はや何年・・・

正規表現は置換を用いて、テキストの一括編集重要です。後、遭遇したくない事態ですが、スパゲッティコードの解析をする上での最後の砦です。

※遭遇したくない例

ん?何か変なところで副作用のある処理があるようだなぁ(消沈)、SQLのInsertかUpdateか一応Mergeも使っているところから逆算して原因箇所を探すか・・・(諦念)

この糞コードがっ!!こんなところに書くんじゃねぇ!!(憤怒激高)

(ここで、他にやらかしていそうな似たようなコード正規表現grep検索。改行コード込みにすれば複数文検索も可能)

わはは、予想通り共通化すべきロジックメソッドがそこら中にある・・・

2)アルゴリズムに始まりアルゴリズムに終わる(データ構造アルゴリズムの一部という認識言葉を使っています)

入門編で一つLinkedListというアルゴリズムを学びました。

少なくとも一つ本を読みながら自力でアルゴリズムを学べる人なら、大成できる可能性があります

前に紹介した[amazon:C++実践プログラミング]には、LikedListやStackなど基本的なアルゴリズムが載っておりますが、

これに加えて、初級になるためにはこれくらいは知っておいて欲しいというものを紹介します。

※後、最初から必ずしも手を出さなくても良い上限も紹介いたします。

3)正・不正の定式化・自動テスト・ロギング・アサーション・例外・契約プログラミング

プログラムは、データ入力して、加工して出力・保存する処理の繰り返しです。

まり、各一連の繰り返し毎に、「正しい入力」「正しい出力」を定式化する必要があります

それを人間の手では無くコンピューターやらせられるように、つまり自動テストできるようにテストプログラミングします。

そこで処理の進捗を確認するためにロギングし、処理が想定通りであるかをアサーションでチェックし、

不正入力不正な出力=例外が起きたら、対処策をプログラミングします。

(ex 途中で処理を中断して、入力者に適切な入力メッセージを伝えてあげる。入力自動補正などもあり得る)

で、ここら辺をまとめてどうあるべきかとして「契約プログラミング」があります

※余談。定式化・テストに際して、数学畑の人間としては、Javaだとequalsのオーバーライドでも必要になるし、同値関係同値分割だけでなく、集合論群論から学んで欲しい・・・(ここいらは数学科学部1~2年の学習内容)

4)名著を読め、新たな名著を探せるようになれ・素晴らしい人を見つけたら、縁を大切に

名著は英語で読みましょう。名著が名著たる由縁は、度々引用されることにあります

まり最新の技術書を読むときに、引用された名著のフレーズが、新旧のリンクをなし、理解の助けになります

対話は学問をする上で非常に重要です。

壁打ちといって、独り言で思考補助をするよりも遙かに有益です。

※素晴らしい師匠を探すなら、大学行くのが一番ですが、見聞を広げていく中で出会いを待つしかないとも思います

5)オブジェクト指向とはなんぞやとGoFデザインパターン + マルチスレッドプログラミング

マルチスレッドが難しいのは「バグを起こしにくいプログラミング」を求められるから

まりTry and Errorからの決別が求められ、今後の仕様変更拡張も踏まえて慎重に慎重にデザインする必要があります

できる限りステータス変数を持たずに安全に、でもマルチスレッドにするのだから効率を追求しなければ本末転倒

でも効率のためにはメモ化に代表されるキャッシング必須と、アンビバレンツな要素のバランス取りが難しい。

このために、リエントラントな実装・抽象と実装の分離など様々なエッセンスを駆使することが必要です。

床屋哲学者問題

6)日々コツコツと

というよりも孔子曰く、知っているよりも好きであること。好きであることよりも楽しめることのほうが強く、

気づいたら日々時間が許す限りプログラミングをしてしまうのが理想です。

仕事として嫌々スキルを磨かなきゃということが、これほど不幸な職業も無いですね。

余談 FizzBuzz写経について

FizzBuzz」は、本来の目的通り、協力会社の選定の際の足切りには便利ですが、

学習の達成度を測るには、簡単すぎる不適切な問題ですね。

写経

数学畑の人間として言わしてもらうと、

写経数学証明問題を、教科書テンプレ通りに、数値や名称だけ変えて記述することしか出来ない人の発想。

まり矛盾無く一貫した論理モデル」の構築が自由に出来ず、テンプレの微修正しか出来ない人の発想。

また、外部の「矛盾無く一貫した論理モデル」の吸収が不自由で、アルゴリズムを「手順」としてしか捉えられないように見受けられる。

プログラマーとしての大成は見込めないと思う。

数学畑として提供できる試金石

連続であること確かめるための「ε-Δ論法」(数学科学部1年の学習内容)

事前知識無く、このモデルを理解できる人は、十分に「矛盾無く一貫した論理モデル」を構築できる人。

1.まず「連続」とは何ぞやと考えて概念を膨らませてください。

2.十分思考できたと思えたら、Wikiあたりでイプシロン デルタ論法を見てください。

flyawayのWindowsコマンドライン版のエラー修正

flyway.cmdの"Columns"を"桁数"に変更。ついでに改行コードも直すと吉。

for /F "usebackq tokens=2* delims=: " %%W in (`mode con ^| findstr 桁数`) do set CONSOLE_WIDTH=%%W

あほーっ。

2013-02-06

もしプログラミング初心者新人に基礎教育を施すなら

オープン系のデスクトップアプリ開発、Webプログラミングシステムプログラミングを仕事にする人向けとして考えてみた。

学習環境Ubuntu Linuxで、デスクトップ上のターミナルか、WindowsからTeraTermsshログインして行うことを想定。

なので前提知識としてLinuxabcくらいは教えておくとして、もし来年度やるならこんなもんかな。

結構分量多めだけど、これでも基礎の基礎に絞った感じ。


  1. Pythonで学ぶ手続き型プログラミング
  2. Javaで学ぶオブジェクト指向
  3. C言語で学ぶメモリの仕組み(主に配列ポインタ構造体関連)
  4. Perlで学ぶ文字列処理(正規表現ハッシュCGIを含む)

おまけ:Pythonで学ぶ関数型プログラミング


なお、上述のカリキュラムでやらない言語(VBjavascriptC++Objective-CC#PHPRubyなど)やWebフレームワーク(DjangoRuby on Railsなど)は、全てこれらの応用で覚えられると思うので、基礎教育終了後に各現場にてOJTで習得してもらう。

IDEも使わないけど、はじめの一歩で軽量エディタ+コマンドラインをやり込んでいれば正直どうにでもなるので省略。

あと最後がおまけ扱いな上にLISPで学ばないのは、要するに「リストすげー!超すげー!!」という感動を胸に今後も頑張ってもらうのが狙いなので(だって現状使う機会殆ど無いし)、最初にやって一番手に馴染んでいるツールで、理解のコアになる部分にサクッと触れて欲しいということ。


ちなみに来年度、自分教育係になる可能性は今のところ無い。

2012-09-26

【2012超まとめ】確実にWEBサービスを作りたい人へ【中編】

前編はこちら

http://anond.hatelabo.jp/20120926165407

ステップ6:MySQL(10時間)

会員情報や文章などのコンテンツを保存しておくデータべース、MySQLを調べます

データベースは他にもPostgreSQLSQLiteなどが有名ですが、やはり王道勉強します。

MySQLCakePHPや、ステップ4のWordPress他、よく使いますので把握しておきましょう。

基礎からのMySQ

http://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AEMySQL-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E7%A8%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A5%BF%E6%B2%A2-%E5%A4%A2%E8%B7%AF/dp/4797344385/ref=sr_1_1?s=books&ie=UTF8&qid=1348063628&sr=1-1

今はまだ関係ありませんが、余裕があればこれも読むといいです。

MySQLによるタフなサイトの作り方

http://www.amazon.co.jp/MySQL%E3%81%AB%E3%82%88%E3%82%8B%E3%82%BF%E3%83%95%E3%81%AA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E4%BD%90%E8%97%A4-%E7%9C%9F%E4%BA%BA/dp/4797353937/ref=sr_1_1?s=books&ie=UTF8&qid=1348063787&sr=1-1

操作コマンドラインを覚えていく方向で、始めはブラウザ操作できるphpMyAdminを使ってOKです。

ストレージエンジンはとりあえずInnoDBで。

ステップ7:休憩(10時間)

技術調査はこの位にして、これからは実際にWebサイトを作っていきます

ここまで来ると何となくWebサイトがどんな仕組みで動いてるかが分かってくるので、

ステップ0でイメージした作りたいサイトがどんな技術で実現出来るか調べます

冒頭の「完全に一致」の中の人のようにスクレイピングしたり、

TwitterGoogleYahooAmazonなどのAPIを使ってサテライトサイトを作っても良いと思います

が、高度な事をするとはまりやすいので、ある程度やって無理だったらあきらめて次回にまわしましょう。

まずは何か一つ完成させる事のほうが大切です。

それから開発効率UPのため、Chromeプラグインを入れましょう。

説明はそれぞれのリンク先を見て下さい。

CSSViewer

https://chrome.google.com/webstore/detail/ggfgijbpiheegefliciemofobhmofgce

Firebug Lite for Google Chrome

https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench

View Selection Source

https://chrome.google.com/webstore/detail/fbhgckgfljgjkkfngcoeajbgndkeoaaj

Pendule

https://chrome.google.com/webstore/detail/gbkffbkamcejhkcaocmkdeiiccpmjfdi

BuiltWith Technology Profiler

https://chrome.google.com/webstore/detail/dapjbgnjinbpoindlpdmhochffioedbn

iPSim

https://chrome.google.com/webstore/detail/gcligifbhamdimemnemmlkffkpmflehh

Color Picker

https://chrome.google.com/webstore/detail/ohcpnigalekghcmgcdcenkpelffpdolg

CSS Tester

https://chrome.google.com/webstore/detail/pjncppaiejjkcjlcgegcbmhgkflhenfp

MeasureIt

https://chrome.google.com/webstore/detail/pokhcahijjfkdccinalifdifljglhclm

あとはFireFoxにはFireBugデバッグ定番らしいです。

https://addons.mozilla.org/ja/firefox/addon/firebug/

それから、空いた時間無料プログラミング動画サイトドットインストール」を見ておくと

ここまでの知識が定着すると思います

ドットインストール

http://dotinstall.com/

ステップ8:ドメインを取る(10時間)

ステップ7で作りたいサイトイメージ出来てきたら、ドメインを取りましょう。

サーバーさくら場合ドメインさくらで取得すると楽ですが、もっと安いところもあります

希望するドメインが空いているか調べて取得、空いていなければ他のドメインを考えます

さくらドメイン取得

http://www.sakura.ne.jp/domain/

ムームードメイン

http://muumuu-domain.com/

バリュードメイン

http://www.value-domain.com/

定番の.com、.net、.orgは誰が見ても親しみがあるし安いので、できればこの3種類のどれかにしたい所ですが、

一般的な言葉はほぼ埋まっているので、その場合.jp等にしても良いでしょう。

日本語ドメイン(www.日本.netみたいな)は流行っていないですが、

自分サイト名が「○○○.com」のような名前場合は一緒に取得して、アルファベットドメインリダイレクトしましょう。

ChromeユーザーURL欄で検索する時、「○○○.com」のように後ろに.xxxが付いているとそのURLに直接アクセスしてしまい、

 検索にならないので、アクセス機会損失を防ぐため。)

僕はバリュードメインで取得して、サーバーさくらレンタルサーバーしました。

その際の親切な設定方法の解説はこちら。

VALUE DOMAIN で取得したドメインさくらレンタルサーバで使う

http://nekohacks.com/wordpress/domain/value-domain/

ステップ9:サイトの基礎部分の開発(100時間)

実際にサイトを開発していきます

どんなサイトで、どんな機能があって、どんなページがあるかノートに書き出して行きます

初めにデータベースのテーブルやレコード構造を考えて、

次にメインとなる機能プログラムして行きます

サイトの基本的なレイアウトCSSで組みながら、デザインイメージもしておきましょう。

ここではデザインはまだやりません。

先にデザインを作っても、プログラムを進めていく過程で変更がでたりする為です。

(でもあんまり後回しにしても、見た目がチープなせいでモチベーションが下がったりするので、次のステップでやります

あと、ここで気をつけたいのは、あくまでメインとなる機能の開発を優先することです。

「あったほうが良いな」程度の機能は後回しにします。

外堀から埋めていくとそこでモチベーションが尽きてしまったり、

メインの機能を実装してみたら外堀の修正が発生してしまったりするためです。

始めると分からない事がどんどん出てくると思うので、本を読み返したりGoogle先生検索しながら進めて行きます

なかなか進まなくて検索8割、コーディング2割くらいの進め方になると思いますが、それでOKです。

長い暗闇を抜けると、少しづつ視界が開けてきます

メインの機能がなんとなく出来たら次に進みます

ステップ10:サイトデザイン(30時間)

メインの機能何となくできたら、デザインをやります

鉛筆殴り書きで良いので紙に描いてみます

いきなり慣れないCGソフト上でデザインすると、

いじっているだけでモチベーションを使い切ってしまったりするので危険です。

CGソフトは色々ありますが、おすすめフォトショ(Photoshop)です。

WebサイトデザインFireworksなども有名ですが、学習コストがかかるので、

Webサイトにもそれ以外にも使えて一番つぶしが効くフォトショップでOKです。

今年からクラウド契約が始まり、今なら1ヶ月8000円、年間契約なら1ヶ月5000円で

Adobeソフトが全部使い放題です。

Adobe Creative Cloud

http://www.adobe.com/jp/products/creativecloud.html

お勧めの本はこれ

10日でおぼえるPhotoshop入門教室

http://www.amazon.co.jp/10%E6%97%A5%E3%81%A7%E3%81%8A%E3%81%BC%E3%81%88%E3%82%8BPhotoshop%E5%85%A5%E9%96%80%E6%95%99%E5%AE%A4-CS2-CS%E5%AF%BE%E5%BF%9C-%E4%BA%95%E4%B8%8A-%E3%81%AE%E3%81%8D%E3%81%82/dp/4798111953/ref=sr_1_1?s=books&ie=UTF8&qid=1348498454&sr=1-1

基本操作を覚えたらWeb情報を収集します。

PHOTOSHOP VIPさんが親切です

http://photoshopvip.net/

から全部自分で作らなくても、素材サイトからダウンロードして加工するなどして手間を省きます

PCスマホ携帯(ガラケー)全部に対応するのは大変なので、

初めはそのサービスを最も使うだろうと思われるどれか1つに絞ります

初めに作る際のお勧めPCサイトです。

PCサイトならスマホでも最低限アクセスはできるし、携帯は縮小傾向なので優先度低、

スマホ画面サイズがまちまちでタブレット端末が目下発展中、AndroidブラウザがたくさんあるがChromeに統一されていくかも、

混沌とした状況なのでお勧めしません。

複数デバイスへの対応リリース後でも遅くありませんが、

対応する際はCSSを切り替えてレスポンシブレイアウトにするのがお勧めです。

その他、困ったらTwitter社が公開しているブートストラップを使うのもお勧めです。

ブートストラップcssフレームワークで、簡単にシャレ乙なデザインに仕上がります

超便利!Twitter BootstrapでさくさくWeb開発

http://blog.asial.co.jp/887

どうしても自分イケてるデザインが出来ないと思ったら、友だちに頼んだり、SNSコミュで募集したり、

デザイン系の大学専門学校掲示板にビラを貼らせてもらったりしましょう。制作費が出せればランサーズで募ってもいいかも。

Lancers - 仕事フリーランス発注できるクラウドソーシングサービス

http://www.lancers.jp/

僕はたまたまフォトショップの使用経験があったので、ここにかけた時間は30時間ではなく5時間程です(トータル275時間で開発)。

後編はこちら

http://anond.hatelabo.jp/20120926165920

2012-08-13

C#基礎文法最速マスター

1. 基礎
classの作成

プログラムclass記述します。たとえばSampleという名前classを作る場合、Sample.csファイル内に次のように書きます。(C#場合ファイル名とクラス名は同一でなくても良い。複数のクラスを書いても良い)

public class Sample {

}
Mainメソッドの作成

プログラムclass内のMainメソッドの先頭から実行されます。Mainメソッドは次のように書きます

public class Sample {

    public static void Main( String[] args ) {
         // 処理を書く
     }

}
Console.WriteLineメソッド

文字列を表字するメソッドです。

Console.WriteLine( "Hello world" );
コメント

コメントです。

// 一行コメント

/*
   複数行コメント
 */
変数の宣言

変数の宣言です。変数の宣言時にはデータ型を指定します。

// 変数
int num;
データ型

データ型です。C#データ型には値型と参照型とがあります。以下は値型のデータ型です。

// int(整数)型
int num;
// char(文字)型
char c;
// float(単精度浮動小数点)型
float val;
// double(倍精度浮動小数点)型
double val;
// bool(論理)型
bool flag;
// DateTime(日付)型
DateTime date;

以下は参照型のデータ型です。

// StringString s;
// 配列String[] array;
プログラムのコンパイル

プログラムコンパイルするには、コマンドラインで以下のようにします。

csc Sample.cs
プログラムの実行

プログラムを実行するには、コマンドラインで以下のようにします。

.net framework on Windows場合

Sample.exe

Mono.frameworkの場合

mono ./Sample.exe
2. 数値
数値の表現

int、float、double型の変数に数値を代入できます。int型には整数だけ代入できます。float、double型には整数でも小数でも代入できます

int i = 2;
int i = 100000000;

float num = 1.234f;

double num = 1.234;
四則演算

四則演算です。

num = 1 + 1;
num = 1 - 1;
num = 1 * 2;
num = 1 / 2;

商の求め方です。割る数と割られる数が両方とも整数場合計算結果の小数点以下が切り捨てられます

num = 1 / 2;  // 0

割る数と割られる数のどちらかが小数場合計算結果の小数点以下が切り捨てられません。

num = 1.0 / 2;    // 0.5
num = 1 / 2.0;    // 0.5
num = 1.0 / 2.0;  // 0.5

余りの求め方です。

// 余り
mod = 4 % 2
インクリメントとデクリメント

インクリメントとデクリメントです。

// インクリメント
 ++i;

// デクリメント
 --i;
3. 文字列
文字列の表現

文字列ダブルクォートで囲みます

String str = "abc";
文字列操作

各種文字列操作です。

// 結合
String join = "aaa" + "bbb";

// 分割
String[] record = "aaa,bbb,ccc".Split( "," );

// 長さ
int length = "abcdef".Length();

// 切り出し
"abcd".Substring( 0, 2 )   // abc

// 検索
int result = "abcd".IndexOf( "cd" ) // 見つかった場合はその位置、見つからなかった場合は-1が返る
4. 配列
配列変数の宣言

配列です。

// 配列の宣言
int[] array;
配列の生成

配列の生成です。配列の生成時には要素数を指定するか、初期データを指定します。

int[] array;

// 要素数を指定して配列を生成
array = new int[5];

// 初期データを指定して配列を生成
array = new int[] { 1, 2, 3 };

// 宣言と同時に配列を生成
int[] array2 = new int[5];
配列の要素の参照と代入

配列の要素の参照と代入です。

// 要素の参照
array[0]
array[1]

// 要素の代入
array[0] = 1;
array[1] = 2;
配列の要素数

配列の要素数を取得するには以下のようにします。

array_num = array.Length;
配列のコピー

配列の要素を別の配列コピーするには以下のようにします。

int[] from = new int[] { 1, 2, 3 };
int[] to = new int[5];

from.CopyTo(to, 0);
5. 制御文
if文

if文です。

if ( 条件 )
{

}
if ~ else文

if ~ else文です。

if ( 条件 )
{

}
else
{

}
if ~ else if 文

if ~ else if文です。

if ( 条件 )
{

}
else if ( 条件 )
{

}
while文

while文です。

int i = 0;
while ( i < 5 )
{
    
    // 処理
    
    ++i;
}
for文

for文です。

for ( int i = 0; i < 5; ++i )
{
    // 処理
}
for-each文

for-each文です。配列の各要素を処理できます

int[] fields = new int[] { 1, 2, 3 };

foreach (int field in fields)
{
    // 処理
}
6. メソッド

C#では関数メソッドと言いますメソッドを作るには次のようにします。戻り値を返却するにはreturn文を使います

static int sum( int num1, int num2 )
{
    int total;

    total = num1 + num2;

    return total;
}
9. ファイル入出力

ファイル入出力です。ファイル入出力を行うには、プログラムの先頭に以下を記述します。

using System.IO;

以下がファイル入力の雛形になりますファイルオープンや読み込みに失敗した場合catch節に処理が移ります

String filename = "text.txt";
StreamReader reader = null;
try
{
    reader = new StreamReader(filename);

    String line;
    while ((line = reader.ReadLine()) != null)
    {

    }

}
catch (IOException e)
{
    // エラー処理:

}
finally
{
    if (reader != null)
    {
        try
        {
            reader.Close();
        }
        catch (IOException e) { }
    }
}

またはC#ではusing ステートメントと言うものがあり、この様にも書ける

String filename = "text.txt";
using (StreamReader reader = new StreamReader(filename))
{
    try
    {

        String line;
        while ((line = reader.ReadLine()) != null)
        {
            // 読み込んだ行を処理
        }

    }
    catch (IOException e)
    {
        // エラー処理:

    }
}

usingをつかうとCloseがなくなったことからわかるようにusing(){}を抜けるとき自動的にDisposeメソッドを呼び出し、オブジェクトを廃棄する。その分コードスッキリするが、使いにくい場面もあるので考えて使うこと。

以下がファイル出力の雛形になりますファイルオープンや書き込みに失敗した場合catch節に処理が移ります

String filename = "text.txt";
StreamWriter writer = null;

try
{
    writer = new StreamWriter(filename));

    writer.WriteLine("abc");
    writer.WriteLine("def");
    writer.WriteLine("fgh");

}
catch (IOException e)
{
    // エラー処理:

}
finally
{
    if (writer != null)
    {
        writer.Close();
    }
}

こちらもusingを使って書ける。が、割愛する。

知っておいたほうがよい文法

C#でよく出てくる知っておいたほうがよい文法の一覧です。

繰り返し文の途中で抜ける

繰り返し文の途中で抜けるにはbreak文を使用します。

for ( i = 0; i < 5; ++i ) {

    if ( 条件 ) {
        break;    // 条件を満たす場合、for文を抜ける。
    }

}
繰り返しの残り部分の処理をスキップする

残りの部分処理をスキップし、次の繰り返しに進むにはcontinue文を使用します。

for ( i = 0; i < 5; ++i ) {

    if ( 条件 ) {
        continue;    // 条件を満たす場合、残りの部分処理をスキップし、次の繰り返しに進む。
    }

}
例外処理

例外を投げるにはthrow文を使用します。

throw new Exception( "Error messsage" );

例外処理をするにはtrycatch文を使用します。

try {

    // 例外が発生する可能性のある処理

} catch ( Exception e ) {

    // 例外発生時の処理

}

2012-05-18

ハッカーVimを使う」 騙される若者たちなのか

Eclipseemacsvimより優れている点を挙げてみよう。

 

 

リファクタリング機能が強力 →本当か

CVSリポジトリの構成を直接覗ける →redmineとかを使ったほうがいいんじゃないのか

デバッガグラフィカル → それ、うれしいか

・設定できる警告メッセージの種類が豊富。→警告そんなにいるのか

復元機能が非常に充実している。 →バージョン管理ソフトがあれば普通だし

 CVSのように以前の状態に復元すること、以前の状態の →diffじゃダメか、というかなんでいまどきCVSなの

 ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能存在する。

プラグインの数が豊富、膨大。 → 数があってもつかえるのは少ない

プラグイン開発環境Eclipse自体に用意されている。 →開発環境を使って作る程のものでもなく、バッチファイルとかスクリプトでよくね

ライセンス形態CPLであり商用利用もしやすい。 →eclipse組み込んで出荷するの?

・上位版にWSADが存在する。 →WSDADってなに、WebSpereの残骸?

IBMバックアップがついている。→それは何か役に立つの

Smalltalkで有名なVisualworksの影響を受けているため、

JUnitプラグイン(Eclipse標準装備)によるテストファーストリファクタリングの他、eXtreme Programming環境が充実している。→Jenkinsのほうがよくね

SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!→コマンドラインから実行するsvnコマンドを覚えておくとはターゲットでも動いて便利だよ

・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!→スタック見るだけのことじゃないの

プラグインによってはURLを指定するだけでプラグイン自動ダウンロード自動インストール

自動アップデートができるためプラグインインストールが非常に容易。→勝手に変わったら怖くない

Eclipseから直接Tomcat, JBossなどを再起動できるSysdeoプラグインJBoss-IDEプラグイン

 という強力なプラグインが充実している。→えー、今頃Tomcat

EclipseUML Omondoプラグインによりクラス図などを書いたり、

 UMLによるModel Driven Architecture, リバースエンジニアリング

 などを即座に実現できる。→これは何だかからない

RSSリーダープラグインMP3プラグインAll The Newsプラグイン

など様々なプラグインが充実している。→それ開発ツールじゃなくて携帯でやったほうがよくね

PHP開発が可能なTruStudioプラグインPerl開発が可能なPerl E.P.I.C. プラグイン

C/C++開発が可能なCDTプラグインAspectJ開発が可能なAJDTプラグインなど

言語プラグインが充実している。→Java以外は所詮おまけだけどね

・そのほかにD言語プラグインC#プラグインPythonプラグインJavaScriptEditorプラグイン

CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン

Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン

ゲームができるプラグイン、メーラとしてつかえるプラグインWikiプラグインHibernateプラグイン

FindBugsプラグインCheckStyleプラグイン、JalopyプラグインSobalipseプラグインソロプログラマープラグイン

など様々なプラグインが充実している。→それぞれ単機能ソフトのほうが充実してるんじゃないの

 

 

どうしてもeclipseというなら止めないけど

2012-02-20

ハッカーMacを使う」 騙される若者たち

ハッカーはみんなMac使ってる!」「Air買ってきた!」「Airを買って5時間の俺がインストールしたアプリケーション!!!

これ誰得なの?5時間しかMac触ったことない人が入れたアプリケーションに何の価値があるの?

頑張ってGUIアプリインストールしたりみんなだまされてるよ!

Macを使うハッカーCUIを使う。

コマンドライン使えないならWindows使った方が捗る

2011-07-25

CentOS yum - File not found by glob .. しかIEでは読めるんだが

rpm -Uvh http://mirrorlist.centos.org/?release=5&arch=i386&repo=extras

error: File not found by glob: http://mirrorlist.centos.org/?release=5

基礎的なことだが、Linuxのコマンドラインもしかして"&"をうまく認識できないのかな?

2011-06-12

http://anond.hatelabo.jp/20110612145506

OS論争のほとんどでそうなんだけど、前提条件が違いすぎてかみ合わないよね。

Mac」も「Linux」も、「Windows」でさえ、人によって体感は違うと思うんだよね。

Linux最高だぜ、ふぅーははは」って人に良く聞くと、viEmacsを極限カスタマイズして、

コマンドラインさえあれば、他にツールなんていらねぇって人だったりする。

同じことが「Windowsでは出来ない?」そりゃそうだよね、対象としてるユーザー層が違うもの。

これはWindowsユーザーからすると逆のことが言えて、「なんでこの程度のことGUIで提供されてないの」となる。

それは仕方ないんよ、「Linuxコミュニティ」では、「それはシェルで○○××△△と書けば出来る」とか言われちゃうんだから


Windows」は当初(今も)GUI仕様ガチガチにしなかったんだよね。

指標は示しても、後はメーカー任せ。

シュートカットの機能、コントロールの挙動、メニューやなんかも各社バラバラ。

けどこれって、「Windows」が悪い訳でもないんだよね。

縛らなかった分、多様性は生まれたし、それがこれだけの帝国を支えたわけで。


結論、全部持って、全部使えるのが最強。

2011-05-20

http://anond.hatelabo.jp/20110520005152

関係ない。

生産性が高いと言われてる言語で行われた、ゴミみたいなプロジェクトは沢山ある。

生産性の高さが生かせると言うのは、設計からしてきちんと考えられていると言うことで、そういうチームが開発するなら言語は関係ない。

人間は必ずミスをするものだ、という前提を無視した開発手法は信用するに値しない。完全な設計は、存在しない。規模が大きくなればなるほど、そうしたナイーブな前提は容易に崩壊する。

まさかだけど、「Cで1からすべて書く」ことと「Javaの開発済みコード群を使う」ことを比較してたりとか、

「Cで行うテキストエディタコマンドラインコンパイラのみの開発」と「Javaで行う高機能開発環境での開発」を比較してたりとか

本題とはあまり関係がないけど、そういうことも開発生産性の高さに貢献しているのも事実

「○○はC言語でもできる」ではなくて、ライブラリやツールがどれだけ整備されているか、それらがどれだけ容易に導入できるか、という点に注目してみるといい。

http://anond.hatelabo.jp/20110520004145

プロダクトに関わる人数が増えれば増えるほど、言語自体の素性の良し悪しが生産性に大きく響いてくる。

関係ない。

生産性が高いと言われてる言語で行われた、ゴミみたいなプロジェクトは沢山ある。

生産性の高さが生かせると言うのは、設計からしてきちんと考えられていると言うことで、そういうチームが開発するなら言語は関係ない。

まさかだけど、「Cで1からすべて書く」ことと「Javaの開発済みコード群を使う」ことを比較してたりとか、

「Cで行うテキストエディタコマンドラインコンパイラのみの開発」と「Javaで行う高機能開発環境での開発」を比較してたりとか

そんな馬鹿みたいな比較じゃないよな?

あと、携帯組み込みの手法に拘って、フルブラウザその他諸々の最新トレンドに全くついていけなかったのは有名な話。

それだけだと、言語関係ないね

2010-12-04

http://anond.hatelabo.jp/20101203150748

ショックだね。超高速道路というか、そういう以前の問題だよこれは。

やろうとすることを普通の人が身につけるのに3年は掛かるだろうに、しかも、ここまでのクオリティはでない。

唸ってしまう。

HTML+CSS

意図したものを意図したように表示させるのは困難。

だが自分意図で作れる場合は、できないことは回避できる。

回避できるのであれば使うHTMLCSSは限られる。覚えるのは最小限。

Dreamweaverつこーてるのかな?

ツールが解決してくれるのならコードを書く必要すらない。

JavaScript

jQueryでやられていることを自前実装するには技術力が必要。

逆に言うとjQueryが利用できるならそれですむ。

中で何をやっているかなんて詳しく知る必要などない。

世界中のもっと詳しい人がチェックをいれてくれている。jQueryを利用したライブラリやサンプルコードも転がっている。jQueryでできないことがでてきたらどうするか? prototype.jsでも使えばいいじゃない。

ともかく回避方法はいくらでもある。

Perl

扱いがかわいそう。

自分に必要がないもの目的に合致するのに遠回りなものを切り捨てる能力がないと何時まで経っても勉強だけして終わる。

php

PHPで何かしようとしたのではなく、単なるテンプレートエンジンとして割りきって利用したようだ。

表示したいところに表示させたいものを埋め込むだけなら、それはHTMLとほぼ同等の何かでしかなくなる。

LL学習目的はないので寄り道をする必要などない。

クローラー

どの言語でも実装できる。phpを使っていて、なぜRuby

どの言語でやっても一緒なら、できるだけ自分がつくる部分が少ないほうがよい。

phpではクローラーをつくるのにいいライブラリがあるというのを聞いたことがない。

コマンドラインベースで動かす人は皆無だからね。

RubyならPerlたい正規表現に悩まされることもない。なるほど。

素人Ruby環境を例えばLinux上に構築しようとしたらかなり躓くところがあると思う。Railsを使わずにRubyで済ませたというところか。ここらへんから何か恐ろしい

逆算するとクローラーをつくるまで学習を初めてから2ヶ月も掛かっていないことになる。

Apache

クローラーをつくってからApacheを知ったというのがリアルで笑えるのだけど、恐ろしい

Ruby環境PHP環境をどうやって同居させたのかとかそういう苦労が見えない。ということ苦労しなかったのかもしれない。やはりRailsはなくてRubyなのか。

技術者を名乗る人でもRuby環境構築ができない人も多いのにこの人は素直にすごい。

何もないところからLinux環境PHPやらmySQLやらRubyやらの環境構築は熟練した人でも半日かかるめんどくさい作業なのでそれをやれてしまうというところで、3年生ぐらいのエンジニアスキルがあると俺は認める。

それは言い直すと普通に仕事として身につけたとしても一般的には3年はかかるということだ。

MySQL

はてさて、SQLまでかけるようになったというのだろうか。

DB設計は? 確かにこの内容であれば設計を要するほどの複雑さはない。1テーブルで十分。

インデックスとか貼ってないだろうなとは思わせるが、5GBのデータでもこれだけのレスポンスが出てしまう時代だ。

チューニングするぐらならいいハードにのっけなよということか。

デザイン

デザイナーとしても食っていけるだけのスキルがあるんじゃなかろうかとおもってしまう。

GIMPボタンひとつ作るのでもしんどいよ。

Face.com

もう、なんていうか調査能力もすごい。

というか調査能力がすごいんだろうな。

2010-09-16

キーカスタマイズ,AutoIt,AutoItX,WSH,AHK,keyhac,SFCmini,Seraphy

10 :名無しさんお腹いっぱい。[sage] 投稿日:2010-07-08 14:19:43 ID:4+wg75AQ0

シビアなキーカスタマイズが絡む場合は、AHKkeyhacPython使うほうがいいかもしれない。

キー操作が絡んで、かつ速度を求めないなら、AHKkeyhacからWSHやAutoITのスクリプトを走らせてもいい。

AutoItXはWSHから使えるのが便利なところ。素のAutoItのGUIの部分は使えんけど。

GUI使いたきゃ、HTAから使ってもいいし、ほかのDLL使ってもいい。

SFCminiのDLLとSeraphyのDLLまで使えば、UWSCAutoHotKeyとほぼ同等のことを

javascriptVbscriptの文法で出来てしまう。

テキストエディタなどWSHやdmscriptを使えるアプリマクロからも、

他のアプリを制御したり、他のアプリウィンドウ情報を取ってくることが簡単になる。

もちろん、出来ないことも大いけども。

いちいちコマンドラインツールを探さなくても、とりあえず今使ってるアプリ

スクリプトから制御することが簡単になる。

2010-01-08

objective-C初心者の俺がハマった5個のくだらないポイント

X-Code勉強するのがめんどくさかったので、はじめコマンドラインでやろうとしたせいでかなりくだらないところでハマった。このあたりのことを書いたサイトがないので、増田に書いておく。

コンパイラオプションに「-framework Foundation」をつけなかった

つけてください。つけないとwarningがいっぱい出るよ。

コンパイラオプションに「-fobjc-gc-only」をつけなかった

つけてください。つけなくてもコンパイルできるけど、実行時にメモリリークが起きたと警告が出る。このオプションをつけるとかベージコレクションが有効になるよ。

文字列配列を使ったのに「#import <Foundation/NSString.h&gt;」等をヘッダに書かなかった</h5&gt;

書いてください。書かないと

warning: no ‘ほげほげ’ method found

warning: (Messages without a matching method signature

warning: will be assumed to return ‘id’ and accept

warning: ‘...’ as arguments.)

みたいのがいっぱいでるよ。よもや文字列配列を使うだけで、インポートが必要になるとは思わなかったよ。

配列を「list = [1, 2, 3, 4, 5];」みたいなので作ろうとした。

NSArrayクラスはこうした表現は使えないよ。まじで。

しかもNSArrayクラスは要素の追加もできないよ。あとから要素を追加するなら、NSMutableArrayね。

途中まで「objective-C」ではなく「object-C」だと思っていた。

T/O

2009-04-25

家のプログラム作るぞー

と思ってパソコンの前に座ったのが確か午後6時くらいで、今は午前0時で、

今までやったのはコマンドラインで数個のコマンドエディタ画面半分くらいの入力

2chに書き込んだテキストの量のほうが多いと断言できる

あれー、おっかしーなー

さくらインターネットレンタルサーバgitインストールするとか、そのへんを最初にやってた記憶があるんだが、

それから今まで何か生産的なことをしていた記憶がないというかそもそも作業の記憶がない

ああそうそう、確か家での Linux の public_html/ とさくらFreeBSDwww/ のディレクトリ名の違いをスクリプト上でどう吸収しようか悩んで、それでなんか調べて、それから、…何したんだったかのう…

もういいや、今日は寝よう…

2009-02-22

ニコ生アラート Java

どこに書いたらみんな気づいてくれるのか分からないからここらへんにも書いておこう。

ニコ生アラートJava版作りました。マックでも動きます。

windowsだと終了できないかも。(javaw.exeを強制終了で多分いける)><

やっつけ仕事だけど多分動きます><

http://tinyurl.com/NicoNamaAlert

だれか改良してください><

=====================================

りーどみー

=====================================

中身

NicoNamaAlert.jar

プログラムファイル

setting.txt

設定ファイル

NicoNamaAlert.java

ソースコード

ReadMe.sjis.txt, ReadMe.utf8.txt

このファイル(と別エンコーディング版)

使い方

Javaが入っていない人はダウンロードしてください。

http://java.com/ja/

その際、勝手Yahoo!ツールバーが入る事があるので気をつけて。

setting.txtに、1行ずつ予約したいコミュニティまたはチャンネルIDを登録

channel/ch99999 とか community/co99999 といった感じで。

とりあえず1行ごとIDと比べているだけなので、

他に何か書いてあっても大丈夫なはず。

IDの行だけはID以外書かないようにしておいてください。

毎回このファイルは読み直しているので、変更しても再起動する必要はありません。

NicoNamaAlert.jarダブルクリック

30秒おきに新着をチェックします。

Macの場合はおなじみのコーヒーカップアイコンがDockに出てきます。

Windowsの場合は何も出てきません。

Unixはまだ試していません。

予約したコミュ生放送が始まると、ダイアログが出るので、

はい(Y)をクリックすると、アドレスコピーされる。はず。

それをブラウザペーストすればおけ。

終了するときは、Macの場合はDockのアイコンを選択して、

上のメニューから終了 または Cmd+Q

Windowsの場合はタスクマネージャからjavaw.exeを探して強制終了してください。

他にもjavaアプリを起動している場合は、javaw.exeが複数ある可能性があるので、

そのときは運試し。



言い訳

Macだけどニコ生アラートがうらやましくてつくりました><

javaブラウザを開く方法が分かりません(SE6ならできるっぽい)><

やっつけ仕事なのでソース超きたないです><

もっといい感じなの作れるひとお願いします><

ソースコードはもう適当に炒めちゃってください><

コマンドラインから起動すると中の人が何してるかなんとなく見えます。

settingに最初から入っている二つのコミュ

1つ目はお気に入りコミュ「おい、ゆとり英語教えてください。」で、

2つ目はニコ生アラートWin版)の生まれ場所です。

この2つの生放送がなければこのプログラムはできていませんでした><

仕組み

http://live.nicovideo.jp/recent から必要なデータ

1行1行検索して取り出しているだけです。

チャンネルコミュニティIDサムネイルファイル名から取れます。

ね、簡単でしょ?


今後の展望

アイコンコーヒーカップ以外にしたい(っていうとOSごとに実行ファイルが必要)

Windowsでもちゃんと終了できるようにしたい(まぁ本家使ってください)

チャンネルコミュニティの登録を簡単にしたい

以上。

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 &gt; 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&gt; puts "Have a fun!"

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

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

2008-09-28

RoR簡単じゃないだろ

「なんと10分でコードを書かずにWebアプリを作れる」

と、いう謳い文句にそそのかされてRubyRuby on Railsインストールして、説明通りにセットしてみた。動きゃしねぇ。調べてみると、バージョンが変わっているのでデフォルトDBが違うらしい。あと、環境プログラムGEM微妙に動きが変で、今は「ワンクリックで動く便利なインストーラー」があるのだとか。試してみる。なぜか「gemが古い」と言い出す。指示通りアップデート

で、もう一度紹介されていたサンプルを組んでみるが、scaffoldという呪文を、メソッド実行時に受け付けてくれずloadErrorが出る。検索して、コマンドラインからscaffoldを生成してみたが、今度はエラーを吐いた後、サーバーすら立ち上がらなくなった。

Ruby使えねぇ。などとは言わない。「簡単に使えるというのはマーケティング上の嘘で、トラブルを回避するためのバッドノウハウをたくさん勉強しなければならないらしい」という、至極あたりまえな、うすうす予想していた結果。

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