
はてなキーワード:ASCIIとは
確かに使ってた。使ってはいるけど解凍を使ってるのは自己解凍のところだけで、e,xオプションのところでは「ファイルを取り出す」表記。凍結表記もaオプションのところだけ。
(LHAになる前のバージョンだけど)LHarcソースコード内の日本語版の使い方
char use[] =
"LHarcversion 1.13cCopyright(c) H.Yoshizaki(吉崎栄泰), 1988-89.\n"
"============================================================= 1989 - 5 - 21 ===\n"
" <<< 高圧縮書庫管理プログラム>>>\n"
"===============================================================================\n"
"使用法:LHarc [<命令>] [{/|-}{<スイッチ>[-|+|2|<オプション>]}...] <書庫名>\n"
" [<ドライブ名>:|<基準ディレクトリ名>\\] [<パス名> ...]\n"
"-------------------------------------------------------------------------------\n"
" 《命令》\n"
" a:書庫にファイルを追加 u:書庫にファイルを追加(日時照合付)\n"
" f:書庫のファイルを更新 m:書庫にファイルを移動(日時照合付)\n"
" d:書庫内のファイルの削除 e,x:書庫からファイルを取り出す\n"
" p:書庫内のファイルの閲覧 l,v:書庫の一覧表示\n"
" s:自己解凍書庫の作成 t:書庫内のファイルのCRC チェック\n"
" 《スイッチ》\n"
" r:再帰的収集を行う w: ワークディレクトリの指定\n"
" x:ディレクトリ名を有効にする m: 問い合わせを行わない\n"
" p:名前の比較を厳密に行う c: 日時照合を行わない\n"
" a: 全属性を凍結の対象とする v: 他のユーティリティでファイルを閲覧\n"
" n: 経過表示をしない k:自動実行のキーワードの設定\n"
"===============================================================================\n"
"転載・再配布などは自由です。Nifty-Serve PFF00253\n"
英語版の使い方
char use[] =
"LHarcversion 1.13cCopyright (c) Haruyasu Yoshizaki, 1988-89.\n"
"================================================================ 05/21/89 ===\n"
" <<< High-Performance File-Compression Program>>>\n"
"===============================================================================\n"
"usage:LHarc [<command>] [{{/|-}{<switch>[-|+|2|<option>]}}...] <archive_name>\n"
" [{<drive_name>:}|{<home_directory_name>\\}] [<path_name> ...]\n"
"-------------------------------------------------------------------------------\n"
" a:Add files to archive u: Update files to archive\n"
" f: Freshen files in archive m:Move new files into archive\n"
" d:Delete files from archive e,x: EXtract files from archive\n"
" p: disPlay files in archive l,v:View List of files in archive\n"
" s:make a Self-extracting archive t:Test integrity of archive\n"
" r: Recursively collect files w: assign Work directory\n"
" x: allow eXtended file names m: noMessage for query\n"
" p: distinguish fullPath names c:skiptime-stamp Check\n"
" a: allowany Attributes of files v:View filesbyanother utility\n"
" n: display No indicator k:Keyword for AUTOLARC.BAT\n"
" t: archive'sTime-stamp option\n"
"===============================================================================\n"
"Youmay copy or distribute withoutany donation to me.Nifty-Serve PFF00253\n"
" (See theUser'sManual for detailed descriptions.)ASCII-pcspcs02846";
プログラマーって聞くと今の若い人は稼げる業種って思うかもしれない。でも昔は、そのイメージとはまるで真逆だったんだよ。
90年代初頭、日本はバブルの余韻が残ってたけど、IT業界なんてまだオタクの延長みたいに見られていた。NECのPC-9801シリーズがオフィスの定番で、OSはMS-DOS 3.3とか、その後にWindows 3.1が出ておお、マウスで操作できる!なんて騒がれていた時代だ。
もちろんインターネットなんて一般にはまだ普及してなかった。せいぜいパソコン通信。ニフティサーブ、PC-VAN、アスキーネット。回線速度は2400bps。ピーヒョロロっていうモデム音が夜中の住宅街に響いていた。
俺らはそういう環境でC言語やアセンブラを叩いてたんだ。コンパイルに時間がかかるから、トイレに行って戻ってきてもまだ終わってなかったりした。
今みたいにGitHubでコードを共有なんて夢のまた夢。ソースのやり取りはフロッピーディスクで手渡しだ。5インチのぺらぺらのやつな。運が悪いと磁気にやられて一発で飛ぶ。だから俺たちはよくフロッピー神社に参拝とか冗談言ってた。
正社員で手取り20万ちょっと。下請けやフリーランスだともっと安い。今でいうSESの走りみたいな人売りも普通にあった。客先常駐でCOBOLやらされてバグが出れば徹夜。オフィスに寝袋持ち込んで、カップヌードルと缶コーヒーの山を築く。徹夜明けに食う吉野家の牛丼が唯一のご褒美。今みたいにエンジニアは市場価値が高いなんて考え方はなかったからな。ただの駒だよ。
仕事は増えるのに単価は下がる。Windows 95の発売で世の中はインターネット元年なんて浮かれてたけど俺たちプログラマーの現実は泥臭いコード修正の山。Visual Basic 6.0やDelphiが出て「これで開発効率が上がるぞ」なんて言ってたが、結局は納期に追われるだけ。SunのJavaが登場したときも「Write once,run anywhere」なんて夢を見せてくれたけど、実際には動かないアプレットと格闘する日々。
Linuxが台頭してきたのもこの頃だ。
SlackwareやRed HatLinux 5.2をCD-ROM雑誌付録で手に入れて、夜な夜なインストールに挑戦。LILOがうまく動かなくて起動しない、ネットワークカードを認識しない、X Windowが真っ黒。そんな壁に何度もぶつかっては2ちゃんねる(当時はまだ草の根BBSが多かったが)やUNIX USER誌を読み漁って解決する。それが楽しくて仕方なかった。でも金にはならなかった。オープンソースに貢献しても無償の善意で済まされるだけ。Red HatやMySQL ABが上場するまでは、ただのボランティア活動と見なされてた。
今思うと、あの頃は純粋だった。
技術そのものが楽しくて、ASCIIやOh!Xを小脇に抱えて徹夜でコードを書いた。秋葉原でジャンクパーツを漁って自作PCを組み立ててベンチマークの数字で一喜一憂した。
飯代を削ってもSCSIのハードディスクに投資したし、月刊アスキーの付録CD-ROMに入ってたシェアウェアを片っ端から試した。儲けようなんて意識はなかった。ただ、面白いものを作りたかった。
それが今じゃITは完全に拝金主義。コードの美しさより投資家の顔色を見てる。エンジニアもどこが年収高いかばかりで、言語やフレームワークを選ぶ基準が金になっちまった。Pythonが流行るのもAIブームに便乗してのことだし、ブロックチェーンやNFTなんかバブルがはじける前提のネタ探しにしか見えなかった。
もちろん、技術が商業化されて豊かになった面もある。AWSやGCPのおかげで誰でも世界規模のサービスを立ち上げられるようになったし、GitHubやDockerで開発環境も夢みたいに便利になった。だがその一方で楽しいからやるという純粋さはどこへ行ったんだろう。GitHubの草がどれだけ生えてるかが採用基準になる時代。Qiitaに記事を投稿するのも、技術共有じゃなくて転職市場でのポイント稼ぎ。
あの頃には確かに、金ではなく面白さに突き動かされる熱があった。それが今は金の匂いに上書きされてしまったように感じる。
でも稼げなくても、やる価値があった。
今の若いエンジニアたちにその気持ちがどれだけ伝わるかは分からない。
当時「Hello, world.」と表示されるだけのプログラムに、30年前の俺は心を震わせていた。
∞
0b101001 ⇆ 0xDEAD BEEF ⇆ 42 ⇆ Ⅳ²
miaou… ニャー… ꯀꯪꯍꯧ? κουάκ! כוּאַק! куак!
∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑∑
/* ----- .- -. --. .-.-.- / .- .. / .---- -.-.-- */
(λf.(f f)) (λf.(f f)) // ouroboros in λ-land
ᚠᚢᚦᚨᚱᚲᚷᚹᚺ
ΣΩΨΦ ≡ ∞ ≡ ℵ₀ ≡ 🜂 --???--
beep ⟿ boop ⟿ _̷̳̲̠͎͌̆͐̔͢͠ͅ!͓̟̦͗͆
> INT 10h
> JMP $
π ≠ τ? ※ the proof escapedatdawn
🐸: “ribbit / kvæk /croâ”
🐺: “awoooo0000”
🐝: “bZZZz… ---.. ---..”
01001000 01100101 01101100 01110000 ← haunting inASCII
𝑑𝑥 ⟿ ∮𝑑𝑥 = 0 (closed curve,open verdict)
———— ———— ———— ————
| 空欄 | vacío | леere | ﷽ |
———— ———— ———— ————
0 ! 1 ! 1 ! 2 ! 3 ! 5 ! 8 ! 13 ! 21 ! …
printf("ここで終わらない\n"); // yet terminates
·−·−· … … ·−·−·
「 」←nothing to see
╔═╗╦ ╦╔═╗╔═╗╦═╗ ∴
║ ╦║ ║╚═╗║ ╠╦╝ ∵
╚═╝╚═╝╚═╝╚═╝╩╚═ ∴
end; // or not? …fin.
午前3時、炊飯器のループBGMが「退路ゼロで前に出ろ」とドラムを刻み、冷蔵庫が勝手に自撮りした顔面テクスチャをAI Tuberに貼り付けて戦闘態勢。干しっぱなし靴下は旗印に進化し、コメント欄には<推し=家電=運命>三段活用が疾走する。電子レンジは「止まったら死ぬ」と扉ヘドバンでラップ、Wi-FiルーターはLEDを閃光手榴弾にして「踏み込め、躊躇うな」のモールス。壁ドンは絶叫ギターソロへ変貌、米派・靴下派・壁ドン教の三国志が血煙を上げる。猫型掃除機はスパチャ硬貨を吸い込みGPUを錬成、「残り血液まで投げ銭せよ」と真紅の字幕。洗面所の電球は一閃ごとに転職広告をシャウト、浴室ミストが観客席を召喚、家全体が“SoldOut”の戦場へコンバート。終盤、ドラム式洗濯機が輪廻転⽣しVTuberデビュー、「迷う暇など無い」と回転加速でスパチャファンネル乱射。部長の社内アカは“尊い”連投1000コンボ、就業規則が歌詞カードに書き換わり社員全員がコール&レスポンス。気付けば俺は背景PNGに格下げ、しかし瞳だけは燃え尽きず無限ループへダイブ。最後、窓がASCIIアートで「走れ、止まるな」と閉じ、炊飯器メロが夜明けの号砲を鳴らす――ドドンコ!
OSのコマンドプロンプトはどうしてスペースを区切り文字としたのだろうか?もしタブを区切り文字として採用していれば、混乱はもっと少なかったと思うのだけど。
と、いう素朴な疑問からスタートし、タブが唯一の由緒正しい区切り文字として採用されていた世界線を考察しました。
https://grok.com/share/bGVnYWN5_aa43b346-0185-4f3e-ac4f-7712a59545c8
この世界線で、TABのみが由緒正しく使える使える区切り文字です。
tsvデータが主流となりcsvデータのparseで悩む人にいなくなる。
スペースとタブを区別するために[TAB]のようなフォントも作られるだろう。
さらに、プログラムのインデントもスペースではなく、すべてタブで行われるようになり、タブ幅は2なのか4なのか8なのか論争も起きなかっただろう。個人のエディタの設定で変えればいいだけですしね。
もちろん、ASCII規格のUS(Unit Separator,ASCII31):ユニット(フィールド)の区切り、に相当するキーがキーボードに搭載されていたとしたら、それを使うのが最良だったと思う。
しかしながら、多くのキーボードにはスペースキーかタブキーぐらいしかなく、これを使うことはできなかったでしょうね。
まとめ
コマンドの区切り文字にスペースを使ってしまった、インデントにスペースを使ってしまった。
この辺りの失敗が多くの人を悩ませていると思う。
昔、とあるプログラミングの成果物のファイルを納品したとき、お客さんから「UTF-8で納品していただく約束でしたが、Shift-JISでした。正しいファイルをいただきたいです。」とクレームがはいった。
ご存じの通り、UTF-8、SHIFT-JIS、EUCはASCIIの文字コードは同じ、互換性がある。
言ってみれば、ASCII文字しか使っていなければ、どの文字コードでエンコードしても一緒だし、この場合エディタはどの文字コードなのかを判別はできないので推測で文字コードを決めることになる。
だから、こんな風に返事した
「本ファイルはASCII文字のみを使用しているため、UTF-8とShift-JISのいずれの文字コードでも正しく認識されます。ASCII文字は、UTF-8とShift-JISのどちらにおいても共通であり、文字コードによる違いはございません。そのため、お客様のエディタ上でShift-JISと表示された場合でも、UTF-8との互換性が保たれておりますので、ご安心ください。」
返事したんだが、帰ってきたのが
「うちのエディタではShift-JISと書かれております。互換性はあるかもしれませんが、正しく認識されるように再度おくってください」と
つまり『互換性があるということで怠けないで、問題がないにしても当初の通りエディタでUTF-8と識別されるファイルを送れ』って言われた。
以下の形式でタイトルを入力する。(いつもの「言及する」でデフォルトで入るタイトルに :title=タイトル を付け加える。)
また、上記の例でイタリックにしているように <i> や <s> や <span> など一部のHTMLタグが使える。
<!-- --> で囲まれた箇所は表示されないので、ネタを思いついたけど投稿するべき時ではない場合に下書きを書いたり、増田をメモに使ったりすることができる。
元増田はタイトルと本文のすべてを <!-- --> で囲んでいる。どうせ空増田が投稿されても誰も気にしないので問題ない。
また、本増田では <!-- --> をそのまま入力すると表示されなくなるので < は < と入力している。> は >である。ASCIIコード表を見て &# と ; の間を埋める。
すぐ下に
この項目では色を扱っています。閲覧環境によっては、色が適切に表示されていない場合があります。
伝統的に主人公は「@」記号で表され、他のキャラクター(敵モンスターなど)はアルファベットで表される。ローグでは大文字のアルファベットしか使用されていなかったが、最近のローグライクゲームでは大文字と小文字で異なるモンスターを表していることも多い。例えばイヌ(dog)は小文字の「d」で表され、ドラゴンを大文字の「D」で表されるなどである。さらに文字の色を変えることによって異なるモンスターを表すこともある。例えば、レッド・ドラゴンは赤い文字の「D」で表され、ブルー・ドラゴンは青い文字の「D」で表されるなどである。ダンジョンの地形やアイテムなどはASCIIに含まれる他の記号が用いられる。
があるの草。
Sub CheckForGarbledCharacters()
Dim rngAs Range
Dim iAs Integer
Dim garbledFoundAs Boolean
Dim unicodeValAs Long
garbledFound =False
' すべてのワークシートをチェックします。
For Eachws In ThisWorkbook.Worksheets
For Eachcell In rng
If Not ((32 <= unicodeVal And unicodeVal <= 126) Or (12353 <= unicodeVal And unicodeVal <= 12447) Or (12448 <= unicodeVal And unicodeVal <= 12543) Or (65382 <= unicodeVal And unicodeVal <= 65439) Or (19968 <= unicodeVal And unicodeVal <= 40959)) Then
MsgBox "文字化けが見つかりました: " & vbCrLf & _
"ワークシート: " &ws.Name & vbCrLf & _
"セル: " &cell.Address & vbCrLf & _
"セルの値: " &cell.Value & vbCrLf & _
"文字化けしている文字: " &char, vbExclamation
garbledFound =True
Exit For
End If
Next i
If garbledFound ThenExit For
If garbledFound ThenExit For
If Not garbledFound Then
MsgBox "文字化けが見つかりませんでした。", vbInformation
End If
EndSub
夜な夜な皿の枚数を数えるお菊の亡霊が現れるとの噂を聞きつけ、皿屋敷の裏にある井戸を訪れた。
もう夜が更けていたせいか、井戸に亡霊が現れ何やら数える声が聞こえる。
亡霊「0枚…1枚…2枚…」
私「で、出たーっ!0枚の前にもなにか数えていたけど、今着いたばかりで聞き取れなかったな」
亡霊(悲しそうに)「3枚…4枚…」
亡霊改めお菊(うなずく)「5枚…6枚…7枚…」
私「なんと、噂は本当だったか。お菊さん、数えながらもこちらの言葉は通じるようだね」
お菊(うなずく)「8枚…9枚…」
私「1枚足りないって言うのかな?」
お菊(首を横に振る)「:枚…;枚…」
私「あれ?違うのか。で、今何て言ったんだろう?」
お菊「<枚…=枚…>枚…」
お菊「?枚…」
お菊(首を横に振る)「@枚…A枚…B枚…」
私「分かった、ASCIIコードかよっ!しかも、さっきの<枚や>枚は文字化けしないようエスケープシーケンスまで使われているぞ」
お菊(ちょっと嬉しそうにうなずく)「D枚…E枚…」
私「こうなったら最後まで聞き届けてみよう。なにか力になれるかもしれない」
(中略)
お菊「y枚…z枚…」
私「そろそろ終わりか」
お菊「|枚…}枚…~枚…」
お菊「…」
少々の沈黙。
お菊(苦悶の表情で)「何度数えても最後の1枚が足りない…うらめしや…」
私「お菊さん、それは思い違いだよ!ASCIIコードの最後は制御文字のDELだから、次の文字『枚』が消えたんだよ!」
お菊(驚きながらも納得した様子で)「!?あら嬉しや…」
以後、お菊の亡霊はDEL…消え失せたのであった。