サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
neocat.hatenablog.com
最近ニュースで航空機の捜索が話題になっていましたが、その中でADS-Bという単語が出てきました。 ADS-B(Automatic Dependent Surveillance-Broadcast)は、航空機から1090MHzの周波数で発信されている、識別子、GPSによる現在位置、高度、対気速度などを含む信号で、この情報を地上や航空機間で利用することでより安全に航空機を運用できるようにするもので、近年これに対応したトランスポンダを搭載する航空機が増えてきているそうです。1030MHzで各航空機に問い合わせを送り、各航空機が1090MHzで応答するというプロトコルになっています。 参考: 空中衝突防止装置 - Wikipedia Flightradar24というサイトを見ると、航空機の位置情報をリアルタイムで見ることができますが、これはユーザの受信機が拾ったADB-Sの情報を収集して配信するこ
Aruduino Duemilanove 328買ってみた。 Arduino (アルデュイーノ)とは、AVRマイコンを搭載しデジタル/アナログ入出力を備えたイタリア発祥のマイコンボードです。C++ライクな言語での開発環境が整備されていて、非常に簡単に開発が出来るのが特徴。いろんなセンサをPCに繋ぐインターフェースとしても使いやすいし、もちろんスタンドアローンでもいろいろこなしてくれます。 中でも Aruduino Duemilanove 328 (読み方。イタリア語かっこいい)は、USB 1本でPC(Mac, Windows, Linux)と接続するだけで、すぐに開発が始められる簡単さが特徴です。Arduinoは「オープンソースハードウェア」であり、設計情報は全て公開されているため、自分で組み立てることも出来ます。が、まずは製品を買うのが簡単だと思って、Amazonのスイッチサイエンス社の
現在、福島第1原子力発電所の事故の影響で、東日本で電波時計の基準となる福島の送信所からの標準電波(JJY)の運用が止まっています。このため、電波時計の自動調整が行えなくなっています。(西日本は九州からの電波があるため問題ありません。) このJJYを模擬した出力を、NTPを使って取得した時刻をもとにArduinoを使って発信*1して、電波時計を合わせるのに挑戦してみました。 PCのオーディオ端子を駆使して、同じことをするWindows用ソフトがあり、こちらに触発されて作ってみました。 JJYシミュレータ : http://www.starstonesoft.com/JJY_Simulator.htm JJYのフォーマットについては、下に詳しく説明があります。40kHzの電波のON/OFF時間により、1秒に1bitずつ、60bitの信号を1分かけて送信します。 標準電波の出し方 ハードウェアは
このエントリで紹介しているライブラリは、2010/8月に廃止されたBASIC認証を使用しており、現在動作しません。 以後は、OAuth対応版に移行して下さい。使い方はほぼ同じです。 一つ前のエントリで紹介したArduinoの魅力の一つに、「シールド」と呼ばれる拡張ボードを載せることで簡単に様々なハードウェアを利用できることがあります。純正のEthernetシールドやXBee(無線通信)シールドなどが販売されているほか、ユーザの手によっても作品が作られているようです。純正のシールドはライブラリやサンプルもIDEに組み込まれているので、非常に簡単に使えます。 今回はスイッチサイエンスさんで純正Ethernetシールドを購入してみました。 + Arduino Duemilanove 328 + Ethernet Shield これを使って、TwitterにメッセージをポストするSketchを書い
前のFlickr同様、twicli用サムネイル表示プラグイン「thumbnail.js」にYouTube・ニコニコ動画のサムネイル表示機能を追加しました。 やり方は以下の通り。 YouTubeの場合 本来はAPIを使って http://gdata.youtube.com/feeds/api/videos/<動画ID>からサムネイルのURL()をとってくるのが良さそうです。 が、今のところ http://i.ytimg.com/vi/<動画のID>/default.jpgに固定のようですので、これをいきなり表示しています。他に、 http://i.ytimg.com/vi/<動画のID>/0.jpg http://i.ytimg.com/vi/<動画のID>/1.jpg http://i.ytimg.com/vi/<動画のID>/2.jpg http://i.ytimg.com/vi/<動画
最近のChrome, SafariのJavaScriptには音声合成APIが入っています。 使い方は簡単で、JavaScriptコンソール等で var msg = new SpeechSynthesisUtterance('こんにちは!'); msg.lang = "ja-JP"; // 言語指定 window.speechSynthesis.speak(msg); のようにするだけで喋ってくれます。 音声エンジンを変えることも可能です。使える音声の一覧を var voices = speechSynthesis.getVoices(); で取得すると、voicesに音声オブジェクトのリストが返ってくるので、この中のlangやnameを見て使いたいものを msg.voice = voices[3]; などとSpeechSynthesisUtteranceオブジェクトのvoice属性に指定す
日本国内の電波時計の基準局(JJY)からの電波を模擬した信号をiPhone/iPad/iPod touchから出力して、電波時計の時刻を合わせるiPhoneアプリをリリースしました。 起動時にNTPで正確な時刻を取得し、それに合わせます。(インターネット接続できない場合にはiPhoneの時計が基準になります。) JJY Simulator (App Storeで見る) 原理としては、13.3kHzの音声信号として出力し、イヤホンから出る微弱な電波のうち、3次高調波(40kHz)を時計に受信させて、標準電波と見せかけています。 元のアイデアはWindows用ソフト電波時計用JJYシミュレータで使われていた方法です。 なおArduinoで電波時計を合わせた際には、PWMを使って直接40kHzの信号を作り出していました。 使用風景 画面には、JJYで使われている送信データの内容が表示されます。1
※2015/3/15追記 2015/2月ごろから本記事の方法はTwitterでの実利用は困難になりました。レスポンスヘッダに"content-disposition: attachment; filename=json.json"が追加されるようになったため、json.jsonというファイルとしてダウンロードが行われてしまいます。現状でこれを回避する方法はないと思われ、POSTはサーバ経由で行うしかなさそうです。(JSONPを利用したGETはこのヘッダがあっても可能です。) =====追記以上==== twicli開発メモ - Okiraku Programming で、iframeをtargetに指定してformを送信することで、外部ドメインに対してPOSTメソッドを発行する方法を書きました。が、iframeをあらかじめ準備する必要があったため、複数のクエリを同時発行できないといった欠点
Google+ APIが公開されたというので、JavaScriptから呼び出してみました。 OAuth 2.0なので、比較的簡単。 ただ、今のところできるのは、指定したユーザの一般公開activityを取得するとか、ユーザの情報を取得するといった程度で、サークルの情報取得や特定公開情報の取得、ポスト系はまだのようです。 使い方 Google API Keyを取得する Google API Consoleで、Google+のAPI Keyを有効にする API Accessのところから、Clientを登録する。 URLは後で適当なサーバにアップロードするファイルのURLにしておく必要がある。 localhostとかでも可。 https://〜ではなくhttp://〜でOK。 取得したAPI Keyを下記ソースに埋め込み、適当なサーバにアップロードする。 Loginボタンを押してログインした後、
twicli用サムネール表示プラグイン「thumbnail.js」を作った時の備忘録として。 だいたいの流れは FlickrのURLから写真のIDを抽出する Flickr APIの「flickr.photos.getInfo」を使ってJSONPで写真の情報を得る 得た情報からサムネールのURLを構築 という感じです。 詳しくは以下。 0. Flickr API keyを取得する http://www.flickr.com/services/apps/create/apply/ から、用途に応じたKEYを取得しておきます。 1. FlickrのURLから写真のIDを抽出する FlickrのURLについてはFlickr API Documentation | URLsを参照。 例えば、 http://www.flickr.com/photos/neocat/3488883246/ だったら、「
最近、クロスドメインなJavaScriptを使ってWebブラウザだけで動くTwitterクライアント「twicli」というものを開発中です。 http://www.geocities.jp/twicli/ で公開しています。 動作はFirefox, Safari(iPhoneのMobileSafariでもOK), Operaで確認しています。IE7/8ではCookieのブロックの設定でtwitter.comのCookieをブロックしないよう変更が必要です。(Firefoxでも「サードパーティのCookieも保存する」が有効になっている必要があります(デフォルトは有効)。) twicliは専用サーバなしでWebベースのTwitterクライアントを実装できるか?というProof of Conceptとして開発しています。そのためHTMLファイル1つと画像数個あれば動くというシンプルな構成となっ
ESP8266(ESP-WROOM-02)を最近よく使っています。 ESP8266を使ったセンサを、Wi-Fiアクセスポイントから遠い、直接電波の届きにくい場所に置きたかったため、ESP8266をもう一つ使ってWi-Fiの到達範囲を拡張する中継機にした(といってもブリッジではなくNAPTルータ)という話です。 とその前に軽くESP8266について紹介しておくと…(もう知ってる方は読み飛ばしてください) ESP8266の紹介 ESP8266は無線LANモジュールです。購入した状態では外部のマイコンからATコマンドで制御できます。が、LX106という32bit MCUを搭載しており、このモジュール単体でArduino IDEからプログラミングして動作させることが可能です。この方が圧倒的に便利なので、私自身はATコマンドで使ったことはありません。 しかも安価(単体なら400円台)ですし、ESP-
Twitterでフォローしている人同士を線で結んだグラフ(フォローグラフ)を、一部で流行り(?)のR言語で描いてみます。 手順。 1. Twitterのフォロー関係を取得する。 今回は自分がフォローしている230人ほどのTwitter-erについて、それぞれフォローしている人をTwitterのWebページをスクレイピングして取得しました。 curlを使ったシェルスクリプトとperlの1-linerで (for x in ha_ma sudori syou6162 ; do echo $x ; done) | perl -ne 'print "*$_\n"; chomp; $x = $_; $flag = 1; for($i = 1; $flag; $i++) { $get = `curl -s -u USER:PASSWORD http://twitter.com/$x/followers
JavaScriptから外部ドメインにあるAPIを呼び出すために使われるJSONPですが、scriptタグを動的に追加する方法(下記の記事など)JSONPの取得時にサーバ過負荷などでエラーが出た場合、エラー処理ができないという欠点がありました。 クロスドメインJavaScript呼び出しをクラス化, クロージャにも対応 - Okiraku Programming scriptタグに onerror= という属性を付加するとエラー発生時にスクリプトを実行させることができるブラウザもあります。しかし試してみると、 Firefox: サーバがステータス4xx, 5xxを返した際にonerrorが実行される。 Safari: サーバがステータス404を返した際にのみonerrorが実行される。 Opera: 実行されない IE: 実行されない といったように、ブラウザごとに挙動がまちまち。 またス
久しぶりにUSBホストシールドで遊んでみました。 USBで制御できるミサイルランチャー(カメラ付き)を手に入れたので、これをArduinoから動かしてみます。 必要なもの Arduino (Duemilanove / Uno。 Megaでも大丈夫かな?) USBホストシールド USBミサイルランチャー ACアダプタ 9V〜12Vくらい ライブラリのインストール IDEは、最新版のArduino 1.0を使います。 準備として、ホストシールドのライブラリをダウンロードしてインストールする必要があります。 下記GitHubではUSBホストシールドライブラリ2.0が公開されています。2.0では、Arduino IDE 1.0対応、USBハブ対応などが行われています。 GitHub - felis/USB_Host_Shield_2.0: Revision 2.0 of USB Host Libr
以前、 ArduinoからTwitterにPOSTするライブラリを作って公開しましたが、その時はTwitter APIのユーザ認証にBASIC認証を使っていました。 しかし、2010年6月からBASIC認証は廃止される予定となっており、新しい認証方式であるOAuthに移行することになっています。 そこで、Arduinoライブラリも、OAuth認証のものを作りました。といっても、Arduinoの限られた資源で複雑なOAuth認証を実装するのはかなり困難なため、難しい部分はGoogle App Engineに任せています。 使い方やライブラリのダウンロードは、http://arduino-tweet.appspot.com/ を見て下さい。 ※ ↑ 2021/7 以降、多数のアクセスを受けるなどしたためサイトを https://arduino-tweet-318222.uc.r.appspot
最近WebKitがいろいろなWebブラウザで使われるようになってきています。Safariはもちろん、GoogleのChromeやAndroid、Adobe AIRなどなど。 MacのCocoaアプリケーションでは、簡単にWebKitをHTMLレンダラ(JavaScriptも対応)にとして組み込めるようになっています。そこで簡単なシングルウィンドウ(タブもなし)のWebブラウザを作ってみます。 このブラウザの用途としては、Webアプリを普通のアプリのように利用できるようにすることが挙げげられます。例えば、twicliを動かせばTwitterクライアント・アプリの出来上がり、Gmailならメーラー…などなど。 というわけで、絵で見て分かる(?)Cocoa版シングルウィンドウWebブラウザの作り方をどうぞ。なお、事前にXcodeインストールが必要です。 1. Cocoaアプリのプロジェクトを作る
ちょっと前になるが、PlayStation3がDLNAクライアント機能に対応した。これを使えば、市販のDLNA対応メディアサーバから映像/音楽をストリーミングしてPS3で再生できる。 ただし、我が家では大半のコンテンツはMacに繋がったHDDに入っているし、DLNA対応サーバ等持っていない(^^;)。Macに入ったコンテンツをPS3に繋がった大画面TVで再生できると嬉しいので、Mac OS X上でDLNAサーバを立ててみた。 最初はlibupnpとuShareを改造して何とかコンパイルし、一応の成功を見ていたのだが、PS3対応になったMediaTomb 0.9.1を使うと早送りや巻き戻し等も出来ると聞き、挑戦してみた。 といっても、こちらは既にFinkにパッケージが上がっているので簡単だ。 まず、finkを入れ、/sw/etc/fink.confを書き換えてunstableパッケージが利用
新しいMacBook Proのtouch barで走るSLコマンドを作りました。 (touch barシュミレータでしか動作確認してませんが。) オリジナルのようにオプション(-a, -l, -F)には対応していません。 ソース(Swift)は以下。ビルド済みのバイナリも入ってます。 https://github.com/NeoCat/sl_on_touchbar 追記: 新しいmacOSでは、開発元が確認できないので開けない、というエラーが出ますが、一度 中にある「sl_on_touchbar」というappをctrlクリックして開くを選択すると、エラーダイアログに「開く」というボタンが現れますので、これをクリックすると以降は普通に開けるようになります。 なおビルドとシミュレータの動作にはmacOS Sierra 10.12.2 beta (16C41b)以降、XCode 8.2 beta
すぐ忘れるのでメモ。 例えば128MBのRAMディスクを作るなら、 % hdid -nomount ram://$((2048*128)) /dev/disk3 % newfs_hfs -v RAMDISK /dev/disk3 Initialized /dev/rdisk3 as a 128 MB HFS Plus volume % diskutil mount /dev/disk3 Volume RAMDISK on /dev/disk3 mounted 一時ファイルとかを置くのに便利です。 ダウンロードしたソフトをビルド&インストールする時とか。 使い終わったらFinderで「取り出し」を選ぶか、 % hdiutil eject disk3で消滅します。
ArduinoでFeliCaリーダーを作ってみました。 FeliCa PlugではなくPaSoRiを使っています。 SuicaとEdyを交互に検出して、残高を表示しています。 おサイフケータイのように両方に対応するものは両方とも表示。 「WebTo」機能(三者間通信)も試してみました。ケータイをかざすだけで、URLをプッシュしてブラウザを起動させることができます。 使ったもの PaSoRi (RC-S320:既に生産終了 → RC-S370) USBホストシールド I2Cキャラクタ液晶 PaSoRiライブラリとサンプルスケッチ 今回作ったスケッチをライブラリとして置いておきます。 旧バージョン: http://neocat.jp/arduino/Library-PaSoRi.zip (RC-S320専用) 現バージョン: http://neocat.jp/arduino/Library-P
何日か前に写真共有iPhoneアプリInstagramのAPIが公開されました。その中のURLからサムネールを得る方法も公式に提供されました。 他のAPIは認証(OAuthまたはクライアントID送信)が必要となりますが、サムネール画像(や通常サイズの画像)を得るだけなら認証は不要でとっても簡単。 方法は、投稿されたURL ( http://instagr.am/p/〜 )の後ろに /media/?size=t をつけるだけ。 これでサムネール画像にリダイレクトされる仕組みです。なおmediaの後に / を付けないとリダイレクトが1回余計に発生し、無駄な通信をすることになるので注意。 tの部分には t: サムネール、m: デフォルトサイズ、l: 大サイズ が指定可能。?size=の指定を省略するとmのサイズになります。 以上から、JavaScriptでinstagramのURLを検出してサム
少し前からスマートメーターの導入が始まっています。東電は2020年度末までに一般家庭などへの導入を完了させるそう。 http://www.tepco.co.jp/smartmeter/index-j.html 東電の場合、電力メーター情報発信サービス(Bルートサービス)を申し込むと、優先的にスマートメーターに交換してくれます。特に費用はかかりません。スマートメーターが設置されるとでんき家計簿から30分毎の電力使用状況グラフ(0.1kWh単位)を見ることができるようになりますが、加えて上記サービスに申し込むと、スマートメーターと家庭内のHEMS機器との間(これをBルートと言います)で通信を行うことが可能になり、リアルタイムで詳細な電力使用状況(瞬時電力値(W)、瞬時電流値(A)など)が取得できるようになります。 利用にあたってHEMS機器やサービスの導入に費用がかかるのがネックですが、HEM
Raspberry Piは、GPIOピンの一部をSPIやI2Cインターフェースとして使用できます。 これを利用して、Strawberry Linuxで販売されているI2Cキャラクタ液晶をRaspberry Piに取り付けてみました。 配線 Raspberry PiのGPIOのピン配置は下記で分かります。 RPi Low-level peripherals - eLinux.org これを見ながら、下記のように接続します。I2C用のプルアップ抵抗も不要です*1。液晶のRST端子は開放でOKです Vddに直結しておかないと動作が不安定になることがあります。 RaspberryPi I2C液晶 01 3.3V → 5 VDD 03 SDA ⇔ 3 SDA 05 SCL → 2 SCL 06 GND → 4 GND こんな感じのアダプタのようなものを作ってみました。ピンヘッダにそのまま刺せます。
VMWare Fusion上でFedora 11をインストールしてみたところ、sudoコマンドが異様に遅い。 tcpdumpしてみたところ、自ホスト名をDNSルックアップに行ってしまい、そのままタイムアウト待ちになるのが原因の模様。 /etc/hosts に 127.0.0.1 localhost.localdomain localhost 自ホスト名 自ホスト名.localdomainと自ホスト名を書き加えておいたところ、DNSを見に行くことは無くなり、sudoも高速になりました。
Leopardでは、ls -lで表示されるアクセス権の表示の後に、拡張属性があるファイル/ディレクトリに「@」が表示されるようになっています。 リソースフォークやファイルタイプ/クリエータ情報がある項目の他、Time Machineのバックアップ先のファイルにも拡張属性が付けられているようです。ちなみに、ls -l に加えて -@オプションをつけると、拡張属性の種類が表示されます。拡張属性の中身を見るには、xattr -l コマンド。 また、ACL(アクセス制御リスト)情報のあるフォルダには「+」がつきます。こちらはls -le で内容を表示できます。 以下、具体例。 % ls -l@ ... -rw-r--r-- @ 1 NeoCat NeoCat 4385 6 25 00:50 .zshrc drwx------@ 13 NeoCat NeoCat 442 5 1 2007 Apple
Arduino Leonardo等は、USBキーボードやマウスとして振舞わせ、PC等を操作するのに使うことができます。 同じくArduino IDEをプログラミング環境として使えるESP32ではUSBキーボード機能は付いていません。しかし、代わりにBluetooth LEを利用してキーボードとして振舞わせることができるはず。ということで、やってみました。 セットアップ 今回はM5StickCを使いましたが、ESP32ならどのボードでも同様です。 M5StickC ESP32 PICOミニIoT開発ボードフィンガーコンピューターカラーLCD付き Arduino IDEでESP32を使用するためのセットアップ手順は、下記サイトなどを参考にしてください。 esp32_setup – スイッチサイエンス BLE HID (Human Interface Device)のためのクラスはESP32のツ
最近大ヒットしたゲームと言えば2048。上下左右にタイルを動かして数字をくっつけ、2048を作るだけのシンプルなゲームですが、それだけにハマりやすい。 [参考記事: 「2048」:19歳のイタリア人が、ミニゲームでインターネットを征服!|WIRED.jp] 2の累乗が大好きなエンジニアの間でももちろん大人気なようです。 そんなわけで、2048をLinuxカーネルの中で動作させてみたいと思います。 といってもそのためにカーネルビルドしたりは面倒なので、SystemTapでランタイムにカーネルにロードすることにしましょう。 動かし方 以下、Fedoraの場合です。他のディストリビューションでの動かしたい方はマニュアル等でSystemTapの動かし方を調べてください。 1. 下記のソースを2048.stpという名前で保存します。 https://gist.github.com/NeoCat/99
常温で液体のガリウム合金「ガリンスタン」 今年は暑い…冷房をかけていないとガリウムもすっかり液体になってしまいます。 というか普通のガリウムも冷房がかかってない部屋に置いとくと液体になってる pic.twitter.com/EoHgPyLcLn— NeoCat (@NeoCat) July 27, 2024 ガリウムの融点は29.8℃ですが、合金にするとさらに融点が下がるものがあります。 例えばガリウムとインジウムを重量比3:1くらいで混ぜると融点は15℃前後に下がります。 さらに、ガリウム - インジウム - 錫 を 68.5% - 21.5% - 10% で混ぜた合金は ガリンスタン *1 という名前が付けられており、融点は -19 ℃にまで下がるため、常温で液体となります。 PlayStation 5 のCPUに塗られているヒートシンクに熱を伝えやすくするための液体金属がこのガリンス
次のページ
このページを最初にブックマークしてみませんか?
『Okiraku Programming』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く