YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

IT

組み込みシステムとは

はじめに 組み込みシステムとは 機械制御を目的とした情報システム 表記 おわりに はじめに ソフトウェアエンジニアの一つとして組み込みエンジニアという職種があります。ソフトウェアエンジニアが開発する情報システムの分類の一つと位置付けられます。プ…

Rustの関数ポインタを配列で扱う

関数ポインタの利用 fn double(n: i32) -> i32 { n + n } fn abs(n: i32) -> i32 { if n >= 0 { n } else { -n } } fn main() { // doubleの関数ポインタをfへ束縛 let mut f: fn(i32) -> i32 = double; assert_eq!(f(-42), -84); // absの関数ポインタをfへ…

Google TestをUbuntu上のeclipseにて実行

はじめに 環境 OpenJDK 11とEclipseのインストール Google Testのインストール EclipseとGoogle Testの連携 1. includeディレクトリの指定 2. ライブラリパスの指定 3. ライブラリの追加 Google Testの利用 おわりに はじめに 2013年に発売されたモダンC言語…

ソフトウェアエンジニアが開発する情報システムの分類

IT

はじめに 私は組み込みシステムを開発しているのですが、組み込みシステムの上位概念と同位概念は何になるだろうか?と疑問に思い整理しました。ソフトウェアエンジニアを目指す方のヒントとかになれば幸いです。 情報システム a formal, sociotechnical, or…

ランレングス圧縮の魅力 ~茶diff攻略への強い味方~

0. はじめに 1. ランレングス圧縮(Run Length Encoding)とは 2. ランレングス圧縮の効果 大きな入力データを圧縮できる 連続する同じ文字とその個数に着目するができる 変化点のみに着目することができる 3. ランレングス圧縮の魅力 4. ランレングス圧縮関…

AtCoder Beginner Contest 174 ふりかえり

はじめに A - Air Conditioner B - Distance C - Repsept D - Alter Altar コンテストを振り返って おわりに atcoder.jp はじめに AtCoder Beginner Contest 174で2ヶ月ぶりにHighest更新しました。 yu2ta7kaさんのAtCoder Beginner Contest 174での成績:37…

AtCoder Beginner Contest 173 ふりかえり

はじめに A - Payment B - Judge Status Summary C - H and V D - Chat in a Circle おわりに atcoder.jp はじめに AtCoder Beginner Contest 173で久しぶりに3完しました。 順位 5302nd / 10750 パフォーマンス 638 レーティング 502 → 517 (+15) Contest R…

入緑を目指している中でのポエム

先週末2回のAtCoderコンテストでレーティングを下げることしかできず、いろいろ思うことがあり、適当に書き散らかします。緑に向けて過去問解いたり、螺旋本解いたりしていればそれなりに上がっていくだろうと思っていましたが、甘かった。特に問題に対する…

【Rust】茶色コーダーに到達【AtCoder】

はじめに モチベーション 面白さ 精進 1. AtCoder Problemsのrecommendを解く 2. 競プロ参考書を読んだり実装したりする(今は螺旋本) 3. けんちょんさんの記事をめっちゃ読む 4. 参加コンテンストの復習(pdf,動画,他者解答の確認) 5. 自分のレベルを把握…

std::mapを使った集約処理

はじめに 実装 使用例 制御の名前 おわりに ちなみに はじめに 競技プログラミングの問題でキーごとに出現回数をカウントするシーンが多くあります。この制御をC++のstd::mapを使って実装します。 実装 #include <map> using namespace std; template <typename K, typename V, typename A> void map_c</typename></map>…

AtCoder Beginner Contest 164 ふりかえり

A問題 B問題 C問題 D問題 おわりに atcoder.jp AtCoder Beginner Contest 164に参加しました。C問題までは解けて、D問題は一時間以上かけてもわからずゲームオーバー。それでもC問題までをWAなくそれなりの速度で解けたため、パフォーマンスが自己ベスト更新…

ダイクストラのアルゴリズムをRustで実装

はじめに BinaryHeapについて 実装 隣接行列を用いた実装 優先度付きキューを用いた実装 参考 はじめに 最短経路を求めるアルゴリズムとして有名なダイクストラ法をRustで実装しました。ダイクストラ法は隣接行列を用いるとO(|V|^2)ですが、優先度付きキュー…

AtCoder Beginner Contest 160 ふりかえり

A,B問題 C問題 D問題 この問題で使えた技 コンテスト中に新しく出せたコマンド おわりに 蛇足 AtCoder Beginner Contest 160に参加しました。Cまでは解けて、D問題がわずか1分のタイムオーバーで非常に悔しく楽しい回でした。 atcoder.jp A,B問題 WAもなくス…

ABC015_C 高橋くんのバグ探しで学ぶstatic mutの危険性[Rust]

要約 問題概要 解法 危険な実装(ダメ絶対) 構造体を使った安全なコード*1 static mut を使った危険なコード 参考 要約 DFS(深さ優先探索)の勉強としてAtCoder Beginner Contest 015 C問題をピックアップ。 グローバル変数を使った解答例を模倣してstatic…

ABC157 C問題のふりかえり

2020年3月16日に開催されたAtCoder Beginner Contest 157に参加しました。C問題が解けず非常に悔しかったです。解説などを見てようやくACし、その中の学びをふりかえっておきます。 【結果】 順位 4126th / 6597 パフォーマンス 411 レーティング 105 → 135 …

rustlings 🦀❤️やってみた

rustlingsとは Rustを実際に読み書きしながら学んでいくエクササイズツールです。具体的には、rustlingsを起動するとソースコードのエラーが表示され、そのエラーを解消しコンパイルに成功させることが目標になります。そして、その過程でRustを学んでいきま…

Rustでアラビア数字をローマ数字に変換する

はじめに 問題 ローマ数字の表記法の特徴 アルゴリズム 実装 もう少しやりたいこと 勉強になったこと まだよくわかっていないこと 参考 おわりに はじめに 突然ですが、画像は何巻の美しいシャナかご存知でしょうか? ローマ数字で表記されている通り19巻で…

Lepow 15.6インチ モバイルモニタを購入

はじめに 開封確認 使った感触 仕様 他のレビュー記事 おわりに はじめに 10月にSurface Goを購入し、拡張ディスプレイも欲しいと思っておりました。ちょうどCyber Mondayの機会が巡ってきたのでいろいろ悩んだ末にLepow をポチりました。15,000円也。 開封…

MIMEのパースでハマった話

はじめに ソースコード全文をコピペできていなかった 利用すべきcrateバージョンがよくわかっていない おわりに ソースコード CrateのバージョンNG時のエラーメッセージ はじめに Rust CookbookのParse the MIME type of a HTTP responseでハマったので、そ…

【サクラエディタ】警告音(検索失敗音)を消す方法

開き方 Win+x→コントロールパネル→ハードウェアとサウンド→サウンド→メッセージ(情報) 参考 Windows10の警告音をOFFにする - Qiita

Rust入門した感想

はじめに やったこと 1.実践Rust入門 1部読了 特徴(これが全てではない) 型 所有権システム(所有権、借用、ライフタイム) トレイト 2部 2.パーセプトロンの実装 3.FizzBuzz実装 4.Rust.Tokyo聴講 展望 はじめに 夏頃から部内メンバの発案に乗っからせて…

Surface Go購入後にやったこと

はじめに 迷惑者の退治 普通のWindowsにする プリインストールソフトの削除 警告音の消音 検索窓の非表示 いざ環境構築 MS Office ツール エディタ プログラミング環境 使った感触 仕様 速度 ディスク領域 入力インターフェース ソフトウェア おわりに はじ…

HaskellでHello World

Rustを勉強中なのですが、関数型言語パラダイムが多く関数型プログラミングに少し触れたいなと思い、Haskell環境を構築します。 環境 Ubuntu 18.04.3 LTS インストール docs.haskellstack.org $wget -qO- https://get.haskellstack.org/ | sh $stack setupst…

Win10からRaspberryPiへVisual Studio Code(Insiders)のRemote Developmentを使ってリモートアクセスする方法

はじめに 動作環境 1.SSHの公開鍵認証設定 2.Visual Studio Code(Insiders)のインストール 3.拡張機能のインストール 4.ssh設定ファイルの作成 5.リモートアクセスの確認 おわりに 通常のVisual Studio Codeからラズパイへリモートアクセスを試みたときのエ…

バイトニックソートを理解する(16要素のデータを例に)

はじめに バイトニックソートの特徴 バイトニックソートのアルゴリズム バイトニックソートの実例 理解が難しかった点 おわりに はじめに 実践Rust入門を読み進めています。3章ではバイトニックソート(Bitonic sort)を例にRustのクイックツアーをするのです…

Raspberry pi でNode.jsを使って温度センサ値をブラウザに表示する

はじめに おうちカメラを実装する時に苦労した「Raspberry pi でNode.jsを使って温度センサ値をブラウザに表示する」をまとめます。Webブラウザ表示する場合サーバー側の実装が必要になり、そこをNode.jsに担ってもらいます。また、温度センサ周りは「Raspbe…

Raspberry Piカメラで撮影した画像をGoogleフォトへ自動アップロードする【おうちカメラ】

やったこと システム構成 システム構成図(ver3) ハードウェア ソフトウェア Google APIのAccess Token取得のお試し googleサービス上(ブラウザ)での操作 端末上(ラズパイ)での操作 Googleフォトへ自動アップロードする 必要なパッケージのインストール…

Raspberry PiにRustをインストールしてHelloWorldする

夏休みに始める新しいこととして、いろいろあってRustが選ばれました。参考書は実践Rust入門[言語仕様から開発手法まで]です。参考書の1章を読んだのですが、Rustの特徴を詳細に解説してくれており、これからがワクワクしてきました。C,C++と同レベルの速度…

Visual Studio Codeをインストールとその後に行う設定

Visual Studio Codeが気に入っており、開発時に利用しています。インストール後にもちょいちょい設定が必要なのでそのまとめです。適宜追記します。 Visual Studio Codeのインストール code.visualstudio.com 【開発環境】Visual Studio CodeのUser Installe…

おうちカメラ運用日誌(動作確認)

先週からおうちカメラを起動しています。 動作は問題無くしているのですが、やはり!課題は出てきました。www.yu2ta7ka-emdded.com 動作確認 一週間起動しっぱなしでいてました。ストリーミング配信、室温取得、定期撮影と全て問題なく稼働し続けていました…