タグ

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

  • xcodebuild コマンドで iOS アプリの自動ビルド

    こんにちは、Monaca チームで iOS 周りの開発をしています、中川 (nhiroki) です。 今回は Monaca の裏側をちょこっとお見せするということで、iOS 版リモートビルドで使用している xcodebuild コマンドを紹介します。 (記事は Xcode を使った iOS アプリケーションの開発経験がある方向けの内容となっています。予めご了承ください) 一般的に iOS アプリケーションを作る時には Xcode と呼ばれる Mac OSX 開発環境を利用します。Xcode 上で Objective-C 言語を使ってプログラミングを行い、ビルドボタンを押すことでアプリケーションがビルドされます。 このように Xcode で開発からビルドまですべての操作が行えるため、逆に Xcode 上でないとアプリケーションのビルドや動作確認はできないと思われがちですが、実はコマンドライ

    xcodebuild コマンドで iOS アプリの自動ビルド
  • AngularJS 1.3のフォームまわりの機能強化

    こんにちは中川です。 先日、AngularJS 1.3 がリリースされましたね。 動作速度の改善や、メモリ消費量の削減などパフォーマンス面での改善もうれしいところですが、 機能的にはフォーム関連の機能強化が特にうれしく感じましたので、紹介したいと思います。 ■ ngModel.$validators https://docs.angularjs.org/api/ng/type/ngModel.NgModelController ngModel.$validators を使うと、独自のバリデーション関数を簡単に定義することができるようになりました。 以下の例のように、入力値を引数で受け取り、返り値で真偽値を返す関数を$validatorsオブジェクトに定義します。 $validatorsのキー(ここではvalidCharacters)が、エラーメッセージ表示時などの参照用に利用できます。 n

    AngularJS 1.3のフォームまわりの機能強化
    kitokitoki
    kitokitoki 2015/03/06
    sign up フォームのサンプル, form,acial,asial
  • nginxで認証用proxyサーバを作成

    今回作るシステムは、静的コンテンツを配信するサーバがすでにあり、 ・認証機構(ログイン画面)を追加 ・変更を最小限に抑えて開発 ・スケールアウトしやすい ・アクセス数が多いので、できるだけ処理を軽くする ことを目的とします。 この手のシステムは、既存システムに手を入れるのが普通ですが、既存システムでプログラムが動かないことには話になりません。 という事で、認証機構を追加したプロキシサーバを作成することで実現したいと思います。 仮に、PHPのみを使用して実装する場合は、下記のように出来ます。 ・ログイン画面はPHP ・rewriteでログイン画面系以外の全てのアクセスをindex.phpに向ける ・認証に失敗したらログイン画面にリダイレクト ・認証成功したら認証状態をセッションに記録(有効期限も記録) ・セッションはmemcacheなどで全サーバ共有 ・セッションの値が有効なときはコンテンツ

    nginxで認証用proxyサーバを作成
  • emacsを少し便利に使う設定

    /ssh:10.0.0.1: /ssh:www@10.0.0.1: ;もちろん、ユーザ名を入れることも出来ます あとはリモートサーバでemacsを開いたように使えます。 さらに、shell-commandもリモートに送ってくれる優れもの。 例えば、M-!で、php -l をしたらリモートのphpを実行してくれます。 さて、次に踏み台サーバを経由しないとアクセス出来ないサーバのファイルを編集する場合には、.emacsに下記のように追記すれば踏み台サーバも問題なく使えます。

    emacsを少し便利に使う設定
  • JavaScriptのクロスドメイン問題対応方法

    皆さん、こんにちは。笹亀です。 しばらく立て混んでいた関係でブログがかけませんでした。 久しぶりにブログを書かせていただきます。 JavaScriptでいろいろと実装しているとき、別ウィンドでページを呼び出し、その別ウィンドーと呼び出しウィンドー間にて通信を行うといったときによくクロスドメイン問題に悩まされます。 今回はそのようなクロスドメイン問題を解決する方法についてご紹介します。 そもそもクロスドメインとは、異なるドメイン間をまたがったデータに対してアクセスをすることをいいます。 Webアプリケーションを設置・公開するホストのドメインと、そのアプリケーションがアクセスするWebサービスのドメインが、サブドメインやポート番号も含め異なる場合は、JavaScriptなどでのデータのアクセスは遮断されます。 JavaScriptにてクロスドメイン間の通信をする場合には、JSONPを利用して行

    JavaScriptのクロスドメイン問題対応方法
  • エンジニアの英会話 〜とっさの一言〜

    「トラブルサム」でなく、「トラボーサム」と発音するのがポイント。 日語の発音だと、伝わりにくい、聞き取りにくい一例。 *「仕方ないね」 時には、上記のような複雑な実装をするしか無いときもあるでしょう。 そんなときはこう言います。

    エンジニアの英会話 〜とっさの一言〜
  • 使えるとちょっと便利な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
  • screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips

    ※ コメントをいただきましたので、一部文を修正させて頂きました。 1.サーバー・クライアントモデルというのはネットワーク接続なイメージになってしまいますので、取り外しました 2.mouse-utf8に関してコメントを頂いたので補足しました 3.タイトルを「screenの時代は終わり。tmuxでリモートコンソールを便利に使うTips」から「screenだけの時代は終わり。tmuxでリモートコンソールを便利に使うTips」に変更しました(変な誤解を受けられた方がいらっしゃったため) お久しぶりの田中です。最近、ずっと大型案件に携わっていた関係で、あまりブログ等でのアウトプットができていませんでした。これからはドンドン書いていきますので、どうぞよろしくお願いします。日はGNU screenと同様の機能を持つtmuxを紹介します。 GNU screenやtmuxは、1つのターミナル画面上に複数

    screen(だけ)の時代は終わり。tmuxでリモートコンソールを便利に使うTips
  • Google Chart Toolsを使ってサイトマップを描こう!

    <html> <head> <script type='text/javascript' src='https://www.google.com/jsapi'></script> <script type='text/javascript'> var chart; // visualizationを読み込む google.load('visualization', '1', {packages:['orgchart']}); google.setOnLoadCallback(drawChart); // チャートの設定と描画 function drawChart() { var data = new google.visualization.DataTable();  // ---(1-1) data.addColumn('string', 'Name');                

    Google Chart Toolsを使ってサイトマップを描こう!
  • Linuxでディスプレイに表示中のXに対してVNCする(X11VNC)

    ディスプレイに表示している内容をそのままVNCで表示できるVNCサーバです。 他のVNCサーバは、表示しているものとは別にXサーバを立ち上げることにより、複数人で使用できるようにします。 逆に言えば、物理ディスプレイに表示中の画面を拾うことができません。 これが利点であり欠点でもあります。 それを逆にしたものがX11VNCです。 表示中の画面が拾えるのが利点ですが、 例えば、会社PC(もちろんLinux)のlibreofficeでドキュメントを開いたままで帰ってしまい、自宅で編集できなくなってしまった場合(たまにありますよね) sshでログインして、kill発行して強制終了するなどの荒業もありますが、保存前のデータがなくなる可能性があります。 出来れば安全に保存して終了させたい・・・そんなときに役立ちます。 その他、 ・会社でIRCクライアントを開いたまま帰り、自宅でその内容を確認したい時

    Linuxでディスプレイに表示中のXに対してVNCする(X11VNC)
  • Gitを使い始めたらやっておきたい便利な設定いろいろ

    $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com" ■カラーリング git status や git diffなど、デフォルトでは味気ない文字がズラズラと画面に表示されますが、それを見やすいようにカラーリングすることができます。

    Gitを使い始めたらやっておきたい便利な設定いろいろ
  • ラーメン日記

    こんばんは。笹亀です。 今日は技術ネタではなく、久しぶりの日常ブログを書きたいと思います。 1週間に1度以上はラーメンべる生活をしております。会社が郷三丁目なので周辺のラーメン屋へいくことが多いのですが、既に郷三丁目のラーメン屋は、ほぼ制覇をしている気がします。 郷三丁目のラーメン屋であれば「初代けいすけ」「縄麺 男山」「らーめん雅ノ屋」辺りが個人的にお薦めな感じです。 個人的な感想 初代けいすけ 黒味噌ラーメンが話題のお店で変わった味噌ラーメンべたくなったときに行ってます。 縄麺 男山 べごたいのある太い自家製麺を使っているお店で、とてもべごたいがある。ぜひ打ち合わせなどがない日にニンニクを入れてべてみたい。 らーめん雅ノ屋 あっさりしたラーメンべたいときにいくお店で、塩ラーメン郷三丁目には無いのでここのをべに行きます。 以下は郷外の最近、写真に収めたお店

    ラーメン日記
    kitokitoki
    kitokitoki 2011/07/28
    今のところ、僕はロケタッチでつけめんTETSUのリーダーです
  • PHPの開発時になかなか使えるauto_prepend_file設定

    こんにちは、中川です。 PHPの開発を行っていると、自分の開発用だけの便利関数や、一時的な設定・各種パラメータの変更を行いたいなどあると思います。 そんな時に、実際のプロジェクトファイルに追加してしまうと、 番環境に誤ってそのままコミットしてしまったり、他の開発者にはゴミ扱いされたりとなかなか大変ではないでしょうか。 そんな時に便利な auto_prepend_file という設定をご紹介したいと思います。 PHPにはメインファイルの前に、自動的に付加するファイル名を指定する、 auto_prepend_fileという設定があります。 これを使えば、プロジェクト内のファイルには一切手を加えなくても、PHPで前処理を行うことができます。 ※なお、プログラムの後処理を加えたい場合は、auto_append_file という設定もあります。 設定自体は非常に簡単で、apacheのconfigフ

    PHPの開発時になかなか使えるauto_prepend_file設定
  • コマンドラインの引数解析を簡単に! : アシアルブログ

    皆さんはPHPでコマンドラインスクリプトを作成するとき、引数の解析はどうされてますか? 引数が単純であればargvをそのまま使うだけで十分ですが、オプションが多かったりすると結構面倒ですよね。 たまたまPHPプロ!Weekly PEAR リリース @ 08/08/05号でConsole_CommandLineという引数を解析するライブラリを見つけて使ってみたところ、なかなか便利だったのでご紹介したいと思います。 ちなみに、オプションの解析には、PHP標準のgetopt関数を使えば多少楽はできるのですが、 getopt.php

    コマンドラインの引数解析を簡単に! : アシアルブログ
  • http://blog.asial.co.jp/816

  • ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました

    このソースコードがPHPに与えられ、実行されるプロセスを図に表すと以下になります。 この図では実行プロセスが、字句解析、構文解析、VM用コードにコンパイル、VMによる実行、という四つのフェーズに大別されています。VMというのはVirtualMachine(仮想機械)のことで、PHPにおいてはZendEngineです。 以下ではこれらの個別のフェーズについて説明していきます。 字句解析 ソースコードをトークン(字句)のリストに切り分けるフェーズです。具体的にPHPのソースコードがどうトークンの列に分解されるかは、token_get_all()という関数を使って確かめられます。 <?php $tokens = token_get_all('<?php // helloworld.php echo "hello world";'); foreach ($tokens as $i => $toke

    ZendEngine勉強会で「拡張ライブラリでなるべく簡単に構文を追加する方法」というタイトルで喋ってきました
  • mb_eregで日本語検索すると・・

    <?php var_dump(mb_ereg("と", "タイトルイと2あああああ")); var_dump(mb_ereg("タイトル", "タイトル2あああああ")); var_dump(ereg("と", "タイトルイと2あああああ")); var_dump(ereg("タイトル", "タイトル2あああああ")); //全部trueだと思ってテスト ?> 「なんでereg関数だけがtrueなんだろうか?」 日語を使用しているので、 eregではなくやっぱりmb_eregを使ってパターンマッチさせたいと思いますよね・・・ 文字コードや日語問題で悩んだときに、必ず「日人を辞めたい」と思ってしまうのは僕だけでしょうか? さぁ・・気を取り直して問題解決のためにいろいろ調べておりました。 原因は簡単なことでした。 「mb_regex_encoding」でマルチバイト対応の正規表現を使用さ

    mb_eregで日本語検索すると・・
  • 以前のディスク状態に簡単に戻せるファイルシステム NILFS

    rpm -ivh kmod-nilfs-xen-2.0.20-4.2.6.18_194.el5.x86_64.rpm rpm -ihv nilfs-utils-2.0.20-4.x86_64.rpm カーネルのバージョンが2.6.30以上の場合は、nilfs-utilだけインストールすればOKです。 早速使ってみます。 今回、NILFS用にハードディスクを追加し、1つのパーティションを作りました。 これをNILFSでフォーマットします。

    以前のディスク状態に簡単に戻せるファイルシステム NILFS
  • PHPでセッション情報が作成されるタイミングを調べてみました

    皆さん、こんにちは。笹亀です。 MacBookAirの発表&発売やiPhone4の白の発売日が再々延期ということでいろいろな出来事がありました。白を待っていた自分にとっては残念なのと黒を買ってしまおうかと悩んでいます。 さて、日は今まで何気なくセッションを使用していましたが、実際にファイルベースのセッションのやりとりでファイルが作成されるタイミングはどこなんだろう?っと疑問に思い、実際にPHPのセッションの作成されるファイルの流れについて調べてみました。 日はその流れについてご紹介をさせていただきます。 PHPでセッションの情報の流れを調べるにはPHP体のソースをみるのもいいですが、手軽に確認するために「session_set_save_handler」関数で調べることにします。 ※所々にデバック確認用に出力しております。 <?php function open($save_path

    PHPでセッション情報が作成されるタイミングを調べてみました
  • PHPでリフレクション

    <?php // Entity/User.php namespace Entity; class User { private $name; private $gender; public function __construct($name, $gender) { $this->name = $name; $this->gender = $gender; } public function getName() { return $this->name; } private function getGender() { return $this->gender; } } 名前を保持するnameプロパティと、性別を保持するgenderプロパティを定義します。genderプロパティに対するゲッターメソッドはprivateにしてあります。 ■ ReflectionClass まずクラスの情報を抜

    PHPでリフレクション
    kitokitoki
    kitokitoki 2010/09/21
    リフレクション