思考のジャンプ幅が狭いなら,飛ぶ回数で補えばいいじゃない!!

非情報系30歳が競技プログラミングやWeb開発を始めるとどうなるか?

#100DaysOfCode day25 HTML5&CSS3を使ったビューの作成(2)

目次

  • 目次
  • 結論
    • 進捗状況
  • 何を達成したい(作りたい)か?
  • 何ができないか?
  • 実践したこと
  • 何を作っている?
  • なぜ必要?
  • 何ができるようになったか?
  • ハマった点と対処方法
  • 疑問点・課題
  • 次に何をやるべきか?
  • 感想
  • 参考

結論

  • 手持ち&調べたHTML5とCSS3の知識で,クローンアプリのUIを作成中.

  • 見栄えの部分は,前回よりも進捗がみられたと思う.

  • 肝心の掲示板の部分については未着手の状態.チュートリアルを一刻も早く実践する.

進捗状況

今回

f:id:hiro_kato:20190608232238j:plain

前回

f:id:hiro_kato:20190530230120j:plain f:id:hiro_kato:20190530230134j:plain

続きを読む

いまさら聞けないネットワーク基礎【サポーターズCoLab勉強会】のメモ

先日,You Tubeで配信された勉強会のメモです.

間違いなどがありましたら,ご指摘いただけると幸いです.

まとめ

  • 通信は,TCP/IPの階層モデルに従いパケットが作られている.

  • IPアドレス:インターネットにおける住所に相当.

  • ルーティング:目的地までの最適な道を示してあげる仕組み.

  • MAC Address:原則的に一意なアドレス.同じネットワーク内の通信に使用される.

  • インターネット通信におけるデータの送受信.
  • ヘッダー+イーサネットヘッダーを経由電気信号に変換.

講演者情報

  • 岡田奨平さん
  • のなめしゃちょー,ネットワークエンジニア5年目
  • いっとねっと。

ネットワーク基礎

ネットワークとは

  • 家とショップをつなぐ道路がデバイス-サーバをつなぐネットワークに相当
  • データの通り道がネットワーク

通信はどのように行われているのか

受信は逆向き

今回は,ネットワーク層データリンク層が対象.トランスポート層は対象外.難しい.

IPアドレスとルーティング

  • ネットワーク層に相当
  • IP(Internet Protocol):インターネットにおける住所のようなもの
  • IPアドレスに基づいてルーティングが行われる.

今回は,用語を知るのが大事 + IPv4:32bitで構成され,10進数で表現される.一般的に使われる.192.168.1.1/24 + IPv6:128bitで構成され,16進数で表現される.IPv4の枯渇に伴い新しく定義された(20年程度経過) + コアネットワークで使われている.一般に普及するには時間がかかりそう

  • ネットワーク部(マンション名)とホスト部(部屋番号)
    • サブネットマスク:ネットワーク部の範囲 1/24
    • ホスト部がすべて0(2進数表記)であるアドレスをネットワークアドレスと呼ぶ

    • ネットワークアドレス=マンション名

    • IPアドレス:部屋番号(0-255,8bit.0と255は特別なアドレスのため除外)

ルーティングとは?

  • 目的地までの最適な道を示してあげる仕組み
  • ルーティングテーブル:他のマンションに行くための地図に相当するものをデバイス全員が持っている.この地図のこと.
  • 手動orルーティングプロトコルを使用
  • 簡略化するためのデフォルトルート(ゲートウェイ):自分が持っていないときに使う

ARPMACアドレス

  • データリンク層

  • MACアドレスとは?

    • 24bitのベンダーコードと24bitのノード番号で構成される原則的に一意なアドレス
    • 同じネットワーク内の通信で使用される
    • ベンダーコードで,メーカーを調べられる

    • ipconfig

    • route printで調べられる
  • データ+TCP+IP+MAC

    • IP:宛先と送信元
    • MAC:宛先と送信元
    • 小包を届けるようなイメージ
  • 宛先MACアドレスをどう知るのか?

    • ARP(Address Resolution Protocol)を使う.マンション全体に送信して応答.該当しない場合は応答しない
    • ブロードキャストMACアドレス:全員に送れる

    • 異なるネットワークでの通信

    • 家のルータが物理的

    • マンション間に相当
    • MAC Addressの情報がつけかえられていく
  • NICKとIPアドレスはセット

視聴者の質問と回答(聞き取れたもののみ)

  • イーサネット:フレーム

  • IPヘッダーまでパケット

  • 一般データのことをパケットということが多い

  • 大きなデータは,パケット通信データを分割して送る

  • MPU/MSS

資格

  • 希少価値が高い
  • シスコのccentを目指すとよい

おすすめのサイト・書籍

  • 3分ネットワーキング

  • マスタリングTCP/IPの基礎編

  • パケットキャプチャの教科書

感想

  • 参加前はネットワーク=とっつきにくいイメージがありましたが,日常生活に置き換えて説明されている+図が多くて分かりやすかったです.

  • 手を動かして実践する時間もあり,あっという間の1時間でした.

  • 自身はメモを取るだけで精一杯でしたが,視聴者の質問が活発で関心の高さを感じました.

  • キーワードを教えていただけたので,初めて聞いた用語を中心に復習したいと思います.

  • ライブ配信だと地方在住者には大変ありがたいです.

配信元(現在はリンク切れ)

https://www.youtube.com/watch?v=ML4qRu1Omhs

【WIP】「下書きの意識の違い」から学んだこと

f:id:hiro_kato:20190508235425j:plain

目次

  • 目次
  • はじめに
  • 下書きでの意識と現時点での答え
  • 感想
  • 参考

はじめに

  • 前回からの成果と課題について振り返ります.

  • こちらの記事を拝見して,「下書きの意識」についてもっと考えてみたらと間接的に教えていただいたような気がします.

  • 学んだことから,現時点と理想とのギャップを少しずつ埋められるよう,行動につなげていきたいと思います.

続きを読む

AtCoder AC Steps:1行もコード書かずにWebアプリのモックアップをリリースしてみた

目次

  • 目次
  • 結論
  • 皆さまへのお願い
  • 試したこと
  • 前準備
  • AtCoder AC Stepsとは?
    • 凡例の候補
  • 動機・狙い
  • 手順(ほぼ解説記事通りです)
    • 1. Glideにアクセス.
    • 2. Create an appを押す.その後Sign Upを押し,Gmailのアカウントでログイン.
    • 3. 画面左側にあるNew Appを押す.
    • 4. 用意しておいたスプレッドシートを読み込む.
    • 5. 見た目を調整.
    • 6. 任意のURLを決める.Settingを押すと,APP URLを入力できる.
    • 7. リリースは,左下のopen appを押すだけ.
  • 工夫した点
  • 明日以降の課題
  • 参考資料

結論

  • 成果物

  • モックアップを手軽に作って共有したいときは,GlideGoogleスプレッドシートがあればよい.

  • コードを1行も書く必要はないため,初心者にはお手軽に「何かできた!」という感覚は得られる.

  • 実質45分程度(見た目の細かい調整は除く)でリリースまでできたことに感動した.

  • 元記事にもあるように,現時点ではネイティブアプリには及ばない部分もある.動画再生はできないなどの制約も.

皆さまへのお願い

  • ACを阻んだ要因について,必要な項目もしくは不要な項目などがありましたら,ご一報いただけると幸いです.

  • このほかのご要望・ご指摘も大歓迎です.

続きを読む

「Webプログラミング基礎スキルのチェックシート・基礎編」 を試してみた

github.com

結論

  • チェックできなかったところを調べる.
  • 調べた項目を理解できるようにする.
  • 理解できていないところは,繰り返し読む&記事として理解しているところとそうでないところを書き出す.
  • 少なとも1日1つはチェックが入れられるようにする.
続きを読む

【WIP】AtCoder AC Stepsを支える技術

AtCoder AC Steps

  • サービスを公開できるように,リリース前からリリースノートらしきものを書いていきます.
続きを読む

【競技プログラミング】問題を解くときの切り口

目次

  • 目次
  • はじめに
  • 全般
    • 問題文から得られる情報
    • 方針
    • 計算量の削減
    • コーナーケースの特定
  • 整数
    • 数列
    • 最大公約数
  • グリッド
  • グラフ
  • ゲーム
  • 構築系問題に対するアプローチ
  • 辞書順最小
  • 実装における注意事項
    • データ構造
  • その他
  • 今後の予定
  • 参考
  • 更新履歴

はじめに

  • 競技プログラミングにおいて脱・初心者を目指して,問題を解いて得られた知見や先人の知恵・発想を少しずつまとめていきたいと思います.
  • (筆者としては)抽象的な表現で一般化を図っているつもりです.

    分かりづらい点・勘違い・誤解などがありましたらご指摘いただけると幸いです
    連絡先:@k_hiro1818
続きを読む