タグ

2017年12月18日のブックマーク (22件)

  • Java Generics Hell - ジェネリックな例外 - プログラマーの脳みそ

    Java Generics Hell アドベントカレンダー 18日目。 前回(16日目) 型変数のバインド 読者の推奨スキルとしてはOCJP Silverぐらいを想定している。 throws E Java のジェネリクスの型変数は例外のthrows宣言でも用いることができる。型変数の宣言時にthrow可能な型であることを型変数の境界で示す必要がある。 public <E extends Exception> void hoge() throws E {} 上記はメソッドスコープの型変数 E を extends Exception としてみた。メソッドスコープの型変数だとthrowsに型変数を用いる意味があまりないが、型システムの挙動を見る分にはコード量が少なくて済むので都合が良い。 バインドの仕方でthrowされうる例外が変わる、例外が変わるのでcatchするべき例外も変わる。 // IO

    Java Generics Hell - ジェネリックな例外 - プログラマーの脳みそ
  • わたしはなぜ、「プロジェクト管理」という言葉を使わないのか | タイム・コンサルタントの日誌から

    旅先ではいつも、その土地のものをべるのが習慣だ。だが、ときおり、外国で日料理屋に入ることもある。そして、たまに面らうような体験もする。いつだったか、アメリカの日料理屋で事を頼んだら、まっさきに味噌汁だけが出てきた。ふつうの街にある店で、来客はアメリカ人が多い。どうやら彼らの概念では、味噌汁はスープだから(Miso soupとよばれる)、真っ先に出すのが当然だということらしい。味噌汁を飲み終えたら、メインのおかずとご飯が出てきて、妙な気分だった。 汁物をsoupと訳するのは、もちろん正しい訳だ。だが日語で言う汁物と、英語スープは微妙に違う。たとえば英語では、スープべる(eat)という。日人で、「味噌汁をべる」という人は滅多にいるまい。ふつうは飲む、を使う。そして、当たり前だが、ご飯と一緒にいただくものだ。

    わたしはなぜ、「プロジェクト管理」という言葉を使わないのか | タイム・コンサルタントの日誌から
  • 機械学習_k近傍法_理論編 | DevelopersIO

    概要 こんにちは、データインテグレーション部のyoshimです。 この記事は機械学習アドベントカレンダー18日目のものとなります。 今回は「k近傍法(k-NN)」という手法を説明してみようと思います。 目次 1.k-NNとは 2.処理の流れ(概要) 3.考慮すべき点 4.k-NNの特徴と補足説明 5.まとめ 1.k-NNとは ざっくり言うと、「回帰や分類を行う際に、似たようなデータをk個集めてそれらの多数決から目的とする値を求める」という手法です。 もし「回帰」に使うのなら、似たk個のデータのそれぞれの値の平均値や中央値、もしくは重み付けした集計値を予測結果に用います。 また、もし「クラス分類」に使うのなら、似たk個のデータそれぞれの「クラス」でもっとも数が多いクラスにデータを分類します。(多数決の原理です) こちらはk-NNのイメージです。緑色の円が新しくクラス分類をしたいデータとした時

    機械学習_k近傍法_理論編 | DevelopersIO
  • ファミコンエミュレータの創り方 - Hello, World!編 - - Qiita

    この記事は「WACUL Advent Calendar 2017」の18日目です。 WACULでフロントエンドエンジニアをしている@bokuwebと申します。 記事ではファミコンのエミュレータの実装について解説していきたいと思います。 2018/11/21 追記 重複しますが以前発表した資料も合わせて参照してください。 はじめに 以前ファミコンエミュレータをJSで実装した記事を書きました。 開発過程の雰囲気はこちらを参照していただけると掴めるかと思います。 上記の記事では技術的な内容にはほぼ触れなかったため順に解説していこうと思います。 今回はまずはHello, World!までに焦点をあてて解説してみたいと思います。ファミコン関連の解説は検索すると結構ヒットはするのですが、ファミコン体の解説が多く、エミュレータを実装するにあたり、どのような手順で進めてくのが、どのような点に気をつける

    ファミコンエミュレータの創り方 - Hello, World!編 - - Qiita
  • アメリカ就職に失敗したはなし - 怠惰を求めて勤勉に行き着く

    前口上 アメリカで就職できなかった。華々しい成功譚は見かけるが、夢と散った話はあまり表に出てこない。 なんというか「三振したバッターが相手ピッチャーのことを語る」みたいでまるっきり時間の無駄かもしれないが、もしかしたら参考になる人もいるかも知れないし、実際に就職した人に「お前のアプローチはまったく的外れだ」と言われるかも知れない。僕も何が悪かったのか教えてもらいたい気持ちもあるし、迷ったがこのエントリを公開する。 ちなみにめっっっっちゃ長いので、要点だけ知りたい人は、アメリカで就職するにはとにかく 就労ビザ>技術力>学歴>>>>>>>>>>>>(越えられない壁)>英語力 だというのだけお伝えできればと思う。 アメリカで働くために英語を頑張るぐらいなら、それより大学(院)に入り直してコンピュータサイエンスの学位をとり*1、同時に技術力を磨くほうがよほど近道だと感じた。 それから、現職の同僚は

    アメリカ就職に失敗したはなし - 怠惰を求めて勤勉に行き着く
  • マイクロソフトは上場時の目論見書も神がかっていた!?(前編)|決算が読めるようになるノート

    先日、マイクロソフトが上場した際の目論見書の存在を教えてもらいました。 その内容を読んでみたら今の巨大な帝国のようなマイクロソフトとは全く違う姿が見えてきました。そこで今回はマイクロソフトの株式公開時の目論見書を詳しく見ていきたいと思います。 マイクロソフトの歴史を紐解くと会社の設立は1975年になっています。そしてこの目論見書が公開されたのは1985年ですので、設立から10年で株式公開まで至っていることになります。 この会社の年表を見てみると、いくつか興味深い歴史が刻まれていることがわかります。 ・1978年 日のアスキー社と契約し、アスキー社がアジアにおける販売代理店になりました。 ・1981年 IBMはIBMパーソナルコンピューターを発表し、マイクロソフトのMS DOSを搭載し始めました。 ・1983年 Microsoft Wordが発売されました。 ・1985年 Microsof

    マイクロソフトは上場時の目論見書も神がかっていた!?(前編)|決算が読めるようになるノート
    atm_09_td
    atm_09_td 2017/12/18
    こういう分析もおもしろいよね。
  • Goの初心者が最初にはまりそうというか気になりそうなポイント - Qiita

    こんばんわ、ameshoです。 この記事は、Go4 Advent Calendar 2017の18日目です。 私は2017/3/17日から毎週水曜日にプログラミング言語Go読書会をLancersを会場にして開いています。冒頭から全員で範囲を決めて読み進めていく方式です。途中業務が忙しくて若干出来ない時期がありましたが幸いに再開でき、現在、9章まで来ています。 参加しているのは、ほとんどGo触ったことが無い人も割といまして、私自身も真面目に使うのは今年は行ってからぐらいなので、勉強会で出た内容と、みんなこんなところを気にしたり、はまったりするんだなと言うのをまとめてみました。 Unicodeで文字とされている物がすべて名前として有効 プログラム始めたばかりだと気づかない人多いんですが、最近の言語はUnicodeで文字とされているものが名前として有効だったりします。Goもそれに漏れず対応して

    Goの初心者が最初にはまりそうというか気になりそうなポイント - Qiita
  • Neovim と sbt server · eed3si9n

    2017-12-18 / sbt sbt server 統合シリーズ・パート3 は Neovim だ。これまでに VS Code とSublime Text 3 をカバーした。 sbt server のための Neovim のセットアップ方法 まず Python 3 と Node をマシンにインストールする。次に、Neovim クライアントライブラリを更新する。

  • RとQGISとPostgreSQLと - Rで統計解析して一儲けできるだろうか

    FOSS4G Advent Calendar 2017 18日目の記事です。 毎年皆さま新しい技術記事のなか、今さらながらRを始めたのでQGISのプラグインから使ってみた記事です。 R:オープンソースの統計解析向けプログラミング言語。初心者です。 QGIS:オープンソースのGISソフト。お世話になってます。 PostgreSQL:オープンソースのデータベースソフト。お世話になってます。 Python:いろいろ使えるスクリプト言語。チューニング次第で早くなったり遅くなったり。 で、この方々の関係がどうなっているかとゆうと R - QGIS プロセッシングでRスクリプトを利用できる。 https://docs.qgis.org/2.18/ja/docs/training_manual/processing/r_intro.html R- PostgreSQL RPostgreSQLパッケージで

    RとQGISとPostgreSQLと - Rで統計解析して一儲けできるだろうか
  • データサイエンスプロジェクトのディレクトリ構成どうするか問題

    あるいは、論文 "Best Practices for Scientific Computing" および "Good Enough Practices in Scientific Computing" について。 TL;DR 標題の件について、未だに答えは見えていないのだけど、自分の現状と他の人の例を文字で残しておく。 こういう話で「あーその手があったかー!」と知ったときの興奮はすごいので、みなさんもっとオープンにいきましょう。 大切なのは、ソフトウェア開発と同じ要領でデータサイエンスのプロジェクトを捉えて、分析と言う名の“開発”を行うつもりでディレクトリを掘ること。 必要なものリスト ナウいデータサイエンス/機械学習プロジェクトの中には(経験上、ぱっと思い浮かぶだけでも)次のようなファイル群があって、僕たちはそれらを良い感じに管理したい。 ソースコード 役割がいろいろある: 前処理(こ

    データサイエンスプロジェクトのディレクトリ構成どうするか問題
  • Seleniumで挑む、SPAのE2Eテスト自動化

    Webアプリケーションのフロントエンドを作る上で話題になりがちなSPA(Single Page Application)ですが、SPAのE2E(End-to-End)テストについて話題になることはあまりないと思います。筆者は、仕事でSPAのSeleniumテストを書いたことがあり、Seleniumで通常のWebアプリとあまり変わらずテストできる一方、気をつけるべき特徴もあると感じました。第6回の今回は、筆者の経験を元に、実際の業務でSPAのSeleniumテストを書く上での知見を紹介します。 illustration by iwasawa SPAの特徴 SPAとは、WebアプリケーションやWebサイトを単一のページのみで構成し、ユーザーが操作したときにブラウザの画面遷移なしで現在のページを動的に書き換えるものです。ユーザーは画面遷移によってUXが途切れることがないので、よりネイティブなアプ

    Seleniumで挑む、SPAのE2Eテスト自動化
  • HaskellでTwitterのタイムライン取得とツイート投稿をやってみた|TechRacho by BPS株式会社

    はじめまして、jhondaです。 入社したばかりでまだまだ勉強することだらけですが、今回はお仕事以外のテーマで書きたいと思います。 以前 Haskell の勉強を兼ねて、おうちで TwitterのBot を作りました。 TwitterAPI を 用いて Haskell でタイムラインの取得とツイートの投稿ができるプログラムを作成するところまでまとめてみます。 準備 stack (Haskell のビルドツール) を入れる。 Twitter のアカウントを作成する。 ホームタイムライン確認のために適当にフォローしておく。 Application Management で App を登録し API Key を取得する。以下の4つをあとで使用する。 Consumer Key Consumer Secret Access Token Access Token Secret プロジェクトの作成

    HaskellでTwitterのタイムライン取得とツイート投稿をやってみた|TechRacho by BPS株式会社
  • Pythonの並列処理 - test.py

    最近Pythonの並列処理をよく使うのでまとめておく。 基形 並列処理したいメソッドを別に書いてPoolから呼び出す。 multiprocessing.cpu_count()はシステムのCPU数を返す。 僕の環境では4。デュアルコアなのでスレッド数だと思う。 import multiprocessing def f(x): return x*x n = multiprocessing.cpu_count() p = multiprocessing.Pool(n) params = range(1,4) result = p.map(f, params) 1から3までを二乗しているので、次のような結果になる。 >>> print result [1, 4, 9] 複数の引数を渡す Pool().map()には引数は1つしか渡せない。 しかし、これは複数の引数を1つの引数にまとめることで解決

    Pythonの並列処理 - test.py
  • サーバーサイドKotlin (Spring Boot / Doma 2) 入門 - Qiita

    この記事は エムスリー Advent Calendar 2017 の18日目の記事です。 今年はKotlinが熱い1年でした!今年の5月に、Googleandroid開発言語としてKotlinを公式にサポートするとアナウンスしてから、急速に利用が広がっているようですね 出典:https://blog.jetbrains.com/jp/2017/11/29/828 私が所属するエムスリーでも 日Kotlinユーザグループ代表、長澤太郎が書籍を2冊出版 Kotlin Webアプリケーション 新しいサーバサイドプログラミング Kotlinイン・アクション(共同翻訳) イベント『どこでもKotlin』シリーズを開催 私のチームでサーバーサイドKotlinによるシステムリニューアルを実施 とKotlinに関する話題が盛り沢山の年となりました KotlinJetBrains社が開発したいわゆるJ

    サーバーサイドKotlin (Spring Boot / Doma 2) 入門 - Qiita
  • 大きなアーキテクチャ設計と小さなアーキテクチャ設計 - arclamp

    2017/12/15(金)にエンタープライズアジャイル勉強会2017年12月セミナーで「アジャイル開発を支えるアーキテクチャ設計とは」という話をしました。資料は以下から。 アジャイル開発を支えるアーキテクチャ設計とは 僕の話したかったのは「アーキテクチャ設計といっても『大きなアーキテクチャ設計』と『小さなアーキテクチャ設計』というレベルがあり、後者はチーム内で解決すべきだが、前者はチーム外で解決すべきだ」ということです。 大きなアーキテクチャ設計:システム間連携のレベル→アジャイルチームの外で実施 小さなアーキテクチャ設計:システム内連携のレベル→アジャイルチームの中で実施 なぜ分けるのか、というと、それぞれのレベルで求められる性能も可用性も保守性も違うからです。 小さなアーキテクチャ設計は「チームが好きにすればいい」わけですが、大きなアーキテクチャ設計は「チームをまたがって企業内でそれな

    大きなアーキテクチャ設計と小さなアーキテクチャ設計 - arclamp
  • IntelliJ Ideaでテスト駆動開発を爆速にするショートカット集 - Qiita

    前提 Mac,Java,Junit5 Windowsのショートカットキーも分かる範囲で記載しています。 はじめに 現在、2017年10月に和訳版が発売された「テスト駆動開発(https://www.amazon.co.jp/dp/B077D2L69C/)」を読んでいます。 書の中に出てくるソースコードを写経することでより実践的に学べるということで、IntelliJ Ideaを使って写経しています。 写経の中で私が学んだ、IntelliJ Ideaでテスト駆動開発を進めるために使えるショートカットを紹介したいと思います。 ※ほとんどIntelliJ Ideaの公式チュートリアルの内容です。詳細は公式チュートリアルを参照してください。(https://www.jetbrains.com/help/idea/tutorial-test-driven-development.html) テスト駆

    IntelliJ Ideaでテスト駆動開発を爆速にするショートカット集 - Qiita
  • Kubernetesに入門したい

    Kubernetesを使いはじめてみた際に知っておきたい用語をまとめてみた

    Kubernetesに入門したい
  • 仮想通貨自動取引入門 - Qiita

    記事はU-TOKYO AP Advent Calendar 2017の17日目です. はじめに 年の瀬が近づき何かと出費がかさむ季節になりましたね. 財布の中も真冬です. 実は2ヶ月ほど前から年越しに備えて仮想通貨資産運用をしています. 他の資産運用と比べたときの仮想通貨取引のメリットは「少額でも大きな利益を得るチャンスがあること」と「24時間365日取引ができること」でしょうか. ということで, その時に自動取引についていろいろと試行錯誤をしたので, 勉強したことをまとめて記事にしたいと思います. 具体的には, PythonでbitFlyerのAPIを叩いてチャートを描画し, 決められたアルゴリズムに従って自動でビットコインの売買をする, という一連の流れを紹介します. ごく簡単な紹介にとどめるので, その先は各々で試して自分なりのやり方を考えてほしいです. *僕は仮想通貨に関しても

    仮想通貨自動取引入門 - Qiita
  • Python: 機械学習で分類問題のモデルを評価する指標について - CUBE SUGAR CONTAINER

    今回は、機械学習において分類問題のモデルを評価するときに使われる色々な指標について扱う。 一般的な評価指標としては正確度 (Accuracy) が使われることが多いけど、これには問題も多い。 また、それぞれの指標は特徴が異なることから、対象とする問題ごとに重視するものを使い分ける必要がある。 今回扱う代表的な評価指標は次の通り。 正確度 (正解率、Accuracy) 適合率 (精度、陽性反応的中度、Precision) 再現率 (感度、真陽性率、Recall) F-値 (F-score, F-measure) AUC (Area Under the Curve) 上記それぞれの指標について、特徴を解説すると共に Python を使って計算してみる。 データセットには scikit-learn に組み込みの乳がんデータセットを用いた。 今回は「機械学習で」と書いてしまったけど、上記は実際には

  • Pythonで株価の上下運動を機械学習で推定(ランダムフォレスト編) - Qiita

    注意 文中の「全く予測できない場合、50%なので効果はありそうだなという印象です。」が、かなり怪しい(恐らく間違っている)とご指摘を受けたました。皆さんもしっかり勉強しましょう。ページを消してもよいですが、自戒も込めてとりあえず残しておきます(消すかも)。 はじめに 前日までの株価データを用いて、翌日の株価が上がるか、下がるかを機械学習で判定します。ランダムフォレストを使っただけですが、株価をどう使うかだけでも結構面倒でした。上から順番に追って行けば、実際に分析するときの考慮事項が分かっていくと思います。(注意:プログラム及び分析結果の活用は自己責任でお願いします。) 分析する前のデータ準備(一番大事) ランダムフォレストとを用いた推定 株価取得 プログラムの順番に説明をしていきます。最初の株価取得に関しては、Pythonで株価取得とローソク足チャート作成を見てください。 import d

    Pythonで株価の上下運動を機械学習で推定(ランダムフォレスト編) - Qiita
  • Haskell のアプリケーション向けに軽量の Dockerイメージ を作る (和訳)

    アプリケーションを Docker の実行可能イメージ として提供することは、アプリケーションを配布するための手頃な方法です。ツールチェインやフレームワーク、依存関係をインストールする必要が無くなります。ただ Docker イメージをプルして走らせればいい。当に簡単なことです。しかし Docker イメージは、サイズ的に尋常じゃなく大きくなる可能性があります。アプリケーションを走らせるために必要な、全ての依存関係をインストールする必要があるからです。ユーザとしてはかなりイライラしますよね。かなり限定された問題を解く小さなアプリケーションを使いたい時に、2GB の Docker イメージをダウンロードしなければならない状況を考えて見てください! 嫌ですよね。そして実際、そんなことをする必要はありません。コンパクトな Docker イメージに、実行可能ファイルだけを入れて配布したらどうでしょう

    Haskell のアプリケーション向けに軽量の Dockerイメージ を作る (和訳)
  • 改めて学び直すVuex - Qiita

    まえがき 以前 Vue.js用のFluxライクなライブラリVuexを試してみる という記事を書きました。2年前の記事で更新もしていなかったので改めて整理して学び直してみようと思います。今回使用するバージョンは 3.0.1 です。 Vuexとは? VuexはVue.js用の状態管理ライブラリです。Fluxの影響を受けています。ReactだとReduxに当たります。 Fluxの考え方はFacebookのリポジトリにあるflux-conceptsが詳しいです。その中の図をお借りすると以下のような考え方になります。 1 Action → Dispatcher → Store → View のようにデータが流れていきます。Vuexでもこの考え方と同じようなデータの流れになります。 2 Vuexでのデータの流れは Actions → Mutations → State → Vue Components

    改めて学び直すVuex - Qiita