20171112 「豊田市IT勉強会 第3会 もくもく会」へ行ってきた

この記事はScrapboxのページのスナップショットです1


豊田市IT勉強会 第3回 もくもく会 - connpass

会場
  • http://mg-toyota.com/
  • マイカフェなの?マイカフェではないの?
  • 静かだった
  • ビジター 9:00-17:00 1000円 飲みものあり
  • 自宅から車で1時間かからないくらいで行けた
    • 道路工事で片側交互通行が2箇所とイケア渋滞があった
  • 駐車場はすぐ近くに1日打ち切り1000円ぐらいのが一つだけあったが満車だった
    • 打ち切りなしの駐車場が周囲にたくさんある 30分150円 (8h 2400円)
    • 愛知環状鉄道の高架下が一日打ち切り1000円くらいである
      • 隣り合った同じブランドのパーキングで駅から遠い方は少し安い 800円
他の人がやってたこと
  • プレゼン点数判定
    • 言い淀み認識
    • 行動力って大事だなと思った
  • ゼロから作るDeep Learning ISBN 978-4873117584
    • 自分も同じ本を読んで意見を聞いたりできるかも
      • 一人で読むと細かい表現に悩むことが多いので
  • ChromeExtension
  • java?web?入門本
    • 本の通りにならないと言っていた
      • 一緒に読んでみるのを提案してもよかったかも
        • javaはわからなくても本に書かれていること読むことはできるから
  • 形態素解析
    • 行動力って大事だなと思った
自分がやったこと
  • docs.microsoft.com/en-usと /ja-jpを行ったり来たりするブックマークレットを作ろうと思った
  • 最近jsよくわかってないです。jQuery登場以前にフロントエンドを仕事で少し触った程度の経験
    • ブックマークレット アドレスjavascript:に書いたjsを実行させるやつ
      • chromeを常用。とりあえずスクリプトの長さは気にしなくてもよさそうな雰囲気をインターネットから察知した。
    • とりあえずchromeデベロッパーツールのコンソールで素朴にページ遷移させるコードを書いてみる
    • 開発者向けのWeb技術 | MDNを参照しながら
      • まず、ブラウザjsにはwindowというのがグローバルオブジェクトとして定義されている、なのでwindowと書かずにwindowのプロパティにアクセスできる
      • window.locationプロパティがある。
        • getは不変のLocationオブジェクト、setは文字列かLocationオブジェクト
      • Location.replaceメソッドを使えば履歴が増えないから進む戻るに影響を与えない
      • string.replaceで正規表現を使った置換
      • javascript
        • location.replace(location.href.replace("/en-us/", "/ja-jp"))
      • これだと片道。行ったり来たりしたい
        • ["/en-us/", "/js-jp/"]
        • MDNもjaen-USがある
    • というか対応する2つのページが同じドメインでないかもしれない、同じパス位置の変更で対応できないかもしれない
      • こんな感じかなのコードを考えた。長いのでページ末尾に置いた。
      • そもそも、ブラウザのタブを2つ切り替えればいいんじゃないか
      • chrome Extensionだ
        • appというのは過去あったけどそれとは別のもの
        • plugin、addon、addinはchrome用語には無いっぽい
        • デベロッパーモード、パッケージ化されていない拡張を読み込む
        • manifest.json
      • V.S.Codeでtypescript
        • 補完とリアルタイムのコンパイルエラー表示があるといいな
        • ショートカットキーの`Ctrl+``がwindowsの言語選択が強くて使えない
        • npmでのプロジェクト管理
        • gitignoreをgithub gitignoreからダウンロード
        • 雑に調べてコピペして実行
          • これが行動力か
    • なんかついでにWSLで諸コマンド使えるようにしとこうと思った
      • 使うのはubuntu。Store版をインストール済み
        • >wslでセッションに入ってコマンドをうつ
          • wsl.exeではcurrentDirectoryでセッションが開始される。たしか以前は、ubuntu.exeとかアプリ名で開始しないとcurrentDirectoryにならない挙動だったはず。また挙動が変更されるかもね
        • >wsl コマンドで都度wslにコマンドを実行させてもいい
        • nmpもwslのものを使おうとおもった
          • インストールから手探り。雑に調べてコピペして実行。バージョンが新しくない。雑に調べてコピペして実行。なんだかよくわかってないままにnodeとnmpが最新版になった
            • これが行動力か
    • ここまでやってgithubリポジトリ作った
思ったこと、連想したこと、ぼんやり浮んだイメージ
  • google検索 「音声認識 言い淀み」
  • DeepLearningは機械学習の手法の一つなの?
    • パターンを発見する = 概念を作る = 抽象化 と言うことは可能か?
      • ちゃんと調べておくこと
  • もくもく会の参加者ステータスがモニターできると楽しそう
    • その人の様子は見ればわかるけど、PCの中でどんな様子かまでは分かりづらい
    • 明示的にアテンションを求めなくても周囲にPCでの作業内容の雰囲気が伝わるとコミュニケーションのきっかけになるのでは
    • グループチャットでそれぞれ自分の文脈で独り言
    • ヒートマップ
      • スクリーンキャスト
        • 画像認識。画面上の文字を認識するのではなくて、PCと人との対話の雰囲気を可視化
      • アイトラッキング
      • キーボード、マウス操作の熱さ
      • PCのネットワークアクセス傾向
      • 黒い画面のコマンドの成否
      • イスの座面圧力、足と床の圧力
        • 立った座った、足を組みかえた、前のめりになった、のけぞった、足踏みした
  • 画像認識するとして妄想したこと
    • カーテンモード
    • ネットーワークに流すのは忌避感を持つのではないか
      • HDMI端子に挿す装置
      • 画像を統計情報に変換する
    • 自分のものでない装置への信頼性
      • シールされたハードウェア
        • 信頼できる誰かによって作られ手元にとどくまでに変えられていないか
      • インストールされたソフトウェア
        • ソフトウェア自体に悪意が含まれていないか
        • インストールされたものが本物か
  • 今日知った言葉
    • 正真性 :integrity 完全性
    • 真正性 :authenticity

疑似コード

//変換関数を適用するかの判定
delegate bool Match(Location);
delegate UrlString Transformer(Location);

// docs.microsoftとかMDNみたいなパターンのルールを作る
(Match, Transformer) MakeBasicRule(string urlPrefix, string pathSegment1, string pathSegment2)
{
    // urlの先頭から一致
    var match = location => location.href.StartsWith(urlPrefix);
 
    // パスの同じ位置で入れ替え
    var transformer = location => {
        var url = location.href.replace(pathSegment1, pathSegment2);
        if( url != location.href){
            return url
        }
        return location.href.replace(pathSegment2, pathSegment1);
    };

    return (match, transformer);
}

basicRule = [
    ["https://docs.microsoft.com/", "/en-us/", "/js-jp"],
    ["https://developer.mozilla.org/", "/en-US/", "/ja/"]
];
 
string Toggle(Location location){
    var ruleSet = basicRule.Select( rule => MakeBasicRule(rule[0], rule[1], rule[2])).ToArray();
 
    // matchするルールがなければnull
    return ruleSet.FirstOrDefault( rule => rule.Item1(location))Select(rule => rule.Item2(location));
}

  1. daiiz/ScrapboxコンテンツをMarkdownに変換するBookmarkletを使った後に手動で体裁を修正して掲載しています。