タグ

ブックマーク / blog.shibayu36.org (9)

  • TypeScriptの型を手に馴染ませるためにやっていること - $shibayu36->blog;

    最近TypeScriptが好きで勉強していっている。しかしなかなか型定義周りが手に馴染まず、少し複雑な型定義を読んだり、自分でユーティリティ型を定義したりすることが難しかった。 そこで型を手に馴染ませるために色々学習をしてみたので、やっていることをメモしておく。 まずざっとTypeScriptの型概要を学ぶ まずTypeScriptでの型を簡単に学ぶには以下の2つの資料がわかりやすかった。 TypeScriptの型入門 - Qiita TypeScriptの型初級 - Qiita ひたすら型演習をする 資料を読むだけでは全く手に馴染まないと思ったので、その後ひたすら型演習をしている。 まずは TypeScriptの型演習 - Qiita 。これは先程の型初級、型入門の記事を書いた人が演習問題を作っているため同じ流れで学習でき、さらに解説編も充実しているので、手を動かしながら学ぶのに最適であ

    TypeScriptの型を手に馴染ませるためにやっていること - $shibayu36->blog;
  • ISUCON8予選を突破した - $shibayu36->blog;

    id:hitode909とid:takuya-aとチーム「ディメンジョナルハイソサイエティぬれねずみ」としてISUCON8に参加し、40867点で戦に行けることになった。ISUCON初参加でいろいろ不慣れではあったが、なんとか戦に行けて嬉しい! サーバ複数台構成かつボトルネックになる箇所が結構面白いところが多く、非常に楽しめました。運営の皆様ありがとうございました。 振り返りとして、チームでやったこと・良かった進め方をまとめてみる。 チームでやったこと 開始直後は役割分担して作業していった。言語は勉強がてらgolangにしようと思ったこともあったが、せっかくなら勝ちたいし慣れてるperlにした。 shiba_yu36: 鍵置いたりコードのバックアップしたりなどといったオペレーション周り 他二人: アプリケーションの挙動を確認し、作戦を立ててもらう 以下が最初のオペレーションでやっていた

    ISUCON8予選を突破した - $shibayu36->blog;
    takuya-a
    takuya-a 2018/09/18
    オペレーションまわり全部引き受けてくれて助かりました。僕も楽しかったしまた出ようと思った!ありがとうございました!
  • CloudFormationでVPCを構築し、CloudFormationに入門する方法を知った - $shibayu36->blog;

    最近CloudFormationに入門しようとしている。それで、AWS CloudFormation への入門に「Amazon Web Services 基礎からのネットワーク&サーバー構築」を使ってみた - えいのうにっきの記事をみて、これはいい入門の仕方だなあと思い、「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版」を購入して、CloudFormationで構築するということをやっている。 Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版 作者:玉川憲,片山暁雄,今井雄太,大澤文孝日経BPAmazon 今回はChapter2の「ネットワークを構築する」をCloudFormationでやってみた。 CloudFormationの概念や使い方を理解するには やってみようとすると、まずCloudFormationの概念

    CloudFormationでVPCを構築し、CloudFormationに入門する方法を知った - $shibayu36->blog;
  • 自作ScalaライブラリをMaven Centralにリリースする手順メモ - $shibayu36->blog;

    最近Scalaの勉強も兼ねてjoda-time-fakeというScalaライブラリをMaven Central Repositoryにリリースしてみた。今回はその手順を忘れないようにメモとして残しておく。 今回の手順でできたこと com.github.shibayu36 organizationにjoda-time-fakeとしてライブラリをリリースする Scalaの2.11と2.12でクロスコンパイルして両方共リリースする 最終的にsbt-releaseでリリースを自動化できるようにする 参考資料 自作のScalaライブラリをMaven Central Repositoryにリリースする - Qiitaが一番参考になった。少しハマりどころはあったものの、これを見て一つずつやっていったらリリースまで出来たので感謝。今回の僕の記事はクロスコンパイルして複数バージョン上げるという点が違うだけで

    自作ScalaライブラリをMaven Centralにリリースする手順メモ - $shibayu36->blog;
  • MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;

    最近、CourseraのArgorithms, Part1という講義を受けている。そこでソートの講義を受けて、そういえばMySQLのORDER BYでfilesortになったときってどのソートが使われているのだろうと気になってきたので調べてみた。 調べてみると非常に難解で、結局いまいち分からなかったが、今の段階の調べた内容をひとまず書いておく。MySQLのコードを読んだのも初めてで、しかもちゃんと読み解くことができなかったので、情報が間違っている可能性も非常に高い。間違ってたら指摘してもらえるとうれしいです。 調査結果 最初に調査結果を書いておく。たぶんこれは非常に単純化したもので、詳しく見るともっといろいろチューニングされてそう。 sort_buffer_size以内のメモリ量でソートが可能な場合、メモリ内でのみソートされる ソートにsort_buffer_size以上のメモリが必要な場

    MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;
  • 高速なRandomized Queueのアルゴリズムを実装する - $shibayu36->blog;

    CourseraのAlgorithms, Part Iというコースで、高速なRandomized Queueを実装するという話題があったので、試しに作ってみた。 高速なRandomized Queueとは Randomized Queueとは、Queueからdequeueするときに、中に入っている要素の中からランダムに一要素取り出すようなQueueである。 また「高速な」とは、enqueue、dequeue、isEmpty、sizeなどの操作の実行時間が、"constant amortized time"であること、つまり何回も操作を繰り返していくと、平均的には定数時間でそれぞれの操作が終わるということである。 この二つを満たすものを高速なRandomized Queueと呼ぶ。 実装 高速なRandomized Queueを実装すると次のようになった。 import java.util.

    高速なRandomized Queueのアルゴリズムを実装する - $shibayu36->blog;
  • 文字列マッチングのためのLCP Arrayを構築する - $shibayu36->blog;

    前回のブログ記事で、文字列マッチングをするためのSuffix Arrayという構造を構築した。このSuffix Arrayという構造だけでも、テキスト長をn、パターン長をmとして、の計算量で文字列マッチングできるようになった。 suffix arrayを一番簡単なアルゴリズムで実装する - アルゴリズム学習(その6) - $shibayu36->blog; suffix array構築のメモリ効率を良くする - アルゴリズム学習(その7) - $shibayu36->blog; しかし、前処理としてSuffix ArrayからLCP Array(Longest Common Prefix Array)という構造をさらに作っておくと、という計算量で文字列マッチングが出来るようになるらしい。そこで、今回はLCP Array(Longest Common Prefix Array)の構築を実装し

    takuya-a
    takuya-a 2017/01/06
    よい
  • GitHubでの仕事を快適にするコマンドを紹介します - $shibayu36->blog;

    趣味のプログラミングや仕事githubを使って行なっていると、「ちょっとこんなかんじの変更してみたんだけど、このcommit見てよ」とか、「このブランチのこのファイルちょっと見てくれない?」みたいなことがよく起こります。そういう時いちいちgithub上のページをポチポチ押して、URLを教えるみたいなことをやっているのが大変だったので、ターミナルからgithub上のページを開くコマンドを作ってみました。すでにこういうのあるかもしれません。 今回のコマンドで出来ること commitを指定してgithub上の該当commitページを開く HEAD^みたいな指定も出来る ファイル名を指定して現在のブランチのそのファイルのページを開く 行を指定してハイライトさせることも出来る それらのコマンドをエディタなどから使うことでさらに便利に使う openコマンドとperlに依存しているので、これらが使えな

    GitHubでの仕事を快適にするコマンドを紹介します - $shibayu36->blog;
    takuya-a
    takuya-a 2016/09/07
  • 自分流Elasticsearch入門 - $shibayu36->blog;

    【2016/09/10追記】 勉強しなおして、Elasticsearchの知識についてさらにまとめた記事を書いたので、そちらを参照してもらうと良さそうです。 blog.shibayu36.org 最近Elasticsearchの勉強をした。ただ、入門のためどのような資料が適しているかを知るのが大変だった。そこでどのように勉強したかについてメモをしておく。少しまとめエントリー的なノリになりそう。 Elasticsearchの概念を知る 全文検索技術の基を知る Elasticsearchのドキュメントのたどり方を知る の順に学習を進めていった。 Elasticsearchの概念を知る Elasticsearchの学習を始めようとした時に、まずは基からということで以下のを読んでいた。 高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍) 作者:Rafal

    自分流Elasticsearch入門 - $shibayu36->blog;
  • 1