2014年1月16日木曜日

QNAPのNASが気になる

小規模店舗にNASを設置したくて探していたら見つけたのが「HS-210」

バッファローやIOデータにもいろいろと製品はあるのだが、HS-210がよさそうな理由は以下

・ファンレス
・2ベイ
・Qsyncという自分専用のクラウドストレージが簡単に構築できること
・Surveillance Stationで店舗のwebカメラの録画ができる、しかも2チャンネル分はライセンス購入不要
・サーバもWEB/FTP/VPN/プリンタ etc...

しかも、amazonで検索すると、48,000円程度!

tera Stationなどでwebカメラが録画できるようにライセンスを追加すると軽く10万円は超えるので、この価格は魅力!

とりあえず購入してみようと思っています。



2013年11月8日金曜日

WindowsXP SP3インストールでCPU使用率が100%になってしまう件

古いPCにWindowsXP SP3をインストールすると、CPUの利用率が100%になってしまいました。
タスクマネージで見てみるとsvchost.exeがCPUをバカ食い。

対応方法を調べてみると、MSのブログに記事があったので、これらのパッチを当ててみることに。



(原因)
本事象は「Internet Explorer の累積的なセキュリティ更新プログラム」の検出処理に起因しており、下記の 4 点において特に顕著であることが確認されております。

KB2846071(7月公開分)
KB2862772(8月公開分)

KB2870699(9月公開分)
http://technet.microsoft.com/ja-jp/security/bulletin/ms13-069

KB2879017(10月公開分)
http://technet.microsoft.com/ja-jp/security/bulletin/ms13-080

なお10月公開分は9月公開分のファイルを置き換えているようなので、実質10月分だけでよさそう。


CPU100%なので、svchostを無理やり終了させて、上記パッチをインストール


無事に現象は収まったようです。

めでたしめでたし。

2013年5月23日木曜日

codeigniterで日本語のquery_stringが文字化けするのに対応

codeigniterで開発していて、URLで日本語の文字列を渡すときに、文字化けが発生した。

機動戦士ガンダム ⇒ 機動戦士ガンダダ

いろいろなサイト
  • CodeIgniter リクエスト値を内部文字コードに変換処理

  • [Codeigniter-users] POSTが文字化け

  • などを参考にしてみたものの、なかなかうまくいかない・・・

    ということで、PHP base64をURLSafeにする方法を参考に、URLの文字列をbase64形式で変換してみました。

    尚、base64形式に変換した文字列には、「/」「+」「=」が浮くまれるため、URLにそのまま組み込むとおかしくなる。

    そこで、上記3文字については違う文字に変換することで対応した。


    【表示側contoroller】
    ① あらかじめ以下の関数をコントローラーに仕込む
     function base64_encode_safe($s){
      $s = base64_encode($s);
      return(str_replace(array('+','=','/'),array('_','-','.'),$s));
     }
     function base64_decode_safe($s){
      $s = (str_replace( array('_','-','.'), array('+','=','/'), $s));
      return(base64_decode($s));
     }
    

    ② 変換したい文字列を上記関数を通して変換
    $data['name']=$name;  //ここに日本語
     ↓
    $data['name']=$this->base64_encode_safe($name);
    

    ③ エンコードされたリンクを受け取る側
    $work=$name;
     ↓
    $work=base64_decode_safe($name);
    
    


    薫のHackさん、ありがとうございました!

    2012年8月29日水曜日

    raspberry pi とりあえず基本設定

    注文してから早3ヶ月が経とうとしたある日、1通のメールが届きました。
    「DHL Shipment Notification」と書かれたタイトルがワタシに「raspberry pi」の配達状況を知らせるものでした。

    届いた箱には待ちに待ったpiちゃん!



    同時に購入した専用ケースと一緒に早速セットアップを始めました。

    まずは必要なものを準備
    ・電源 microUSB TypeBで、5V 700mAが出力できるもの
    といっても、一般的なスマホの充電ケーブルで事足りましたので、予備のスマホ充電器を用意。
    ・SDカード 
    Raspberry Pi用のLinuxOSをインストールするのに最低2Gは必要なので、適当にその辺のSDカードを用意。
    (SDHCは未確認)
    ・USBキーボード・USBマウス
    ・HDMI-HDMI もしくは HDMI-DVIケーブル
    基本Xwindowは使わないつもりなので、セットアップ用にTVとHDDレコーダーをつないでいたHDMIケーブルを拝借
    ・LANケーブル

    以上が必要となります。

    ハードウエアの準備ができたところで、SDカードにOSをインストール。

    公式サイトのdownloadからOSイメージをダウンロードします。
    4種類あるようですが、まずはオススメの「Raspbian “wheezy”」をチョイス。

    <手順>
    1.ダウンロードしたファイル(tar.gz)を解凍するので、windowsならlhaplusなどで解凍しましょう。
    2.解凍してできたimgファイルをSDカードに書き込むため、ddを使用。

    (参考)
    公式に掲載されているWindows用のソフト Win32DiskImager
    DD for Windows

    3.書き込んだSDカードをpiに差し込んで、起動します(電源スイッチはないので、コンセントに差すw

    うまく行くと初期設定の画面が現れます。



    初期設定画面では、おおむね以下のように設定しました。
    1.expand_rootfs
    用意したSDカードは先頭から2GB程度しか使われていないので、カード全体を使用できるようにします。
    2.overscan
    画面の周囲が切れてしまう場合などに隙間を空けます。
    3.configure_keyboard
    キーボードを選択します。日本語キーボードを使用する場合はまず、Generic 105-key(Intl)PCを選択してJapanese - Japanese(OADG 109A)を選択します。
    4.change_pass
    初期登録されている「pi」ユーザーのパスワードを変更します。(デフォルトは「raspberry」のようです)
    5.change_locale
    ロケールの設定ですが、日本語フォントがインストールされていない初期状態では文字化けするようです。なのでとりあえずスキップ
    6.change_timezone
    日本時間に設定するのでAsia→Tokyo
    7.memory_split
    メモリの配分を変更できるようですが触っていません。
    8.ssh
    別PCからネットワーク越しに接続できるよう設定します。ワタシはpiをサーバ的に使おうと思っておりますので必須。
    9.boot_behaviour
    起動時にXデスクトップを表示する場合はyes。コマンド画面でいいならNoを選択します。
    10.update
    アップデートを取得する場合は選択します。


    これらの設定を行い、再起動すれば、見事起動してくれます!

    万一設定を変更したいという場合はコマンドラインで
    sudo raspi-config
    を打てば変更可能ですので、色々試して見ましょう。

    2012年8月1日水曜日

    google analyticsをおさらいする(アカウント作成編)

    webサイトを運用する上で欠かせないのがアクセス解析。

    有料・無料を問わず、様々なサービスやツールがありますが、やはりもっとも有名なのがGoogleAnalytics(以下GA)ではないでしょうか?
    GAの標準レポートだけを見ていてもいろいろとわかるのですが、突っ込んで調べてみると、もっといろいろなことがわかるはず!ということで、メモがてら実験を行ってみようと思います。

    基本的に初心者が独学でやってますので、ツマラナイ内容になりましたらごめんなさい(笑

    何はともあれまずはGAにアクセス!

    http://www.google.com/intl/ja/analytics/

    当然のことながらGoogleアカウントが必要ですので、あらかじめ作成しておいてください。




    「sign up」をクリックしてアカウントを作成します。


    入力するのは
    Account Name    ・・・アカウント名
    Website's URL   ・・・設置先のURL
    Time Zone     ・・・タイムゾーン
    Industry Category ・・・コンテンツのカテゴリ

    「Data Sharing Settings」ですが・・・よくわかりません(^^;
    ・With other Google products only ・・・AdWordsやAdSenseなどのgoogleのほかのサービスと連動させる場合にチェックをいれるようです。
    ・Anonymously with Google and others ・・・webサイトの指標を向上させるためのデータ取りができる?

    まぁ、そのあたりはおいおい勉強することとして、とりあえずは両方チェックを入れた状態で「Create Account」ボタンをクリックします。

    するとアカウントが作成されて、ホーム画面にアクセスできます。




    私の場合はなぜか、英語の画面でしたので、画面左上の「Settings」から「Language」を日本語にして「Save User Settings」を押して日本語画面にしました。

    2012年7月10日火曜日

    エレコムのキー投影型Bluetoothワイヤレスキーボード TK-PBL042BKを使ってみた。

    エレコムのキー投影型BluetoothワイヤレスキーボードTK-PBL042BK を使ってみました。



    特徴としては
    ・サイズは3cm×3cm×8cm程度でとてもコンパクト
    ・外装はプラスチックでつや消しブラック塗装(手触りサラサラ)
    ・背面には電源スイッチと充電用のUSBコネクタ、あとはリセットスイッチ

    ipadでセットアップしてみます。

    「設定」→「一般」から「Bluetooth」を選び、Bluetoothをオンにします。

    デバイスを検索し始めるので、TK-PBL042BK の電源を投入。

    画面に幅25cm程度のキーボードが表示されます(感動!)



    しばらく待つとipadの画面に機器名が表示されるので、タップ




    ダイアログに出てきた4ケタのPINコードをキーボードで入力すればセットアップ完了。

    キーを押すとピッ、ピッという音とともにサクサク入力ができます。

    感度もデフォルトでまったく問題なく、とっても気持ちいいです。


    設定できる項目としては

    ・音が気になったら[FN]+[↓]で無音にまで設定可能
    ・省電力モードにするには[FN]+[BACK]でライトの表示を消すこともできます。
    ・元に戻すときは、キーボードのある位置で3本指でタッチすれば、表示されます。


    iphoneなど画面の小さな機器や、普段キーボードをつけないサーバなど、ひとつあれば便利なこと間違いなし!



    是非お試しあれ!



    2012年7月5日木曜日

    Mac OSX 10.7 lion serverにmysql

    phpとくればmysqlでしょ、と思ったらMac OSX 10.7 Lionからpostgresに変わったようで、使うにはインストールが必要らしい。
    ということでmysqlをインストールしてみる。


    mysqlインストール

    まずはMySQLのサイトから最新版をダウンロード


    「MySQL Community Server」からMac用のアーカイブをダウンロードします。
    今回はDMG-Archiveをダウンロードしました。

    Lion用のMySQLは無いようですので、10.6用を使ってみます。


    インストールは「mysql-5-5.24-osx10.6-x86_64_pkg」をダブルクリックしてインストーラの指示通りにしていくだけで、特に入力することも無く、あっさり終了。

    あとは同パッケージ内の残りのファイル
    自動起動させるために「MySQLStartupItem.pkg」をダブルクリックしてインストール。
    システム環境設定にアイコンを表示させるのに「MySQL.prefPane」をダブルクリックして登録

    あとは開いたMySQLパネルで「Start MySQL Server」ボタンを押して起動完了!


    これでインストール作業は一旦終了。

    次は端末から簡単に操作ができるようにmysqlへパスを通します。
    これで
    /usr/local/mysql/bin/mysql -u root -p
    という長ったらしいコマンドを
    mysql -u root -p
    にしてくれます。


    vi ~/.bash_profile
    
    で ホームディレクトリの./bash_profileファイルを開き(無い場合は新規作成)
    export PATH=$PATH:/usr/local/mysql/bin
    
    と書いて「:wq!」コマンドで保存・終了
    source ~/.bash_profile
    
    でファイルを再読み込みします。

    うまく行けば、端末で
    
    mma:~ hoge$ mysql -v   ←こんな風に打てば
    
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 147
    Server version: 5.5.24 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Reading history-file /Users/hir/.mysql_history
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>   ←こんな風に表示されます。
    


    my.cnfの編集(文字コードをutf8に)


    Finderで「移動」→「フォルダへ移動」で
    /etc/local/mysql/support-files
    へ移動し、「my-○○○.cnf」ファイルの中から自分の環境に合わせたファイルを/etcにコピーして「my.cnf」とリネームします。(ワタシはとりあえずmy-small.cnfを選択)

    my.cnfをエディタで開き
    [mysqld]の最下行に
    skip-character-set-client-handshake
    character-set-server=utf8
    
    の2行を追加

    [mysqldump]と[mysql]に
    default-character-set=utf8
    

    をそれぞれ追加します。

    念のため「システム環境設定」→「mysql」でサーバを再起動します。


    rootパスワードの設定とログインテスト

    ターミナルで
    mma:~ hoge$mysqladmin -u root password パスワード
    
    でパスワードを設定し
    mma:~ hoge$mysql -u root -p
    
    で先ほど設定したパスワードでログインできるか確認します。


    PHPから接続できるようにphp.iniを設定


    MacOSX10.5あたりから、UNIXsocketの場所が変わっているようなのでphp.iniファイルを書き換えます。

    まずはUNIXsocketの場所を確認

    mysql -u root -p
    でログイン、プロンプトで
    「status」と入力します。

    ズラズラっと表示された情報の中からUNIX socket:を探して内容を覚えておきます。

    次に/etc内のphp.iniファイルを編集します。

    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/pdo_mysql.default-socket
    pdo_mysql.default_socket=/var/mysql/mysql.sock
    
    を
    
    pdo_mysql.default_socket=/tmp/mysql.sock
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/mysql.default-socket
    mysql.default_socket = /var/mysql/mysql.sock
    
    を
    
    mysql.default_socket = /tmp/mysql.sock
    
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/mysqli.default-socket
    mysqli.default_socket = /var/mysql/mysql.sock
    
    を
    
    mysqli.default_socket = /tmp/mysql.sock
    

    に変更します。

    これでいけるはず。
    最後にWEBサーバ(Apache)を再起動して動作確認。



    2012年7月3日火曜日

    Mac OSX 10.7 lion serverでサーバ

    macでサーバを立ててみようと思い立ってlion serverプレインストールのmac miniを購入。
    とりあえずサーバ用途なので、sshとwebを有効にしてみた。

    ssh有効化

    1.Serverパネルから、ハードウェア→mma(ワタシのmacの名前)を選択
    2.設定タブから「SSHによるリモートログインを許可」にチェック

    3.クライアント(windowsのteraterm)からログイン
    ユーザー名:macのsshユーザーのログイン名
    パスワード:なし
    「チャレンジレスポンス認証を使う」にチェック

    4.sshは有効になった。

    webの有効化

    1.Serverパネルから、サービス→Webを選択
    2.とりあえずデフォルト
    ドメイン名:*
    IPアドレス:任意
    ポート:80
    SSL証明書:なし
    サイトファイルの保存場所:Default
    アクセス可能なユーザ:全員
    追加ドメイン:(未設定)
    リダイレクト:(未設定)
    エイリアス:(未設定)
    ってな感じでとりあえず動作確認

    3.Safariのアドレスバーにhttp://localhost で「ようこそLionServerへ」の画面が出れば成功


    とりあえずポートスキャンして開いているポートの確認

    1024番以下のポートはこんな風になっていました。

    22:ssh Responseに「OpenSSH_5.6」の文字が・・・
    80:http
    88:Kerberos
    81:なんだろう
    311:asip-webadmin 保護されたサーバ管理のポート
    443:SSL(HTTPS)
    625:dec_dlm DirectoryService、Open Directory アシスタント、ワークグループマネージャ


    とりあえずポートスキャンが終わるのにまだ時間がかかりそうなので、続きは次回


    lionサーバ構築におすすめの本(Amazon)

    2012年6月30日土曜日

    macを買ってまず入れたフリーソフト

    「mac 設定」でググったサイトから厳選し、入れたソフト達
    基本的に有料ソフトは使わない方向で、やれるだけやってみようと思います。

    1.Onyx



    システムの細かな設定ができます。
    沢山あるけど、便利そうだなーと思ったのが以下

  • S.M.A.R.T.チェック
  • 起動ボリュームのチェック
  • アクセス権の修復
  • cronスクリプトの実行
  • キャッシュやログの消去
  • コマンドマニュアル(man)の参照
  • 自動処理
  • FinderやDock、Safariその他デフォルトインストールされているアプリの設定

    等々

    2.GoogleChrome


    言わずもがなですが、ブラウザの互換性の確認には必要ですよね。

    3.FireFox

    同じ

    4.Sophos Anti-Virus



    無料のアンチウィルスソフトウェア
    「Windowsに比べてシェアが少ない」とか「システムがUNIXベースなので作りにくい」などの理由から、Macを狙ったウイルスが圧倒的に少ないようですが、最近では徐々に増えてきているようです。
    特に有名なのがJavaの脆弱性を利用したMac OS X向けのトロイの木馬「Flashback」

    5.mi



    テキストエディタ
    mac標準のテキストエディタも悪くないのですが、手になじむエディタがなかなか見つかりません。

    いいものがあったら教えてください(笑)


    6.AppCleaner



    ソフト削除時にゴミ箱にドラッグするだけでは消えない関連ファイルも消してくれる(らしい)




  • 2012年6月29日金曜日

    Kindle Fireはまだですか

    米アマゾンで売れに売れているタブレット端末「Kindle Fire」
    199ドルという価格とアマゾンのクラウドサービスとの連携が人気なのだそう。

    有料(年額79ドル)の「Amazon Prime」の会員であれば、Kindle Fire上で1万本以上の映画やテレビ番組が見放題なんだそうです。

    そんな中、Amazon.co.jpがこんなバナー


    はたしてコレは「Kindle Fire」なのか、次世代マシンなのか。
    価格は?クラウドサービスは?
    と謎だらけですが、とりあえずお知らせメールを受信できるよう登録しておきます。

    Googleのタブレットや、モチロンiPadなど競争は激化中ですが、興味のある方は是非登録してみては?


    情報もっている方は是非教えてください(^^

    2012年6月25日月曜日

    html5の雛形(改版)

    html5を意識したhtmlファイルを書くときに便利になるかと思います。
    よろしければコピペしてお使いください^^

    次はリセットcssかな

    
    <!doctype html>
    <html>
    <head>
     <meta charset="utf-8" />
     <title>HTML 5</title>
     <!--[if IE]>
      <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
     <![endif]-->
    
     <style>
       article, aside, dialog, figure, footer, header,
       hgroup, menu, nav, section { display: block; }
     </style>
    </head>
    <body>
    <!--ヘッダ-->
    <header>
     <a href="#">html5ヘッダ</a>
    </header>
    <!--ナビ-->
    <nav>
     <ul>
     <li><a href="#">html5ヘッダ</a></li>
     <li><a href="#">html5ヘッダ</a></li>
     </ul>
    </nav>
    <!--メイン-->
    <section>
     <article>
      <h1>Article1</h1>
      <p>html5Body</p>
     </article>
    
      <article>
      <h1>Article1</h1>
      <p>html5Body</p>
     </article>
    </section>
    <!--フッタ-->
    <footer>
     <a href="#">html5フッタ</a>
    </footer>
    </body>
    </html>
    

    2012年6月18日月曜日

    linuxのメモリが足りているか確認するコマンドメモ

    まずはfreeコマンド
    「Swap:」のusedをチェック

    [root@hoge]# free
                 total       used       free     shared    buffers     cached
    Mem:       3089280    3074700      14580          0     974968    1044600
    -/+ buffers/cache:    1055132    2034148
    Swap:      2031608        108    2031500
    

    上記の例だと108KBしかSwapを使っていないので、事実上問題ない。


    次はvmstat
    si(swap in)とso(swap out)を確認。

    [root@hoge]# vmstat
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0    108  21896 971572 1041808    0    0   498   508    5    8  1  1 89  9  0
    

    両方とも0なので何の問題もない。

    2012年6月5日火曜日

    三項演算子ってなんかプロっぽい

    三項演算子はif~else文をとてもシンプルに、そしてプロっぽく書ける技!
    マスターするべし!

    (例)
    
    <script>
     var sex='';
     if (sex == '男性'){
      price=5000;
     } else {
      price=3000;
     }
    </script>
    

    これがこう書ける
    
    <script>
     var sex='';
     price = (sex == '男性') ? 5000 : 3000;
    </script>
    



    2012年6月4日月曜日

    javascriptの基本例文メモ(3)

    ・Blowser Object Model(BOM)
    ・Document Object Model(DOM)
    ・イベント処理
    ・タイマー処理

    
    <!DOCTYPE html>
    <html lang="ja">
    <head>
     <meta charset="UTF-8">
     <title>JavaScript</title>
    </head>
    <body>
     <h1>Javascriptの勉強</h1>
     <p>僕の名前は<span id="myName">@wknin</span>です!</p>
     <p>価格:<input type="text" id="price">円</p>
     <p><input type="button" value="クリック" id="myButton"></p>
     <script>
      //Browser Object Model (BOM)
      
      console.log(window.innerHeight); //ブラウザの高さ
      
      //window.location.href ="http://google.com"; //ページジャンプ
      
      //Document Object Model(DOM)
      
      console.log(document.width);
      document.body.bgColor='red';
      
      var e = document.getElementById('myName');
      e.innerHTML="わくにん";
      
      var n = document.getElementById('price');
      n.value=500;
      
      //event
      var t = document.getElementById('myButton');
      t.onclick = function(){
       alert("クリックされました");
      }
      
      //タイマー処理
      //setTimeout:一定時間後に何かする
      
      setTimeout(function(){
       console.log("2秒経ちました");
      },2000);
      
      
      //setInterval:一定周期ごとに何かする
      //とまらないので注意
      
      var i=0;
      setInterval(function(){
       console.log(i);
       i++;
      },1000);
     </script>
    </body>
    
    </html>
    

    javascriptの基本例文メモ(2)

    ・配列
    ・連想配列
    ・オブジェクト(文字列・日付・数学)

    
    <!DOCTYPE html>
    <html lang="ja">
    <head>
     <meta charset="UTF-8">
     <title>JavaScript</title>
    </head>
    <body>
    <h1>Javascriptの勉強</h1>
     <script>
      //配列
      
      var sales0=100;
      var sares1=200;
      var sares2=150;
      
      var sares=[100,200,150];
      
      console.log(sares[2]+sares[1]);
      
      
      //連想配列
      
      var sares={'year2000':100, 'year2001':200, 'year2002':150};
      console.log(sares['year2002']);
      
      
      //Javascriptオブジェクト
      //日付・数値・文字列
      
      var s = new String("this is a pen."); //new String()は省略可能
      
      console.log(s.length);  //プロパティ(属性)
      console.log(s.substr(2,2)); //3文字目から2文字
      console.log(s.replace("pen","pencil")); //置換
      
      //array
      
      //var a = new Array(12,33,44,55);
      var a = [12,33,44,55];
      
      console.log(a.join("|"));
      console.log(a.reverse());
    
      //Dateオブジェクト
      
      //var d = new Date(2012,5,22,7,44,5); //月:0~11
      
      var d = new Date();
      console.log(d.getMonth()); //メソッド(処理) ()がついてるかどうか
      console.log(d.getTime()); //ミリ秒 (計算に使うケースが多い)
      
      //Mathオブジェクト
      //プロパティ
      console.log(Math.PI);    //円周率
      console.log(Math.SQRT2); //2の平方根
      //メソッド
       var x=5.238;
      console.log(Math.floor(x)); //切捨て
      console.log(Math.ceil(x)); //切り上げ
      console.log(Math.round(x)); //四捨五入
      console.log(Math.random()); //ランダム
      
      
     </script>
    </body>
    
    </html>
    

    javascriptの基本例文メモ(1)

    ・変数
    ・演算子
    ・条件分岐(if/switch)
    ・ループ (while/for)
    ・関数

    
    <!DOCTYPE html>
    <html lang="ja">
    <head>
     <meta charset="UTF-8">
     <title>JavaScript</title>
    </head>
    <body>
    <h1>Javascriptの勉強</h1>
     <script>
      // 変数:データにつけるラベル
      // データ型
      var message = "Hello World, Again!"; //文字列
      var d1 = -5.5;
      var d2 = true; //boolean
      var d3 = undefined; //定義されていない
      var d4 = null; // なにもない
      //alert(message);
       //代入演算子
      var x = 5;
      //文字列に関する演算子
      var s="hello" + "world";
      
      // 数値に関する演算子
      var x = 5%5; //余り
      x += 5; //x = x + 1
      x++; // x = x + 1
      x--; // x = x - 1
      
      //条件分岐 (if)
      var score = 80;
      
      // == 同じ !=否定
      if (score >= 70){
       alert("合格!");
      } else if( score >= 30){
       alert("不合格!");
      } else {
       alert("最悪!");
      }
      
      //条件分(switch)
      var direction="right";
      switch(direction){
       case "right":
        x = x + 10;
        break;
       case "left":
        x = x - 10;
        break;
       case "up":
        y = y - 10;
        break;
       case "down":
        y += 10;
        break;
       default:
       //例外処理
        break;
      }
      
      //ループ(while)
      
      var i = 0;
      while(i < 10){
       console.log(i);
       i++;
      }
      
      //ループ (for)
      
      for(var j = 0; j < 10; j++){
       console.log(j)
      }
      
      //関数(aとbは引数
      function sum(a,b){
       return ( a + b );
      }
      
      var result = sum(50,33);
      
      alert(result);
      
      function getPrice(x){
       var rate=0.82; //rateは関数内だけで有効
       return (x * rate);
      }
      
      console.log(getPrice(83));
     </script>
    </body>
    
    </html>
    

    2012年5月29日火曜日

    jQuery Mobileでページを書くときの雛形

    雛形シリーズ第三弾「jQuery Mobile」

    <!DOCTYPE html> 
    <html> 
    <head> 
    <title>PageTitle</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    </head> 
    <body> 
    
    <div data-role="page">
    
    <div data-role="header">
    <h1>Title</h1>
    </div>
    
    <div data-role="content"> 
    <p>Hello world</p>  
    </div>
    </div>
    
    </body>
    </html>

    html5で書くときの雛形

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>HTML 5 complete</title>
    <!--[if IE]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <style>
      article, aside, dialog, figure, footer, header,
      hgroup, menu, nav, section { display: block; }
    </style>
    </head>
    <body>
    <p>Bodyだぜー</p>
    </body>
    </html>
    
    

    JQueryを使ったページを書くときの雛形

    よく使うのでメモ

    <html>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <body>
    <script>
    $(document).ready(function() {
     $('#test a').click(function(){
      $(this).text('hello');
     });
    });
    </script>
    <div id="test"><a href="#">クリックして!</a></div>
    </body>
    
    </html>
    
    

    2012年5月28日月曜日

    iPhoneの初期化

    パスワードを忘れてどうしようもなくなったiPhoneの初期化手順をメモ

    ① 電源を切る
    ② □ボタンを押しながら、USBケーブルでiTunesのインストールされているPCにつなぐ

    以上、記事というにはおこがましいですね・・・