北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

rust の publicsuffix は遅過ぎる

rust で Public Suffix List を扱うクレートの速度が遅過ぎるので、パッチを書いた。最右部のラベル ( .jp .com など) でルールを区分けして、後は愚直に線形探索という方法だったので、そりゃあ遅すぎるよねって感じ。 github.com 実は Perl の Domain::Pub…

今日は Roppongi.rs #1 の日です

職場から近いので Roppoingi.rs に来ました。自分のためにメモを残しておきます。ハッシュタグは #roppongirs 。 Rustがいかにエンジニアの脳を楽にさせているかをC++初心者が語る〜関数篇〜 / @natsu_no_yuki さん C++歴15年の初心者 rvalue reference, tem…

Strassen の行列積を求めるアルゴリズム

アルゴリズムイントロダクションで、行列積を求める奇妙なアルゴリズムを見つけたので rust で実装した。簡単のため、行列の表現には ndarray を用いている。 #[macro_use] extern crate ndarray; use ndarray::prelude::*; type Matrix = Array2<i32>; type Matr</i32>…

rustのsliceとlen()

こう書くと、 fn main() { let mut a = [1, 2, 3, 4, 5]; let x = &mut a[3..a.len()]; println!("{:?}", x); } こう怒られる。 error[E0502]: cannot borrow `a` as immutable because it is also borrowed as mutable --> src/main.rs:3:23 | 3 | let x = …

rustで「サイコロを転がす」を解く

最近 rust を勉強し始めたので、オフラインリアルタイムどう書くで一番簡単な問題(と思っている) サイコロを転がす を解いた。破壊的更新を戦略的に使えるのは、この程度の難易度のサンプルであれば書いてて大変気持ちがいい。 yhpg-rs/lib.rs at ord12rot…

rust の perl-xs を触る

rust の perl-xs なるリポジトリを見つけたので触ってみた。 Perl の carton と rust の cargo が動く環境1であれば、 README に書かれている通りリポジトリを clone してきて以下で簡単に試せる。 $ carton install $ carton exec -- 'cd t && perl Makefil…

トレイト境界の F: FnMut(u8) -> bool という記法について

rust で where の中でトレイト境界を書ける。そして、クロージャはトレイトで実現されている。ってことなんだけど、クロージャを表す型変数のトレイト境界の書き方はなんとも気持ちが悪い。 struct Cacher<T> where T: Fn(u32) -> u32 { calculation: T, value:</t>…

VSCodeからWSL上のRLSを使うメモ (2)

ある朝突然、 cargo test が VSCode Insiders から呼べなくなった。これを踏んでた。どうやら昨日の夕方に 1.36.0-insider がアップデートされて壊れたようだ(アップデートされた記憶はあまりない)。 github.com 以下に従って5月のビルド 1.35.0-insider …

VSCodeからWSL上のRLSを使うメモ

悲しいことにうまく動せていない。時間が解決してくれる気はする。 その1. Remote WSL環境 開発者版 VSCode insiders が必要。 VSCode とは別のアプリとしてインストールできるので気にせず入れて良い。Remote WSL 拡張を入れればそれで終わり。 その2 で使…

dockerで古いバージョンのperlを使う

Docker Hub に perlのイメージ が上がっていて便利なのだけど、残念ながら 5.24 までしかない。検索してみたけど他に良さげなイメージもなかった。 仕方がないので 自分でビルド をして上げておいた(自分で使う用)。幸い、以下のリポジトリにいい感じの Do…

LTSのubuntuを16.04から18.04へアップグレードした

以下に書いてあるとおり。 wiki.ubuntu.com 基本的に sudo do-release-upgrade を叩いただけ。sshd の config を置き換えていいかみたいなことを聞かれたので、触った覚えがないので不安を覚えつつ置き換えた。後は、質問に答えながら延べで数時間放置してい…

minillaは便利

songmu さんの WEB+DB の記事を読むのが良い。 gihyo.jp リリーステストで、 Hoge.pm requires 5.010 due to explicit requirement で死んだときは Perl version 指定が正しいか確認する。 // とか使ってると 5.8 系はサポートできないというか、流石に 5.8 …

CircleCIのsave_caheするPATHとdocker imageの相違

.circleci/config.yml に以下のように書いておいたら、ある時からキャッシュが効かなくなってハマった。 version: 2 jobs: build: docker: - image: perl:5.28 steps: - checkout - restore_cache: key: cacheminil-v1 - run: name: Install Minilla command…

mariadbのdokcer imageの10.2と10.3でmysql.dbが違う

https://hub.docker.com/_/mariadb 10.2 の方では、 MYSQL_USER で test_ データベースを作れない。 mariadb:10.2 の mysql.db 。 MariaDB [mysql]> SELECT Host, Db, User, Create_priv FROM db; +------+--------------+----------+-------------+ | Host …

【朗報】健康になるために酒を辞める必要はなかった

前回の健康診断で、高脂血症のため要治療というショッキングな結果が出た。どうせ医者に行けば禁酒しろと言われると思い、2018年は完全に酒を絶った。本当に一滴たりとも酒は飲んでいない。 そして一年後の健康診断の結果がこちら。 健康診断の結果 変わって…

django.urlsのコードリーディング

django ではURLのルーティングを django.urls パッケージで処理している。このパッケージのソースはなかなか読みにくいので、読むための手がかりを記しておく。 バージョンは2.1を仮定していることに注意1。 クラス階層 django.urls パッケージでは継承もイ…

今日は YAPC::Tokyo 2019 の日です

YAPC::Tokyo 2019 に来ましたので、自分用のメモを残します。 オープニング / @magnolia_k_ さん 拍手の練習 普段は 吉祥寺.pm してます Hokkaido, Kansai, Fkuoka, Okinawa と回ってきた Tokyo に戻ってきた 「報恩謝徳」 恩送り:誰かから受けた恩を他の人…

今日は YAPC::Tokyo 2019 前夜祭 の日です

YAPC::Tokyo 2019 前夜祭 LTソン presented by 吉祥寺.pm に参加予定ですので、自分用のメモを残します。 吉祥寺.pm 提供です トーク4本、LT6本 懇親会参加率が高い 4年続いている #yapcjapan と #kichijojipm 飛び入り歓迎 技術イベントスポンサーやってい…

WSL上でcircleci local executeをするための試行錯誤

ハマったのでメモ。 大前提として、 WSL と Docker for Windows をうまく連携しておく必要がある。 以下のような手順。 qiita.com ただし、 Bash on WindowsでDockerを使えて便利になったけど相対パスを指定すると不具合が出る についてはもっと楽な解決法が…

2018年までのまとめ

年末に書こうと思ってたけど、ニンテンドースイッチで遊んでたら書くの面倒になって書かなかったのだけど、まとめておかないと数年後には忘れてしまいそうなのでメモっておく。 2016年 子守 Haskell入門の執筆開始 12月に Surface Studio を買う 2017年 子守…

python3のmapはリストを返さない

cols_upper = map(str.upper, "a,B,c".split(",")) cols_lower = map(str.lower, cols_upper) for c in cols_lower: print(c) for c in cols_upper: print(c) python2 だと動く。 A B C a b c python3だと動かない。 A B C python3では戻り値がイテレータに…

MariaDBでPythonのmysqlclientモジュールをビルド

昔はそうではなかったようだが、最近は MariaDB のパッケージに mysql_config が入っておらず、そのままでは mysqlclient モジュールがビルドできない。 Mac の場合の対処法はここに書いてある。 stackoverflow.com Ubuntu (on WSL) の場合も基本は一緒。 $ …

今日は "GO GLOBAL" meetup #1 の日です

"GO GLOBAL" meetup #1 に参加していますので、自分用のメモを残しておきます。 コーディング試験Codility運用の実態と実績 / @k0000i さん コーディング試験とは : コンピュータサイエンスの理解度を見る amazon, Intel, EA など 多数の言語に対応。VBとか …

今日は Haskell Day 2018 の日です

Haskell Day 2018 に来ましたので、自分用のメモを残しておきます。タグは #HaskellDay です。 作りながら学ぶHaskell入門 / @igrep さん 会場、懇親会のスポンサーは IIJ 様 (ありがとうございます!) mmlh コマンドで各自進める 課題の自動添削、たまにヒ…

inline-java パッケージを WSL へインストール

ハマってガチャガチャしたので間違いあるかもしれないけどメモ。 まずjavaをインストール。入れるのは default-jdk のほうがいい気もする。 $ sudo apt install openjdk-9-jre-headless $ sudo apt install openjdk-9-jdk-headless jvm パッケージを入れるの…

今日は Roppongi.pm #1 の日です

六本木.pm に来ていますので、適当にメモします。 オープニング 吉祥寺.pm + Okinawa.pm = 六本木.pm 六本木で Okinawa.pm やればいいや 飲食自由、フリードリンク ハッシュタグは #roppongipm ラクダがピンクだった頃の思い出 / @yoshiyuki_kondo さん Cプ…

"アルゴリズムクイックリファレンス" のノート (2)

p.4 の貪欲法。素朴なアルゴリズムよりこちらの実装のほうが楽に思える。 github.com 前回の遅いアルゴリズムとの速度比較。 variance introduced by outliers が大きくていいのかは気になる。貪欲法の方が 2,000 倍以上速いので、むしろ前回の slow の実装…

"アルゴリズムクイックリファレンス" のノート

p.3 の convex hull の素朴解。 https://github.com/hiratara/hs-nutshell-algorithm-examples/blob/master/src/Main.hs 正しいかわからないので、plotしておく(案の定バグってたので修正してある)。 道具は datahaskell に従った。具体的には、乱数に mwc-p…

"The Elements of Statistical Learning" のノート

The Elements of Statistical Learning . chap. 2 supervised learning と unsupervised learning inputs predictors, independent variables, features とも言う outputs responses, dependent variables, targets とも言う quantitative qualitative : 有…

LTS-12.1でhpack-convertコンパイルできないんすよねー

そんなこともあろうかと、forkして lts-12.1 ブランチ用意しておきましたので。 github.com まあ、ただの変換ツールなので、古いLTSでビルドしても構わない気はするけど、新しいマシンだと ghc インストールさせたりするのだるかったので。 ということで、手…