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へ…

ダイクストラのアルゴリズムを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…

rustlings 🦀❤️やってみた

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

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

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

MIMEのパースでハマった話

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

Rust入門した感想

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

HaskellでHello World

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

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

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

python3でpython2を実行する

subprocessをimportして実現します。 python3_Sync.py import subprocess cmd = "python ./py2.py" print("subprocess start!!") #同期実行 subprocess.call(cmd.split()) print("subprocess end!!") python3_Async.py import subprocess cmd = "python ./py…

C#でマウスで画像を移動、拡大縮小し、背景画像に重ねて表示する

はじめに C#で「マウスで画像を移動、拡大縮小し、背景画像に重ねて表示する」機能を実装しました。パワーポイントなどのMS Officeでは当然実装されている機能です。オブジェクトを移動させて重ねて表示する 参考 【C#】マウスホイールで画像の拡大縮小 画…

C#の開発(簡単GUI環境)に関するメモ

はじめに C#環境の構築 検討したGUI環境 参考サイト はじめに GUIプログラミングを簡単に初めたくていろいろ調査した結果、Visual Studio 2017 + C#の環境が選ばれました! C#環境の構築 docs.microsoft.com http://www.greenowl5.com/gprogram/vcs/visualCs…

5分でなんとなくわかるコールバック関数

コールバック関数の考え方ってイメージしにくくありませんか?私はうまくイメージできていませんでした。そこでイメージ図にまとめてみました。この図でなんとなくコールバック関数がわかるような気がします。 コールバック関数のイメージ図 解説 コールバッ…

pandasで特定のカラムの要素ごとに別カラムの要素数をカウントする

はじめに やりたいこと pandasとは インストール方法 実装ソースコード count_area.py anime_seichi_ver2.csv title.csv 出力結果 参考 おわりに はじめに GoodClues_DBに対して、タイトルごとに最頻出するアニメ聖地領域(県名、市区町村名)を抽出するため…

PythonでMariaDB(MySQL)に接続し、レコード内容をツイートする方法

はじめに 環境 ツイートまでの流れ データベースへ接続 レコードの取得 ツイート文の作成 ツイートの実行 参考Webサイト おわりに はじめに pythonでMariaDB(MySQL)に接続し、レコード内容をツイートする方法を紹介します。データベースのテーブル及びレコー…

Twythonで複数画像データを投稿する方法

はじめに 前提条件 画像投稿の流れ(2枚投稿の場合) 画像ファイルのオープン 画像データのアップロード 画像データを付与したツイートの投稿 ソースコード 参考サイト おわりに はじめに Twythonで複数画像データ(最大4枚*1)を投稿する方法を紹介します。…

Twythonでmentionのデータを取得する方法

はじめに 前提知識 リプライとメンションの違い JSONとは mentionのデータの取得の流れ 1. ボットのスクリーンネームを取得する 2. ボットのタイムラインから最新のツイートを取得する 3. ボットの最新ツイート以降のメンションを取得する twython仕様書 実…

RaspberryPi(Python)で『定期的に』Tweetを投稿するために必要なこと

はじめに 定期実行 プロセスの継続 実装コード bot.py おわりに はじめに RaspberryPiから投稿する場合のメリットとして、それを常時稼働させておけば定期的な投稿も容易であることが挙げられます。PaizaCloudやHerokuなどのクラウドサーバを利用することで…

半定型文をTweetするbotの実装(Python)

はじめに ファイル構成 実装に利用した機能 配列操作 文字列結合 ファイル操作(タブ区切りのファイルを読む) 乱数生成 文字コード設定 重複投稿エラーの対応 その他 実装コード bot.py auth.py db.txt おわりに はじめに Pythonを初めて使ったので、必要な処…

RaspberryPi(Python)でTwitterに投稿するために必要なこと

はじめに 必要な物 ハードウェア ソフトウェア RaspberryPi を設置した画像 必要な設定 sshの有効化 ネットワークの設定 リモートアクセスの実施 日本語化 参考Webサイト 今後の予定 Hello world!— 聖巡 (@Holy_Ground_) 2018年10月19日 はじめに Twitter開…