かな入力の薙刀式を練習していきます。
最近かな入力に挑戦しようと思いました。理由は、 - 1つのかな文字に対して2つの英文字を打つよりも速いと考えた - 日本人だから、文章を打つときにかな入力できると楽
だと考えました。習得に時間がかかるのは承知のうえで、これからのために練習しておこうと考えました。
かな入力
標準のかな入力、これは覚えにくいし、4列にまたがっているため2本の人差し指を宙に浮かせて打っていくことになります。空間認識の記憶も必要になるため、大変です。これは使いたくないです。となるとどうするかというと、かな入力にも標準入力以外の配列があるんです。例えば、
があります。現在でも、配列を開発している方はいらっしゃいます。自分にとっての最高の配列を見つけ出すため、なかったら作るの精神をもち、実際に行動しているので尊敬します。その中でも、私は薙刀式を覚えることにしました。薙刀式の製作者さんのページはこちらです。
採用した理由は、
- よく出る表現を楽に打つ(最速を目指さない)
- 「しょ」などの拗音を3キー同時押しで打てる
- 、。がホームポジションで打てる
からです。特に、最速ではなく楽に打つということを考えているのが面白いと思い採用しました。これから練習していくために、簡単なタイピングソフトでも作ってみようかなと思います。
ゲームセンターを楽しむ技術の打ち上げでゲームセンター(WGC、ウェアハウス)に行きました
COMITIA129と技術書典7で頒布した、「ゲームセンターを楽しむ技術」の打ち上げに行ってきました。
ゲームセンターを楽しむ技術について書いた本です。
行ったゲームセンター
WGC
まずは私が好きなゲームセンター、WGCに行きました。場所は立川です。参加メンバーも遠い、と言っていましたが、わざわざ行く価値はあるゲームセンターです。なぜか。それは、ここにしかないゲームがたくさんあるということです。海外のゲームやレトロゲームがあります。海外の音楽ゲームではPUMP IT UP最新作やSTEPMANIAX、O2JAM、DJMAX TECHNICAなどがあります。レトロでは、旧作が稼働していたり、レトロゲームが60作以上プレーできる筐体があります(個人的にはパカパカパッションがあるのがうれしい)。行ったメンバーはシューティングの章、最近ゲームセンターに行っていない人の章、踏みゲー(踏む音ゲーをこう言う)の章を書いた人だったので、それぞれシューティング、レトロゲーム、踏みゲーをやっていました。一緒に行きましたが、結局自分の気になるゲームをやり続ける会になりました。シューティングを集中してプレーする人、レトロゲームを懐かしそうにプレーする人、ゲームセンターに来たのに息を切らして汗だくになっている人(私)がそこにいました。シューティングうまい人の集中力は尊敬します。ゲームの遊び方がわからなかったら店主さんに聞くと教えてくれます。あるゲームの初心者に向けてのイベントやスコアタイベントをよく開催しているので、興味がある方はぜひ行ってみてください。
打ち上げ
メンバー全員川崎が帰り道周辺ということで、川崎で打ち上げの飲みをしました。技術書典にサークル参加しているメンバーだったので、ゲームセンターを楽しむ技術は200部は刷りすぎだったとか、次に書くネタはあるのかという話をしました。その後はエンジニア飲み会あるあるの今の問題点や、これからどうしていくのか、といった問題解決法や建設的な議論をしました。私の勤めている会社は典型的なJapanise Traditional subsidiaryということがわかりました。業務系のC#の内容、必要としている人はいるのだろうか・・・。
ウェアハウス川崎
まだ時間があったので、ウェアハウス川崎に行きました。行ったことない人は、入り口が正面側と駐輪場側にあるので、どちらからも入ってみてください。どちらもすごいです(ぜひ、実際に行ってみてください)。外観はすごいですが、内装も凝っています。おいてあるものはしっかりとゲームセンターをしていて、ビリヤード、ダーツ、ネットカフェもあります。ここのゲームセンターは現在好評稼働中の各種ゲームはもちろん、レトロゲームを設置しており、スリルドライブ3やバーチャロン、実際に座席が可動するタイプのレトロレースゲームやレトロビデオゲームがあります。DANCERASH STARDOMをやった後、シューティングゲームの場所に行きました。ドラゴンスピリットをやっている人と、怒首領蜂をみて舌を巻きました。そのあと、解散しました。
感想
いつも1人でゲームセンターに行き黙々とプレーしているのですが、複数人で行って「すごいですね!」と褒めあったり、こんなゲームあるんですよ、こうやるんですよと紹介するのも楽しいなと感じました。ゲームセンターでも一日中遊べるので、皆さんぜひゲームセンターに行きましょう!
この本を読むとより楽しめるかも?
続編構想中なので、書ける人はぜひ@akrolayerまでおねがいします。(格ゲーの話と、メダルゲーム、ATCGの話を特に募集中)
私のストレングスファインダー
ストレングスファインダーをやってみたので、結果をまとめたいと思います。全部解放してみたので、10位まで載せます。
結果
- 適応性
- 着想
- 指令性
- 回復指向
- 活発性
- コミュニケーション
- 最上指向
- 親密性
- アレンジ
- 共感性
このガイドを読んで印象に残った文言、語句はどれですか、とガイドにあるので、上位5つの強みの名前とその部分をまとめようと思います。
適応性
適応性という資質を持つ人は、「流れに沿って進む」ことを好みます。「今」を大切にし、それぞれの時点で進む方向をひとつずつ選択することにより、将来を見極めます。
- 最も重要なのは、現在
- 自分だけの予定やペースを定めることを好む
- 正しい選択のために自分の直感を信じる
- 他人の用いるプロセスを用いる
- 厳しいスケジュールに縛られない
私はスケジュールを立てるのが苦手なので、その時その時で行動を決めます。自分の直感を信じますが、既にある方法を取り入れることが多いです。取り乱すこともあまりないですね。
着想
着想という資質を持つ人は、新しいアイデアを考えるのが大好きです。全く異なる現象に見えるものの間に、関連性を見出すことができます。
- 従来の手法とは異なった、または新しい方法を無意識に考える
- 伝統に抑えつけられたり、日課で身動きが取れなかったりすることを拒否する
- ブレインストーミングのセッションで斬新なアイデアをグループにたくさん提案する
- ほとんどの討論や会議に新たな考えを持ちこむ
- 自分がよそよそしい、冷たい人だと思われていないか、自問することがよくある
昔から人と異なることに喜びを感じていたように思います。ブレストではたくさん提案しますし、身動きが取れないのは嫌いです。他人にどう思われているかを気にしてしまうことが多々あります。
指令性
指令性という資質を持つ人には、強い存在感があります。状況の主導権を握り、決断を下します。
- 会話を活性化したり、停止させたりすることができる
- 可能性を考える人たちに囲まれていると、心地よさを感じる
- あなたは、 相手の言動に疑問があるときは、不快感を抱かれることがわかっていても、大胆に疑問を投げかける
議論が好きだとは自覚しています。自分の主張を通そうとする姿勢があることも自覚しています。
回復指向
回復志向という資質を持つ人は、問題を解決するのが大好きです。どこに問題があるのかを探りあて、それを解決することに長けています。
- 「ナンバーワン」になることよりも、私生活や仕事上において継続的に前進することに関心を持つ
- 自分が改善できることや、改善すべきことについて、他者にアドバイスを求める。 そして提案されたスキルや知識を身に付けることを目指す。
ナンバーワンになることには大きく興味を持ってはいません。日々成長していくことで結果としてナンバーワンになるのだと思っています。他者にアドバイスを求めて、その通りに行動していることも多いです。
活発性
活発性という資質を持つ人は、アイデアを実行に移すことにより結果をもたらします。じっとしていることができないことが多いものです。
- あなたは、 通常、変更や改善が可能なことについて、自分のアイデアを出す
- 自分の話をすることをそれほど苦にしない
- 自分らしくいられる状況に惹かれることがある
- あなたは、自分の成功や失敗、才能、限界、希望、不安などの話に人々が耳を傾けてくれると、素晴らしい気分になる
先ほども述べましたが、社長に直談判したのは自分の考える改善案を話しました。LTは結構好きなので、自分の話を聞いてもらえるのが楽しいのだと思います。
この5つの中で自分が一番認めてもらいたいのは、適応性ですかね。予定を立てるのが苦手なのはすごく自覚していますし、これが一番自分らしいというか、自分がつらくないです。危機対応能力や柔軟性を持っているとのことなので、それらを鍛えていきたいと思います。
クリフトンストレングスの領域
34の資質は、実行力、影響力、人間関係構築力、戦略的思考力の4つに分類されています。上位資質に多いものが強みです。私は影響力が強みでした。
あなたは、主導権を握り、はっきりと意見を表明し、他の人が確実に耳を傾ける方法を知っています。
自分の考えを主張できる環境が私に合っているのでしょうか?
サポーターズcolabオンライン登壇しました(キーボードの話)
9/17、サポーターズcolabにて、「あなたの知らないキーボードの世界」という名前でオンライン登壇してきました。
登壇に関しての感想
オンライン登壇って話してる感じがしないですね。聴衆が見えないため、自分がしゃべっている内容が本当に届いているのか、話したい内容が届いているのか確認ができないので。
話している間もファシリテーターの方が隣にいたので、質問を投げてくれたり、相槌を打って下さったので話しやすかったです。1人ラジオも放送作家の方が隣にいるという話を聞いたことがあるので、まるでラジオだなと思いました。
今回はtwitter実況も用意されてましたが、あまり活発ではありませんでした。サポーターズcolabの勉強会に来て下さる方は初めての方や慣れていない方が多いため、こちらは仕方ないです。ぜひ、勉強会参加者の方は用意されたハッシュタグでリアルタイムにツイートしてください。主催者の方のモチベーションにつながりますし、何より登壇者の方が喜びます。反応があったほうが嬉しいですよね。
最近のキーボードの盛り上がりについて
最近、キーボードについて興味を持つ人が増えてきたと感じています。自作キーボードと、HHKB・REALFORCEが相互に盛り上がっているのではないかと感じています。自作キーボードの自分が作るという過程の楽しさ、カスタマイズの容易さと、製品版の買ってすぐ導入できること、こちらでしかないキースイッチ(静電容量無接点方式)があること、そしてどちらにも関係する値段・時間を含めたコストを鑑みてキーボードを選択するという過程が一般的になったため、どちらから興味を持っても両方を比較するようになったのではないかと考えます。
安いキーボードを使って何個も買い替えるのか、高いキーボードを使って長く使うのか、そもそもキーボードにこだわる必要があるのかという話もありますが、この問題は全ての製品に対して存在する問題なので、答えとしては「自分に合ったものを探して見つけ出そう」がいいと思います。それが製品で存在するなら買うし、無ければ自作する。それでいいと思います。
キーバインド設定をしよう!
キーバインド設定は、かなり便利なのでぜひ使ってみてください。自分が頻度高く行っている操作を早く正確にできるようになります。自分は、macbookを買ったら最初にかな/英数をトグル切替に変更しました(Windowsになれていると違和感しかない)。キーボードでマウス操作したり、遠いキーをキーの組み合わせで設定してホームポジションからほぼ手を動かさずに操作できるようにできます。
無限LT会 #3 【Endless Level Up】に参加してきました
oysters.connpass.com 参加してきました。
今回の形式
今回は、
- 事前に自己紹介と1回目のLTスライドを用意
- 自己紹介の際に自分の持ってきたLTのネタを示す。2回目、3回目に資料はその場で作るため、他の参加者の発表内容を見てLT内容を変更してもよい(前日からのスライド準備は禁止、その場で作る。内容は事前準備可)
- LTが1巡したら、休憩とスライド作成時間を兼ねた黙々タイムがある
という形式でした。LTを聞きながら、内容に関してツイートしつつ自分のスライドを作る。大変ですね。ですが、これが楽しい部分です。自分の発表が終わった時に自分の発表に対しての反応ツイートがないと悲しいので、なるべくツイートするようにしています。作成のために使える時間、発表時間に合わせて、その状態にあった質のスライドを作成する能力をつけていきたいですね。
自分のLT
キーボードの配列をいくつか紹介しました。それぞれ配列の思想が異なるので、自分が共感した配列を使ってほしいと主張しました。
大学院の時に高校の情報科目の非常勤講師をしていたので、その時に感じたことを発表しました。人に教える難しさを実感しました。
3回目の発表は、1回目の発表の補足をしました。実際の配列図と配列評価の方法を紹介しました。資料はほとんどなく、Webページを使ったため、参考にさせていただいたサイトを紹介します。
キー配列頂上決戦!さいつよなレイアウトはどれだ! | 遊舎工房
感想
今回で3回目の参加となりました。今回は、会場はVOYAGE GROUPオフィスでおしゃれで(スタッフさん方もおしゃれしていた印象)、LT初心者の方が多く、前回前々回とは異なる雰囲気でした。内容も技術的な内容に寄った印象です。初心者の方も含めて、LTの話し方がうまい方が多かったです。英語でLTする方、元Fire FighterなのでFirebaseを勉強した方、個人開発、服装と筋肉の関係はエンジニアの外面と本当の技術力と同じなど、内容も面白く参加してよかったなと思いました。もう少し聴衆が興味を持てる発表をした方がいいなと思いつつ、趣味の内容を発表していきたいと思います。
技術的なこと以外で登壇できる勉強会は存在するのですが、あまり知られていないのではないかと思いました。この無限LTもそうですが、エンジニアの登壇を応援する会の自由研究LTも技術的なこと以外で登壇できます。技術的な登壇へのハードルは、技術の内容に関してはもちろん、登壇(多くの人の前で自分で作った資料で発表すること)に心理的なハードルが存在します。技術的な内容以外で登壇できれば、心理的なハードルは下がるため、このような会が増えて、いろいろな人が登壇に積極的になり、いずれは自分が身に着けた技術について登壇していけるようになったらいいなと思います。
「転職透明化らぼ x kiitok - スタートアップ企業の見分け方編 」に参加した
イベント内容の説明は割愛。LTとパネルディスカッションの内容をまとめてレポートします。
CAMPFIRE 久津さん スタートアップ転職後の『想定通り』と『ギャップ』
- 自分の影響力を感じなかったので転職を決意
- 新規事業を希望、そこに配属されたが選考時に聞いたプロダクト状況と異なった。出てきた面接官がプロダクトや開発組織を正確に把握しているとは限らない。
- カルチャーに関する質問はどちらも抽象的な会話になる
- イケてるベンチャーという先入観がバイアスをかけていた。あいまいな情報を都合よく補完してしまう
- 面接官をリクエストしたり、遠慮なく細かい質問をする。
- 理解する姿勢はいいが、○○ができないけど問題ないかの連発は良くない。
Repro 三木さん スタートアップは見極められたくない
- スタートアップに入る心構え
- いろいろリスクがあるが、大きなリターンがある可能性がある。
- 会社はどうか(市場規模、成長率、資本戦略)
- 自分はどうか(MA時の株の取り扱い、キャピタルゲインの取り扱いをよく確認。成功するまで自分はコミットできるか、会社より成長速度が遅くならないか)
- 裁量は本当にあるのか、挑戦が許容されるか、自分より上の思想があるか。
- 自分が耐えられる報酬はどのくらいか。福利厚生は無いけど作れる。合理的な提案は通るか?
- やることが変わる可能性がある。一番大事なのは、一緒にやる人の人間性(と能力)
株式会社プレイド 池上さん スタートアップ企業との面談でするべき3つの質問
- スタートアップは、自分と似た考えの人がいて、本質的な議論ができる。が、文化になじめないとつらい。雰囲気や事業の進めやすさが小数人の個人に依存。成長が止まると歪みが出る。
- 面接で自然に出ないトピックを引き出す。面接官自身のビジョンや考え、メンバーのスキル、組織や事業の弱み
- 内容に共感できるか、ミッションと接続されているか
- すごい人が複数いるか、納得感があるか
- 弱点がクリティカルで、自分がその解決に貢献できるか
株式会社スタディスト 北野さん スタディスト開発チームが面接で大事にしている3つのこと
- 公平で、楽しく、分かりあえる
- お互いに選びあう立場。お互いを尊重、面接官の希望を聞く
- 楽しく面接をする。その心は、業務に近い状態で面接をしたいから。言いたいことを言い合えるようにしたい
- 質問には正直に答える。チームによって面接方法が異なる
- 素敵な企業は素敵な面接をしている
LAPLAS株式会社 両角さん Techブログ分析で見えた今転職するべきスタートアップ企業
- いい企業は良いテックブログを書くという仮説からの分析(内容はオフレコ)
- 自分の分析にはぜひLAPLASを使ってください!
パネルディスカッション
良い質問は?
呼び水になる質問。技術の話からビジネスの話につなぐなど。カルチャーってわかる?
正直、入ってみないとわからないことのほうが多い(社内での共通認識など)。フォローしてくれないならそういうカルチャー。コミュニケーションの方法がカルチャーを表す。怖いスタートアップは?
採用を止めている、失敗のリカバリができていないところ。なじんだと思うとき
自分の役割ができたとき、貢献できたと感じたとき。能力がマッチしていない、パフォーマンスが出ていないとつらい。
感想
スタートアップの一般論と、登壇者の方の経験論がどちらも聞けたのが良かったと思います。ずっとスタートアップの方、転職を複数回されている方でお話しされていたので、スタートアップに入る側も受け入れる側もお互いの考えていることを知れたのではないかと思います。懇親会は、皆さん会話が弾んでいました。Connpassのアイコンとユーザ名の名札は、アイコンで知っている方に話しかけやすいので効果が高いと思います。次回の内容が楽しみですし、また参加したいと思います。
A Swift Tourをやったメモ
少しスマホアプリに興味が出てきたので、Swiftを触ってみようと思いました。とりあえず最初にA Swift Tourをやってみたのでその感想です。
A Swift Tourで何が学べる?
Swiftの基本文法が分かります。サイトからダウンロードできるPraygroundで実行結果を確認しながら学ぶことができます。
軽くまとめ
動的型付け。変数宣言は var a=42; 定数は let a=42; 型を指定したいときは let a: Double=70; と後ろに型を明示する。
キャストは String(a) 。型を前に書いてキャストしたい変数を()で囲む。
文字内変数展開は "I have (apples) apple."。()で展開したい変数を囲む。文字列を”””(ダブルクォート3つで囲むことでも宣言できる。
配列を var shoppingList = ["catfish", "water","tulips"]で宣言できる。動きはリスト。辞書は
var occupations = [ "Malcolm" : "Captain" , "Kaylee" : "Mechanic" , ]
空を作りたいなら let emptyArray=String let , emptyDictionary=[String:float]
型情報が推測できるならshoppingList = [] occupations = [:]
for文はlet individualScores = [ 75 , 43 , 103 , 87 , 12 ] for score in individualScores {}という形。これ、foreach文だよね・・・。
if文はよくある形。nilを許すとvar optionalString : String ? = "Hello"という形にする。nilを使った二項演算子は( nickName ?? fullName )
swiich文もある。switch vegetable{} ()はいらない。
複数の辞書に対するfor文はfor ( kind , numbers ) in interestingNumbers {}
while文もある。()はいらない。do-whileではなくrepeat-while。
for i in 0 ..< 4 {}と、..<を使えばインデックスの範囲を作成できる。
関数の宣言と呼び出し方は
func greet(person : Stirng, day : String)->String{ return "Hello \ ( person ) , today is \ ( day ) ." } greet ( person : "Bob" , day : "Tuesday" )
関数の宣言に変数名と型名が必要かつ、呼び出しにも必要。返り値の方は関数宣言の最後に->を伴って書く。
タプルがあり、タプルを関数で使うときは
func calculateStatistics ( scores : [ Int ]) -> ( min : Int , max : Int , sum : Int ) { return ( min , max , sum ) } let statistics = calculateStatistics ( scores : [ 5 , 3 , 100 , 3 , 9 ]) print ( statistics . sum )
関数をネストできる。
func returnFifteen () -> Int { var y = 10 func add () { y += 5 } add () return y } returnFifteen ()
関数は型なので、関数を返り値、引数に用いることができる。
map関数がある。
numbers . map ({ ( number : Int ) -> Int in let result = 3 * number return result }) let mappedNumbers = numbers . map ({ number in 3 * number }) print ( mappedNumbers ) let sortedNumbers = numbers . sorted { $0 > $1 } print ( sortedNumbers )
クラスがある。
class NamedShape { var numberOfSides : Int = 0 var name : String init ( name : String ) { self . name = name } func simpleDescription () -> String { return "A shape with \ ( numberOfSides ) sides." } }
initは、インスタンスの作成時に呼ばれる関数。 サブクラスの例は
class Square : NamedShape { var sideLength : Double init ( sideLength : Double , name : String ) { self . sideLength = sideLength super . init ( name : name ) numberOfSides = 4 } func area () -> Double { return sideLength * sideLength } override func simpleDescription () -> String { return "A square with sides of length \ ( sideLength ) ." } } let test = Square ( sideLength : 5.2 , name : "my test square" ) test . area () test . simpleDescription ()
getterとsetterを含むこともできる。
列挙体enum、構造体structもある。メソッドを関連付けられる。
protocol(いまいちわからなかった。クラスのようなもの?)
例外処理は、try-catchではなくdo-catch。
let printerSuccess = try ? send ( job : 1884 , toPrinter : "Mergenthaler" ) let printerFailure = try ? send ( job : 1885 , toPrinter : "Never Has Toner" )
という方法も。二項演算子と理解。
defer{ 何かの処理 }を関数内に書いておくと、どこに書いていてもその関数の最後に実行され、エラーをthrowしても実行される。
ジェネリックもある。
func makeArray < Item >( repeating item : Item , numberOfTimes : Int ) -> [ Item ] { var result = [ Item ]() for _ in 0 ..< numberOfTimes { result . append ( item ) } return result } makeArray ( repeating : "knock" , numberOfTimes : 4 )