haske11のブックマーク (43)

  • レーザー・カッターで自作キーボードのケースをつくった時の失敗談

    世間の波に乗り、私もキーボードの自作をはじめました✌ 選んだキーボードは、左右分離型 Ergodoxインスパイア系の redox keyboard です。 MITライセンスで公開されているため、柔軟に弄れそうで良いなと思いこちらにしました。 (いずれフォークしてバツイチ・キーボードを作ろうという目論見もあり、、、) このキーボードを作成する上で、何が一番大変だったかというと、 とにかく、 ケース作成 です。 ようやく完成したケース↑です。 アクリサンデー 乳白色 3mmを切り出しました。 たかがこれしきと思われるかもしれませんが、私がレーザーカッターを舐めていたこともあり、ここまで数回の試行がありました。 (業者に発注した方が数倍楽安だった説があります…) 実を言うと… redox keyboard のケースは FalbaTech というサイトで購入することができます。 https://f

    haske11
    haske11 2019/01/09
  • actix_web は Actorモデルでどのようにwebリクエストを捌いているのか

    actix_web は Actor モデルを採用した Rust の web frameworkです。 「Actor モデルでwebリクエストを捌く」仕組みを雑に想像すると、 TCPリスナーがHTTPリクエストをメールボックスに貯め、それをワーカーであるActorが拾ってレスポンスを返す? この仕組だと複数のActorで1つのメールボックスを共有する機構が必要になってきます。 しかし、Actorシステムを提供する actix にはこの機構はなさそうに見えます。 それに、恐らくこの仕組みでパフォーマンスを出すのは難しいでしょう。 そこで、actix_web がどのようにHTTPリクエストを捌いているのか、ソースコードを追ってみることにしました。 ※ 読み間違え等ありましたらコメント頂けると大変嬉しいです… 🙏 actix_web の構成 actix_web の依存関係を図示するとおおよそ下記

    haske11
    haske11 2018/12/20
  • 2018年版: Jupyter Notebook で Scala を動かす

    Jupyter Notebook 便利ですよね! REPL感覚で使えるけれど、REPLより使い勝手良いし、セルごとに何度もやり直しできるし、リンクを共有すればコードもさくっと共有できます。 Scala にも spark-notebook や Apache Zeppelin などの ノートブック形式Webアプリケーションがいくつかありますが、いつも使っている Jupyter Notebook で Scala を動かしたかったので、今回 Jupyter Notebook のカーネルに Scala を追加しました。 この記事を書いた経緯なのですが、「jupyter-scala」 の名称が変わっていたりインストールの仕方が変化していたため、一旦まとめた次第です。 ※ この記事を書いているのは 2018.11.01であり、今後も変更の可能性は大いにあります。。。 Jupyterのインストール 既に

    haske11
    haske11 2018/11/02
  • ScalaMatsuri2018 トレーニングDAY でお話させて頂きました

    2018年3月16日(金)に行われたScalaMatsuri2018トレーニングDAYでビッグデータについてお話させて頂きました。 ビッグデータで弱小卓球部を強くしよう!というふざけた内容です。 行ったデモの内容 ストリーミング・データ Apache Zeppelinでデータの取得〜可視化まで行います 依存のロード %spark.dep z.reset() z.load("org.apache.spark:spark-sql-kafka-0-10_2.11:2.2.0") z.load("mysql:mysql-connector-java:6.0.6") バージョン確認 %spark scala.util.Properties.versionString spark.version JSONをパースする構造体をcase classで作成 %spark import org.apache.

    haske11
    haske11 2018/03/16
    本日のScalaMasturi2018トレーニングDAYにてお話させて頂いた資料です。
  • Rustで株ボットつくってみた

    会社の同僚に触発され、Rustの勉強も兼ねてSlackボットを作ってみました。 使ったライブラリなどを含めてご紹介させて頂きます。 ※ 作成時のRustのバージョンは1.15.1です。 全体像 構成はシンプルです。 cronで30分毎にSlackボット(Rust CLI)を実行します。 Slackボットは起動すると指定株価一覧が記載されたCSVを読み込み、そこに記載された株の価格情報をGoogle Finance APIに取得しにいきます。 前日の終値から3%以上上昇もしくは3%以上下落した株の価格をSlackにメッセージとして送信します。 ソースコードはこちらに公開しています。 https://github.com/x1-/finance ※ Google Finance APIの詳細はこちらの記事をどうぞ。 プロジェクトの作成 Cargoを使ってプロジェクトのテンプレートを作成します。

    haske11
    haske11 2017/04/14
  • imply を使ってリアルタイム集計

    以前Druidとpivotを使って、twitterデータを可視化というのをやりましたが、Druidやpivotが一緒にパッケージ化されインストールしやすくなったimplyを使って、もっと簡単にリアルタイム集計をしてみたいと思います。 implyは以下のツールがセットになったイベント集計プラットフォームです。 DruidをベースにBIツールのPivotや、DruidのdatasourceをSQLライクに記述できるPlyQL、ラージデータセットを扱う時に便利なJavaScript libraryのPlywoodが含まれています。 implyにはQuickstart用の設定が入ってるので、簡単に試すことができます。 今回はimplyを入れたサーバーとは別のkafkaからデータを取ってきて、pivotで表示するところをこちらのチュートリアルをベースにやっていきたいと思います。 kafkaの準備 ま

    haske11
    haske11 2017/04/05
    Druid0.9.2
  • http://x1.inkenkun.com/archives/5558

    http://x1.inkenkun.com/archives/5558
    haske11
    haske11 2017/01/05
  • JVMチューニング: G1GCの使いどころとCMS GCからのマイグレート

    Java7 Update4 (java7u4) で正式サポートされたG1GC(ガベージ・ファーストGC)ですが、Java9ではデフォルトGCになることが確定しています。 参考: JEP248 またG1GCは、CMS GCを長期的に置き換えるものとして計画されています。 そこで、どのようなアルゴリズムなのか知っておいたほうが良さそうなので調査しました。 G1GCが向いているケース G1GCが向いているのは下記の環境です。 ヒープサイズが大きな環境(6GB以上) 一時停止可能時間がシビア(0.5sec未満) Oracleの 9 ガベージファースト・ガベージ・コレクタによると、CMS GCもしくはParallel GCを使っていて次のいずれかに該当したらG1GCへの切り替えを検討しましょうとのことです。 Javaヒープの50%超がライブ・データ(≒必要なデータ)で占められている。 オブジェクトの

    haske11
    haske11 2016/09/14
  • Apache Flink とは

    ストリーミング処理に気で取り組む必要があったので Apache Flink を使ってみました。 Apache Flinkとは? 分散ストリーミング処理エンジンです。 ストリーミングのみならずバッチ処理も行うことができますが、ストリーミングと静的データとを同じインターフェイスで扱うことができます。 分散システム 協調 フォルト・トレランス データ・ストリーミングにおける分散環境 を提供すると謳っています。 体はScalaで書かれていますが、java, scala, python* のAPIクライアントが用意されています。 クライアントは一連のオペレーションをデータフローとして記述します。 公式URL: http://flink.apache.org/ 2016-03-08 メジャーバージョン(1.0.0) リリース。 2016-05-25 現在, 1.0.3。 Apache Flink

    haske11
    haske11 2016/05/26
  • NodeJSのExpress4 MySQL ES6 のMVCサンプル

    expressやるときにいつもちょうどいいサンプルが無いので、備忘録的な感じでgitに上げました。 ログイン認証する時用のSessionストレージにRedis使っています。 MySQLに接続する部分は、どっかからコピってきました。 gitのソースコードはこちら MVCと書いてありますが、REST APIなので、Viewがないです(サンプルでつけた程度) むかーし書いたPython bottoleの記事もどうぞー

    haske11
    haske11 2016/04/21
    意外と少ないexpressのMVCサンプル。
  • あなたのScalaを爆速にする7つの方法 – Scala Matsuri 2016でお話しました

    IT業界で働くエンジニアです。名前の通りバツイチです。 理論や抽象的概念が好きだけど人に説明するのが下手。

    haske11
    haske11 2016/01/30
  • ことり隊入荷情報をSparkで分析してTableauで可視化する

    この記事はApache Spark Advent Calendar 2015 22日目の記事です。 完成したTableauダッシュボード。 ことり隊というのはこれ↓のことです。 ゲームセンターにあるUFOキャッチャーのプライズです。 ゲームセンターにもいろいろ特徴がありまして、ことり隊が置いてあるゲームセンターとそうでないゲームセンターがあります。 ゲームセンターをしらみつぶしに回ってことり隊を探すのも大変なので、Twitterを利用してことり隊の入荷情報をキャッチすることにしました。 1. ゲームセンターのtwitterアカウント まずは東京都内のゲームセンターをリストアップしてtwitterアカウントを探します。 ゲームセンターのリストは 全国ゲーセン地図Wikiから取得しました。 ゲームセンターの名前からtwitterアカウントを探しました(※ここは手動(;´∀`)です)。 2. ゲ

    haske11
    haske11 2015/12/25
  • Apache Spark: SparkSQLリファレンス〜演算子編〜

    bit演算を行ったことのない方はイメージしづらいかもしれませんが、 図にするとかんたんです。 A | 11000001 ----+------------ B | 00111111 上記のようなデータA,Bに対しbit演算子 & を使うとA & B => 00000001が返ります。 A | B では11111111が返ります。 A ^ B では11111110が返ります。 bit単位の論理演算を行うのです。 ~ は2つの式ではなく1式に使い、bitを反転させます。 ~A は 00111110。 詳しくはwikipediaをどうぞ。 SQL >>> SELECT col1 ^ col2 FROM dataframe DataFrame >>> DataFrame.select( $"col1" bitwiseXOR $"col2" ) ・算術演算子 算術演算子は数値型のデータに対して計算を

    haske11
    haske11 2015/10/08
    SparkSQLリファレンスに演算子編を追加しました
  • 1114#SELECT

    シンボル表現と$メソッドはimport sqlContext.implicits._を行い、implicit classをインポートすると使えるようになります。 ・WHERE WHEREはデータのフィルタリング条件を指定します。 ※ここらへんはSQL99等の仕様と同じです。 SQL >>> SELECT * FROM dataframe WHERE col2 > 0 DataFrame >>> DataFrameではfilterを使うこともできます。 DataFrame .where( $"col2" > 0 ) DataFrame .filter( $"col2".isNull ) ・JOIN JOINは複数のデータ(テーブル)を条件に従って結合します。 使えるJOINタイプは下記のとおりです。 単にJOINとだけ指定するとINNER JOINとなります。 LEFT SEMI JOIN

    haske11
    haske11 2015/10/06
    v( ̄Д ̄)v
  • Apache SparkのWebUI、いろいろ比較してみた

    Sparkを実行できるWebUIをいくつか比較してみました。 対象としたのは下記の3つです。 Apache Zeppelin pyspark + Jupyter(iPython Notebook) spark-notebook Spark付属のSpark Web Interfaceは実行状況のモニタリングやRDDの状態が可視化されていて非常に便利なものなのですが、上記とは毛色が異なるため今回比較対象に入れていません。 Hueのnotebookやdatabricks cloudに関してはまた今度。。。 まずはそれぞれの概要を少しご紹介します。 Apache Zeppelin Apacheが作っているnotebook形式のWeb UIで、対話型実行ができます。 この記事を書いている時点での最新バージョンは0.6.0です。 Scala, Python, SQL(Spark), SQL(Hive)

    haske11
    haske11 2015/08/14
    Apache Zeppelin, pyspark+jupyter, spark-notebookを比較してみました。
  • spark-notebook使ってみた

    notebook形式のWebUIでsparkを実行するspark-notebookを使ってみました。 https://github.com/andypetrella/spark-notebook spark-notebookは、scala-notebookをforkして作ったそうなんですが、 元々のscala-notebookはiPython Notebookにフィーチャーされて作ったものだということで、 iPython Notebookユーザには非常に馴染みのあるインターフェイスになっています。 インストール インストール方法はいくつか用意されています。 バイナリファイル dockerイメージ debianパッケージ ソースコード 私はデバッグできるようにソースコードを使いました。 ソースコードを使う場合はsbtでビルドと起動を行います。 # GitHubからcloneします $ git

    haske11
    haske11 2015/08/10
    ちょっと気になっていたspark-notebookを触ってみました。思った以上に良かったです。
  • [イベントレポート] 働く女性をハッピーに! Geek Girls Carrots Tokyo×Women Will、 働く女性の課題解決をテーマにミートアップを開催! | TechWave(テックウェーブ)

    FluQuar inc. Founder&CEO。女性がVRをカジュアルに楽しむことをコンセプトに事業準備中。スマホゲーム×海外が得意分野。VR・ガジェット・ゲームとe-Sports好き。海外事業で毎月1~3カ国海外を飛び回ってます。 @Carnival1022 女性Techコミュニティ、Geek Girls Carrots Tokyoが7月7日(火)に「Geek Girls Carrots Tokyo meetup vol.1」をWomen Willと共同開催しました。今回は、働く女性の課題解決をテーマとしたアイディアソンがメインコンテンツとなるミートアップ。年齢も職種も立場も様々な女性たちが東京・渋谷TECH LAB PAAKに集まりました。 Geek Girls Carrtsとは、ポーランド・ワルシャワで始まったテック業界における女性の活躍を促進するためのコミュニティで、現在ではその

    [イベントレポート] 働く女性をハッピーに! Geek Girls Carrots Tokyo×Women Will、 働く女性の課題解決をテーマにミートアップを開催! | TechWave(テックウェーブ)
    haske11
    haske11 2015/07/28
  • Spark Summit 2015へ行ってきました! ー レポートと感想

    2015年6月15日から17日にかけてサンフランシスコで開催されたSparkSummit2015へ行ってきました。 セッションの全スケジュールはこちら↓です。 6月24日以降に全スライドが上がるとのことでした。 Spark Summit 2015 Schedule 今年のSparkSummitで私が特に面白かったのは下記の5つです。 Spark Community Update Making Sense of Spark Performance From DataFrames to Tungsten: A Peek into Spark’s Future How Spark Fits into Baidu’s Scale A More Scalable Way of Making Recommendations with MLlib どんなセッションだったのか少しづつ紹介させて頂きます。

  • React NativeでTodoアプリを作ってみた

    前回の初心者swiftに引き続き、React Nativeも面白そうだから触ってみようということで、Todoアプリを作ってみました。 もちろんReactjsも触ったことなかったので、流行りのFluxとかは二の次です。 完成形はこんな感じ Todoをタップするとアラートが出て、Doneにしたり消せたりできます。 タブでTodoとDoneを切り替えています。ただ、ストレージに保存してないので再起動したら消えちゃうんですけどね、、、 ソースはこちら https://github.com/inkenkun/react-native-todo React Nativeをインスコ react-nativeのサイトの通りに入れます。 $ npm install -g react-native-cli $ react-native init プロジェクト名 init するとxcodeのプロジェクトファイル

    haske11
    haske11 2015/06/09
    超絶クールなreact-native
  • 【QCon Tokyo 2015 講演レポート】日々数十億レコードにおよぶログ情報を処理するビックデータ分析におけるApache Sparkの先進的活用

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    【QCon Tokyo 2015 講演レポート】日々数十億レコードにおよぶログ情報を処理するビックデータ分析におけるApache Sparkの先進的活用