タグ

ブックマーク / keens.github.io (9)

  • 誰がUTF-32が使われてないなんて言ったんだ | κeenのHappy Hacκing Blog

    最近ではUTF-8でソースコードを書いてUTF-8で出入力をする。それ以外のエンコーディングは使われていない。…だと?誰がそんなこと言ったんだ ASCIIと古いUnicodeと新しいUnicode 少し長くなるが文字コードの話から始まる。ASCIIはお馴染み最低7bitあればASCIIの定義する文字集合を表せる。 古いUnicodeは16bitで全ての文字を表わすことを目標に作られた。 新しいUnicodeは文字(主に漢字)が多過ぎて16bitでは表せなかったので21bitに拡張された。 文字コードとエンコーディング 文字コードをどういう形式で表すかがエンコーディングだ。文字コードが7bit、16bit、21bitだからといってそのままのサイズで表わす訳ではない。ASCIIは普通8bitの型で表わすし21bitの型を用意するよりは32bitの型に格納した方が扱い易そうだ。あるいは8bit

    誰がUTF-32が使われてないなんて言ったんだ | κeenのHappy Hacκing Blog
    masatoi
    masatoi 2024/02/10
    “SBCL(Common Lispのメジャーな処理系)はUTF-32を使う”なるほど、確かにCommon Lispでは文字列は文字型の配列だから、内部表現で文字種毎に長さが違ったらランダムアクセスできないか
  • 安全なシステムプログラミング言語Rustへの招待 | κeenのHappy Hacκing Blog

    # 安全なシステムプログラミング言語Rustへの招待 ---------------------- [IIJ Labセミナー](https://iijlab-seminars.connpass.com/event/152079/) === # About Me --------- ![κeenのアイコン](/images/kappa.png) * κeen * [@blackenedgold](https://twitter.com/blackenedgold) * Github: [KeenS](https://github.com/KeenS) * GitLab: [blackenedgold](https://gitlab.com/blackenedgold) * [Idein Inc.](https://idein.jp/)のエンジニア + 2年半くらい仕事Rustを書いている

    masatoi
    masatoi 2019/11/20
  • Common Lispの多値とその実装達 | κeenのHappy Hacκing Blog

    # Common Lispの多値とその実装達 ---------------------- [言語処理系勉強会 Vol.1 - connpass](https://connpass.com/event/104863/) === # About Me --------- ![κeenのアイコン](/images/kappa.png) * κeen * [@blackenedgold](https://twitter.com/blackenedgold) * Github: [KeenS](https://github.com/KeenS) * [Idein Inc.](https://idein.jp/)のエンジニア * Lisp, ML, Rust, Shell Scriptあたりを書きます === # 今日話すこと -------------- * 多値のこと * Common Lisp

    masatoi
    masatoi 2018/11/20
    Common Lispの多値は順番が自然な優先順位になっていて、主結果だけ受け取れたりして自然な感じ
  • Rust around you | κeenのHappy Hacκing Blog

    # Rust around you ---------------------- [第51回 情報科学若手の会](https://wakate.org/2018/07/28/51th-general/) === # About Me --------- ![κeenのアイコン](/images/kappa.png) * κeen * [@blackenedgold](https://twitter.com/blackenedgold) * Github: [KeenS](https://github.com/KeenS) * [Idein Inc.](https://idein.jp/)のエンジニア * Lisp, ML, Rust, Shell Scriptあたりを書きます === # Rust ------ * 安全なC++ * ML/Haskellみたいな機能 + タプル + 代数的

    masatoi
    masatoi 2018/10/08
    remacsはじめて知った
  • require, ASDF, quicklispを正しく使う | κeenのHappy Hacκing Blog

    κeenです。最近のCommon Lispのパッケージ管理はql:quickloadしか知らないという方も多いのではないでしょうか。しかしそれだけでは機能が足りないこともあります。Common Lispには様々な管理システムがあるので整理しましょう。 provide, require 同じファイルを読み込まないための原始的なシステムです。Common Lispの標準の機能です。(require 'foo)がファイルをロードし、ロードされたファイル内で(provide 'foo)しておくと2回目以降の(require 'foo')はファイルを読まずにすぐさま返ります。 ここで問題なのがrequireがどこのファイルを捜しにいくかは処理系依存なところですね。なので生のrequireは使えないと思っておいた方が良いでしょう。 ASDF 3 Another System Definition Fa

    require, ASDF, quicklispを正しく使う | κeenのHappy Hacκing Blog
    masatoi
    masatoi 2018/06/23
  • エンジニアの働き方とかについてのエモい記事 | κeenのHappy Hacκing Blog

    κeenです。 非エンジニアのマネージャがエンジニアチームと上手くやる方法の記事に影響を受けてエンジニアとしての意見を書いてみようかなと。 非エンジニア向けのつもりです。 ここでいうエンジニアはソフトウェアエンジニアのことです。 Disclaimer ある程度客観的になるように気をつけてますがあくまで私個人の意見です。エンジニアを代表するようなものではありません。 κeenはまだエンジニア3年目くらいの若造なのて「それは違うんじゃねーの」と思ったところがあったら多分あなたが正しいです。 仕事内容 エンジニア仕事は外から見たら何してるかよくわからないらしいですね。 ふつう仕事の成果物はエンジニアの間でしか共有してないのでまあ、そうなるでしょう。 なので「何をしているか」を説明するのはやめて「仕事しているときにどんな気持ちか」を話しましょう。 エンジニア仕事は頭脳労働です。 それも問題解決

    エンジニアの働き方とかについてのエモい記事 | κeenのHappy Hacκing Blog
    masatoi
    masatoi 2018/01/16
    エンジニアや研究者など難度の高い頭脳労働では環境が生産性に直結するし、その倍率も大きい。難しい問題であるほど分業できないので一人の人間の生産性が重要になる。梃子であるツールの自由度も大事
  • 雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog

    κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが定義されています。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる/bin/shです。具体的な実装はbsh、ash、dashあたりでしょうか。 最低限の機能以上に色々拡張されているシェルを拡張POSIXシェルと呼ぶことにします。具体的な実装はbash、zsh、kshなどでしょうか。 ここでは触れませんがPOSIX準拠でないシェルも存在してcshやtcshなどのシェルがあります。あと確か最近話題のfishも違ったような。 さて、1つ問題になるのは普段使いのコマンドラインはおおむね拡張POSIXシェルでしょうが、サーバで使うシェルやデプロイスクリプトで呼

    雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
    masatoi
    masatoi 2017/10/30
    雰囲気でシェルを使っていたのでスーパー為になった
  • Common Lispで高速行列演算 | κeenのHappy Hacκing Blog

    κeenです。Common Lispから線形代数ライブラリを使うポストで比較にCommon Lispのコードが出されていたのですがもう少し改良出来そうだったので少しばかり高速化してみました。 そのポストはこちら。 Common Lispで行列演算: LLA(Lisp Linear Algebra)を使う - 翡翠はコンピュータに卵を生むか 圧倒的にCommon Lispが遅いですね。そのコードはこちらから。 Python (NumPy) と Common Lisp (LLA) で行列積の実行速度を比較する - 不確定特異点 行列計算(GEMM)部分を抜き出すとこうなっています。 (defun simple-gemm (ma mb) "Common Lispのみを使った行列積の計算" (declare (optimize (speed 3) (debug 0) (safety 0))) (d

    Common Lispで高速行列演算 | κeenのHappy Hacκing Blog
    masatoi
    masatoi 2016/02/19
    ループアンローリングとキャッシングで2倍速くなるとのこと
  • VOPで遊ぶ | κeenのHappy Hacκing Blog

    (:meta ((:this “Lisp Advent Calendar 2014の3日目の記事”) (:prev (:author “tk_riple” :title “時の羅針盤@blog: R7RSポータブルライブラリを書く際の落とし穴”)) (:next (:author “nobkz” :tite “Shenの基礎その1 基的な型 - Qiita”)))) κeenです。さっきまでVOPで遊んでたので当初の予定を変更してVOPの話をします。 VOPとは何か SBCLやCMU CLで使われているネイティブコードを吐くための機構、要はインラインアセンブラです。 VOPとはどんなものか とりあえずコードをば。x86-64用です。 (in-package :cl-user) (defpackage vop-sample (:use :cl :sb-ext :sb-c)) (in-pac

    VOPで遊ぶ | κeenのHappy Hacκing Blog
  • 1