postsWindowsの権限系がよく分からん・・・どこかのPCで使ってたHDDを取り出して、新しいPCで使う場合に、旧HDDに入っているWindowsディレクトリなんかが削除できない場合があったり、なかったり。所有権とかをイジっても削除できないので色々調べていたら、確実に削除できる方法を見つけた。/Tと入力すると、なんかダーっと表示された後に、ディレクトリが削除可能になる。commentgitサーバー構築(Androidアプリ用に作ってみた)バージョン管理システム「git」サーバーを構築したので、その備忘録。サーバー環境は外部公開用サーバー(OSはCentOS)で、固定IPにより運営しているサーバーとなります。/etc/xinetd.d/gitでgitファイルを編集する。–shared”を実行することで、そのディレクトリにリポジトリを作成するその後、作成されたファイルに権限を適切に付与してあげる。これだけでリポジトリが作成されます。ssh経由でgitとやりとししたいので、sshdがインストールされている事を確認してください。restartでsshdをインストールすること。これで、”ssh://USERNAME@SERVER_IP:SSHD_PORT/var/lib/git/git名”でgitを公開することができます。(ポートとかのセキュリティもチェックssh接続なので、ポート22を開放してください)次にAndroidStudioからgitへの新規ソースコード登録と更新手順について。1.プロジェクトを作成したい場合は新規にプロジェクトを作成する。Studio.idea/.gradle/*/local.properties/*/out/*/*/build/*/*/production*.iml*.iws*.ipr*~*.swp3.AndroidStudioで以下の操作を行う。repository(このとき、Projectツリーにして、プロジェクト名が選択されていることが望ましい)ルートディレクトリを選択する画面になるので、プロジェクトのルートディレクトリが選択されていることを確認する。DIrectoryを立て続けに選択するコメントを入れるダイアログが表示されるので、適当にコメントを入れてCommitボタンをクリック。--allこれで、Gitサーバーにソースコードが登録される。DirectoryとPushを駆使すればソースコードをサーバーにアップすることができる。アップされたソースコードから新規にAndroidStudioで開発を始めたい場合は以下の通り。Gradleというダイアログが表示されるOKボタンをクリック5.これで少し経つとソースコードをダウンロードし開発が始められるようになります。これでソース管理が楽になる。commentbootcampでMacにWindowsをインストールしてみました外での作業でも使えるような、それなりのスペックのノートパソコンを持ってないので、仕方なくMacBookAirにMacOSとWindowsを混在させて、どんな作業にでも即座に対応できるようにしました。(VPN接続とか、使い込んでいるテキストエディタとかはMacでは使えず、Windowsを使いたくなるときがあるので。)インストール作業はもの凄く簡単で、MacOSにbootcampというアイコンがあるので、それをクリックして、ドライバーCDを作成して、パーティションを切って、Windows7のCDを入れるだけで完了でした。パーティションを切るときに、いままで一度も使った事が無い領域でしか確保できない為、当初は45GBの容量を確保する予定でしたが、30GBしか切り出すことが出来ませんでした。(こうなってしまった場合は、TimeMachineを使ってデータのバックアップを取った後にOSのクリーンインストールを実施して、再度データを戻せば、その直後であれば空き領域から好きなだけWindowsに割り振ることが可能になります。・・・って、さらっと説明文が書いてあったけど、詳しい人じゃないと、そこまでやらんよなぁ・・・)で、optionキーを押しながらMacを起動すると、いちいちカッコいいブートセレクターが表示されます。ここで、Windowsを選択するだけで、憧れのWindowsがMacで動きます。Windowsインストール後には、Apache+PHPと、Java/Eclipse/Tomcatをインストールし、PHPかJavaなら即座に開発できるようにセットアップしておきました。これで、30GBの容量のうち20GBを消費しましたが。キー配置の違いから、一部使いにくい部分もありますが、ここまで動けば大助かりという感じで、これから重宝しそうです。commentHTML5のドラッグ&ドロップによるファイル保存HTML5ではドラッグ&ドロップでファイルをローカル環境にコピーすることができるようになりました。ネット上ではドラッグ&ドロップのサンプルをよく見かけるようになりましたが、固定ファイルのダウンロードのサンプルのみで、テキスト等を入力し、それをそのままテキストファイルとしてダウンロードするというサンプルが見当たらなかったので、自分で作成してみました。動作確認はChromeのみで行っており、Chromeは起動オプション(–allow-file-access-from-files)を付与してあげないと、ローカル環境への書き込みを行ってくれない点に注意してください。id="hoge"></div></body></html>dragstartイベントの定義内で”test.txt”とファイル名を指定している部分を動的にしてあげることで、ダウンロードするファイルのファイル名も自由に設定できます。自宅サーバ-で開発したアプリをレンタルサーバーにインストールしたところ、IEからjQuery.uploadで画像をアップロードする処理が正常に動作しないという現象に遭遇しました。不思議なことに、ChromeやFirefoxでは全く問題なく動作し、自宅サーバーに接続している限りはIEでも正常に動作します。アプリの概要としては、よくあるユーザー情報登録系の処理で、利用者の写真をアップロードする際に、画面を更新せずともアップした写真が反映される仕組みの為にjQuery.uploadを使っていました。この部分はライブラリ化されており、過去にも同じ仕組みを使ってプログラムを開発していたので、何が原因なのか分かりませんでした。IEのデバッガを使って調査してみると、handleData関数の最初の処理で躓いていることが分かりました。contents;}このような処理があり、正常時はここのreturnでサーバーから返却されたXMLがコールバック関数に戻されるようになっています。あるサーバーとIEを組み合わせると、このif文の条件に合致せず、その後処理となる戻ってきた文字列をXMLにパースするという処理に流れてしまっていることが判明しました。(このことから、jQuery.uploadでアップロード処理までは完了しており、その戻り値となるXMLが正常に取得できないということが判明)ここでパースされる文字列は、単純にサーバーから戻されたXML値が文字列になっているだけかと思ったのですが、それならXMLパース処理で正常にXMLに変換されエラーになることもありません。いうことで調べてみると、ここに渡される文字列は、XMLをIEで表示した際にIEが自動的に加工してしまうHTML形式になっていることも分かりました。HTML文字列なので、XMLパース処理は失敗となります。対応策として、HTML文字列となってしまったXMLから不要なタグを取り除き、XMLに戻してあげるしかありません。XMLに格納されてくる文字については、こちらが作成したサーバー側の処理で返却する文字列なので、特殊文字等は存在しないことが保障されているので、次のような対応を取りました。replaceAll(text,"-<","<");xml.loadXML(text);}また、上記処理で使うunescapeHTML関数も以下のように定義しました。'';}これによって、IEによってHTML化されたXMLを素のXMLに戻し、この文字列をXMLパースすることでXMLとして扱うことが出来るようになりました。結果は正常に動作しました・・・が、どうもしっくりこない結果に終わりました。そもそも、サーバが違う(細かく言えばPHPのマイナーバージョンが少し違う程度)でここまで違う動作をするもんかと・・・IE9に搭載されている非常に強力なデバッガのおかげで無事(?)解決することができましたが、いまだに少し疑問の残る結果とまりました。APIとADK」「HTML5とFLASHを比較する:Youtube動画を高速化するテクノロジー」に参加させて頂きました。最後にイグナイトに参加。初参加だったので、イグナイトって何だろう?って感じだったのですが、今までのマジメな内容で行われてきた内容から一転、笑いの起きる内容ばかりでとても楽しめました。DevQuizの回答では、「Google社員は全部解いてません」と普通に公表しちゃうあたりがとても面白かったです。いうことで、全体的に物凄く勉強になったイベントでした。地方でしがないプログラマーをやってる自分にとって最新技術に触れる機会というのはとても大切で、「新しい技術を使ってなんかしてやろう!」という気持ちになりました。GDDの参加者の皆様は基本的に同じような事を考えていると思うので、ライバルがいっぱいという感じですね。HTML5とAndroid4.0をメインにこれから勉強していこうと思いました。H」ですが、前から欲しかったもので、開封してこれが出てきた時には内心で凄く喜びました。Airのプレゼン時のマウスとして使っています。(HTML5のオフライン機能編)今回のGDDで一番聞きたかったセッションが、このHTML5のオフライン機能でした。WebStrageのプログラムを作ったばかりだったので、他のセッションよりも理解しやすかった内容でしたが、内容がいっぱいあった為、ついていくのに必死だった部分もあります。(今までにないサイトを作る:HTML5による最新ウェブアプリ編)超人気のセッションだったらしく、立ち見(とは言っても通訳席の前の空きスペースに無理やり座ってました・・・)での参加となりました。よって、このセッションのみ写真が一切ありません。HTML5の機能を中心に様々なデモを織り交ぜた、今回参加した中で一番面白かったセッションでもあります。/>ChromeAPpStoreの紹介などデモの数が多く、ソースコード等を全て理解できなかったのが残念ですが、このような技術があるということで色々と勉強になりました。デスクトップとブラウザのファイルドラッグ&ドロップを試してみたので、その結果はまた後日ブログにアップします。優れたユーザーエクスペリエンス編)Androidアプリは30万アプリ存在し、ダウンロード数の合計は80億を突破したという情報からセッションが開始しました。Androidアプリで成功するには「クオリティ」の一言につきるとのことで、利用者からのレビューや不具合報告に誠実に対応→ファンを獲得→ランキングで上位→レーティングでも有利になる→売り上げも上がる→健全な成功という構図になるのが望ましいとのことでした。一人でアプリを開発していると、このような基本的な事ですら実施できない事があったので、大いに反省させられる内容でした。次にAndroidアプリは「速度が出ること」「使いやすいこと」「美しいこと」「Androidらしいこと」「ユーザーの声を聞くこと」に注意して製作すべきということで、それぞれの内容について説明がありました。・アクションバーの右側は今の画面で利用できる機能のボタンなどを設定(メニュー含む)・アクションバーは画面サイズにしたがって色々と変化できる(スタックアクションバー・スプリットアクションバー)フラグメントについて広い画面(タブレットなど)・狭い画面(携帯)で同じ画面デザインを走らせる仕組み。広い画面では1つで表示されていたものが、狭い画面だと多画面となって表示される。画面の定義についてはアクティビティ単位で作るのではなく、フラグメントを利用することで移植性を高める。(タブレット対応を予定していなくても、フラグメントの仕組みは勉強しておくべき)よってアクティビティにソースコードは記述しないようにする。AppNavigation今までのAndroidは「戻る」機能しか存在しなかった。これは単純に時間順にどの画面を表示していたかを辿る機能でしかなかった。この仕組みのままでは複雑なアプリでは混乱してしまうことがあった。それを解消する為にAppNavigationを採用し、階層構造の上に移動できるような仕組みを提供した。4.0(ICS)は機能も増えたし対応機器も増えたけど、開発者はやることが多くなったなぁ・・・という印象でした。フラグメントは使いこなせれば便利な機能っぽいけど、実際に複数デバイスに対応した時のどんな感じになるのか不安もあります。SANDWICH(ICS)の話しが中心でした。3.0にすら触れたことが無いという状態だった為、一部の話しについては理解できなかった部分もありますが、ICSは非常に大きなバージョンアップということ位は理解できました。2.x時代と比べてメニューボタンの扱いが変更になる等、現在はAndroidの成長段階であり、今のところ当たり前と思っている機能についてもスッパリと切り捨てられてしまう危険性もあると思いました。ここらへんは、Windows3.1~WindowsXP位までの色々と変化があった状況に似ているかと思います。ICSの大きな機能追加は以下の通りです。Beam」になります。フラグメントについては、この後のセッション「Androidの優れたユーザーエクスペリエンス」で分かりやすく紹介されましたので、後日このブログでも紹介したいと思います。Beamは近くにあるAndroid端末同士が簡単に通信を行える仕組みで、デモとして、現在閲覧しているWEBページを、もう一台の端末にコピー(WEBページを紹介)するというものを紹介していました。(デモでは端末同士をくっつけていましたが、実際には数メートル程度であれば通信できるとのこと。応用できそうな技術だと思います。3.0もよく理解していなかったので、3.0搭載のタブレットを開発機として購入しないとなぁ・・・という感じになりました。WordPress.。