書いて覚えるSwift入門

第21回“hello again”待ちながら

連載作家殺しのアップル

前号から早1ヵ月[1]⁠。macOS Sierraは無事リリースされましたが、月刊誌連載の執筆者としては困ったことに、締切日もなお「微妙な時期」は続いています。Apple Pay日本スタートは10月25日。新型MacBook Proが発表されるであろうhello againイベントは10月27日。⁠パチンコガンダム駅」からもう4年、やっと日本国内でも純正マップで公共交通機関検索できるようになるのも、Swift PlaygroundがiCloudでMacとiPadを行き来できるようになるのも、間に合いません(涙⁠⁠。たった数日なのに!

10月下旬現在の筆者と本記事を手にしている読者の皆さんと、Appleの新製品以上に隔てているものがあります。読者の皆さんは、すでにObamaの次の米国大統領が誰かを知っているのです。なんてうらやましい!

Bad hombre

全3回の公開討論も終わり、あとは投票日11月8日(現地時間。日本時間では翌日)を待つだけとなった執筆現在(10月下旬⁠⁠。今日、最も正確な選挙予測をするFiveThirtyEightNate Silverによると、状況は図1のグラフのとおり、Hillary Clintonの勝利は決まったも同然に思われます。

図1 ヒラリーの勝利は確実?
図1 ヒラリーの勝利は確実?

にもかかわらず、普段はノンポリなギークたちも、コードそっちのけで今回の選挙について語らずにはいられないようです。Perlの父、Larry Wallですらこの調子図2⁠。

図2 ⁠More than one way⁠⁠ but⁠ no Trumpway”
図2 “More than one way” but“ no Trumpway”

もう一方の候補、Ronald Trumpの「反人気」の高さは過去に例を見ません。普段は二大政党の党大会双方に機材を貸し出すAppleも今回は取りやめていますし、それどころかトウの共和党自体、自ら選んだ候補への推薦を下げているような状態の中、異色を放っているのがピーター・シールPeter Thiel⁠。

PayPalの共同創始者でゼロ・トゥ・ワンの著者でもあるビリオネアは、Trumpの選挙に125万ドル寄付することを表明しました。

しかしこのニュース以上に物議を醸し出したのは、Y CombinatorとFacebookの対応でしょう。双方ともTrumpへの不支持を表明する一方、Thielとの関係を維持することを表明したのです。

Ruby on Railsの作者であるデビッド・ハイネマイヤ・ハンソン(David Heinemeier Hansson、@dhh)のツイートに、ハッカーと画家の著者でもあるポール・グレアム(Paul Graham、@paulg)「もし共和党を支持している会社がヒラリーのサポーターを解雇したらどう感じるか」図3と答えています

図3 DHHとポール・グレアムのTwitterでのやりとり
図3 DHHとポール・グレアムのTwitterでのやりとり

しかしDHHが指摘するとおり、ベンチャーキャピタル(VC)のパートナーというのは被雇用者ではありません。労働基準法に相当する各国の法が被雇用者支持政党による差別を禁止しているのは、それが生活基盤を人質にとるのに相当する行為だというのが理由ですが、VCのパートナーというのは雇用側というまさに正反対の立場であり、Trumpを支持することはTrump的な判断を投資先に下すのではないかという懸念をむしろ増すものだと判断せざるをえないでしょう。結局@dhhと@paulgのやりとりは、@paulgが@dhhをブロックすることで終わるのですが、この事件はIT業界における多様性とはいったい何なのか、筆者にも再考を迫られるものでした。

最悪の脆弱性とは

ちょうどその頃起こったのが、脆弱性を突かれて乗っ取られたセットトップボックスやウェブカメラによるDDoS⁠IoTによるDDoS」がこれまでの脆弱性と異なるのは、機器のアップデートで収束を図るという、パソコンやスマフォの常識が通用しないこと。機器によっては、ファームウェアのパスワードを変更することすら不可能とあっては、物理的にプラグを抜くしか解決法はありません。

そう。⁠物理的に外す⁠⁠。これこそが「モノ」の欠陥を修復するたった1つの冴えたやり方だったのです。むしろ「論理的に交換」できることがパソコンやスマフォでは新常識として確立されていたにもかかわらず、旧来から存在していたというだけで旧来の常識のまま進めてしまったことこそが、IoTにおける真の脆弱性なのかもしれません。

しかし、⁠物理であれ論理であれ、脆弱な部品は交換する」というのは実はIoTどころかインターネット以前には確立された常識でもあるのです。Galaxy Note 7を挙げるまでもなく、スマフォでさえ論理的に直せなければ物理的に交換するしかないのですし、家電にもクルマにもリコールは制度として確立しています。

そして交換するのであれば、脆弱性が健在する前に交換してしまえればなおよし。

その点から考えると、⁠脆弱性」があろうがあるまいが、定期的な交換を制度化した選挙制度というものは、⁠期限付き保証はあっても使わなくなるか壊れるまで放置」という「アプライアンスの常識」よりよほど先進的にも感じます。もっとも今回の米国大統領選挙をめぐる混乱は、交換品自体の品質保証体制の脆弱性を突かれた結果とも言えるのですが。

トランプ候補と言えば、GitHubにTrump Scriptが公開されています。これを実行すると(もちろんMacでは動かない!⁠⁠、図4のようになります。

図4  TrumpScriptの実行結果
Traceback (most recent call last):
  File "./bin/../src/trumpscript/main.py", line 30, in [module]
    main()
  File "./bin/../src/trumpscript/main.py", line 24, in main
    Utils.verify_system(args.Wall)
  File "/Users/dankogai/github/TrumpScript/src/trumpscript/utils.py", line 34, in verify_system
    Utils.boycott_apple()
  File "/Users/dankogai/github/TrumpScript/src/trumpscript/utils.py", line 72, in boycott_apple
    raise Utils.SystemException('boycott');
  File "/Users/dankogai/github/TrumpScript/src/trumpscript/utils.py", line 21, in __init__
    raise Exception(random.choice(ERROR_CODES[msg_code]))
Exception: Mac? 'Boycott all Apple products until such time as Apple gives cellphone info to authorities regarding radical Islamic terrorist couple from Cal'

Keep Walking

この2つの事件を通してあらためて思い起こしたのが、今年のノーベル生理学医学賞。数多の研究者が「新しいものが、どう形作られるのか」を追ってるのを横目に、大隅良典先生は「古いものはどう捨てられるのか」を追い続けた結果、単独受賞にたどり着きました。しかしオートファジーにほかの研究者が遅まきながら目を向け始めたのも、オートファジーという現象自体より、オートファジーというメカニズムが故障するとヤバイということに気がついてからだったというのも、人というのは痛い目に合わないと学ばないものなのかと自戒しています。去年左腕が壊れなければ、今年の私が1日15km歩くようになっていたか。


“If it ain't broke, don't fix it⁠⁠、⁠壊れてもいないのに直すな」というの本誌の読者もよくご存じの格言ですが、⁠壊れているのに気づいてない場合」に対して脆弱でもあります。

互換性を損ねてでも直し続けるSwiftという言語はその点においてもモダンなのですが、Xcode 8.0現在、新たに壊れたものが8.1以降で直るのを待っているという、歯がゆい状況が「史上最低」の米国大統領選挙とともに終わっていることを祈りつつ、今月はこれにて失礼します。

Software Design

本誌最新号をチェック!
Software Design 2022年9月号

2022年8月18日発売
B5判/192ページ
定価1,342円
(本体1,220円+税10%)

  • 第1特集
    MySQL アプリ開発者の必修5科目
    不意なトラブルに困らないためのRDB基礎知識
  • 第2特集
    「知りたい」「使いたい」「発信したい」をかなえる
    OSSソースコードリーディングのススメ
  • 特別企画
    企業のシステムを支えるOSとエコシステムの全貌
    [特別企画]Red Hat Enterprise Linux 9最新ガイド
  • 短期連載
    今さら聞けないSSH
    [前編]リモートログインとコマンドの実行
  • 短期連載
    MySQLで学ぶ文字コード
    [最終回]文字コードのハマりどころTips集
  • 短期連載
    新生「Ansible」徹底解説
    [4]Playbookの実行環境(基礎編)

おすすめ記事

記事・ニュース一覧