「xml」を含む日記 RSS

はてなキーワード: xmlとは

2020-10-21

anond:20201021140345

ようわからんが、PythonRuby だったら CSV と libxml2 のライブラリをひらいて、メモリに展開して、XMLパースすりゃ良いの?

Rust はちょっとよくわからん

2020-10-17

プログミング言語の前にマークアップ言語をやれよと。

プログミングを勉強する前にマークアップ言語をやれよと。

プログミング言語を記録するのは実はマークアップ言語なのだ

カラーリングで、開発環境コードが見やすくなる。マークアップ言語には、markdown, html, wikiなどがあげられると思う。

また、xml, jsonなどのデータマークアップ言語と言ってよいだろう。

マークアップ言語プログミング言語ノートになっている。

プログミングでもインデント必要だ。

pythonを使えば否が応でもスペース4つを空けることになるだろう。(あるいはtab一つ分))

まずは、ブラインドタッチマークアップ言語を書き、一文字でも違うとコンピューターは、こちらの意図通りには動いてくれないという悲しみにひたらないかぎり、

全角スペース、半角スペースを目grep出来るようにならないと、プログミングは上達しないことをここに宣言したい☆

  

2020-10-13

マークアップ言語プログミング言語

マークアップ言語には、markdown, html, wikiなどがあげられると思う。

また、xml, jsonなどのデータマークアップ言語と言ってよいだろう。

プログミング言語よりは、簡単だし、ファイルも軽量だし。

かといって、資格必要な訳ではなく、簡単だ。

もっとテキスト世界が拡がって欲しい。

単にツールだ。

しかし、プログミング言語を記録するのはマークアップ言語なのだ

マークアップ言語プログミング言語ノートになっている。

マークアップ言語が出来るようになる一番の近道は、マークアップ言語恋人とやり取りすることだ。

マークアップ言語を使うと画像を組み込むことが出来る。

絵文字は使えないが、効果的な顔文字を使うことは出来るはずだ。

  

さて、texマークアップ言語なのか、プログミング言語なのかどっちだろうか。。

  

まずは、マークアップ言語から勉強するのだ。

  

2020-10-08

JSONスキーマ信用してない

むかしXML流行った頃にXMLスキーマだとかWSDLとか使ってたんだけど、まぁ端的に言ってゴミ

これらを使えばXMLがvalidであることを保証できる。たしかにそうだ。

でも仕様とかややこしい割には、バグが減るとか工数が減るとかそういったことの恩恵はまるでありません

誰がこの複雑な仕様を使える?チームの中でもちゃん理解できてるのが一人入れば良いほうだろう。

JSONスキーマも似たような運命をたどるとしか思えないので、手を出す気にならない。

JSONは単純な構文で、適当に書いて適当に入出力使って、インターフェースとなるデータ構造は、API利用者同士で密に相談しあって使えばいいんじゃないかな。それで何事もスムーズに行くはず。

一般公開とかするなら仕様自然言語文書として残しとけばOKで、そこらへんをプログラムで取り扱いたいってのは、まぁ理想としてはわかるんだけど、うまくいくとは思えないんだよね。

自分みたいに低能作業員には難しいけど、優秀な技術者を取り揃えてるところなら実装運用できるのかなぁ…


スキーマ出てくるとこれをプログラム的に取り扱って、データやり取りするためのインターフェース部分を自動生成しましょ、みたいなくっそ寒いノリがでてきて、

この自動生成された部分がだいたいバグってたり、仮にバグってなくてもバグを探すために、自動生成されたきっしょいコードを延々と人間の手で解析するみたいな、非人道的作業が発生するんだよなぁ

仕事で使わされそうになったらやだな

2020-07-11

anond:20200711215320

ウェブエンジニアって何やってんだろう。。。

Jsonなりxmlなりのフォーマット指定してあとはなんにも関わらないの?

2020-06-16

これは面倒くさい

とあるXMLファイルに変換するのに以下のような手順を踏まねばならない。しかもsuperscript/subscriptは消えるので、XMLファイルの中身を一括置換しなければならない。

これなら最初に非HTMLタグな部分を一括置換で生成したほうが早くないか

2020-06-14

10人くらいずつ出頭

ムードXMLだのスコーンだの面倒くさそう。ムード・・・の方はMSワードから変換するスクリプトがあるから、楽と言えばラクダスコーンフリーエディターがあるようだ。これは楽なのか?楽じゃなさそ。なんだかなぁ・・?OMR(紙媒体)でいいじゃんって感じだよな。そんなに弟=皮が恐ろしいというのならば10人くらいずつ出頭させて、半時間くらいのOMR式の○○をうけさせればいいだけのことなのでは?彼らよく「うけるー!!」って叫ぶよなぁ。

2020-05-01

私はテキスト化することに快感

感じてしまうのだ。なぜだろうか?

MS office word

今までMSオフィスワードで書いていた文書最近markdownにしてるが、これなんかも私にとっては快感だ。もちろんワード文書XMLの類でテキストベースと言えばそうだが、XMLタグがどっさり入った文書を読みこなせる漢などいないし、やったとして疲れるだけだろう。

Visualizing softwares

最近データ可視化するソフトテキストベースのものに乗り換えた。

Illustrating warez

お絵かきソフトもだいぶ前からInkscapeだ!こいつならSVG形式で保存されるからあいえば広い意味でのテキストベースだ。直接読みこなすには苦労するけど( ^ω^)・・・

Todo task scheduler

Todoリストというかタスクリストテキスト化したい!タスクウォーリアはなかなか良い候補だと思ったが、今日対抗馬が出現した。TODOtxtドットネットってやつだ!今週末こいつをインストールして快感を得てみたい。Todoリストが消化されない問題を目の当たりにしてストレスがたまりそう。テキスト快感バーサス先送り症候群可視化ストレスってところか?

GTD

GTD的にはそれでもどこかにTodoリストが残っていることが重要なんだよね。

2020-03-20

pptxテキストimageに分解

pptxコピペテキストimageに手作業でばらしてる。疲れる。

😣

こいつはxmlファイルimageZip書庫化しただけのはず。と思って、ネット検索ppt2mdというbashあるらしい。gitbashあるからそこで試してみる。コマンドは「pptx2md tmp.pptx」じゃなくて「bash pptx2md tmp.pptx」だ。何回かツボった。

😀

要ばらしなpptは、わりとあるので、成功→ウレシい。数式は無理!それらは手作業で、MSワードコピペ。pandocで要変換。あと、日本語pptx禁止としなきゃ。言語的な問題Google翻訳さんが解決してくれるからいか( ^ω^)・・・

https://github.com/revan/pptx2md

2020-01-07

いまだにリリース前日にXML属性値がDBに紐付いてる仕様書に書いてない仕様に気がついたのを思い出す

必死ソースDBの値を直して正常系を通して逃げた。発見して気持ち落ち着けるためにストロングゼロを飲みながら直してさらに帰りにめちゃくちゃストロングゼロを飲んでしまった。それで頭がおかしなっちゃって仕事をやめてしまった。

2019-11-23

Julia (プログラミング言語)なぜ僕らはJuliaを作ったか

それでも、pythonは非明示的な動的型付き言語であり、記述時のチェックも少ないので、文法さえ合っていれば、結構自由に書ける。クラスインスタンスや、数値などではなく、(その場の変数値込みの)関数なんかもただのオブジェクトに見えるので、どんどん関数引数変数に入れられる。戻り値しかり。演算子オーバーロードなどもできて、直感的な記述可能。ということで、使う側の直感に合うような運用可能になっているがゆえに、受け入れられているのだろう。

しかし、それは運用単体テストに支えられているものであって、ひとたびその集中力が途切れたりうっかり見落としていたりすると、それがどこにあるのか、というのは、それなりにレアなケースだと、発覚するのがだいぶ先になって、その解析、分析も大変になるという恐怖は常に隣り合わせである

もしかして、そういう状況がいやだったから、掲題のコンピュータ言語を開発しようとしたのか。

http://marui.hatenablog.com/entry/20120221/1329823079

ここに、原作者ブログの日本語意訳がのっていた。もう6年も前になっている。

(原文:Why We Created Julia)

2012年2月14日(火) | Viral Shah, Jeff Bezanson, Stefan Karpinski, Alan Edelman

端的に言えば、僕らは欲張りだからだ。

僕らはMatlabのパワーユーザーだ。LispハッカーPython使いやRuby使いもPythonハッカーもいる。髭が生える前からMathematicaを使っていたのもいるし、未だに髭が生えてない仲間もいる。常識的な人にはオススメしないくらい多くのグラフR言語で描いてきた。そしてC言語は僕らのユートピアだ。

いま挙げた言語は大好きだ。どれも素晴らしいしパワフルだけど、科学計算機械学習データマイニング、大規模な線形代数演算分散・並行コンピューティング、といった僕らがやるようなものにはどれも一長一短で、仕事完璧にはまる機能もあれば何とも使い物にならないものもある。どれもトレードオフなんだ。

僕らは欲張りだ。これじゃ十分じゃない。

僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやす数学記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理Perl文字列処理、Matlab線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語インタラクティブに使えて、かつコンパイルできる言語が欲しい。

(そういえば、C言語の実行速度が必要だってのは言ったっけ?)

こんなにもワガママを言った上だけど、Hadoopみたいな大規模分散コンピューティングもやりたい。もちろん、JavaXMLで何キロバイト常套句を書きたくないし、数千台のマシン分散した何ギガバイトものログファイルを読んでデバッグするなんて論外だ。幾層にも重なった複雑さを押しつけられるようなことなく、純粋なパワーが欲しい。単純なスカラーループを書いたら、一台のCPUレジスターだけをブン回す機械語コードが生成されて欲しい。A*Bと書くだけで千の計算をそれぞれ千のマシン分散して実行して、巨大な行列の積をポンと計算してもらいたい。

だって必要ないなら指定したくない。もしポリモーフィック関数必要な時には、ジェネリックプログラミングを使ってアルゴリズムを一度だけ書いて、あとは全ての型に使いたい。引数の型とかから自動的メソッド選択してくれる多重ディスパッチがあって、共通機能がまったく違った型にも提供できるようにして欲しい。これだけのパワーがありながらも、言語としてシンプルクリーンものがいい。

これって、多くを望みすぎてるとは思わないよね?

僕らがごまかしようのないほど欲張りなのは分かってるけど、それでもぜんぶ欲しいんだ。二年半ほど前、この欲にまみれた言語を作り始めた。まだ完成してないけど、そろそろ1.0のリリースの時期だ。僕らが作った言語名前はJulia。すでに僕らの無礼要求に9割方は応えてくれてるけど、ちゃんとした形になるためには僕ら以外の要求も聞かないといけない。だから、君がもし欲張りで理不尽わがままプログラマなら、ちょいとこいつを試してもらいたいんだ。

我儘な開発者を満足させるための原語、というのはなんとも意欲的な目標だろう。

そして、その我儘を言う開発者が、今はやりの機械学習でも使いやすいだろう mathematica や R の行列演算統計計算世界を使いまくった連中が入っているところが今風の要求となっているようにも思う。

ちょろっと名前を聞いただけなので、これからなのだが、開発者としては、品質生産の加速がpython の一歩先を行くような世界であればそれは大歓迎だろう。

julia 何て名前を付けているから、検索すると AV女優の方が目立って出てきてしまうのである

https://qiita.com/sadayuki-matsuno/items/fc5e9ec3894a4b7bfbfb

ここからプログラムコードの断片をもってこようかとおもったが、

そのままコピーしても、今一歩な感じ。

ほらほら、

数式が数学で習った感じで書けるよね。

行列もほいほいかけるよね。

とかそういう小技が書かれているような気がした。

このあたりは、python限界を超えているので、見栄えはよいかもしれない。

2019-07-29

してマップ.XML

多くのサイトで『してマップ』なるものが公開されている。何とも、はしたない。『して』だなんて、けしからん話だ。あぁ、いやらしい、いやらしい。

2019-07-23

ITの「なぜ?」が解決できない

カスタマーサポートからjavaを解析するチームに転属になった

これまで前職で7年くらいSIerjavaいじってきたけど、表面上をいじったり設定を変えたりしたたけで、全然スキルにならないことはわかっていた

から転職してカスタマーサポートになったのに、カスタマーサポートの中では多少コードが読める、というだけで転属になってしまった。

java+tomcat+postgressqlというまーたぶんOSS使うなら標準的構成だと思うんだけど、

tomcatの外にあるcontext.xmlじゃなくてjavaプロジェクト内のcontext.xmlの設定を変えただけでなんでDBの見る先が変わるんだろう?

eclipse内にあるtomcatってwindows普通にインストールするtomcatとどう違うの?

そのへんも分からないし、手順書通りにやっても動かないこともストレス(これはpostgressqlをインストール済みの環境リストア済みのDBがあること前提で手順書が書かれていることが後に分かった👍️)。

このITのなぜ?に一つ一つ答えられる人がいなくて前職辞めたのに、みんな忙しそうで聞きづらい。

なんか自分の疑問すべてに答えてくれる本が無いと分からない。

みんなどうやって一から環境構築してるんだろ?構造わかってるから出来てるんだよね...。

設定変えたら動くからそんなもん、て言われたらそれまでなんだけど。

きっとこうやって割り切れなさを抱えてるから仕事遅いと思われてるし、気ぃ遣いで優しそうだと思われてるかもしれないけど、ほんとは一から十まで最初から教えてくれないと分からない頭悪い人だと自分では思ってる。

きっかけと構造さえ掴めれば応用きいたりするんだけど...知識欲もあるし誰か教えてほしい。学校にいくか、本を買って読まなきゃなーって思ってるところです。

人に聞けない俺はその方向で合ってるのかな?

2019-06-22

[]2019年6月21日金曜日増田

時間記事文字数文字数平均文字数中央値
0010815295141.631
01108657060.830
028113175162.759
0350463192.663.5
04181980110.056.5
0518156486.940
06464789104.138
0750416283.237
0878530868.129
0993724977.945
101281202593.940
112592194784.742
1222823793104.446
132341433961.340.5
142662520194.739
152301682873.235
161911186762.132
17135891066.029
181551098870.932
19105978793.230
209313160141.539
2111914807124.432
2212715394121.233
23798583108.654
1日299927235290.837

本日の急増単語 ()内の数字単語が含まれ記事

八村塁(6), ヤマシタトモコ(6), 凪のお暇(8), たそがれたかこ(6), 夏至(6), コロプラ(3), メタモルフォーゼ(3), 意趣返し(7), サクセス(6), 縁側(3), ぷっくり(3), xml(3), 福満しげゆき(3), 自発的(14), 生き方(36), プール(11), スパム(11), 模索(10), アイス(9), いいえ(10), おじ(10), 前向き(11), 著しく(6), 女に(27), 子供部屋(8), ポリコレ(36), 革命(8), マンガ(20), 遺伝子(15), 渡す(8), 少子化(15), 感情(73), 匂い(17), 非モテ(16), 反(16), 年金(19), 容姿(24)

頻出トラックバック先(簡易)

■男の生き方 /20190620231440(50), ■男は男なんて助けない。女にでもすがってろ /20190620001337(25), ■はてなJinまとめ速報をを排除できない(その理由も教えるよ) /20190621112428(15), ■「ポリコレ」という言葉を使う差別主義ウヨクどもに言論の自由はいらない /20190621010359(12), ■「社会的弱者」を一度体験したら他人に優しくなれるか /20190621123708(12), ■anond20190620231440 /20190621015204(11), ■「自然派ママ(ナチュラル基地外・こじらせナチュラリスト等)」の新しい名称 /20190621003310(8), ■腐女子ゲイだけを許すのはなぜなのか /20190620145908(7), ■つわりが辛すぎ /20190621211212(7), ■anond20190621141800 /20190621141927(7), ■分散SNSで「Gabドメインブロックするべき」という提起が紛糾している /20190621024537(7), ■アマゾン棺桶を買ってその中で寝るのがマイブームなんだけど親が気持ち悪がる /20190621170210(6), ■肉が違うと腹が立つ /20190619043352(6), ■やっぱり、結婚は金と若さとの交換だわ /20190621090819(6), ■女の敵は女なんじゃないの? /20190621114823(6), ■タイトル思いつかねぇや /20190621013929(6), ■SNSなどネット上の笑い表現(笑・w・草・竹)で年齢がバレるって知ってた? /20190621160607(6), ■おっさんおっさんが大嫌いだし弱い男はもっと嫌い /20190618201336(6), ■自己肯定感が欲しいので誰か僕をほめてください /20190621075325(6), ■ /20190621154013(6), ■非モテ童貞が「彼女がほしい」というと「風俗ソープ)に行け」と言われるのなんでなの /20190621094225(6)

増田合計ブックマーク数 ()内の数字は1日の増減

6386764(3978)

2019-06-21

AquaSKK新下駄配列を使うための設定 解説

anond:20190621202451

AquaSKKには同時打鍵認識記述する方法がないため、新下駄配列使用するには、AZIK場合のようにかな規則ショートカットキーをいじるだけでは不十分です。さらに一歩進んで、キー割り当てソフト使用する必要があります

私はKeyRemap4MacBookを使ってそれなりに新下駄配列が使える状態に出来たので今の時点での成果を少しずつ紹介していきます

ショートカットキーの変更

AZIK場合以上に、SKKで多用する「L」「Q」「X」といった単打のショートカットは、Controlとの組み合わせなどに変更しておく必要があります。これらのキーを使うかながどれも打てなくなるからです。

AZIK場合のQ,L,Xの問題と同じく、keymap.confを修正します。

AZIK場合と異なり、この問題修正には.ruleファイルの変更は不要です。

SandSの採用

両手で同時打鍵をする新下駄配列では小指でのシフト操作現実的ではありませんので、スペースキーシフトするSandS採用します。

KeyRemap4MacBook最初からまれている「Space to Shift_L (+When you type spce only, sendSpace)」の各種設定を好みで選んでもらえばいいと思います

既存の設定について

KeyRemap4MacBookには、既に「ことえり」「ATOK」といった普通IME用の設定はあります

これらの設定でも、ほとんどのひらがなカタカナ入力スムーズにできます

単打シフト問題

しかし、これらの設定では、漢字単語入力でつまります。単打入力の際にシフトしても、変換モードに移行しないのです。

この原因は、jis_shingeta_base.xmlにおいて、単打の場合モディファイアキーが押されていない場合のみ、新下駄配列への置き換えが行なわれるように設定されているからです。

下記の「ModifierFlag::NONE」という文字列がそれです。(「く」の定義を例にしています

<autogen>--KeyToKey-- 
KeyCode::H, ModifierFlag::NONE,
KeyCode::K, KeyCode::U, 
KeyCode::VK_NONE</autogen>

これは各種のショートカットキーを使えるようにするためでしょうがSKK的には困ります

シフト付きの単打の場合新下駄配列への置き換えが行なわれるように、上記のjis_shingeta_base.xmlコピー((usキーボードの場合jis_shingeta_base_for_us.xmlベースにした方がいいのでしょうね。))した上で、単打がシフトされている場合にも、文字が入れ替えられ、また、単打がシフトされている場合には入れ替えられた文字の一文字目もシフトされる定義を追加しましょう。

<autogen>--KeyToKey-- 
KeyCode::H, ModifierFlag::NONE,
KeyCode::K, KeyCode::U,
KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- 
KeyCode::H, ModifierFlag::SHIFT_L,
KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::U, 
KeyCode::VK_NONE</autogen>

この追加を単打文字全てに対して行ない、修正後の定義private.xmlに追加します。

これで、そこそこ打てるようになるはずです。

「うぉ」の問題

単打でないかなのほとんどは、シフトによって普通に変換モードに入ることができますKeyRemap4MacBookで同時打鍵表現するのに使われる--SimultaneousKeyPresses--は、シフトについて設定しない場合シフトをそのまま渡してくれるからです。

ただし、この仕様はDと@の同時打鍵入力される「うぉ」の場合問題となります

<autogen>--SimultaneousKeyPresses--
KeyCode::D, KeyCode::JIS_ATMARK,
KeyCode::U, KeyCode::X, KeyCode::O,
KeyCode::VK_NONE</autogen>

「うぉ」を表現するのに必要なU、X、Oのすべてがシフトしてしまうのが良くないようで、シフトすると「う」と「ぉ」の間に送りの区切れがあると認識されて辞書登録モードに入ってしまます

以下のようにDがシフトしている場合の設定を明示的に追加して、Uだけがシフトするようにすれば大丈夫です。

<autogen>--SimultaneousKeyPresses--
KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::JIS_ATMARK, 
KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::X, KeyCode::O,
KeyCode::VK_NONE</autogen>
・の問題

同手同時打鍵による記号入力のうち、!と?の入力特に問題なくできますデフォルトでは半角ですが、全角にしたければAquaSKKの.ruleファイルで指定するだけで大丈夫です。

!,!,!,!
?,?,?,?

RとF、RとGの同時打鍵による「・」の入力については、jis_shingeta_base.xmlに設定がありません。これは、・についてはIMによって、入力方法が異なるからです。SKK場合はz/で・を入力しまから、RとF、RとG同時打鍵でz/が入力されるようにしましょう。

<autogen>--SimultaneousKeyPresses-- 
KeyCode::R, KeyCode::F,
KeyCode::Z, KeyCode::SLASH, 
KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- 
KeyCode::R, KeyCode::G,
KeyCode::Z, KeyCode::SLASH, 
KeyCode::VK_NONE</autogen>
/の問題

/もjis_shingeta_base.xmlに設定がありません。しかも、SKKデフォルトでは/の直接入力ができませんので、KeyRemap4MacBookの設定を弄るだけでは対応できません。

そこで、まず.ruleファイルに「s/」で「/」が入力できるような設定を追加したうえで、

s/,/,/,/

HとUの同時打鍵でSと/が入力されるようにprivate.xmlに設定を追加します。

<autogen>--SimultaneousKeyPresses-- 
KeyCode::H, KeyCode::U,
KeyCode::S, KeyCode::SLASH, 
KeyCode::VK_NONE</autogen>
「」と()問題

FG同時打鍵による「」、HJ同時打鍵による()入力一見できてるように見えるかもしれませんが、無駄な改行が挿入されるうえ、真ん中に移動してくれません。他のIMでの確定用に無駄なENTERが入力されるからです。

<!-- FG -> 「」 & ENTER & 左移動 -->
<autogen>--SimultaneousKeyPresses-- 
KeyCode::F, KeyCode::G,
KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT,
KeyCode::RETURN, KeyCode::CURSOR_LEFT, 
KeyCode::VK_NONE</autogen>
<!-- HJ -> () & ENTER & 左移動 -->
<autogen>--SimultaneousKeyPresses-- 
KeyCode::H, KeyCode::J,
KeyCode::KEY_8, ModifierFlag::SHIFT_L, 
KeyCode::KEY_9, ModifierFlag::SHIFT_L,
 KeyCode::RETURN, KeyCode::CURSOR_LEFT, 
KeyCode::VK_NONE</autogen>

これは、KeyCode::RETURNを削除すれば解決です。

<!-- FG -> 「」 & 左移動 -->
<autogen>--SimultaneousKeyPresses-- 
KeyCode::F, KeyCode::G, 
KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT,
KeyCode::CURSOR_LEFT, 
KeyCode::VK_NONE</autogen>
<!-- HJ -> () & ENTER & 左移動 -->
<autogen>--SimultaneousKeyPresses-- 
KeyCode::H, KeyCode::J,
KeyCode::KEY_8, ModifierFlag::SHIFT_L, 
KeyCode::KEY_9, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_LEFT, 
KeyCode::VK_NONE</autogen>
選択ベル問題

新下駄配列を使っていると、候補ウィンドウ選択ベル(ASDFGHJKL)が使えなくなりますAquaSKK環境設定で選択ベルを1から9か、1から0に変えておきましょう。

AquaSKK新下駄配列を使うための設定 設定ファイル

自分が昔、(今は非公開にしている)はてなダイヤリーに書いた記事を読もうとしている人がいたので、はてな匿名ダイヤリーに載せます最近MacではKeyRemap4MacBook(後のKarabiner)は使えないですが、AquaSKKの設定部分は参考になるかもしれません。

0 手順

以下の手順で、AquaSKK新下駄配列を使えるようにします。

  1. AquaSKKでの選択ベルを変更
  2. AquaSKK用.ruleファイル作成有効
  3. AquaSKK用のkeymap.confを作成有効
  4. KeyRemap4MacBookでSandSを設定
  5. KeyRemap4MacBook用のprivate.xml新下駄配列用設定を追加、有効
不具合留意

一部のソフトフォントサイズの拡大に使われるControl+Shift+;のキーボードショートカットが使えなくなるという不具合があります。(他にも使えなくなるショートカットがあるかもしれません)

また、AquaSKK以外の入力メソッドでも、新下駄配列になる上、多分そちらでは新下駄配列は快適には使えません。(適時、KeyRemap4MacBookの設定を切り替えてください)

なお、この設定はJISキーボード用です。USキーボードの人はKeyRemap4MacBook用の設定ファイルをUSキーボード向けに修正してみてください。

ショートカットキーの変更

Q,X,Lのショートカットキーは使えなくなります。これらのキーが絡むショートカットキーは以下のように変更されます

カタカナへの切り替え
Control+Q
半角カタカナへの切り替え
Shift+Control+Q
半角英数への切り替え
Control+L
全角英数への切り替え
Control+Shift+Lまたはalt+Shift+L
変換候補を一つ前に戻す
Control+X
変換候補ユーザー辞書から削除
Control+Shift+X
現在入力モードを表示する
Control+;
設定の意味について

各種設定やファイルの内容の意味については、AquaSKK新下駄配列を使うための設定 解説編を参照してください。

1 AquaSKKでの選択ベルを変更

AquaSKK環境設定の「変換」タブの「選択ベル」の内容を以下の通り変更します。

1234567890
2 AquaSKK用.ruleファイル作成有効
~/Library/Application Support/AquaSKK/

に以下の行を含み、ファイル名が.ruleで終わるテキストファイル作成の上、AquaSKK環境設定の「かな規則」タブでチェックを入れます

s/,/,/,/
4 AquaSKK用のkeymap.confを作成有効
~/Library/Application Support/AquaSKK/

に下記の内容を含むkeymap.confという名称テキストファイルを追加した後、AquaSKKメニューから設定ファイルの再読み込みをします。

###
### keymap.conf
###

# ======================================================================
# event section
# ======================================================================

SKK_JMODE		ctrl::j||alt::j||ctrl::shift::j
SKK_ENTER		group::hex::0x03,0x0a,0x0d||ctrl::m
SKK_CANCEL		ctrl::g||hex::0x1b
SKK_BACKSPACE		hex::0x08||ctrl::h
SKK_DELETE		hex::0x7f||ctrl::d
SKK_TAB			hex::0x09||ctrl::i
SKK_PASTE		ctrl::y
SKK_LEFT		hex::0x1c||ctrl::b||keycode::7b
SKK_RIGHT		hex::0x1d||ctrl::f||keycode::7c
SKK_UP			hex::0x1e||ctrl::a||keycode::7e
SKK_DOWN		hex::0x1f||ctrl::e||keycode::7d
SKK_PING		ctrl::;
SKK_UNDO                ctrl::/

# ======================================================================
# attribute section(for SKK_CHAR)
# ======================================================================

ToggleKana		ctrl::q||alt::q
ToggleJisx0201Kana	shift::ctrl::q
SwitchToAscii		alt::l||ctrl::l
SwitchToJisx0208Latin	shift::ctrl::l||alt::shift::l

EnterAbbrev		/
EnterJapanese		Q
NextCompletion		.
PrevCompletion		,
NextCandidate		hex::0x20||ctrl::n
PrevCandidate		ctrl::x||ctrl::p
RemoveTrigger		ctrl::X

UpperCases		group::A-Z
Direct			group::keycode::0x41,0x43,0x45,0x4b,0x4e,0x51-0x59,0x5b,0x5c,0x5f
InputChars              group::hex::0x20-0x7e

CompConversion		alt::hex::0x20||shift::hex::0x20

# ======================================================================
# handle option
# ======================================================================

AlwaysHandled           group::keycode::0x66,0x68
PseudoHandled          hex::0x1b

4 KeyRemap4MacBookでSandSを設定

KeyRemap4MacBookインストールの上、KeyRemap4MacBook最初からまれている「Space to Shift_L (+When you type spce only, send Space)」の設定を有効します。

5 KeyRemap4MacBook用のprivate.xml新下駄配列用設定を追加、有効

以下の要素をKeyRemap4MacBook用のprivate.xmlファイルに追加し、private.xmlの再読み込みをした上で、有効します。

                <item>
                  <name>新下駄配列Aqua SKK向け・ローマ字入力)</name>
                  <identifier>remap.jis_shingeta_input_roman_qwerty_skk</identifier>
                  <inputmode_only>JAPANESE</inputmode_only>

<!-- 新下駄配列 -->
<!-- 単打Shift -->
<!-- 2段目 - ーには、ちぐばこがひげ「 -->
<autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::SHIFT_L, KeyCode::MINUS,                  KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::W, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::E, ModifierFlag::SHIFT_L, KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::COMMA,                  KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::U,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::I, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::O,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::O, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::P, ModifierFlag::SHIFT_L, KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::JIS_ATMARK, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::E, KeyCode::VK_NONE</autogen>
<!-- 「 -->

<!-- 3段目 - のとかんっくういしなBS」 -->
<autogen>--KeyToKey-- KeyCode::A, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::O,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::O,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::A,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::F, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::N,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::U,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::J, ModifierFlag::SHIFT_L, KeyCode::U, ModifierFlag::SHIFT_L,                         KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::I, ModifierFlag::SHIFT_L,                         KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::L, ModifierFlag::SHIFT_L, KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::I,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::A,     KeyCode::VK_NONE</autogen>
<!-- 」 -->



<!-- 4段目 - すまきるつてたで。ぶ¥ -->
<autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::SHIFT_L, KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::M, ModifierFlag::SHIFT_L, KeyCode::A,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::C, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::I,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::V, ModifierFlag::SHIFT_L, KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::E,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::M, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::A,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::SHIFT_L, KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::E,    KeyCode::VK_NONE</autogen>
<!-- 。 -->
<autogen>--KeyToKey-- KeyCode::SLASH, ModifierFlag::SHIFT_L, KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::U,    KeyCode::VK_NONE</autogen>

<!-- 単打 -->
<!-- 2段目 - ーには、ちぐばこがひげ「 -->
<autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::NONE, KeyCode::MINUS,                  KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::W, ModifierFlag::NONE, KeyCode::N, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::E, ModifierFlag::NONE, KeyCode::H, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::R, ModifierFlag::NONE, KeyCode::COMMA,                  KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::T, ModifierFlag::NONE, KeyCode::T, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::NONE, KeyCode::G, KeyCode::U,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::U, ModifierFlag::NONE, KeyCode::B, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::I, ModifierFlag::NONE, KeyCode::K, KeyCode::O,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::O, ModifierFlag::NONE, KeyCode::G, KeyCode::A,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::P, ModifierFlag::NONE, KeyCode::H, KeyCode::I,          KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::JIS_ATMARK, ModifierFlag::NONE, KeyCode::G, KeyCode::E, KeyCode::VK_NONE</autogen>
<!-- 「 -->

<!-- 3段目 - のとかんっくういしなBS」 -->
<autogen>--KeyToKey-- KeyCode::A, ModifierFlag::NONE, KeyCode::N, KeyCode::O,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::S, ModifierFlag::NONE, KeyCode::T, KeyCode::O,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::D, ModifierFlag::NONE, KeyCode::K, KeyCode::A,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::F, ModifierFlag::NONE, KeyCode::N, KeyCode::N,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::G, ModifierFlag::NONE, KeyCode::X, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::J, ModifierFlag::NONE, KeyCode::U,                         KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::K, ModifierFlag::NONE, KeyCode::I,                         KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::L, ModifierFlag::NONE, KeyCode::S, KeyCode::I,             KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::NONE, KeyCode::N, KeyCode::A,     KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::JIS_COLON, ModifierFlag::NONE, KeyCode::DELETE,            KeyCode::VK_NONE</autogen>
<!-- 」 -->

<!-- 4段目 - すまきるつてたで。ぶ¥ -->
<autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::NONE, KeyCode::S, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::X, ModifierFlag::NONE, KeyCode::M, KeyCode::A,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::C, ModifierFlag::NONE, KeyCode::K, KeyCode::I,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::V, ModifierFlag::NONE, KeyCode::R, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::B, ModifierFlag::NONE, KeyCode::T, KeyCode::U,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::N, ModifierFlag::NONE, KeyCode::T, KeyCode::E,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::M, ModifierFlag::NONE, KeyCode::T, KeyCode::A,        KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::NONE, KeyCode::D, KeyCode::E,    KeyCode::VK_NONE</autogen>
<!-- 。 -->
<autogen>--KeyToKey-- KeyCode::SLASH, ModifierFlag::NONE, KeyCode::B, KeyCode::U,    KeyCode::VK_NONE</autogen>
<autogen>--KeyToKey-- KeyCode::JIS_UNDERSCORE, ModifierFlag::NONE, KeyCode::JIS_YEN, KeyCode::VK_NONE</autogen>

<!-- 中指シフト -->
<!-- 2段目 - K:ファごふフィフェ , D:ウィぱよみウェウォ -->
<!-- K -->
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::Q, KeyCode::F, KeyCode::A,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::W, KeyCode::G, KeyCode::O,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::E, KeyCode::F, KeyCode::U,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::R, KeyCode::F, KeyCode::I,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::T, KeyCode::F, KeyCode::E,                      KeyCode::VK_NONE</autogen>
<!-- D -->
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::Y, KeyCode::W, KeyCode::I,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::U, KeyCode::P, KeyCode::A,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::I, KeyCode::Y, KeyCode::O,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::O, KeyCode::M, KeyCode::I,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::P, KeyCode::W, KeyCode::E,                      KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::JIS_ATMARK, KeyCode::U, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
<!-- Shiftウォ -->
<autogen>--SimultaneousKeyPresses-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::JIS_ATMARK, KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>


<!-- 3段目 - K:ほじれもゆ , D:へあ[][]え -->
<!-- K -->
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::A, KeyCode::H, KeyCode::O, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::S, KeyCode::J, KeyCode::I, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::D, KeyCode::R, KeyCode::E, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::F, KeyCode::M, KeyCode::O, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::G, KeyCode::Y, KeyCode::U, KeyCode::VK_NONE</autogen>
<!-- D -->
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::H, KeyCode::H, KeyCode::E, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::J, KeyCode::A,             KeyCode::VK_NONE</autogen>
<!-- [] -->
<!-- [] -->
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::SEMICOLON, KeyCode::E,     KeyCode::VK_NONE</autogen>

<!-- 4段目 - K:づぞぼむフォ , D:せねべぷヴ -->
<!-- K -->
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::Z, KeyCode::D, KeyCode::U,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::X, KeyCode::Z, KeyCode::O,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::C, KeyCode::B, KeyCode::O,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::V, KeyCode::M, KeyCode::U,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::B, KeyCode::F, KeyCode::O,     KeyCode::VK_NONE</autogen>
<!-- D -->
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::N, KeyCode::S, KeyCode::E,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::M, KeyCode::N, KeyCode::E,     KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::COMMA, KeyCode::B, KeyCode::E, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::DOT, KeyCode::P, KeyCode::U,   KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::SLASH, KeyCode::V, KeyCode::U, KeyCode::VK_NONE</autogen>

<!-- 薬指シフト -->
<!-- 2段目 - L:ぢめけティディ , S:シェぺどやジェ -->
<!-- L -->
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::Q, KeyCode::D, KeyCode::I,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::W, KeyCode::M, KeyCode::E,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::E, KeyCode::K, KeyCode::E,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::R, KeyCode::T, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::T, KeyCode::D, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen>
<!-- S -->
<autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::Y, KeyCode::S, KeyCode::H, KeyCode::E, KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::U, KeyCode::P, KeyCode::E,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::I, KeyCode::D, KeyCode::O,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::O, KeyCode::Y, KeyCode::A,             KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::P, KeyCode::J, KeyCode::E,             KeyCode::VK_NONE</autogen>

<!-- 3段目 - L:をさおりず , S:びら[][]そ -->
<!-- L -->
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::A, KeyCode::W, KeyCode::O,         KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::S, KeyCode::S, KeyCode::A,         KeyCode::VK_NONE</autogen>
<autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::D, KeyC


  

Javaをメインで書いているわけではないけど

別にJava良くないか

なんならRubyより静的言語だという点で優れているような。

最近Go流行っているが、それならJavaだって同様に良さそうな気がする。

Java批判すべき点ってなんなんだろう。

- 記述冗長

- nullがたまにうざい

- なんか重厚な感じがする

- 重厚アーキテクチャ流行りすぎた?

- ORMとかが重厚なのが多かった

- ビルドツールが洗練されていない時代があった

- 故に環境構築が大変だった

- tomcat + jar みたいなのがだるかった?

- strutsがしんどかった

- 未だにstruts脆弱性が見つかったりするところ

- xml地獄からアノテーション化したりいろいろと模索していた

- なんかJava案件地雷が多かったとか?

- ちょっと昔には「俺たちイケてるプログラマ」はみんなRailsに移っていった流れがあった?

- Effective Javaよいが、そもそもそういうtips意識せずにそう書けるような言語仕様になってほしかった気もする

- 非同期処理やスレッド処理がやや難しかたか、あるいは言語側でのサポートが薄かったか(?)

言語仕様的な批判と、エコシステム的な批判に分けられそうなきがするな。

関数型言語の関心はScalaClojureに全フリしてもらって、Javaシンプル機能を持つGo方向性なModan Javaになっていってくれれば良さそうな気も。

httpサーブレットとかそのへんが微妙だったかもしかしてGoみたいにnet/httpライブラリが標準であればそれをベースにすることでオレオレフレームワークの乱立を避けることができるか、と思ったけどJAX-RSとかがあるな。

Goだって冗長記述必要言語だが、好かれているし、Javaも悪くない言語な気がするんだよな。

まあ何でもいいが。

ロジカルに考えているようで結局なところ雰囲気的なところに左右されているエンジニア多い気がする。

まあわいも、人気な言語に乗っておいて高単価を得られたほうがいいのでそうするが。今の所Goが肌にあっているんだよな・・。3年ぐらい使って熟練度上がってきたし、さほど悩まずにコーディングすることができる。

PHPの人が好きな、あるいはRubyのmethod_missingなど活かしたテクコードは、書いているやつは気持ちいかもしれないがわいは明示的にinterfaceがわかるコードが書かれていたほうが好きだ。型で振る舞いがわかったり制御されていないと分かりづらくない?複数プロジェクトを掛け持ちするから、読むときに前提知識が少なく読めるコードがいい。

まあJavaもリフレクションでテクいことができる気がするな。

Goがいい。誰が書いてもだいたい同じコードになるから、誰かに作業を振ったとしてもレビューやすい。

まあこれからJavaを書く気はしないが、GoAPI書いているマンから見ると、JAX-RSとかでゴリゴリAPI書いていくの全然悪くないんじゃないかと思うのであった。

最悪別にGeneric入らなくてもいいかもな。別にそんなに困ってない。はいってくれるなら、はいってくれたほうがいいが。sliceに対してmap, each, filter, existsなどのメソッドが生えることになるイメージかな。まあそれは欲しくなるけどな・・・

Scalaもいいんだが、たまにイキったコードを書くと分かりづらくなる時がある。イケてるコードを書こうと思ったとき結構パワーを使う言語だ。なんかモナドってジェネリックを更に強くしたやつだとも捉えられるような気がするな。ゴリゴリ関数型で書こうと思った場合プロジェクト全体に影響がある話なのでアーキテクチャ設計に力がいる気がする。

年をとると大事にするポイントが変わってくるな。昔はスーパープログラマになりたくて関数型言語とかやっていたが、今はいかに効率よく仕事をする=金を稼ぎ自由を得るかを重視している。職業プログラマとなったわけだ。仕様固めたりリリースしたり不具合対応したり運用したり、フリーランスなら税金計算したり、金儲けの方法考えたり忙しいんじゃ。今は結局スーパープログラマとは何か悩ましいよ。「プログラマとして」キチガイレベルにすごい人間というのはまだ見たことがないかもしれない。コーディングが早い?バグ修正が早い?パフォーマンスやばいコードを書ける?設計が優れている?

わいのレベルが低くて、高い人間凄さに気づけていないのかもしれないな。

2019-06-12

googlemapion店舗などの情報(とくにチェーン店バス停など)

地図サイトのほうで、一定の書式で企業が自社サイトなどに置いたXMLファイルあたりを定期的にフェッチして自動反映できないのかね。新店舗が出来てもなかなか反映されない。

いまだ有志の登録頼みなのかよ。地図自体衛星写真から起こしているのに。google 検索なんかはサイトマップXMLみたいなのを拾って検索結果に自動反映しているくらいなのだから所在地情報サイトに置いてあったら取り込みしては。

2019-04-25

AI人工知能)の違和感

ニュース新聞で、

「~~大学研究チームが、”AI人工知能”によって~~を可能にする□□を~」とか、

株式会社~~が”AI人工知能)”による自動化を本格化~」とかしばしば聞くけど、

AI」と略してるのにわざわざ「人工知能」と付け加える事に違和感を感じる。というか長ったらしいからやめてほしい。

今の時点で「AI」と聞いて「人工知能」を連想しない人なんてほぼいないだろうし、いたとしても「人工知能」と付け加えたところで今更何のことだか意味不明だろうし。

一昔前は「XML拡張可能マークアップ言語)」なんて余計に意味不明になる付記があったけど、こうしたマスコミ過保護な付記ってそろそろやめてくれって思うけど、一般にはどう思われてるんだろう?

2019-04-03

Office2016とAccess2019について

現在、弊社では在庫管理Access使用している。

以前は何か独立した装置で行っていて、2000年問題(!)の際にAccessに切り替えたそうだ。

しかし、新しいAccess(弊社ではAccess2016)を使用してMDBファイルAccess2000-2003データベース)の最適化を行った時にレコード消失するバグがあった。

消える量は微々たるものであるが、最適化のたびにランダムデータが消えるのではデータベースとしては役に立たない。

このバグについて調べるにあたって、偶然会社倉庫に眠っていたAccess2007を発見し、それで検証してみたところものすごい量のデータ消失していた。2007環境作業していた人はおかしいと思わなかったのだろうか?(社内でAccessはこの在庫管理しか使っていない)

2016で同様の検証をしてもなかなか消失確認できなかったが、実務上確実にデータが消えていることを時折確認している。これは最新バージョンで解消されているそうだが、会社PCであるのでアップデート適用が随時は行われず、4か月遅れであるようであった。

ただ、4か月遅れとはいえ時折バージョンアップされているにも関わらずバグが解消される気配が全くないまま業務を行っていたのだが、いい加減やってられないのでやむを得ずAccess2019を導入することとした。このあたりについて調べている時、そもそもバージョンアップ内容のアナウンスがかなり複雑に隠されていたり、アナウンスされていなかったりとMicrosoftの不親切さを痛感した数時間だった。

ただし、Access2019にアップグレードたからといってバグが解消される確信はなかった。

私はそもそもMDBなどという古い形式で強行するのはやめたい、システム的にも古い上に個人エンジニアが開発したものであり、古いからではなくそもそもの造りにバグが多く、現在弊社の事業規模に見合ったサポートを受けられていないことからシステムのもの更新して欲しいと上申し続けている。

というか2000人を抱える大企業でこんな古い(しかバグを抱えた)データベースに頼っているってどうなの?

しかしなかなか承認を得られないため、やむをえず応急処置的に最新版である2019を導入することとした。

データベース管理に使っているPCにはボリュームライセンス版のOffice2016がインストールされている。

ここにAccess2016を個別に購入し、インストールしている。

ライセンス的にはOffice2016とAccess2016は別であるが、同じ2016同士なので共存できているようだ。

ここにAccessのみ2019をインストールしてみようとしたが、Office2016がインストールされているためインストールできませんとなってしまった。

以前、別の会社にいた時に2003と2010か何かは共存させた気がするのでできると思っていたが、起動のたびにオンライン認証しているからだろうか。今はもう無理らしい。

そもそもボリュームライセンス版のAccess2019(Office2019)のインストールは非常に面倒くさい。

いわゆるインストーラではなく、コマンドプロンプトからインストールであるGUI環境創造し、推進してきたMicrosoftが、この2019年になってCUIを持ち出してきたのだから驚きだ。

このあたりは調べたらいろいろ有意情報がたくさんでてくるので、そちらを参考にしてもらいたい。

ちなみにConfiguration.xml作成は非常に面倒であるが、Microsoft提供している、質問に答えていくだけで作成してくれるものを使うのが一番楽にできる。

リモートがオンになっているとインストールに支障があるというのも謎だ。

バグに対しても、Office2016とAccess2019の共存についても解決できていないが、もしこの記事を見て何か思い当たる点がある人がいれば連絡をください。

2019-03-28

コメントが足りねえって

XMLコメントが足りません」って警告がめっちゃ出てるじゃん。って言われても

何のためのデザインパターンだよ。何のためのRESTだよ。

コントローラーにはAPIコントローラーしかねえだろ。

GETは取得だよ。

リクエストModelに送るだけの層にどんなコメント必要なんだよ。

自分ソース読めないのを人のコメント不足のせいにするな。

2019-02-24

この前説明会受けてて印象に残った企業

この前中途エンジニア限定した合同説明会に行った時の話なんだが、

大体の会社はこういう技術メイン使うことが多くて取引先はこういうところでこういう企業理念で~みたいなまあある程度はざっくりした感じの話で細かいところは質疑応答で、みたいな話になることが多かったんだけど、

なんかとある会社名が全部漢字のお堅そうな企業だけ「このプロジェクトのこのシステムのこの機能に対してこの設定ファイルをこんな感じでいじっていただきます」みたいななんかやたらに具体性のある説明をしてきて、

しかもそれが1プロジェクト内の1タスクみたいな内容だったからなんか違和感あったんだけど、

で、どうやらXMLファイルを投入すると自動フォームが作られる自社ツールがあるらしくて、

それを上流から流れてきたExceL通りにXMLファイル作成・投入してExcelスクショテストするお仕事らしい。

んで、そのフォーム作成サービスパッケージ化されているというか、取引先ごとに週次や月次でそのタスクが発生するからそれ専用の要員を募集しているとのこと。

それも昔から長く提供されているサービスらしく、案件が終了する目処はないし基本はガチでそれだけやり続ければいいらしい。

使用言語はなんですか?」って聞いたら「XMLです。他は基本使いません。」って言われてびっくらこいた。

サーバ監視バイトよりも何も自分の身に残らなそう。5年の務めたら市場価値めっちゃ下がるんじゃないかこれ。

こういう仕事が気楽でいいなって思う人はいると思うし会社としてこういう要員が必要なのは別にわかるんだが、これ中途エンジニア募集かける必要あるか?

いやその要員の募集かけるにしてもその辺濁してやらんと誰もこんだろって思ったという話でした。

2019-01-06

iOSの標準ライブラリってDOMXMLパーサねえのな(SAXはあった)

まずDOMを作るところからか…

あーめんどくさ

いや、libxml2は使えるのか

こっちにしよ

SAXだとXMLを出力する時に大変だしな…

2018-11-30

悲報俺氏エラー コード: 0x803F8001が解決せずに咽び泣く

Windows10Home(64bit)でソリティアとかマインスイーパーやらMicrosoftゲームを起動したら

「お使いのアカウントMicrosoft xxxx現在利用できません。エラー コード: 0x803F8001」

とのメッセージが出るからググったら以下のような解決策が見つかるがどれを実行しても解決しない

WindowsUpdateで最新の状態にする

・ 「Windowsストアアプリ」のトラブルシューティングツール実行

・「アプリ機能」の「詳細オプション」で「リセット

サインアウトしてサインイン

アンインストールして再インストール

・wsresetを実行

・cmdで「PowerShell -ExecutionPolicy Unrestricted -Command "& {$manifest = (Get-AppxPackage Microsoft.WindowsStore).InstallLocation + '\AppxManifest.xml' ; Add-AppxPackage -DisableDevelopmentMode -Register $manifest}"」を実行

OS再起動

ログイン ユーザー登録
ようこそ ゲスト さん