<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>tande lab.</title>
	<atom:link href="http://tande.jp/lab/feed" rel="self" type="application/rss+xml" />
	<link>http://tande.jp/lab</link>
	<description>Life is messy.</description>
	<lastBuildDate>Tue, 21 Feb 2012 14:35:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/feed" />
		<item>
		<title>[Android] adb_usb.ini の正しい書き方</title>
		<link>http://tande.jp/lab/2012/02/1649</link>
		<comments>http://tande.jp/lab/2012/02/1649#comments</comments>
		<pubDate>Wed, 15 Feb 2012 17:00:29 +0000</pubDate>
		<dc:creator>soranchu</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[Andorid]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1649</guid>
		<description><![CDATA[突然ですが、Android実機で開発してる人はだいたい端末毎のUSB Vendor idを書くのにadb_usb.iniいじってますよね。ただこのファイル、一行目にDO NOT EDITで書いてある。 一通りググってみて [...]]]></description>
			<content:encoded><![CDATA[<div id="pukiwiki_content27" class="pukiwiki_content">
<p>突然ですが、Android実機で開発してる人はだいたい端末毎のUSB Vendor idを書くのにadb_usb.iniいじってますよね。ただこのファイル、一行目にDO NOT EDITで書いてある。</p>
</div>
<pre class="brush: bash; title: $HOME/.android/adb_usb.ini; notranslate">
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
</pre>
<div id="pukiwiki_content28" class="pukiwiki_content">
<p>一通りググってみても、みんなここにVendor id書けと書いてあるんだが、このDO NOT EDITが気になって仕方が無い。</p>
<p><a href="http://developer.android.com/intl/ja/guide/developing/device.html#setting-up" rel="nofollow">http://developer.android.com/intl/ja/guide/developing/device.html#setting-up</a><br />
ここ見てもadb_usb.iniをいじれとは書いてない・・・</p>
<p>と言うことで調べてみた。</p>
</div>
<p><span id="more-1649"></span></p>
<div id="pukiwiki_content29" class="pukiwiki_content">
<h3 id="content_1_0">結論</h3>
<p>話が長くなるので先に結論を書いてしまうと、Android SDKのadd-onとして追加するのが正しいやり方っぽい。</p>
<div class="jumpmenu"><a href="#pukiwiki_content29">&uarr;</a></div>
<h4 id="content_1_1"><strong>SDK add-onに新規フォルダを作成</strong></h4>
<p>SDKのインストール先の直下にadd-onsというフォルダがあるので、その中に適当な名前のフォルダを作成する。</p>
<pre>例 $SDK/add-ons/my-add-on</pre>
<div class="jumpmenu"><a href="#pukiwiki_content29">&uarr;</a></div>
<h4 id="content_1_2">作成したフォルダの中にmanifest.iniを作成</h4>
<p>以下の様なテキストファイルを、manifest.iniというファイル名で上で作成したフォルダに作る。</p>
</div>
<pre class="brush: plain; title: manifest.ini; notranslate">
name=Sony Tablet unofficial usb-vendor addon
vendor=tande
description=Adds USB support for Tablet S &amp; P (Vendor id:0x054c)
api=11
revision=1
usb-vendor=0x054c
</pre>
<div id="pukiwiki_content30" class="pukiwiki_content">
<p>これはSony tabletの例。name、vendor、descriptionは適当に(ここに設定したものがSDK Managerのリストに表示される)。<br />
apiにはインストール済みのAPI Levelを適当に設定します。usb-vendorに16進4桁で<a href="http://developer.android.com/guide/developing/device.html#setting-up" rel="nofollow">ココ</a>にあるVendor idを記載する。</p>
<h4 id="content_1_0">android update adbを呼ぶ</h4>
<p>adb_usb.iniに書かれているように、<strong>android update adb</strong>を呼び出す。androidというコマンドはSDKのtools以下にあります。</p>
<p>たぶんこれは最初の一回だけでオーケー</p>
<p>以上。これでadb_usb.iniにvendor idが書き込まれます。SDKやGoogle USB Driverをアップデートしても自動的に書き込まれるのでをアップデートしたらデバイス繋がらなくなったーなんてことも無くなります。</p>
<div class="jumpmenu"><a href="#pukiwiki_content30">&uarr;</a></div>
<h3 id="content_1_1">android update adbは何をするのか</h3>
<p>ここからはこの結論に至った流れを説明しましょ。</p>
<p>まずは、adb_usb.iniに</p>
</div>
<pre class="brush: bash; title: $HOME/.android/adb_usb.ini; notranslate">
# USE 'android update adb' TO GENERATE.
</pre>
<div id="pukiwiki_content31" class="pukiwiki_content">
<p>と書いてあるので、素直に</p>
</div>
<pre class="brush: bash; title: ; notranslate">
$SDK/tools/android update adb
</pre>
<div id="pukiwiki_content32" class="pukiwiki_content">
<p>を実行してみると・・・</p>
<p>何も書き込まれずorz</p>
<p>android コマンドの実体は、windowsの場合android.batです。<br />
中を見てみると、最後に</p>
</div>
<pre class="brush: powershell; title: $SDK/tools/android.bat; notranslate">
call %java_exe% %REMOTE_DEBUG%
-Dcom.android.sdkmanager.toolsdir=&quot;%tools_dir%&quot;
-Dcom.android.sdkmanager.workdir=%work_dir% -classpath
&quot;%jar_path%;%swt_path%\swt.jar&quot; com.android.sdkmanager.Main %*
</pre>
<div id="pukiwiki_content33" class="pukiwiki_content">
<p>と書いてある。<br />
結局sdkmanagerを呼び出しているだけの模様</p>
<p>SDK ManagerはAndroid SDKのアップデート時に表示されるあのUIのこと。コマンドラインからも触れるようになってるんだな。<br />
さて、このソースはgitから取ってくる必要がありめんどくさいのでググってみると・・・</p>
<p>見つけた<br />
Eclairのさらにmodっぽいurlだけどこの辺はそんなに変わってないと勝手に予想。<br />
<a href="http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/app/src/com/android/sdkmanager/Main.java.html" rel="nofollow">http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/app/src/com/android/sdkmanager/Main.java.html</a></p>
<p>ここでandroid.batに渡される(実際にはSDKManager.Mainに渡される)引数のupdate adbが何をするか調べてみる。</p>
<p>エントリポイント</p>
</div>
<pre class="brush: java; highlight: [7]; title: com/android/sdkmanager/Main.java; notranslate">
   /**
    * Runs the sdk manager app
    */
   private void run(String[] args) {
       createLogger();
       init();
       mSdkCommandLine.parseArgs(args);
       parseSdk();
       doAction();
   }
</pre>
<div id="pukiwiki_content34" class="pukiwiki_content">
<p>引数をパースしているSDKCommandLineはこれっぽい。<br />
<a href="http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java.html" rel="nofollow">http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/app/src/com/android/sdkmanager/SdkCommandLine.java.html</a></p>
<p>この中の38行目からパラメータ名定義が並んでるので</p>
</div>
<pre class="brush: java; highlight: [5,14]; title: com/android/sdkmanager/SdkCommandLine.java; notranslate">
   public final static String VERB_LIST   = &quot;list&quot;;
   public final static String VERB_CREATE = &quot;create&quot;;
   public final static String VERB_MOVE   = &quot;move&quot;;
   public final static String VERB_DELETE = &quot;delete&quot;;
   public final static String VERB_UPDATE = &quot;update&quot;;

   public static final String OBJECT_SDK          = &quot;sdk&quot;;
   public static final String OBJECT_AVD          = &quot;avd&quot;;
   public static final String OBJECT_AVDS         = &quot;avds&quot;;
   public static final String OBJECT_TARGET       = &quot;target&quot;;
   public static final String OBJECT_TARGETS      = &quot;targets&quot;;
   public static final String OBJECT_PROJECT      = &quot;project&quot;;
   public static final String OBJECT_TEST_PROJECT = &quot;test-project&quot;;
   public static final String OBJECT_ADB          = &quot;adb&quot;;
</pre>
<div id="pukiwiki_content35" class="pukiwiki_content">
<p>update adbはそれぞれVERB_UPDATEとOBJECT_ADBとして定義されているのでSdkCommandLineの中を検索すると・・・ない</p>
<p>改めてsdkmanager/Main.java側で探してみると発見</p>
</div>
<pre class="brush: java; highlight: [10,11]; title: com/android/sdkmanager/Main.java; notranslate">
   /**
    * Actually do an action...
    */
   private void doAction() {
       String verb = mSdkCommandLine.getVerb();
       String directObject = mSdkCommandLine.getDirectObject();

       //...

       } else if (SdkCommandLine.VERB_UPDATE.equals(verb) &amp;&amp;
               SdkCommandLine.OBJECT_ADB.equals(directObject)) {
           updateAdb();

       } else {
</pre>
<div id="pukiwiki_content36" class="pukiwiki_content">
<p>updateAdb()の中身は</p>
</div>
<pre class="brush: java; highlight: [6]; title: com/android/sdkmanager/Main.java; notranslate">
   /**
    * Updates adb with the USB devices declared in the SDK add-ons.
    */
   private void updateAdb() {
       try {
           mSdkManager.updateAdb();

           mSdkLog.printf(
                   &quot;adb has been updated. You must restart adb with the following commands\n&quot; +
                   &quot;\tadb kill-server\n&quot; +
                   &quot;\tadb start-server\n&quot;);
       } catch (AndroidLocationException e) {
           errorAndExit(e.getMessage());
       } catch (IOException e) {
           errorAndExit(e.getMessage());
       }
   }
</pre>
<div id="pukiwiki_content37" class="pukiwiki_content">
<p>mSdkManager.updateAdb()が処理の実体の模様。このmSdkManagerは次のところで生成されてる。</p>
</div>
<pre class="brush: java; highlight: [5]; title: com/android/sdkmanager/Main.java; notranslate">
   /**
    * Does the basic SDK parsing required for all actions
    */
   private void parseSdk() {
       mSdkManager = SdkManager.createManager(mOsSdkFolder, mSdkLog);

       if (mSdkManager == null) {
           errorAndExit(&quot;Unable to parse SDK content.&quot;);
       }
   }
</pre>
<div id="pukiwiki_content38" class="pukiwiki_content">
<p>これはcom.android.sdklib.SdkManagerのインスタンスぽいので同じようにググってみる。<br />
<a href="http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java.html" rel="nofollow">http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkManager.java.html</a></p>
<p>updateAdb()は</p>
</div>
<pre class="brush: java; highlight: [2,10,18]; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Updates adb with the USB devices declared in the SDK add-ons.
    * @throws AndroidLocationException
    * @throws IOException
    */
   public void updateAdb() throws AndroidLocationException, IOException {
       FileWriter writer = null;
       try {
           // get the android prefs location to know where to write the file.
           File adbIni = new File(AndroidLocation.getFolder(), ADB_INI_FILE);
           writer = new FileWriter(adbIni);

           // first, put all the vendor id in an HashSet to remove duplicate.
           HashSet&lt;Integer&gt; set = new HashSet&lt;Integer&gt;();
           IAndroidTarget[] targets = getTargets();
           for (IAndroidTarget target : targets) {
               if (target.getUsbVendorId() != IAndroidTarget.NO_USB_ID) {
                   set.add(target.getUsbVendorId());
               }
           }

           // write file header.
           writer.write(ADB_INI_HEADER);

           // now write the Id in a text file, one per line.
           for (Integer i : set) {
               writer.write(String.format(&quot;0x%04x\n&quot;, i));
           }
       } finally {
           if (writer != null) {
               writer.close();
           }
       }
   }
</pre>
<div id="pukiwiki_content39" class="pukiwiki_content">
<p>SDK Addons の文字が出てきた。<br />
気になるADB_INI_FILEの定義を見ると、</p>
</div>
<pre class="brush: java; highlight: [2]; title: ; notranslate">
   /** Preference file containing the usb ids for adb */
   private final static String ADB_INI_FILE = &quot;adb_usb.ini&quot;;
      //0--------90--------90--------90--------90--------90--------90--------90--------9
   private final static String ADB_INI_HEADER =
       &quot;# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.\n&quot; +
       &quot;# USE 'android update adb' TO GENERATE.\n&quot; +
       &quot;# 1 USB VENDOR ID PER LINE.\n&quot;;
</pre>
<div id="pukiwiki_content40" class="pukiwiki_content">
<p>きました。ここで生成してるのは間違いない。</p>
<p>getTargets()でとってきたtargetなるものからgetUsbVendorId()を呼んで、IAndroidTarget.NO_USB_IDでなければHashSetに追加し、最後にsetの中身をwriter.write(String.format(&quot;0x%04x\n&quot;, i))している。つまり、何とかしてgetTargets()で列挙されるようにすれば、android update adbでadb_usb.iniに正しくVendor-idが書き込まれるはず。</p>
<p>getTargets()の定義は</p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Returns the targets that are available in the SDK.
    * &lt;p/&gt;
    * The array can be empty but not null.
    */
   public IAndroidTarget[] getTargets() {
       return mTargets;
   }
</pre>
<div id="pukiwiki_content41" class="pukiwiki_content">
<p>mTargetsへの書き込みは</p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Sets the targets that are available in the SDK.
    * &lt;p/&gt;
    * The array can be empty but not null.
    */
   private void setTargets(IAndroidTarget[] targets) {
       assert targets != null;
       mTargets = targets;
   }
</pre>
<div id="pukiwiki_content42" class="pukiwiki_content">
<p>setTargetsの呼び出しは、</p>
</div>
<pre class="brush: java; highlight: [17]; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Creates an {@link SdkManager} for a given sdk location.
    * @param sdkLocation the location of the SDK.
    * @param log the ISdkLog object receiving warning/error from the parsing.
    * @return the created {@link SdkManager} or null if the location is not valid.
    */
   public static SdkManager createManager(String sdkLocation, ISdkLog log)
       try {
           SdkManager manager = new SdkManager(sdkLocation);
           ArrayList&lt;IAndroidTarget&gt; list = new ArrayList&lt;IAndroidTarget&gt;();
           loadPlatforms(sdkLocation, list, log);
           loadAddOns(sdkLocation, list, log);

           // sort the targets/add-ons
           Collections.sort(list);

           manager.setTargets(list.toArray(new IAndroidTarget[list.size()]));

           // load the samples, after the targets have been set.
           manager.loadSamples(log);

           return manager;
       } catch (IllegalArgumentException e) {
           if (log != null) {
               log.error(e, &quot;Error parsing the sdk.&quot;);
           }
       }

       return null;
   }
</pre>
<div id="pukiwiki_content43" class="pukiwiki_content">
<p>あとreloadSdk()でも呼ばれてるけど、まぁcreateManagerかな。</p>
<p>setTargets()に渡されているIAndroidTargetのリストはloadPlatforms()とloadAddOns()で追加されているっぽい。見るべきはloadAddOns()と予想して先に進む。</p>
</div>
<pre class="brush: java; highlight: [15]; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Loads the Add-on from the SDK.
    * @param location Location of the SDK
    * @param list the list to fill with the add-ons.
    * @param log the ISdkLog object receiving warning/error from the parsing.
    */
   private static void loadAddOns(String location, ArrayList&lt;IAndroidTarget&gt; list, ISdkLog log) {
       File addonFolder = new File(location, SdkConstants.FD_ADDONS);
       if (addonFolder.isDirectory()) {
           File[] addons  = addonFolder.listFiles();

           for (File addon : addons) {
               // Add-ons have to be folders. Ignore files and no need to warn about them.
               if (addon.isDirectory()) {
                   AddOnTarget target = loadAddon(addon, list, log);
                   if (target != null) {
                       list.add(target);
                   }
               }
           }

           return;
       }

       String message = null;
       if (addonFolder.exists() == false) {
           message = &quot;%s is missing.&quot;;
       } else {
           message = &quot;%s is not a folder.&quot;;
       }

       throw new IllegalArgumentException(String.format(message,
               addonFolder.getAbsolutePath()));
   }
</pre>
<div id="pukiwiki_content44" class="pukiwiki_content">
<p>add-onsフォルダの中にあるフォルダを順次loadAddon()で呼び出してるので、さっさとloadAddon()の中へ。<br />
(このコードだとSDK Root直下をなめているような気がするけど、きっとEclairだから)</p>
<p>loadAddon()の中はちょっと長いので省略しながら</p>
</div>
<pre class="brush: java; highlight: [10]; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Loads a specific Add-on at a given location.
    * @param addon the location of the addon.
    * @param targetList The list of Android target that were already
loaded from the SDK.
    * @param log the ISdkLog object receiving warning/error from the parsing.
    */
   private static AddOnTarget loadAddon(File addon, ArrayList&lt;IAndroidTarget&gt; targetList,
           ISdkLog log) {
       File addOnManifest = new File(addon, SdkConstants.FN_MANIFEST_INI);

       if (addOnManifest.isFile()) {
           Map&lt;String, String&gt; propertyMap = parsePropertyFile(addOnManifest, log);
</pre>
<div id="pukiwiki_content45" class="pukiwiki_content">
<p>add-onsフォルダのSdkConstants.FN_MANIFEST_INIというファイルをopenして、parsePropertyFile()で<br />
ini形式のフォーマットをMapに詰める(中身見てないけど)。</p>
</div>
<pre class="brush: java; highlight: [4,10,16]; title: com/android/sdklib/SdkManager.java; notranslate">
           if (propertyMap != null) {
               // look for some specific values in the map.
               // we require name, vendor, and api
               String name = propertyMap.get(ADDON_NAME);
               if (name == null) {
                   displayAddonManifestError(log, addon.getName(), ADDON_NAME);
                   return null;
               }

               String vendor = propertyMap.get(ADDON_VENDOR);
               if (vendor == null) {
                   displayAddonManifestError(log, addon.getName(), ADDON_VENDOR);
                   return null;
               }

               String api = propertyMap.get(ADDON_API);
               PlatformTarget baseTarget = null;
               if (api == null) {
                   displayAddonManifestError(log, addon.getName(), ADDON_API);
                   return null;
               } else {
                   // Look for a platform that has a matching api level or codename.
                   for (IAndroidTarget target : targetList) {
                       if (target.isPlatform() &amp;&amp; target.getVersion().equals(api)) {
                           baseTarget = (PlatformTarget)target;
                           break;
                       }
                   }

                   if (baseTarget == null) {
                       // Ignore this add-on.
                       if (log != null) {
                           log.error(null,
                                   &quot;Ignoring add-on '%1$s': Unable to find base platform with API level '%2$s'&quot;,
                                   addon.getName(), api);
                       }
                       return null;
                   }
               }
</pre>
<div id="pukiwiki_content46" class="pukiwiki_content">
<p>ini中のプロパティ名ADDON_NAME、ADDON_VENDOR、ADDON_APIがそれぞれ記載されてないとエラーになりますと書いてます。ADDON_NAMEとADDON_VENDORは文字列、ADDON_APIはSDKに含まれるAPIレベルである必要がありそう。</p>
<p>その後しばらくOptionalなプロパティ(javaの変数名でdescription、revisionValue、libMap)の読み込みが続きますが、興味ないのでTargetの生成へ。</p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkManager.java; notranslate">
               AddOnTarget target = new AddOnTarget(addon.getAbsolutePath(), name, vendor,
                       revisionValue, description, libMap, baseTarget);
</pre>
<div id="pukiwiki_content47" class="pukiwiki_content">
<p>Vendor-idの読み込みを発見</p>
</div>
<pre class="brush: java; highlight: [2]; title: com/android/sdklib/SdkManager.java; notranslate">
               // get the USB ID (if available)
               int usbVendorId = convertId(propertyMap.get(ADDON_USB_VENDOR));
               if (usbVendorId != IAndroidTarget.NO_USB_ID) {
                   target.setUsbVendorId(usbVendorId);
               }
</pre>
<div id="pukiwiki_content48" class="pukiwiki_content">
<p>ADDON_USB_VENDORというプロパティ名で、値はconvertId()で正しく変換できる形式、と。</p>
</div>
<pre class="brush: java; highlight: [8]; title: com/android/sdklib/SdkManager.java; notranslate">
   /**
    * Converts a string representation of an hexadecimal ID into an int.
    * @param value the string to convert.
    * @return the int value, or {@link IAndroidTarget#NO_USB_ID} if the convertion failed.
    */
   private static int convertId(String value) {
       if (value != null &amp;&amp; value.length() &gt; 0) {
           if (PATTERN_USB_IDS.matcher(value).matches()) {
               String v = value.substring(2);
               try {
                   return Integer.parseInt(v, 16);
               } catch (NumberFormatException e) {
                   // this shouldn't happen since we check the pattern above, but this is safer.
                   // the method will return 0 below.
               }
           }
       }

       return IAndroidTarget.NO_USB_ID;
   }
</pre>
<div id="pukiwiki_content49" class="pukiwiki_content">
<p>convertId()では正規表現PATTERN_USB_IDSにマッチするものを取りますよと書いてます。<br />
パターンはこちら。</p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkManager.java; notranslate">
    // usb ids are 16-bit hexadecimal values.
   private final static Pattern PATTERN_USB_IDS = Pattern.compile(
           &quot;^0x[a-f0-9]{4}$&quot;, Pattern.CASE_INSENSITIVE);
</pre>
<div id="pukiwiki_content50" class="pukiwiki_content">
<p>&quot;^0x[a-f0-9]{4}$&quot;なので、&quot;0x&quot;で始まり、16進の4桁の数字が続けば良いと。</p>
<p>今まで出てきたiniのプロパティ名の定数をまとめて引いてみると、</p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkManager.java; notranslate">
   private final static String ADDON_NAME = &quot;name&quot;;
   private final static String ADDON_VENDOR = &quot;vendor&quot;;
   private final static String ADDON_API = &quot;api&quot;;
   private final static String ADDON_DESCRIPTION = &quot;description&quot;;
   private final static String ADDON_LIBRARIES = &quot;libraries&quot;;
   private final static String ADDON_DEFAULT_SKIN = &quot;skin&quot;;
   private final static String ADDON_USB_VENDOR = &quot;usb-vendor&quot;;
   private final static String ADDON_REVISION = &quot;revision&quot;;
   private final static String ADDON_REVISION_OLD = &quot;version&quot;;
</pre>
<div id="pukiwiki_content51" class="pukiwiki_content">
<p>忘れていたけど、SdkConstants.FN_MANIFEST_INIは、</p>
<p><a href="http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkConstants.java.html" rel="nofollow">http://www.androidadb.com/source/pdn-slatedroid-read-only/eclair/sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/SdkConstants.java.html</a></p>
</div>
<pre class="brush: java; title: com/android/sdklib/SdkConstants.java; notranslate">
   /** add-on manifest file */
   public final static String FN_MANIFEST_INI = &quot;manifest.ini&quot;;
</pre>
<div id="pukiwiki_content52" class="pukiwiki_content">
<p>ということで、SDK/add-ons/の下に適当な名前でフォルダを作り、&quot;manifest.ini&quot;というテキストファイルを用意して、最初の結論に書いたように以下の形式で書き込んでみると・・・</p>
</div>
<pre class="brush: plain; title: manifest.ini; notranslate">
name=Sony Tablet unofficial usb-vendor addon
vendor=tande
description=Adds USB support for Tablet S &amp; P (Vendor id:0x054c)
api=11
revision=1
usb-vendor=0x054c
</pre>
<div id="pukiwiki_content53" class="pukiwiki_content">
<p>無事adb_usb.iniに書き込まれたのでした。<br />
あーすっきりした。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/02/1649/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/02/1649" />
	</item>
		<item>
		<title>[Chrome] さよなら全角英数Extension 更新(1.0.7)</title>
		<link>http://tande.jp/lab/2012/02/1642</link>
		<comments>http://tande.jp/lab/2012/02/1642#comments</comments>
		<pubDate>Thu, 02 Feb 2012 15:35:56 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Informaiton]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[さよなら全角英数]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1642</guid>
		<description><![CDATA[先日リリースしたばかりの さよなら全角英数Extension ですが、設定ページが追加になりました。 半角に変換したい記号や文字の種類を、あらかじめ設定しておくことができます。 英字は半角にしてほしいけど、数字は全角のま [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://j.mp/wadB1j" title="さよなら全角英数Extension" target="_blank"><img src="https://lh6.googleusercontent.com/-BqGYf_zCzXQ/Tyqrp2AUrzI/AAAAAAAA1hY/NyuDrjUMOgs/s800/promoimg_small.png" alt="さよなら全角英数Extension" /></a></p>
<p>先日リリースしたばかりの <a href="http://j.mp/wadB1j" title="さよなら全角英数Extension" target="_blank">さよなら全角英数Extension</a> ですが、設定ページが追加になりました。<br />
半角に変換したい記号や文字の種類を、あらかじめ設定しておくことができます。<br />
英字は半角にしてほしいけど、数字は全角のままにしてー!という、マニアックなニーズにも答えます!</p>
<p><span id="more-1642"></span></p>
<div id="pukiwiki_content55" class="pukiwiki_content">
<h3 id="content_1_0">1.0.7 新機能</h3>
<p>拡張機能ページの「オプション」<br />
<img src="https://lh3.googleusercontent.com/-sZIjqR0KD7k/Tyqos2s9tgI/AAAAAAAA1hM/bGnTZaJv2mI/s800/120203-0001-1.png" alt="https://lh3.googleusercontent.com/-sZIjqR0KD7k/Tyqos2s9tgI/AAAAAAAA1hM/bGnTZaJv2mI/s800/120203-0001-1.png" /></p>
<p>アイコンクリックして登場するポップアップページの「設定」<br />
<img src="https://lh6.googleusercontent.com/-4N7EHDYCHRw/TyloYQp_FAI/AAAAAAAA1gk/0QwDwF8uMHQ/s800/120202-0013.png" alt="https://lh6.googleusercontent.com/-4N7EHDYCHRw/TyloYQp_FAI/AAAAAAAA1gk/0QwDwF8uMHQ/s800/120202-0013.png" /></p>
<p>どちらを押しても同じ設定ページに飛びます。<br />
<img src="https://lh6.googleusercontent.com/-S2euQaKd4MM/TyloY8CVmHI/AAAAAAAA1gs/DhQMVM-I3Ew/s800/120202-0014.png" alt="https://lh6.googleusercontent.com/-S2euQaKd4MM/TyloY8CVmHI/AAAAAAAA1gs/DhQMVM-I3Ew/s800/120202-0014.png" /><br />
変換してほしい項目を事前に設定しておけます。</p>
<div class="jumpmenu"><a href="#pukiwiki_content55">&uarr;</a></div>
<h3 id="content_1_1">噂のプレスリリースで試す</h3>
<p>つい先日もまた某電話会社が新しいプレスリリースをだしました。</p>
<p><a href="http://j.mp/wnCr8y" rel="nofollow">報道発表資料 : NTTドコモとウォルト・ディズニー・ジャパンが「Disney Mobile on docomo」ブランドのスマートフォン及びサービスの提供を共同で推進 | お知らせ | NTTドコモ</a></p>
<p>さよなら全角英数Extension を使うと…</p>
<div class="jumpmenu"><a href="#pukiwiki_content55">&uarr;</a></div>
<h4 id="content_1_2">Before</h4>
<p><a href="http://j.mp/wnCr8y" rel="nofollow"><img src="https://lh4.googleusercontent.com/-uyGlrgs7hss/Tyqt65fKFeI/AAAAAAAA1hg/OqAn9YuUJo0/s800/120203-0002.png" alt="http://j.mp/wnCr8y" /></a></p>
<div class="jumpmenu"><a href="#pukiwiki_content55">&uarr;</a></div>
<h4 id="content_1_3">After</h4>
<p><a href="http://j.mp/wnCr8y" rel="nofollow"><img src="https://lh4.googleusercontent.com/-RHuMDgUrq0k/Tyqt7QnsmLI/AAAAAAAA1ho/1TvOu9HptdA/s800/120203-0003.png" alt="http://j.mp/wnCr8y" /></a></p>
<p>読みやすさ抜群ですね!</p>
<div class="jumpmenu"><a href="#pukiwiki_content55">&uarr;</a></div>
<h3 id="content_1_4">ダウンロード</h3>
<p>ダウンロードは <a href="http://j.mp/wadB1j" rel="nofollow">Chromeウェブストア</a> からドウゾ!<br />
<a href="http://j.mp/wadB1j" rel="nofollow"><img src="https://lh6.googleusercontent.com/-7Z4LHyFS3FY/Ty0wuUmTo8I/AAAAAAAA1kY/UtVLNiv92ys/s800/120204-0001.png" alt="http://j.mp/wadB1j" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/02/1642/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/02/1642" />
	</item>
		<item>
		<title>[WordPress] WP-Table Reloaded プラグインで五十音順ソートする方法</title>
		<link>http://tande.jp/lab/2012/02/1641</link>
		<comments>http://tande.jp/lab/2012/02/1641#comments</comments>
		<pubDate>Wed, 01 Feb 2012 16:20:06 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Sort]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1641</guid>
		<description><![CDATA[WP-Table Reloaded プラグイン を使った表組みで、漢字英数かな混じりの項目を 五十音順順 にソート ひらがな でも検索ヒット できるようにする方法を紹介します。 某サイトを構築している際に ”ふりがな項目 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/fltV6s" title="WP-Table Reloaded プラグイン" target="_blank">WP-Table Reloaded プラグイン</a> を使った表組みで、漢字英数かな混じりの項目を</p>
<div id="pukiwiki_content58" class="pukiwiki_content">
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>五十音順順 にソート</li>
<li>ひらがな でも検索ヒット</li>
</ul>
<p>できるようにする方法を紹介します。</p>
<p>某サイトを構築している際に ”ふりがな項目” を新たに列に加えずに、そこそこ大量の項目を五十音順で並び替える必要があったのでそのときのメモです。</p>
<p><a href="http://bit.ly/fltV6s" rel="nofollow">WP-Table Reloaded プラグイン</a> 自体の使い方については <a href="http://tande.jp/lab/2011/02/990" rel="nofollow">前記事 &#8211; [WordPress] CSVエクスポート&amp;インポート可能な表組を簡単に組み込めるプラグイン</a> を参照してください。</p>
<p>CSSを利用した単純な工夫ですが、以外と使えると思います。</p>
</div>
<p><span id="more-1641"></span></p>
<div id="pukiwiki_content59" class="pukiwiki_content">
<h3 id="content_1_0">1. CSVファイルの準備</h3>
<p>まず表組みに表示させたい情報をCSVファイルで用意します。<br />
編集はExcelでもNumbersでもお好きなものをお使いください。</p>
<p>ここでは、都道府県名を一覧にしたCSVファイルを例に使います。<br />
<a href="http://j.mp/wbr6IH" rel="nofollow">都道府県庁所在地を覚えよう!</a> からコンテンツを拝借しました。<br />
<img src="https://lh6.googleusercontent.com/-JLUkvIeKExA/TyfEfGRmH1I/AAAAAAAA1ds/GxIbePc_egk/s800/120131-0003.png" alt="https://lh6.googleusercontent.com/-JLUkvIeKExA/TyfEfGRmH1I/AAAAAAAA1ds/GxIbePc_egk/s800/120131-0003.png" /></p>
<p><a href="http://bit.ly/fltV6s" rel="nofollow">WP-Table Reloaded プラグイン</a> はCSVファイルのインポート&amp;エクスポートに対応するので<br />
単なる表組み表示であれば、このCSVファイル自体をインポートするだけで出来上がりです。</p>
<p>インポートしたら、<a href="http://bit.ly/fltV6s" rel="nofollow">WP-Table Reloaded プラグイン</a> の画面で、以下項目にチェックをつけます。<br />
<img src="https://lh4.googleusercontent.com/-fyQVUavfeds/TykhQY5FAZI/AAAAAAAA1e8/vhZDebXOYlg/s800/120201-0002.png" alt="https://lh4.googleusercontent.com/-fyQVUavfeds/TykhQY5FAZI/AAAAAAAA1e8/vhZDebXOYlg/s800/120201-0002.png" /><br />
この時点でもソート&amp;検索できますが、まだ五十音順にはなりませんし、ひらがなでも検索ヒットしません。</p>
<div class="jumpmenu"><a href="#pukiwiki_content59">&uarr;</a></div>
<h3 id="content_1_1">2. ふりがな項目の追加</h3>
<p>CSVファイルに、ふりがな項目の列を追加します。<br />
この項目はあくまでソート・検索用に利用するメタデータなので実際には表示されません。</p>
<p><a href="http://j.mp/zZQdFE" rel="nofollow">PHONETIC PHONETIC関数でふりがなを表示!&#8211;Excel・エクセル</a></p>
<p>この辺りを参考に、ふりがな項目の入力列を作ります。<br />
自力で記入しても問題ないです。（が、気の遠くなる作業になるのでなるべく自動化したいところ）</p>
<p><img src="https://lh3.googleusercontent.com/-L-1VGGSiRA0/Tyleiy-SfoI/AAAAAAAA1fI/lRmkzxJbdPA/s800/120202-0001.png" alt="https://lh3.googleusercontent.com/-L-1VGGSiRA0/Tyleiy-SfoI/AAAAAAAA1fI/lRmkzxJbdPA/s800/120202-0001.png" /></p>
<div class="jumpmenu"><a href="#pukiwiki_content59">&uarr;</a></div>
<h3 id="content_1_2">3. HTMLタグを追加</h3>
<p>CSVファイルに追加したふりがな項目を</p>
<blockquote><p class="quotation">&lt;div style=&quot;display: none;&quot;&gt;&lt;/div&gt;</p>
</blockquote>
<p>で囲みます。</p>
<p>そうです、ただCSSの display:none; で表示させないだけです。単純です。<br />
下記サイトで紹介されているEcxelを使ったやりかたで、だーっとコピーするとミスも少なく超効率的です。</p>
<p><a href="http://j.mp/zsgTY9" rel="nofollow">めんどうな作業がわずか数秒に!新人デザイナーが 知らないと一生後悔するExcelを使ったHTML生成 | Webロケッツマガジン</a></p>
<p>こんな感じ。<br />
<img src="https://lh3.googleusercontent.com/-E8i19xaFnFY/TylejUcoH-I/AAAAAAAA1fQ/5Yr1z8zikJk/s800/120202-0002.png" alt="https://lh3.googleusercontent.com/-E8i19xaFnFY/TylejUcoH-I/AAAAAAAA1fQ/5Yr1z8zikJk/s800/120202-0002.png" /></p>
<p>これを上記サイトで説明されているように<br />
メモ帳等テキストエディタにコピーしてタブを置換で取り除き<br />
<img src="https://lh4.googleusercontent.com/-qwW4IdDhEJY/TylekKOO5sI/AAAAAAAA1fU/nYLs1xt79VM/s800/120202-0003.png" alt="https://lh4.googleusercontent.com/-qwW4IdDhEJY/TylekKOO5sI/AAAAAAAA1fU/nYLs1xt79VM/s800/120202-0003.png" /></p>
<blockquote><p class="quotation">&lt;div style=&quot;display: none;&quot;&gt;ほっかいどう&lt;/div&gt;北海道</p>
</blockquote>
<p>という状態の項目を1列に収めたCSVファイルを生成します。<br />
こんな感じ。<br />
<img src="https://lh4.googleusercontent.com/-z0Xl11zTWNw/Tylek1e7X9I/AAAAAAAA1fc/jqV9AQu1zQM/s800/120202-0004.png" alt="https://lh4.googleusercontent.com/-z0Xl11zTWNw/Tylek1e7X9I/AAAAAAAA1fc/jqV9AQu1zQM/s800/120202-0004.png" /></p>
<p>CSVを &quot;UTF-8&quot; で書き出します。<br />
Excelの場合はCSVで書き出した後に、別途テキストエディタ等でエンコード変換してください。<br />
<img src="https://lh6.googleusercontent.com/-O4JA8AweozI/TylelqSCI-I/AAAAAAAA1fo/JzPnef3qsZg/s800/120202-0005.png" alt="https://lh6.googleusercontent.com/-O4JA8AweozI/TylelqSCI-I/AAAAAAAA1fo/JzPnef3qsZg/s800/120202-0005.png" /></p>
<div class="jumpmenu"><a href="#pukiwiki_content59">&uarr;</a></div>
<h3 id="content_1_3">4. WP-Table Reloaded を使ってインポート!</h3>
<p>あとは、このCSVファイルをお好きな設定でインポートするだけです。<br />
<img src="https://lh5.googleusercontent.com/-T0v4M9q3Wt8/TyljdPqXZoI/AAAAAAAA1gA/tH6QayxqQ6k/s800/120202-0008.png" alt="https://lh5.googleusercontent.com/-T0v4M9q3Wt8/TyljdPqXZoI/AAAAAAAA1gA/tH6QayxqQ6k/s800/120202-0008.png" /></p>
<p>ソートするとちゃんと五十音順に並びます!<br />
<img src="https://lh3.googleusercontent.com/-P94nkG1XmVE/Tylloy82yHI/AAAAAAAA1gI/ed-FHpSRGqE/s800/120202-0009.png" alt="https://lh3.googleusercontent.com/-P94nkG1XmVE/Tylloy82yHI/AAAAAAAA1gI/ed-FHpSRGqE/s800/120202-0009.png" /></p>
<p>ひらがなでも検索ヒットします!<br />
<img src="https://lh4.googleusercontent.com/-M1WQAbZytL8/TyllpUC13lI/AAAAAAAA1gM/YZheDPiOFXc/s800/120202-0010.png" alt="https://lh4.googleusercontent.com/-M1WQAbZytL8/TyllpUC13lI/AAAAAAAA1gM/YZheDPiOFXc/s800/120202-0010.png" /></p>
<p>下記で実際にお試しください。<br />
このやり方は、カタカナ・英字でももちろん応用できます。</p>

<table id="wp-table-reloaded-id-11-no-1" class="wp-table-reloaded wp-table-reloaded-id-11">
<thead>
	<tr class="row-1 odd">
		<th class="column-1">都道府県名</th><th class="column-2">県庁所在地</th><th class="column-3">ホームページ</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2 even">
		<td class="column-1"><div style="display: none;">ほっかいどう</div>北海道</td><td class="column-2">札幌市</td><td class="column-3">http://www.pref.hokkaido.lg.jp/</td>
	</tr>
	<tr class="row-3 odd">
		<td class="column-1"><div style="display: none;">あおもりけん</div>青森県</td><td class="column-2">青森市</td><td class="column-3">http://www.pref.aomori.lg.jp/</td>
	</tr>
	<tr class="row-4 even">
		<td class="column-1"><div style="display: none;">いわてけん</div>岩手県</td><td class="column-2">盛岡市</td><td class="column-3">http://www.pref.iwate.jp/</td>
	</tr>
	<tr class="row-5 odd">
		<td class="column-1"><div style="display: none;">みやぎけん</div>宮城県</td><td class="column-2">仙台市</td><td class="column-3">http://www.pref.miyagi.jp/</td>
	</tr>
	<tr class="row-6 even">
		<td class="column-1"><div style="display: none;">あきたけん</div>秋田県</td><td class="column-2">秋田市</td><td class="column-3">http://www.pref.akita.lg.jp/</td>
	</tr>
	<tr class="row-7 odd">
		<td class="column-1"><div style="display: none;">やまがたけん</div>山形県</td><td class="column-2">山形市</td><td class="column-3">http://www.pref.yamagata.jp/</td>
	</tr>
	<tr class="row-8 even">
		<td class="column-1"><div style="display: none;">ふくしまけん</div>福島県</td><td class="column-2">福島市</td><td class="column-3">http://www.pref.fukushima.jp/</td>
	</tr>
	<tr class="row-9 odd">
		<td class="column-1"><div style="display: none;">いばらきけん</div>茨城県</td><td class="column-2">水戸市</td><td class="column-3">http://www.pref.ibaraki.jp/</td>
	</tr>
	<tr class="row-10 even">
		<td class="column-1"><div style="display: none;">とちぎけん</div>栃木県</td><td class="column-2">宇都宮市</td><td class="column-3">http://www.pref.tochigi.lg.jp/</td>
	</tr>
	<tr class="row-11 odd">
		<td class="column-1"><div style="display: none;">ぐんまけん</div>群馬県</td><td class="column-2">前橋市</td><td class="column-3">http://www.pref.gunma.jp/</td>
	</tr>
	<tr class="row-12 even">
		<td class="column-1"><div style="display: none;">さいたまけん</div>埼玉県</td><td class="column-2">さいたま市</td><td class="column-3">http://www.pref.saitama.lg.jp/</td>
	</tr>
	<tr class="row-13 odd">
		<td class="column-1"><div style="display: none;">ちばけん</div>千葉県</td><td class="column-2">千葉市</td><td class="column-3">http://www.pref.chiba.lg.jp/</td>
	</tr>
	<tr class="row-14 even">
		<td class="column-1"><div style="display: none;">とうきょうと</div>東京都</td><td class="column-2">新宿区</td><td class="column-3">http://www.metro.tokyo.jp/</td>
	</tr>
	<tr class="row-15 odd">
		<td class="column-1"><div style="display: none;">かながわけん</div>神奈川県</td><td class="column-2">横浜市</td><td class="column-3">http://www.pref.kanagawa.jp/</td>
	</tr>
	<tr class="row-16 even">
		<td class="column-1"><div style="display: none;">にいがたけん</div>新潟県</td><td class="column-2">新潟市</td><td class="column-3">http://www.pref.niigata.lg.jp/</td>
	</tr>
	<tr class="row-17 odd">
		<td class="column-1"><div style="display: none;">とやまけん</div>富山県</td><td class="column-2">富山市</td><td class="column-3">http://www.pref.toyama.jp/</td>
	</tr>
	<tr class="row-18 even">
		<td class="column-1"><div style="display: none;">いしかわけん</div>石川県</td><td class="column-2">金沢市</td><td class="column-3">http://www.pref.ishikawa.jp/</td>
	</tr>
	<tr class="row-19 odd">
		<td class="column-1"><div style="display: none;">ふくいけん</div>福井県</td><td class="column-2">福井市</td><td class="column-3">http://www.pref.fukui.jp/</td>
	</tr>
	<tr class="row-20 even">
		<td class="column-1"><div style="display: none;">やまなしけん</div>山梨県</td><td class="column-2">甲府市</td><td class="column-3">http://www.pref.yamanashi.jp/</td>
	</tr>
	<tr class="row-21 odd">
		<td class="column-1"><div style="display: none;">ながのけん</div>長野県</td><td class="column-2">長野市</td><td class="column-3">http://www.pref.nagano.jp/</td>
	</tr>
	<tr class="row-22 even">
		<td class="column-1"><div style="display: none;">ぎふけん</div>岐阜県</td><td class="column-2">岐阜市</td><td class="column-3">http://www.pref.gifu.lg.jp/</td>
	</tr>
	<tr class="row-23 odd">
		<td class="column-1"><div style="display: none;">しずおかけん</div>静岡県</td><td class="column-2">静岡市</td><td class="column-3">http://www.pref.shizuoka.jp/</td>
	</tr>
	<tr class="row-24 even">
		<td class="column-1"><div style="display: none;">あいちけん</div>愛知県</td><td class="column-2">名古屋市</td><td class="column-3">http://www.pref.aichi.jp/</td>
	</tr>
	<tr class="row-25 odd">
		<td class="column-1"><div style="display: none;">みえけん</div>三重県</td><td class="column-2">津市</td><td class="column-3">http://www.pref.mie.jp/</td>
	</tr>
	<tr class="row-26 even">
		<td class="column-1"><div style="display: none;">しがけん</div>滋賀県</td><td class="column-2">大津市</td><td class="column-3">http://www.pref.shiga.jp/</td>
	</tr>
	<tr class="row-27 odd">
		<td class="column-1"><div style="display: none;">きょうとふ</div>京都府</td><td class="column-2">京都市</td><td class="column-3">http://www.pref.kyoto.jp/</td>
	</tr>
	<tr class="row-28 even">
		<td class="column-1"><div style="display: none;">おおさかふ</div>大阪府</td><td class="column-2">大阪市</td><td class="column-3">http://www.pref.osaka.jp/</td>
	</tr>
	<tr class="row-29 odd">
		<td class="column-1"><div style="display: none;">ひょうごけん</div>兵庫県</td><td class="column-2">神戸市</td><td class="column-3">http://web.pref.hyogo.jp/</td>
	</tr>
	<tr class="row-30 even">
		<td class="column-1"><div style="display: none;">ならけん</div>奈良県</td><td class="column-2">奈良市</td><td class="column-3">http://www.pref.nara.jp/</td>
	</tr>
	<tr class="row-31 odd">
		<td class="column-1"><div style="display: none;">わかやまけん</div>和歌山県</td><td class="column-2">和歌山市</td><td class="column-3">http://www.pref.wakayama.lg.jp/</td>
	</tr>
	<tr class="row-32 even">
		<td class="column-1"><div style="display: none;">とっとりけん</div>鳥取県</td><td class="column-2">鳥取市</td><td class="column-3">http://www.pref.tottori.lg.jp/</td>
	</tr>
	<tr class="row-33 odd">
		<td class="column-1"><div style="display: none;">しまねけん</div>島根県</td><td class="column-2">松江市</td><td class="column-3">http://www.pref.shimane.lg.jp/</td>
	</tr>
	<tr class="row-34 even">
		<td class="column-1"><div style="display: none;">おかやまけん</div>岡山県</td><td class="column-2">岡山市</td><td class="column-3">http://www.pref.okayama.jp/</td>
	</tr>
	<tr class="row-35 odd">
		<td class="column-1"><div style="display: none;">ひろしまけん</div>広島県</td><td class="column-2">広島市</td><td class="column-3">http://www.pref.hiroshima.lg.jp/</td>
	</tr>
	<tr class="row-36 even">
		<td class="column-1"><div style="display: none;">やまぐちけん</div>山口県</td><td class="column-2">山口市</td><td class="column-3">http://www.pref.yamaguchi.jp/</td>
	</tr>
	<tr class="row-37 odd">
		<td class="column-1"><div style="display: none;">とくしまけん</div>徳島県</td><td class="column-2">徳島市</td><td class="column-3">http://www.pref.tokushima.jp/</td>
	</tr>
	<tr class="row-38 even">
		<td class="column-1"><div style="display: none;">かがわけん</div>香川県</td><td class="column-2">高松市</td><td class="column-3">http://www.pref.kagawa.jp/</td>
	</tr>
	<tr class="row-39 odd">
		<td class="column-1"><div style="display: none;">えひめけん</div>愛媛県</td><td class="column-2">松山市</td><td class="column-3">http://www.pref.ehime.jp/</td>
	</tr>
	<tr class="row-40 even">
		<td class="column-1"><div style="display: none;">こうちけん</div>高知県</td><td class="column-2">高知市</td><td class="column-3">http://www.pref.kochi.lg.jp/</td>
	</tr>
	<tr class="row-41 odd">
		<td class="column-1"><div style="display: none;">ふくおかけん</div>福岡県</td><td class="column-2">福岡市</td><td class="column-3">http://www.pref.fukuoka.lg.jp/</td>
	</tr>
	<tr class="row-42 even">
		<td class="column-1"><div style="display: none;">さがけん</div>佐賀県</td><td class="column-2">佐賀市</td><td class="column-3">http://www.pref.saga.lg.jp/</td>
	</tr>
	<tr class="row-43 odd">
		<td class="column-1"><div style="display: none;">ながさきけん</div>長崎県</td><td class="column-2">長崎市</td><td class="column-3">http://www.pref.nagasaki.jp/</td>
	</tr>
	<tr class="row-44 even">
		<td class="column-1"><div style="display: none;">くまもとけん</div>熊本県</td><td class="column-2">熊本市</td><td class="column-3">http://www.pref.kumamoto.jp/</td>
	</tr>
	<tr class="row-45 odd">
		<td class="column-1"><div style="display: none;">おおいたけん</div>大分県</td><td class="column-2">大分市</td><td class="column-3">http://www.pref.oita.jp/</td>
	</tr>
	<tr class="row-46 even">
		<td class="column-1"><div style="display: none;">みやざきけん</div>宮崎県</td><td class="column-2">宮崎市</td><td class="column-3">http://www.pref.miyazaki.lg.jp/</td>
	</tr>
	<tr class="row-47 odd">
		<td class="column-1"><div style="display: none;">かごしまけん</div>鹿児島県</td><td class="column-2">鹿児島市</td><td class="column-3">http://www.pref.kagoshima.jp/</td>
	</tr>
	<tr class="row-48 even">
		<td class="column-1"><div style="display: none;">おきなわけん</div>沖縄県</td><td class="column-2">那覇市</td><td class="column-3">http://www.pref.okinawa.jp/index.html</td>
	</tr>
</tbody>
</table>

</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/02/1641/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/02/1641" />
	</item>
		<item>
		<title>[iOS] アプリアイコンの光沢ON/OFFする方法</title>
		<link>http://tande.jp/lab/2012/01/1638</link>
		<comments>http://tande.jp/lab/2012/01/1638#comments</comments>
		<pubDate>Sun, 29 Jan 2012 10:27:06 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1638</guid>
		<description><![CDATA[プロジェクトフォルダ内の Supporting Files > *-Info.plist　（*はプロジェクト名称） に以下の条件のKeyとValueを設定すればOK。 アイコンは、iOSの教科書 &#8211; 赤松正行 [...]]]></description>
			<content:encoded><![CDATA[<p>プロジェクトフォルダ内の<br />
Supporting Files > *-Info.plist　（*はプロジェクト名称）<br />
に以下の条件のKeyとValueを設定すればOK。<br />
<img src="https://lh5.googleusercontent.com/-ZolJyU2MkjI/TyUbeI63gUI/AAAAAAAA1bo/LWTDIorinls/s640/120129-0002.png" alt="アプリアイコンの光沢ON/OFF" /><br />

<table id="wp-table-reloaded-id-10-no-1" class="wp-table-reloaded wp-table-reloaded-id-10">
<thead>
	<tr class="row-1">
		<th class="column-1">Key</th><th class="column-2">Value</th><th class="column-3">結果</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td rowspan="2" class="column-1 rowspan-2">Icon already includes gloss effects</td><td class="column-2">YES</td><td class="column-3">光沢なし<br />
<img src="https://lh3.googleusercontent.com/-qTlSIGHuseI/TyUdyNxVpZI/AAAAAAAA1bw/HXjpq5QopLQ/s800/120129-0003.png" alt="アプリアイコンの光沢なし" /></td>
	</tr>
	<tr class="row-3">
		<td class="column-2">NO</td><td class="column-3">光沢あり<br />
<img src="https://lh3.googleusercontent.com/-PBNdCA77Ic4/TyUdyiYXiTI/AAAAAAAA1b0/AQl-WVsYkU8/s800/120129-0004.png" alt="アプリアイコンの光沢あり" /></td>
	</tr>
</tbody>
</table>
</p>
<p>アイコンは、<a href="http://j.mp/wcTf2r" title="iOSの教科書 - 赤松正行の書籍サイト" target="_blank">iOSの教科書 &#8211; 赤松正行の書籍サイト</a> の真似て仮で作ったやつですw<br />
こうやって比較してみると光沢つけると全体的に白っぽくなっちゃうんですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1638/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1638" />
	</item>
		<item>
		<title>[iOS] アプリに必要なアイコン・起動画面の画像サイズ＆ファイル名</title>
		<link>http://tande.jp/lab/2012/01/1635</link>
		<comments>http://tande.jp/lab/2012/01/1635#comments</comments>
		<pubDate>Sat, 28 Jan 2012 16:06:41 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1635</guid>
		<description><![CDATA[iOSアプリのアイコンと起動画面で準備する画像サイズなどのメモ。 最低限準備する必要のある画像はデフォルトファイル名が指定されており、 そのファイル名でビルドすると自動的に該当箇所に適用されます。 ファイル名は変更するこ [...]]]></description>
			<content:encoded><![CDATA[<p>iOSアプリのアイコンと起動画面で準備する画像サイズなどのメモ。</p>
<p>最低限準備する必要のある画像はデフォルトファイル名が指定されており、<br />
そのファイル名でビルドすると自動的に該当箇所に適用されます。<br />
ファイル名は変更することもできるようです。</p>
<div id="pukiwiki_content62" class="pukiwiki_content">
<h3 id="content_1_0">iOSデバイス解像度の種類</h3>
<p>iPhoneの画面サイズは3.5inchで、現状2種類の解像度が存在します。<br />
iPadも含めるとこんな感じ。</p>

<table id="wp-table-reloaded-id-9-no-1" class="wp-table-reloaded wp-table-reloaded-id-9">
<thead>
	<tr class="row-1">
		<th class="column-1">デバイス名称</th><th class="column-2">画面サイズ</th><th class="column-3">解像度 (px)</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td class="column-1">iPhone3G / 3GS</td><td rowspan="2" class="column-2 rowspan-2">3.5 inch</td><td class="column-3">480 x 320</td>
	</tr>
	<tr class="row-3">
		<td class="column-1">iPhone4 / 4S</td><td class="column-3">960 × 640</td>
	</tr>
	<tr class="row-4">
		<td class="column-1">iPad / iPad2</td><td class="column-2">9.7 inch</td><td class="column-3">1024 × 768</td>
	</tr>
</tbody>
</table>

<p>iPhone4/4Sのはいわゆる &quot;Retina Display&quot; と言われているやつですね。<br />
なのでiPhoneアプリの場合は、この2種類の画像を準備する必要があります。<br />
iPadは大半の画像データがiPhone3G/3GSのものと共用できます。</p>
<p>iPad3はまた違う解像度になるっていう噂もあるので、、どんどん増えると対応が大変ですね。</p>
<p>ファイル名の末尾に「＠2x」をつけたものが、iPhone4/4S用の画像として認識されるようです。<br />
「＠2x」ファイルがなくてもアプリは作れますが、iPhone3G/3GSの画像が使われてしまうので、もやっと荒い画像になってしまいます。</p>
<p>以下、準備する必要のある画像リストです。</p>
</div>
<p><span id="more-1635"></span></p>
<div id="pukiwiki_content63" class="pukiwiki_content">
<h3 id="content_1_0">アイコン・起動画面の画像サイズ&amp;ファイル名</h3>
<p>ファイル名の大文字小文字に注意。</p>

<table id="wp-table-reloaded-id-8-no-1" class="wp-table-reloaded wp-table-reloaded-id-8">
<thead>
	<tr class="row-1">
		<th class="column-1">名称</th><th class="column-2">デフォルトファイル名</th><th class="column-3">サイズ (px)</th><th class="column-4">対象デバイス</th><th class="column-5">備考</th>
	</tr>
</thead>
<tbody>
	<tr class="row-2">
		<td rowspan="3" class="column-1 rowspan-3">アプリアイコン</td><td class="column-2">Icon.png	</td><td class="column-3">57 x 57</td><td class="column-4">iPhone3G / 3GS</td><td class="column-5"></td>
	</tr>
	<tr class="row-3">
		<td class="column-2">Icon@2x.png</td><td class="column-3">114 x 114</td><td class="column-4">iPhone4 / 4S</td><td class="column-5"></td>
	</tr>
	<tr class="row-4">
		<td class="column-2">Icon-72.png</td><td class="column-3">72 x 72</td><td class="column-4">iPad / iPad2</td><td class="column-5"></td>
	</tr>
	<tr class="row-5">
		<td rowspan="3" class="column-1 rowspan-3">設定 / Spotlight</td><td class="column-2">Icon-Small.png</td><td class="column-3">29 x 29</td><td class="column-4">iPhone3G / 3GS<br />
iPad / iPad2</td><td class="column-5">iPhoneの設定 / Spotlight<br />
iPadの設定</td>
	</tr>
	<tr class="row-6">
		<td class="column-2">Icon-Small@2x.png</td><td class="column-3">58 x 58</td><td class="column-4">iPhone4 / 4S</td><td class="column-5"></td>
	</tr>
	<tr class="row-7">
		<td class="column-2">Icon-Small-50.png</td><td class="column-3">50 x 50</td><td class="column-4">iPad / iPad2</td><td class="column-5">iPadのSpotlight</td>
	</tr>
	<tr class="row-8">
		<td rowspan="4" class="column-1 rowspan-4">起動画面(Splash)</td><td class="column-2">Default.png</td><td class="column-3">320 x 480</td><td class="column-4">iPhone3G / 3GS</td><td class="column-5"></td>
	</tr>
	<tr class="row-9">
		<td class="column-2">Default@2x.png</td><td class="column-3">640 x 960</td><td class="column-4">iPhone4 / 4S</td><td class="column-5"></td>
	</tr>
	<tr class="row-10">
		<td class="column-2">Default-Portrait.png</td><td class="column-3">768 x 1004</td><td class="column-4">iPad / iPad2</td><td class="column-5">縦表示のとき<br />
下とサイズが違うので注意!</td>
	</tr>
	<tr class="row-11">
		<td class="column-2">Default-Landscape.png</td><td class="column-3">1024 x 748</td><td class="column-4">iPad / iPad2</td><td class="column-5">横表示のとき</td>
	</tr>
	<tr class="row-12">
		<td class="column-1">App Store アイコン</td><td class="column-2">iTunesArtwork</td><td class="column-3">512 x 512</td><td class="column-4"></td><td class="column-5">png画像<br />
拡張子は不要</td>
	</tr>
</tbody>
</table>

<div class="jumpmenu"><a href="#pukiwiki_content63">&uarr;</a></div>
<h3 id="content_1_1">参考ページ</h3>
<p>正確な情報はApple公式のガイドラインを参照のこと。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/wv2TKk" rel="nofollow">Technical Q&amp;A QA1686: Technical Q&amp;A QA1686</a></li>
<li><a href="http://j.mp/x6Jj26" rel="nofollow">iOS Human Interface Guidelines: Custom Icon and Image Creation Guidelines</a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1635/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1635" />
	</item>
		<item>
		<title>[iOS] 実機へのアプリインストールが失敗したときの対処方法</title>
		<link>http://tande.jp/lab/2012/01/1632</link>
		<comments>http://tande.jp/lab/2012/01/1632#comments</comments>
		<pubDate>Sat, 28 Jan 2012 10:18:42 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1632</guid>
		<description><![CDATA[Couldn't register xxxxxx with the bootstrap server. Error: unknown error code. This generally means that anoth [...]]]></description>
			<content:encoded><![CDATA[<pre>
Couldn't register xxxxxx with the bootstrap server. Error: unknown error code.
This generally means that another instance of
this process was already running or is hung in the debugger.
</pre>
<p>ってのが出てきて、<br />
iPhone上でアプリが動かない!シミュレータ上では動くのに!<br />
ってあたふたしてしまったんですが、その場合は実機を再起動すると良いそうです。</p>
<p>iPhoneへアプリインストールして、STOPしないうちになんらかの原因でXcodeが終了してしまった場合に起こる現象のようで、iPhone側に実行中ステータスが残っている状態に、アプリをインストールしようとしてしまいエラーになるんだとか。</p>
<p><a href="http://j.mp/ApXzxq" title="iPhoneでアプリケーションインストール中にエラーとなった場合の対処: iPhoneアプリ開発備忘録" target="_blank">iPhoneでアプリケーションインストール中にエラーとなった場合の対処: iPhoneアプリ開発備忘録</a><br />
を参考にさせていただきました。</p>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1632/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1632" />
	</item>
		<item>
		<title>冬は行きたい展示が目白押しで困る: 絶対行きたい映像・メディアアート関連展示11選</title>
		<link>http://tande.jp/lab/2012/01/1630</link>
		<comments>http://tande.jp/lab/2012/01/1630#comments</comments>
		<pubDate>Tue, 24 Jan 2012 16:23:17 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[Diary]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[MediaArt]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1630</guid>
		<description><![CDATA[毎年この季節は、雪山にも行きたいし 行きたい展示もたくさんだしで土日のスケジュールが過密気味。 とりあえず行きたい展示を書き出しておく。 自分用メモなので、フォーマットとかバラバラだけどとりあえず情報コピペ!! とりあえ [...]]]></description>
			<content:encoded><![CDATA[<p>毎年この季節は、雪山にも行きたいし<br />
行きたい展示もたくさんだしで土日のスケジュールが過密気味。<br />
とりあえず行きたい展示を書き出しておく。<br />
自分用メモなので、フォーマットとかバラバラだけどとりあえず情報コピペ!!</p>
<p>とりあえず、絶対行きたいのだけリストアップしたけど、<br />
今年特に多い気がするー!!</p>
<p><span id="more-1630"></span></p>
<div id="pukiwiki_content65" class="pukiwiki_content">
<h4 id="content_1_0">多摩美のメディア芸術展2011-12</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012/01/20〜22</li>
<li>AXISギャラリー</li>
<li><a href="http://j.mp/wXHjsK" rel="nofollow">多摩美のメディア芸術2011-12</a></li>
</ul>
<p>これは行きたかったけど行けなかった〜(&gt;_&lt;)<br />
残念。。</p>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_1">映像をめぐる冒険vol.4 見えない世界のみつめ方</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2011/12/13〜2012/01/29</li>
<li>休館日:毎週月曜日(休館日が祝日・振替休日の場合はその翌日)</li>
<li>料 金: 一般 500(400)円/学生 400(320)円/中高生・65歳以上 250(200)円</li>
<li>東京都写真美術館</li>
<li><a href="http://j.mp/wX2Qdu" rel="nofollow">映像をめぐる冒険vol.4 見えない世界のみつめ方</a></li>
</ul>
<p>これは今週末で最後なので絶対行きたいー。</p>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_2">Lost &amp; Found-Family Photos Swept by 3.11 East Japan Tsunami-</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012年01月11日 ~ 2012年02月11日</li>
<li>12:00-19:00</li>
<li>月曜・火曜・祝祭日休館</li>
<li><a href="http://j.mp/yPsrxV" rel="nofollow">TAB イベント &#8211; 「Lost &amp; Found-Family Photos Swept by 3.11 East Japan Tsunami-」</a></li>
<li><a href="http://j.mp/AqdiY9" rel="nofollow">Current Exhibition &#8211; AKAAKA</a></li>
</ul>
<p>2011年の記憶、しっかりと目に焼き付けておきたい。</p>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_3">田中一光ポスター1980-2002</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012年1月13日(金)~2月25日(土)</li>
<li>11:00-19:00</li>
<li>土曜は18:00まで</li>
<li>日曜祝日は休み</li>
<li>ggg(銀座グラフィックギャラリー)</li>
<li><a href="http://j.mp/ziOWQE" rel="nofollow">没後10周年記念企画 田中一光ポスター 1980-2002:展覧会ピックアップ|美術館・アート情報 artscape</a></li>
<li><a href="http://j.mp/AmeqxF" rel="nofollow">ggg スケジュール</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_4">[インターネット アート これから]  ポスト・インターネットのリアリティ</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>会期:2012年1月28日(土)―3月18日(日)</li>
<li>会場:NTTインターコミュニケーション・センター [ICC] ギャラリーA</li>
<li>開館時間:午前11時―午後6時(入館は閉館の30分前まで)</li>
<li>休館日:月曜日、保守点検日(2/12)</li>
<li>入場料:一般・大学生500(400)円/高校生以下無料</li>
<li><a href="http://j.mp/yJiQWu" rel="nofollow">ICC ONLINE | [インターネット アート これから]――ポスト・インターネットのリアリティ</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_5">CP+ 2012</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012年 2月9日(木)・10日(金)・11日(土)・12日(日)</li>
<li>10:00~17:00(最終日のみ16時)</li>
<li>パシフィコ横浜 展示ホール、アネックスホール</li>
<li><a href="http://j.mp/z1cHuW" rel="nofollow">カメラと写真映像の情報発信イベント CP+2012 ~伝える、つながる、写真の力~</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_6">第4回 恵比寿映像祭</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>平成24(2012)年2月10日(金)~ 2月26日(日)[15日間](*うち、2月13日、2月20日の月曜のみ休館)</li>
<li>10:00~20:00(*ただし最終日平成24(2012)年2月26日(日)のみ18:00まで)</li>
<li>東京都写真美術館</li>
<li><a href="http://j.mp/z5rUbM" rel="nofollow">恵比寿映像祭</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_7">第15回文化庁メディア芸術祭</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>日時:平成24年2月22日(水)〜3月4日(日)</li>
<li>会場:国立新美術館(六本木)</li>
<li><a href="http://j.mp/w2s8v9" rel="nofollow">メディア芸術祭 | 文化庁メディア芸術プラザ</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_8">多摩美大学院 情報デザイン領域修士制作展2012</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012/02/23-26</li>
<li>Gallery LE DECO @渋谷</li>
</ul>
<p>イベントサイトが見つけられない。どこだ。</p>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_9">多摩美 情報デザイン学科情報デザインコース卒制展2012</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012/03/09-11</li>
<li>ベルサール原宿</li>
<li><a href="http://j.mp/zTf7Kx" rel="nofollow">情デ卒制展2012</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content65">&uarr;</a></div>
<h4 id="content_1_10">多摩美 情報デザイン学科芸術コース卒制展 [INIT.]</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>2012/03/09-11</li>
<li>横浜赤レンガ倉庫1号館</li>
<li><a href="http://j.mp/ycEWN8" rel="nofollow">多摩美術大学|卒業制作展・大学院修了制作展</a></li>
</ul>
<p>まだちゃんとしたサイトが完成してないぽい?</p>
<p>とりあえず以上。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1630/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1630" />
	</item>
		<item>
		<title>[Chrome] さよなら全角英数Extension リリースしました</title>
		<link>http://tande.jp/lab/2012/01/1628</link>
		<comments>http://tande.jp/lab/2012/01/1628#comments</comments>
		<pubDate>Sat, 14 Jan 2012 10:09:20 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Informaiton]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[さよなら全角英数]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1628</guid>
		<description><![CDATA[ここ数日、「全角英数字がキレるレベル」とTwitterで話題になっていたdocomoのプレスリリース 報道発表資料 : Xperia新モデルのスマートフォン2機種を開発 &#124; お知らせ &#124; NTTドコモ docomoのプレ [...]]]></description>
			<content:encoded><![CDATA[<p>ここ数日、「全角英数字がキレるレベル」とTwitterで話題になっていたdocomoのプレスリリース<br />
<a href="http://j.mp/x7FoMS" target="_blank">報道発表資料 : Xperia新モデルのスマートフォン2機種を開発 | お知らせ | NTTドコモ</a></p>
<blockquote class="twitter-tweet" lang="ja"><p>docomoのプレスリリースの全角英数字がキレるレベルとか聞いて「いやいや、そんなソースコードとかじゃないのにキレるわけがないでしょーw」と思ったらマジでキレるレベルでキレそう <a href="http://t.co/7wQLONVn" title="http://www.nttdocomo.co.jp/info/news_release/2012/01/10_00.html">nttdocomo.co.jp/info/news_rele…</a></p>
<p>&mdash; 不可不可るいーにさん (@1ouis) <a href="https://twitter.com/1ouis/status/156625841898536962" data-datetime="2012-01-10T06:38:05+00:00">1月 10, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script><br />
@1ouis さんのツイートを拝借。<br />
想像を絶する全角文字のオンパレードに思わず爆笑!!</p>
<p>てことで、WEBページ上の全角文字を<br />
半角文字に自動変換する Chrome Extension &#8220;さよなら全角英数&#8221; リリースしました。<br />
<a href="http://j.mp/wadB1j" target="_blank"><img src="https://lh3.googleusercontent.com/-_tCoE3DjeiQ/TxFTspt_C5I/AAAAAAAA1H0/rPX9R9Sglfw/s800/120114-0002.png" alt="good-bye "Zenkaku" - さよなら全角英数" /></a><br />
Programming: @soranchu<br />
Icon Design: @koeri</p>
<p>ダウンロードは <a href="http://j.mp/wadB1j" target="_blank">Chromeウェブストア</a> からドウゾ!</p>
<p><span id="more-1628"></span></p>
<div id="pukiwiki_content67" class="pukiwiki_content">
<h4 id="content_1_0">2011.1.15 追記</h4>
<p>インストール後、全角英数が利用されているサイトを訪問すると<br />
自動的にアドレスバー右に赤いアイコンが表示されます。<br />
<img src="https://lh5.googleusercontent.com/-jEx-rbust4k/TxF7jfcGc0I/AAAAAAAA1H8/WYuRqSoSuyU/s800/120114-0003.png" alt="https://lh5.googleusercontent.com/-jEx-rbust4k/TxF7jfcGc0I/AAAAAAAA1H8/WYuRqSoSuyU/s800/120114-0003.png" /><br />
このアイコンをクリックすると、上のようなポップアップウィンドウが表示され<br />
「このページでの半角変換を無効にする」<br />
「このドメインでの半角変換を無効にする」<br />
が選べるようになります。</p>
<p>将来的には、この辺りカスタマイズしやすくしていく予定です。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1628/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1628" />
	</item>
		<item>
		<title>[iOS] iOS Devloper Program への登録 〜 実機での動作確認まで</title>
		<link>http://tande.jp/lab/2012/01/1621</link>
		<comments>http://tande.jp/lab/2012/01/1621#comments</comments>
		<pubDate>Mon, 09 Jan 2012 13:09:58 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[iOS_Developer_Program]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1621</guid>
		<description><![CDATA[やっと重い腰をあげて、iOSアプリ開発に挑戦し始めました。 とりあえず何でもいいから、サンプルアプリを自分のiPhoneにインストールして動かしてみたい!! と思って、そのために参考にしたサイトや自分がつまずいたところを [...]]]></description>
			<content:encoded><![CDATA[<p>やっと重い腰をあげて、iOSアプリ開発に挑戦し始めました。<br />
とりあえず何でもいいから、サンプルアプリを自分のiPhoneにインストールして動かしてみたい!!<br />
と思って、そのために参考にしたサイトや自分がつまずいたところをまとめてみました。</p>
<p><a href="http://j.mp/yLyoEc" target="_blank"><img src="http://s.wordpress.com/mshots/v1/http%3A%2F%2Fdeveloper.apple.com%2Fjp%2Fprograms%2Fios%2F?w=480&h=360" alt="iOS Developer Program"/></a></p>
<div id="pukiwiki_content70" class="pukiwiki_content">
<h3 id="content_1_0">目次</h3>
<ol class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> への登録</li>
<li>App Store から最新版 Xcode のダウンロード</li>
<li>開発用証明書の取得&amp;登録</li>
<li>自分の iPhone, iPad を開発デバイスとして登録</li>
<li>App ID の取得</li>
<li>Provisioning Profile の作成</li>
<li>Provisioning Profile をXcodeに登録</li>
<li>iPhone 実機へサンプルアプリをインストール</li>
</ol>
<p>下記から、やったことについて順を追って説明していきます。</p>
</div>
<p><span id="more-1621"></span></p>
<div id="pukiwiki_content71" class="pukiwiki_content">
<h3 id="content_1_0">1. iOS Devloper Program への登録</h3>
<p><a href="http://j.mp/yLyoEc" rel="nofollow"><img src="https://lh6.googleusercontent.com/-vdb9zCX7YDI/TwrWtDrLsaI/AAAAAAAA1Fw/kmgZyj0AIHo/s800/120109-0007.png" alt="http://j.mp/yLyoEc" /></a><br />
とりあえず、実機に入れてアプリが動く感動をいち早く味わいたいと思い、アプリ完成前ですが <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> へ登録してしまうことにしました。年間登録費の8400円は勉強代と思ってAppleにお布施しました。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_1">登録の際のポイント</h4>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>普段iTunes等で使っているAppleIDとは別に新たにIDを作った。</li>
<li>旧姓は使えないみたいなので戸籍上の姓で登録する。(旧姓でアプリ登録したいんですけど、どうしたらいいんでしょう…)</li>
<li>アクティベーションに失敗したら <a href="http://j.mp/A0WqvF" rel="nofollow">How to Contact Us &#8211; Apple Developer</a> の &quot;Program Enrollment&quot; からAppleに問合せメールを送る。</li>
</ul>
<p><a href="http://j.mp/A0WqvF" rel="nofollow"><img src="https://lh6.googleusercontent.com/-0GRxJq2icI0/TwrYKv6xHkI/AAAAAAAA1GA/8eOk4h5UihI/s800/120109-0009.png" alt="http://j.mp/A0WqvF" /></a><br />
私はつたない英語でメールしましたが、日本語でメールしても大丈夫なようです。すぐに日本語で返事がきてアクティベーションできるようにしてくれました。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_2">参考サイト・書籍</h4>
<p>下記サイト・書籍を参考にさせていただきました。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/xkqGYk" rel="nofollow">iOS Developer Programへの登録方法 &#8211; えんたつの記録</a></li>
<li><a href="http://j.mp/wcTf2r" rel="nofollow">iOSの教科書 &#8211; 赤松正行の書籍サイト</a></li>
</ul>
<p><a href="http://j.mp/wcTf2r" rel="nofollow"><img src="https://lh5.googleusercontent.com/-s3KffS75258/TwrQIvNczaI/AAAAAAAA1FY/QSRVw3QrH-U/s800/120109-0003.png" alt="http://j.mp/wcTf2r" /></a><br />
赤松さんの電子書籍では、画像入りで丁寧に登録方法が掲載されています。とても分かりやすいです。Xcodeの勉強用としても大活用させて頂いています。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_3">2. AppStoreから最新版Xcodeのダウンロード</h3>
<p><img src="https://lh6.googleusercontent.com/-VUnseAzGXUI/TwrUV-c8DaI/AAAAAAAA1Fg/PkIB0NbjndU/s800/120109-0005.png" alt="https://lh6.googleusercontent.com/-VUnseAzGXUI/TwrUV-c8DaI/AAAAAAAA1Fg/PkIB0NbjndU/s800/120109-0005.png" /><br />
開発環境のXcodeをAppStoreからダウンロードします。<br />
Xcodeは他のアプリと違ってインストーラーがダウンロードされるだけなんですね。<br />
LanchpadにダウンロードされたXcodeのインストーラーをダブルクリックしてインストールします。結構時間がかかります。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_4">3. 開発用証明書の取得&amp;登録</h3>
<p>個人的にはこの開発用証明書で苦労しました。赤松さんの書籍にもやり方が掲載されていないので色んなサイトを参考にしました。</p>
<p>全体像としては @yktmnb が作ってくれた図が分かりやすいので、勝手に拝借します。<br />
<a href="http://j.mp/kJpj8r" rel="nofollow"><img src="https://cacoo.com/diagrams/hM3BgwmzQSt0nuu8-E9F2D.png" alt="http://j.mp/kJpj8r" /></a></p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_5">「証明書署名要求ファイル(CSRファイル)」の生成</h4>
<p><img src="https://lh5.googleusercontent.com/-_EIzY7pymzc/TwrY6zTX08I/AAAAAAAA1GM/rcGzyERhs24/s800/120109-0010.png" alt="https://lh5.googleusercontent.com/-_EIzY7pymzc/TwrY6zTX08I/AAAAAAAA1GM/rcGzyERhs24/s800/120109-0010.png" /><br />
まず、開発に使うMacで、アプリ「キーチェーンアクセス」を起動して、「証明書署名要求ファイル(CSRファイル)」を生成する必要があります。</p>
<p>Apple公式の<a href="http://j.mp/xCrinS" rel="nofollow">iOSガイド</a>にも取得方法の説明はあるのですが、以下のサイトの方が分かりやすかったです。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/xK7ZPL" rel="nofollow">Macのアプリ「キーチェーンアクセス」を使って、「証明書署名要求ファイル(CSRファイル)」を生成します。 iPhoneアプリの開発方法 for Flash Professional CS5 前編 | デベロッパーセンター</a></li>
<li><a href="http://j.mp/ynibcW" rel="nofollow">iPhoneアプリを実機で動かす | iPhoneアプリ</a></li>
</ul>
<p>上記を参考に、CSRファイル(CertificateSigningRequest.certSigningRequest)を生成します。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_6">ローカルに保存したCSRファイルをアップロード</h4>
<p>上記で生成したCSRファイルを、 <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> へアップロードします。</p>
<p><a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> にアクセスし「Member Center」の「iOS Provisioning Portal」を開きます。その中の「Certificates」を選択し、「Request Certificate」ボタンをクリックします。「参照」ボタンで開いたダイアログで、先程のCSRファイルを選択し、アップロードします。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_7">証明書ファイルをダウンロード</h4>
<p>しばらく待つと、「Certificates」ページの「Action」列のところに「Download」ボタンが表示されるので、「Download」ボタンをクリックして、証明書ファイル(developer_identifier.cer)をローカルにダウンロードします。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h4 id="content_1_8">証明書をMacにインストール</h4>
<p>ダウンロードした証明書ファイルをダブルクリックすると、キーチェーンアクセスが起動して証明書がインストールされます。<br />
インストールした証明書を選択して、メニューから「ファイル&gt;書き出す」で、ローカルに書き出します。<br />
書き出す際にパスワードの設定を求められるので、任意のパスワードを設定します。</p>
<p>以下サイトで画像付きで説明があります。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/xK7ZPL" rel="nofollow">Macのアプリ「キーチェーンアクセス」を使って、「証明書署名要求ファイル(CSRファイル)」を生成します。 iPhoneアプリの開発方法 for Flash Professional CS5 前編 | デベロッパーセンター</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_9">4. 自分のiPhone,iPadを開発デバイスとして登録</h3>
<p>開発デバイスとして利用するiPhone,iPadのUDIDを <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> に登録する必要があります。</p>
<p>UDIDはiTunesで確認することができます。<br />
下記のサイトを参考にさせていただきました。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/xrrt9H" rel="nofollow">iPhone / iPod touch のUDIDの調べ方 &#8211; hishidaのblog</a></li>
</ul>
<p>UDIDを確認できたら、それを <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> に登録します。</p>
<p><a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> にアクセスし「Member Center」の「iOS Provisioning Portal」を開きます。その中の「Devices」を選択し、「Add Devices」ボタンをクリックしてデバイスを登録します。「submit」ボタンをクリックして登録が確定します。</p>
<p>iDPの個人アカウント1つにつき、100個までデバイス登録できるようです。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_10">5. App ID の取得</h3>
<p>新しいアプリを作るごとに1つずつ App ID というものを作成する必要があるそうです。</p>
<p>ただし、一度作った App ID は消す事ができないそうなので、テストアプリなどを作ったりしていくと大変な数になってしまいます。<br />
なのでテストアプリの制作にはワイルドカードの「*」を使った App ID を利用すると便利だそうです。</p>
<p>jp.tande.testapp.*</p>
<p>という感じでテスト用の App ID を作ってみました。</p>
<p>以下のサイトが分かりやすかったです。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/w2TNBo" rel="nofollow">App ID&#8217;s とアプリケーションのインストールについて &#8211; It_lives_vainlyの日記</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_11">6. Provisioning Profile の作成</h3>
<p>ここまで設定したら、Provisioning Profile というファイルを <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> で生成することができるようになります。</p>
<p><a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> にアクセスし「Member Center」の「iOS Provisioning Portal」を開きます。その中の「Provisioning」を選択し、「Add Profile」ボタンをクリックして Provisioning Profile を登録します。</p>
<p>以下の項目を登録して、「Submit」を押せば Provisioning Profile が作成されます。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>Profile Name: 任意の名前を入力します。</li>
<li>Certificates: チェックを入れます。</li>
<li>App ID: 上記で作成したものを選択します。</li>
<li>Device: 利用するデバイスにチェックを入れます。</li>
</ul>
<p>こちらのサイトが分かりやすいです。</p>
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li><a href="http://j.mp/ynibcW" rel="nofollow">iPhoneアプリを実機で動かす | iPhoneアプリ</a></li>
</ul>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_12">7. Provisioning Profile をXcodeに登録</h3>
<p>上記でダウンロードした Provisioning Profile をXcodeに登録します。</p>
<p>Xcodeの「Window」から「Organizer」を選択し、「Organizer」ウィンドウを立ち上げ、「Deveices」タブを選択します。<br />
左サイドバーの「Provisioning Profiles」を選択し、「Automatic Device Provisioning」がチェックされていることを確認します。</p>
<p>早ければこの時点で、先ほど <a href="http://j.mp/yLyoEc" rel="nofollow">iOS Devloper Program</a> で生成した Provisioning Profile が自動的にダウンロードされて登録されているはずです。何も登録されていない場合は、「Reflesh」ボタンを押してしばらく待つと、Provisioning Profile がダウンロードされるはずです。</p>
<div class="jumpmenu"><a href="#pukiwiki_content71">&uarr;</a></div>
<h3 id="content_1_13">8. iPhone 実機へサンプルアプリをインストール</h3>
<p>いよいよ、実機にインストールです!</p>
<p>iOSデバイスをUSBでMacと繋ぎます。繋いでから、先ほど立ち上げた「Organizer」ウィンドウの「Deveices」タブで、USB接続したiOSデバイスを選択し、「Use for Development」ボタンを押して、開発用デバイスとして有効にします。</p>
<p>Xcodeのメインウィンドウに戻って、シミュレータをRunさせるのと同じ手はずで、実機にアプリをインストールします。Simurator の種類を選ぶプルダウンリストに、USB接続されたデバイス名があるはずなので、それを選択して「Run」します。</p>
<p>無事、実機へアプリがインストールされました!ぱちぱち!</p>
<p>USBからiOSデバイスをはずす前に、ちゃんと「Stop」してあげないと色々不具合があるようなので、ちゃんと「Stop」してから外すようにしましょう。</p>
<p><a href="http://j.mp/wcTf2r" rel="nofollow">iOSの教科書 &#8211; 赤松正行の書籍サイト</a><br />
<a href="http://j.mp/wcTf2r" rel="nofollow"><img src="https://lh5.googleusercontent.com/-s3KffS75258/TwrQIvNczaI/AAAAAAAA1FY/QSRVw3QrH-U/s800/120109-0003.png" alt="http://j.mp/wcTf2r" /></a><br />
今回私がインストールしたサンプルアプリは、赤松さんの電子書籍に掲載されていたカウンターアプリをとりあえずそのままコピペして、使いました。</p>
<p>ひとまず、自分のiPhoneでアプリを動かす感動を味わってみたかったので、本格的にXcodeの勉強してオリジナルアプリを作るのはこれからです。</p>
<p>道のりは長いけど頑張るぞー!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1621/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1621" />
	</item>
		<item>
		<title>[WordPress] 指定したURLのスクリーンショットを挿入する</title>
		<link>http://tande.jp/lab/2012/01/1624</link>
		<comments>http://tande.jp/lab/2012/01/1624#comments</comments>
		<pubDate>Mon, 09 Jan 2012 09:28:38 +0000</pubDate>
		<dc:creator>koeri</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Capture]]></category>
		<category><![CDATA[functions.php]]></category>

		<guid isPermaLink="false">http://tande.jp/lab/?p=1624</guid>
		<description><![CDATA[functions.php に以下を追記することで url入力したサイトのスクリーンショットを手軽に貼付けることができます。 スクリーンショットには自動でリンクが貼られます。 デフォルトのスクリーンショットサイズを変更し [...]]]></description>
			<content:encoded><![CDATA[<p>functions.php に以下を追記することで<br />
url入力したサイトのスクリーンショットを手軽に貼付けることができます。<br />
スクリーンショットには自動でリンクが貼られます。</p>
<pre class="brush: php; title: ; notranslate">
//URLを入力しスクリーンショットを撮る
function wpr_snap($atts, $content = null) {
	extract(shortcode_atts(array(
		&quot;snap&quot; =&gt; 'http://s.wordpress.com/mshots/v1/',
		&quot;url&quot; =&gt; 'http://tande.jp/',
		&quot;link&quot; =&gt; '',
		&quot;alt&quot; =&gt; 'My image',
		&quot;w&quot; =&gt; '480', // width
		&quot;h&quot; =&gt; '360' // height
	), $atts));

	if($link == '') { $link = $url; }
	$img = '&lt;img src=&quot;' . $snap . '' . urlencode($url) . '?w=' . $w . '&amp;h=' . $h . '&quot; alt=&quot;' . $alt . '&quot;/&gt;';
	return '&lt;p&gt;' . '&lt;a href=&quot;' . $link . '&quot; target=&quot;_blank&quot;&gt;' . $img . '&lt;/a&gt;' . '&lt;/p&gt;';

}

add_shortcode(&quot;snap&quot;, &quot;wpr_snap&quot;);
</pre>
<p><span id="more-1624"></span></p>
<p>デフォルトのスクリーンショットサイズを変更したい場合は、&#8221;w&#8221;と&#8221;h&#8221;の値を書き換えます。</p>
<p>スクリーンショットを表示させたい場所に下記のショートコードを貼り付けます。</p>
<pre>
&#91;snap url="スナップ先URLを入力" link="リンク先URLを入力" alt="altを入力" w="横" h="縦"&#93;
</pre>
<p><strong>利用例</strong><br />
<img src="https://lh4.googleusercontent.com/-9m82Wxo_cyc/TwqqVTO80cI/AAAAAAAA1FQ/5w0h3Qerx0E/s400/120109-0002.png" alt="WordPress投稿画面での利用例" /><br />
url以外の項目は全て省略可能です。</p>
<p>以下のサイトのコードを参考にして、<br />
<a href="http://j.mp/wULWhU" target="_blank">どや!?いつか使うかも知れない簡単に出来るWordPressカスタマイズまとめ | デザインどや!?</a><br />
<p><a href="http://j.mp/wULWhU" target="_blank"><img src="http://s.wordpress.com/mshots/v1/http%3A%2F%2Fwww.doya-doya.com%2Fword-press%2F2011%2F08%2F19%2F7785?w=480&h=360" alt="どや!?いつか使うかも知れない簡単に出来るWordPressカスタマイズまとめ"/></a></p></p>
<div id="pukiwiki_content73" class="pukiwiki_content">
<ul class="list1" style="padding-left:16px;margin-left:16px">
<li>スクリーンショットのデフォルトサイズを変更</li>
<li>スクリーンショットにリンクを貼る</li>
<li>スクリーンショット先URLとは別にリンク先URLを指定できる(bitlyの短縮URLをリンク先に使いたかったので)</li>
</ul>
</div>
<p>の3点をカスタマイズさせて頂きました。</p>
<p>早速スクリーンショット付きでリンク貼ってみました。<br />
こんな感じで貼れます。ステキです。ありがとうございます。</p>
]]></content:encoded>
			<wfw:commentRss>http://tande.jp/lab/2012/01/1624/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://tande.jp/lab/2012/01/1624" />
	</item>
	</channel>
</rss>

