<< Prev Page Next Page >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


そのうち引っ越すんだ

広告よけの記事です。MDK。

MDK?

M(めん)D(ど)K(くさい)


PicPages2をリリースしました


PicPages2



自炊ブックビューアをApp Storeにリリースしました。設定項目が少なくて迷いがないのが売り!?

あと、UIPageViewを使ってめくりアニメーションしてます。UIPageView結構使うの面倒くさい。iPadでは2ページ見開きとかしたいんだけどそっちはまだ途中なのでiPad版のリリースはナシで。ていうかiPad持ってないのでモチベーションがなかなか維持しない…

ソースコード一揃いgithubに置いたよ。UIPageView使うとことか参考になれば。Swiftの試行錯誤しながらなのでOptionalの扱いがふらふらしてる。そのうち直すかなあ。

サードパーティのライブラリ関係は載せてないのでこのままではビルド通らないのであしからず。

FMDBのビルドがどうしても上手く行かなくてsqlite3のラッパーライブラリとか自分で作った直後にSwiftDataの存在を知った。まあ練習にはなったし自分で作ったライブラリのほうが自分で使いやすいからいいかーとか。

iOSってStringのメソッド名が長いからこういうextension作っておくと正規表現を簡単に扱うメソッド生やせたりして便利だったりとか。iOSの正規表現ほんとめちゃくちゃ面倒だからねー。

CocoaPodでハマりにハマって、結論として、SwiftのプロジェクトではまだCocoaPod使わないほうが楽ってことがわかったのでCocoaPod無し。


プログラマーになりたい学生さんに学んでおいてほしいTop7

僕は今39歳で、大学1年のときになんとなく学校のX-Window端末でWindows 95発売前のインターネット(Mosaicとかchimeraとかいうブラウザでなー)に出会って以降、なんやかんやでずっとコンピュータ触ってきて今もプログラマの仕事してます。めっちゃ楽でもないけど、それほどブラックじゃない感じで妻子を養って生活してますよ。

自分の経験と、会社に入ってくる若い人に色々教えたりする経験を総合的に考えて、プログラマになりたい中高生、大学生に学校でたっぷり時間使って学べるうちに学んでおいたらいいことがあるので書いてみます。

最初に:プログラマってピンからキリまですごい差があるんよね


本当によく言われることですが、プログラマの能力によって、生産性は10倍とも100倍とも言われます。これは一面では嘘ですが一面では本当です。

誰が書いても大して変わりないプログラムを作る場合、上等なプログラマでも下手なプログラマでも、出来上がる時間はそんなに変わりません。せいぜい1.5倍〜5倍ぐらい(!)の差です。

世の中のプログラマが書いてるプログラムの何%〜何十%は、そういうプログラムです。Webアプリでいったら所詮はRDBにデータ登録して表示するだけみたいなのがもう山ほどあって、そんなのは細かい出来の差はあれど、基本的には誰でも作れます。

しかし、下手なプログラマではいくら時間があっても出来ないが、上等なプログラマなら1週間とか数日で出来てしまうようなプログラムもあります。この場合の生産性の差は無限倍ということになります(数学的にアレな表現)。

たとえばiPhoneが登場してiOSアプリが求められるようになった直後は、上等なプログラマじゃないと複雑なアプリが作れませんでした。それからしばらく時間が経って、開発ツールがこなれてきて、Web上の情報が出揃ってくると、徐々に、下手なプログラマでもそこそこのアプリが作れるようになるため、「誰でも作れる」プログラムの割合が増えました。まだまだ過渡期ですが。

また、たとえば大量に存在するテキストファイルの中から任意の単語を含むものを高速に検索するという要件があって、そういうことをするプログラムを作るのは一握りの上等なプログラマにしかできませんでした。世の中にそれを求める人が多いことがわかったので、たくさんの上等なプログラマがアプリケーションやライブラリを用意してくれて、今では下手なプログラマでもそれを利用してなんとかかんとか仕事をこなせています。

この現実に対して、賢いつもりで「なるほど、要するにそんなに頑張って上等なプログラマにならなくても、少し待ってればなんとかなるんだから頑張る必要なんかないね」と考えてしまうのもある意味真実ですが、そっちの道はブラックとか、IT土方とか、そういうのに近づく可能性が高い方向性です。

一方、「頑張って上等なプログラマになれば時節にかかわらず常に必要とされて、クリエイティブな仕事ができるってことだね」と考えるのは、ある程度金銭的に恵まれる可能性が高い方向性です。

なぜなら、大きな傾向としては、高い報酬は希少な能力に対して支払われるからです。ぶっちゃけ、だれでも出来る仕事は安いのです。下手な(安い)プログラマの需要もそれなりにあるので、食いっぱぐれずにはいられるとは思いますが。

そんなわけで前置きが長くなりましたが、できたら上等なほうになりたい学生さんに、そこそこ上等なほうじゃないかと勝手に思い上がっている僕が勝手におすすめする「学生のうちにできること」Top7の発表です!

1位:英語


英語大事だわー。だいたいからして全てのプログラミング言語は英語ベースだし(ぴゅう太とかなでしことか言うなややこしいから)。ちょっとわけわからんエラー出た時は結局QiitaよりStack Overflowが頼りになるし。もっとわからんときでもソース読んだらなんとかなるし。

別にTOEIC800点必要とかそんな難しい話じゃないです。簡単な文章をスラスラ読める必要があるってことです。そんな難しい文法は出てこないし、ある程度慣れたら大体一定の単語しか出てこないし。中学から大学まで、学校で習う程度のことを真面目にこなしとけばいいってだけです。

おかしいなー、なんであんなにも英語読めないんだろう…。「なんかエラーになりました」じゃなくて、すぐ目の前の画面にエラーメッセージ書いてあるやん!英語見た瞬間に見なかったことにするみたいなのダメ、ゼッタイ。

2位:数学


プログラマに数学は必要ある、ないという議論がありますが、数学の点数取れてる人のほうがプログラマに向いてると思います。微分積分が常に必要ってわけじゃないです(機械学習を自分で実装とか言うときはガチで必要です)。でも文字をたくさん使ったような数式にアレルギーが出るようだと必要な勉強ができないです。
目的関数
f(x) = cTx,  c:n×1, x:n×1   (1)
を、制約条件
Ax ≦ b,  A:m×n,x:n×1,b:m×1   (2)
のもとで最大にする
とか言われて「うえぇぇ」ってなってるようだと線形計画法の教科書も読めない。

あと、数学の証明問題を解く手順は難しいプログラムを書く手順と似ています。抽象化、具象化の考え方もプログラミングに大いに関係があります。数列の一般解を求めるみたいな問題はプログラミングそのものです。また、ゲーム会社で「上等な」プログラマになりたいなら線形代数や幾何学なんかはそのまま必須でしょう。

結局数学は全部つながってるので、中学高校のうちから真面目に勉強しといて損はないです。

3位:国語


プログラミングは文章みたいなものだ、という人は多いです。文章を書くセンス、読み解くセンスは結構大事です。

長い文章を構成するときと、長いプログラムを書くときで、使う脳の部位は似ています。

あとどの職業でも同じですが、特にプログラマの場合、相手にとってわけのわからんものを何とかして説明するという機会が多いです。そのときに日本語の運用能力が高くないといたずらに時間ばかりかかります。

お客さんや上司が、誰にでもわかりやすい文章で求めるものを説明してくれるとは限りません。難解な文章を読み解く力もあったほうがいいです。

誰かに助けを求めるにも、まず自分の状況を説明するための論理的な文章を作らないといけません。文章大事。

4位:人づきあい


プログラマはコンピュータに言うことを聞かせる職業ですが、一人では仕事できません。プログラムは本質的に誰か人間のためのものである以上、お客さんなり、同僚なり、誰とも知らないユーザーなり、必ず他の人間と関わります。

他人と関わったときに不快感を与える人よりは、機嫌よくさせられる人のほうが必要とされるし、必要とされれば成長もするわけです。プログラマに限ったことではありませんが。

5位:プログラミング


プログラマになりたいならプログラムを書けばいい。当たり前ですね。ただ、授業で習う程度のことは会社の新人研修であっという間にカバーされてしまうので…。学校で習う以外で、興味の赴くままに、何かを作りまくるのはとても有効です。え、それほど興味ない?じゃあプログラマになろうと思わなければいいよね。

自分で作ったものを発表するというのをたくさんやるというのは、上等なプログラマに至る一つの大きな方法です。やっぱり人に見せるとなったら緊張感が違うので。また上手く行けば上に書いたようなことを全部すっ飛ばしてオンリーワンになれるかもしれない。

ただ「これはいいぞ!」と思って作っても世の中的にはそうでもない、となる可能性は高いわけで、それだけで一発当てるのを目標にしなくてもいいかなとは思います。

6位:美術、デザイン


プログラムは人間のためのものです。それも、非プログラマのためのものがほとんどです。ユーザーインターフェイスにはデザインが必要です。デザインは実はかなりの割合が理屈で構成されています。色の理屈、形の理屈。

今のところ、プログラマとデザイナは別の職業です。しかし、両者の組み合わせで一つの製品を作るという機会がとても多いので、とても綿密に協力しあわなければいけません。その時、デザイナの使う理屈がわからないとうまく協力できません。

社会に出てから独学するよりは、大学の自由選択科目とかで何単位かとっておくと、結構効きます。

7位:何らかの得意分野


最初に書いたとおり、だれでも出来る仕事は安いです。逆に、出来る人が少ない仕事は高くなる可能性があります(必ず高いとは限らないけど)。

スーパー難しいプログラムは確かに出来る人が少ないですが、それ以外にも出来る人が少ない仕事があります。それはコンピュータ以外の知識との組み合わせです。

たとえば大学の心理学の研究にコンピュータを使いたい先生がいた場合、できれば心理学がきちんとわかるプログラマに作って欲しいと思うわけです。

僕は大学時代に熱力学やら燃料電池やらの専門でしたが、熱力学がちゃんとわかるプログラマって少ないので、たまたまそういう仕事に当たった時はとても有難がられてその後もずっとご指名状態です。

真面目に専門分野に打ち込むことは無駄にならないと思います。


以上です。あー長かった。



テーマ:プログラミング - ジャンル:コンピュータ

ページ内リンクでスクロールする表現試案

ページ内リンクで「パッ」と切り替わった時何が起きたかわからない、という話はたしかにあるよね。

で、こちら様は「点滅させてみよう」というのを作っておられます。

「スクロール」 っていう動作以外で、画面が移動したことを視覚的にわからせる方法として、ページ内リンクをクリック (タップ) したときに、画面を一瞬点滅させたら、なんか切り替わったなって思わせられないかなと思って
ページ内リンクはスムーズスクロールしなくても一瞬点滅すればいいんじゃないかという実験 | WWW WATCH

僕も僕も作ってみるよ!僕はページ内で遷移したことがわかったほうがいいからスムーズスクロール派なんだけど、スムーズスクロールだと凄く長いページのときにどうしてもズルズルズルズルーっと長くスクロールするのがかっこ悪い。

というわけで、とても長い距離をスクロールするときは途中を飛ばしてみた。



ソースコード


jquery.countdownつくった

JavaScriptで画面上に数字を表示してカウントダウンするやつが見つからなかったのでぱぱーっとつくりました。
特筆すべき点は…まあ、ないです。
使うほうのコードはこんな感じ。

$.countdown({ count: 5, message: 'シャットダウンしてよろしいですか?', completed: function() { alert('BooBoo.'); }, canceled: function() { alert('キャンセルされました'); } });

デモ

Githubはこちら

[GitHub] jquery.countdown


「風立ちぬ」感想

「風立ちぬ」映画館でも見たんだけど、昨日テレビで見なおして、1回めと同じ感想だったので書きます。

なんかね、複雑なんですよこの映画に対する感想。

まず、いい/悪いでいったらすごくいい。
好き/嫌いでいったらすごく好き。

どこが良かったかと言われたら、色々答えられる。
・作る飛行機がどんどん洗練されてカッコよくなっていくメカフェチっぷりがすごいとか
・九六式艦上戦闘機の美しさ!
・いちいち全ての背景がめちゃくちゃ美しいとか
・よく見たら同じ時代のモネの絵に似せてる部分があるのに気づけるオレにニヤニヤできるとか
・いちいち全てのアニメーションの技術と手間暇で説得力が半端ないとか
・堀越二郎の夢うつつで浮世離れした感じとか
・堀辰雄の小説と混ぜこぜにしながらものづくりに囚われた人の業の深さを破綻なく描いてるとことか
・またそれが「あの」声優で補強されてたりとか
・要所要所にほんのちょっとだけ手がかりを入れることで、あの時代のリアルな雰囲気やエリート技術者たちの気分を(気づく人にだけ)気づかせる嫌味な手法とか
・菜穂子のセレブお嬢フリーダム太く短く陶酔ヒロイン人生が吹っ切れててすごいとか胸チラがエロくていいとか
他にもあるかもしれないけど。

で、困ったことに、その良いところは全てこの映画の本質じゃないような気がする。

また困ったことに、僕が映画や小説などに最も期待するのは、頭から最後までを貫く話の流れがいろんな伏線を回収しながらクライマックス→美しく収束・着地して10点満点!感動!やったぜ!っていうやつなんだけど、そういうの全然なかった。あえてそうしてるんだろうけど。
ちなみに今まででそれが最高だったアニメは「まどか☆マギカ」劇場版。完璧でした。文句なし。手放しで大賞賛できて悩みがない。

「風立ちぬ」は最も期待するものがないのに、でも好きっていうこの、あーもうめんどくせーなあなんだこれ。というのが感想。

宮﨑駿の顔がちらつきすぎるのも困ったところ。

二郎は、なにか事あるごとに飛行機が飛んだり落ちたりする妄想をするんだけど、ああいう絵になる妄想はアニメーターや映画監督がする種類の妄想で、技術者は多分もっと見栄えの悪い、数字とか記号とか図面の妄想をしてるんじゃないかな。飛ばした結果がどうなるとかより、どうやって作るかしか考えてないから。

随所でそういうのが感じられて、あと文学青年の堀辰雄(の小説の主人公)を混ぜてるせいで理系バカの不具な感じが消されてるのもあって、「ものづくりに囚われた」っていうより「アニメ作りに囚われた」人の物語に見えてしかたない。あちこちに「堀越二郎は宮﨑駿本人」みたいなことが書いてあるし実際そうなんだろうけどさあ。もうちょっと隠してほしかったような気もする。

あと本庄△。
「日本が近代国家だと思ってたのか!」
とか
「それも矛盾だ!」
とかしびれる。当時の超エリートが言ってそう!めっちゃ上から目線!だがそれがいい!


UIScrollViewとAutoLayoutでハマった話

UIScrollViewの中にUIImageViewを一つだけ表示するっていうUIを作ってたんですがね。

表示する画像によって、UIImageViewの大きさをいろいろ変化させたいので、XCode上でConstraintsをあらかじめ設定しておけないので、コードのほうでなんとかしないといけないのです。

当初、

  1. XCode上でUIScrollViewにUIImageViewを貼り付け(自動的に、UIImageViewの大きさがニュニュっと大きくなるよね)
  2. UIImageViewにはConstraints設定なし
  3. UIViewControllerのviewDidLoadでUIImageViewのサイズ設定
    override func viewDidLoad() { (略) imageView.frame.size = CGFrame(x:0, y:0, width: imgWidth, height: imgHeight) (略) }

ってやってたわけです。(あ、気づいた?そう、Swiftです。いいよねSwift)

しかしどーうしてもUIImageViewの大きさが600x600になってしまう。

それはもういろいろ調べて試しました。UIScrollViewとAutoLayout | Professional Programmerとかほうぼうで、

scrollView.setTranslatesAutoresizingMaskIntoConstraints(false)

ってやるのがいいとか見て試してダメだったりとか。

調べる途中で、Visual Format Language for Autolayout - Command Shiftとか見つけて、Visual Formatがかけるようになっちゃったりとか。

しかし解決しない。

で、ふと気づきました。600x600のサイズってのは、これはあきらかにXCodeのStoryboardで設定されてる初期値なわけです。このサイズにするConstraintsが勝手にくっついてるのではないか?

そして、過去の経験から、UIScrollViewは複数のUIViewが重なって構成されているってことを知ってるので、調べるためのコードはこれだ!

for c in imageView.superview!.constraints() { println("constraints : \(c)") }

scrollViewのconstraints()ではなく、imageView.superviewを調べるのがミソです。

で、やっぱり付いてました。サイズを600x600にする制約。

となれば、あとは簡単。ついてる制約をごっそり削除しちゃえばいいのです。

var sv = imageView.superview! sv.removeConstraints(sv.constraints())

これで、あとは自前でVisual Format使ってConstraints設定するもよし、CGFrameで自由なレイアウトにするもよし。よかったよかった。


「小説家になろう」で気に入ってる作品を紹介するよ!

最近、小説家になろうの小説をいろいろ読んでます。なんか朝日ソノラマとか角川スニーカーとか読んでた頃を懐かしがって読み始めたらハマった。まだ執筆中の作品が多いので、最新話まで読んだら他のを漁って、前に読んだ作品が更新されたらそっちも読んで…とやってたらいつの間にか20作ぐらい並行して読んでる状態に…。もう脇役の名前とか覚えてられなくて自分でもなにやってんだか謎。

「異世界召喚/転生ばっかりかよ!」「俺TUEEEばっかりかよ!」「またハーレムかよ!」とかの文句をよく見かけるけど、いいじゃん別に。

主人公が強いとか女の子いっぱいとか、類似点ばっかりあげつらってても楽しくないし。話が面白いかどうかと、設定の要素が他とかぶってるかどうかなんて関係ないし。

異世界召喚はもうジャンルってことで。推理小説に「また最初に死体があるやつかよ!」とか「また探偵が主人公かよ!」って言う人はもうあんまりいなくなったわけで。
そういえば、誰だか知らないけど、世界で二番目に探偵モノ書いた人は叩かれただろうねー。「パクリやんけ!」って。それはともかくとして。

ランキングは面倒くさ甲乙つけがたいので、読んでる中でも気に入ってる作品を順不同で挙げますよ。


» Read More...

クズ記事をはてブしない、Tweetしない運動

私は、記事を見かけて「なにこれ最低のクズ記事だな!」と思った時に、以下に示す基準を満たした場合に、その記事をブックマークしない、Tweetしないことを宣言します。

  • ニュースサイトやバイラルサイト等、広告(アフィリエイト含む)があるサイトである
  • 記者自身による調査がどう見ても時間がかからなそうである
  • 10行読んだだけで反論が思いつき、その反論は多分だれでも思いつきそうである

「おれ、ネットで文章書いてる物書きの端くれです」とか言ってみたいタイプの人をたくさん雇って、「記者」という肩書を与え、「ニュース記事執筆講座」と称して

  • ネットにたむろしてる連中は人を貶して罵倒するのが大好きである
  • 賞賛される記事を書くのは難しいが、罵倒される記事を書くのは簡単である。
  • でっち上げた統計や、前半と後半で言ってることが違うなど、誰にでもわかるような突っ込みどころを置いてあげれば連中あホイホイ引っかかってコメントしてくれる
  • 罵倒もPVのうちである
  • PVが増えれば広告料が増え、あなた(記者)の報酬も増えるのである

なんていう浅はかな知恵を授けているサイトには、インターネット全体のS/N比改善のために、早く退場してほしいと願うからです。

そんな浅はかなサイトにいつまでも引っかかって大量のブクマをつけるような行為が後を絶たないため、インターネットの片隅で宣言をしてみました。

願わくば、ひどい記事がみんなに無視されて、はてブやTwitterやGoogle検索が正常な機能を取り戻してくれんことを。


サーモグラフィーのカラーマップをC#で生成する方法

半年以上も更新してないのに、急に記事を書くこのとってつけた感はいったい。

さておき、こういう仕事をしてると、赤外線カメラからUSB経由でとったシグナルデータをサーモグラフィー画像として表示するアプリを作る機会も多いですよね。そういうのはWindowsでやるのが多いので、まあ言語はC#になります(断言)。

そんなとき、画像の横にさらっと、
カラーマップ
こういう画像が置いてあると、説得力が増しますよね。

でも、色の対応とかは設定で変化したりするので、あらかじめ画像を用意しておくわけにいかないので、動的に作る必要がありますよね。たいていそうです。

なので計算で作ります。


» Read More...

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。