roki_ars(pond)のブログ (original) (raw)

筑波大学編入して忙しかったから更新が遅れちゃった

1月

ロジックIC

電子工作っぽい電子工作をやってみた

配線が多くて、大変。回路のテストにはLチカが一番楽だなと思った。プログラミングと一緒

2月

加速度センサーを使った位置推定

うまくいかない

Rust

あんまり記憶がない

3月

React/Next.js

https://www.youtube.com/watch?v=ZbX4Ok9YX94&t=1s

ここを参考にDiscord cloneを作った

基本はテンプレートエンジンっぽくて、コンポーネントを使うことでコードを分けられて、宣言的UIを使うとHTML書くのが楽になるって感じ

DataBaseにsupabaseとprismaを使ったてて、結構使いやすかったからもうちょっと触ってみたいと思った

UseStateを使うと変数がフロント側で更新されるものとして扱われる?記憶が曖昧。。

ExSeedのRAG Chat bot開発

RAG Chat botは簡単に言うと社内情報とかの非公開情報についても聞けるAI Chat bot

社内情報をベクトルデータベースに保存しておいて、ユーザからプロンプトが与えられたとき、ユーザーのプロンプトを埋め込みベクトル化してベクトルデータベースから関連情報を検索、取得した関連情報とユーザーのプロンプトをLLMに与えて回答を作成って感じ

色々課題はあるけど今の生成AIブームの流れでなにかAIを導入したい会社に向けてちょっとした小銭稼ぎが出来そうな技術だなって思った。

4月

CPCTF

久しぶりにCTFに出た。力不足を感じた。

ctf-writeups/cpctf2024 at main · pond-e/ctf-writeups · GitHub

CanSat

筑波大学CanSatの開発をしてるサークルがあって驚いた。ちゃんと開発した経験があるから、今やっても面白い。これが就職に繋がればなぁ

5月

プロチャレ

競プロをやる授業があってかなり力が付いた気がする

セキュキャン課題

かなり時間をかけてやったけど、ダメだった。

この時の心境としては、つよつよになれる機会を逃したような気がしてかなり落ち込んだ。時間をかけたわりにフィードバックがないのは時間を無駄にしたような感じがするから、何かしらフィードバックが欲しいなぁと思った。

一応、一昨年の応募課題の反省を生かして書いたつもりだったけど何がダメだったんだろう

もう応募しないかな

6月

CanSat

Raspberry piで物体検知がしたくて、高速に動くgold yoloを試してた。ただ、環境構築がうまくいってないのか速度が全然でなかった。

あと、センサーのデータシートを読んで、過去に書かれたコードの悪いところを直したりしてた。

実験でデータストリーム処理をやっててそこでApache Flinkに触れた

触ったことのないフレームワークはなかなか使いにくい

Apache Flinkは並列処理がスケールしやすいように作られてるけど、実験の題材は並列処理をしないし、分けるKeyもないからApache Flinkのメリットが特にないのが残念

Javaの練習にはなった

7月

AtCoder

もうちょっとで緑になれそうだけど、なかなか難しい

グラフとDPは前よりも成長してる。二分探索も使い慣れてきた感じがする

CanSat

大会までは時間があるけど、国内投下試験だったり、審査書だったりで結構忙しかった

ソフトウェアって結局ロケットからの投下がうまくできないと無だからあんまり力いれすぎるのも良くないのかなって気がする

10月

Kaggle

一瞬だけ入門、データを与えられた後のことをやる感じみたい。具体的にどんな技術が試されるのかまだよくわかってない。

自作アルコールセンサー

Fusion 360を使った箱の設計、JLCPCBでの3Dプリント、アルコールセンサーの回路、ディスプレイへの表示、ハードウェアを作る工程を全部一人でやったのは初めてだったから結構達成感があった!

11月

高専祭のためにRAINNERのスマホアプリを手元の環境で実行

Android Studioなんもわからーんと思いながら、謎のエラーに悩まされながら、何とか動いた!

ただ、アプリの動作としては不完全だし、修正したのはUIだけだから技術的な進捗は特になかった感じ

展示したときにRaspberry Pi Zeroのピンヘッダが短絡してケースが一部解けたのはかなり肝を冷やした。原因はピンヘッダのはんだ付けが汚かったことだと思う。自分ではんだ付けしたわけじゃないけどちゃんと確認しないといけないなと

モーションキャプチャーを使った魔法の杖

Prototyping Labを参考に音の出る魔法の杖を作ってみた。

モーションキャプチャーの仕組みとしてはまず登録する動き(加速度)を記録する。動きを推測するときにはDTWを使ったのち登録した何種類かの動きのうち最も近い動きをしたものとするといった感じ。

DTWは時間的にゆっくりした動き、早い動きという情報をなるべく少なくして動きの形だけに注力できるように使われてるっぽい。ただ、これを使っても精度が良くないのがイマイチな点。

加速度は杖を振り回した時の勢いによって大きくなったり小さくなったりするから加速度で記録するんじゃなくて位置で記録出来たら良さそうかなって思ってるけど、加速度とか位置推定とかよく分からんからお手上げ状態になってる。というかもっと言うと物理とベクトルが苦手で基礎が全然わかってない、、だれか教えてほしい()。

あと、ESP32にdefaultでDACついてるのに驚いた。

素のESP32

USB->UART変換基板って1000円くらいするんだね、もっと安いのかと思ってた。

12月

tldraw

はるか昔にtwitterで見かけたサービスが始動してた。

自分の書いた絵がHTMLのサイトになるやつなんだけど、今まで心の底から求めてたものドンピシャで最高だった。ずっと、イラストソフトで絵を描くノリでHTMLページ作れたらいいのになって思ってたから本当に良かった。Chat GPT最高!tldraw最高!

卒研(深層学習で画像分類)

Microsoft Lobeと指導教員の偉大さを思い知った。自分考えたことで精度の向上に寄与した物ほとんど何もない。。

Lobeはなんで少ない画像枚数でいい精度と早い学習時間の実現が出来てるのかかなり謎、いつか必ずLobeを超えたいと思った。

まとめ

AtCoderの色変でもあれば進捗大きいかなって言えると思うけど。色変はなし。

なんか社会一般で評価されるようなことを何もしてない気がするから次の3か月は競技系を頑張ってみてもいいかも

無事編入が終わって完全に自由な夏休み!

始めは何するか考えてなくてとりあえずティアキンとアニメ消化してた

無職転生よかったです

BgGapFillerの作成(web app)

BgGapFiller

FastAPIで何かしたいなと思って作った

メイン機能の画像の処理は昔作ったpc-sakan(https://github.com/pond-e/pc-sakan)をそのまま使ったから楽ちん

FastAPIでPOSTでアップロードされたファイルを受け取って色々encode、decodeしてnumpyarrayにしたらopencvで処理って感じ

ホスティングはRenderを使った

Renderは無料で色々出来て結構すごいなって感じだけど、BgGapFillerの動作が結構遅くてなかなか思い通りにはならなかった

今度、画像の処理をImageMagicにやらせてみて早くなるか試したいところ

あとデザインの下書きにFigma使ってみてまぁまぁ使いやすかった、デザインセンスほしいなぁ

AtCoder入茶

今年の3月くらいから頻繁にやり始めたAtCoderでついに茶色になった!

一回4月に茶色になれそうな感じがしたけど、そこから長かったなぁ

あんまり褒められるような成績じゃないけどRateの推移はこんな感じ↓

去年の春も何回か出てるけど、この時はアルゴリズムの勉強とかほとんどしなかったからABしか解けてなかった

今回はアルゴリズム勉強してAtCoder Problemsも回したからいい感じ?に伸びた(/・ω・)/

AtCoder Problemsのパイチャート

esp32の基板設計

ここの動画ほとんどそのままやってみた

www.youtube.com

SMTの部品について知れたり、電源周りのキャパシタの意味を知るきっかけになったりして、かなり収穫があった

RAINNERの基板を近い将来作ってみてもいいかもしれない

マイクキットの組み立てとちょっと自作

秋葉原で買ったマイクキットMK-404を組み立てた

このキット、マイクの接続のところを自分で長めの線を引く必要があったり、出力が出力用の穴があるだけでどうすればいいかよく分からなかったりと(オーディオ関係やってる人からしたら自明なんだろうけど)一筋縄ではいかなかった、、

マイクの出力はモノラルプラグ Φ3.5 ミニP/Jセットを買って直接つけたらpcに接続して使えるようになった

今回はケースも買って入れてみた、ケースは適当なプラスチックケースを買ってケーブル通すための隙間をやすりで作った

自作モバイルディスプレイの修理

ノートパソコンからディスプレイをもぎ取って、外部からコントローラを接続してモバイルディスプレイにしたやつが突然画面つかなくなっちゃった

とりあえずコントローラを見てみると、PHコネクターに繋がってる線が切れてたのでそこを直してみることに

まずは、ハウジングコンタクトピン精密圧着ペンチを購入

精密圧着ペンチの1.6mmって書いてあるところに導線とコンタクトピンを入れて圧着する。コンタクトピンがかなり小さくて意外と難しかった

後はハウジングに差し込めば終わり!

こんな感じになった

基板は100均の適当なプラケースに入れた、やすりがけ楽しい

ケーシングを試してみるマイブーム、基板が散らからなくて割といい

ただ、ケースの値段が余計にかかるから金欠学生にはちょっとハードルがある

スイッチを押し返すロボット(useless box)の作成

esp32とサーボモータを使ってなんかやりたいなと思っていたところに面白そうなものを見つけたから作ってみることに

これが完成した物

スイッチを押し返すロボット(uselessbox)出来た! pic.twitter.com/arm0u7JK0p

— pondin (@picuto0206) 2023年10月2日

製作過程の詳細は後でyoutubeに動画を作ってあげる予定

3Dプリンター持ってないし、CAD使うにも寸法とか、サーボモータに差し込む用のギザギザの穴とかうまいことする自信がなかったから紙粘土工作になったw

紙粘土思ったより使いやすくてよかった

まとめ

今年は結構進捗出来て嬉しい

令和6年度 筑波大学情報学群情報科学類 第3年次編入学試験を受験してきました。

明石高専電気情報工学科からは情報科2人、シス工1人、物理1人が受験して僕だけが受かってたらしいです。編入厳しい、、

スペック

TOEIC : 705

学校での次席 : 5EJでB、おそらく10位前後

試験対策

徹底研究:4週(2週目以降は間違ったところだけやったので実質2週くらい)

過去問特訓:1, 5章を2週、2章はBまでやりました。

C問題は結構難しかったのですが、なるべく答えを見ずに解くようにしました。目安として1日くらいは分からなくても色々考えて2日かかりそうなら答えを見ました。

過去問:R5からH27までの9年分(数学はR5からH31までの5年分だけ)

過去問は数学の出題傾向の把握と、情報の演習のために利用しました。

3月中旬くらいから触り始めて問題を解いて理解が足りなそうな分野を問題集で演習するという形で取り組みました。

ただ、過去問と同じ問題は出ないのでこんなにやらなくてもよかったかなと思います。

TOEIC :

4年7月 375

4年9月 550

4年12月 555

4年1月 705(提出)

4年3月 685

705は上振れですね(笑)。

TOEICは金フレと公式問題集をやりこめばそこそこ点数取れると思います。僕はその2冊以外に「炎の千本ノック!パート5徹底攻略」という本で文法を身に着けました。

AtCoder : C、D問題を20回分くらいやりました。競プロはあまりやってこなかったので全然できません。ただCTFや個人開発はちょっとやってたのでコードを読むのに苦労することはなかったです。

試験

問題3->問題4->問題1->問題2の順で解きました。

情報は結構集中力を使うので始めに持ってきました。自分の得意不得意に合わせて問題の解く順番変えるのオススメです。

問題1

微分マクローリン展開

(1) やるだけ、当日なぜか3回くらい計算ミスをして時間を取られました。

(2) パッと見捨て問だなと思いました()。とりあえず3次までマクローリン展開をしてx=1/2を代入してみると11/24が出てきましたが、そこから先が分からず。

問題1は(2)が解けなかったので6割くらい?

問題2

行基本変形をしていく

(1) 明らかにt ≠ 1っぽいけど一応、行基本変形して確認しました。

(2) (0 0 0 1)^t ⋅ c = 0よりtを求める。

(3) 行基本変形をして解くだけ。

問題2は多分10割

問題3

フィボナッチ数列

(1) フィボナッチ数列の定義そのまま。

(2) 配列を使って計算済みの値を使う。

(3) forループの回数がO(n)なのでそれを説明として書きました。

(4) 漸化式を行列を用いて表現したものを利用したフィボナッチ、Yにn回目までの結果、Xに漸化式の行列が入るようになっていました。これを解いてるときは頭がこんがらがっていて、試験が終わった後に(d)をミスっていることに気が付きました。

(5) forループするたびにnの大きさが半分になるのでO(log n)と書きました。

1問ミスってるので8割くらい

問題4

幅優先探索

知ってるアルゴリズムが出てきてかなり安心しました。

(1) やるだけ

(2) 隣接行列と隣接リストの比較、授業でやった記憶を思い出しながら適当に書きました。

(3) キューをちょいちょいっと操作。

(4) 標準出力書くだけ

(5) 計算量の説明、(2)でも説明してたから似たようなことをを書きました。

10割とれたはず

全体の手ごたえ

例年よりも易化していて当日の試験は割と解けました(8, 9割?)。ただ、TOEICが730なかったので合格発表までは受かっているか、かなり不安でした。

結果として合格出来て本当に良かったです。

余談ですが、実は豊橋技術科学大学に落ちてて後がなかったので筑波に受かって本当に安堵しました。運が味方してくれたのかな

追記:成績開示

ギリギリの成績でした💦

twitter

pond⚖️ (@pond6814) / Twitter

1月

・wslの導入

この時まではvscodeとwslを繋げてなくて若干不便さがあったけど、この度vscodeと繋げたらめちゃめちゃ便利になってwslが好きになった。

・自宅用Raspi温度計のPCBの作成

https://twitter.com/picuto0206/status/1616648045877399554?s=20

夏休みぐらいに構想を考えたRaspi基板が完成した!

OLEDとBME280をRaspberry piのGPIOピンに繋げるだけの基板だったんだけど、2回も配線をミスった状態でPCBを発注してしまったのがポンだなぁって感じだった。

そろそろ、電子工作っぽい電子工作をしたいところ

・9軸センサの情報からUnity上でRaspberry piの姿勢推定

https://twitter.com/picuto0206/status/1619238954540339200?s=20

2年生の時からやりたいと思いつつ、クォータニオンが理解できなくて出来てなかった姿勢推定タスクがついに完了した~~

ほんとに感無量

結局Quaternion.Eular(x * dt, ...)の1行だけで出来ちゃったのがなんとも言えない気持ちになった。

・draw_rpicuit着工

Fritzingがかなり前に有料になっちゃったから、自分で代替アプリを作ろうって思って始めた。(実はFritzingがOSSなのに気づいたけど開発はつづけた)

2月

・tempetでsqlite3を使うように変更した

前まではファイル操作をしていたけど、スマートじゃないなと思ってsqlite3を使ったコードに変えた。

意外とすぐに終わったから、プログラミングのスキルが上がった感じはしない。

・pc-sakan

github.com

スマホ用の背景画像をpcでも使えるように画像の左右に単色の背景を追加してくれるプログラムをopencvでサクッと作った。

opencvが使いやすくて感動した。

3月

Atcoder

とりあえず茶色になることを目標にコンテストに出たけど、茶色になれず、、

4月

Atcoder

コンテストが2回アンレートになったり、学校が始まって忙しくなったりしてまだ茶色には行けなかった。ただC問題は解けるようになってきたから成長は感じる。

まとめ

大きなことはやってないけど、編入の勉強してる割には意外と色々やってたなぁって感じ

・10月

web系

phpでプログラミングの授業の課題制作用webページを作成
主にphpcssだけで作った(Javascriptは使わなかった)

このときはとりあえず、ベーシック認証を使ってユーザー認証をした

ホスティングサービスをちょっと触った(https://frail-mittens-fox.cyclic.app/

AIイラスト

AIイラストメーカーを触る(Stable diffusion, 他)。こういうのが出た瞬間にスマホアプリとかにできる人がお金をいっぱい稼げるんだろうなぁって感じがした

その他

授業の実験でドローン制御と言う名のOpenCV入門を果たした。基本的には色抽出をしてゴニョゴニョ遊んだだけだからまだまだ使いこなせてないけど、暇になったらまた遊んでみようかな

高専祭用にUnityからLチカを出来るようにした。ここでトランジスタを初めて使った。トランジスタは電気でスイッチングができてかつLED素子にかける電圧もマイコン外から持ってこれるからいい感じだった

・11月

プログラミング課題制作、ラズパイ編はすぐに終わった。webページをスマホ対応させるためにcssを書いた。ユーザー認証は結局セッションベースの認証に落ち着いた

天文宇宙検定

人間Cコンパイラテスト楽しかった

・12月

Unityでクォータニオンと本格的に戦った(勝敗はまだついてない)

12月は時間を使ったわりに成果が出なくてつらかった

・セキュリティ

サイバーセキュリティプログラミングを5/10章読んだ。正直使う場面があんまり想像できなかったから、理解が進まなかったところが多い。

・DCON in 神戸

センサーの信憑性(グラフは線形かどうか)の必要性を教えてもらった。機械学習で電圧から力に変換する関数(?)を探せばいいんじゃねっていう知見を得た。

Xbeeを布教されたw

インターン

車の部品を作っている企業に行ってマイコン研修を受けた。今までは「やりたい事をインターネットで抽象的に調べる」→「動かす」→「理解する」→「改造する」みたいな流れでやってたけど、ちゃんとした手順を教えてもらった。

マイコンは「使いたい機能のポートを調べる」→「ポートの仕様を調べる」→「実装」って流れで開発していくらしい。ポート大事!

・符号化について調べようとした

base xxとzlibについて調べて、base xxは理解したけど、zlibは良くわからん、LZSSとハフマン符号化を組み合わせてるらしい。ハフマン符号は基本情報でやったからわかるけどLZSSが良くわからん。

・個人サイト制作

さくらレンタルサーバーのライトを契約してちょっと遊んでみた。自分の作ったものがすぐに目に見えるようになるから個人サイト作成のモチベーションは保ちやすかった。

次はVPSとかクラウドサーバーとかを触ってみたい。

・知ってる言葉に片っ端から手を付けてみようとした

Ocaml(基本構文さえ慣れない)

php(さくらレンタルサーバーで使えたからやってみた)

SQL(なんとなく)

esp32(意外と簡単)

jsフレームワーク(めんどくさそうだったからあんまり)

kicad(意外と簡単)

Docker(Dockerfileを広げるだけなら出来そうなくらいまでやった)

tellus(環境構築で躓いてそのまま)

javascriptでメモの作成

・まとめ

今年はTOEICの勉強したりであんまり進捗は生えなかったような感じ。インターンで知見が広がったのが一番の収穫だった。

自分は独学が人より苦手だと感じた。具体的にはハードルの高さが調節できない事が一番の原因だと思ってる。他にも、分からない事を最後まで探求する好奇心(?)も足りない気がする。