It's okay to be weird

レールの無い道を行くプログラマーのブログ

『Clean Code』を読んだ

達人に学ぶDB設計 徹底指南書に続き、言語やフレームワークに依存しない本として何か読みたいと思い、評判の良さを以前から聞いていたClean Codeを読みました。なかなか読み応えのある良い本でした。 日本ではリーダブルコードがよく新人にお勧めする本とし…

my_age = pow(2, 5)

本日2017/07/03をもって、年齢が2進法で6桁に桁上りしました。 class Tommy: def __init__(self, age): self.age = age def birth_day_2017(): tommy = Tommy(0b11111) tommy.age += 1 print(bin(tommy.age)) # 0b100000 print(tommy.age) # 32 def main(): …

『達人に学ぶDB設計 徹底指南書』を読んだ

これから自分の関わる業務がどういうものになるか見通せない状態にあることもあり、特化した技術や流行りを追いかけるよりは、5年10年通用してくれそうな基礎的な技術を学ぼうと思い、データベースの勉強を進めることにしました。 そこで選んだのが、訳書を…

一流エンジニアなんて目指さなくていいのかも

こんな記事を読んだ。 林修「仕事をするのに好きかどうかは関係ない、重要なのは勝てる土俵なのかどうか」 この記事の中で林さんは「一流しか存在価値がない」と思っていると語っている。もちろん、これは林さんの信条であって、皆に強制しているわけではな…

2016年振り返り

このブログを読んでくださっている皆さん、今年もお疲れ様でした。皆さんにとってどんな年だったでしょうか。 参加しているCOUNTDOWN JAPAN 16/17の会場から今年を振り返ってみようと思います。何気にiOSアプリからブログ書くのは初めてだったり。 技術面の…

海外のテクノロジー・開発系の情報収集のために自分が行っている方法

テクノロジー・開発系の分野に携わっていると、日々の情報収集は欠かせません。国内の情報だけでも十分ではありますが、海外の情報に触れることも大切だと思います。 海外の情報であっても、ニュース系の記事は大抵すぐに翻訳されますが、コラムやエッセイな…

高校数学独学の途中経過ー数学I+Aを終えて

タイトルの通り、『プログラマーとして社会人になったけど高校数学を1から独学している』という記事で紹介した長岡の教科書の数学I+Aを終えることが出来ました。 Studyplusのログによると、今年の1/4に手をつけ始めて、途中2月半ばから1.5ヶ月ほど休みを入れ…

【プレゼントあり】Rocksmithというゲームでギターを楽しく始めよう!

昨年の7月から、止めたり再開したりしながら地道にエレキギターを練習しているのですが、その中で僕が遊んでいる『Rocksmith』という素晴らしいゲームについて紹介したいと思います。 記事の最後にゲームのプレゼントも用意しているので、ギターに興味のある…

ラップトップを手に闘った悲劇の革命家アーロン・スワーツ

久々に心動かされる映像作品をNetflixで観ました。 2013年に自殺という形で26年の短い生涯を終えたプログラマー、活動家であるアーロン・スワーツのドキュメンタリー『インターネットの申し子: 天才アーロン・シュウォルツの軌跡』です。 観ようと思ったきっ…

Rebuildに受けた影響のリスト

たまにはゆるい記事を。 Tatsuhiko Miyagawaさんがホストのテクノロジー系ポッドキャスト、Rebuildの熱心なリスナーである僕がRebuildから受けた影響をネタ混じりにずらっとリストにしてみました。ちなみに嘘が3つ混じっています(笑)。 高校数学を勉強するよ…

働きながら勉強している開発者としてRui UeyamaさんがゲストのRebuild 153が刺さりまくった

Tatsuhiko MiyagawaさんがホストをされているポッドキャストRebuildに、Rui Ueyamaさんがゲストとして初登場された、2016/08/09配信のRebuild: 153: Connecting The Dots (rui314)が非常に刺激的で、「働きながら勉強している全ての開発者に聴いて欲しい」と…

全ての学ぶ人へ―学び方を学ぶ講義『Learning How to Learn』

Courseraで、カリフォルニア大学サンディエゴ校のDr. Barbara OakleyとDr. Terrance Sejnowskiによる『Learning How to Learn』という、「学び方を学ぶ」コースを受講し、昨日無事修了することができました。 Courseraの中でも特に人気の高いコースらしいの…

Courseraの一部のコースが消されてしまうのでダウンロードしておきましょう

Courseraが現地時間2016/06/30をもって一部のコースを消去してしまうようです。プラットフォームの改修による影響とのことです。 その中には非常に評判のいいコースも含まれています。 代表的なものでいうと、 Princeton大学のRobert SedgewickとKevin Wayne…

『SOFT SKILLS』の10ステップ勉強術がよさそう

最近、本を読む本 (講談社学術文庫)を読んだり、CourseraのLearning How to Learnというコースを受講してみたり、何を学ぶかということから一歩引いて、どうすれば効果的に学ぶことができるかということを学んでいます。 読了した『SOFT SKILLS』というソフ…

『SOFT SKILLS』をソフトウェア開発者1年目の今読めてよかった

higeponさんがブログで絶賛されていたことで有名な『Soft Skills』の日本語版が2016/05/20に出版され、その後2016/06/01にKindle版がリリースされたのを機に早速購入して読みました。章ごとの長さが短くまとまっているおかげで読みやすく、一気に読んでしま…

中卒程度の学力でもTOEIC初受験で960を取れたという少し変わった話

もう4年前の話ですが、タイトルの通り、TOEICの初受験でいきなり960点を取れたという話をします。 まず最初にお断りしておきますが、TOEICで高得点を目指したいという方に参考になるような記事ではないかもしれません。非常にレアケースであると思いますし、…

プログラマーとして社会人になったけど高校数学を1から独学している

この春からプログラマーとして働くようになりました。今まで色々と開発系の勉強を中心にしていましたが、最近はもっぱら高校数学を独学しています。 勉強しようと思ったきっかけ、教材として使っている『長岡の教科書』の紹介について書いていきます。 勉強…

競技プログラミングに参加するためにC++の勉強を始めた

久々の投稿です。 表題の通り、競技プログラミングに参加するためにC++の勉強を始めました。 始めたきっかけは色々あるのですが、主な理由としてモバイルアプリ開発に行き詰まったことが挙げられます。 モバイルアプリ開発の難しさ 行き詰まった原因として、…

初めてAndroidアプリをGoogle Playに公開しました

去年の2月ごろからAndroidアプリ開発の勉強を始めて、今日ようやくGoogle Playにアプリを公開することができました。何個か作ったアプリはあったのですが、公開するには地味すぎたり、作りかけで終わってしまったりしたので、今回は公開するまで完成させると…

Udacity: Developing Android Apps ファーストインプレッション

昨日から公開されている、UdacityとGoogleが提携して作ったコース、How To Develop Android Appsを、Lesson 4aを終えたところまで進めました。内容的には、Sunshineという天気アプリを作りながらAndroidについて学んでいく、プログラミング経験者向けのある…

Smashing Android UIを読了

iOSアプリ開発に手を出してみて感じたのは、やはりAndroidと比べてどちらが難しいとか簡単とかいうところは無く、どちらも細部までいじろうとすると難しいということでした。特にデータベースの扱いや並行処理なんかは共通して面倒が多い部分に感じました。…

Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition)を読了

Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition)を読み終わりました。 まえがきに、「概念を学び、すぐに実践することがプログラミングを学ぶ最良の方法」と書いてある通り、他のBNR本と同じく、コードをたくさん書いていく、かなり実践的…

iOSアプリ開発に手を出してみてる

Android開発を始めたばかりの僕が読みたかった本 - RejasupoemやAndroid開発を始める上でおすすめの4冊を参考にして、Effective Javaを読んでいたのですが、あまりの難しさに挫折してしまいました。全然初心者の域を脱していないんだなということを痛感しま…

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編を読了

これもHead First Design Patternsを読んだ動機と同じく、CourseraのAndroidのコースでJava並行処理プログラミング ―その「基盤」と「最新API」を究める―が推薦図書に入っていたことから、その前に読む本として勧められているこの本を読んでみました。 僕は…

Head First Design Patterns読了

Head First Design Patternsを読み終わりました。この本も去年の11月頃に手をつけたのにしばらく放置しており、読み終わるのに長くかかってしまいました。もう少し本を読んでいくペースを上げていきたいところです。 概要 GoFの23のパターンのうち、核となる…

Android Programming: The Big Nerd Ranch Guide読了

途中で挫折したりして間を空けながらでしたが、やっとAndroid Programming: The Big Nerd Ranch Guideを読み終わりました。記録を見ると、読み始めたのは去年の10月末からのようです。洋書ということもあってけっこう時間がかかってしまいましたが、なかなか…

Oracle Certified Java Programmer, Silver SE 7に合格しました

初めてのベンダー資格試験、Java Programmer Iを受けてきました。帰りのバスで結果を確認したところ (結果出るの早い!) 無事合格していました。前日にやったスピードマスター問題集の模試の正解率がよくなかったので不安でしたが、正解率93%とある程度余裕…

Sublime Textでサクッとシンタックスハイライトを変更する方法

Sublime Textでサクっとシンタックスハイライトをオンにする方法です。ファイルを新規作成したあとなどに使えます。 やり方は簡単で、Command + Shift + P (Macの場合) でCommand Paletteを開いたら、ssと打ったあとにハイライトしたい言語を入力すればOKで…

2014/01 勉強振り返り: Courseraにハマりつつある

今までこのブログは「である」調で書いてきましたが、このエントリーから「です・ます」調に変えていこうと思います。読み手に与える印象もそうですが、書きやすさの面でも、文章を書き慣れていないためか、「である」調は少し書きにくさを感じていたためで…

Courseraで一連のAndroidコースが2014/01/21からスタート

Courseraでメリーランド大学とヴァンダービルト大学による、機関をまたいだ一連のAndroidコースがスタートするみたい。 Programming Mobile Applications for Android Handheld Systems Pattern-Oriented Software Architectures: Programming Mobile Servic…

情報セキュリティスペシャリストに合格した

もう合格発表から約1ヶ月経つけど、平成25年秋の情報セキュリティスペシャリスト試験に合格した。 午前I 免除、午前II 満点、午後I 66点、午後II 61点のぎりぎり合格。午前と午後のギャップが激しかった。 合格発表まで、今回は落ちたと思っていた。解答速報…

2013/12 勉強振り返り

年末年始に体調を崩していて、ブログを書く余裕がなかったのだけど、ようやく落ち着いたのでかなり遅れてのエントリー。 スマートにプログラミング Android入門編 第3版 読了。BNR本と違って、サンプルコードは機能を理解するための最小限のコードなので、出…

2013/11 勉強振り返り

Android Programming: The Big Nerd Ranch Guide 今月はこれ中心…だったのだけど途中で挫折してしまった。 自分で課題を解いてコードを書くChallengeがところどころで入るのだけど、最初の方はそこまで難しくなかったのに、途中からは難易度が上がってほとん…

【Android開発】【Eclipse】Graphical LayoutでPropertiesの値が編集できない場合の解決法

問題 EclipseでレイアウトXMLをGraphical Layoutで開いた時、Propertiesを編集しようとして値の欄をクリックしても選択できない。 解決法 上の画像に示した位置にあるドロイド君アイコンをクリックして、レイアウトの描画に使うバージョンをAPI 18以下に下げ…

Git for Windows 1.8.4以降で日本語入力が出来ない場合は~/.inputrcが原因かも

問題 Git for Windowsは1.8.4からUnicodeがサポートされて、日本語入力が出来るようになったはずなのに、自分の環境では日本語を入力しようとすると、変換を確定した際にビープ音が鳴ったあと入力が破棄されてしまい日本語入力ができなかった。 対処法 Cygwi…

2013/10 勉強振り返り

情報セキュリティスペシャリスト 10/20の試験に向けての最終追い込み。教科書の2周目と、午後問を平成25年度春期~平成24年度秋期までやった。平成25年度春期と平成24年度秋期は2周した。もうちょっと午後対策の時間が欲しかったかも。 解答速報で自己採点し…

【Eclipse】Gitプロジェクトをコピーする場合は先にコピー元プロジェクトでDisconnectする

問題 EclipseでEGitを使ってTeam -> Share ProjectからGitを有効にしたプロジェクトを、Copyして別のプロジェクトとして使おうと思ったのだけど、コピー先のプロジェクトでTeamメニューがSynchronize Workspaceだけしか選べなくなり上手くいかなかった。 対…

【Android開発】【Eclipse】Androidライブラリがプロジェクトと違うドライブに存在すると参照できない

またまたAndroid Trainingで詰まっていたのでメモ。 Android 2.1以上をサポートするAction Barを設定する際に詰まってしまった。 当該ページ: Setting Up the Action Bar | Android Developers 問題 手順通りやったのに、 <activity android:theme="@style/Theme.AppCompat.Light" ... > を入力したところで、 No resource</activity>…

【Android開発】Nexus 7 2013のUSBドライバのインストール

実機でアプリを動かすため、Android Trainingの手順通りNexus 7のUSBドライバをインストールしようとしたら上手くいかなかったのでメモ。 該当項目:Running Your App | Android Developers 環境 Windows 7 Professional SP1 64bit Nexus 7 2013 (Android 4.…

【Android開発】Genymotionが"Starting virtual device..."で止まって黒画面のまま動かない不具合の対処法

不具合 最近Android開発に向けてGenymotionを導入したのだけど、仮想端末作成後、起動しても"Starting virtual device..."で止まって黒画面のまま動いてくれなかった*1。この不具合で長いこと詰まっていたけど解決できたのでメモ。 対処法 公式のFAQ*2にも書…

2013/09 勉強振り返り

気がついたら1ヶ月間何も記事を書かないままだった。 プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 内容的には基本情報技術者レベルのものなので、ほとんどは復習。アセンブリ言語についても触れていて、基本情報技術者では表計算を…

2013/09 勉強振り返り

気がついたら1ヶ月間何も記事を書かないままだった。 プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 内容的には基本情報技術者レベルのものなので、ほとんどは復習。アセンブリ言語についても触れていて、基本情報技術者では表計算を…

2013/08 勉強振り返り

Udacity - Introduction to Computer Science (CS101) 盆休み中で問題をろくに考えもせずにすぐ答えを見ながら残りを一気に終わらせるという愚行をやってしまって後悔してる。後半はいつかもう1回受け直してもいいかもしれない。Pythonは書きやすくていい感…

ドットインストール ローカル開発環境の構築 Windows編

!!!注意!!! 公式にWindows用の開発環境構築レッスンが追加されていますので、この記事を参考にせずそちらを参照することをお勧めします。 ローカル開発環境の構築 [Windows編] (全10回) - プログラミングならドットインストール 以下、古い情報 ローカ…

本家O'Reillyが電子書籍の全品半額セールを9月10日まで開催中

本家O'ReillyでBack to (Tech) School Saleが開催中。B2S3というコードを入力すると全品 (紙の本は除く) が50%オフ、$100を越えて買うと60%オフになる。 Back to Schoolってなんだろうと思ったら夏休みの終わりにやるセールのことのようだ。 参考: Back to …

【Java】インスタンス変数の初期化でコンストラクタを使った場合と使わなかった場合の違いってあるんだろうか

インスタンス変数の初期化について疑問に思ったのでメモ。 class Test { private int n = 5; } こうやった場合と、 class Test2 { private int n; public Test2() { n = 5; } } こうやった場合ってなんか違いがあるんだろうか。 コンストラクタを使った方が…

【Java】toString()を使ってArrayListの全要素を文字列として取得する

またまたUdacity Introduction to Programmingで詰まった箇所があったので覚え書き。 friendを追加したりfriends (PersonのArrayList) のリストを取得したりできるPersonというクラスなのだけど、この中のgetFriends()メソッドがよく理解できず詰まっていた…

【Java】やっとScannerのhasNextInt()を使った判定方法が理解できた

UdacityのIntroduction to Programmingで、入力された値が整数かどうか判定するのにhasNextInt()を使っているプログラムがある。いまいちhasNextInt()がどういう働きをしているのかよく解ってなかったのだけど、ようやく (おそらくは) 理解できたので書いて…

2013/07 勉強振り返り

Udacity - Introduction to Programming (CS046) Lesson 6.2から急に字幕がつかなくなってしまったので中止することにした。自分のリスニング力じゃ音声だけってのは厳しいものがあるので。いつか字幕が追加されないかとたまに覗いているのだけど、追加され…

情報セキュリティスペシャリスト メモ

午前 午前IIは25問中15問正解で合格。問題数が少ない分、1問1問の重みが増しそう。 午後 基本情報や応用情報では、「ネットワーク」、「データベース」などのように、出題される分野がはっきり決まっていたけど、情報セキュリティスペシャリストではどうなっ…