noyのブログ

健康なエンジニアを目指す人のブログ

『Clean Architecture 達人に学ぶソフトウェアの構造と設計』を読んだ

https://asciidwango.jp/post/176293765750/clean-architectureasciidwango.jp ソフトウェアの構造や設計についてどう考えるかを書いた本.「どのように実装するか」が気になってきた人向け.個人的にはかなり読みやすかった. 詳細の決定はあえて先延ばしに…

『コーディングを支える技術 成り立ちから学ぶプログラミング作法』を読んだ

gihyo.jp プログラミング言語の文法や機能を,言語の比較や歴史的な背景を用いて解説した本.個別の言語の知識は数年後も役立つかは分からないので,言語に依存しない普遍的な知識を学ぶ方がいいと著者は述べている.「何の言語を勉強すればいいですか」とい…

『情熱プログラマー ソフトウェア開発者の幸せな生き方』を読んだ

この本は,ソフトウェア開発において良いキャリアを築くための方法を説明することを目的としている.以下の5つの章があり,製品に必要な側面をキャリアに応用する方法を説明している. 市場を選ぶ 製品に投資する 実行に移す マーケティング 研鑽を怠らない …

『Webを支える技術 -HTTP、URI、HTML、そしてREST』を読んだ

gihyo.jp 2010年出版 この本は,Webに関連するいくつかの技術の仕様を解説し,Webサービスの設計方法を示すことを目的としている.Webについて学びたい人の最初の一冊に良さそう.ただ,約10年前の書籍である.むしろ,10年近く経っても基礎的な部分はあまり…

『この一冊でよくわかる ソフトウェアテストの教科書 品質を決定づけるテスト工程の基本と実践』を読んだ

www.sbcr.jp ソフトウェアのテスト技法とテストドキュメント,モニタリングについて解説した本.テストについての概念ではなく技法についての実践的な内容になっている.平坦な言葉で説明されているので,ソフトウェアテストについての知識がなくとも十分読…

AtCoder Beginner Contest 114の解説+α

ABC114の解説とか別解とか. A 753 B 754 その他 C 755 357のみからなる数値の全列挙 桁DP 愚直解(っぽいの) D 756 素因数の組み合わせの全探索 DP その他 典型ポイント 所感 A 753 はい. print("YES" if int(input()) in {3, 5, 7} else "NO") B 754 文…

脳を目覚めさせる簡単な方法とは?

「脳が目覚めるたった1つの習慣」という本を読みました。著者は東北大学脳科学センター教授の瀧 靖之氏で、脳の健康や賢い子を育てるというテーマの書籍も書かれております。 瀧 靖之『脳が目覚めるたった1つの習慣』、2016年、かんき出版 主観的幸福を追え …

全肯定ハ◯太郎 LINE bot を作る [初心者向け]

LINE botを作ります。オウム返しができるようになれば、あとはおまけみたいなもんです。全肯定要素はおまけです。 qiita.com 上記の内容をほぼそのまんまやります。 準備 インストール gem install bundler bundle init 決まったフォーマットで提供されるRub…

7つの言語 7つの世界 ~ Ruby の柔軟性を見よ

最近、『7つの言語 7つの世界』を読んでいます。Ruby, Scala のように広く知られている言語から、Io, Prolog などのあまり見たことがないような言語まで、計 7 つの言語の特徴を紹介するという本です。技術書ではなく読み物に近いです。単に読むだけでは面…

(クソコード) 変数宣言と同時に標準入力を受け取りたい [C++編]

得られる情報はないです。 二つに分かれる C++ で標準入力をするなら、どのようなコードを書きますか? cinを使うのであれば、 int a; cin >> a; このように書けば良いですね。基礎中の基礎です。 時々、 int a; cin >> a; のように、改行しない一行のコード…

AOJ 0110 Alphametic

覆面算 | Aizu Online Judge 概要 A + B = C という形式で式が与えられる。式の長さは 126 以下である。 与えられる数値にはひとつ以上の X が含まれている。X は 0 以上 9 以下の整数である。 X に当てはまる整数を求めよ。当てはまる整数がない場合は NA …

Firebaseをandroidアプリに追加したときにつまずいたポイント

androidアプリにFirebaseを追加する これは、Firebaseコンソールから行う。名前や鍵を設定し、google-services.jsonをダウンロードし、所定の位置に置く。 その後、gradleファイルを変更する。app_name/app/src/build.gradleを以下のように変更。 dependenci…

コップ本でScala入門 - 2 配列、リストなど

配列 リスト タプル 集合とマップ イミュータブルなset イミュータブルなmap Scalaプログラマーに求められる態度 まとめ 配列 関数型なのに配列を!? string a[3]; a[0] = "ab"; a[1] = "cd"; a[2] = "ef\n"; for(int i = 0; i < 3; i++){ cout << a[i]; } va…

コップ本でScala入門 - 1 Scalaとは / if、for

はじめに 目標 Scala とは scalaを選ぶ理由 プログラミング第一歩 変数 関数 インクリメント forループ 実践 A - Product まとめ はじめに 「C言語でプログラミングのセンスがあるかどうかはわからないけど、 関数型言語わからないのはセンスがないよねw」…

技術室奥プログラミングコンテスト E - 不可視境界線 (The Invisible Borderline)

E - 不可視境界線 (The Invisible Borderline) 問題概要 辺にコストがある木が与えられる。 各頂点から最も遠い点を求めよ。 考察 木の直径を用いて解を求めることを考えます。まず、最長パス を求めます。 赤い部分は最長パスに含まれることを表しています…

ARC 088 E - Papple Sort

E - Papple Sort 公式解説が賢かった(レート1600並感)。 問題概要 英小文字からなる文字列 S が与えられる。 隣り合う 2 つの文字をスワップできる。 S を回文にするためのスワップの最小回数を求める。 回文にできない場合は −1 を出力する。 考察 回文な…

Indeed study session に競プロ的な愚直解コードを投げてしまった話

Indeed study session に参加して思ったこと。 Indeed study sessionとは 提出したコードをレビューしてもらえる勉強会。 書いたコードについて色々言ってもらえる。ちなみに2次募集の締め切りが 12/20 です。 学んだこと 競プロの気持ちでやってはダメだよ…

dein.vimとdeopleteをmacにインストールする。

環境 dein.vim インストール deoplete.nvim インストール 参考 環境 mac vim 8.0.1300 暗黒のVimmer(見習い) dein.vim github.comdein.vimは暗黒のプラグインマネージャです。 元々neobundleを使っていましたが、後継が1.5年前に出ているのでさすがに乗り…

AtCoder Beginner Contest D問題ジャンル分け

imos法 D: 感雨時刻の整理 - AtCoder Beginner Contest 001 | AtCoder 全探索 D: 派閥 - AtCoder Beginner Contest 002 | AtCoder D: バレンタインデー - AtCoder Beginner Contest 018 | AtCoder D: 語呂合わせ - AtCoder Beginner Contest 031 | AtCoder D…

ARC016 - C ソーシャルゲーム

C: ソーシャルゲーム - AtCoder Regular Contest 016 | AtCoder 問題概要 商品が n 種類、くじが m 種類あります。 くじを一度引くのにお金がかかります。 くじからは、ある確率である商品が手に入ります。最善を尽くしたとき、全ての商品を集める金額の期待…

ARC067 - E Grouping

E: Grouping - AtCoder Regular Contest 067 | AtCoder 問題概要 N 人をグループ分けします。 一つのグループにつき A ~ B 人で構成し、 同じ人数のグループは 0 か C ~ D 個作らなければいけません。 このようなグループ分けは何通りありますか。 DPの解説 …

ABC009 - D 漸化式

D: 漸化式 - AtCoder Beginner Contest 009 | AtCoder 問題概要 二つの数列 と が入力で与えられる。数列 A は以下の式によって計算できる。 数列 A の M 番目の値を求めよ。 解き方 漸化式を計算するには、DPを使えば良いです。しかし、制約が大きく、DPで…

ABC025D - 25個の整数

D: 25個の整数 - AtCoder Beginner Contest 025 | AtCoder 解説を見て実装を放置していたため、考察要素はないです。 問題概要 5 * 5 のマスがあります。 1 ~ 25 までの数値を、各マスに一つずつ書きます。 ただし、以下の条件を満たすように書かなければい…

AOJ 0553 ダンジョンの解説

AOJ 0553 ダンジョン ダンジョン | Aizu Online Judge 考察 問題点 あり本にある優先度キューを用いたガソリン問題と似ています。 ただし、こちらの問題では、ガソリンを入れられる量の上限があります。体力が0以下になる前に、どこかで回復しなければいけな…

構文解析初心者でも解ける問題を集めた+解説

競技プログラミングにおいての構文解析問題を集めました。難易度はAOJ-ICPCで300点程度です。

vimに構文チェックのプラグインを入れた(C++)

syntastic 導入の流れ 導入してわかったこと ファイル上書き時に構文チェックされる。 割と重い w0rp/ale Asynchronous Lint Engine 導入してわかったこと syntasticと比べて速い 結論 syntastic このようになりました。 導入の流れ GitHub - vim-syntastic/…

AOJ 1249 Make a Sequence

Make a Sequence | Aizu Online Judge AOJ-ICPC 200点所用時間:1時間30分 遅すぎる。実装力が足りてない。 問題概要 簡単に言うと3次元五目並。 n * n個のマスがある。黒いボールと白いボールを交互に置いていき、先にm個一直線に並べれば勝ち。 同じマスに…

AOJ - 2170 Marked Ancestor

Marked Ancestor | Aizu Online Judge 問題概要 木が与えられる。 以下の2つのクエリを処理し、出力された番号の合計を求める。 頂点aをマークする 頂点aから最も近いマークされた祖先の番号を出力する 解法 union-findこのスライドにある解法をそのまま実…

『SOFT SKILLS ソフトウェア開発者の人生マニュアル』の各章を1行でまとめた

『SOFT SKILLS ソフトウェア開発者の人生マニュアル』の内容を各章ごとに1行で表した。 章を要約するつもりで書いたが、上手くできているかはわからない。 第1部 02. 自分自身はソフトウェアを作れる能力を提供する事業である 03. キャリアの目的を決めよう …

ネットワークインターフェイスの名前

MacBook Air でifconfigして表示されたネットワークインターフェイス一覧。lo0 ループバックアドレスgif0 トンネリングを行うen0 Etherneten1 有線のEtherneten1 Air Macstf0 IPv6パケットをIPv4ネットワークにルーティングするp2p0 Air Dropの機能用awdl0 H…