ダメ人間オンライン

あまり信用しないほうがいい技術メモとか備忘録とかその他雑記

Puppeteerが強い💪💪💪

github.comヘッドレスChromeでスクレイピングが簡単にできる時代がきました。 スクロールしたら追加でコンテンツを読み込んで〜みたいなページをスクレイピングしたい機運がちょうど高まってたのでPuppeteer使ってみたんですがめっちゃ簡単に実現できて完全…

build.gradle.kts で良い感じに repositories をまとめたかった

build.gradle.kts のサンプルとかを見てると buildScript { repositories { google() jcenter() } } allprojects { repositories { google() jcenter() } } のように書いてるのを良く見るけど repositories に指定するものは一箇所でまとめて書いておきたい…

assertjで例外発生のテストをシュッと書く

Exception を throw する可能性のある method のテストを書く時今までは @Test(expected = NantokaException.class) とアノテーションをつけたり try { nantokaService.doNantoka(); } catch (NantokaException e) { assertThat(e.getMessage()).isEqualTo("…

gradle の warning がどこで出てるのかわからない時の調べ方

$ ./gradlew build とかして Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0. See https://docs.gradle.org/4.5.1/userguide/command_line_interface.html#sec:command_line_warnings こんなのが返ってきてど…

Spring Framework で空JSONを返したい

{}やんごとなき事情でこういう空っぽのJSONを返す必要がある場合には空っぽの response 用の class を用意して JsonSerialize annotaion をつけてやるのが楽。 @JsonSerialize public class NantokaResponse { } @RestController public class NantokaContro…

Spring Boot 1.5.x から 2.0.0 に上げた時にハマったこと1

Gradle の multi project で動かす時に1.5.x系では abstract project に対して、 bootRepackage.enabled = falseとしていたけど、2.0.0では、 bootJar.enabled = false jar.enabled = trueとしないとダメ。bootRepackage.enabled を bootJar.enabled に置き…

TokyuRuby会議09でLTしてきた

TokyuRuby会議に初めて参加してLTしてきました。LTした結果多くの方が投票してくれてLT王となりました!やったぜ!!いただいたLT王Tシャツ 副賞(?)のガオガイガーの日本酒!! LTのタイトルは「第一回 チキチキ 独断と偏見と狭い観測範囲の中から選ぶコミッ…

YAPC::Asia Tokyo 2015に行ってきた

今年は絶対にトークやるぞオラァ!と思って応募したけど残念ながら落選。納得の落選だったので仕方がない。 なので今年も普通に参加してトークを聞いてきました。トークが終わって移動中にトイレ行ってたら次行こうと思ってたとこが既に満席で入れないみたい…

PerlCasual #06に行ってきた

PerlCasual #06のLT枠で喋ってきました。 Perlcasual #06 from ダメ人間 (※考えているが確実に全て実践できているとは言っていない。)PerlCasualで喋るの初めてだったんですがふわっとした雰囲気で喋りやすくて最高でした!ありがとうございました!!!!!

ISUCON2014予選に参加してきた

念願のISUCONに初参加してきた。 チームメンバーは同僚のaskaさんとshiya氏で、「西日本世界チャンピオン*1」というチーム名で参加した。 予選までの準備 まずチーム名を考えるのに一ヶ月近く時間をかけた。最終的に満足のいくチーム名になって100万とった気…

The scrypt algorithm

scrypt(scriptではない)について調べた。何か間違ってたらご指摘下さい。ググらビリティが最悪すぎて情報を探すのにすごく苦労した。。 Proof-of-work BitcoinのProof-of-workではSHA-256が使われてるけど、LitecoinやMonacoinの場合はscryptっていうのが使…

いまさらBitcoinの仕組みについて調べてみた

Bitcoinって聞いたことあるけど「アーハン、ネット上の仮想通貨みたいなやつなんでしょ。あとなんかハッシュめっちゃ計算する必要があるとかなんとか」ぐらいの理解で 、「儲かる!」「いや、今はもう儲からない!」とかは耳に入ってたけどあまり興味もてな…

進捗どうですか?

js

進捗ダメです 大体インターネッツのせいでダメなこと多いので、人間から怒り口調で聞かれるより前に優しく聞いてくれるChrome拡張書いた。 dameninngenn/chrome-ext-shinchoku-san · GitHubウェッッッブページ開いた回数をカウントして指定した回数に達した…

YAPC::Asia Tokyo 2013に行ってきた&LT-THONで話してきた

今年もYAPC::Asia Tokyoに行ってきました。 前夜祭 LT-THONで話しました。 前半は前夜祭であるということをお伝えし、後半はここ一年ぐらいで書いたコードのことをいくつか話しました。 Yapc2013 ltthon from ダメ人間 誕生日ですっつってあんなに拍手もらっ…

mod_cacheとVaryヘッダ

mod_cahceで画像をキャッシュしてる場合は画像に"Vary: User-Agent"つけないようにしましょうという話 はい 外部ストレージで画像を管理してて、表示時に毎回その外部ストレージに取りにいかなくて済むようにフロント側でキャッシュしとくというのはよくある…

vim-airline使い始めた

vim

こんにちは、うすっぺら人間です。powerline 使ってみたいと思ってたけど ・全部の環境でfontにパッチ当てられるわけじゃないので悩ましい。 ・そんなことより将棋指そうぜ! というような感じで腰が重くて結局使ってなかった。最近powerlineと同じようなや…

ターミナルでカジュアルに使えるタイマー書いた

皆さんカップ焼きそば好きですよね。僕も大好きです。一平ちゃん最高です。カップ焼きそばと言えばお湯を入れて3分待つのが一般的だと思います。皆さんはどうやって時間計ってますか?僕はキッチンタイマーとか持ってないし買うつもりもないのでアナログ時計…

やったー!超キュートなHiveロゴを愛でながらブラウジングできるChrome拡張できたよー\(^o^)/

js

http://www.apache.org/ 事の発端 @tagomorisさんがHiveロゴがプリントされたTシャツを着てた ↓ 背中側が狂気に満ちてると感じた ↓ kowai ↓ 夢に出てきた ↓ 起きたらHiveロゴがとても愛おしく感じるようになってた ↓ もっと長い時間眺めていたい! ↓ どのペ…

unite.vim + perldoc.vim

unite-perldoc perldoc.vim 便利ですよね。僕も愛用させてもらってます。モジュール名の上にカーソルがある状態で K を入力するとドキュメントが見れるし :Perldoc HogeFuga としても同じように見れる。しかも補完も効く。ステキ。カーソルがモジュール名の…

unite.vimでbuffer一覧表示をシュッとさせたかった

vim

\前回のラブライブ!/ neobundleの導入ついでに使ってたプラグインが軒並みアップデートされたけど、:Unite buffer した時の表示がなんか賑やかになってたのでもうちょっとシンプルに表示するようにしたいと思ったのでした。 converter unite.vimのバージ…

すぐに超エキサイティンになれるGoogle Chromeの拡張をシュウウウウウウウウウウウウ

js

生きていればつらいことがある。 しかし、つらいからと言って簡単に投げ出す事は出来ないということも多い。みなさんもつらまってる時、よくなんとかドームで遊ぶと思う。 当然のごとく僕もそうである。最近つらい事がよくある。 そんな時のために、なんとか…

まんをじしてneobundle.vimに乗り換えてみた

vim

今までpathogen.vimを使っていたのをneobundle.vimに乗り換えてみました。 Vundleとかneobundle.vim使ってなかったのはpathogenで今そんな困ってないしなーって思ってたうえに、試しにやってみよっかなーって思った時になんかめんどくさそうだったからですね…

Amon2::Plugin::Web::PageCacheというのを書いた

レスポンスのHTMLをまるっとキャッシュするplugin書いた。書いたというか別のWAFで使ってたやつをAmon2用に書き直した。キャッシュ先はmemcachedです。dameninngenn/p5-Amon2-Plugin-Web-PageCache · GitHub やりたかったこと requestのpath毎にキャッシュす…

Solrで「undefined field text」って言われた時の対処

Solr弱者なもんで設定でハマったのでメモ。カラムを横断して検索するために問い合わせるクエリを q=field:value ではなく q=value で問い合わせて(dismax|edismax)で処理しようとしたら一生「undefined field text」って言われて困った。textって名前のフィ…

東京Ruby会議10に行ってきた&黒Ruby会議で話してきた

1/13,14の2日間に渡って開催された東京Ruby会議10に行ってきました。色々仕掛けがあってその中にノベルティのバッジをみんなと交換して全種類(全4種)コンプしよう!みたいなのがあったんですが、人気・不人気なバッジが当然あって僕は一番不人気なささたつバ…

HTMLタグがちゃんと閉じてるかどうかだけをチェックするやつ書いた

かるぱねるらさんの「HTMLのバリデーションをよしなにやりたくてHTML::Lint::Pluggable書いた - Perl Advent Calendar Japan 2012 Hacker Track」を見て、そういえば書きかけのHTMLなんとかあったと思いだしたのでとりあえずそれっぽくした。既存のモジュー…

TengでNULLをセットしたかった

UPDATE table_name SET hoge = NULL WHERE id = 100; みたいにNULLを入れたい時Tengでやるには $teng->update('table_name', { hoge => undef, },{ id => 100, }); のようにundefでいける。追ってみたらundefはundefのままSQL実行する前のとこまで渡ってきて…

YAPC::Asia Tokyo 2012に行ってきた&LT-THONで話してきた

今年もPerlのお祭りであるYAPC::Asiaに行ってきた。 こういうネームプレートをつけていましたが別にイジメられてるわけではないです>< LT-THON 今年はメイントラックとは別にLT-THONというHachioji.pmの方々が主催となって行ったイベントがあってそれがと…

アメッシュのシンプルなchrome拡張

js

東京アメッシュのchrome拡張書いた。dameninngenn/chrome-ext-amesh-simple · GitHub(2014/05/07追記) いまさらChrome ウェブストアで公開しました。 機能はシンプルに2つだけ。1. アイコンをクリックしたら現在のアメッシュで表示してる画像が見れる。 2. 2…

chrome拡張のpopup.htmlデバッグし辛い

chrome拡張のポップアップで表示させるページ、jsでconsole.log使ってもどこにも表示されないしエラー出てるかどうかもよくわからない。とりあえず、chrome-extension://chrome拡張のID/popup.htmlで開くとconsole確認することができた。