Dance with Tech

プログラミングとか学んだことの備忘録ブログです。

エンジニアが使うキーボードは東プレのリアルフォース1択!

東プレのREALFORCEを使い初めてから、1年以上経過しました。

f:id:kmatz90:20150715194712j:plain

もうこれに慣れてしまうと、他のキーボードには戻れません。

その理由を以下にまとめます。 

 

静電容量無接点方式を採用

文字だけでは全く意味が分からないですね。

ウルトラ簡単に言うと、最小限の力でタイピングできます。

セブンイレブンとかにあるATMのキーボード(ほぼテンキー)も、

同じ静電容量無接点方式を採用しているようなので、

試し打ちしたい人はセブンに行くといいかもw

 

小指などでタイプするキーは軽めに押せる仕様になっている

僕が購入したREALFORCEは91Uというシリーズで、

キーによって重さが異なっています。

例えば、「a」などの小指でタイピングする部分は、

キー荷重が軽めに設定されていて、

マジで無力で押せます

f:id:kmatz90:20150715194732j:plain

逆に「Enter」や「Esc」などは、

そう簡単に反応されるとマズイことがあるので、

それなりに力が必要です(とはいえ軽いけど)。

※キー荷重が統一されているシリーズもあります。

 

有線なので反応が良い

無線だとたまにラグが起きたりするので、あまり好きじゃないです。

また、電池などのバッテリーの心配もあります。

その点、リアルフォースは全シリーズ有線なので心配ありません。

 

Macにも使える(使ってる)

リアルフォースのキーボードはWindows仕様なので、

そのままだとMacでは使えません。

ですが、PCの環境設定を変更して、

「Seil」というソフトを入れれば、

Macでもリアルフォース(Windowsのキーボード)が使えるようになります。

詳細はこちらの方の投稿を参考にしてください。

 

さいごに

買うならテンキーが付いてない方がオススメです。

テンキーがない分スペースを取らないし、

マウスとの距離が近いので、右手の切り替えが高速でできます。

東プレ NG0100 REALFORCE91U

東プレ NG0100 REALFORCE91U

 
東プレ NG01B0 REALFORCE91UBK

東プレ NG01B0 REALFORCE91UBK

 

もっとギークなキーボードにHappy Hackingがありますが、

こちらはカーソルキーや「Ctrl」がないのでオススメしません。

完全にガチな人向けです。

SQLiteの注意点3つ!テーブル作成と同時にINDEX貼れないetc

最近SQLiteを触っています。

f:id:kmatz90:20150617185118p:plain

基本的な構文などはMySQLと同じですが、

決まりごとの違いや若干のクセがあるので、メモしておきます。

 

SQLiteのデータベースはファイルとして生成される

SQLiteはデータベースをファイルとして生成します。

なので、「ファイルを消す=DBを消す」ことになります。

 

SQLiteをインストールしたら(最近のLinuxはデフォで入ってるぽい)、

以下のコマンドで、DBができあがります。

sqlite3 dbname.sqlite3

上記の「.sqlite3」の部分は何でもいいです。

しかし、拡張子がないと、

のちのち何のファイルか分からなくなる可能性があるので、

慣習的に「.sqlite3」とするようです。

 

しかし、DBを作成しただけではファイルが作成されません

DBを作成し、さらにテーブルを作成しなければ、ファイルが生成されないようです。

「DB作ったのにファイルがない!」と焦りました。

 

ファイル(DB)のパーミッションに注意

PHPなどのプログラムからファイル(DB)にアクセスする場合、

ファイルの権限を考慮しないと、UPDATEやINSERTができません。

これは通常のDBと違うので、ハマるかも。

 

テーブル作成と同時にINDEXが貼れない

これは意外でした。

MySQLの場合、

「CREATE TABLE」すると同時にインデックスの設定ができたのですが、

SQLiteだと仕様の問題でできないようです。

むしろ、MySQLのように1度にできる方がマイノリティらしいです。

なので、1度テーブルを作成し終わってから、インデックスを貼る必要があります。

CREATE INDEX index_name ON table_name(column1, column2...)

まあ、仕方ないですね。

 

まとめ

最近使ったコマンドなどをまとめました。

その他、selectなどの命令文はMySQLとほぼ同じです。

 

SQLiteiOSやAndoridのアプリでも使うデータベースなだけに、

今後も使うことがありそうなので、

1度覚えたら忘れないようにしたいですね。

SQLite ポケットリファレンス

SQLite ポケットリファレンス

 

【Swift入門】ディクショナリから値を取り出すときに順番がバラバラになって驚いた

iOSアプリを仕事で作ることになったのでSwiftを始めました。

その中で、勉強したことと少し驚いたことをメモしていきます。

タイトルの件は中盤辺りに書いています。

f:id:kmatz90:20150521221920p:plain

ちなみに僕は、Objective-Cを2年位前に本1冊終わらせたくらいで、

iOSアプリに関しての知見は殆どありません。

 

変数・定数・配列・ディクショナリ(連想配列)の宣言と初期化

上記ではそれぞれの型を指定して宣言・代入をしていますが、

型の指定は省略することができます。

var variable = 10  //Int型になる

省略した場合、自動で型を推測して実装してくれます(型推論)。

Objective-Cではできなかった模様

 

ループと配列・ディクショナリの操作

一般的で分かりやすいですね。

forの条件式の部分に()を付けることもできます。

 

驚いたこと

これが本題です。

上記のような方法でディクショナリから値(キー)を取り出すと、

1,青木さん

2,佐藤さん

3,鈴木さん

ではなく、

2,佐藤さん

3,鈴木さん

1,青木さん

のように、

初期化していた順番とバラバラになって出力されたりします

※順番通りに表示されることもあります。 

これはSwiftの仕様のようで、

 Unlike items in an array, items in a dictionary do not have a specified order.

訳:配列内の項目とは異なり、ディクショナリの項目は指定された順序を持っていません。

公式ドキュメントに記載されています。

知らなくて、何とかしようと頑張ってしまった。。

 

関数(func)

Swiftの関数は「function」ではなく「func」と表現し、

戻り値を返す場合「->」を使って型を指定します。

また、引数に初期値を設定することもできます。

 

タプル(tuple) 

タプルとは、複数の値(型が違くてもok)を1つにまとめられるものです。

配列とはまたニュアンスが違います

実際にコードを見た方が分かりやすいです↓

便利そうですが、後から要素を追加したり削除したりはできないようです。

 

Swiftの暗黙のルールとか空気感

ここまで変数の宣言を「var」で行ってきたのですが、

基本的には「let」を使って定数にし、

変数が必要な部分のみで「var」を使うってスタンスが良いみたいです。

 

あと、変数の宣言で使う型の指定ですが、

基本的には省略しちゃって良いような空気をググってて感じました。

確かにXcodeが変換してくれるとはいえ、

いちいち「String」とかタイプするの面倒。。

この辺りは賛否両論ありそうですが、

ベターな書き方が分からないので、しばらくは他人が書いたコードを読んで修行あるのみです。

 

今後も覚えたことや、気づいたことなどをメモしていこうと思うので、

興味のある方はまた来てください。

「ザ・ファシリテーター」を読んだら仕事で使えそうなフレームワークがあったので紹介するよ

読んだのはこれ↓

ザ・ファシリテーター

 

ファシリテーションファシリテーター)とは?

簡単に言うと、MTGとかコミュニケーションを

スムーズかつ効率的に進めるための魔法(スキル)です。

f:id:kmatz90:20150509224418j:plain

IVSとかのカンファレンスで出てくる「モデレーター」と似ていますね。

「モデレーター」は

その場をスムーズに予定通り進行させるアナウンサーのような役割で、

ファシリテーター」は

ブレストとかMTGを捗るようにハックするコンサルタントのような役割だと認識しています。

 

書籍に出てくるフレームワークを紹介

とにかく議論やコミュニケーションを円滑に進めるための方法が満載です。

課題を解決するための具体的なフレームワークが随所に出てきます。

 

ジョハリの窓

自分や他人を理解するプロセスを

窓のように分けて図解する考え方のモデルです。

f:id:kmatz90:20150509234014p:plain

引用 :Wikipedia

Ⅰの窓をⅢに広げる(Ⅲを狭くする)= 自己開示

自信満々の人が弱みをさらけ出すのは、

自信があるから弱みを出せるのではなく、

弱みを開示することで自信を獲得している。

自己開示をすると自信を得ることが出来るそうで、因果関係が逆なのですね。

 

SWOT分析
  • Strengths(強み)
  • Weaknesses(弱み)
  • Opportunities(機会)
  • Threats(脅威)

の頭文字を取ってSWOT.

周りの環境要因としての機会と脅威、

内部要因としての強みと弱みを

マトリックスに落として分析する手法です。

f:id:kmatz90:20150510220214p:plain

引用:看護師のリーダーシップ開発

これを行うと、問題意識が 深く共有され、

さらには建設的な意見が増えるようです。

 

フォースフィールド分析

達成できていない課題に対して、

何の「力(フォース)」が邪魔をして達成できないのか、

あるべき姿を妨げている「力」を見える化する手法

付箋などにひたすら書き出したら、

それをグルーピングして議論するのが通例のようです。

 

まとめ

他にも、パレート分析とかタックマンモデルとか、

スノーフレークと呼ばれるアイスブレイクなど色々登場して面白いです。

僕はエンジニアなので、

すぐに紹介したフレームワークを使うことはなさそうですが、

頭の片隅にでも置いておきます。

少し前に読んで感想を書いた「V字回復の経営」と同じで、

内容が小説テイストになっています。

そのおかげか、非常に読みやすいのでオススメです。

ザ・ファシリテーター

ザ・ファシリテーター

 

GWちょー暇という非リア充にオススメする7つの名スライド

ゴールデンウィーク暇過ぎる!

f:id:kmatz90:20150429210339j:plain

という非リア充な方のために、

僕が今まで読んで感動したスライドをまとめました。

本を読むのはちょっと、、

という方にはちょうど良いボリュームだと思います。

 

グロースハック系

クックパッドのグロースハックについて

クックパッドのグロースハック事例についてです。

30ページくらいから本題です。

 

 君にグロースハックはいらない

マイクロソフトエバンジェリストをしている馬田さんのスライドです。

始めのうちはスケールさせようとするより、

PMF(プロダクト・マーケット・フィット)が大事だよと言っています。

 

技術者向け

エンジニアのための経営学

あくまでも、技術(プログラミング) は手段だと言う話です。

技術好きな人ほど読んだ方が良いかも。

 

UIの話は会議室でするな

17ページに出てくる「関係なさそうな人にも聞こえるくらいの声量で話す」、

これは結構重要だと思う派でして。

何故かと言うと、そうすれば他の人の耳に入って、

何かおかしいことを言った場合orその人の方が詳しい場合、突っ込んでくれるから

そんなのウルサイから止めてくれとか賛否両論ありそうですが、

新人が多い環境とか、コンセンサスを多く得なければいけない環境には向いていると思います。

 

WebエンジニアのためのWebサービスデザイン実践講座

エンジニアの人もデザインが出来た方が楽しいよという内容です。

そして、具体的なデザインの考えた方も学べます。

 

キャリア系

転職基準-スタートアップへの転職を検討するための予備知識

上述した「君にグロースハックはいらない」を書いた馬田さんのスライドです。

この人のスライドは本当にためになるので、他のスライドも読んでみてください。

ちなみに、よくY Combinatorのポールグレアムが登場しますw

 

 私のキャリアチェンジ

最後は、ご存知伊藤直也さんのスライドです。

自分の好きなことが得意なこととは限らないというお話です。

 

おしまいです。

他に良いスライドあったら教えてくださいm(_ _)m

HARD THINGS 答えがない難問と困難にきみはどう立ち向かうか

HARD THINGS 答えがない難問と困難にきみはどう立ち向かうか

 

プログラミングとかウェブでよく出てくる小難しい英単語30選

よくプログラマー(エンジニア)は、

数学が得意な人じゃないと出来ないとか言われたりしますが、

個人的には数学というより、

英語が出来る(好きな)人の方が有利だと思っています。

だってプログラミングってコメント以外英語ですし。

なでしこ」とかはありますけどw

f:id:kmatz90:20150420221920j:plain

 

僕は学生時代、どちらかと言うと数学が苦手なタイプでしたが、

英語はわりと出来る方でした(というか好きだった)。

もちろん、数学も出来た方が有利に決まっていますが、

普通にご飯を食べていく分にはそんなに必要無いと思います。

 

ということで、

英語の意味を理解すると、仕事が更に捗るんじゃないかと思いまして、

プログラミングとかウェブで出てくるけど、

ちょっと意味が分かりづらい英単語30個をまとめてみました!

 

プログラミングで出てくる英単語30選

英単語読み方意味
allocate アロケート 割り当てる
attr(attribute) アトリビュート 属性
bind バインド 結び付ける
component コンポーネント 部品、構成要素
description ディスクリプション 説明
exception エクセプション 例外
exec(execution) エグゼック 実行
extend エクステンド 拡張する、継承する
extract エクストラクト 抜き取る
fatal フェイタル 致命的な
fetch フェッチ 取ってくる
function ファンクション 機能
grant グラント 付与
ignore イグノア 無視する
implements インプリメンツ 実装する
init(initialize) イニット 初期化する
instance インスタンス 実体
invalid インバリィド 無効
notice ノーティス 予告、通知
parse パース 構文解析する
prefix プリフィックス 接頭語
prepend プリペンド 先頭に追加する
previous プリヴィアス 前の
render レンダー 表現する
state ステート 状態
static スタティック 静的
swap スワップ 交換
syntax シンタックス 構文
temp(temporary) テンプ 一時的な
validation バリデーション 検証

※2015/4/22 追記

  • instanceのスペルミスを修正
  • implementsの意味を「実装する」に修正
  • noticeの意味に「通知」を追加

implementsは非常に勉強になりました!

もう忘れることは無いと思いますw

ご指摘頂いた皆様、ありがとうございました!

 

まとめた結果

.

..

...

英語の勉強みたいになった。

 

暗殺教室 殺たん (JUMP j BOOKS)

暗殺教室 殺たん (JUMP j BOOKS)

 

【Linux】サイズの大きいファイルはお前だ!消してやる!

タイトルの通り、

ストレージ内で容量の大きいファイルを見つけて削除する、Linuxコマンドをまとめました。

f:id:kmatz90:20150415235831j:plain

環境はAWS(EC2)でCentOS7です。

CentOS7の構築については、

少し前に書いて何故かとても読まれた過去記事を参照してください。

 

ぶっちゃけ簡単だし、

ググればこの手の類はいくらでも出てくるのですが、 

念のため備忘録としてまとめておきます。

 

メールのキューが溜まっている場合は以下で対応。

あんまり無いと思うけど。

 

これで今後忘れてもググらずに済むはず。

ログとかのファイル削除に関しては、

定期的に消すシェルなどの仕組みを作るのが1番良いですね。