サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
bibourock.hatenablog.jp
まえがき タイトルの通り、少し前に 8 年近く(正確な歴史は不明)動いていたシステムをリプレイスしました。 かかった期間は約 2 年、発行した課題チケット数は 6000 超え、リリース直前に直属上司が退職など紆余曲折ありました。 良かった点や反省点が多くあったので、記憶が新しいうちにアウトプットしようと思います。 なぜリプレイスするのか 単純にエンジニアが「レガシーだからモダンな環境にリプレイスしたい」と言っても、事業責任者や経営層にメリットを理解してもらえないと実施できません。 今回は後述する問題によって、事業の足を引っ張っているという結論が出たためリプレイスに至ったと認識しています。 セキュリティの問題 PHP が 5.1 フレームワークが Ethna MySQL が 5.5 ユーザーのパスワードが可逆式で保存されている システムの問題 フレームワークのコア部分を魔改造 一度リプレイス
少し前に行われたGoogle Developers Summit : Progressive Web Appsに行ってきたので、PWAについて自分なりにまとめたいと思います。 Progressive Web Apps(PWA)とは? 無理やりシンプルに説明すると、今までのWebアプリ(サービス)に、 プッシュ通知やオフラインアクセスなどをできるようにした新しいWebアプリの概念です。 Webアプリでプッシュ通知やオフラインアクセスを使うにはどうするのか? 答え:Service Workerを使う! Service Worker(SW)とは? Webページとは別にバックグラウンドで実行されるJavascript環境(API)のことです。 プロキシ的な感覚が近い?と思います。 なので、技術的にはPWAを勉強するというより、 SWを勉強すると表現した方がいいかもしれません。 詳細はこちらを参照。
少し前からバズワードっぽくなっているプロダクトマネージャー。 結局どういう人なの?って思ったので、 Inspired: 顧客の心を捉える製品の創り方 を読んでみました。 ※以下からPMと表記する箇所があります プロダクトマネージャの役割(仕事)とは? この書籍には「PMの役割とは?」みたいなものが散りばめられているのですが、 その中でもよりシンプルに表現されているのが以下。 プロダクトマネージャーの主な任務としては 2つある。 製品の市場性を評価すること(1)と、 開発すべき製品を定義すること(2)である。 (1)製品の市場性を評価すること 製品の仕様を決めることだけが仕事ではないのです。 そもそも作ろうとしているプロダクトが、 本当に価値のあるものなのか、 あるいはどうやって価値を高めていくのか という検証をすることも仕事になります。 どうやって作るか(How)だけではなく、 何(wha
2016 - 02 - 16 プロダクトマネージャーになりたい人は「Inspired: 顧客の心を捉える製品の創り方」を読むといいかも 読書感想 テクノロジー キャリア list Tweet 少し前から バズワード っぽくなっているプロダクトマネージャー。 結局どういう人なの?って思ったので、 Inspired: 顧客の心を捉える製品の創り方 を読んでみました。 ※以下からPMと表記する箇所があります プロダクトマネージャの役割(仕事)とは? この書籍には「PMの役割とは?」みたいなものが散りばめられているのですが、 その中でもよりシンプルに表現されているのが以下。 プロダクトマネージャーの主な任務としては 2つある。 製品の市場性を評価すること(1) と、 開発すべき製品を定義すること(2) である。 (1)製品の市場性を評価すること 製品の仕様を決めることだけが仕事ではないのです。 そ
Xcodeのバージョン:7.1 Swiftのバージョン:2.1 方法 ランダムな数値を生成した後、 その数値の場所の文字列を取得すれば、 おのずとランダムな文字列が生成できます。 Swift 2以降は、 advancedBy(n) を使って任意の場所の文字列を取得できます。 注意点 上述した通り、 letter[letter.startIndex.advancedBy(randNum)] のように、 文字列の変数[] で囲まないと正常に動作しませんでした。 具体的に言うと、advancedBy(n) の「n」に入った数値をそのまま出力してしまいました。 何か僕がミスってるのかもしれないですが、 同じような状況に陥った方は上記の方法を試してみてください。 詳解 Swift 改訂版 作者: 荻原剛志 出版社/メーカー: SBクリエイティブ 発売日: 2015/12/25 メディア: 単行本 こ
Xcodeのバージョン:7.1 Swiftのバージョン:2.1 ユーザーが使用している端末のデータを取得したいときがあります。 キャリア名とかOSのバージョンとかデバイス名とか。。 ある程度の情報は、以下の方法で簡単に取得できます。 IPアドレスだけ特殊で、 Bridging Header(ブリッジングヘッダー)を使わなければ取得できないようです。 ブリッジングヘッダー作成の方法はこちらを参考にしました。 追加したブリッジングヘッダー(.hファイル)に #include <ifaddrs.h> を追加後、 で取得できます。 ちなみに、フレームワークプロジェクト(Cocoa Touch framework)だと、 ブリッジングヘッダーは使えないそうです。。 詳解 Swift 改訂版 作者: 荻原剛志 出版社/メーカー: SBクリエイティブ 発売日: 2015/12/25 メディア: 単行本
2016 - 01 - 11 SwiftでBase64エンコードしたときに改行コードが入ってハマった プログラム テクノロジー アプリ Tweet 新年早々めでたくハマって、 こんな顔になったので、メモしておきます。 Xcode のバージョン:7.1 Swift のバージョン:2.1 ちなみに Base64 とは? データを64種類の印字可能な英数字のみを用いて、 それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うための エンコード 方式である。 MIME によって規定されていて、 7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。 - Wikipedia 改行コードを 正規表現 で削除(置換)する Swift で Base64 エンコード した場合、 「64文字」ごとに改行コードが入る ようなので、 正規表現 で改行コードを削除して
2015 - 12 - 27 ぜんぶインターネットのおかげ 考えてみた Tweet 僕はインターネットが好きだ。 本当にインターネットがあって良かった。 インターネットの良いところは、 「 自分が知らないことを知れる 」ことだと思う。 進撃の巨人 で言うと、壁の外のことを知れるイメージ。 インターネットがあるおかげで、 東京で楽しく消耗しながら生きていけている。 僕は田舎に生まれてから高校までずっと同じ場所で過ごしてきた。 その反動からか、小さい頃からずっと、華の都大東京(長渕風)で働かないと死ぬのと同じだと思っていた。 紆余曲折あったが、結局インターネットのおかげで東京で働けている。 インターネットが好きなのでエンジニアになった。 分からないことの大半はインターネットで調べたし、 何が分からないことなのかも インターネットが教えてくれた。 インターネットのおかげで、 自分をより必要と
リリースというものは、そう何回もやるもんじゃないので方法を忘れがちです。 覚えている今のうちにメモしておきます。 ※ちなみにXcode7を使っています。 1.リリースするための事前準備が意外と多かった DistributionタイプのCertificateが必要 App IDが必要 ※ここで出てくるBudle IDとXcode上のBundle Identifierがイコールじゃないとリリースできません DistributionタイプのProvisioning Profileが必要 方法はこちらが参考になりました。 2. 1度iTunes ConnectにBuildしたらBuildの値を上げないと再Buildできない アプリをリリースするにはiTunes ConnectにXcodeからBuildする必要があります。 ※方法はこちらを参照。 しかし、Buildし終わってから、 「やっぱりあそこ
2015-11-02 1からiPhone(iOS9対応)アプリをSwiftで作った僕が躓いたこと4つ※開発編 Webサービス アプリ テクノロジー プログラム Tweet ついにiOSアプリをリリースしました。 会社名義なので具体的には紹介しませんが、 作ったのは簡単に言うとブラウザアプリです。 ゲームとかじゃないんで、そこまでは苦労しなかったんですが、 多少なりとも躓いた部分があったので紹介していきます。 ※ちなみに言語はSwiftで書いています。 構文とかは過去の記事を参考にしてください。 1.初心者が通る道、Thread 1:signal SIGABRT...(実行時エラー) これはObjective-Cもそうだと思うんですが、 Storyboard使用時に、何かしらのUI部品(ボタンとか)から クラスファイルにドラッグ&ドロップして紐付けるじゃないですか? 紐付けたのにも関わらずそ
IT関係の人やエンジニアが、読んでやる気が出るような名言や格言を10個集めました。 読んで元気を出しましょう。 では張り切ってどうぞ! 1.Keep it simple, stupid(Kiss) 訳:シンプルにしておけ、この間抜け 「誰が見ても分かりやすくしろ」ということです。 レオナルド・ダ・ヴィンチも 単純であることは究極の洗練だ と言っています。 2.Done is better than perfect 訳:完璧を目指すより、まず終わらせろ -マーク・ザッカーバーグ(Facebook) 3.Get out of the building 訳:ビルの外に出よう -Lean UX(書籍) 建物の中に籠ってないで、 外に出てユーザーの声を聞きに行こうということです。 聞いた話で、インスタグラム社の最高のグロースハックは、 ユーザーと飲みに行くことだそうです。 4.Stay hungry
前回はちょっと特殊なジャンルの本を読んだので、 今回は真面目にマーケティング関連にしました。 読んだのは「ササる戦略」という書籍です。 個人的に"ササッた"部分を、メモついでにまとめていきます。 どんな本か? 「ITmedia ビジネスオンライン」の記者の土肥義則さんが執筆した書籍で、 誰もが一度は聞いたことがある12企業にインタビューした内容がまとめられています。 具体的には、 江崎グリコ ダイドードリンコ(ドリンクじゃないんだ..) 小林製薬 ライフネット生命 などなど。 自動販売機は「Zの法則」で見られない 人の視線は、左から右へ、 それからまた左下へ「Z」のように移動すると言われていますが、 自動販売機は違うとのこと。 ダイドードリンコが、自動販売機にアイトラッキングを仕掛けて検証した結果、 人は自動販売機の左下を先に見るそうです。 そこで、売りたい商品を左下に移動させ、 目論み通
東プレのREALFORCEを使い初めてから、1年以上経過しました。 もうこれに慣れてしまうと、他のキーボードには戻れません。 その理由を以下にまとめます。 静電容量無接点方式を採用 文字だけでは全く意味が分からないですね。 ウルトラ簡単に言うと、最小限の力でタイピングできます。 セブンイレブンとかにあるATMのキーボード(ほぼテンキー)も、 同じ静電容量無接点方式を採用しているようなので、 試し打ちしたい人はセブンに行くといいかもw 小指などでタイプするキーは軽めに押せる仕様になっている 僕が購入したREALFORCEは91Uというシリーズで、 キーによって重さが異なっています。 例えば、「a」などの小指でタイピングする部分は、 キー荷重が軽めに設定されていて、 マジで無力で押せます。 逆に「Enter」や「Esc」などは、 そう簡単に反応されるとマズイことがあるので、 それなりに力が必要
最近SQLiteを触っています。 基本的な構文などはMySQLと同じですが、 決まりごとの違いや若干のクセがあるので、メモしておきます。 SQLiteのデータベースはファイルとして生成される SQLiteはデータベースをファイルとして生成します。 なので、「ファイルを消す=DBを消す」ことになります。 SQLiteをインストールしたら(最近のLinuxはデフォで入ってるぽい)、 以下のコマンドで、DBができあがります。 sqlite3 dbname.sqlite3 上記の「.sqlite3」の部分は何でもいいです。 しかし、拡張子がないと、 のちのち何のファイルか分からなくなる可能性があるので、 慣習的に「.sqlite3」とするようです。 しかし、DBを作成しただけではファイルが作成されません。 DBを作成し、さらにテーブルを作成しなければ、ファイルが生成されないようです。 「DB作った
2015-06-17 SQLiteの注意点3つ!テーブル作成と同時にINDEX貼れないetc. テクノロジー プログラム Tweet 最近SQLiteを触っています。 基本的な構文などはMySQLと同じですが、 決まりごとの違いや若干のクセがあるので、メモしておきます。 SQLiteのデータベースはファイルとして生成される SQLiteはデータベースをファイルとして生成します。 なので、「ファイルを消す=DBを消す」ことになります。 SQLiteをインストールしたら(最近のLinuxはデフォで入ってるぽい)、 以下のコマンドで、DBができあがります。 sqlite3 dbname.sqlite3 上記の「.sqlite3」の部分は何でもいいです。 しかし、拡張子がないと、 のちのち何のファイルか分からなくなる可能性があるので、 慣習的に「.sqlite3」とするようです。 しかし、DBを作
iOSアプリを仕事で作ることになったのでSwiftを始めました。 その中で、勉強したことと少し驚いたことをメモしていきます。 タイトルの件は中盤辺りに書いています。 ちなみに僕は、Objective-Cを2年位前に本1冊終わらせたくらいで、 iOSアプリに関しての知見は殆どありません。 変数・定数・配列・ディクショナリ(連想配列)の宣言と初期化 上記ではそれぞれの型を指定して宣言・代入をしていますが、 型の指定は省略することができます。 var variable = 10 //Int型になる 省略した場合、自動で型を推測して実装してくれます(型推論)。 ※Objective-Cではできなかった模様 ループと配列・ディクショナリの操作 一般的で分かりやすいですね。 forの条件式の部分に()を付けることもできます。 驚いたこと これが本題です。 上記のような方法でディクショナリから値(キー
ゴールデンウィーク暇過ぎる! という非リア充な方のために、 僕が今まで読んで感動したスライドをまとめました。 本を読むのはちょっと、、 という方にはちょうど良いボリュームだと思います。 グロースハック系 クックパッドのグロースハックについて クックパッドのグロースハック事例についてです。 30ページくらいから本題です。 君にグロースハックはいらない マイクロソフトでエバンジェリストをしている馬田さんのスライドです。 始めのうちはスケールさせようとするより、 PMF(プロダクト・マーケット・フィット)が大事だよと言っています。 技術者向け エンジニアのための経営学 あくまでも、技術(プログラミング) は手段だと言う話です。 技術好きな人ほど読んだ方が良いかも。 UIの話は会議室でするな 17ページに出てくる「関係なさそうな人にも聞こえるくらいの声量で話す」、 これは結構重要だと思う派でし
よくプログラマー(エンジニア)は、 数学が得意な人じゃないと出来ないとか言われたりしますが、 個人的には数学というより、 英語が出来る(好きな)人の方が有利だと思っています。 だってプログラミングってコメント以外英語ですし。 「なでしこ」とかはありますけどw 僕は学生時代、どちらかと言うと数学が苦手なタイプでしたが、 英語はわりと出来る方でした(というか好きだった)。 もちろん、数学も出来た方が有利に決まっていますが、 普通にご飯を食べていく分にはそんなに必要無いと思います。 ということで、 英語の意味を理解すると、仕事が更に捗るんじゃないかと思いまして、 プログラミングとかウェブで出てくるけど、 ちょっと意味が分かりづらい英単語30個をまとめてみました! プログラミングで出てくる英単語30選 英単語読み方意味 allocate アロケート 割り当てる attr(attribute) アト
タイトルの通り、 ストレージ内で容量の大きいファイルを見つけて削除する、Linuxコマンドをまとめました。 環境はAWS(EC2)でCentOS7です。 CentOS7の構築については、 少し前に書いて何故かとても読まれた過去記事を参照してください。 ぶっちゃけ簡単だし、 ググればこの手の類はいくらでも出てくるのですが、 念のため備忘録としてまとめておきます。 メールのキューが溜まっている場合は以下で対応。 あんまり無いと思うけど。 これで今後忘れてもググらずに済むはず。 ログとかのファイル削除に関しては、 定期的に消すシェルなどの仕組みを作るのが1番良いですね。 Linuxコマンドライン入門 1日目 (ネット時代の、これから始めるプログラミング(NextPublishing)) 作者: 大津真 出版社/メーカー: インプレスR&D 発売日: 2014/09/05 メディア: Kindle
2015-04-07 普段MySQL使ってる僕がMongoDBを使って気づいたこと2つ テクノロジー プログラム Tweet ロゴ見て気づいたのですが、 MongoDBの頭文字って小文字なんですね。 そんなことは置いといて。 最近mongoDB(小文字に変えたw)を使う機会がありました。 僕が普段触っているMySQLと違って、 ググっても、まあー情報が少ないんですよね。 コマンドとかは割りとあるのですが、 PHPでの操作とかは少なかった印象です。 そこで今回は、 PHPでの操作 mongoDBの復旧(リストア) の2つを備忘録として、まとめておこうと思います。 PHPでループさせて検索ができない こういうことです↓ ※サンプルの一部はPHPの公式ドキュメントから拝借しました。 つまり、検索値(findの条件)を変数にしてループすることが出来ないようです。 まあ、そもそも何回もDB接続せずに
読んだのはこれ↓ 「会社を変える分析の力 (講談社現代新書)」 書籍自体はページ数も少なく、割りとサクッと読めます。 ちゃんとした読書感想の投稿は、「V字回復の経営」以来約3ヶ月ぶりです。 読んだキッカケ 最近、社内の人に「◯◯のデータ出してよ」とよく依頼されます。 で、僕は「はいはい分かりましたよっと」みたいな感じで渡すのですが、ふと感じたのです。 今渡したデータって本当に役立ってるのかな? そんな矢先に、僕がNewsPicksでフォローしているドコかのエライ人が、 今回紹介する本をオススメしていました。 本書が訴えていること 分析の価値 とにかく一貫して、意思決定に使われない分析は価値が無いと書かれています。 もうしつこいくらいに。 本書で言う分析の価値の定義↓ 「分析の価値」=「意思決定への寄与度」×「意思決定の重要性」 データ分析の成果は、報告書の厚みでも、高度な分析手法でも、デー
ここ最近よく聞くようになったMediumですが、まだまだ英語の記事が多いです。 そこで今回は、日本語でストーリーを書いているアカウントを紹介します。 Mediumとは? まず初めに、Mediumとは何なのかをザックリ説明します。 既知の人はスルーして次へ行ってください。 Mediumを無理やりシンプルな言葉で説明すると、 新しいカタチの「メディア」や「ブログプラットフォーム」と言えます。 「ブログプラットフォーム」というだけあって、登録すれば誰でも記事(ストーリー)を投稿できます。 Mediumには「Write your response」という特徴的な機能があります。 読んだ記事に対して自分が思ったことを書けるのです。 他には「Recommend」といったリツイートのような機能もあります。 ファウンダーは、元Twitterのエヴァン・ウィリアムズとビズ・ストーンです。 他には、元WIRE
こういったインフラ周りは日頃触らず忘れやすいので、自分の備忘録としてまとめておきます。 環境はAmazon EC2です。 CentOS6.xと7の主な変更点 「service」コマンドと「chkconfig」コマンドが、「systemctl」コマンドに統合 「iptables」が「firewalld」に変更 「ntpd」が「chronyd」に変更 「ifconfig」が「ip」コマンドに変更 ユーザーを「centos」から「root」に切り替える方法 CentOS7の場合、初期ユーザが「centos」でした。 「root」になるには新しくパスワードを作成する必要があるようです。 Apachのインストール 「service」コマンドは「systemctl」コマンドに変わったので、以下になります。 chkconfig -listの代わりに 以下のコマンドで、自動起動設定を一覧で確認出来ます。
参加したのはこれ↓ 1200人くらいある募集が、10日で埋まるくらい人気のあったカンファレンスです。 前回のカンファレンスはボランティアスタッフとして参加しましたが、今回は一般での参加です。 カンファレンスについてですが、業界の第一線で活躍している人達が結構登壇しています。 インターネット・サムライの村井先生とか、Googleの及川さんとか。 基調講演、村井先生のお話 話自体はかなり高めのレイヤというか、Webの未来についての話でした。 Netflixのユーザーデータ取得 途中で「HOUSE of CARDS(ハウス・オブ・カード)」という海外ドラマの話が出てきて、「見たことがある人いる?」と会場の人に聞いていたのですが、誰も手を挙げていませんでした(僕はガッツリ見ていたんですがw)。 何でこんなドラマの話をするのかと言うとですね。 このドラマは、ネット配信で初公開されたドラマシリーズとし
2015-01-20 Webアクセス解析ツールのPtengine(ヒートマップ)はSafariの情報が取れない!? テクノロジー ツール Webサービス ヒートマップで有名なアクセス解析ツールのPtengine(ピーティーエンジン). はてなブログなら無料で導入できるので、昨年末に取り入れてみました。 &amp;amp;lt;a href="http://www.ptengine.jp/hatenablog/" data-mce-href="http://www.ptengine.jp/hatenablog/"&amp;amp;gt;はてなユーザー専用プラン | Ptengine&amp;amp;lt;/a&amp;amp;gt; ※使い方に関してはこちらを参照。 今回は事例として、僕が書いたブログの中で1番反響の大きかった、 「V字回復の経営」(2014/
読んだのはこれ↓ 「V字回復の経営 2年で会社を変えられますか」 読んだキッカケ シナジーマーケティングさんのブログでヤフーの高田さんが、 以前読んだときに面白かった「イシューからはじめよ」と一緒に紹介していました。 他人が勧めてる本の中に自分が面白いと思った本が入っている場合、 大体は自分に合うので素直に読むようにしています。 概要 ターンアラウンドスペシャリスト(事業再建コンサルタント)である三枝匡さんが、 過去にかかわった日本企業5社の事業改革を題材にしたもの。 簡単に言うと、三枝さんが過去にコンサルした5社の話をミックスした、 ほぼノンフィションのフィクションストーリーです。 書籍にも出てきますが、V字回復させた人物と言えば、 NISSANのカルロス・ゴーン社長が有名ですね。 他にはJALの稲盛和夫さんとか、ハウステンボスを再建させたHISの澤田秀雄さんとかですかね。 心に残った部
AMIを使っていくつか作成したインスタンス(AWS)からホスト名を取得して、それを別サーバーに渡す処理を作ろうとしました。 で、ホスト名は以下のスーパーグローバル変数を使用して取得出来ました。 めでたしめでたし。 あとはこれをcronで回せばお終いっと♪ が、cronを実行してログを確認したところ、エラーが返ってきたのです。 ファイルのパスとかを確認しても確実に合ってる。 何故にと思いググってみると、$_SERVER['SERVER_NAME']はcronでは動かないというショッキン&ファッキンな事実を目の当たりに。 ガ━━(゚Д゚;)━━━ン!!!!! 仕方ないので別の方法(any other way)を探すことに。 調べた結果、以下で取得出来るらしい。 試してみると、Private IPが返ってくる。 今回僕は外部サーバーとファイルのやりとりを行いたかったので、 Private IP
この記事は「1分で実現できる有用な技術 Advent Calendar 2014」の 18日目の記事です。 Qiitaで催されているアドベントカレンダーに参加してみました。 本題 何かの機能を作っていて、ユーザーにファイルをダウンロードさせたいときがあると思います。 そのときに、PHPのheaderとかreadfileを使ってDLさせるのも良いのですが、もっとサクッと出来ます。 ※僕は一応PHPerなのでPHPを例にしました 方法はイケイケでナウでヤングなHTML5を使います。 そして、a要素のdownload属性を使います。 これだけ。 さらに、downloadの属性値は省略できます。 省略した場合、ファイル名がダウンロード時のファイル名になります。 マジでナウでヤングだわ。 がしかし、 対応しているブラウザが「Google Chrome」、「Firefox」、「Opera」のみという何
ライフハック的なタイトルにしてみましたw 読んだのはこれ↓ 【NHK式+心理学】 一分で一生の信頼を勝ち取る法 矢野 香 (著) 概要 簡単に言うと話し方をハックする本です。 89年受け継がれたNHKの話し方を軸に心理学なども織り交ぜて、 元NHKアナウンサーの著者が解説していきます。 ※画像は著者ではありません 声の善し悪しは変えられませんが、話した方は訓練すれば変えられます。 読んだ次の日から実践できますマジで。 書籍中で気になった部分を抜粋 なぜ今話すのか(WHY)を考える なぜを考えて話すと内容に公共性が出て説得力が増す。 伝えたい内容に「13文字」以内でタイトルをつける タイトルを決めておけば、「つまり伝えたいのは[タイトル]なんです」のように、言葉に詰まったときの繋ぎにも使える。 緊張するのは、「見られている」「聞かれている」という受け身の姿勢だから 逆に「見せている」「話を聞
次のページ
このページを最初にブックマークしてみませんか?
『Dance with Tech』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く