タグ

ブックマーク / blog.satotaichi.info (10)

  • ScoopでWindowsにおける開発環境構築を最適化しよう | さにあらず

    はじめに#Windows には他の OS には無い致命的な問題が一つあった。そう、OS 標準のパッケージマネージャが無いことだ。 Windows10 ではPackageManagementという大変素晴らしい OS 標準のパッケージマネージャが搭載された。 これでコマンドラインだけで開発環境をガンガン作れるに違いない。そう考える人がいてもおかしくはない。正直、僕だってそう思いたい。 PackageManagement の問題点#僕は PackageManagement のアーキテクチャが難しすぎる事は大きな問題だと考えている。このエントリを是非読んで欲しい。 Introducing PackageManagement in Windows 10もうね、何でこんなに大変なことになってるのかと。 いや、歴史的経緯を鑑みつつ、OS に標準搭載されるパッケージマネージャが持つべき仕組みをキチンと備

    ScoopでWindowsにおける開発環境構築を最適化しよう | さにあらず
    yojik
    yojik 2018/10/24
  • Modern JavaScript概観、そしてElectronへ | さにあらず

    この一か月分の学習成果を整理したリポジトリを作ったので、その成果についてまとめておく。 作ったサンプルプロジェクトだけを手軽に欲しければ、このリポジトリを clone してほしい。 taichi/js-boilerplatemaster ブランチには、ミニマムな JavaScript 開発環境がサンプルコード付きで入っているfrontend ブランチには、React/Redux/webpackなウェブアプリケーション用の開発環境が入っているデフォルトブランチにしてある electron ブランチには、frontend ブランチの内容に加えてElectronでアプリケーションを開発するための環境が入っているはじめに#最近の JavaScript について#僕は仕事として JavaScript を書いている訳ではないけども、この半年くらいの間にちょっとしたツールならいくつか作った。どちらも便利

    Modern JavaScript概観、そしてElectronへ | さにあらず
    yojik
    yojik 2017/01/23
  • go言語の名前空間について | さにあらず

    package 宣言における名前付けのアプローチが、goJava では考え方が随分違っていて面らったので忘れないうちに書いておきます。 go 言語のテンプレート API#go 言語にはテンプレーティングする API が標準で二種類あります。 text/templatehtml/templateTemplate という struct がそこらじゅうで出てくるのですけども、何か混ざったような印象を受けるのです。 html/templateの APItext/templateを利用して実装しているので、ある種の重複は当然あってしかるべきなのですけども、何か違和感がありました。 コードを引っ張りだしてみます。 text/template/template.go package template import ( "fmt" "reflect" "text/template/parse"

    go言語の名前空間について | さにあらず
    yojik
    yojik 2015/08/20
  • Java用JSONパーザのベンチマークをした話 | さにあらず

    このたび JSON パーザのベンチマークを書きましたので、どうぞご査収下さい。 taichi/json-benchmarks Java8 がインストール済みの環境で、当該リポジトリを clone して と実行する事で追試できます。 結果について#jackson-databind が最速なので殆どの皆様におかれましては安心して下さい。 特に驚きに値するような事は何も起きていません。 僕のマシンで実行した結果はこちらです。(エビデンスが無いとの指摘を受け追記しました。) Json benchmark results結構な長文になってしまいましたので、マニアな皆様だけが続きを読んで下さい。 課題設定について#まず、おおまかな課題設定について説明します。 JMH を使った格的なベンチマークを書くJava 用 JSON パーザのショーケースを作る事で使い易いものを明らかにする結局どのパーザが速いの

    Java用JSONパーザのベンチマークをした話 | さにあらず
    yojik
    yojik 2015/08/20
  • Guiceで簡易的なプラグインシステムを構築するには | さにあらず

    Java 界隈には OSGi といういかついダイナミックモジュールシステムがあるのですけども、これは解決しようとしている問題の量が非常に多いのでちょっとしたものを作るために使おうとすると非常に辛い。 そもそも、アプリケーションのブートストラップ部分から全部 OSGi ベースで作りこまないと良い感じに動いてくれません。 そこで、OSGi を前提としたアーキテクチャ設計が必要になるのですけども、ちょっと便利なツール作りたいだけなのに膨大な時間をかけて OSGi を勉強するかと言われると、しませんよね。 という訳で、Java において簡易的なプラグインシステムを Guice で作ってみましょうという話です。 尚、Spring 界隈で実現する方法については@makingさんのエントリをどうぞ。 DI コンテナで実現する簡易プラグイン機構コードの場所#必要に応じてエントリ内にコードはありますが、実際

    Guiceで簡易的なプラグインシステムを構築するには | さにあらず
    yojik
    yojik 2015/04/20
  • 「Javaにおけるnull。これまでとこれから」という発表をしてきた | さにあらず

    JJUG CCC 2015 Spring(4 月 11 日開催) で発表をしてきました。 一コマ目であり、エントランスから一番近い入り易い場所だったせいもあるとは思いますが立ち見が出る程の盛況ぶりでした。発表を聞いて下さった皆様、当にありがとうございます。 発表資料はこちらです。 Past & Future of null in Java発表者がどういう風に考えてコンテンツを作り、どういう準備をしているのか、というのは余り共有されていないように思います このエントリでは僕がどの様に事前準備を行い、当日はどんな風に考えながら発表していたのか記録しておきます。 事前準備#内容の決め方#まず、50 分では前提条件の多くなる話はできませんので、凡そ言語仕様かライブラリの話をするのが妥当でしょうとアタリを付けます。 恐らくビギナー向けを標榜しつつも、設計方法論などメタモデルについて話をするのが良い

    「Javaにおけるnull。これまでとこれから」という発表をしてきた | さにあらず
    yojik
    yojik 2015/04/13
  • JavaのTimSortがバグってる件について | さにあらず

    Python で実装され、その後 Java にも移植されたソートアルゴリズムである TimSort が盛大にバグっていることが発見されました。 このバグがどのようにして発生するのかについては、以下のドキュメントを精査して下さい。 TimSort fails with ArrayIndexOutOfBoundsException on worst case long arraysOpenJDK’s java.utils.Collection.sort() is broken: The good, the bad and the worst caseどんなことが起こるのか#通常の利用では想定しえない場所でArrayIndexOutOfBoundsExceptionが発生します。 例えば、以下のようなスタックトレースになります。 Exception in thread "main" java.l

    JavaのTimSortがバグってる件について | さにあらず
    yojik
    yojik 2015/02/27
  • 「Javaの鉱脈」でGatlingの記事を書きました | さにあらず

    WEB+DB PRESS の Vol.83 で、負荷テストの記事を書いたので是非読んで頂きたい。 2014/10/24 発売ですので、既に購入頂いてる方も多いと思います。 電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。 WEB+DB PRESS Vol.83@Gihyo Digital Publishing今回の記事における対象読者について#JMeter だ、JMeter を撃滅せよ。 負荷テストスクリプト書くのに GUI なんぞいらないのですよ。 素人騙すんなら、それでいいかも知らんけども、そういう事じゃないでしょう。 GUI なしでも書けますよって、そのヤヴァイ XML を俺に見せるな。 負荷かけてる最中にサーバより先に死んだりするような負荷テストツールを後生大事に使うのをやめて欲しいのです。 今回は、新進気鋭のツールであるところのGatlingを紹介し

    「Javaの鉱脈」でGatlingの記事を書きました | さにあらず
    yojik
    yojik 2014/10/24
  • go言語のコンストラクタでinterfaceを返す | さにあらず

    go 言語において呼び出し元に interface のみを公開することで実装の詳細を隠ぺいすると、gomock を使ったテストがやり易くなります。 ざっくり結論だけ書くとこんな感じのコーディングパターンにすると良いよって感じなので、これだけ見て、何が言いたいのかすぐに分かる人は続きを読まなくても良いと思います。 package intf type Duck interface { Quack() string} type duck struct {} func NewDuck() Duck { return &duck{}} func (d *duck) Quack() string { return "QUUAAAACCCCKK!!!"}コピー interface と実装が分離されたアヒル#最初のポイントは、公開する interface として定義された Duck と非公開の struc

    go言語のコンストラクタでinterfaceを返す | さにあらず
    yojik
    yojik 2014/09/19
  • 「Javaの鉱脈」連載開始 | さにあらず

    WEB+DB PRESS の Vol.81 から JVM を中心とした連載を始めましたので是非買って下さい。 2014/6/24 発売です。書店には既に並んでいるかと思います。 これはアマゾンのアフィリエイトリンクですので、踏んだ直後に冷蔵庫等の大型家電を購入して頂けると僕が喜びます。 電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。 WEB+DB PRESS Vol.81@Gihyo Digital Publishing初回の内容はラムダ式 + RxJava#今回の内容としては Java8 のラムダ式に関する簡単な説明から、ラムダ式を利用してRxJavaを使うとこんなに便利という話を書きました。 記事内で Stream API に関して説明しなかった最大の理由はラムダ式と Stream API に関する適切で妥当な説明については桜庭さんの記事を読めば良いと考

    「Javaの鉱脈」連載開始 | さにあらず
    yojik
    yojik 2014/06/24
  • 1