カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

サーバーをプライベートネットワークで運用する場合の注意点

ブロードバンドルーターで静的IPマスカレードを使用し、サーバーをプライベートネットワークで運用する場合の注意点をご紹介。

サーバーをプライベートIPで運用する場合、内部での名前解決をしてあげないといけません。

内部からのドメイン名前解決は/etc/hostsファイルに以下のように記述
※ドメインがexample.jp、ルーターが192.168.100.1、サーバーがホストwwwの192.168.100.2とします。

192.168.100.2   www.example.jp

これを書いておかないとサーバー自身でも自サイトを見ることができません。
更に自サイト内でフルパス参照ができません。
※リンクでページを移動するだけなら可能(クライアントの名前解決によるため)

特に複数のウェブサーバーがあり、別のウェブサーバーからデータを
PHP等のプログラムを使って読み出そうとすると、名前解決できずにエラーになります。

他の事例としては、メールサーバーとウェブサーバーが同ネットワーク内に
別に存在する場合で、ウェブサーバーからフォーム等でメールを同ネットワーク内の
メールサーバーで受けているアドレスに送る場合にも注意が必要です。
続きを読む…»

4,689 views

カメラを扱うまとめ – Android

Androidでカメラを扱うまとめです。
単純に撮った写真を保存するパターンと、パラメーターを指定して保存するパターン、
撮影した画像を圧縮して保存するパターンの3パターンを紹介します。

まずは、カメラを使用するために必要なパーミッションをAndroidManifest.xmlに記述します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />

撮影処理をするSurfaceViewを継承したクラスを作成します。

まず、簡単に保存するパターン 続きを読む…»

4,832 views

端末の起動時に処理を実行する [Android]

Androidでは、端末の起動時に発行されるandroid.intent.action.BOOT_COMPLETEDというブロードキャストインテントを受け取り、処理を実行させることができます。

これを利用し、バックグラウンドで常駐するアプリを作成することが可能です。
ここでは例として位置情報を取得し、位置情報が更新されたらトーストでメッセージを表示するサービスをバックグラウンドで常駐させるように作成しています。

AndroidManifest.xmlapplicationタグ内に以下を記述

<service android:name="ExampleService"></service>
<receiver
    android:name=".BootReceiver"
    android:enabled="true">

    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</receiver>

起動時にブロードキャストインテントを受け取れるようにパーミッションの設定を記述します。

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

ブロードキャストインテントを受け取るブロードキャストレシーバーを 続きを読む…»

10,054 views

逆ジオコーディングで住所の取得

GoogleのAPIを利用して、座標から住所を取得します。
GoogleのWebサービスに依存しているので、使えない場合があるので注意しましょう。
Android 2.3(API level 9)からisPresent()で、サービスが生きてるかどうかをチェックできるようです。

import java.io.IOException;
import java.util.List;
import java.util.Locale;

import android.content.Context;
import android.location.Address;
import android.location.Geocoder;

public class ReverseGeocode {

    public String point2address(Context context, double latitude, double longitude) throws IOException {

        String string = new String();

        Geocoder geocoder = new Geocoder(context, Locale.JAPAN);

        List<address> list_address = geocoder.getFromLocation(latitude, longitude, 2);

        if(!list_address.isEmpty()) {
            string = list_address.get(1).getAddressLine(1);
        } else {
            string = "現在地が特定できませんでした。";
        }

        return string;
    }

}

続きを読む…»

9,755 views

Android開発用IDE「Android Studio」

Googleから「Android Studio」というAndroid開発用のIDEが発表されたので早速インストールを試してみました。

Android Studioは2013年5月15日にGoogleのイベントで発表されたAndroid用のIDEです。
Eclipseの場合はADT(Android Developer Tools)プラグイン、Android SDKなどを別々にインストールしなければいけなかったのが、Android Studioの場合はAndroid SDKをインストールする必要がない。
ただし、JDKだけは必要となるのでインストールが必要です。

Android Studio 0.1.1 Build 130.687321をダウンロードしてインストール
http://developer.android.com/sdk/installing/studio.html
※現時点ではまだ早期アクセス版で、正式リリースではないようです。
setup1

setup2
続きを読む…»

4,105 views