2020-01-01から1年間の記事一覧

クロネコヤマトをCUIで追跡するコマンドを書いた

2021/01/03 追記 queueが自分で打っててめんどうだったのでlsに変えました というわけでクロネコヤマトから情報を取ってくるツールを書きました。kuronekocatという名前です。 ほしかったthinkpadが届くまでひたすらクロネコヤマトの追跡ページをリロードし…

最近awesome-perlに追加されたモジュールを眺める

これはPerlアドベントカレンダー23日目の記事です。 昨日はnanto_viさんで「Perl の wantarray 関数で返り値の扱いを確認する」でした。 さて15日目の記事でmoznionさんの方で話があったawesome-perlですが、ここ数週間でかなりプルリクが飛んできていました…

Growiのバックアップツールをgolangで書き直した

anatofuz.hatenablog.com ↑で書いていたtoolをgolangに書き直しました。ついでに最新のGrowiのスキーマにも対応しました。 mercurialからGitにリポジトリを変換したので、試したい方はこちらをご利用ください。 github.com 使い方 $./growibackup ${revison.…

mac OS BigSurでplenvを使いたい俺たちは

TL;DR $cd ~/.plenv/plugins/perl-build; git pull PerlのBigSur問題 plenvはPerlのソースコードをローカルに持ってきて、ビルドを行う仕組みになっています。 BigSur以前のmacOSでは正常にビルドができましたが、BigSurでは次のようなエラーが出てしまいビ…

enPiTの受講時とTAのおもいで

これは全enPiT Advent Calendar 202016日目の記事です。 さっと思い出とTAの話を書いてみましたが、TAの方は老害っぽくなってしまったので申し訳ないっす....。 思い出 enPiTは僕たちの世代からenPiT2になり、学部講義に移行になりました。僕自身は色々あっ…

Perl 5.32の連鎖比較(Chained comparisons)はどの様に実装されているのか

この記事はPerl Advent Calendar 2020と琉大 Advent Calendar 2020の11日目の記事です。 PerlはPerl5になって長いですが、現在の最新の安定版のバージョンは5.32です。 Perl5.32で取り入れられた(厳密には5.31からですが)のおもしろ機能として連鎖比較(Chain…

GrowiのCLIクライアントを書いた

これは琉大 Advent Calendar 2020の10日目の記事です。 昨日はid:unimarimoさんの天穂のサクナヒメをプレイした感想 でした。 まだまだ琉大アドベントカレンダーは空きがあるので皆さんの参加お待ちしております!!! growi さて僕が在籍している研究室では主…

学科サイトの静的化の裏側

これは琉大 Advent Calendar 2020の5日目の記事です。 昨日はid:anatofuzさんのvirshの学科ラッパーie-virshをRustで再実装したでした。 まだまだ琉大アドベントカレンダーは空きがあるので皆さんの参加お待ちしております!!! 学科サイトのリプレイス 以前こ…

virshの学科ラッパーie-virshをRustで再実装した

これは琉大 Advent Calendar 2020の5日目の記事です。 昨日は未承諾広告※ shangliさんのクラスター計算機を作るときに気をつけたいことでした。 まだまだ琉大アドベントカレンダーは空きがあるので皆さんの参加お待ちしております!!! 学科システム さて僕た…

あるgitリポジトリのcommitterを全員出す

なんかRustのリポジトリに何人関わったか調べたくなったので、ググったらあった。 $git log --format='%aN' | sort -n | uniq 参考文献 www.commandlinefu.com

rustコンパイラのデバッグではrust-lldbはだめ

今日明日やっている河野先生のコンパイラ読み会で今年はRustを読んでいるけれど、rust-lldbはどうもrust compilerレベルの巨大なプロジェクトのデバッグは微妙っぽい。 どうも見たら公式がNone of the LLDB work is upstream. This rust-lang/lldb wiki page…

Growiで使っているmongodbのupgrade

普段運用しているgrowiがバージョン4.2.0がリリースされ、mongodb 4.4をサポートする様になったのでアップグレードしてみた。 github.com アップグレードに関してはドキュメントがあるのでドキュメントの通りにやっていくのが良い。 docs.growi.org 推奨され…

singularityを使ったRustコンパイラのデバッグビルド

学科システムにはsingularityというコンテナサービスを導入している。動かしているpodmanと比較するとこのあたりが便利と思っています。 ceph fs上でも結構高速に動作 root権限がいらない podmanもrootlessではあるが、ceph FS上だと遅い... singularity she…

Perlでgrowiのバックアップファイルからmarkdownを生成する(version1くらい)

研究室ではwikiとしてgrowiを使っています。 growi.cr.ie.u-ryukyu.ac.jp まぁ便利なのですが、growiはデータベースがmongoDBなので、心もとないという意見や、せっかく階層構造を持っているのでmarkdown単体で保存しておきたいという意見が出ています。 も…

pukiwikiのattachファイルをutf8なファイル名に変換する

pukiwikiではファイルアップロードをattachプラグイン経由で実行可能になっている。 attachでアップロードしたファイルは、index.phpがあるディレクトリの、attachディレクトリ以下に次のようなファイルとして保存される。 A5C7A5B8A5BFA5EBBFAEB9E6BDE8CDFD…

RustのXML操作ライブラリのquick_xmlを使ってみた

なんとなくRustを勉強している中で、virshのxmlを編集する必要が出てきたため、ググって一番最初に見つかったquick_xmlを使ってみました。 github.com quick_xmlは特徴としてRustのXMLライブラリの中でも特に早く動くらしいです。 cargo.tomlへの設定 0.20.0…

調子に乗ってentrypoint.shのshebangを省略しない

元気に$podman runしたところ、下記のようなエラーが出た standard_init_linux.go:211: exec user process caused "exec format error" 一体何を...バイナリでも壊したかな.......みたいな気分だったが、Dockerfileで最後のCMDとして指定している CMD ["./en…

Rustで文字列が数値かどうかの判定

String変数を.parseしてOkかErrかどうかで判定可能。 たぶん<u8>じゃなくて<u16>とかにすると範囲が拡大する。 let name = match name.parse::<u8>() { Ok(_) => String::from(format!("{}-{}", user_name, name)), Err(_) => name, }; この例だと数値が来ていた場合はuse</u8></u16></u8>…

ISUCON10に出場して再起動試験で泣いてきました

ISUCON10にチームINJとして学生枠で出場し、結果としては学生本戦出場枠には入っていましたが、再起動試験で失格でした。 isucon.net 今年は最後の学生枠みたいなところがあったので、まぁ思い出づくりも兼ねて id:unimarimo (jogo)と研究室の後輩でありシス…

openldapはldapsの代わりにldapを使っていても死なない

今日のツラミポイント。 学科で運用しているOpenLDAPサーバー(slapd)の設定(slapd.conf)で詰まったやつ。 別で作成したslapdをプロバイダにして、いままでプロバイダだったslapdをコンシューマーにしようと、設定を書いていた。 overlay syncprov syncrepl r…

ubuntu上にOpenLDAPの構築

学科というか琉大では学生のアカウント管理にLDAPを使っている。 学科の場合はセンター(大本)のLDAP情報を同期した、学科システム上に構築したslapdをLDAPサーバーとして活用している。 今年は学科システムの式年遷宮の年なので、Centosで従来動いていたシス…

netplanは拡張子にうるさい

netplanがapplyしても全然使い物にならなくてキレていたが拡張子が問題だった。 netplanの設定ファイルはYAMLで書くのだけれど /etc/netplan/ccc.yml だとだめで /etc/netplan/ccc.yaml じゃないとだめらしい。こういうので人生消費したくない........

新鮮なFedora32にwordpressを構築するansbile

ということで書きました。OSの課題で使ういつものやつです。 ie.u-ryukyu.ac.jp もともとは先輩が書いていたものですが、今年はシステム更新などでapacheを学科から追放したい気分があったのでnginxでリライトしました。といいつつ大体先輩のコードをそのま…

apacheからnginxへの移行時の証明書周りの設定

歴史的な理由もあり学科のweb周りはapacheが元気に稼働しているケースが多い。 とはいえもうapacheの面倒を見るよりはnginxに移行したほうが何かと便利そうなので、現在apacheからnginxへの乗り換えを仕込んでいる。 先週の台風の際に学科システムへのダメー…

ansibleでpackageのinstall時にloopは使わないほうが良い

教えてもらったので。 ansibleでyum,dnf, apt を使っていくつかのpackageをまとめてインストールする際に、癖でloop(with_items)を使っていたのだけど、これは非推奨らしい。 というのも - name: install dnf packages become: yes dnf: name: - "{{ item }}…

macのopenコマンドでURLっぽいファイルを指定したときの挙動

並行で学科のWordPressからコンテンツをダウンロードするくんを書いていた所、ミスでカレントディレクトリにhttp:/みたいなディレクトリを生成してしまった。 $ ls http:/ $ tree . └── http: └── anatofuz.net └── test.html 2 directories, 1 file こんな…

大乱闘障害復旧バトル2020/08/01-2020/08/02

ということで学科システムに障害が発生していました。具体的に言うと学科内から外に行けない、一部VMに学内からでもアクセスできないなどでした。 この障害は突然発生したものではなく琉大工学部で定期的に発生する計画停電によるものです。 原因としては3つ…

流れに乗って @xtetsuji さんからの出題をやってみる

ということで流れに乗ってみました。 毎週火曜日のペアプロ講習用に作成した問題を昨晩の #Perl入学式 オンラインミーティングで紹介したので Twitter でも紹介。情勢が収束したらまた懇親会でピザを食べつつお題に興じたい。 pic.twitter.com/n68luVPNEg— O…

シグナルでプロセスが終了されるとぴえんするコマンド作った

最近YouTubeでPIENのプレイ動画をよく見るので作りました pienの後に渡したプログラムがシグナルで死んだ場合はぴえんの歌が再生されます github.com なんとなくRustの勉強も兼ねてRustで書いてます。 地味にbrewでもダウンロードできるようになってます。 $…

apache -> nginx -> gitlab-ceのプロキシを止める

追記 2020/07/15 8080ポートはgitlabのrailsアプリケーションのポートなのだけど、ここに直接プロキシするのではなく、gitlabのHTTPのルーティングを行っているgitlab-workhorseの8181ポートに繋げないと駄目だった 自分が在籍している学科ではオンプレ上にg…