タグ

ブックマーク / qiita.com (167)

  • システムで「性別」の情報を扱う前に知っておくべきこと - Qiita

    0は性別に関する情報が得られない場合に使います。性別に関する情報はあるのだけど1とも2とも言えない場合は9を使います。要は「0でもなくて1でも2でもなければ9」です。 これを知っていればMだとかFだとかを議論をせずに済みますね。 国際規格に従うべき理由 国際規格に従うことは色々と利点があります。まず、どうしてそういうコード体系にしたのかを説明しやすいです。また多言語対応する際も規格通りに書けば伝わるはずなので迷わずに済みます。別システムへのデータの移行や、異なるシステム間でのデータの統合もコード体系が同じならラクラクです。もしかしたら別のプロジェクトで書いたコードをそのまま使いまわせるかもしれません。技術者に対するトレーニングも不要です。 対して、わざわざ国際規格に反する実装をする場合は上記のメリットがそのままひっくり返ってデメリットになりはしますが、もちろん、それなりの理由があれば規格と

    システムで「性別」の情報を扱う前に知っておくべきこと - Qiita
    minamishinji
    minamishinji 2018/04/13
    確かにそうかも。 | “システム設計の際には「この性別欄、本当に要る?」と一度考え直してみてください。たいてい要らないです。”
  • なぜfor文は禁止なのか?関数型記述のススメ - Qiita

    var totalOfEvenNumberUnder100 = 0; for (var i = 0; i < 100; i++) { if (i % 2 === 0) { totalOfEvenNumberUnder100 += i; } } 命題に、「繰り返す」という文字がないのに、forで繰り返しています。手続き型に慣れたプログラマは、もう違和感を感じなくなってしまっているかもしれませんが、なぜ繰り返すのでしょうか。0から100未満の数字がほしいだけなのに。 また、最初に0で変数を初期化するのも命題にはありません。 さらには、偶数のみを取り出す処理と足す処理が交互に行われることになっています。偶数のみを累計する、という命題とは違う処理になってしまっています。 もちろん答えは一緒ですが、命題とは別の処理になってしまっているともいえます。 推奨 できるだけ処理に名前をつけていきます。 命題

    なぜfor文は禁止なのか?関数型記述のススメ - Qiita
    minamishinji
    minamishinji 2018/04/02
    これだけ簡単なコードで、関数型のメリットを説明するのは無理がある…。ただきっかけとしてはとてもわかりやすい。
  • Windows環境でのMeCab(Python)のインストール - Qiita

    はじめに 自然言語処理を学ぼうと思い、PythonにMeCabをインストールしようと考える人は多くいると思う。 MacLinux環境では比較的簡単に(HomeBrewやapt-getを使用して)インストールすることが可能だが、Windows環境では一筋縄ではいかない。(現に2,3日ハマった) 多くの先人達がブログの記事にしているが、個人によって環境は異なるので、私がインストールに成功した方法を記事にしたいと思う。 インストール(に試して成功した)環境 OS:Windows10, Windows7 Pythonの環境:Anaconda3系 先にダウンロードしておくべきもの https://www.visualstudio.com/vs/older-downloads/ VS2015 Community (私の手元ではVS2017だと失敗した) http://taku910.github.i

    Windows環境でのMeCab(Python)のインストール - Qiita
  • ドメイン駆動設計と関数プログラミングをScalaで - Qiita

    はじめに この記事は Scala Advent Calendar 2016 - Qiita の 7 日目の記事です。 私事で恐縮ですが、今年の個人的なハイライトは、遅まきながらドメイン駆動設計と関数プログラミングを学べたことでして、その中でも、"Functional and Reactive Domain Modeling" (Debasish Ghosh 著) (以下、FRDM) を読んで、ふたつのコンセプトが自分の中で繋がったことが最も大きなものでした。 Manning | Functional and Reactive Domain Modeling この記事では、書の紹介も兼ねて、ドメイン駆動設計がどのように関数プログラミングと結びつくのか、非常にざっくりではありますが、Scala で表現してみたいと思います (ちなみに、私の Scala 歴は3ヶ月ほどですので、サンプルコード

    ドメイン駆動設計と関数プログラミングをScalaで - Qiita
  • 大自然言語時代のための、文章要約 - Qiita

    さまざまなニュースアプリ、ブログ、SNSと近年テキストの情報はますます増えています。日々たくさんの情報が配信されるため、Twitterやまとめサイトを見ていたら数時間たっていた・・・なんてこともよくあると思います。世はまさに大自然言語時代。 from THE HISTORICAL GROWTH OF DATA: WHY WE NEED A FASTER TRANSFER SOLUTION FOR LARGE DATA SETS テキスト、音声、画像、動画といった非構造データの増加を示したグラフ そこで注目される技術が、「要約」です。膨大な情報を要点をまとめた短い文章にすることができれば、単純に時間の節約になるだけでなく、多様な視点から書かれた情報を並べて吟味することもできます。 文書は、この文書要約(Text Summarization)についてその概観を示すことを目的として書かれていま

    大自然言語時代のための、文章要約 - Qiita
  • 自然言語処理における前処理の種類とその威力 - Qiita

    自然言語処理に前処理は不可欠です。テキストは文字の羅列であり構造化されていないため、そのままでは処理するのが難しいです。特にWebテキストの中には HTMLタグ や JavaScript のコードといったノイズが含まれています。このようなノイズは前処理して取り除かなければ期待する結果は得られないでしょう。 出典: Deep learning for computational biology 記事では自然言語処理における前処理の種類とその威力について説明します。説明順序としては、はじめに前処理の種類を説明します。各前処理については、1.どんな処理なのか、2.なぜその処理をするのか、3.実装方法(なるべく) という観点から説明します。種類について説明した後、前処理の威力を測るために前処理をした場合としなかった場合での文書分類の結果を比較します。 前処理の種類と実装 この節では以下に示す5つ

    自然言語処理における前処理の種類とその威力 - Qiita
    minamishinji
    minamishinji 2018/01/02
    よくまとまってる。
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
    minamishinji
    minamishinji 2017/12/27
    たぶん使うことないけど…
  • ゼロからはじめるWebAssembly入門(2017/01更新) - Qiita

    2017/01時点の情報に更新しました。 今後の展望が期待されているWebAssembly(以下wasm)について、 事前知識ゼロの状態から調べて入門してみた記事です。 目次 ・wasmとは ・wasmが生まれた経緯 ・wasmバイナリの作成方法 ・実際に動かしてみる ・wasmの感想/わかったこと ・利用シーン ・参考URL wasmとは WebAssemblyは、プログラミング言語やライブラリの名前ではなく、 「ブラウザ上で動くバイナリコードの新しいフォーマット(仕様)」のことです。 wasmは、「Webアプリケーションの高速化」を目的として、 各ブラウザベンダー (Google,Microsoft,Mozzila,Apple)が協力して策定中です。 既にChrome,FireFox上であればwasmに準じたバイナリコードを実行することができます。 wasmが生まれた経緯 JavaSc

    ゼロからはじめるWebAssembly入門(2017/01更新) - Qiita
    minamishinji
    minamishinji 2017/03/09
    WebAssembly面白そう。
  • Android 7.0のNFC HCE-Fの実装について - Qiita

    Android 7.0のNFCにHCE-Fが追加されたということで、AOSPソースコードの変更点について調べてみました。 HCE-Fは、FeliCaのHost-based Card Emulationのことです。 AndroidのNFC機能のソースコードは、external/libnfc-nci と packages/apps/NFC にあります。commit logを探したら、HCE-Fに関するcommitがそれぞれ一つずつありました。 external/libnfc-nci これはNFCチップのドライバとNFCのプロトコルスタックです。 NFCチップとHostのやりとりは、 NFC ForumのNCIを使っています。 sonyの人による "Implementation of HCE for NFC-F."というcommit https://android.googlesource.co

    Android 7.0のNFC HCE-Fの実装について - Qiita
  • 僕がredmineに入れてる便利なプラグインとデザインの格好良いテーマ - Qiita

    動作バージョン 「動作確認済」とは筆者が実際に動作させることができた環境を指す。他のバージョンでも動く場合があるので、詳しくは各プラグインのReadMeを参照。Redmine2系と3系で導入するプラグインのバージョンが異なる場合があるので注意。 不具合があったら GitHubのIssueを見ると案外自分と同じ問題が報告されていることも多い。意外と数ヶ月程度で対応してくれる作者もいるで、時々チェックするといつのまにか直っていることもある模様。 Easy Gantt 動作確認済:3.2.1/3.2.4/3.3.1 商用プラグラインの販売やRedmineのSaaSを開発しているEasyRedmine社によるプラグイン。マウスで直接操作できるガントチャート機能を追加できる。商用プラグインの無料版という位置付けだが、必要十分な機能は揃っている。 自分の環境では、通常のインストール手順の後に、データベ

    僕がredmineに入れてる便利なプラグインとデザインの格好良いテーマ - Qiita
  • Lassoの理論と実装 -スパースな解の推定アルゴリズム- - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    Lassoの理論と実装 -スパースな解の推定アルゴリズム- - Qiita
    minamishinji
    minamishinji 2017/01/09
    LassoとRidge
  • SELinux を使おう.使ってくれ. - Qiita

    この記事の目的 SELinux って邪魔者ですか? 「トラブルシュートの時に邪魔だから」「トラブルの元だから」とか言う理由で /etc/selinux/config で SELINUX=disable したり setenforce 0 したりしていませんか? SELinux は理解さえすればとても簡単です. 番環境でファイアウォールと WAF の設定をして満足していないで SELinux を使いましょう. 対象 SELinux を初めて触る人向けです. 玄人の方は他へ... 稿の範囲 稿では SELinux を導入しておしまいです.あくまで「みんな,簡単だからね,使おうね!」と言いたいのです. 当は SELinux の効果を示すために Exploit を仕込んだアプリケーションから root を取って不正にファイルに触るところまでやりたいのですが,これまた別の記事にします. 僕の願

    SELinux を使おう.使ってくれ. - Qiita
  • 大規模プロダクトにおけるフロントエンドの1年間の変化 - Qiita

    プロダクトに関わるエンジニアは40人近くいて、弊社ではフロントエンド/サーバーサイドといった明確な線引きがないため全員がフロントエンドに触れる機会が有りえます。開発チーム・コード共にそれなりに大規模と言えるのではないでしょうか。 やったこと モジュール間の依存解決 もともとRailsのSprocketsに沿ってjsを書いていたため、classは全て一つのグローバル変数に格納され、全てのjsが結合された巨大なapplication.jsをロードしている状態で、メンテナビリティやパフォーマンスに大きな問題を抱えていました。そこで去年よりWebpackを導入し、各モジュールの依存関係を整理してjsファイルを適切な単位に分割するようにしました。ファイル数が多いため段階的に作業をつづけ、今年ようやく全てのファイルの依存解決が完了することができました。 過渡期はWebpackとSprockets両方か

    大規模プロダクトにおけるフロントエンドの1年間の変化 - Qiita
  • Nianticの求人から推測する『Pokémon GO(ポケモンGO)』のサーバ構成 - Qiita

    1ワールドで済ますというチャレンジ Nianticの求人を見ていて、凄く驚いたのは、「Software Engineer - Server Infrastructure」での次の項目。 all on a single, coherent world-wide instance shared by millions of users. 対訳 全ての(アクション)は、数百万のユーザーに共有された単一の一貫した(サーバ群で行われる) つまり、ポケモンGOは1ワールドで構成されている。MMOのサーバを作ったことがある人なら5それがどんなに大変かピンとくるだろう。特に、ポケモンGOの様に一日に数百万人とかが遊ぶゲームで、1ワールドでゲーム世界を構築するのは、結構大変だ。6 MMOで1ワールドがなぜ大変か(データストレージとの戦い) MMOの様なオンラインゲームで、1ワールドがなぜ大変かを図示する。

    Nianticの求人から推測する『Pokémon GO(ポケモンGO)』のサーバ構成 - Qiita
  • Vagrant 導入

    最近、Vagrant(ベイグラント)を使い始めてすごい便利だなあと感じたので、Vagrantに関する記事を色々と読んで整理してみました。Windows環境でのセットアップ手順も書いています。 (※Windows向けの手順を書いていますが、Macでもほぼ同様です) 2016-02-29時点での最新バージョンを使っています。 Vagrant 1.8.1 VirtualBox 5.0.14 Vagrantってなに? 仮想マシンの簡単な構築や、どこでも同じ環境を再現できるように仮想マシンを管理するためのコマンドラインツールです。 Rubyで実装されていて、WindowsMac OS X、Linuxで動作します。 Vagrant自体には仮想化機能は無く、VirtualBoxなどの仮想化ソフトのフロントエンドとして機能し、仮想化ソフトの操作を簡単なコマンドで代行してくれます。 公式ページ http:

    Vagrant 導入
  • RxJavaに3日で入門し、Androidアプリのリスト操作、非同期処理、変更通知の課題を解決した話 - Qiita

    なんでこの記事書いたのか 今開発中のプロダクトにおいて、RxJavaの導入をやってみたので、実際に使った箇所とその例、調べないとわからなかったことを載せておきました。 そう(retrolambdaのためにjdk8を投入)までして導入したかったメリットを話してくれ、サンプルコードがないとわからん、といった声を頂いているので、実際に何が解決されたのか、どんなコードで解決したのかということと、そのために勉強しなくてはならなかった点について書いています。 (追記)警告:差分作ってコード上では解決したんですが、この差分まだ「リリース」したわけじゃないので、その点だけご注意くださいmm 続報あり次第追記します。 追記:リリースして安定運用しています!最近まで監視に難がありましたがそれも修正しました。この記事の監視スニペットも更新済みです! なぜRxJavaを導入したのか 次の課題をまとめて解決できるの

    RxJavaに3日で入門し、Androidアプリのリスト操作、非同期処理、変更通知の課題を解決した話 - Qiita
  • ノンパラメトリックベイズ入門 - Qiita

    ノンパラメトリックベイズのことを最近勉強したので頭の整理もかねてまとめてみました。 特に専門でもないので間違いがあったら指摘していただけると助かります。 モチベーション ノンパラメトリックベイズは簡単に言えば無限次元のベイズモデルです。(パラメータがない訳ではないです)理論自身はかなり前からもう既に大体出来ていて2000年代になってから機械学習の文脈でそれが使えるってなってきたらしいです。 例えばクラスタリングをするとき普通、混合数を指定します。しかしノンパラメトリックベイズでは一旦、無限個のクラスターがあると考えることで自動的に混合数が決まります。 具体的にいうと下のようなgifのようになります。 色が同じだと同じクラスターとしています。クラスター数を指定している訳ではないですが上手くクラスタリングできていることが分かると思います。今回はこの無限混合モデルの実装を目標とします。 コードは

    ノンパラメトリックベイズ入門 - Qiita
    minamishinji
    minamishinji 2016/08/31
    このあたりからかなー
  • Windows上にVirtualBox+VagrantでCentOS環境構築 - Qiita

    会社でHAProxyを試したい時、仕事中自分のMacを開いていると肩身が狭いのでばれないように仕事で使っているWindowsにVirtualBox+VagrantでCentOS環境を構築してHAProxyを試そうと言う意図で書かれたエントリです。 新しい案件もVagrant使うっぽいのでその点でもDockerを使わずに慣れようという点でVagrantを選択しています。 …(今後自分のMacを検証用に開いていもそのような思いをせずにいれる環境になることを願うばかりです。) 初めにVagrantとは何者か 触り始める前の印象はVirutualBoxに環境を立ち上げるための設定ファイルを書いてそれから同じ環境を作ることが出来ると思っています。 -> VirtualBoxのVM構築を楽にしてくれるツール DockerはVirtualBox上にLinuxVMを作ってその上でDockerfileからイ

    Windows上にVirtualBox+VagrantでCentOS環境構築 - Qiita
  • Deep Learning の次は、TDA 「トポロジカル・データ・アナリシス」 (Topological data analysis) が来る ? ~ その概要と、R言語 / Python言語 実装ライブラリ をちらっと調べてみた - Qiita

    人工知能やデータ解析の領域で、膨大な量のデータから、物体概念(物体識別)や音声・体の運動スキーマ概念を自動的・自律的に獲得できる可能性をもった手法として、Deep Learning(ディープ・ラーニング、「深層学習」)と総称される手法が注目を集めています。 こうした中、一部の研究者やベンチャー企業の経営者・エンジニアの中には、このDeep Learningのさらに先をいくデータ解析手法として、TDA:トポロジカル・データ・アナリシス (Topological data analysis) と呼ばれる手法に着目している方たちがいるようです。 Deep Learningと同じく、人間が脳を使って、五感で得た周囲や自分の体についての感覚情報から、どのようにして周囲の環境空間に対する認識イメージや、物体概念、みずからの身体概念を得ているのか?という「問い」に対して、統計学や確率論のアプローチではな

    Deep Learning の次は、TDA 「トポロジカル・データ・アナリシス」 (Topological data analysis) が来る ? ~ その概要と、R言語 / Python言語 実装ライブラリ をちらっと調べてみた - Qiita
  • 教師なし学習による異常値検知: マハラノビス距離 (実装編) - Qiita

    さて,前回の理論編の続きということで,今回は実際にマハラノビス距離をpythonで実装しようと思います. 前回の理論編はこちらからどうぞ 教師なし学習による異常値検知: マハラノビス距離 (理論編) はじめに Pythonのscikit-learnというライブラリでは,マハラノビス距離を計算する関数が実装されています. Robust covariance estimation and Mahalanobis distances relevance ただ,このコードを実行します! という記事を書いてもただの英訳になってしまうので, 今回は自分で実装し,計算過程がプログラム上ではどうなっているのかを見ていきます. 最終的に全てのコードをつなぎ合わせたら,自分で距離計算が出来るというところまでを目標にします. 環境 Mac OSX Mavericks Python3系列(3.4) また,今回の実

    教師なし学習による異常値検知: マハラノビス距離 (実装編) - Qiita
    minamishinji
    minamishinji 2016/01/27
    pandasじゃないんだ…