naoki86star

インターネットの片隅でなにかしら書いてみる

今までのプログラミングとClojureプログラミングとを比べてみる(アルゴリズム視点)

最近のCodilityのtaskをネタにして直接的にプログラミングできる形の説明で一題考えてみます。 前置きとそれにかかる説明 ネタにするtask内容作るアルゴリズムはこんな感じ。 整数の配列Hが与えられている。X-Y軸平面では以下のように表現できる。例1python…

VPS間遅延測定

前置き 最近は海外VPSの量も減らしてきました。*1 VPS間の通信遅延なんかは、netdata+fping w/ grafanaでだいたい評価できるのだけども、ちょっと数字をだしてみたくなったので自前測定。 原理 IPv4/udp で、ノード間を片方向独立で測定 送った側の送信時刻…

maxminddb-reader by clojure

...単にjavaメソッド呼び出してるだけレベルだけども、今度はmaxminddb試してみておく。Getting Startedで入れた環境で、Maxmind-DB-Reader-javaのinstall情報を元に.clojure/deps.ednに追記してclojure起動する。 :deps { org.clojure/clojure {:mvn/versio…

dpdk + openvswitch on intelのベアボーン(XCY J1900?)

先々月購入してみたintelCPU1G4ポートのPCで、dpdkを動かせそうだと思っていた。helloworldサンプルとかポートの認識とか簡単な動作はすでに見ることができていた。 今度は、openvswitchにはdpdkで動かす機能があるようなのでそれを試してみることにした。do…

gobgp + flowspec by clojure (java...)

gobgp経由のflowspecこんどはclojureで呼び出せるかやってました。 clojureと銘打ってますが、grpcのコアな部分・protobufとかはjavaライブラリに依存することになります。それゆえ、調べごと・実装のほとんどすべてはjavaと格闘することになりました。 java…

ProjectEulerの67番をclojureで書いてみる

clojureへのネイティブ感ないままに書き下してみる*1(2020/1/27) timeを覚えたのでupdate (def input-file "p067_triangle.txt") (def numbers (map (fn [x] (map (fn [x] (int (bigint x))) (clojure.string/split x #" "))) (reverse (clojure.string/spli…

voltdb-client by clojure

clojureというjava-based lips系言語を使ってvoltdb-serverにつないでみるvoltdbのワイヤプロトコルを全部書くとかいうのでなく、voltdbのjarライブラリをインポートしてそのメソッドを呼ぶという方法、つないでレコード読み出す単純機能レベルなのでまんまj…

maxminddbのupdateのこと

こういうこととかこういうこととかでMaxMindってところのIPデータベースとそのライブラリを使わせてもらったりしてます。ubuntuもPPAってのを追加することでapt経由でライブラリインストールできるので手間いらずで使えたりします。 が、IPデータベースであ…

pi/pi2 + HDMI->VGA変換アダプタ

秋葉原通った時にパーツ屋さんでHDMI->VGA変換アダプタ見つけたので一つ購入した。 raspberry pi2はいままでmicroSDにosを書き込むときにssh有効化して最初の起動でDHCPで拾われたアドレスを見つけてログインするアノ手段でやってたのでディスプレイをつなげ…

Fibonacci数, 再帰

先日やってみたFibFrogの問題は、自分の中での興味が大きくなりました。フィボナッチ数がどうのこうのというより、問題のルールにあったフィボナッチ数を条件にして次が進める、とか当てはまる、とかいうことが場合に、その組み合わせを探り当てるというのは…

Fibonacci number, Codility

最近Codilityというサイトでプログラミングの再履修(?!)してたりします。 Lessonsには、項目毎によく知られるアルゴリズムの説明のPDFが置いてあったり、10いくらかのタイムトライアル問題に挑戦させてくれます。アルゴリズムの正確性と、スケーラブルな速…

JLine

voltdbのコードをサーフしていて、sqlcmdがJLine | jline.github.ioての使っていると知りました。jlineての初めて知りましたがいろいろよそでも使っていそう使えそうです。 jline2のほうに、見た目わかりやすいexampleがのほうにあったのでそれをちょっと動…

sflowtool のコードをいじってみる(2)

今日はsflowtoolに、マッチングフィルタの組み込みをやってました。通常ですとデータベースにインポートして集計なり、sflowtool -lの出力をgrepするなりで、フィルタ・集計の機能は外部の専用機能にまかせるのが妥当です。けども結構フィルタも都度考えて書…

sflowtool のコードをいじってみる

sflowtoolにはtcpdumpで保存したpcapから読み込むオプションあります。個人的にはこれが非常に便利と思っていてよく使います。pcapファイルは多くの場合サイズが大きくなるので残そうとするなら圧縮しておくこと多いと思います。なのでこんなコマンドライン…

XCY J1900 4*lan barebone

XCY J1900 4*lanベアボーン(4GB DDR3L RAM+32G SSD+150WiFi)てのを買いました。*1これ買った動機はあとのほうに書きますけど、これを選んだのは、類似品のなかでamazonで書かれているレビューが他より多かったからです。良し悪し自体はともかく最低限動作…

Link Layer Discovery Protocol

vMXでevpn-vxlan試していたときとか、ICMP58再現のときにcumulus使ってみていたら、LLDPってプロトコルが脇からよく目に入ってきた。ナンデスカこれってことで調べた。 junosの設定exampleみるとよく set protocols lldpとか入っていた。cumulus(3.7.0)つな…

ICMP58 type2(Packet too big)

ICMP58 Type2(code0)というのを目にした。ナンデスカこれってことで調べたら、IPv6は中継装置ではフラグメントしない代わりにこのままじゃ通せないよって通知するために仕様化されているらしい。この仕事していながら次々と色々無知無勉強であると感じる。 I…

(PC引越しにそこそこの時間使うのもなんだかな。。。)

職場でPCの交換を求められて、必要なファイルの引越しをやりました。そのときにそのPCで動かしていたVagrantのVMひとつはキープしたかったのでexportして別のPCの、もう今度はそのままvirtualboxにimportしようと、はじめました。とりあえず、vagrant…

evpn-vxlan with vMX(eval)

先日のこのときにvMXで次はvxlanを試してみることを考えました。のですが、四苦八苦していて、VXLANの理解不足・JUNOSの理解不足があり(これを改善するためにやっているにせよ)、凡ミスにもはまりこみ結構時間たってしまいました。それでも単純なケースで動…

vMX(eval)18.2 on eve-ng

vMX(eval)18.2R1.9をeve-ngで動かしたときのメモです。 当初、vMX(eval)18.2R1.9をeve-ngで動かそうとしてうまくいかなかったです。どこがか、というと、サービスポートに一番単純なinetの設定をしてpingが飛ばない。show interface ge-0/0/0としてもtxカウ…

IPv6/udpでのフラグメント

IPv6で1500byte overのudpを投げてみると、例えば3000byteで投げてみると、ちゃんと届きます。このときやっぱりパケットはMTUサイズに起因したした分割が発生しています。 import socket UDP = somewhere, someport MESSAGE = "*"*3000 sock = socket.socket…

gobgp + flowspec by nodejs

python使ってgobgpにflowspec投入するを試してみた後、今度はnodejsではどうか?やってみた。nodejsはサーバサイドをスクリプトだけで構築するのに選択肢のひとつに持っておくといいかなぁ、と考えているので。 最初、@grpc/proto-loaderとゆうのを使えば co…

gobgpd on vultr

gobgpdにfull route与えてみた。vultr Tokyoロケーションでいつものbirdの代わりにgobgpd動かしてみた。 そうしたらいまさらながら、メモリが厳しい、ことが分かった。birdだと512Mインスタンスでも取り込みとroute参照とかなんとかいっていたのが、gobgpdの…

ordering flowspec by python via gobgpd

gobgpのgrpcとかbgpのflowspecとか見てきた流れで、ならばgobgpdつかっているときにcliスクリプトからflowspec投げるには?ということで、とりあえずできるようになる要点をピックアップ。デーモンconfigurationではafi-safi-name = "ipv4-flowspec", afi-sa…

junos-eznc

vmxも試してた流れで、今日は、junos用のpythonライブラリを味見。ubuntu18側で、 pip3 install junos-ezncvMX側で、 root# set system services netconf ssh [edit] root# set system login user admin authentication plain-text-password New password: R…

gobgpd + grpc + python in Oct/2019

ひと月ちょっと前より説明しやすいworkaroundが見えたので書いておきます。実は2年位前のここをそのまま真似たら悪くない結果だったです。OS:ubuntu18.04 python3(2でもいいと思う) gobgpd:2.9.0 grpc:pip3でインストール pip3 install grpcio grpcio-toolsp…

bird2.0.6 ; flow6でうまくいかなかったこと

birdでrtbh/flowspecをやってみた流れで書きます。 blackholeコミュニティないし/flowspec+コミュニティを付与した経路(/32)を送出するノードをTriggerと称したとき、そのTriggerノードがダウンしたら、その経路(=指示)は消えてしまいますです。なので、Tri…

BIRDでremotely triggered blackhole(+ flowspec)

このときのノード構成で、ルータをvMXに変えて、ついでにIPv6でも試してみる*1。コミュニティ投げるほうはBIRDのまま。 動機というかきっかけというか 前にVXLAN試したあとにもいろいろ読んでいて特に tech.fjct.fujitsu.com 読んでいたらもうすこしVXLANが…

vThunder on VirtualBox

A10社のThunderにもvmがあると知った。平凡な手持ちの環境で雰囲気だけでも味わうべくPCのVirtualBoxにインストールするということをやってみた。 動機 ddosプロテクションの機能で知られている(と思ってる)A10Thunderの仮想イメージをダウンロードできたの…

eve-ng用のhda.qcow2をVagrantから作る

eve-ngというネットワークエミュレーション仮想環境SWが公開されてます。そこには自作のVM(qemu)をaddonの形で登録できたりします。VMの作成手順などもかかれていたりしますが、基本はkvmとかのVMファイルを変換する感じだと思います。 自分は、あまりXwindo…