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

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

【Rlang,Win10】Visual Studio Codeで環境構築

  • 結論
  • はじめに
    • 理由
  • 実行環境などの情報
  • 手順
    • 導入するソフトウェア・パッケージ
    • 初期設定
      • VS CodeでRのパスを定義
      • Rlangのパッケージをインストール
  • 実行方法
  • ハマった点
    • その1
    • その2
  • 感想
  • 今後の課題
  • 参考

結論

  • 手順:VS Code拡張機能(vscode-r)をインストールして,設定でRlangのパスを指定する.

  • スクリプトの実行方法は,R Studioと同じ.

  • 補完が必要な場合は,以下の作業を追加で行う.

    • 拡張機能(R LSP Client)をインストールして,Rlangのパスを指定する.
    • Rlangのパッケージ(languageserver)を導入する.
続きを読む

「ブログに技術書の内容を丸写しする問題点と、オリジナルなコンテンツを書くためのアイデア」を読んで

はじめに

こちらの記事を拝見して,ギクッとなりました.

学んだ内容を後から見返したときに便利なように,記事にまとめておこうという気持ちからでした.

しかし,結果的には丸写しに近いものがいくつもあるという状態だったからです.

記事の要約

### 技術書の内容を丸写しする問題点

1. 悪意がなくとも「無断転載」と見なされる可能性がある

2. 技術をきちんと理解できていない恐れがある


### オリジナルなコンテンツを書くためのアイデア

1. 必要最小限の内容となるように要約する

2. 自分の感想を積極的に書く

3. 自分の言葉で説明する

4. 自分で実験した結果を載せる

記事を読んで対処したこと

コピペメモに該当すると判断した記事を非公開としました.

他にも該当する記事がありましたら,ご指摘いただけると幸いです.

感想

  • 今回の教訓・反省点は,コピペレベルのメモを公開してしまったことです.

  • 書き手の信頼度を損ねるだけでなく,技術の習得という観点からもマイナス面が大きいという指摘に身につまされる思いでした.演習問題で詰まった部分が似通っているため,該当する要素に対する理解が浅いのだとようやく気がついたところです.

  • 問題点だけでなく,オリジナルなコンテンツとするためにはどうしたらいいのか? というアイデアが示されているところが素晴らしいと感じました.「アウトプットしなきゃ」という意識はありながら,何を書けばいいのか分からない人(自分も含む)にとって指針となる記事だと思います.

  • これまで技術ブログを読んで,いい記事・役に立った記事と感じた話題を抽象化してみました.こういった記事を書けるように精進していきます.

    • 最新の技術の紹介(新しい概念,言語やフレームワークなどのアップデート・プレスリリース情報,一次情報の日本語訳)

    • 類似した技術の比較

    • 特定の技術を継続的に利用して得られた知見

    • ある技術や概念に対して,体系的にまとめた記事

    • 初心者が陥りがちな失敗と対処方法を網羅した記事

    • 環境構築や開発で遭遇したエラーとその理由・対処方法,成果物  

  • 技術を学ぶとき,これまで遠回りしていたところが,△△を知ることでこんなに近道できるのか!という感動が大きなモチベーションになっています.今回の件を踏まえて,著者や技術に対して一層の敬意を払えるように意識していきたいと思います.

参考

blog.jnito.com

hinemoto1231.com

2019/07/07追記 www.reclog.net

#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
続きを読む