アプリ用アイコンの作成

元画像の作成 Inkscape等でデザインする。 サイズはAndroid/iOSなら1024×1024。Windowsなら256×256以上 (1024×1024で作成してもよい)。 PNGファイル(32bit透過)にエクスポート。 Android/iOSアプリの場合 下記オンラインツールで、必要なサイズの一括リサイ…

Windowsのファイルアクセス監視ツール

例えば、あるプロセスのファイル入出力をモニターしたいとかに使えるツール。 SoftPerfect File Access Monitor forest.watch.impress.co.jp 使い方 起動するとログイン画面になるが、ローカルのPCを監視するならホスト名はデフォルトの「localhost」、パス…

C#のイベント処理

C#のイベント処理の書き方、なんか珍妙ですぐ忘れるのでメモ。 イベントの型の定義 // イベント引数の型 public class HogeEventArgs : EventArgs { public string HogeData; } // イベントの型 public delegate void HogeEvent(object sender, HogeEventArg…

西のローマ、東のギリシャ

地中海の西部でローマとカルタゴがポエニ戦争を戦っていたころ、東部にはアレクサンドロス大王の後継者たちが建てたギリシャ系王朝(アンティゴノス朝、セレウコス朝、プトレマイオス朝)が割拠していた。いわゆるヘレニズム三国だけど、どういうわけかヘレニ…

言語学ネタ (印欧語族の古代語)

性・数・格の一致 インド・ヨーロッパ語族に広くみられる「性・数・格の一致」というのは、乱暴に言うと「韻を踏む」ことだと思ってる。例えば、古代ギリシャ語の例。 サンスクリット語と漢文 サンスクリット語の複雑怪奇な動詞の変化と比べると、漢文のなん…

PS2コントローラをArduino系ボードで使う

やりたいこと ワイヤレスのプレステ2コントローラおよびその互換品 (以下、PS2コントローラ) をArduino系マイコンボードにつないで使いたい。たとえばロボットを操縦するコントローラとして。 インターフェース PS2コントローラはSPIインターフェースで通信…

IoTマニ車

大晦日ハッカソン2018の成果です。 今日はこのマニ車のIoT対応をやります。マニ車を回した回数をWiFiでインターネット上のサーバーに送り、パソコンやスマホ等のブラウザに通知して表示させたいと思います。 WiFiマイコンはおなじみのESP8266。ロータリーエ…

ロボットハンガー

アルミフレームを組んでホビーロボット用のハンガーを作りました。 アルミフレームはモノタロウ等で手に入り、六角レンチ一本で組めて簡単に剛性と直角が得られるすごく便利な部材です。2020タイプ(20mm×20mm)、3030タイプ(30mm×30mm)、4040タイプ(40mm×40mm…

SyncToyでフォルダの同期

Windowsで2つのフォルダの内容を同期するには昔はRealSyncを使ってました。当時はたいへん重宝しましたが、もう十年以上前に開発が止まっているようです。今は何が良いのか、なかなか決定版というのがみつかりません。まあ、今どきはDropBox等のクラウドスト…

Androidアプリの書き方思い出し(3)

オブジェクトのシリアライズ オブジェクトをIntentに持たせたりSharedPreferencesに保存する場合、JSON形式でシリアライズして文字列として扱う。JSON形式のシリアライズにはGSONというライブラリを使う。 まず、Moduleのbuild.gradleに依存関係を追記する。…

Androidアプリの書き方思い出し(2)

設定データの保存/読み出し SharedPreferencesを使う。 おなじみのキーバリューストア方式である。 // 保存 SharedPreferences pref = getSharedPreferences("Hoge",MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putString("Key1"…

Androidアプリの書き方思い出し

画面遷移 サブ画面に移るには、Intentを作ってstartActivityする。 Intent intent = new Intent(getApplication(), サブ画面Activityのクラス名.class); startActivity(intent); サブ画面のActivityを作るには、[Projact]ウィンドウの[app]を右クリックして[…

Fireタブレット

AmazonのFireタブレットは異様に安い。そのかわりAmazon特製オレオレAndroidなので、ふつうのAndroidタブレットとしては使いづらい。とくかくAmazonを利用すること中心のユーザー体験を強いられる。まあ、Amazonの販促ツールなのだから当然といえる。ぼくは…

x86インラインアセンブラ (2)

x86インラインアセンブラ - 滴了庵日録 のつづき。 メモ 配列もC言語の変数名がそのまま使える。 ただし、アドレスのスケーリングは明示する必要がある。 32ビット整数ならスケーリングは *4 (任意の数を指定できるわけではない)。 ブロック転送には、esiとe…

Webアプリでデータの保存

HTML5+JavaScriptでローカルにデータを保存する実験。 データの保存にはWebStorageを用いる。 WebSotrageはKey-Valueストア方式。 永続保存されるlocalStorageとブラウザ閉じたら消えるsessionStorageがある。 保存/読み出しはsetItem/getItemメソッドを使う…

Webアプリで加速度センサ

HTML5+JavaScriptで加速度センサのデータを取得する実験。 PCのブラウザで開いても何も起こらないが、スマホのブラウザで開くと 向き・加速度・角速度のデータが表示される。スマホでも角速度センサ(ジャイロ)を持たないでは角速度は表示されない。 z軸は画…

Webアプリでマルチタッチ

HTML5+JavaScriptでマルチタッチを取得する実験。 なるほど。マウスでは発生しないタッチ特有のイベントがあるのね。指が触れたとき、動いたとき、離れたときに各タッチのIDと座標がイベントから得られるのはAndroidアプリやiOSアプリと基本的に同じ考え方。…

「Androidでハードウェア制御」という物語

これは昔話。昔話なので記憶ちがいもあるかもしれない。 今は昔 Androidでハードウェアを制御してみようというストーリーは古くからあった。まだスマホがそれほど普及していない2010年ごろにはすでにあった。いろんなものが現れては消えた。まだ過去形で語る…

VC++のDLLをC#で使うなど

VC++でDLLを作る [新しいプロジェクト] > [Visual C++] > [Win32アプリケーション] でプロジェクトを作成。 ここでは名前を MyCppDll にしたとする。 [アプリケーションの種類] は [DLL] を選択。 MyCppDll.cpp を下記のように編集してビルド。 #include "st…

Node.js と Socket.IO

Node.js と Socket.IO とは Node.js : サーバーサイドをJavaScriptで書けるやつ Socket.IO : Node.jsでWebSocketができるやつ 今回やること WindowsのPCにNode.jsをインストールし、ローカルで実験。 Socket.IOを用いて、Node.jsとブラウザ間でWebSocket通信…

Xorshiftアルゴリズムで乱数

XorshiftアルゴリズムとはXORとシフトだけで品質の良い疑似乱数を生成するアルゴリズム。 // 周期 (2^32 - 1) 版 Xorshiftアルゴリズム #include <stdint.h> static uint32_t x = 2463534242; void xorshift32_seed(uint32_t seed) { if (seed != 0){ x = seed; } } ui</stdint.h>…

VC++でWindowsフォームアプリ

VC++でWindowsフォームアプリを作る方法メモ。 すでにオワコンだが 昔はVC++にもWindowsフォームアプリを作るテンプレートがあってちゃんとサポートされていたけど、今はテンプレートもなくなってる。もうとっくにオワコンである。そもそも、わざわざVC++で.…

ROBOTIS Dynamixelシリアルサーボの制御

Dynamixelについて ROBOTIS Dynamixelはロボット用シリアルサーボのシリーズ。 Dynamixel通信プロトコル プロトコルはV1とV2があり、互換性はない。 Besttechnology - Dynamixel通信プロトコルV1マニュアル (日本語) Besttechnology - Dynamixel通信プロトコ…

DOS窓でtouchコマンド

DOSにはtouchコマンドがないので、下記のようなバッチファイル touch.bat を作成して代用する。これを環境変数Pathで設定した適当なフォルダに置いておけば、touchコマンドと同じように使える。 @echo off if %1. ==. goto end if not exist %1 ( type nul >…

Processingで魚眼

魚眼のことがちょっとだけ分かった。Processingたのしい。 魚眼でレナさん メモ スケッチ PImage srcImg; // 元画像 PImage dstImg; // 処理後の画像 int W,H; // 画像のサイズ int R; // レンズの半径 int D; // レンズの中心から投影面までの距離 void set…

専門外分野のメモ

JavaScriptに関するメモ 高速化について 重いスクリプトの<script>要素は、<head>要素内でなく、<body>要素内末尾に書いた方がページの表示が速い。 JS MinifierとかYUI Compressorとかでコードの圧縮(コメントやら空白やら改行を除去)すると読み込み時間短縮。 evalは処理コスト</body></head>…

C#で親Formからデータを受け取る

Form1からForm2を開いて、Form2でForm1のデータを受け取る方法。 (ownerなんて引数があるのを知らずに、いつも別途渡していた orz) Form1からForm2を開くとき、自分自身を引数(owner)として渡す。 var form2 = new Form2(); form2.ShowDialog(this); Form2で…

STM32のRTCの落とし穴

STM32のRTCを使ってみてハマった落とし穴などについて書く。 環境は、STM32F767ZI (Nucleo-F767ZI) + HALドライバ + CubeMX + IAR EWARM 以下では単にSTM32と書くが、STM32F767ZIでしか試していない。 やや不可解な内容も含むので誤りがあればご指摘ください…

Processingネタ

ProcessingでBox2D Box2Dとは Box2Dはゲーム用の2D物理演算エンジン。 C++, Java, C#, Python, JavaScript, ActionScriptで利用できる。 Processingでも利用することができる。 Processingへの導入方法 [スケッチ] > [ライブラリをインポート] > [ライブラリ…

C言語のプログラムにLuaインタプリタを組み込む

ここではWindows/VC++環境で、C言語のプログラムにLuaインタプリタを組み込んでみる。 Luaライブラリのダウンロード Lua Binariesより、Windows用のライブラリをダウンロードする。 32ビット版ならlua-x.x.x_Win32_dllw4_lib.zip 64ビット版ならlua-x.x.x_Wi…