tshimizu's diary

日々の記録

簿記が面白いという話

この記事はfreee20卒内定者 季節外れのアドベントカレンダー29日目です。 昨日の記事は、ユキさんの長距離きっぷのすすめでした。田舎に住んでいることもあり、自分は普段車移動なので新鮮な気持ちで読みましたが、まさに「Hack Everything★」といった感じの…

DIPとモックによるテストの手習い

はじめに 最近ちょこちょこテストを書くようになった。その中で、うまいテストの書き方がなかなか見つからないことも多い。ここで言う「うまい」というのは、テストしたい対象の外側に対して依存がなく(少なく)なるような書き方のことを指している。 うま…

サンタクロース問題(スレッド・アクター・チャンネル)

はじめに この記事は Treasure Advent Calendar 2018 23日目の記事です。 今回はクリスマスにちなんで、並列プログラミングの古典的なトピックである「サンタクロース問題」を取り上げます。この問題を、並列処理を記述するための一般的なモデルであるスレッ…

AtCoder Beginner Contest 115 D問題

問題:Christmas 本番では解くことができなかった。しかし、解法がとてもシンプルかつ、再帰関数の実装に関して教育的な問題だと感じた。 解法 各レベルiの「層の総数」と「含まれるパティの数」は入力に関係なく、事前に計算できる。 レベルiのバーガーには…

Treasure2018の記録

はじめに 参加動機 講義内容 チーム開発 終わりに はじめに VOYAGE GROUPの夏のインターンTreasure2018に参加して来ました。Treasureを通して自分には経験をアウトプットすることがもっと必要だと思ったので、まずはインターンでの経験を書き残すため、1年…

組み込みOS(第7回)

ステップ7の内容 割り込み処理を実装する。前回までのシリアル入力の受取りはビジー・ループによって行われていたが、今回はシリアル割り込み処理によるものに変更する。 割り込み入力ピン 部割り込みに対しては、ピンへの入力によって割り込みハンドラを呼…

組み込みOS(第6回)

ステップ6の内容 前回ステップで、転送したELF形式ファイルを解析し、セグメント情報を読み取り、とりあえず内容を表示することだけはできた。今回のステップでは、読み取った情報をもとに、ファイル内容ををRAM上にコピーし、エントリーポイントに処理を渡…

組み込みOS(第5回)

ステップ5の内容 ステップ4までで、とりあえずファイルの転送まではできるようになった。ここからは、転送したELF形式ファイルをRAM上に展開できるようにする。ステップ5では、展開はせず、ELFの解析プログラムまでを作成する。 マジック・ナンバ ELF形式…

組み込みOS(第4回)

ステップ4の内容 今までは、プログラムの書き換えのたびに直接ROMを書き換えてきたが、ROMの書き換え回数には上限があるため、この方法を変更する。ROMにはブート・ローダーを書き込んでおき、起動のたびに、シリアル経由でプログラムをダウンロードし、RAM…

組み込みOS(第3回)

ステップ3の内容 ステップ2まではできなかった静的変数の書き換えを可能にするため、各ファイルを修正する。 変数の種類 変数にには「静的変数」と「自動変数」という種類がある。これらは、プログラムで宣言された位置によって種類が決まり、割り当てられ…

組み込みOS(第2回)

ステップ2の内容は、シリアルコントローラのレジスタによる設定、標準ライブラリ風関数の実装が主な内容だった。今回気になったのは「分周」と「ボーレート」の関係くらい。 まず分周とは、CPUのクロック周波数をnで割ってほしい周波数を作ることらしい(n:…

組み込みOS(第1回)

『12ステップで作る組み込みOS自作入門』という本を購入した。 以前から気になってはいたが、なかなか手を出さずにいたら存在を忘れてしまっていた。 再び購入意欲が高まった理由は、今期の大学のOSに関する講義があったこと、そしてバイト先(組み込み系…

「なぜ、あなたの仕事は終わらないのか」の感想

この本はICPCでスポンサー企業の方からいただいたものだ。もとから気になっていたので、ありがたかったが、なかなか読む時間を作れず、昨日やっと読み終えた。いくつか印象に残った点があるのでここに記録しておく。 最初の2割の時間で仕事の8割終わら…

Ruby on Rails ファーストタッチ

友人とその先輩と自分の3人で、今月19日にRuby on Railsを使ったハッカソン的なものをすることになったので、Ruby on Railsの勉強を始めた。 先輩の方はWeb系の会社に就職決まっいて経験も豊富だそうだが、自分と友人はRailsを触ったことがない。 Railsは…

ゲーム開発(2本目)の反省

Unityによる2本目のゲームを先週リリースした。 前回は友人との2人体制での開発だったが、今回は自分が主導で主に3人で開発を行った。 この3人に前回の友人は含まれていないが、シーン遷移部分などを手伝ってもらった。 リリースは10月中の予定だった…

ICPC2016アジア予選

ICPC2016アジア予選に出場した。 大会から1週間たってしまったが、完全に忘れてしまう前に、参加して感じたことを記録しておく。会場にはたくさんの有名人が来ていた。 PFNの西川さん、秋葉さん、AtCoderのちょくだいさん、 そして同じ学生だけど既に競プロ…

競プロの記録 (2016_10_02)

No.39 桁の数字を入れ替え - yukicoder入力数Nをstringとして受け取る。 まず、先頭の数字を指定し、その数字より大きいものが無いかを 、後ろのほうから見ていく。 この時、できるだけ大きなものと入れ替えたい。 このような動作を、指定する数字を先頭から…

競プロの記録 (2016_10_01)と、英会話

今日も星2を1問解いただけで終わってしまった。 非常にまずい。 考えてダメだったら、すぐに解答をチラ見する方針で、 また解き始めるのを恐れないようにする必要がありそう。 要はすぐに手を動かせというハナシ。No.36 素数が嫌い! - yukicoder入力Nの、…

競プロの記録 (2016_09_30)

今日は星2を1問のみ。 数は少なすぎるけど、やっと星2を解いた。No.17 2つの地点に泊まりたい - yukicoder途中で止まる地点が、2点以上というのが肝。 その2点間に何を経由するかは関係なしで、単純に2点間の距離を求める。 こういう時はワーシャルフ…

競プロの記録 (2016_09_28, 29)と、初リリース

今日は、星1を14問解いた。生活習慣が完全に破たんしてしまい、やるべきことが全然進んでいない。 4時ごろ寝て12時ごろに置きる癖がついてしまった。 睡眠時間の長さ自体は悪くないが、0時から4時までは全く有効に使えておらず、 昼過ぎに起きるとあ…

競プロの記録 (2016_09_26, 27) と、その他

昨日と今日は、二日間で星1を4問解くだけになってしまった。 言い訳をすると、友人との予定とゲーム作成のせい。 でも一番大きな計画遅延の原因は、生活リズムの崩壊かな。 朝起きないと、やっぱりやる気がイマイチでない。「星1」No.349 干支の置き物 - …

競プロの記録 (2016_09_25)

今日は星1を15問解いた。「星1」No.239 にゃんぱすー - yukicoder問題文には、「自分以外のすべての人に」と書かれていることは確認していたけど、 テスケースがそうなっていないように見間違えた。 テスト入力が行列形式の時は、間違いやすいのでしっか…

A予選の感想

C: 次のアルファベット / Next Letter - CODE FESTIVAL 2016 qual A | AtCoder文字列を先頭から見ていって、できる限り'a'にするだけ。 あまりの操作数は最後の文字で調整する。 解法は割とすぐに気が付いたが、「もとから'a'」の時は例外とすることに気が付…

競プロの記録 (2016_09_24)

今日は星1を6問と、星2を1問解いた。 そのほか中途半端な星2が1問。「yukicoder: 星2」No.16 累乗の加算 - yukicoder愚直にやると10^(2+8)で間に合わない。 指数が小さいほうから計算していき、その都度一つ前のものを利用していけば、毎回丸々指数の…

競プロの記録 (2016_09_23)

「yukicoder:星1」yukicoderN-1を言えれば勝ちである。 自分のターンと相手のターンで1セットとすると、1セットでK+1ずつ進めることができ、これが相手にとって最善であり、 (N-1)が(K+1)で割り切ることができれば相手の勝ちである。 それ以外なら自分の…

競プロの記録 (2016_09_17,18,19,20,21,22)

この6日間で解いた問題は、yukicoder星1の3問のみ。 体調不良や、友人とのゲーム作成があったとはいえ、これはさすがにひどい。 一日の間、どのように時間を使っているかの記録を久しぶりにやったほうがいいかもしれない。 生活リズム自体が崩れている。…

競プロの記録 (2016_09_15,16)

No.182 新規性の虜 - yukicoder 問題はやるだけだが、いくつか新しく知ったことがあった。 まず連想は配列mapについて。 今回、入力が初めての数字だったら、m[A]=0; と初期化していたが、必要ない様だ。 いきなりインクリメントしてしまってよい。 次に、au…

競プロの記録 (2016_09_14)

<星1>No.172 UFOを捕まえろ - yukicoder今回の結界のばあい、4辺をそれぞれ直線と考えると、傾きを表す係数は、-1か1になる。 この時、直線上の任意の点はすべて、原点からのマンハッタン距離は等しくなる。 直線と円の接点の座標に関して、マンハッ…

競プロの記録 (2016_09_13)

今日は新規に10問、再解答2問を消化した。<星1>#18169 No.138 化石のバージョン - yukicoder 1文字ずつ比較していったが、1文字ずつ何十倍かして足し合わせたものを比較する方法もある。No.146 試験監督(1) - yukicoder MODの取り方をどこまでやる…

競プロの記録 (2016_09_12)

今日は星1が4個と、星2を一問だけ解いた。<星1>No.116 門松列(1) - yukicoder3項の最大値と最小値の判定は、min(a,min(b,c))、max(a,min(b,c))でできる。 2項目が中央値でない判定は次のように行えばよい。 min(a,min(b,c)) + max(a,min(b,c)) != a …