タグ

2017年12月3日のブックマーク (11件)

  • A Tour of Go in Haskell

    A Tour of Go in Haskell へようこそA Tour of Go in Haskell へようこそ。 このサイトは、Go の有名なチュートリアル A Tour of Go の 並行性 の章を Haskell でやってみるというものです。 Haskell は Go と同じく 軽量スレッド や チャネル といった並行処理の機能を持っています。 そのため Haskell で Go と同じ処理を記述して2つを見比べてみるのは興味深いことでしょう。 ここから始めましょう。 Haskellに詳しい方へ: このサイトでは Go との対比を分かりやすくするため、もっぱら async, stm などのパッケージを使って IO の中で明示的に並行性を扱います。 Evalモナド、Parモナドなどは扱いません。 また、Haskell ユーザでない人の分かりやすさのために、意図的にユーティリティ関

    A Tour of Go in Haskell
  • ちょっとしたツールを作るのに便利なPythonライブラリ - Qiita

    この記事は、LIFULL Advent Calendar 2017の2日目の記事です。 おはようございます。新UX開発部の二宮( @ninomiyt )です。 LIFULLではデータ解析や最適化の用途、もしくはAWS Lambda上の簡易ツール実装用途などでPythonがそれなりに普及してきました。数値計算寄りの(いわゆるデータサイエンティスト的な)メンバーも今はPythonを使うことが多く、コード量としては小規模なプロジェクトが多く、簡単なAPIやバッチ処理の実装までやってもらうこともあります。 そのレビューをやっていく中で、「これ使うともっと簡単に実装できるよね」っていうライブラリがいくつかまとまってきたので紹介します。 click コマンドラインパーサー用のライブラリで、デコレータを使って関数を簡単にCLI化できます。 標準ライブラリのargparseがありますが、clickではバリ

    ちょっとしたツールを作るのに便利なPythonライブラリ - Qiita
  • 現場で役立つシステム設計の原則にあるUMLをPlantUMLで書いてみる - Qiita

    フューチャーアーキテクト Advent Calendar 2017の2日目です。 はじめに システム設計が大好きで大嫌いな皆さん、こんにちは。 突然ですが、皆さんはどのようにシステム設計における ドキュメント腐る問題 に立ち向かっていますか? ドキュメント腐る問題とは、設計時に作成した各種ドキュメントがGoogle Driveやファイルサーバ上で陳腐化してしまい、現状の正しい状態を指していないことです。せっかく新規参画者がキャッチアップしようとしてもドキュメントが真実を示していないという怖いやつですよね。 解決策としては、各種ドキュメントを、MarkdownAsciiDoc、UMLはPlantUMLやmermaid、ERDはPlantUMLやerd、画面遷移図はUI Flow、REST-API設計はSwaggerなど、なるべくテキストベースで管理し、GitHubなどのリポジトリで管理する

    現場で役立つシステム設計の原則にあるUMLをPlantUMLで書いてみる - Qiita
  • datasette - SQLiteをJSON API化

    社内システムであればMS Accessの代わりにSQLite3にデータを入れても良いでしょう。MS Accessと同じように単一ファイルで動きますし、多彩なプログラミング言語から利用できます。 さらにそのデータを閲覧するのであれば、datasetteを使ってJSON API化すると便利です。 datasetteの使い方 実行したところです。インデックスでテーブルが一覧されます。 テーブルを表示したところ。通常はHTMLで取得できます。 JSONでデータ閲覧も可能です。 datasetteはSQLite3のファイルを読み取り、その内容をJSON API化します。更新、削除はなしでデータ取得のみですが、閲覧やJavaScriptなどのフロントエンドからデータ利用したい場合に便利です。 datasetteはPython製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

    datasette - SQLiteをJSON API化
  • ErlangVMの落としかた初級編 - Qiita

    背景 ErlangVM は堅牢だといわれています。 実際社内で運用している Erlang 製のゲーム課金・認証基盤は弊社の全ゲームからのアクセスを数年間落ちずにさばいています。 ここまで頑丈だと逆にどうやれば落とすことができるのかに興味が行くのは自然なことです。 今回は ErlangVMの落とし方を学ぶため、実際に落とすためのアプリケーションを Elixir で書いてみます。 Supervisorの再起動制限 Supervisor の起動時オプションには max_restarts と max_seconds というオプションがあります。 max_restarts: 制限時間内に再起動する回数の上限 デフォルトは3 max_seconds: max_restartsを指定する制限時間 デフォルトは5 どうやら再起動回数には上限があり、デフォルトでは5秒以内に3回再起動したら Supervis

    ErlangVMの落としかた初級編 - Qiita
  • コンテナ化とサーバーレス、2つのトレンドに対する雑感 - プログラマでありたい

    からre:Inventを眺めていた雑感です。速報で2つほど新サービスに対しての感想をまとめていますが、今回は全体的なトレンドに対して今考えている事です。今回は1行じゃないですよ。 サービス展開の方向は、全方位的 サービスの展開方向としては、去年と変わらないような気がします。他のクラウド(Google, Azure)に対して弱かった部分をきっちりキャッチアップし、伸びている分野(AI機械学習)のラインナップを増やしていく。そして、サードパーティが提供している機能に対して、一定以上の規模が出てくると(買収 or 自社開発で)サービス化する。いわゆるサードパーティ殺し。 そんな中で提供されているサービスの作り方/インフラ的な部分を見てみると、コンテナとサーバレス(lambda)を使った物が多いです。AWS自身がコンテナとサーバレスを活用することで、開発を加速しサービスをスケールしやすくして

    コンテナ化とサーバーレス、2つのトレンドに対する雑感 - プログラマでありたい
  • Vue.js で初めて SPA を開発する際に考えたこと - Qiita

    はじめに MVVM フレームワーク初心者の筆者がVue.jsを使ってSPAを開発する際に考えたことを掲載していきます。記事を通して、これからSPAを開発する人にとっての足掛かりとなれば幸いです。 対象読者 HTML, CSS, JavaScript の経験あり、また jQuery などのJSライブラリの使用経験あり React, Angular といった今時のJSフレームワークによるSPA開発未経験 Vue.js に入門したい Vue.js を使い始める場合、大きく分けて2つの方法があります。 <script> タグを使ってjQuery感覚で使用できる環境を整える vue-cli を使って単一ファイルコンポーネントに特化した環境を整える 環境を整える手間は同じぐらいなので、どちらでも良いと思いますが Vue.js の真価を発揮するなら vue-cli を使った方法を取るのが良いと思います

    Vue.js で初めて SPA を開発する際に考えたこと - Qiita
  • Java Generics Hell - オブジェクト指向 - プログラマーの脳みそ

    Java Generics Hell アドベントカレンダー 2日目。 1日目 Java Generics Hell 序章 読者の推奨スキルとしてはOCJP Silverぐらいを想定している。 前回は与太話だった。ジェネリクスの話をする前にOOP(オブジェクト指向プログラミング)について整理しておかねばならない。 オブジェクト指向とは オブジェクト指向が何かという点についてはなかなか難しい。 Smalltalkを作ったアラン・ケイが「オブジェクト指向」という言葉を初めて用いたといわれるが、この「オブジェクト指向」はJava言語の教育の過程で一般に教えられる「オブジェクト指向」とはかなりイメージが違う。 アラン・ケイが「オブジェクト指向」という言葉を創った当初は、Smalltalk システムが体現した「パーソナルコンピューティングに関わる全てを『オブジェクト』とそれらの間で交わされる『メッセー

    Java Generics Hell - オブジェクト指向 - プログラマーの脳みそ
  • Java Generics Hell 序章 - プログラマーの脳みそ

    気合が続くか分からない Java Generics Hell アドベントカレンダー 1日目。 読者の推奨スキルとしてはOCJP Silverぐらいを想定している。 導入 JavaのジェネリクスはJavaが設計された当初(Javaは1995年に発表されている)から検討はされてはいたものの、実装が追いつかず、導入はJava5(2004年)を待つこととなった。後方互換の都合からいろいろと不便な部分もある。Javaに限らず、ある程度、歴史の長いプログラミング言語は、改定の都合からいろいろと不都合な部分が生じるものである。後方互換性を犠牲にして一新すれば言語仕様もさっぱりするが、非互換の壁でバージョンアップできないという闇を抱えたりとそれはそれで大変だ。 後方互換、つまり、より新しいバージョンは、昔作ったモノも動かせる、ということを前提にした場合、プログラミング言語の仕様というのはどんどん肥大してい

    Java Generics Hell 序章 - プログラマーの脳みそ
  • こんな私でも Vim が好きと言いたい - Qiita

    " complement set wildmode=list:longest " edit syntax on filetype plugin indent on " encoding set encoding=utf-8 set fileencodings=utf-8,iso-2022-jp,euc-jp,sjis " search set ignorecase set smartcase set incsearch set nohlsearch " format set expandtab set shiftwidth=4 set softtabstop=4 set tabstop=4 set autoindent set number set cursorline " display set t_Co=256 set background=dark colorscheme hybri

    こんな私でも Vim が好きと言いたい - Qiita
  • ババ抜き、奇数枚の人勝ちやすい説を検証 - sumsum88’s blog

    UTAP advent calender 2日目の記事です。 qiita.com 当初は音声+ディープラーニング系でなにか書こうかなと思ってたんですが、面白いネタが思い浮かばなかったのと、気付いたら投稿日当日になっていて時間がヤバかったので、全く違う内容になりました。(現在12/2 1:30) この記事の趣旨 ババ抜きというかの有名なトランプゲームがあります。始めに参加者に均等に配り、一枚ずつ他者から抜き取り同じ札があれば捨て、最後にジョーカーを持っている人が負けという極めてシンプルなゲームです。 しかし、トランプの枚数は52 + 1枚で素数なため、均等に配るとはいえ全ての参加者に同じ枚数だけ配ることは不可能です。つまり最初の枚数で必ず1枚の差が生じます。 この時、奇数枚であれば最後は1枚になるので前の人に引かれれば無条件で上がれますが、偶数枚だと最後ペアが出来ないと上がれないので、奇数

    ババ抜き、奇数枚の人勝ちやすい説を検証 - sumsum88’s blog