姫路IT系勉強会 2019.07

姫路IT系勉強会 2019.07

13:30

自己紹介!

  • 初参加者が、飛び入りを含めて7名ほどおりました
  • 参加者の最年少記録更新(12歳:親御さん同伴)!
    • 流石にディープ過ぎたかも…?
  • それもあって今回のお題は幅広めです?

14:00

お題1:ホームページをつくりたい

  • 今まで使っていたサイトがつかいにくかったのでどうにかしたい

  • 新しいサイトを立ち上げたい

  • Scratchの友人たちと情報共有するサイトを作りたい

  • サイトはつくっていない

    • Wixというサイトをつくるサイトに登録している
      • 単に記事を書きたいだけなら、ちょっとこれは複雑すぎませんか?
    • アメブロなど、ブログサイトに登録してはどうか
      • アメブロは読者の制限が可能らしいが?
        • 18歳未満に機能制限があります(ダイレクトメッセージができない)
        • 未成年は親権者の同意が必要です(大抵のサイトはそのはず)
        • アメンバーと言うものがあるみたいです
          • アメンバー登録者から、管理者が閲覧許可/不許可を設定する…らしい?
    • Scratchは制作したプログラムをURLにできる(「公開」機能を利用)
    • Discordを利用してはどうか
      • 長文には向いてません
      • 記事が過去に押し流されて、思い出したときに探すのが困難
    • Mixiはいかが
      • もともと過疎ってるから、知らない人が偶然踏む可能性自体が少ない(違)
      • 年齢制限があります(15歳以上)
    • Greeはちょっと違うような(ゲーム専用)
      • チャット以外には使いにくいのでは
    • Slackがいいかも
      • 教育向け機能を盛り込んでいるらしい
      • でもハードル高すぎ!?
      • 年齢制限がある(16歳以上)
  • 自分でホームページをつくるには?

    • 最初は外部に公開しないこと
      • パソコンがあればできる
      • プログラミング言語やHTMLを覚えましょう。
    • できるようになったら?
      • サーバーにホームページにアップロードして公開しましょう。

お題2:

  • IT系の英語用語をどういう勉強したい。
    • リファレンスを読みはじめても単語がわからないとなかなか頭にはいってこない。
    • 単語が略語かどうかを調べる
      • HTML=Hyper Text Markup Languageとわかれば用語が理解しやすくなる。
    • 参考のページのレベルが読者のレベルとあっていない。
      • 初心者用のページをさがす?
      • 最初にわからない単語をピックアップしてそれを調べる
      • なんとなくわかるレベルから順にすすめて理解していく
      • ある程度わかったとすすめていく。
    • 初心者の場合は日本語のページで簡単に概要を理解する。
    • それからリファレンスを

お題3:Webサーバーサイト言語は何がおすすめでしょうか

  • 覚えやすいもの、使いやすいものが知りたいです

    • 言語レベルならPythonあたり?
    • 資料が豊富なものならPHP?
      • ただ資料といっても玉石混交
        • 「えらい」コードが検索にかかったり
    • ちょっと試したいならやはりPHP?
      • 書いてる人がプログラマとは限らない
      • WordPressのためにPHPを書いてる人のコードはカオス
  • フレームワークのおすすめ

    • Laravel
      • ユーザーが多い
    • CakePHP
      • 日本語のドキュメントが充実している
    • 自分で中途半端なコードを晒すとセキュリティ的にひどいことに
  • Rails vs PHP

    • 人口の問題になると、PHP書ける人が多い。
  • 言語選択の基準(仕事の場合)

    • 処理や負荷、パフォーマンスなど
    • 後方互換性
      • 昔の機能が使えるかどうか
    • ライブラリ
      • ライブラリが豊富なものが便利
    • 開発者が集められるか
      • スキルレベルとメンバーの人数

お題4:WordPress をダウンロードしたい

  • wget でぶちぬくのは大変ほかの方法

  • StaticPress で静的サイトに変換すればどうか?

    • 変換後、Apacheであれば DirectoryIndex に .html を追加しておくと、 / でアクセスしても自動的に /index.html を表示できる
      • ぜんぜん考えつきませんでした。ありがとうございます。
    • 完全には無理かもしれない。

お題5:WEBRTC使ってますか?

  • あまりつかっているという話を聞かない。
  • WEBRTCの案件の話がない。
    • 田舎だから?
    • 発注側にITリテラシーがない?
    • 大学でリモート会議システムのデモの発注があった
    • やりたいという要件があるが実現していない(開発に見合うだけの売上が見込めない)
    • Googleのハングアウトをつかう話はある
    • WebRTCのコードサンプルです
  • WEBRTCをつかった配信サービス の宣伝by さくらインターネット
    • 配信者がWEBRTCで配信して、クラウドから多数に配信する。
    • WEBRTCのクライアントをつくれる人は少ないので需要はある。

お題6: Git のコミットメッセージの書き方

  • どのように書くとよいのか。
    • 基本的に一行でいいのでは
      • 詳細はチケットに書くべき
      • どのみち一行しか読まない
  • コミットよりブランチモデルも重要
    • コミットの粒度問題
      • 「一日一コミット」にすると、問題があったときに突き止めにくい
    • どのようにブランチモデルにするかを合意とろう
    • FeatureとFixがまざる
  • #issue番号をコミットメッセージに書く方法
  • 中途半端なブランチが増えてmergeできづらい問題
    • Gitつかう場合はチケットを連動させたほうが楽

お題7: Java

  • 会社の社員教育を集められたらいいなという依頼
    • LinuxやPythonのはある
    • Javaがないのでいいのがあれば(可能であればCC-BY-SA)。Javaでなくてもいいものがあれば
      • 血を吐きながら覚えよう・・ではなく
      • 最近の公式ドキュメントは充実しているが、Javaはない
  • Java 謎+落とし穴 徹底解明 (標準プログラマーズライブラリ)
    • Javaはポインタ「しか」ない。という名言(迷言)
  • 入口となる言語を選んだほうがよいのでは?
    • Javaであれば・・・
    • C++であれば・・・

お題8: 「推奨されない」という言い方について

  • ドキュメントに「推奨されない」が5回と書かれている
    • 「動かない」と言ってきた方がいる(組み込み系の方)
    • 「推奨されない」は「基本使ってはいけない」認識のはず
      • 通常認識:実装されているけれど、使ってはいけない
  • 言い換える方法はある? どのような表現が良いのだろう
    • 禁止
    • 非推奨
    • オワコン
    • その機能は老害です
    • 廃止予定 ←一番良い
  • 非推奨とは、バグや不具合があっても、メンテナンスされません、直されません
  • レガシー、が、悪いという意味と思っていない相手
  • 「将来的には廃止する予定です」
    • チームの方針として、導入するところかどうかでは
    • という補足説明を入れる
  • JS系はカオス
    • ネット上でトレンドこれ!と言っているウチに非推奨になる
  • フレームワーク系
    • GitHub上で活発にメンテナンスされているかどうかチェックしている
      • FuelPHPの場合、当時人気があったが、オワコン状態
      • Cakeは長く続いている
    • フレームワークはそういうものだという認識で、乗り替えていく
  • 「非推奨」=「そのうち死にますよ」と
  • 「一応使えますけど、なにかあっても保証できませんよ」という意味
  • FreeBSD 8(最終リリースの8.4は2015年8月1日サポート終了) 、CentOS 5(2017年3月31日サポート終了) とか古いもので動かそう、火を噴く
  • CentOS は 7 が生きている、6 はもうそろそろ(2020年11月まで)
    • CentOS7 で systemd が導入されて、もうそろそろ CentOS6 は・・・
    • ちゃんとするのであれば Red Hat Enterprise Linux の導入を

お題9: WEB集客 & Django

  • 例えば 不動産サイトを作成したあとに、集客やマーケティングを考えないのか?
    • ウェブ集客、広告(Adwards等)、SEO、オウンドメディア
    • 良いものを作れば人が来る、というわけではない
  • 事例
    • 新システムのポータルを作成し、ポイント付与などで集客もおこなった例がある。
    • PVで10万以上
  • 集客で悩まれているところはあるか?
    • EC系のシステムの場合、ECサイト=集客をしなくてはいけない
      • SEO、マーケティングを実施している
    • 本格的にするにはマーケターが必要
      • システム連携できるマーケターがいない
      • できるできる言っても、Adwardsだけだったりする
      • 流入のコンバージョン等の計測
    • エンジニアが、マーケティングと連携できるかどうか考えながら進める必要がある
      • SEOでこういうことをしたいので、という要望→システムに実装
  • マーケティングでDjango使っている方は?
    • フレームワークというよりは、実装上で、使いやすいかどうか(要件次第)
  • そもそもの規模感(マス)をどうもっていくか?
    • 心折れずに続ける、1年くらい
  • マーケティングそのものは、どのタイミングで?
    • はじめから
    • プレスリリース直後はどーんとあがるが、すぐ下がる
    • 継続する必要があるので、心折れず行う必要がある
    • 専門家(本職)を入れて、いかに流入を増やすかを考えていく・連携する
      • 良い情報があって、辿り着くのが大変であれば、サイト内の導線の問題
  • サーバとおなじで、計測する、運用が大切
    • 仮説をたてて、検証する
  • 自社でポータルサイトを持ちたい、という声がある
    • 基本「幻想」
      • 立ち上げたら集客できる、売上あがる→幻想
    • そこに至るまでが大変
      • 折れない心(継続して行う)
      • お金

お題10: Pandoc で markdown で変換したい

  • VSCODE + Reveal.js でプレゼン
  • Pandoc で docx を出力していたが、バージョンアップによって動かなくなった
    • プレゼン資料をWord用に変換したい
    • 手っ取り早いのはドキュメント作るのに Pandocを使っていた
    • 代替できるものはあるか
  • Marp
    • 旧エディタは非推奨
    • Pandoc より、こちらのほうが楽な可能性
    • VSCodeはカスタマイズしたCSSをインクロードできるようだが
      • エディタ依存だが、対応していれば楽な可能性
  • 困っていることは、印刷用の加工
    • 行頭の字下げをしたい
      • パラグラブのタグで字下げを期待しているなのに、うまくいかない
    • ページの記述のところでうまくいかない
    • Pandoc は先頭行にタイトルを書かなくてはいけない
  • Pandoc にこだわらないほうがよい?
  • marp-web

お題11:コンテナとは

  • 開発環境としてはいいかも

  • 「仮想化」と「コンテナ」の混用

    • Vagrantを本番で使いますか?
  • Dockerで使い捨ての環境構築を容易にして、OSSの更新速度に対抗する

  • サービスの更新が多いサービスでは、起動、停止が早く簡単なのでいいかもしれない。

  • Docker Swarmで複数ホストでサービスを起動したとき、ゲートウェイが1つしか起動しない?

  • コンテナを使わないといけないというところからスタートすると幸せになれない

    • k8sを使おう!から始めるのはよくない
  • 日本で流通している情報は5~6年前のものとかがある

    • Docker触ったことないのにk8sを使おうとした例も……

お題12:ウェブサイトの脆弱性診断

  • 会社のサイト更新業務を任された
    • ポートスキャンくらい?
  • どのレベルで脆弱性をチェックするかによる
    • 網羅的にやるならOWASP
  • 使ってるミドルウェアの脆弱性情報を仕入れておく
  • 10年前・PHP5のシステム
    • 脆弱性のオンパレードでは
      • 古いのでXSSもありそう
      • データが破壊(漏洩)されないようSQLインジェクション対策
      • 昔のなので、エスケープされていない可能性がありそう
    • 外部公開しているサイト、不特定多数が来る
  • ウェブサーバのログを取る、WAFを入れる
    • 攻撃があるかどうかログからみていく
    • WAFは攻撃パターンを検出して弾いてくれるが、正常系を弾いてしまうかもしれない
      • テスト環境を用意してからWAFでなめる
    • システム延命措置としてのWAFという方法
      • 全部対策をするのは現実的ではないので
    • PHPのアップデートを行いながら
      • PHP7で動くかどうかのチェックも進めながら
      • エラーがでているところを、もくもくつぶす
    • 変なものが動いていないかどうか
    • WAFのログを読む
    • アクセスログをみて、頻繁に使われているところから、重点的に対策していく
      • ひたすらヤバそうなものがないかどうか見ていく
    • 海外からのIPアドレスを弾く方法
      • 海外からの正常なアクセスはある(海外出張など)
      • 日本からのみであれば、海外全はじき方法
      • 日本からのみでも、来るときは来る
    • これらを行いつつ、引き継げそうなシステム屋さんを探す
      • PHPのシステムを組めるところはありそう
  • 基本セキュリティ要件次第、セキュリティチェックをするサービスもある

お題13:Github pull requestが来たらサーバを作成したい

  • GitHub の webhook を、Proxmoxで処理時、 pull request で送られてくる情報を知りたい
  • GitHub に push -> pull reqが通る -> Merge される -> 検証サーバで作業できるようになる
    • bugfix だけの PR が通らない場合、そこだけをテストしたいという要望がある
    • Merge する前に、そのブランチだけでテストできないだろうか
      • テストチームは、ユーザがウェブブラウザで操作して(手動)、問題がないかどうかのテストをしたい
    • エンジニアが何かしら仕組みを作る必要がある
      • Windowsであれば、バッチファイルを用意しておいて、git コマンドを実行する仕組み
      • あるいは手順書を作るか
      • webサーバを立ち上げておいて、ProxmoxをAPIで立ち上げてる
      • chatboxなりシェルスクリプトなりで処理する

お題14: IT教育は必要ですか?

  • 一般の人に教えるメリット・方法、義務教育の是非
    • プログラミング教育、基本的にはロジカルシンキング
      • 知っているか知らないかで差が出る
      • 強要ではなく基礎でよいのでは
    • ガンガン書く方と、先生は難しいよという方
      • 国としては小学校から慣れさせようという意図
    • 先生は10年ごとに免許の更新
      • ここ2~3年は Scratch
      • 先生の特徴として、自分の知っていること以外をおしえるのに拒否感がある
      • アンプラグド(紙だけで教える概念)であればできそう、というが、ものを使ってみて体験させるのは必要
      • 45分の授業の中でしなくてはいけないので、やりにくいと思われている
      • いかにサポートできるか?が本来必要
    • 3月の先生向け研修を文部科学省から実施
      • 優れた教材を提供しますので、勉強してください、というスタンス
      • coder dojoを使う方法
      • お金をつかってという意識がすくない
    • 中学校は情報補助員が配置される(一校で一人かどうかは分からないが)
    • 高校であれば、理科の助手
    • 小学校でも同様に配置されないと無理
      • 情報担当の先生はいるが、持ち回り(教務の1つ)
    • 教科として取り入れるのであれば、支援されたかもしれないが、それぞれの教科の中で実施しなくてはいけない状態
      • できません、で済まされそうな状態
      • 変に教えると嫌いになりそう
    • 進んでいるところと、そうでない所のギャップがありそう
  • オープンソースのライセンスコンプライアンス要素を、文部科学省の教育に入れて欲しいという要望を出そうという動きがある
    • by OpenChain Project Japan WG
    • 小さい頃から著作権大事だよね、ライセンスに注意しましょう、というのが試験項目になるかも
  • オープンガバメントで情報を出していこうという流れはある
    • とりあえずデータを出せばいいだろう(PDFに出すのを、ExcelやCSVにしているが、使おうと思えば面倒)
    • JSONにしてくれれば使いやすいが、そういう意識はない
    • 年金問題の基礎データがどこかにオープンであれば検証できるのに、あやふやになっている
      • 最終データを作ってくれるひつようがないので、必要なデータをオープンで自由にできるものを出してくれればいい
      • 作ったものについては著作権があるので、断って使いましょうという意識が生まれていく
  • 文理融合
    • 文系の人間も勉強しましょう(グラフの読み方も分からない現状なので)、という流れは作っている
    • しかし、ちゃんと教えられるかどうか?
      • 先生は文系が多そう
      • 大学生でも文系の学生は数学わからない状態
        • どこかで再教育なり、しくみが必要
    • 考え方の基本的なところは文系・理系関係ない
  • 教師が一番大変
    • 歳をとってから大変なので、子どもの時から慣れていかないと
    • 先生は家に帰ってからも仕事している現状なので、無理では
    • 先生はなんで忙しいのだろう?
      • プリントは昔と違って市販
      • PDCA
        • いろいろな子どものコントロールが、経験に基づいている
        • 本来は大規模なデータをもとに構築できるだろうが、今は学校プラスのレベルで効果あるのだろうか
      • 本来はサポートする仕組みが必要
      • 校務の情報化、RPAはシステムの隙間を埋めるもの
      • 教育の面もシステムの面も分かる人がいない
      • 学校で教室が余っている状態になりつつあるので、教室を開放してサポートできるような仕組みができたら
    • サポートが大事
      • 東京ではうまくいくかもしれないが、地方はできない、という状況が生まれてしまうのでは
      • Coder Dojoを手伝っていただける人が少ない(東京、大阪であれば人はあつまるだろうが)
    • 本当は働き方改革
      • 父母が家にはやくかえって一緒に考える、土日に動く、という人がいっぱいいるはず
  • PCN(プログラミング・クラブ・ネットワーク)=子どものためのプログラミング教室を各所で実施するボランティア団体
    • PCN北播磨、付き添いの両親「プログラミングって何ですか?」
      • 学校で始まるのだが、自分たちの時代になかったから知りたいという声
      • 大人が子ども時代には習わなかったから
      • 子どもが宿題として持って帰ってきても、その宿題のやりかたが分からない時に、答えられない問題
      • 結局、国を挙げて行わなければいけない
      • 大半は、子どもが何かやっているからいいわ、という意識がまったくない状態。なので、学校でやらなくてはいけない状態。
    • 北海道石狩市、大阪でも同じような状況
  • プログラミング教育は効果があるのだろうか
    • 先生の教え方=正解を教える
    • 探求学習を実施しているが、大学入試に対応するため中断する課題
      • AO入試(一芸入試)
    • 今までの教育の評価とは違う
      • これをきっかけに、個人ベース(個人が何をしたかが評価される)に変わってくれるのではという期待はある
      • 知識偏重から変わっていくのでは

お題15:UbuntuでオススメのWindows managerはありますか?

  • Windows 10 が動いているマシンは、面倒かつ今後のバージョンアップのハードウェア要件を満たさない環境
  • Ubuntuは何もせずに日本語いける
    • Debian 日本語対応しなくてはいけない
      • 最新のはデスクトップ環境が普通に整う
    • Windows と同じウインドウ・マネージャを入れなくては
    • スペック重視であれば軽量なもの
    • RasPi のデスクトップエディションを摸したものを使う方法もあり

お題16:就職試験の面接官だと、どのような質問をしますか?

  • 9月から就職試験がはじまる(高校・電気情報システム科)
    • 面接があるので、うまい具合に回答したい
    • IT系の会社を志望(情報処理技術者、ソフトウェア開発)
  • 会社によって傾向が違う、面接官が現場か経営者かによって変わる
    • Web制作系であれば
      • いままで使ってきた言語とフレームワーク
      • GitHubアカウント(これは中途か)
    • 高校の時に何を勉強していましたか?
    • 業界を志望した理由
    • 英語好きですか?できますか?
      • 英語できればプログラミングに優位
    • 専門学校であれば、どのようなものを作ったか(卒業制作)や、実践的な言語について
      • 高校であれば、何をやりました、と言えるものがあるかどうか、
      • 自分で自発的に学んだものをアピールできるかどうか
    • やるべき会社の仕事についての理解があるかどうか
      • 例:コンピュータがつかえるようになりたい!(Word と Excelは違いますが・・・)
      • その能力に対応しているかのアピールができるかどうか
    • IT系であれば、興味を持っているかどうか
      • 普段どのサイトを見ているかどうか(どのような興味を持っているか、流行をウォッチしているかどうか)
      • 開発ツール・フレームワーク
    • 新卒であれば実践というよりは基礎
      • 好奇心、伸びしろがどれだけあるか
    • 一緒に仕事して大丈夫な相手かどうか
      • 人付き合いが大丈夫そうか(受け答えがスムーズで、はきはき、自分の言葉でしゃべられるかどうか)
      • 練習した原稿を丸喋りはだめ、自分で考えて、自分の言葉で素直にしゃべるのが大事
      • 父の働く姿をみて、私もなりたいとおもった、でも良い
    • 言われたことに対して、真剣に考えているかどうか、が大事

そのほか

お知らせ

  • 加古川インフラ系勉強会
    • 8月はAnsibleをちゃんとやります
      • さくらのクラウド環境で