DockerコンテナへのJDKへのインストールが失敗する

1か月前は普通にできていたDockerコンテナ(Ubuntu)へのJDKのインストールが失敗するようになった。 Err:186 http://220.152.35.154:80/data/02c924ae5a628323/archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk amd64 8u181-b13-1ub…

RxJSを使い、配列のデータを1件ずつ待ちを挟みながら処理していく。

前回の記事をRxJSを使って書き直したような感じの内容。 前回との違いは元になるデータが配列ってところくらい。 private messages = []; private messageArray = [{message: 'テストメッセージ1'}, {message: 'テストメッセージ2'}] const delayObservable …

Promiseを使って非同期の処理を直列に処理する方法。

4~5年くらい前にPromiseがイマイチ理解できずにコールバックのネストで済ませてしまった問題をようやく解決できた。。。 Promise.resolve() .then(() => { return new Promise((resolve, reject) => { setTimeout(() => { // 何か処理を書く resolve(); }, 1…

Clojureで特定の条件になるまで待つ

この例だと10秒待つ感じ。 if の条件を関数とかにして引数でもらうようにすれば大体のパターンに対応できる。 (defn wait-10sec [] (loop [i 0] (if (< i 10) (do (Thread/sleep 1000) (println i) (recur (+ i 1)))))) これはなんかライブラリがありそうな…

ループの途中でreturn(break)したい

気が付いたら前回のポストからすでに2年弱。早いもんですね。。。。 Pythonでいうところの objs = [{"a": 1, "text": "test 1 message"}, {"a": 2, "text": "test 2 message"}, {"a": 3, "text": "test 3 message"}] for o in objs: if o["a"] == 3: return …

Selmerを使ってみる

Hiccupにどうしても慣れることができなかったので、Djangoにインスパイアされたと言われるSelmerがどんなものか軽く動かしてみることにした。 project.cljの:dependenciesに以下を追加 [selmer "1.0.7"] resource/templates配下に layout.html user/login.ht…

ループを回して配列に値を追加する

Pythonだとこんな感じの処理をClojureで書くとどうなるかパッとでてこなかったのでこれもメモ >>> b = [] >>> for i in range(0, 10): ... b.append({"v": i}) ... >>> b [{'v': 0}, {'v': 1}, {'v': 2}, {'v': 3}, {'v': 4}, {'v': 5}, {'v': 6}, {'v': 7},…

forで2重ループ

ネストさせて重ねるものだと思ってたけど違ったのでメモ。 この辺はちょっとわかりづらいな・・・・。 user> (for [i (range 0 10) n (range 0 10)] println (str "i=" i "n=" n))) i=0n=0 i=0n=1 i=0n=2 i=0n=3 i=0n=4 ・ ・ ・ i=9n=6 i=9n=7 i=9n=8 i=9n=…

Webページの内容(ソース)を取得する

ただ単純にWebページのソースを文字列として取ってくるだけなら (slurp "<URL>") と、これだけでOK User-Agent等を指定したい場合なんかはこんな感じでやるらしい。 (slurp (-> (java.net.URL. url) .openConnection (doto (.setRequestProperty "User-Agent" "<User-Agent文字列>"))</user-agent文字列></url>…

Clojureでデータを指定のキーごとにまとめる

user> (def data [{:type "key1" :value "key1-value"} {:type "key1" :value "key1-value2"} {:type "key2" :value "key2-value"} {:type "key3" :value "key3-value"}]) こんなデータを、:typeの値ごとにまとめたい(SQLでいうところのGROUP BYみたいなこと…

Emacs(CIDER)でClojureファイルのコンパイルエラーチェック

C-c C-kと押すとエラーの部分に赤の波線を引いてくれた。

REPL上でのnamespaceのリロード

project.cljのdependenciesに [org.clojure/tools.namespace "0.2.11"] を追加して REPL上で user> (require '[clojure.tools.namespace.repl :refer [refresh]]) user> (refresh) とやればできる。 ちなみに、refreshした時に出るエラーで EOF while readin…

cider-mode で M-.(cider-find-var) が効かなかった

理由はなんてことなくて単純にns読んでませんでしたってだけでした。 なんてことないけどホントよく忘れる。。。 user> (in-ns 'sample01.core) #namespace[sample01.core] M-x cider-jack-in してから毎回コレうつの面倒だし、 REPL起動した時のデフォルト…

herokuのClearDBの接続情報用の環境変数からclojure.jdbc用の接続情報を作る

ClearDBの接続情報は環境変数のCLEARDB_DATABASE_URLに入っているので 正規表現で各項目を抽出しmapを作る。 (def database-infos (re-find #"([a-z]*)://([0-9a-zA-Z]*):([0-9a-zA-Z]*)@(.*)/([0-9a-zA-z_]*).*" (env :cleardb-database-url))) (def mysql-…

vimでvim-fireplaceをインストールしてreplで式を評価するまでの手順

新しく配属された人がvim使いだったので replを使って式を評価するってところまでを調べてやってみた。 まぁそうそう使うことは無いだろうけど、必要になった時のためにということで。 plug.vimインストール curl -fLo ~/.vim/autoload/plug.vim --create-di…

flash-get!を使っているページがreplで動かない

ログイン用の簡単なHTMLを出すページをreplとかで動かそうとしたんだけど ClassCastException clojure.lang.Var$Unbound cannot be cast to java.util.concurrent.Future clojure.core/deref-future (core.clj:2184) こんなエラーが出て動かなかった。 print…

Clojureの内包表記

こんなテーブルから +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | id | bigint(20) | NO | PRI…

PythonのワンライナーでWebサーバーを立ち上げる

webサーバーがすでに立ち上がってるときなんかに超便利 カレントディレクトリがドキュメントルートになる # python 2.6.6で確認 python -m SimpleHTTPServer

Windowsのコマンドラインからzipファイルを作る

20個くらいのファイルを加工してからzip圧縮する といった処理で使った。 #cygwin上から実行 $ 7z a test_file.zip test_file.csv 参考: 7-Zipコマンドラインでいろいろ - ぐりにたんくd.hatena.ne.jp

MySQLでCSVの指定のフィールドをロードする

フィールド名を書くところに@dummyのような 捨てる変数を割り当てるとうまくいった。 こんなことも出来たんだな。 これだとわざわざcsvを編集しなくてもいいから便利。 mysql> LOAD DATA LOCAL INFILE '/tmp/test_table.csv' INTO TABLE test_table FIELDS T…

SQL脳向けのmongodbの集計クエリ

mongodbのaggregateフレームワークに全然なれることが出来ない。 10年以上かけて出来たSQL脳にはハードルが高いよねコレ。 SELECT group_key1, group_key2, group_key3, sum(num_field1) as num_field1_sum, min(num_field2) as num_field2_sum, max(num_fie…

memcached-toolが無いときにmemcacheのキー一覧を持ってくるスクリプト

いや、memcached-tool使おうよって話なんだけど サーバーに手が出せないことってあってですね・・・・ #!/bin/sh SLEEP_INTERVAL=0.1 MEMCACHED_HOST=localhost MEMCACHED_PORT=11211 sh -c 'echo "stats items"; sleep '$SLEEP_INTERVAL' ; echo "quit"' | …

IE9で表示崩れするが、開発者モードを立ち上げると表示崩れがなくなる。

IE9で表示崩れがおきると報告を受けたけど 自分のIE9(開発者モード立ち上げ時)では表示崩れが起きないという事例。 実行されているjavascriptのコードにこんなコードがあり "use strict" ... if(console.log) { ... } IE9ではconsole APIに対応していないら…

Ubuntu14.04でThinkPadのキーボードを使うときの設定

/usr/share/X11/xorg.conf.d/20-thinkpad.confを作成して以下を記述 Section "InputClass" Identifier "Trackpoint Wheel Emulation" MatchProduct "TrackPoint" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "EmulateWheel" "true" Option "…

Drupalのタブを新しく追加する方法

↑こんな感じに追加する方法。 $item = array( 'link_path' => 'sandbox', 'link_title' => 'sandbox', // リンクのタイトル 'menu_name' => 'main-menu', // main-menuに追加 'module' => 'mymodule', 'router_path' => 'sandbox' ); menu_link_save($item);…

カスタムモジュールを定義する際の.infoファイル内のfiles[]

.infoファイルに files[] = test.inc と書いた場合にはクラスかインターフェースの宣言しか 読み込まれないらしい。 フツーのfunction読もうとしたら「そんな関数ねーから」って怒られた。 参考: https://drupal.org/node/542202#files

Windows8にknife-soloをインストールする。

win32-apiのくだりでハマって2時間ほど消費。 下のサイトがどストライクで役に立った。 マジでありがとうございます。 それにしても、Windowsでrubyってホントにつらい。 参考: http://ict.matchy.net/2014/04/windows-vagrant-knife-solo-20144.html 4/21追…

display:noneになっている要素に対してscrollTopの指定は効かない

スニペットじゃないけど、 2回ほどはまったので。。。。orz

jerseyで要素がひとつしかない配列を返却したときにJSONのレスポンスではオブジェクト型になってしまう問題の解決方法

以下の文をweb.xmlに追記する。 <init-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </init-param> これ、半年くらい前にやった気がするんだけどな。 参考: http://stackoverflow.com/questions/13575280/jersey-json-array-with-1-element-is-serialized-as-object

Axisのプロジェクト実行時に出る「要求されたクラス(javax.activation.DataHandler と javax.mail.internet.MimeMultipart)が見つかりません。Attachmentサポートが利用できません。」への対応

Axisを使って生成したクラスを実行する際にこんなエラーが出ていたので 要求されたクラス(javax.activation.DataHandler と javax.mail.internet.MimeMultipart)が見つかりません。Attachmentサポートが利用できません。 / [en]-(Unable to find required cl…