タグ

2017年1月26日のブックマーク (13件)

  • グローバルゲームジャムでクラス設計をやった話2017 - Qiita

    お知らせ 2017/11/26開催の「プログラマのためのUnity勉強会」において、 Unity開発で使える設計の話+Zenjectの紹介 というタイトルで講演しました。こちらのスライドを先に見てから記事を参照されることをおすすめします。 はじめに 去年に引き続き、今年もGGJに参加してきました。今回もそのことを書きたいと思います。 今回の内容は以前に投稿したUnity開発で便利だったアセット・サービス紹介 & Unityでのプログラミングテクニックとつながりがあるので、こちらを先に読んでからのほうがわかりやすいかもしれません。 Global Game Jam とは GGJとは全世界同時に行われるゲームジャムのことです。要する、世界規模のゲーム開発ハッカソンです. プログラマ、デザイナ、プランナ、グラフィッカなど様々な役職の人をごちゃまぜに、3~8人程度のチームを組み、48時間でゲーム

    グローバルゲームジャムでクラス設計をやった話2017 - Qiita
  • Linux シグナルの基礎

    TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の initsystemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚

    Linux シグナルの基礎
  • ゴシック体のフリーフォント15選【商用利用可】

    OSに標準で入っているフリーフォントだけではデザインの幅に限界があります。無料でありながらデザイン性が高いフリーフォントはたくさんあるので、使わない手はありません。 そこで今回は、デザインの幅を広げるゴシック体フリーフォントを15個ご紹介します。商用利用可能なものに絞っているので、ぜひ参考にしてください! ※ご利用にあたっては、各サイトの利用規約をご確認ください。

    ゴシック体のフリーフォント15選【商用利用可】
  • これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita

    もうちょっと規約的なものを「JavaでのUT作成基準を整理してみた」にもまとめてみました。 はじめに 去年、ブログの方に「ふつうのユニットテストのための7つのルール」という記事を書いたのですが、思ったより反響がありました。 あの記事で書いたのはあくまで原理・原則で、それを実現するためにはいくつかのテクニックが必要です。 特に、ああいうルールを作って「ユニットテストを書く事」を厳守するようにしても、 適切なテクニックを知らなければメンテが困難だったり、品質に寄与しなかったり、実行性能が悪いゴミが量産される可能性があります。 じゃあ、どうすれば良いかというと「最初からユニットテストが書きやすいように元のコードを設計する」ということです。 そう。まず身に付けるべきは「テストコードの書き方」では無く「テスト対象コード」すなわち「プロダクトコードの書き方」なのです。 また、ここで言ってる「最初から」

    これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita
  • 正規表現でのメールアドレスチェックは見直すべき – ReDoS

    (Last Updated On: 2018年8月13日)前のエントリでStackExchangeがReDoSで攻撃されサイトがダウンした問題を紹介しました。少しだけ掘り下げて見たところ、正規表現だけでメールアドレスをチェックしている場合、壊滅的なReDoS(十分短い文字列で指数関数的に実行時間が増加する)が可能なことが判りました。 結論を書くと、正規表現でのメールアドレスチェックは見直すべき、です。(特にRubyユーザー) 追記:影響範囲はメールアドレスチェックに限らないので、正規表現チェックは全体的に見直さないと、どこが脆弱なのか判りません。見直してチェックしたとしても、それが完全であったと保証することは困難です。ネット検索して直ぐに見つかった検索パターンは非常に脆弱であったこと、メールアドレスのマッチパターンは脆弱になりやすい繰り返しの繰り返しが含まれること、これらがあったのでタイト

    正規表現でのメールアドレスチェックは見直すべき – ReDoS
  • Android Studioに静的分析ツールFindBugsを追加して品質を高める | DevelopersIO

    はじめに 静的解析は、ざっくり噛み砕くとソースコードを解析し、良くない書き方を教えてくれます。 テストは実行時のチェックしますが、静的解析はソースコードをチェックする違いがあります。 Androidのオープンソース等でよく見かけるFindBugsを紹介します。今回は、ソースコードに手を加えない簡単に利用できる部分を紹介します。 FindBugs™ - Find Bugs in Java Programs FindBugsは、Javaコードのバグ検出のために設計されたオープンソースの静的分析ツールです。 Android Studioのプラグインがありますので、簡単に利用することができます。 インストール [Android Studio] - [Preference]を開き、[Plugins]を開く FindBugsを有効にする。 やってみる 例題として、nullを参照してる時どんな結果になる

    Android Studioに静的分析ツールFindBugsを追加して品質を高める | DevelopersIO
  • 「後付の型システム」の活用についてFlowtypeとReduxから考える - Qiita

    FlowtypeやTypeScriptは静的解析によって事前に型違反を検知することができる。JavaScriptは動的型付けの言語であり、来はランタイムにしか型が出現しない。 FlowtypeとTypeScript、ともに「それ自身がランタイムではない」というのが特徴であり、一種のLintツールだと言うことができる。ランタイムではないがゆえに、嘘の事前条件を与えることでそれらを騙すことができるし、自らに有利な制約を追加できるという柔軟性を持つ。 JavaScriptの現実においての型 例を出そう。 type MyUtil = { foo(v: string): number; }; const util: MyUtil = new HogeUtil(); util.foo(1) //=> type error HogeUtil は何かしらのユーティリティ関数の詰め合わせだが、fooにしか

    「後付の型システム」の活用についてFlowtypeとReduxから考える - Qiita
  • 【word2vec】会社のクチコミを自然言語処理した結果を可視化してみる - Qiita

    単語と遊ぶ① 分布図を書いてみる 分布図を書くメソッドを以下のように定義しました。 通常、単語のベクトル表現は100次元とか300次元とかでモデルに学習させます。 それを次元圧縮して2次元に落とし込んだ後に可視化を行っています。 from sklearn.decomposition import PCA import matplotlib.pyplot as plt def draw_word_scatter(word, topn=30): """ 入力されたwordに似ている単語の分布図を描くためのメソッド """ # 似ている単語を求めるためにはGensim word2vecの以下の機能を利用 # model.most_similar(word, topn=topn) words = [x[0] for x in sorted(model.most_similar(word, topn

    【word2vec】会社のクチコミを自然言語処理した結果を可視化してみる - Qiita
  • mattnさんのリファクタリングを読み解く - 生涯未熟

    現在絶賛開発中のkirimoriですが、なんとGolang界隈で有名なmattnさんにリファクタリングをして頂くという、とても嬉しい事態がありました✨ kirimoriについてはこちら↓ syossan.hateblo.jp リファクタリング前提でかなり雑に書いていたのですが、めちゃくちゃ良い感じにコードを直して頂けたので自分の勉強のために読み解いてみます👏 リファクタリング前 kirimoriは以下の機能を有しています。 initコマンドでkirimoriの設定ファイル(toml形式)を作成します addコマンドでコマンドライン引数に指定したプラグインを追加します removeコマンドでコマンドライン引数に指定したプラグインを削除します listコマンドでプラグインの一覧を表示します で、構成的には kirimori.go に全てのコマンドの処理をベタ書きにしてある感じになっております

    mattnさんのリファクタリングを読み解く - 生涯未熟
  • APIなどにfile_get_contents()を使うのはオススメしない理由と代替案

    file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた

    APIなどにfile_get_contents()を使うのはオススメしない理由と代替案
  • 組織全体でGitHubを使うようになるまで(前編)~ 使い方が分からない? 使うのが怖い? Cookpad TechConf 2017

    組織全体でGitHubを使うようになるまで(前編)~ 使い方が分からない? 使うのが怖い? Cookpad TechConf 2017 クックパッドの子会社である「クックパッド料理教室」では、GitHubの利用をユーザーサポートや料理教室の講師にまで広げることで、組織全体のコミュニケーションを活性化し、働きやすくなるという効果を実現したといいます。 エンジニアのツールだと思われていたGitHubを組織全体でどうやって使うようにしたのでしょうか? 21日に都内で行われたイベント「Cookpad TechConf 2017」のセッション「組織全体でGitHubを使うようになるまで」で紹介されたその内容を、ダイジェストでまとめました。 「クックパッド料理教室」は、簡単に言うと町中の料理教室をWebで予約できるというサービスです。 料理レシピは大事なのですが、レシピだけでは伝えられないこともいっ

    組織全体でGitHubを使うようになるまで(前編)~ 使い方が分からない? 使うのが怖い? Cookpad TechConf 2017
  • 誰も教えてくれない「分かりやすく美しい図の作り方」超具体的な20のテクニック

    【追記】この記事をきっかけに、名著「ノンデザイナーズ・デザインブック」の20周年記念特典eBookの制作に協力させていただきました。詳しくはこちらを御覧ください。 ノンデザイナーズ・デザインブック20周年記念の特典に寄稿しました デザイナーである・なしに関わらず、仕事の中で伝えたいことを「図」で説明する機会は多々あります。提案書で事業内容を説明することもあるでしょうし、具体的な数値をグラフで説明することもあるでしょう。そんな中でこんな指摘を受けたことはありませんか? ・最終的に何を言いたいのか結論が見えないよ。 ・関係性が複雑すぎて理解しずらいんだけど。 ・要素が多すぎて全てを把握するのが大変。 ・何をどこから見れば良いの? ・結局一番言いたいことはなんなの? ・文字サイズがたくさんありすぎてまとまりがないね。 ・安っぽいチラシみたいでダサイなぁ。 ・全体的にバランスが偏ってて不安定。 ・

    誰も教えてくれない「分かりやすく美しい図の作り方」超具体的な20のテクニック
  • Modern JavaScript概観、そしてElectronへ | さにあらず

    この一か月分の学習成果を整理したリポジトリを作ったので、その成果についてまとめておく。 作ったサンプルプロジェクトだけを手軽に欲しければ、このリポジトリを clone してほしい。 taichi/js-boilerplatemaster ブランチには、ミニマムな JavaScript 開発環境がサンプルコード付きで入っているfrontend ブランチには、React/Redux/webpackなウェブアプリケーション用の開発環境が入っているデフォルトブランチにしてある electron ブランチには、frontend ブランチの内容に加えてElectronでアプリケーションを開発するための環境が入っているはじめに#最近の JavaScript について#僕は仕事として JavaScript を書いている訳ではないけども、この半年くらいの間にちょっとしたツールならいくつか作った。どちらも便利

    Modern JavaScript概観、そしてElectronへ | さにあらず