プログラミング言語Raku(旧:Perl6)のオンリーカンファレンスが開催されるらしい

インターネット見ていたら発見してしまったのですが、ついにプログラミング言語Raku(旧 Perl6)のオンリーカンファレンスが開催されるようです。

conf.raku.org

今までのRakuはPerlのカンファレンスであるYAPCやPerlConでPerl5とセットで話される機会がほとんどでしたが、ついに初めて単独カンファレンスとなります。 今のところはトークはLTしか応募されていないようですので、みなさん応募しましょう!!(??)

Online, August 7, 2021

とのことです。 以前のThe Perl and Raku Conference 2020 cloudの際はEDTでスケジュールされていたので、日本からリアルタイムでみる場合は夜になるかと思います。


参加チケットは無料ですが、個人で寄付をすることが可能です。

面白いのはTシャツを発送することができないので、Tシャツの素材が配布されており、各自でプリントアウトしてくれ!!!という新スタイルで運用しています。僕もTシャツほしい。

f:id:anatofuz:20210516191406p:plain

ちなみに The Perl and Raku Conference 2021 cloudもやるっぽい。

w3schoolsのjQueryの練習問題解いた

jQuery全然知らないのでちょっと触ってみようと思っていた。 webサイトエイヤで構築するのも良さそうだったけど、軽い練習問題みたいなのをとりあえずガンガン進めてみたかったので、適当にググって出てきたサイトの問題を解いた

w3schoolsのチュートリアルの問題なので、まずはチュートリアルを上から眺めた。 eventの種類とか完全にわかっていなかったので、なるほどねと言いながらみていた。 jsなので自分のブラウザでも動くし、ワンクリックでどうこう動いて体験がいい。 www.w3schools.com

問題自体は穴埋め形式なので、問題文とサンプルコードを見て当てはめていく感じ。

www.w3schools.com

実際に解いた(問題として提供されていた)のは次のもの

  • Selectors
  • Events
  • Hide and Show
  • Fade
  • Slide
  • Animate
  • Stop
  • Get
  • Set
  • Add
  • Remove
  • CSS Classes
  • CSS
  • Dimensions

Ajaxチュートリアルにはあったのだけど問題にはなかったのでペラHTML作って練習するかーみたいな感じ。 jQuery完全に理解した!というわけではないのだけど、コードを読めるレベルの知見はある程度出たかなという気がする。 次は軽くなんか例題を書いて動かしてみる予定。

git commitしたら別のブランチに自動でcherry-pickするPerlスクリプトかいた

今は開発環境でM1 macを使っているのだけれど、色々あってプルリクを送りたいブランチと自分の手元のブランチが異なっているケースがある。ようはM1専用のcommitを積んでいるが、これをプルリクに含めたくないケース。

最近はgit慣れてないのもあって、commitする度にcheckoutしてcherry-pickしていたのだけど、めんどうなのでスクリプトを書いた。 自分が今作業しているブランチをhoge_m1という命名規則にして、プルリクを出すブランチをhogeにするみたいな運用。suffixで分類する。

#!/usr/bin/env perl
use strict;
use warnings;

my $git_branches = `git branch`;

die "$git_branches\n" if ($git_branches =~ /fatal: not/);

my $current_git_branch = `git branch --show-current`;
chomp $current_git_branch;

my $target_branch;
if ($current_git_branch =~ /(.*)_m1$/) {
    $target_branch = $1;
    die "not found $target_branch branch" unless ($git_branches =~ /$target_branch/);
}

system("git","commit");

system("git", "checkout", $target_branch);
system("git", "cherry-pick", $current_git_branch);

system("git", "checkout", $target_branch);

オチ

git rebase勉強した方が早かった気がする

js/jqueryでHTMLの箇条書きの行数をだす

こう言う感じのHTMLがあったとして

<ul id="hoge">
  <li>aaa</li>
  <li>bbb</li>
  <li>ccc</li>
  <li>ddd</li>
  <li>eee</li>
</ul>

<li>が何個あるか知りたいって時のオペレーション。知らなかったのでメモ

生のjs

document.getElementById("hoge").children.length;

jQuery

$('#hoge li').length

singularityのbind

singylarity結構便利でデフォルトでホームディレクトリと/tmpがコンテナにバインドされる。 とはいえ/mnt/以下にデータを書き出したい場合などは、singularityのコンテナに明示的に/mnt以下などをバインドする必要がある。

ちなみにバインドしなくてもシンボリックリンクでなんとかなるかなと思ったけど、それはsingularityの内部から解決することができなかった。

sylabs.io

bindの方法自体は↑のドキュメントにある感じで極めてシンプルで、 --bindの後ろにhost:containerの順でパスを書くとマウントされる。

$singularity run --bind /mnt/hdd1:/hdd1 hoge.sif

あんまし使っていないけどdockerと同じでread onlyにするフラグなどもあるらしい。

よくみたら環境変数SINGULARITY_BINDディレクトリをカンマ区切りでおくと自動的にバインドされるらしい。

docker-compose upじゃなくてdocker compose up

なんか今日docker for macがアップデート入った。 今まで通りdocker-compose upしたらこんな感じの表示が出た

$ docker-compose up
Docker Compose is now in the Docker CLI, try `docker compose up`

なんかdocker compose upしてみろとか描いてあったので使ってみた

$ docker compose up
[+] Running 0/1

もうちょっと煌びやかな感じの表示が出ていた。 それっぽいコンテナの起動ログが出た後に

The new 'docker compose' command is currently experimental. To provide feedback or request new features please open issues at https://github.com/docker/compose-cli
Error response from daemon: Duplicate mount point: /xxxx/hoge

とかでて死亡していた。実験的か。

docker-composeはpython製で、dockerコマンド自体はgolang製だったと思うのだけど、docker compose upはどっちの言語で実装されているのだろうと思って、メッセージにあったURLをふむとどうもdocker compose upgolangらしい。 docker-composeいれるのめんどうなのでdockerコマンドに内包されると便利そうだけど、微妙に機能が違うとかありそう。しばらくはdocker-compose upで問題ない気がする。

HTMLのデータ属性

知らなかったのでメモ

developer.mozilla.org

developer.mozilla.org

www.webprofessional.jp

実際にMSDNのページにある例題を手打ちして確認したのだけど、JavaScript*. dataset.*で値を取れるのなかなか面白かった。 webアプリ読んでいて、データ格納用のattrかな〜みたいなざっくりした認識だったのだけど、まさかデータ属性というまんまの名前がついていたとは...。

JavaScriptなんでもできるな...と思っていたところ、CSSもdata属性に応じて色々当てられるので、自分が思っていたよりも奥深い気がする。MSDNチュートリアル全部やるべきだな...。