角待ちは対空

おもむろガウェイン

Techに関する記事一覧

Bash on Ubuntu on Windowsで開発環境を整えてる

最近はBash on Ubuntu on Windowsっていうのがあり、まぁいけるやろと思ったのでやっていく。会社のPC(Mac)の買い替え時期も近いので手元環境(dotfiles)を整理したい、最近dotfilesに関する勉強会をしたのでモチベーションがある、ここ二ヶ月くらいゴミみた…

chromeのData Saverに勝手に画像を圧縮されるのを防ぐ

Webにおけるマンガビューアの画像保護の実装は「サーバーからはパズル化された画像を配信、ブラウザはcanvas要素使って組み立てる」というのがメジャー。Kindleもやってる。 その際注意が必要なのはHTTPで配信する場合、ブラウザと画像配信サーバーとの間に…

がんばらないTypeScriptのはじめ方

このエントリは2017/07/12に行われたHatena Engineer Seminar #8 @ Tokyoの発表内容をブログ向けに書き直したものです。 事前の通知では「CoffeeScript脱出にみるTypeScript2.4時代のベストプラクティス」がタイトルだったのですが、主題を変えたためタイト…

TypeScript 2.4のSafer callback parameter checkingについて

TypeScript 2.4 RCがリリースされました。 Announcing TypeScript 2.4 RC | TypeScript いくつか変更点があるのですがこのエントリではSafer callback parameter checkingについて解説します。公式ドキュメントでいうとFAQ · Microsoft/TypeScript Wiki · Gi…

TypeScriptの`Object`型と`object`型と`{}`型の使い分けについて

TypeScriptには似たような型としてObject型とobject型と{}型が存在します。 let o1: Object; let o2: object; let o3: {}; 今回はこの3つの使い分け、あるいはobject型導入の経緯についてです。 JavaScriptのデータ型 データ構造 - JavaScript | MDNを読めば…

Typescriptのコードを読む #4

2週間でできる! スクリプト言語の作り方 (Software Design plus)作者: 千葉滋出版社/メーカー: 技術評論社発売日: 2012/02/10メディア: 単行本(ソフトカバー)購入: 11人 クリック: 318回この商品を含むブログ (18件) を見る 一旦読むの諦めて写経してる。…

2017-06-02の日記

自転車 ほしい。別に必要ないけど運用する気のない貯金が溜まっていくくらいならば普段使うものに金を掛けたほうが良いのではないかという気持ちになってきたので、そこそこの自転車がほしい。 SCF ストロベリクリームフラペチーノのことだけど、記憶してた…

Typescriptのコードを読む #3

SyntaxList がなんだかよく分からず終わった。 TypeScript/types.ts at 3cd9f3d2d4afc1c817ea53b3e40d9598197e9aaa · Microsoft/TypeScript · GitHub

Typescriptのコードを読む #2

Scanner TypeScript/scanner.ts at 3cd9f3d2d4afc1c817ea53b3e40d9598197e9aaa · Microsoft/TypeScript · GitHub export interface Scanner { getStartPos(): number; getToken(): SyntaxKind; getTextPos(): number; getTokenPos(): number; getTokenText()…

Typescriptのコードを読む #1

突然だけどTypescriptのコードを読んでいくことにする。特に目的はない、のでどこから読んでいいかわからないけど、scannerからいく。そして、scanner自体もそこそこあるし、疲れるので、大体関数1個ずつくらいのペースで行くのではないか。飽きたらやめる。…

CHANGELOG の書き方

VS Code の拡張作っている際に CHANGELOG.md が自動生成され、書き方はKeep a Changelogに従えと書かれていたので紹介する。 ここに書かれていることは絶対ではなくただ提案しているだけである。意見がある人は話し合おうという温度感っぽいので、納得いかな…

vscode事始め

検索が早いという一点の理由だけで最近 vscode 使いつつある。起動が早い検索が早いこと以外 atom で全く困ってないし快適なので悔しいけど、そこが致命的なので頑張って乗り換えようとしてる。(MS 製なので typescript のサポートがちゃんとしてるけど、も…

#golangkyoto 「そうだ、 Go 京都」で「Go に String::Random を移植した話」というタイトルで発表した

これは「そうだ、 Go 京都」で発表した内容をブログ用に起こしたものです。発表スライド自体は公開する予定はありませんが、内容としてはより詳しくなっているはずなのでご容赦ください。 developer.hatenastaff.com 直帰ユーザーにも分かるように最初に宣伝…

標準出力(標準エラー出力)の内容を一時的に Perl 変数に書き込みたい

Devel::Peek::Dump なんかは結果が標準エラー出力に表示されるだけなのでコード内で結果を使いたいと思うと標準エラー出力の出力先を変数へ書き換え、その後復元させてやる必要がある。 use strict; use warnings; use utf8; my $stderr; open my $temp, '>&…

システムコール勉強してる

特に作りたいものがないので陳腐化しない技術ということでシステムコール勉強してる。勉強してるうちに作りたいものができるか、そうでなければ将来困ったときに勉強したことでできたインデックスに引っかかり作ろうというモチベーションになることを期待し…

alecthomas/kingpin でテスタビリティの高いCLIツールを作る

flagでは素朴すぎるし、巷で言及されてそうなコマンドライン引数オプションのパースライブラリはちょっとしっくりこなかったので、なんか良いのないですかと聞いたら alecthomas/kingpin っていうのを教えてもらったので使ってみた。 github.com 感触として…

レガシーソフトウェア改善ガイドを読んだ

レガシーソフトウェア改善ガイド (Object Oriented Selection)作者: クリス・バーチャル,吉川邦夫出版社/メーカー: 翔泳社発売日: 2016/11/11メディア: 単行本(ソフトカバー)この商品を含むブログを見る 入社以来比較的新し目のプロジェクトしか触ってこな…

TypeScript2.1.4 で導入された `keyof` キーワードと `in` キーワード、そして Lookup Types と Mapped Types

keyof キーワード key とオブジェクトを受け取りプロパティの値を取り出す関数を考えます。 function getProp(obj: {}, key: string) { return obj[key]; } この関数使って変数を宣言すると型推論では返り値は any になってしまいます。 const urara = { age…

TypeScript2.2でのmixinサポート

TS2.2 では Improved support for mixins and composable classes と称してmixin への対応が入る。 とは言え mixin などのキーワードが入るわけではなく、あくまで型サポートが入ることにより関数での mixin の実現が容易になる程度である。 github.com The …

私的TypeScriptとの関わり方ガイドライン

初めて書く時困りそうなトピックごとに TypeScript との関わり方を示していく。導入や書き始めのハードルを下げるのが目的なので意識高いことは言わない。 https://github.com/remojansen/logo.ts 対象読者 ゴール 基本姿勢 何故そんなこといい加減な感じな…

正規表現とバイトコードとInstOpと部屋と私

メモ書きに近いです。 正規表現のバイトコードを見る "regexp/syntax" を import して pattern := `a|b` exp, _ := syntax.Parse(pattern, syntax.Perl) prog, _ := syntax.Compile(exp.Simplify()) fmt.Println(prog) 的な感じで見られる。 0 fail 1* rune …

おっちゃん!いっちゃんええ tsconfig.json くれや!いっちゃんええやつ!!

TL;DR github.com これ extends オプションについて 次期 typescript から動く。少なくとも今 npm install typescript@latest で入れた typescript@2.1.4 では動かないけど、 npm install typescript@next で入れた typescript@2.2.0-dev.20161207 では使え…