TP-Link AC1300のLinux向けデバイスドライバ

またこのシリーズ買ったのかよ。懲りないな。 でも安いんだもん。。。というわけで、AC600が動かなくなって困ったので、AC1300を買ってしまった。 Amazon当日配達で速かったし。大丈夫なのか日本の物流。今回はコミュニティの情報で十分足りてるので、そのメ…

世界一難しい数独、Alloyで解いてみた話と今。。。

Alloy Analyzerを使って11年前に解いた数独の問題を解き直してみたという話。 TL;DR 昔よりPCは速くなったし、自分も気持ちソルバを上手に使えるようになった。 速く答えを探すには、とにかく探さなくていいものは探すな。 経緯 過去にAlloy Analyzerを使っ…

TP-Link AC600のLinux向けデバイスドライバ

自宅のマシンをUbuntu 22.04にアップデートしたのだけど、毎回WiFiアダプタのデバイスドライバが標準搭載されていないのを忘れて右往左往している。そして毎回、あちこちから拾ってきたデバイスドライバのコンパイルバトルになるので、今回やったメモを残し…

「おっさんのためのModern C++入門ガイド」をZenn Bookにしてみた

C++

もしかするとWeb記事のままだと読みにくいかなとか思い、Zenn Bookにしてみた。 少しだけ内容を見直した(あまりに足りないかなというところだけ)がだいたいそのままの内容。zenn.devひどいところがあれば直していこうと思うのでよろしければご指摘ください。

おっさんのためのModernC++入門ガイド(草稿)

C++

みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文…

RISC-V原典 ざっと読みメモ

読もうと思っていたRISC-V原典を読む時間が少し取れたのでざっと読みしたメモを残しておく。 RISC-Vとは RISC-Vは過去のプロセッサアーキテクチャに対する反省をくりこんだ新しいプロセッサの命令セットアーキテクチャである。 RISC-Vの開発はRISC-V基金で成…

OpenModelicaを使って電気回路のシミュレーションをしてみる

マルチドメインモデリング環境である、OpenModelicaを使用した電気回路のシミュレーションの例を通して、その使用感や言語的側面に触れたいと思います。想定読者としてはModelicaに触れたことがない人で、バックグラウンドとして回路シミュレーションに多少…

MathJaxの試し書き2

下記のお題で書く。積分や分数を含む式。Q.169 ☆5次の極限値を計算せよ。Find the limiting value.pic.twitter.com/T9mOJmpvJN— どちゃ楽数学bot (@so_easy_math) 2017年7月26日 十分大きな については においてであるからより 感想 ここまで来たら何で書い…

MathJax記法の試し書き

はてながMathJaxに対応しているらしいので、試しに使用してみる。題材は下記の問題の解答を書くこと、としてみる。Q.127 ☆8 [高2鉄緑校内模試](a+b)(b+c)(c+a)=2^2016を満たす自然数の3つ組(a,b,c)は幾つあるか。— どちゃ楽数学bot (@so_easy_math) 2017年7…

sh/bashのパイプ/リダイレクションの使い方

sh/bashのパイプ/リダイレクションの使い方についてよく使いがちなものを理解できるようにまとめておく。 モチベーション:挙動がよくわからない シェルスクリプトに書かれているリダイレクションが理解できない。これまで、運用とかしてこなかったので人の…

つらぽよいsecure boot

つらぽよAdvent Calendarにネタを提供したわけでも何でもないんだけど自宅のデスクトップPCが壊れた。具体的に言うと、HDDがクラッシュした。 もうちょっと正確に言うと、動作真っ最中に子供がぶつかって倒してしまった。 昔のHDDと比べると、あのカツーン、…

Evalモナドを使って無限リストの並列評価

http://partake.in/events/9f226986-2812-441d-98b7-1f5cca9be432 にオンライン参加してきたので、Evalモナドを使った並列評価を行なってみた。 コード ナイーブな素数探索アルゴリズムです。指定された数以上の一定個数の素数を抽出します。 import Control…

モンゴメリ乗算の例

下記を参考にモンゴメリ乗算 - Wikipediaを参考に、サンプルとして、モンゴメリ乗算の計算をしてみる。`11*18(mod 169)`を計算する。単純に、 11*18 = 198 = 1*169+29で答えは`29`です。これをあえてモンゴメリ乗算でやってみる。モンゴメリ乗算は剰余算を減…

__builtin_ffsはどこへ行くのか?(続編)

GCのマークビット判定などに使用される__builtin_ffsというGCCコンパイラ拡張が気になったので 「__builtin_ffsはどこへ行くのか? - dec9ue's diary」って記事をちょっと前に書きました。続編です。さて、何の話だったかというと、__builtin_ffsとは Other …

Lucky Thirteen Attackの攻撃手法を説明してみるよ

Lucky ThirteenはTLS, DTLSのCBCモードを利用する暗号の脆弱性を突く攻撃です。具体的に言うと、CBCモードに対するPadding処理の弱い部分を狙ったPadding Oracle攻撃の一種です。その影響とか、脅威とか、対処法とかは結構いろんな所で説明されているのです…

__builtin_ffsはどこへ行くのか?

__builtin_ffsとはなにか?Other Builtins - Using the GNU Compiler Collection (GCC) http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Other-Builtins.html によると Returns one plus the index of the least significant 1-bit of x, or if x is zero, ret…

"volatile"をつけると値がレジスタに浮かない

チラ裏にでも書いてろ、って内容なので何ですが、、、C言語の変数にvolatileをつけたら値がレジスタにキャッシュされたままにならないね、と言う話を実際に確認してみました、と言う話。そのままろくに考えないでやってみます。まず、下記のような意味のない…

copying_gcという車輪の再発明

なんか、最近、「車輪の再発明をしよう」みたいな話がちょくちょくあるので、GCを再発明してみた。「車輪の再発明をしよう」の例: https://twitter.com/viscuit/status/288181884658257922…まぁ、再発明っていうか、スクラッチで書いただけなんですけど。 …

JHCのGC解説

GC Advent Calendarでは時間的に書けなかった、JHCのGCの解説をまとめる。 JHCのGC概要 JHCには下記3つのGCオプションがある。 GCなし BOEHM GC JGC このうち、上の二つはgc_noneによる実装であり、JGCはgc_jgcによる実装である。 この様な構成になったのは…

Haskell の GC を比較してみる

GC Advent Calendar 22日目の記事です。同じ言語に対する異なる処理系があれば、GCを比べてみたくなるのは人間のサガですよね。 今回はHaskellの2つの処理系のGCを比べて見ることにします。 ■ GHC(the Glasgow Haskell Compiler) Haskellの実行系といえばこ…

GHCソースコードリーディング勉強会 第1回 行ってきた

第0回に続いて、 GHCソースコードリーディング勉強会 第1回 #readghc に行ってきた。というか発表しました。発表資料: GCをみればRTSが見えてくる、かも。。。まー、ちょっと読み込み不足なところもあって、メンバー見たらかなりこわい人達だったので、これ…

Miller-Rabin法で擬素数を探す

Miller-Rabbin法による擬素数探索をHaskellで書いてみた。感想 1. 多倍長計算を気にせずできるInteger型素晴らしい! 2. とりあえず乱択のパラメーターを乱数にしているけど、IOモナド破壊しても大して困らなそうなので破壊したいと思います。改善点 1. 実際…

Euler 4 を Haskell で高速化してみたが、、、

下記のような記事があって、HaskellとOCamlの速度を比較してみた - let start programming = fun life -> life * 100;;キャミバ様とガリグ先生がOCamlでコードを戦わせていたようだったので、こりゃ勝てないと思ってHaskellで高速化をしてみた。 結果、ぼく…

for による組み合わせ回路

昨日の回路を少し改善してみた。 functionとforを組み合わせることで超シンプルな回路として書けた。 wireで実装するよりシミュレーション速度も速い。(仕方ないか。。。) 合成後の速度は分からないが、、、コードなぜ自分がわざわざこんなことをやっている…

組み合わせ回路に挑戦

自作回路を作ってみた。 使用したのはicarus-verilog。このicarusシミュレータはWindowsでも動作するのだが、ためしてみるとシミュレーションにめっちゃ時間が掛かる。実装してみたのは冪剰余演算。512bit整数で3回ほど回すシミュレーションをしてみたのだが…

はてな記法

いままで使ってなかった。。。。 ちょっとはてな固有でやだけど楽にハイライトできるから使ってみるかな。。。 -- Simple example for Bang-Patterns leak import Control.Monad import Data.Foldable ( foldr' ) import System.IO main :: IO () main = do …

世界一難しい数独@Alloy(cont'd)

下記のような記事を見つけた。 星11個の数独の問題をAlloyで なんと以前の記事を見てdisktnkさんという方が「遅すぎる」と検証してくださったようだ。。。 Lets's Compare! ぼくの実行結果 Executing "Run run$1 for 13" Solver=sat4j Bitwidth=0 MaxSeq=0 S…

入門 Verilog

長らく堪えていたが、耐え切れなくなってポチってしまった。夏休みの積ん読リスト入り。 【送料無料】入門Verilog HDL記述改訂 [ 小林優 ]

世界一難しい数独、Alloyで解いてみたよ(RocketNews24から)

RocketNews24さんで 本当に解ける人いるの? フィンランド人数学者が作った “世界一難しい数独” が発表されるという記事があったんで以前のAlloyの記事で使ったモデルを流用して解いてみた。 about alloy Alloy is a language for describing structures and…

Control.DeepSeqを使って正格評価(訂正版)

何が酷いって、記事を見なおしてみたらfoldrとfoldlのロジックを間違えてる。コレは死ねる。。。ただ、Bangについてはそれでもちょっと怪しいので訂正版の記事を作り直したいと思います。 古い記事 は自戒の意味も込めて残しておきます。(なんの意味があるの…