タグ

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

  • ブラウザの閲覧履歴で人生の棚卸し(embulk + elasticsearch + kibanaで可視化) - Qiita

    この記事は「エムスリー Advent Calendar 2015」の 22日目の記事です。 はじめに こんにちわ。年末ですね。年末といえば一年を振り返るいい機会ですね。意識の高い人たちが「人生を棚卸しするいい機会ダヨッ★」なんて言っていたような気もします。 過去の自分を振り替えってみると、あーネットサーフィンに無駄な時間を過ごしたなぁ。。なんて後悔の念が湧いてきます。しかし、よく考えてみると、自分がブラウザで何を閲覧していたのか、きちんと振り返ったことがありませんでした。いい機会ですので、この記事では 自分の閲覧履歴を可視化して分析する基盤 を構築してみたいと思います。 ただ、一点ネックなのは、私は chrome => メインブラウザ firefox => ある特定の用途 といったように、2つのブラウザを戦略的に使い分けております。つまり、閲覧履歴データが分散しているわけです。分散してしま

    ブラウザの閲覧履歴で人生の棚卸し(embulk + elasticsearch + kibanaで可視化) - Qiita
  • 静的ダックタイピングのパフォーマンスとその仕組み - Qiita

    ここでの静的ダックタイピングはScalaの構造的部分型(Structural Typing)を用いて実現されるものを指しています。 構造的部分型については以下が参考になるかと思います。 構造的部分型について - Qiita Scala School - Advanced types Structural typing - Effective Scala tl;dr 構造的部分型はリフレクション結果をキャッシュしてるから速い。 構造的部分型とはどういったものか 下のスニペット中にあるHasSizeのように、特定のメソッドシグネチャを持つ型を指定してそのメソッドを呼ぶことが出来る仕組みのこと。 object DuckTyping extends App { sealed abstract class AwesomeData(id: Int) case class Nice(id: Int) e

    静的ダックタイピングのパフォーマンスとその仕組み - Qiita
    petitviolet
    petitviolet 2015/12/22
    アドベントカレンダー書きました
  • ClojureScriptとReact NativeによるiOSアプリ開発 - Qiita

    はじめに iOSアプリ開発の主流は,Objective-CやSwiftを用いたネイティブアプリ開発です.HTML5を用いたCordovaや,UnityからiOSエクスポートするといった方法もあります.そのような中,Facebookの発表したReact Nativeでは,Virtual DOMで大きな注目を浴びたReact.jsと同様のスタイルでJavaScriptを記述することで,iOSアプリ開発を行うことができます. 一方で,Clojureの文法で記述したコードをJavaScriptにコンパイルするClojureScriptの世界では,Omと呼ばれるReact.jsラッパーが人気です.React.jsの仕組みはイミュータブルであることを根幹においているClojureと非常に相性が良いといわれています. React.jsのような仕組みを使えるReact Nativeと,React.jsのラ

    ClojureScriptとReact NativeによるiOSアプリ開発 - Qiita
    petitviolet
    petitviolet 2015/12/21
    楽しそう
  • 本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita

    事の始まり それはD言語くんへの嫉妬から始まった。 D言語くんの繁殖についての仮説 lsを間違えてdlと入力してしまったときに、D言語くんが通り過ぎるコマンド くっ悔しい... そしてショボいAAで2番煎じ。 lsを間違えてgolと入力してしまったときに、Gopherが通り過ぎるコマンド書いた。 こんなはずじゃない! 僕らの Gopher 君はこんなチープじゃない! 明日来てください。物の Gopher をお見せしますよ。 — mattn (@mattn_jp) December 15, 2015 (当はもうちょっと前から作ってましたが) 物のGopher君とは そして今回、これを公開するに至った。 まずはこれをご覧頂きたい。 !!!!!!!!!!!!1 こいつ・・・ 動くぞ・・・ golang で書いたデスクトップマスコットです。起動すると画面のタスクバーの上をウロウロします。たま

    本物の golang を... 本物の Gopher を、お見せしますよ。 - Qiita
    petitviolet
    petitviolet 2015/12/17
    流石すぎるwwww
  • RxJava - Hot Observable と ConnectableObservable について - Qiita

    空いてたので参加してみました。 普段は Xamarin(C#) + Reactive Extensions + ReactiveProperty で、Reactive + MVVM な Android/iOS両対応アプリを開発しています。 Cold vs Hot Cold Observable は「あなただけの」Stream、Hot は「みんなの」Stream 。 (私的にはニコ動かニコ生か、みたいに理解してますが、その話はいいや) Cold は、あなたが subscribe した瞬間からデータが流れ始めます。 Hot は、あなたが subscribe してもデータは流れ始めません(流れるかも知れません?)。 では Hot Observable はいつからデータが流れ始める?Observable が生成された瞬間から? その答え(の一つ)が ConnectableObservable 。

    RxJava - Hot Observable と ConnectableObservable について - Qiita
  • Python3.0からPython3.5での変更点 - Qiita

    はじめに この記事は、Python その2 Advent Calendar 2015の16日目の記事です。 注意 今回は、 新しいモジュール 改良されたモジュール 非推奨のモジュール 最適化 IDLE ビルドとC API 内部のオブジェクトについてなどなど については触れないこととし、Pythonの文法やプリミティブ型などの質に近い部分のみの紹介にしようと思います。(幾つか触れている部分があるのでその場合は飛ばしてください・・) 最後のほう、時間がなくて雑になってますがお許しを・・・。 Python3.0 -> Python3.1 順序付き辞書 collections.OrderedDictクラスが導入されました。 挿入された順序を覚えている辞書、という感じです。 from collections import OrderedDict >>> {2:"a", 1:"b", 3:"c"}.

    Python3.0からPython3.5での変更点 - Qiita
  • Rxで知っておくと便利なSubjectたち - Qiita

    この記事はRxJava Advent Calendar 2015 11日目の記事です。 RxJava・RxAndroidの紹介記事の中にはよく「面倒くさいASyncTaskを使わなくて済む」といったRxJavaを非同期処理の代わりとして紹介されています。 もちろん、非同期処理を置き換えられるという点はRxJavaの有効的な使い方の一つですが、RxJavaには他にも便利に使える機能があります。 今回はそれらの機能の一つであるSubjectについて紹介したいと思います。 Subjectとは 短く言うと「SubscriberとObservableの2つの機能を併せ持ったもの」です。 SubscriberにあるようなonNextやonError、onCompleteといったメソッドを呼び出せ、Observableのようにsubscribeメソッドを呼び出すことができます。 Subject<Stri

    Rxで知っておくと便利なSubjectたち - Qiita
  • Javaの文法を自分好みに変えてみる(nullは友達の巻) - Qiita

    この記事は エムスリー Advent Calendar 2015 の4日目の記事です。 要約 自分で javac をコンパイルして、好きな文法を追加した Java言語のソースを書いちゃうという話です。 今回は Groovy などで見かける ?. という Null Safe Reference を導入してみました。似たものに Elvis Operator とよばれる ?: もあって、そのうちこれにも挑戦してみたいです。 Null Safe Operator, Elvis Operator は Javaへの機能追加として提案もされていたようです(もちろん、周知のとおり、取り込まれてはいません) 導入したい文法 オブジェクトのフィールド参照やメソッド呼び出しで、左辺値が null なら フィールド参照やメソッド呼び出しなどを行わず、結果を null にする

    Javaの文法を自分好みに変えてみる(nullは友達の巻) - Qiita
    petitviolet
    petitviolet 2015/12/04
    これはすごい
  • 気持ちよくAndroidを書くために - Qiita

    ちょっとでもJava7なAndroidを気持ちよくプログラミングしたい、 Javaっぽい(?)ところがありつつもモダンなパラダイムが取り入れられているScalaが羨ましく見えたので、Scalaっぽく書きたいという意志から書いています サンプルコードでは紙面の都合上、retrolambdalambda式使っています Scalaの羨ましいところ 挙げればキリが無いですが、以下とします 関数型プログラミング 強力な式 関数型プログラミングっぽく これについてはRoppongi.aar #2 - connpassで私が発表した内容がベースとなっています OOなjavaで無理して関数型プログラミングを目指すのではなく、関数型プログラミングの中でもモナドといわれる便利なデータ構造を便利に使いたい、といった程度のものです そこで、Androidでもモナド実装して使えば気持ちいいんじゃないか、ということ

    気持ちよくAndroidを書くために - Qiita
    petitviolet
    petitviolet 2015/12/03
    アドベントカレンダー書きました
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
  • Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出rdfスクレイピングWikipediaSPARQLdbpedia みなさん DBPedia をご存知でしょうか.DBPedia とは,Wikipedia から構造化データ (RDF) として情報を抽出するものです.DBPedia では Linked Data として情報が体系化されているので,Wikipedia 内の必要な情報を,非常に簡単に抽出することができます. 「◯◯ の情報を Wikipedia からスクレイピングして取ってきて…」みたいな話をよく耳にし,そんなのスクレイピングしなくても DBPedia 使えば一瞬なのに… と感じることが最近多々あるので,DBPedia の普及もかねて簡単にまとめてみることにしました.DBPedia なんて初めて聞いたという方は,ぜひチェック

    Wikipedia からスクレイピングして… とか言ってる人におすすめしたい,DBPedia からの情報抽出 - Qiita
    petitviolet
    petitviolet 2015/11/24
    知らなかった
  • FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita

    前回の記事では、ReaderモナドやFreeモナドを使ってDependency Injectionを行うための小さなDSLを組み立てた。今回の記事では、まず前回組み立てたDSLの課題であるExpression Problemと、それを解決するための機能Injectと、さらにはTagless Finalを用いたDSLについて述べる。 この記事は前回の記事の知識を前提としているので、分からない言葉などがある場合はまず前回の記事を参照して欲しい。また、文章について不明なことや意図が分かりにくい部分があれば気軽に指摘して欲しい。 注意: 記事の中にあるコードは読みやすさのためにimportなどを省略しているので、このままでは動かない。動かしたい方はGithubのリポジトリを使うとよい。 Expression Problem Expression Problemとは、こちらのサイトを引用すると次のよ

    FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita
  • モナドについてSwiftで説明してみた - Qiita

    モナドって何ですか? これをちゃんと説明できる人に会ったことがない。 ↑1に挑戦してみます。 まず、モナドには数学の圏論におけるモナドとプログラミングにおけるモナドがあります。圏論のモナドについては僕もよくわかっていません。圏論のモナドとプログラミングのモナドは同じものだというような説明がされていますが、当に等価なのか僕には判断できません(どうもプログラミングのモナドは圏論のモナドの条件を満たしていそうですが、逆は成り立たないんじゃないかと思っています)。 ここでは、 プログラミングにおけるモナド について説明します。コードはすべて Swift で書きます。モナドについて調べると、よく モナド則 について書いてあるんですが、肝心の記述が関数型言語で書かれていてわからん!となることが多いんじゃないかと思います。投稿では、 モナド則についても Swift の構文で記述します。 まず前半でモ

    モナドについてSwiftで説明してみた - Qiita
  • Haskell モナド変換子 超入門 - Qiita

    Haskellではモナドと呼ばれる部品を組み合わせてプログラムを作ります。別種のモナドを組み合わせるためのモナド変換子の使い方の初歩を説明します。ライブラリで用意されたモナド変換子を手っ取り早く使うことを目的としているため、モナド変換子の作り方や圏論には言及しません。 シリーズの記事です。 Haskell 超入門 Haskell 代数的データ型 超入門 Haskell アクション 超入門 Haskell ラムダ 超入門 Haskell アクションとラムダ 超入門 Haskell IOモナド 超入門 Haskell リストモナド 超入門 Haskell Maybeモナド 超入門 Haskell 状態系モナド 超入門 Haskell モナド変換子 超入門 ← この記事 Haskell 例外処理 超入門 Haskell 構文解析 超入門 【予定】Haskell 継続モナド 超入門 【予定】Has

    Haskell モナド変換子 超入門 - Qiita
  • モナドトランスフォーマーとその周辺 - Qiita

    モナドに関する記事は世の中に沢山ありますが、モナドトランスフォーマーに関する記事はあまりないように思います。その概念が意味する所はHaskell初心者はもちろんのこと、他の言語使用者も知っておいて損は無いと思います。 モナドトランスフォーマーとは、「モナド変換子」とも言いますが、モナドと組み合わせる事で、新しいモナドを生み出すことが出来るデータ構造の事です。 例えばモナドIO1とトランスフォーマーStateT sを組み合わせると、StateT s IOというモナドになります。組み合わせた結果がモナドなので、これもさらに他のトランスフォーマーと組み合わせる事も出来ます。そこでReaderT rを組み合わせてみます。すると、ReaderT r (StateT s IO)というモナドになります。さらにEitherT eを組み合わせると、EitherT e (ReaderT r (StateT s

    モナドトランスフォーマーとその周辺 - Qiita
  • 【ScalaMatsuriセッション当選御礼】ドワンゴ秘伝のトランザクションモナドを解説! - Qiita

    このたびはScalaMatsuriのセッションに投票していただき、ありがとうございました。 今回はそのScalaMatsuriのセッションで発表予定の内容の一つであるドワンゴ秘蔵のトランザクションモナドについて解説したいと思います。 このトランザクションモナドは基的な機能だけなら30行ほどの短いコードで記述できてしまうのですが、なかなか説明が難しい代物でして、 ScalaMatsuriの自分の発表時間内に聴衆のみなさんに理解していただくのは難しいだろうということで、先に解説記事を書くことにしました。 このトランザクションモナドは作者の名前から通称Fujitaskと呼ばれているのですが、作者の方は周りから「天才」と言われてまして、彼は常人が思いつかないようなコードを書かれるんですね。 Fujitaskは短いながらも、モナドと、サブタイピング(変位指定)と、アドホックポリモーフィズムの三つの

    【ScalaMatsuriセッション当選御礼】ドワンゴ秘伝のトランザクションモナドを解説! - Qiita
  • Python3.5で実装されたasync/awaitを使って軽量スレッドの性能ベンチマーク - Qiita

    Python3.5でasync/awaitが追加されていたのでメモリ消費量とコンテキストスイッチのコストの観点でベンチマークを取ってみました。 async/await構文とは 非同期処理やノンブロッキングI/O処理を良い感じに書ける非同期処理のパラダイムにおける最先鋭の構文です。C#に実装されたあと、C++,VB,Node.jsに実装されついにPythonにもやってきた!という感じです。特徴はいままでThreadingで頑張って書いてた非同期処理が、より簡潔により強力に書けるようになります。軽量スレッドとはマイクロスレッド、ファイバーとも呼ばれるもので、「C10K問題」(クライアント1万台問題)と言われるI/O待ちによってクライアント数が多いとハードウェアの性能が生かしきれない問題の解決策の1つです。I/O待ちの際に高速にコンテキストスイッチして他のクライアントを捌くことでハードウェアの性

    Python3.5で実装されたasync/awaitを使って軽量スレッドの性能ベンチマーク - Qiita
    petitviolet
    petitviolet 2015/11/04
    multiprocessingとか使うよりシンプルそうで良いな
  • 「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」 - Qiita

    $\mathcal{C}$を圏とする. 組$(T,\eta,\mu)$が$\mathcal{C}$上の モナド とは, 関手$T:\mathcal{C} \to \mathcal{C}$および自然変換$\eta: 1 \to T$, $\mu: T^2 \to T$が以下を満たすこととする. $\mu \circ \mu T = \mu \circ T \mu$ $\mu \circ \eta T = 1 = \mu \circ T \eta$ 以下の図式を考えると良い. http://ja.wikipedia.org/wiki/モナド_(圏論)#.E5.AE.9A.E7.BE.A9 あるいは, 以下のstring diagramを考えても良い. monad pic.twitter.com/dOOZviGmOM — みょん (@myuon_myon) 2014, 12月 26 モナドとは関

    「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」 - Qiita
  • DDDに役立つScalaの関数型プログラミング的機能 - Qiita

    はじめに 今日あった増田さんのDDD Allianceの3週連続DDDの話を聞いてきた所、最後の質疑応答で、 「ScalaやHaskellなんかの関数型的な考え方が適応できるんじゃないか?」 という質問が聴講者の方から上がったのですが、 増田さん的には「まだ挑戦的試みの域を出ない」という回答があったので、 ScalaでDDDを2年近くやってきた者として、これは役立つよねという手法を紹介しようと思います。 正直な話、DDDも関数型プログラミングも学ぶのに根気のいる難しい概念にもかかわらず、 バズワード化していろんな人が違う意味で使うようになってしまったので、 正直最近こういう話を書きたいと思わなくなってしまったし、 イスラムのムジャーヒディーンと十字軍の両軍の前で正義の定義について演説することに 近いものがあると思うので、気は進まないながらも、役立つものを紹介しようと思います。 まず最初に前

    DDDに役立つScalaの関数型プログラミング的機能 - Qiita
  • Haskell環境構築_20151226_最新版_4_投稿済み_stack-1.0.0対応版.md - Qiita

    もうcabalを使う必要はないしcabal hellも無いんだ…… コンパイルしたバイナリも使い回せて世界は平和になるんだ…… 1. stackを入れる コンパイル済みバイナリをダウンロードしてパスを通す他に、 windowsにはインストーラ、macにはhomebrew、大抵のlinuxディストリビューション1にはリポジトリ等が用意されているので、以下を参考にお好きな方法でインストール Install/upgrade — stack documentation bash/zsh用に補完も用意されているので、好みに応じて Shell Auto-completion — stack documentation 2. ghcを入れる stackが最新のlts-haskellに対応したghcを入れてくれる。 $ stack setup Run from outside a project, usi

    Haskell環境構築_20151226_最新版_4_投稿済み_stack-1.0.0対応版.md - Qiita
    petitviolet
    petitviolet 2015/10/13
    ファイル名から懐かしさを感じる...