タグ

ブックマーク / blog.asial.co.jp (35)

  • ESP32でAirTagを自作してみた(OpenHayStack + HomeAssistant + ESPHome)

    こんにちは。エンジニアの八尾です。 今回ですが、自宅で余っているESP32をAppleAirTagのように動作させてみました。 ESP32をAirTagのようにBluetooth信号を発信し、その位置を追跡可能にするオープンソースプロジェクト OpenHayStack を紹介します。 OpenHayStackは、Appleの「Find My」ネットワークを利用して、自作のBluetooth端末を追跡できるオープンソースプロジェクトです。(Find My Networkに接続するため、MacOSのメールアプリにプラグインとしてインストールして動作させます。) プロジェクト内のPythonスクリプトでESP32などの端末にファームウェアを書き込むことで、端末に電力を供給した際に自動的にBluetooth信号を発信させて、端末の位置を追跡することができます。 https://github.co

  • Dockerだけではない: Podman、LXD、ZeroVMを含む主要なコンテナ技術を探る

    最近では開発環境をローカルに構築することなく、Dockerをはじめとするコンテナ技術を使用する場面が増えています。コンテナ技術の利用により、環境の構築手間が大幅に軽減でき、さらにプログラミング言語やデータベースのバージョン管理も柔軟に行えるのが主な利点として挙げられます。 そんなコンテナ技術で有名なものとしてはDockerが存在しますが、最近では他にもさまざまなコンテナ技術や仮想化技術が登場しています。記事では、これらの技術の相違点や特徴について紹介します。 コンテナはホストOSから独立した環境でアプリケーションを実行する技術です。 Dockerの場合を見てみると、下の図のようにホストOSの上にDockerが存在し、このDockerが様々なアプリケーションを「コンテナ」として管理しているとイメージできます。 具体的には、コンテナ内には必要なライブラリや依存関係がパッケージ化されており、こ

  • Visual Studio Code ではじめるシーケンス図

    こんにちは、渡辺です。 シーケンス図を書くときにお世話になっているPlantUMLが、 Visual Studio Codeで簡単に利用できるようになったので、紹介したいと思います。 テキストでUMLやシーケンス図、クラス図などを作成できる言語です。 ダイアグラムをテキストで記述できるため、Gitで管理することもできます。 Visual Studio Codeでは、次のようにPlantUMLプレビューでダイアグラムを確認しながら作成できます。 まず、Visual Studio Codeが端末にない人はインストールをしてください。 Visual Studio Code - Code Editing. Redefined また、Javaもインストールが必要となります。 無料Javaソフトウェアをダウンロード インストールが完了したら、Visual Studio Codeで拡張機能としてPlan

    Visual Studio Code ではじめるシーケンス図
  • 【iOS】MemoryWarningSenderでメモリ警告バグを効率的に見つける

    こんにちは。松田です。 iOS用アプリを作成していると、予期しないバグが発生することが多々ありますが、その原因として多いのが「メモリ警告」です。メモリ警告が発生すると、非表示状態のviewが破壊されるため、開発者の意図しない動作を引き起こす事があります。 この状態をテストするには、iOSシミュレータの「メモリ警告をシミュレート」機能を使うことができますが、発生させるタイミングは開発者次第で尚且つショートカットキーも無い(たぶん)ため、なかなか効率的に活用することができません。 これを解決するためのツールがMemoryWarningSenderです。 これを利用すれば、iOSシミュレータの実行中に定期的にメモリ警告を発生させることができるため、想定外のバグの発見につなげることができます。 MemoryWarningSenderは、ブログ「ゆめ技」で、ちきん(@mokemokechicken)

    【iOS】MemoryWarningSenderでメモリ警告バグを効率的に見つける
  • スマホアプリ開発の見積もりで気をつけたいいくつかのこと

    こんにちは、鴨田です。 普段はプロジェクトマネージャーやデザインディレクション、デザイナーとして、 働いている時間が長いのですが、営業として他社様に出向き、 案件ヒアリングや見積もりをすることがあります。 スマホ案件に携わることが多いため、大体の場合はスマホアプリ案件なのですが、 見積もり時に注意すべき事が多々あります。 今日は、スマホアプリ開発の見積もりで注意すべき点について、 いくつかご紹介できればと思います。 1.対応OSのバージョン 対応OSに関しては、おそらくiOS、Android両対応であったり、 どちらかをリリースしてから、もう一方を作るというケースが多いと思います。 重要なのは、どのバージョンを対象としてる作るのか、です。 iOS6.0以上、Android4.0以上、ということであれば、 ほとんど問題なく、開発を進めることが出来ます。 これが、iOS5.0以上とかAndro

    スマホアプリ開発の見積もりで気をつけたいいくつかのこと
  • 最近のJavaScript開発まとめ

    こんにちは、中川です。 ここ1・2年ですが、私の担当するプロジェクトでは、 PHPよりもJavaScriptの開発が多い状態が続いております。 JSのプロジェクトを重ねるにつれ、開発環境も段々と整理されてきましたので、 一旦、最近のJS開発で利用しているライブラリやツールなどをまとめてみました。 フレームワーク ●Backbone.js http://backbonejs.org/ JavaScriptのMVCフレームワーク。 何も使わない(もしくは我流)よりは、これを使って欲しいと思えるフレームワークです。 利用者が多く日語情報も豊富にあるのと、フレームワーク自体が1500行程度と軽量なため、学習コストを低く抑えることができます。 ●AngularJS http://angularjs.org/ データバインディングを備えたフレームワーク。 高機能なテンプレートや、DIの仕組み、ルーテ

    最近のJavaScript開発まとめ
  • CSSだけで簡単に吹き出しを作成する方法4つ!

    こんにちは、橋です。 今日はCSSだけでお手軽に吹き出しを作る方法をご紹介したいと思います。 今回ご紹介するサンプルは4つ 一般的な三角の吹き出し 一般的な三角の吹き出し(ボーダー付き) ぽわわーんとした吹き出し 丸い(曲線の)吹き出し 4つのサンプルの実行結果は、ここで確認できます。 IE9以上とIE以外のブラウザであればちゃんと表示されるかと思います。 IE8以下はborder-radiusが使用出来ないため、サンプル3とサンプル4がちゃんと表示されません。 それでは1つ1つ見て行きましょう。 1.一般的な三角の吹き出し まずはソースから。 <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <style type="text/css"> * { box-sizing: border-box; } .wrapp

    CSSだけで簡単に吹き出しを作成する方法4つ!
    s_ryuuki
    s_ryuuki 2013/03/06
  • JavaScriptでうっかりやってしまいそうなこと色々

    こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。

  • WebView 中の HTML のデバッグ方法まとめ

    iPhone, Android で WebView を用い、HTML5 + CSS3 + Javascript でアプリを開発するケースは、PhoneGap (Cordova) が登場して以来増えつつあるのではないでしょうか。 HTML 開発には Firebug や Web Inspector といったデバッグツールはもはや必須ですよね。 そこで今回は WebView 中の HTML のデバッグ方法をまとめてみました。 1. Android 全般・iOS4 (実機・シミュレータ)・iOS5 (実機) weinre (ワイナリー)というツールが利用できます。 weinre はウェブサーバとして動作し、そのサーバが提供するスクリプト・ページにアクセスすることで、ブラウザ上でデバッグが行えます。 (なお、この方法は後述する iOS5, 6 においても利用可能です) ・インストール・サーバの起動

  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)

    こんにちは、橋です。 今回と次回の2回にわたり、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 Javascriptのコードをデバッグする際に、console.logを使ってメッセージやオブジェクトの内容をログに表示することがあるかと思いますが、 この「console」オブジェクト、実はlogメソッド以外にも複数のメソッドがあります。 まずは、consoleオブジェクトにどのようなメソッドがあるか、console.logを使って表示してみたいと思います。 consoleオブジェクトの中身を見てみると、__proto__オブジェクトに以下のメソッドが定義されています。 assert count debug dir dirxml error group groupCollapsed g

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(前編)
  • 続・イラストでわかるgit入門の入門:ブランチを切る

    こんにちは!志田です。 最近ドラクエモンスターズを購入しました。 だいあくまの書・シュプリンガー・メッサーラのパーティでがんがんいってます。 配合を繰り返していると、「この組み合わせ、AにもBにもなるのに!どっちが強くなるんだろう?」ということがたびたび起こります。 そんなときに使えたらいいのが、今回ご説明するブランチです。 前回のあらすじ 前回の記事では、バージョン管理と基的な動作について、ご説明しました。 ・バージョン管理にgitを使おう! ・コミットを繰り返し、キリのいいところでプッシュする ・コミットを重ねることでバージョン管理ができる こんな経験ありませんか みなさん、これまでの経験で、こんな経験ってありませんか? ・直すことによる影響範囲が広いため、もしきちんと改修できて、テストもできたら安定バージョンに含めたい 今まで何度もコミット・プッシュを重ねてきたプロジェクト。現在は

    続・イラストでわかるgit入門の入門:ブランチを切る
    s_ryuuki
    s_ryuuki 2012/06/27
  • 使えるとちょっと便利なSSHのTIPS

    こんにちは、牧野です。久々の、9か月以上ぶりのブログです。。 仕事では、ここ1年近くずっっとインフラ関係のことをやっていました。 今日は、SSHに関するTIPSを紹介します。 1. 特定のサーバーにSSHログインする時に、特定の設定を使用する ホームディレクトリ/.ssh/configファイルに設定を書いておくと、特定のサーバーにログインする時に、自動的に特定の設定を使うようにできます。 SSHのオプションをサーバーによって分けたい時に入力が楽になります。 以下は、xxx.yyy.zzz.aaaでアクセスする時に使う秘密鍵をid_rsa_testに設定しています。 .ssh/config Host xxx.yyy.zzz.aaa IdentityFile /home/asial/.ssh/id_rsa_test 2. ホストキーをチェックしないようにする LinuxからサーバーにSSH接続

    使えるとちょっと便利なSSHのTIPS
    s_ryuuki
    s_ryuuki 2012/04/05
  • PhoneGapアプリ開発のちょっとしたコツ

    PhoneGapはスマートフォンにてハイブリッドアプリケーションを作成するためのフレームワークです。この記事では、PhoneGapによりワンソース・マルチユース(クロスプラットフォーム)なアプリを開発するためのコツをご紹介します。 従来まで、スマートフォンアプリの開発形態は、 ・ネイティブアプリ ・Webアプリ に大別されていました。ネイティブアプリでは端末の機能を全て活用できる一方で、クロスプラットフォーム性がありません(iOSとAndroidで別々に実装)。他方、WebアプリではWebViewを使ったり、ブラウザを使用することで、HTML5などの機能を使用します。これにより、クロスプラットフォーム性が担保されています。一方で、ネイティブ機能を利用できない、などの制約も発生していました。 PhoneGapを使用したハイブリッドアプリは、上記の2つの手法の間に存在し、次の特徴を持っています

    PhoneGapアプリ開発のちょっとしたコツ
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    でサクっとインストールできます。tmuxコマンドをタイプすると、コンソールが表示されると思います。 ○ よく使うtmuxコマンド 私は下記のコマンドをよく使います: tmux attach - すでに開いたセッションにアタッチする tmux list-windows (C-b w) - ウィンドウの一覧を取得する tmux new-window (C-b n) - 新しいウィンドウを作る tmux detach-client (C-b d) - クライアントをデタッチする tmux list-keys (C-b ?) - キーバインドの一覧を表示する tmux next-window (C-b n) - 次のウィンドウを表示する tmux previous-window (C-b p) - 前のウィンドウを表示する tmux kill-window (C-b k) - ウィンドウを強制的に

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
  • 【iOS】Viewの開発・デバッグに役立つ色々

    こんにちは、中川です。 最近はちょっとPHPから離れてMonacaを使ったiOSアプリの開発を行なっています。 Monacaでは基的にHTML+CSS+JSでの開発となりますが、 今回開発中のものはObjective-Cを使ったネイティブの画面をカスタムで組み込んで利用したりしています。 HTML+CSSであれば画面を作るのは慣れていることもあり比較的簡単なのですが、 UIKitでのネイティブ画面となると微妙なズレの調整などで苦労する場面が多々ありました。 そんな時に役立ったTIPSなどをご紹介したいと思います。 ■位置やサイズのログ出力 CGRect, CGSize, CGPoint など、NSStringFromXXXXXで簡単にログ出力することができます。 NSLog(@"frame: %@", NSStringFromCGRect(self.view.frame)); NSLog

    【iOS】Viewの開発・デバッグに役立つ色々
  • Monaca + enchant.js でお手軽スマフォゲームアプリ開発

    2012/12/25 Monacaのアップデートに対応するためにソースコードを一部編集しました。 ------------------------------------------------------------------------------ こんにちは。松田です。 今日は弊社で開発しているスマートフォン用アプリ開発環境のMonacaと、JavaScriptベースのゲームエンジンenchant.jsを組み合わせて、スマートフォン用ゲームアプリの開発をしてみたいと思います。 Monacaの公式サイトはここ。 http://monaca.mobi/ enchant.jsの公式サイトはこちらです。 http://enchantjs.com/ja/ MonacaはHTML5ベースのコードからAndroidアプリとiOSアプリを同時に生成できるツールです。 HTML5ベースで実装されてい

    Monaca + enchant.js でお手軽スマフォゲームアプリ開発
  • 【ぐぬぬ】iPhoneアプリのこんなとき、どうするの??

    こんにちは、iPhone大好き橋です。 今日はiPhoneアプリの作成に関する「こんなときどうするの??」という疑問にお答えするべく、小技をいくつか紹介したいと思います。 1. 文字サイズに合わせてUILabelのサイズを変えたい。 UILabelを作成するときに、Labelに表示する文字によってUILabelのサイズを変えたいということ無いですか??ただ、UILabelを作成するときはframeのサイズを指定しなきゃいけませんよね。 こんなとき、どうするの?? そんなときには、UILabelにこんなカテゴリを書いちゃいましょ。 @interface UILabel (resize) - (void) resizeWithPoint: (CGPoint)point; - (id) initWithText:(NSString *)text andFont:(UIFont *)font;

    【ぐぬぬ】iPhoneアプリのこんなとき、どうするの??
  • Gitを使い始めたらやっておきたい便利な設定いろいろ

    こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"

    Gitを使い始めたらやっておきたい便利な設定いろいろ
    s_ryuuki
    s_ryuuki 2011/09/02
  • Android開発 簡単なWEBブラウザを作ってみる その2

    こんにちは熊谷です。 前回は簡単なWEBブラウザを作ってみようということで、URLを入力してそのページを表示するだけのものを作成しました。今回はそれをベースにしてページのリロード機能とプログレスバーの表示、ファイルのダウンロード機能を付け加えたいと思います。 まずはページのリロード機能です。これはとっても簡単でreload()を使うだけです。 MyApp.javaにリロードボタンを押したときのメソッドを追加して public void onClickReloadBtn(View v) { mWebView.reload(); }

    Android開発 簡単なWEBブラウザを作ってみる その2
  • Android開発 C2DMを触ってみよう

    こんにちは熊谷です。 前回は簡単なWEBブラウザを作成しましたが、今回はそこからちょっと離れて、Android 2.2以降から使えるC2DM(Cloud to Device Messaging)でメッセージの受信を試してみたいと思います。 今現在、C2DMを使うには http://code.google.com/intl/ja/android/c2dm/signup.html ここで登録を行う必要があります。登録フォームで必要な情報を入力し送信して、しばらく待っていると登録完了したよ的なメールが送られてきます。 そのメールが来たら早速使ってみましょう。 まずはC2DMを使って端末にメッセージを送信するため、認証Tokenを取得します。 <?php $url = 'https://www.google.com/accounts/ClientLogin'; // signupページで入力したg

    Android開発 C2DMを触ってみよう
    s_ryuuki
    s_ryuuki 2011/02/17
    PUSH通信