なっく日報

技術やら生活やらのメモ

KotlinのDelegation(デリゲーション、委譲)とView adapterパターンの相性がよい件

最近少しずつ仕事でKotlinを触っているので、ちょっとしたメモ。 Delegation(デリゲーション、委譲)が便利 KotlinにはDelegationというデリゲーション、委譲(まんま)の実装を簡単にしてくれる機能があります。 Delegation - Kotlin Programming Language…

MacのVimでESCまたは<C-[>押した際に日本語入力をOFFにしたい(JISキーボード編)

自分向けのメモです。 MacVimあるいはターミナル上のVimでESCAPEまたは<C-[> を押した際に日本語入力をOFFにする方法です。 Karabiner-Elementsを使う いろいろ調べましたがこれしかなさそう。 brew cask install karabiner-elements でインストールします。 設定</c-[>…

CSVファイルの特定の列を空文字にするコマンド

c0,c1,c2,c3,c4 c0,c1,c2,c3,c4 c0,c1,c2,c3,c4 c0,c1,c2,c3,c4 c0,c1,c2,c3,c4 の列の数を変えずにc1だけ消して、↓のようにするにはどうするか? c0,,c2,c3,c4 c0,,c2,c3,c4 c0,,c2,c3,c4 c0,,c2,c3,c4 c0,,c2,c3,c4 cutコマンドを使うと cut -d, -f 1,3- a…

Digg Readerの代替RSS Reader

2018/03/26で愛用していたDigg Readerが終了してしまうとのこと。 で、使用感の似ている代わりのRSS Readerを探したのですが、なかなか見つからず。。 alternative.me medium.com らへんの記事を見たのですが、FeedlyとかInoreaderとかは使用感がちょっと合…

【オレオレ】ターミナル環境2017変更点

こんにちは!こんにちは! 2018年ですが、2017年に書きかけだった記事をアップしておきます。 昨年久々にターミナル上で、とあるシステムの開発をした際に得られた知見です。 ※ リモートのLinuxサーバにSSHでアクセスして開発してました。普段は手元のPCでIn…

Windowsでシェルスクリプト書きたいときはShellJSが使える

久々のブログ更新となります。 シェルスクリプトをWindows用に移植したい・・・という場面でShellJSが便利だったというお話です。 ShellJSとは? github.com Node.jsでシェルスクリプトが書ける!(※実際書くのはJavaScript。APIが限りなくシェルスクリプト…

fishシェルはじめました

これは(ターミナル開発環境のメンテに疲れた|zshの設定に挫折した)人向けにfishシェルをオススメする記事です。 自分がzshで手放せなかった機能達 プラグインマネージャ・・・zgenを使っていました テーマ・・・pureというシンプルなテーマを使っていました …

静的ファイルを配信する場合にはパスにバージョンを含めるのがいいんじゃなかろうか

最近、思っていることを。 なお、バージョンとは言ってますが、Gitのコミットハッシュ値でもUnixタイムスタンプでも何でもいいです 静的ファイル配信パターン WEBアプリで静的ファイルを配信するパターンは以下3つあるんじゃないかとなんとなく思っています…

Windowsを少しでもMacの環境に近づける

最近転職しました。 で、現状、PCがWindowsしかない + VirtualBoxとかVM使う系禁止という縛りがあるわけです。 というわけで最近のWindowsをMacに近づけられないかという記録をば。 Homebrew(Cask)が恋しい Chocolateyというブツがありました。 chocolatey.o…

ターミナル派の人はHyperTermに近いうちに乗り換えると良いかもしれない

HyperTermというターミナルソフトウェアが大変興味深かったので、そのご紹介を。 hyperterm.org HyperTermとは? 公式サイトで JS/HTML/CSS Terminal と謳っている通り Electron + React + Redux製のターミナルです。 他のElectronアプリのご多分にもれず、J…

Presentational and Container Components

yukidarake.hateblo.jp 結構日にちが経ちましたが、まだボチボチ読まれているようなので、この記事の補足など。 Smart and Dumb Components -> Presentational and Container Components medium.com Redux作者の記事ですが、途中で呼び方を変えた模様。 Pres…

主人が英語の勉強を始めて185日が過ぎました

yukidarake.hateblo.jp yukidarake.hateblo.jp の続きです。 $ date '+%j' 185 だいぶ空いてしまいましたが、185日過ぎてもぼちぼち続けているのでその報告も兼ねて。 気づいたら今年の折り返し地点過ぎてましたね! 3月:モチベーションの低下 中だるみでし…

グローバルでgitフックスクリプトを仕掛けると`go get`がちゃんと動作しなくなる可能性がある

go getが毎回止まるという現象に悩んでいて、その解決策を見つけたので書いておきます。 原因 yukidarake.hateblo.jp これで、通常のGitHubとGitHub Enterpriseとで、メールアドレスを使いわけるということをやっていたのが原因でした。 解決策 残念ですが、…

Visual Studio CodeのKeyBindingをCTRL+Nを↓、CTRL+Pを↑に変更する

しばらくサボってましたが、今日からは再び頑張りたい。。 諸事情により、Visual Studio Codeを触り始めました。 が、違和感を感じたのが各種ウィンドウでCTRL+N、CTRL+Pのキーバインドが効かないこと。 ググッてみたところ github.com ↑のEmacs向けのキーバ…

Mochaで--delayフラグを使って初期化完了までテストを実行しないようにする

--delayフラグ? http://mochajs.org/#delayed-root-suite で知りました。 setTimeout(function() { // do some setup describe('my suite', function() { // ... }); run(); }, 5000); のように書いて、mocha --delay test と実行すると、run()が呼ばれるま…

Perlのワンライナーでよく使うテクニック

あまり時間がないので5分で! ファイルの中身を置換する ↓はカレントディレクトリ配下のJSファイルのfooという文字列をbarに perl -i -pe 's/foo/bar/' **/*.js 例 findと組み合わせたりもできます。 カレントディレクトリ配下のJSファイルのパスを置換をす…

ESLintでファイルの中身によって設定ファイルを切り替える

yukidarake.hateblo.jp の続きで、実際やってみたという話です。 雑なメモですがご容赦ください。 ESLint plugin作成 ここではeslint-plugin-fooとしておきましょうか。 package.jsonとindex.jsを作ります。 eslint-plugin-fooという文字列があれば、.eslint…

SVNの.svnディレクトリを一発で消す

2016年にSVN!? しかも、Subversion 1.7より前の話!? (1.7以降はルートにのみ.svnディレクトリがあるので今回みたいなことは起きない) というのはさておき、困っていたデザイナーさんがいたので救いました (あと、特に目新しい技術ネタもなかったので…

Ansibleのshellモジュールでヒアドキュメントが使いたいときー

が、あると思います。 shellモジュールでヒアドキュメントを使うと・・・ github.com コチラのissueにコメントがありましたが、 - shell: | cat <

Google Cloud Vision APIを試してみた

画像を送ったら、画像の中身を解析して、顔とか物とかを判別してJSONで返してくれるというヤツです。 昼休みにざっくりと触ってみたのでメモ。 下準備 こちらのブログが詳しく、大変参考にさせていただいたのでみてください(雑) syncer.jp ざっくりいうと …

ウチのチームでKPTが根付いた話

本日はあまりにもネタがないため、今所属しているチームでKPTが根付いた話をしたいと思います。 気づいたら1年くらい続いておりすっかりチームの文化になりました(これは本当に素晴らしいことだなと思ってます) KPTとは何か? 振り返りのフレームワークの…

オライリー本を全冊購入するといくらなのか?(ワンライナーバージョン)

コチラを見て、頭の体操程度で。 qiita.com こんなコマンドで curl -s https://www.oreilly.co.jp/catalog/ | perl -lnE 's/.+"price">([\d,]+).+/$1/ && (tr/,//d, $c++, $s+=$_); END{ say "合計 $c冊 $s円"}' 結果 合計 445冊 1533060円 結構増えてますね…

Reflect.applyとFunction.prototype.applyの速度を計測してみた

ESLintのprefer-reflectというルールをONにした 最近、Node.js v6が出たのでバージョンアップがてら、ESLintのprefer-reflectというルールをONにしました。 そして、既存のソースに早速ESLintをかけたところ・・・ 警告ががが 既存のソースに早速ESLintをか…

Invokeを少し触ってみた

Invokeとは? github.com Python製のタスクランナーだそう。make, rake, gulpみたいな。 ↓みたいにタスクを書いて、invoke clean buildみたいに実行できると。 from invoke import run, task @task def clean(docs=False, bytecode=False, extra=''): patter…

Google Cloud DNSで設定ファイルをimport/exportする

Cloud Deployment Manager にはGoogle Cloud DNSを設定する機能がないっぽいですが、代わりにgcloud dnsコマンドが使えそうです。 コマンド例 エクスポート ↓のコマンドを打つと gcloud dns record-sets export -z example-com-zone example-com-zone.yml ↓…

Slackで絵文字をskin-toneを変えた絵文字全てをクリップボードにコピー

本日は時間がないので一発ネタで。 mihyaeru21.hatenablog.com でお見かけしたネタだと思うのですが、ワンライナーでいけます。 EMOJI= no_good perl -E '$a.=":$ENV{EMOJI}::skin-tone-$_:"for 2..6;say$a'|pbcopy クリップボードに入ったモノをSlackに貼り…

ESLintで拡張子をみてテキストをゴニョゴニョできる話

久しぶりにESLintの話題を。 公式ドキュメントに書いてあるのですが、ESLintプラグインでは拡張子毎にprocessorを設定できるそう。 http://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins processor is 何? このeslint-plugi…

Github Pages + Markdownで楽々プレゼン生活

qiita.com の記事の内容ほぼままなのですが、 自分的にはライフチェインジングな発見だったのでご紹介。 Github Pagesとremarkを組み合わせるとプレゼン資料作成が捗るよというお話です。 Github Pagesとは? みなさん知っていると思いますが、Github上で、y…

一発ネタ。ワンライナーでDynamic Inventory

このままでは使えないですが、何かのヒントにはなるかもしれません。 GCPなんかで、AnsibleのDynamic Inventoryを使う場合、↓の公式ページによれば http://docs.ansible.com/ansible/guide_gce.html#gce-dynamic-inventory gcp.pyでやるのをオススメしてます…

本日NginxでSSLの設定をする際に参考になったサイト

本日、バックエンドのJenkinsおじさんをSSLで終端させるためにNginxを設定したので、その過程のメモを。 多分、どなたかの参考にはなるはず・・・ Mozilla SSL Configuration Generatorが便利 Generate Mozilla Security Recommended Web Server Configurati…