ウェブエンジニア珍道中

日々の技術的に関する経験を書いていきます、脱線もします。

homebrewを使用したkotlinの環境構築の覚え書き

kotlinを仕事で使いそうなので、とりあえず動く環境を作りました。 JVM言語のためコンパイルにjavaが必要だったりしてコマンド一発という感じでは無かったのでメモっておきます。 方法 最初にjavaを入れるため必要なので caskroom/versionsというものをbrew…

typescriptでデザインパターンを書く -Prototype-

今回はprototypeパターンを書いてみました。 prototypeパターンとは 既に作っているインスタンスから別のインスタンスを作るパターンです。 メリット 扱うオブジェクトの種類が多すぎる時に管理しやすい オブジェクトを30個作って扱う必要がある際にそれぞれ…

vuexっぽい仕組みをvuex使わずにRxjsで実装してみた

github.com 久しぶりの更新です。 今回はvuexを使わずに下の図を参考にして、それっぽい仕組みでマークダウンエディタを作ってみました。 コンポーネントに対する通知等はrxjsを使って実装しています。 サンプル テキストを入力すると、HTMLでプレビューを表…

typescriptでnodeのfsを動かそうとしてハマったこと

覚え書きとして。 typescript上でfsを動かしてファイル操作をしようとしましたが、「そんなもの無い」と言われて四苦八苦したので解決法を残しておきます。 @types/nodeをインストールして、nodeの型定義ファイルを入れます。 npm install @types/node node…

コードを簡単に整形できるvim-easy-alignを雑に紹介する

vim

github.com vimでコードの列を簡単に揃えられるプラグインがあるので紹介します。 といっても僕が使っているのはこのプラグインのほんの一部分だけです。きっともっとすごい機能がありますが使いこなせてないので紹介しませんmm インストール .vimrcに以下を…

typescriptでデザインパターンを書く -Singleton-

github.com 今回はSingletonパターンを書いてみます。 Singletonパターンとは アプリケーション内でインスタンスを一つだけ生成することを保証するデザインパターンです。 new Hoge()で作る度に別のインスタンスが作られるというのを制限します。 サンプル …

TL; DRを雰囲気だけで知った気になってたので調べてみた

TL;DR 概要とか要約とかそんな意味かなって思ってたけど、調べてみたら若干意味が違った。由来はもっと違った。 TL;DRとは? チームの一人がissueを書く際にこの表現を使っていて、「そういえばきちんとした意味知らねーな」と思ったので調べてみました。 li…

モチベーション革命 稼ぐために働きたくない世代の解体書を読んだ

モチベーション革命 稼ぐために働きたくない世代の解体書 (NewsPicks Book)作者: 尾原和啓出版社/メーカー: 幻冬舎発売日: 2017/09/27メディア: Kindle版この商品を含むブログ (1件) を見る 今回はこの本を読んだので感想を書いていきます。 ちなみにKindle …

サイトの速度が話題になってるから、ブログの速度も気にしてみた

最近話題のサイトの速度 最近dev.to(Qiitaの海外版?)が爆速すぎるという話がよくあって、アクセスしたら「ローカルのファイルでも見てんのかな」ってくらい爆速で爽快だった。 www.itmedia.co.jp 阿部寛さんの超シンプルなページとどちらが速いのかなんて…

typescriptでデザインパターンを書く -Template Method-

今回はtypescriptでTemplate Methodパターンを書いてみようと思います。(3種類目) github.com Template Methodパターンとは 親クラスで処理の概要を決めて、具体的な処理は小クラスで書いていくデザインパターンのことを言います。 例えば親クラスが「楽器…

4Kディスプレイを作業ディスプレイにしてみたい

※導入はまだしていません 今日こんな記事を読んだ。 www.atmarkit.co.jp この記事によると大きすぎるモニタは見上げることになって辛いとか、消費電力が多いとか注意する点はいくつかあるが、40インチの4Kディスプレイは生産性が上がるらしい。 画像や動画編…

ts-nodeでCLI上でのtypescriptの検証がめっちゃ楽になった話

typescriptでデザインパターンの勉強をしているのですが、コンパイルがとても面倒くさい。 webpackにts-loader入れてコンパイルして検証をしていたのですが、ts-nodeという便利なモジュールがあったので紹介します。 CLI上で検証・勉強したりするにはとても…

typescriptでデザインパターンを書く -Adapter(委譲)-

www.te-nu.com の続きです、まだお読みで無い方はぜひ読んでみて下さい(ダイレクトマーケティング) 前回はAdapterパターンを継承で書いてみましたが、委譲による実装方法もあるので作ってみたいと思います。 継承との主な違い 継承では既存のクラス、今回…

typescriptでデザインパターンを書く -Adapter(継承)-

typescriptでデザパタを書いてみます、今回は二回目(一回目で失踪しなくてよかった) リポジトリはこちら github.com 参考にしている本はこちら 増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売…

ITエンジニアのための「人生戦略」の教科書 ~技術を武器に、充実した人生を送るための「ビジネス」と「マインドセット」~ を読んだ

タイトルが長い… ITエンジニアのための「人生戦略」の教科書 ~技術を武器に、充実した人生を送るための「ビジネス」と「マインドセット」~作者: 平城寿出版社/メーカー: マイナビ出版発売日: 2017/02/23メディア: 単行本(ソフトカバー)この商品を含むブロ…

rubyでサンプルデータを作る時に便利だったArray#sampleの覚書

Rubyで開発中、サンプルデータ等を用意する時に役立つメソッドがあったのでメモします。 Arrayクラスのインスタンスメソッドであるsampleメソッドというもので、「配列の中からランダムに返す」という機能です。 [1,2,3].sample => 3 # 毎回変わる 真偽値を…

typescriptでデザインパターンを書く -Iteratorパターン-

増補改訂版Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 51人 クリック: 762回この商品を含むブログ (397件) を見る 以前この本を読んでデザインパターンを勉強して…

RailsでSlimを使った時に起こる「開発環境だけ見た目が崩れる問題」の解消

問題について https://github.com/slim-template/slim-railsを使って開発をしていると、特定の条件で開発環境下(development)でのみ見た目が崩れる減少が起きていました。 長らく原因がわからず解消できませんでしたが、先日ようやく何とかできたので紹介…

builderscon tokyo 2017行ってきた -2日目-

www.te-nu.com の続きです。2日目行ってきましたのでレポート。 朝イチの1発目のセッションは思いっきり寝坊したので2つ目から見ました。慌てて特急に乗ったら日吉駅通りすぎるし。くそう。 見に行ったセッション(午前) 小さく育てて始めるコンパイラ buil…

builderscon tokyo 2017行ってきた -1日目-

buildersconとは buildersconは「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。buildersconではトークに関して技術的な制約はありません、特定のプログラミング言語や技術スタックによるくくりも設けません。 必要なのは技…

tmuxのバージョンを見るコマンドが他と違う感があったのでメモ

tmux -V これで見ることができました。 一般的には-vや--versionですが、tmuxに関しては-Vのようです。 あんまり見ない。 ちなみに-vは「詳細なログを出す」オプションらしいです。 tmux-client-PID.log と tmux-server-PID.logがカレントディレクトリに作ら…

はてなブログに固定ページがあったので試してみた

固定ページとは? 固定ページを作成できるようにしました(はてなブログPro) - はてなブログ開発ブログ はてなブログでは、有料プラン「はてなブログPro」利用者向けに、独立した固定ページを作成できる機能を追加しました。投稿した順に時系列で扱われる通…

Rubyのcoerceメソッドについて

Rubyの勉強していたらNumeric#coerceメソッドというものを見つけたのでメモ 機能 全ての数値オブジェクトに対して使えるメソッドで、引数で与えられた数を自分と同じクラスにして自分とセットで配列で返すものだそうです。 hoge = 1.6 hoge.coerce(5) => [5.…

ansibleに*.retryファイルを作らせない方法

ansibleの実行に失敗する度に生成されるファイルで、失敗したホストが一覧で入っています。 .gitignoreで無視したりしても良いのですが、管理するサーバが少なかったりするとメリットも少なく邪魔なので作らせないようにしました。 といってもansible.cfgに…

2017年上半期振り返った

気がついたら2017年半分終わってたよ!!!! ってことで少しだけ振り返り。 といっても別に記録している訳ではないのでTwitterの呟きをさかのぼってみた。 …うん、ロクな呟きしてねぇな。ラーメンの画像アップしすぎだろう。2日連続とか。 やったこと(技術…

gitで編集したファイルのみaddするコマンド覚書

git

gitを使って開発していてブランチを行ったり来たりすると、 あるブランチにはaddしたくないような新規ファイルが出てきました。 個別にgit addを行うのは面倒なので、まとめて行う方法を調べてみたらありました。 git add -u -uオプションつけるだけでOKです…

改めてRubyの整数と浮動小数点数についてまとめた

はじめに 基礎からRubyの勉強をし直そうということでプログラミング言語 Rubyをガッツリ読み直していると、普段何気なく使ってる数値も深く書かれているので少しまとめます。 数値について 全ての数値オブジェクトは Numericクラスのインスタンス。整数であ…

Docker for MacでRubyの検証用環境をサクッと作る

はじめに Rubyの勉強を家でしている時に「これ実際に動かさないとわからんな」ということが度々あります。 Macだと homebrewや rbenvを使って環境構築をする場合が多いですが、今回はMacに直接インストールしたくないと思いDocker for Macで作りました。 敷…

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

レガシーソフトウェア改善ガイド (Object Oriented Selection)作者: クリス・バーチャル,吉川邦夫出版社/メーカー: 翔泳社発売日: 2016/11/11メディア: 単行本(ソフトカバー)この商品を含むブログを見る 本書は古くて保守や追加開発などが大変なソフトウェ…

mysqlのインストール直後にログインできない問題について

久々にCentOSにインストールしたら詰まったのでメモ。 症状 インストールして起動後ログインができない パスワードもわからない。 環境 mysql Server version: 5.7.18 CentOS version 6.7 対応 インストール時に仮のパスワードを発行しているようなので sudo…