パスワードを忘れた? アカウント作成

ujimushiさんのトモダチの日記みんなの日記も見てね。 ログインするとコメント表示数や表示方法をカスタマイズできるのを知っていますか?

15507975 journal
日記

ujimushiの日記: 私が使ってきたPC用キーボード等のきりのない話 第4回 Happy Hacking Keyboard Lite Black(US) 影武者

日記 by ujimushi

いつ買ったかも分からず,しばらくどこにいったかも分からず,色々整理していたらでてきて,
PS/2端子があるPCに接続していたら,いつの間にか現在も息子用に使われているキーボードです。

仕様的にHappy Hacking Keyboardと基本的にキーの配置は同じで,メンブレンと本当に特徴のない
キーボードで比較的コンパクト,独立したカーソルキーがない,ということ以外は普通のキーボードです。

おそらくきっかけは第1回のHHKのサブとして購入したと思うのですが,
会社でしばらく色々なPCで一時的に使う用途として便利に使っていたかと思います。(うろ覚え)
一時期会社の袖机の中で忘れ去られていましたが,社内の席替え中に再発見し家に持って帰って
再度使い始めました。

ヘタをすると,「KINESIS Classic」よりも長いのかもしれませんが本当にいつ買ったか覚えていないキーボードです。

一つ我が家に大きな影響があるとすれば,息子はAの横にコントロールキーがあるのが
普通だと思ってしまっているフシがありました。(マイクラのダッシュに便利らしい)
今は学校で貸与されているPCにも触れているので,キーボードの種類によって違う認識はあると思います。

ひょっとすると我が家で一番長く使っているかもしれないキーボードなのに,
一番印象が薄く存在感がないけどいつもそこにあるキーボード,
それがうちのHappy Hacking Keyboard Liteなのです。

15505395 journal
日記

ujimushiの日記: 私が使ってきたPC用キーボード等のきりのない話 第3回 KINESIS Classic Contoured keyboard 長年の相棒 3

日記 by ujimushi

この「Classic」キーボード前回にも述べたように,「Essential」との違いはリマップできるかどうだけです。しかしその違いはかなり大きいものでした。

購入したのは2002年頃。前回で説明した通りリマップ欲に勝てずに購入したキーボードで,
使い勝手はリマップができる他はほとんど「Classic」と変わりがありません。特徴は前回述べた通りです。

「リマップしたい!」と思ったのは,KINESISの標準のキー配置で「Esc」が左上の消しゴムキーボードな点で,
Emacs派ではあるものの,必要な時のvi操作やちょっと気取った時(?)の「Alt」の代わりなど,「Esc」キーも親指なら便利だろうと考えたからです。

実際「Esc」キーが親指にあるのは非常に便利です。私は「Home」キーと入れ替えて使っています。

購入へのハードルは「Essential」ほど高くありませんでした。
一度3万円も払っていたら,4万円もあまり変わらないからでしょうか?
それよりも「Essential」で使い勝手が分かっていたのが大きいと思います。
また,購入元は「ぷらっとホーム」で国内店舗だったこともハードルが低い理由でもあります。
(その後エジクン技研が国内の代理店となるが,購入当時はまだそうではなかった)

US配列の「おもて」のキーマップは現在最新機種の「Advantage 2」でもほとんど変わりません。
おそらく「Insert」が左薬指最下段からキーパッドON時のマップに移動になっただけかと思います。
あと右Altの位置が現在はWindowsキーに変更になっていますが,これは表裏共通のキーですね。

なお,使い始めた頃は会社の先輩にもキーボードと入力方法に凝っていた方がいて,親指シフトキーボード+親指シフトを使っていました。
いまだにそのキーボード(約20年!)を使っていたような気がしますが,最近直接会っていないのでそうでないかもしれません。
今ではその先輩も立場だけはすっかりお偉いさんです。(人柄もあってまったくそんな感じには見えませんが)

そしてこの頃私も漢字直接入力方法の一種「T-code」を使い始めて現在も使い続けています。
Google日本語入力で使えるようにするまでのあれやこれやは,過去の日記に書いたこともあります。

さて,ここで少しKINESIS特有の入力のコツなどを少し。

他のキーボードのように全部下に押すように入力する感じではかなり不自然な感じになります。
KINESISの場合は特に上段は「伸ばす,突く」ように入力するのがコツです。
実際キーの沈む方向を見ると上段のキーは少し上側方向になっています。
それから「1」とか「0」とか端の方は薬指を伸ばして入力する方が楽な感じもあります。
シフトキーを押しながらだと自然にそうなる時がありますね。
最下段の入力は手を軽く握るように押すのがコツです。
特に右側最下段の「[」とか「]」はそんな感じです。

誰にも役に立たない,KINESISキー入力のコツでした。

このキーボードは2019年頃に会社で使っているPCがPS/2端子がないものになったタイミングで家用のキーボードなりました。
今でも家で利用しており,来年で20年にもなる相棒です。

「Essential」よりも手を入れていない分,まだまだ使えそうとこのキーボードで入力しながら感じています。
いつまで利用できるでしょうか?

15504197 journal
日記

ujimushiの日記: 私が使ってきたPC用キーボード等のきりのない話 第2回 KINESIS Essential Contoured keyboard 一番手をかけたキーボード 2

日記 by ujimushi

前回でEmacsを使用時に小指がつる話をしたのですが,本人は大学まで10年以上卓球をしていていて,
しかも戦型は左のペンドライブ(東京五輪混合複決勝進出して日本のペアに敗れた許昕選手と同型)
左の親指の強度には自信があります。

そのため親指でコントロールキーが押せるキーボードを探していて見つかったのが「KINESIS Countoured Keyboard」。
この時,このキーボードは二種類ありました。

  • Essential(リマップ機能なし)
  • Classic(リマップ・マクロ機能あり)

当然Classicの方が価格が高く,ただEssentialでもかなり高かったと思います。ただ価格は全く覚えてないです。
その覚えていない理由というのが,KINESIS本家のオンラインショップで購入して,価格がドルで表示されていたためだと思います。
三万円したかなぁ?(記憶なし)2000年過ぎのことでした。

しばらく会社で仕事用に利用していました。
今の印象を含めて次のような感じです。

  • Emacsのコントロールキーバインディングの操作感は最高。特に「C-a」あたりが非常にスムーズ。
  • キータッチは軽いけどやや深め
  • 音がカちャかチゃ。ただ連続的に入力する時はそれほど気にならない。入力スピードや力が変化する時に音が気になる。
  • 右手の小指の割合てが左手と同じ数なので他のキーボードより相対的に楽。これは左利きには大きな利点。
  • 手の平を置いたまま入力できるので手の甲がつることが無くなった。これは10時間ぐらい連続で作業して別のキーボードと比較すると疲れ方が全然違います。

仕様的には次のような感じ。

  • 左右に分離した形状で,真ん中にインジケータとタッチパッドが置けるぐらいのスペース→これがこの後の混迷を生む
  • お椀型の形状
  • Cherryの茶軸のメカニカルキー
  • キーのリマップは不可(なおClassicは可能)
  • キー入力時のクリック音の有無を設定可能(通常キー,記号キーのくくり別)
  • キーリピートの時間が変更可。超速カーソルキー移動が可能だった。(ちなみにその後のUSBタイプにはこの機能は無かったかと)
  • ファンクションキーが「消しゴム」キー

ただ,KINESISのキーボードは人によって向き不向きがあり,相性がいい人と悪い人がはっきり分かれます。
なぜ相性が良かったかを自己分析してみると次のような感じです。

  • 手の「平」が大きい。KINESISはキー間がかなり広いが私の「手の平」が大きいのでキーに近いポジションが取れる。
  • 左利きのため,親指をCtrlに置いたまま左手を使うほとんどのキー(=とファンクションキー以外)が押せた。

最初はかなり機嫌よく使っていたのですが,やはり「リマップしたい」欲に勝てず
結局Classicを追加購入して会社で使っていました。そこで押し出される形でEssentialは家用になったのですが,
やはりリマップの欲に勝てませんでした。

今では実店舗のないぷらっとホームだったかでEssentialをリマップ可能とするROMを取り寄せてもらえる
と聞き,頼んだところシリアルナンバーが必要とのことで連絡し,しばらく後ようやく入手しました。

入手後はキーボード背面のネジを外しROMを挿して容量は少ないながらリマップできるようになりました。
その他入力が静かになるとかで木工用ボンドを裏に塗ったりゴムの輪っか入れたり
とにかく手を入れたキーボードでした。おそらく一番愛着があったかと思います。

10年過ぎた頃にケーブルに切れ目があることに気付きだましだまし使っていましたが,
2015年頃キー入力に支障があることが発覚し,PS/2が使えるPCも限られてきたことから廃棄しました。

なお,正式名称は実は覚えておらず,ネットの画像から「Basic」だと勘違いして書いていたのですが,
途中で「Essential」だと気付く有様。

次回はClassicの予定ですが,ほとんどKINESISの特徴を書いてしまって書くことがほとんど無さそうな次回に続く…

15500616 journal
日記

ujimushiの日記: オミクロンといえば…

日記 by ujimushi

私が務めている会社関係でいうとオミクロン社(電力設備試験用模擬電圧・電流出力装置を作っている会社)として関係があったりして,ここ数日のオミクロン株の話題は大喜利にまではなってないものの,社内でちょとしたネタになっている。

15477770 journal
日記

ujimushiの日記: 私が使ってきたPC用キーボード等のきりのない話 第1回 HHKB(初代)私の原点 3

日記 by ujimushi

きりがない話を聞きたいという方がいらしたので,過去の日記の私のキーボード遍歴(日記)等を参考にしながら,きりのない話を少しずつ記してみたいと思います。「キーボード等」と書いているのは,主にKinesisと組み合わせたポインティングデバイスの試行錯誤の遍歴も数多いためです。

 実は今となっては手元にないキーボード・デバイスも多くなり,もうかなり記憶も薄れていてキーボード等に対する情熱みたいなものも以前ほどではないので,今覚えていることを記録しておかないと忘却の彼方に去ってしまいそうなので,日記に残しておくのも一つのいい機会かな?とも思ったことも書こうと思った理由です。

早速本題に入ります。これだけ(いやまだ全然言及していないけれども…)キーボードを試行錯誤するきっかけになった出来事は,2000年になる直前の入社2年目ぐらいにマウスを長時間連続で使い過ぎて,右手親指つけ根の手首のところを痛めたことでした。
その経験から次のように考えました。

  • 元々左利きのため,マウスよりキー入力主体で操作する方がいいだろう。
  • 左利きだがマウスを左手で使うということはあまり考えなかった。ペンや箸,将棋を指すのも右手という変わり者ということもある。
  • プログラマ系の仕事なので勉強も兼ねてLinuxも使おう。
  • エディタを環境に左右されないように,Emacsとgnuツール(シェル環境)を中心に構築しよう。
    (当時Windows上ではMeadow + cygwin)
  • 入力しやすそうなキーボードにしよう。

ということで,コントロールキーが「A」の横にあったHappy Hacking Keyboard(初代。PD-KB02 /P)にしたと思います。
ちょうど2000年頃のことです。
なお,ネットで画像を探したところぱっとは見つかりませんでしたが,HHKB 20周年時のPC Watchの記事が分かりやすいでしょうか。
US配列のHHKBは,基本的にこの頃からキー配置は変わっていません。この点は今使っているKinesisと同じで私には好印象です。

 この頃自分が使った感想はおおむね次のような感じで好印象でした。

  • ストロークが浅い。これによって軽いキータッチっぽく感じる
  • 静か。
  • 素早く入力できる
  • 普通のキーピッチでコンパクト

 また,仕様的には次のような特徴がありました。

  • メンブレン
  • ケーブルの先を変えると,SUN,Machintoshにも接続可能。購入ケーブルは先がPS/2
  • 「◇」がディップスイッチでキーが変えられる(主にMac対応のためか?)
  • カーソルの独立キーがない

 しかし,1年足らずで不満が出てきました。その不満は

  • Emacsのライトユーザーだったためコントロールキーを押しっぱなしで小指がつる
  • 入力スピードは速いが,長時間の使用では疲れる。

というものです。

 そこでネットで調べているうちにあるキーボードに心がひかれます(というか今覚えば最初からこちらが本命だったかもしれませんが値段が…)。
それが Kinesis Contoured Keyboard。ちょうど2001年頃だったでしょうか。(次回に続く)

15468046 journal
日記

ujimushiの日記: ubuntu 21.10でScilab6.1を動作させる方法

日記 by ujimushi

ubuntu 21.10でScilab 6.1を動かそうというアレな皆さんこんばんは。

前回のubuntu 21.04でScilab 6.1を動作させるあれこれに引き続き,21.04 → 21.10にアップデートして動かなくなったのをとりあえず起動できるようにする覚え書きです。
ですので,基本的に21.04でやったことは21.10でも必要ですのでアレな方は上のリンクも参考にして下さい。

起動した時に「libldap-2.4.so.2がないよ」とエラーが出て停止するので

cd /lib/x86_64-linux-gnu
sudo ln -s libldap-2.5.so.0.1.1 libldap-2.4.so.2

とシンボリックリンクをはって,さもlibldap-2.4.so.2があるようにごまかします。(実体はlibldapのバージョン2.5)

最近はすっかりjulia言語に移行したためあまり使っていませんが,scilabのグラフは後から手で表示範囲とか変更できますしその点は便利だと思います。

15468035 journal
日記

ujimushiの日記: ubuntu 21.10でjulia言語のPlotsのPlotlyバックエンドをうまく動かす方法

日記 by ujimushi

julia言語のPlotsパッケージでPlotlyバックエンドを使うと,「/tmp/」の下にhtmlファイルが生成されてデフォルトのブラウザでグラフが表示される。

ところがubuntu 21.10ではfirefoxはsnapパッケージのものがデフォルトでインストールされているため,snapパッケージのfirefoxは実物の「/tmp/」にはアクセスできず,パッケージ内のツリーの「/tmp/」をアクセスしにいって「ファイルが見つからない」という状況になっている。

色々試してみると,あらかじめ「TMP」の環境変数を設定しておくとPlotlyバックエンドはそこに書き込んで表示しようとするらしい。

そこで,あらかじめ「~/tmp」のフォルダを作成しておき,そこにグラフを書き込むようにする。

using Plots

plotly()

ENV["TMP"]=joinpath(ENV["HOME"], "tmp")
x = Vector((0.0:0.1:2.0)*π);
plot(x, cos.(x))

# juliaコマンドから実行させる時は必要
Plots.gui()

カットアンドトライでグラフを表示させる時は,基本的には常にjuliaのコマンドラインを動かしておき,「include("ファイル.jl")」で実行させるのがいいのかなと思う。
いちいち「julia ファイル.jl」だととにかくPlotsパッケージの読み込みが死ぬほど長い。
「include("ファイル.jl")」だとrubyやpythonのように一度読み込んだパッケージの再読み込みは基本的にしない。

おっとincludeの前に「using Revise」も必要か。これをやらないと条件によっては変更が反映されない時がある。これは変更があったパッケージ・関数があると再読み込みしてくれるものだ。

あとPlotsパッケージ周りは実行環境が違えば正解がまったく変わるのでドツボにはまることこの上なし。
Windows,VS Code,emacs,それに使ってないけどjupyter notebookとそれぞれで最適解は違うような気がする。

なお,最初「TMP」を「~/.local/tmp」とかにしてドツボにはまる。「~/.local/~」のような隠しフォルダにはセキリティ対策のせいかsnapのfirefoxはアクセスできないようだ。

15460474 journal
日記

ujimushiの日記: julia言語でインストールしているパッケージの依存関係をなんちゃってツリー表示する

日記 by ujimushi

少し前にjulia言語のパッケージ情報の取り出し方の練習として,
インストールしているパッケージの依存関係を簡易的に表示する関数を書いてみました。

ハードディスクの隅に埋もれていたので,後で参照できるようにここにおいておきます。
関数の中で関数を宣言している少し変な書き方です。

using Pkg
 
"""
    print_pkg_dependencies(pkgname, limit=2)
 
print a tree of `pkgname`'s dependencies to `limit` depth.
`limit=2`(default)
"""
function print_pkg_dependencies(pkgname::AbstractString, limit::Int=2)
    function printdep_uuid(uuid, nth, pre_str, depth)
        pkginf = Pkg.dependencies()[uuid];
        N = length(pkginf.dependencies);
        if N > 0
            m = 1
            for (k, v) in pkginf.dependencies
                next_str, keisen = begin
                    m == N ? (" ", "┗") : ("┃", "┣");
                end
                version = Pkg.dependencies()[v].version;
                if isnothing(version)
                    version = ""
                end
                println("$pre_str$keisen$k $version")
                if nth < depth
                    printdep_uuid(v, nth + 1,
                                  pre_str * next_str,
                                  depth);
                end
                m = m + 1;
            end
        end
    end
    for (k, v) in Pkg.dependencies()
        if v.name == pkgname
            println("[$pkgname] $(v.version)");
            printdep_uuid(k, 1, "", limit);
        end
    end
end

次は実行例

julia> print_pkg_dependencies("CSV")
[CSV] 0.9.6
┣InlineStrings 1.0.1
┃┗Parsers 2.0.6
┣PooledArrays 1.3.0
┃┣DataAPI 1.9.0
┃┗Future
┣WeakRefStrings 1.4.1
┃┣DataAPI 1.9.0
┃┣InlineStrings 1.0.1
┃┗Parsers 2.0.6
┣CodecZlib 0.7.0
┃┣Zlib_jll
┃┗TranscodingStreams 0.9.6
┣Tables 1.6.0
┃┣DataAPI 1.9.0
┃┣LinearAlgebra
┃┣Test
┃┣IteratorInterfaceExtensions 1.0.0
┃┣DataValueInterfaces 1.0.0
┃┗TableTraits 1.0.1
┣Mmap
┣Unicode
┣Dates
┃┗Printf
┣FilePathsBase 0.9.12
┃┣Dates
┃┣Test
┃┣Mmap
┃┣UUIDs
┃┗Printf
┣Parsers 2.0.6
┃┗Dates
┗SentinelArrays 1.3.7
 ┣Dates
 ┗Random

15453967 journal
日記

ujimushiの日記: 細か過ぎてよく分からない,Emacs 26.3を使っている時に遭遇した起きて欲しくないm?elpaの挙動

日記 by ujimushi

仕事ではubuntu 20.04のデスクトップ,家ではubuntu 21.04のデスクトップを常用しており,Emacsがその中心にいる。

で,会社のPCでEmacsを立ち上げ,「M-x package-install-pacakge」からリストを表示させ,「U」で更新可能なパッケージを表示させ「x」で最新のバッケージに更新した。

すると,プリコンパイル時に謎のエラーが発生し,eglot他いくつかのパッケージが動作しなくなった。
少し確認すると,どうも「xref」を読み込む時にエラーが発生しているようで,よくよく確認してみると, eglotがxrefのバージョン1.0.1以上を要求していのに対し,emacs 26.3内の1.3.0を使わずelpaパッケージ(gnu)の1.3.0をダウンロードしてインストールしようとし,またそれぞれの1.3.0でコードが同一ではないという恐ろしい状況のため,たくさんの不都合な状況となっていたようだ。

そこで解決方法としては,後でインストールされたxrefパッケージをパッケージ管理を通さずに 手で消すという荒技で解決。なお家のEmacs 27.1では再現せず。

そしてこれから家のPCのubuntu 21.04 を 21.10にアップデート予定…

15448692 journal
日記

ujimushiの日記: julia言語はじめました

日記 by ujimushi

仕事関係ではmatlab等の購入・維持予算等もつけれらないような状況のため, 無料で使えるツールであるScilabやpython等で色々対応してきていた。

julia言語は興味はあったものの,できたばかりの言語で仕様がコロコロ変わるということで, なかなか手を出せなかったが今年の2月ぐらいから今さらながらボチボチ勉強中。

Emacs使いで何のパッケージで開発環境を構築するかがなかなか決定できず, 最初はjulia-modeとESS(Emacs Speaks Statistics)で開発していたが,特徴であるreplが使えず eldoc対応が打ち切られたことで,他のパッケージでの開発環境の検討に入る。

現在はjulia-mode + eglot-jl + julia-repl(eterm-256color導入) という形で落ち着いているが,juliaのパッケージの LanguageServerとそのバックエンドのSymbolServerがやや不安定で, 様々なアップデートで微妙に動かなくなったりする今日この頃。

次のスクリプトは最近出たjulia 1.6.3についてubnutuのデスクトップでインストールする一つの例。

#!/bin/bash

VERSION=1.6.3
JULIA_TARBALL=$HOME/Downloads/julia-${VERSION}-linux-x86_64.tar.gz
LOCAL_DIR=$HOME/.local
# ~/.local/opt にインストール
OPT_DIR=$LOCAL_DIR/opt
JULIA_SRC_DIR=$OPT_DIR/julia-${VERSION}
SHARE_APP=share/applications
ASSETS=$JULIA_SRC_DIR/share/doc/julia/html/en/assets

# 無ければ作成
mkdir -p $OPT_DIR
cd $OPT_DIR
echo "tarball extracting"
tar xzf $JULIA_TARBALL

echo "linking path"
# 個人ユーザー用binに追加($HOME/.profileに記載のある内容)
mkdir -p $LOCAL_DIR/bin
cd $LOCAL_DIR/bin
rm -f julia
ln -s $JULIA_SRC_DIR/bin/julia ./

# gnomeのデスクトップにショートカットを追加
echo "linking for gnome"
cd $LOCAL_DIR/share/applications
rm -f julia.desktop
ln -s $JULIA_SRC_DIR/$SHARE_APP/julia.desktop ./

# アイコン設定
cd $LOCAL_DIR/share/icons/hicolor/scalable/apps
rm -f julia.svg

# 背景が黒っぽい時
ln -s $ASSETS/logo-dark.svg ./julia.svg
# 背景が明るい色の時
#ln -s $ASSETS/logo.svg ./julia.svg

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...