#プログラミング原体験

blog.utgw.net papix.hatenablog.com 小中高と家に家族共用のパソコンはあったのだけれど、プログラミングはしようと思っていなかった。 だいたいPCでやることは、近所の本屋のPCコーナーに売ってある「サルでもわかるDVDコピー」とか、PSPエミュレーターの…

singularityを使ったLaTeXのビルド環境を学科GitLabに構築した

自分がubuntuに作業環境を変えたこともあるのだけれど、最近の新入生のMacBookの容量が125GBとMacTeXをいれるには心もとない状態だったので、GitLabのCI/CDでLaTeXのビルドをしようとしていた。 paperist/alpine-texlive-jaにパッチをあたものを使っていたの…

ubuntuでdf: /run/user/1000/doc: Operation not permitted とか怒られる

なんかdfするとdf: /run/user/1000/doc: Operation not permittedとか怒られる。 $ df df: /run/user/1000/doc: Operation not permitted Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 3214652 2404 3212248 1% /run /dev/nvme0n1p2 95986385…

Ubuntuのdiscordアプリのフォントを変える

Ubuntuのdiscrodのフォントが奥ゆかしいことになっており、変更してみた。 BetterDiscordのインストール Discordアプリをいい感じに編集できるBetterDiscordをインストールする。 linuxの場合はgistを読んでコマンドを打つ。 gist.github.com $curl -O https…

Ubuntuで撮影したスクショを日付順に整理するコマンドかいた

自分しか使わなさそうツールです。 Ubuntuではスクショを取ると、~/Picturesに Screenshot from 2021-01-03 08-28-12.pngみたいな名前でスクショが保存されます。 放置しているとスクショが溜まって大変なので、年/月/日でディレクトリを切って、そこに移動…

おそるべきプログラミング入門サイトExercismをやってみた

ヤバいサイト見つけちまったかもしれん。52個の主要プログラミング言語について、練習問題がそれぞれ100個くらいあってCLIまで整備されてる。で無料。https://t.co/eFdUnytK9B— ノーン (@nkowne63) 2021年1月5日 Twitterで見かけたのでやってみました。 exer…

snapでVLCをインストールする

ubuntuでよく使われているパッケージツールのsnapを使って動画再生ソフトのVLCをインストールする。 snapはGUIも持っていて「ubunntu software」からアクセスすることが出来る。 雑にVLCで検索すると、なんか2つ出てくる。 違いは何かというと、下のopen sor…

hg webを開くコマンドのlinux対応

ubutu引っ越しシリーズ。 個人的に使っていたツール周りをlinuxに移植している。 anatofuz.hatenablog.com このエントリで紹介していた個人ツールのhg-browseをlinuxに対応させた。 といっても、macOSのopenコマンドをxdg-openに書き換えればいいだけなので…

Ubuntuデスクトップ環境を構築した

ということで昨日のハング事件はやはりSSD側の問題らしくて、kernelパラメーターをいじれば回避出来るとの神情報をもらったので、linuxデスクトップを復活させた。 @AnaTofuZ さんのエラー雑にぐぐるとAPST (Autonomous Power State Transitions)を無効にす…

macOSのMacUTF8からUTF8にリネームするPerlスクリプト

linuxに引っ越しシリーズで書いてみたやつ。 もともとmacOSのBooksディレクトリに電子書籍を日本語ファイル名で置いていた。Linuxに作業環境を移すためにファイルの転送をする場合、実はmacOSのutf8は微妙にutf8と異なるmacUTF8なので変換をする必要がある。…

クロネコヤマトを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…