信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    謎のエラーが消えない

    はーい。どうも。ぶーちゃんです。 技術ブログ・・・・なに書こうかなー。みんなかっこよくて書くのビクビクしています・・・・。   技術って訳じゃないけど、よくハマって「え?!なんで?」ってなることを思いついたので、 書いておきます。    新規で作る場合は、ほぼこの問題がおきないと思うんですが、既存のあるものに追加、変更を 繰り返していると、あとで「あー。なんだ。」って思うことがしばしば・・・。    こんなプログラム(ASP)をHTMLに書くとします。             最近はスマホサイトブームですからね。  新しく「ベース処理」と「アナタのキャリアはなんですの?」処理を追加  「スマホ処理」をガリガリ書いて、よし!完成!スマホでテスト実施!! 「はい。いきなりエラー。」「しってた。しってた。」  トライ&エラーの鬼の私には、いつものこと(普通の人はやらないですよねw) 「まあね。どこかやっちゃったんだろう。」ってスマホ処理.aspを見直します。  「あれ??ないなー。悪い事ないよな。頭は悪いけど・・・・って誰が頭が悪いじゃ!」 ね?寂しいでしょ? プログラマって独り言多くなると思うんですけど、どう思います? まあメンドくさいポイントとして、ASPをテキストエディタで書いてるからね。 eclipseとかでアシストしてくれて、コンパイルエラーなんて見つけてくれませんよ。・・・。 何回もデバッグ出力して、 「あれ?どこだろう?・・・・ってか何書いてもエラーになるんだけど?! サーバー壊れてんじゃね?」 はい。すみません。壊れてるのは私の頭です。。。。 問題は「スマホ処理.asp」じゃなくて、前からあった「PC&moble処理.asp」だったんです。 「PC&moble処理.asp」は、別に何も変えてません。触れてもいません。しかもif文。 けどエラーなんです。えーえー。ですからー。えー。 「PC&moble処理.asp」で「ベース.asp」をインクルードしてたんですねー。 2重定義ってやつですね。 PC&moble側の問題がスマホ側までエラーとして出ちゃうんですね。 いやー。最初に会った時は本当にビビりました。 if文でもコンパイル時はPC&moble側まで見るんですね。 かなり嵌りましたw とりえあず入れておけ。入れておけ。って精神だとダメって勉強しました。 ASPとかってインクルードって読み込んでるファイルを内部的に全展開してるだけだからですかね? なにかいい方法で回避出来ないですかねー。調べたんですがいい方法がなかったんですよね。 さわってない、触れてない、if文で括られてるからと言って、必ずしも大丈夫ではない。 確認することを忘れず、これからも作業していきたいってことですね! ってな感じで今回のブログを終了します。 ・・・・かなりおそまつでした・・・。ではまた。
  • テクログ

    [FuelPHP]ViewModelについて

    こんにちは。 先日Fuelの勉強会に参加したら「 家に帰ってブログを書くまでが勉強会です!」と言われてしまったので、今熱い!(?)FuelPHPのViewとViewModelについて。 フレームワークを利用している方ならMVCモデルに慣れ親しんでいると思うのですが、FuelではMVCにプラスして「ViewModel」というものを利用することができます。 Viewモデルとはなんぞや?ということですが、 ざっくりとこんなイメージです。 VMを利用するメリットですが、見ての通り、Controllerでは一切値を触らないので(VMに投げて、Modelから受け取るだけ)ソースがスッキリとまとまるという利点があります。 // contoroller function  action_index(){ $data = Model_XXXXX::find(XXXXXX); foreach($data) // viewにセットするための処理諸々(プルダウンのセットやチェックボックスの値挿入など) } } としていたものが、 // contoroller function action_index(){ $view = ViewModel::forge($viewName,'view',false); $this->template->content = View::forge('view',$data); } // ViewModel function view(){ $data = $this->data; foreach($data) // viewにセットするための処理諸々(プルダウンのセットやチェックボックスの値挿入など) } } のような感じになります。 これだけだと「分ける必要ないじゃん」って感じですが。。。 複雑な処理になればなるほど、contoroller側の記述がシンプルになっていくイメージです。 まだあまりサンプル例が紹介されていないので、これが正しい使い方なのかはいまいちよくわかっていません…。必ずしもVMを使う必要はないのですが、自分が悩んだ部分だったので健忘録代わりにメモしておきます。 FuelPHP、まだまだ発掘する部分が多くて楽しいフレームワークなので、興味のある方は触ってみるのもいいんじゃないでしょうか。
  • テクログ

    jQueryとJavaScript1

    ひょんなことから毎月1回の計5回にわたって 連載を行うことになりました。 連載内容(予定)ですが、jQueryやJavascriptについてを記載し、 最終回には、これまでの内容を駆使したちょっとしたゲームを作成する予定です。 今回はjQueryのセレクタについての豆知識を記載します。 まず、jQueryの構文です。 // 書式 $(セレクタ).メソッド(引数); // 例 $("div").text("あいうえお"); 次にセレクタの主な指定方法を記載します。 // 指定されたHTML要素 $("要素") // 指定されたid属性を持つ要素 $("#ID名") // 指定されたclass属性を持つHTML要素 $(".クラス名") // 要素1内にある要素2 $("要素1 要素2") // 要素1と要素2 $("要素1,要素2") 属性に関する指定もすることができます。 // 指定された属性が指定された値を持つ要素 $("[属性='値']") // 指定された属性が指定された値を持たない要素 $("[属性!='値']") // 指定された属性が指定された値で始まる要素 $("[属性^='値']") // 指定された属性が指定された値で終わる要素 $("[属性$='値']") // 指定された属性が指定された値を含んでいる要素 $("[属性*='値']") 特定の要素を取得したい場合は、下記のようなフィルタがあります。 // 指定された要素の最初の要素 $("要素:first") // 指定された要素の最後の要素 $("要素:last") // 指定された要素の偶数番目の要素 $("要素:even") // 指定された要素の奇数番目の要素 $("要素:odd") // 指定された要素の指定された番号の要素 $("要素:eq(番号)") // 指定された要素の指定された番号より前の要素 $("要素:lt(番号)") // 指定された要素の指定された番号より後の要素 $("要素:gt(番号)") いろいろな指定ができるセレクタですが、 パフォーマンスを考慮するのであれば、下記のように指定して下さい。 ●単一要素を取得する場合 ・ID指定できる場合は、ID指定にする。 $("#ID名") ・ID指定できない場合は、要素で絞り込んだ上で、クラス名や属性を付ける。 $("要素.クラス名") $("要素[属性='値']") ・クラス名だけでの指定はなるべく避ける。 $(".クラス名") // この指定方法は避ける ●複数要素を取得する場合 ・スペースで要素を絞り込むよりも、findメソッドを使用する。 $("#ID名 要素") // この指定方法は避ける // 下記のように指定する $("#ID名").find('要素') ●同一要素を使用する場合 ・要素を変数にして使用するか、メソッドを「.(ドット)」でつなげる メソッドチェーンを使用する。 $("セレクタ").メソッド1(); $("セレクタ").メソッド2(); $("セレクタ").メソッド3(); // この指定方法は避ける // 下記のように指定する var hoge = $("セレクタ"); hoge.メソッド1(); hoge.メソッド2(); hoge.メソッド3(); // メソッドチェーン $("セレクタ").メソッド1()             .メソッド2()             .メソッド3(); 次回からはゲームで使用するjQueryのメソッドについて記述したいと思います。 では、また来月お会いしましょう。。。
  • テクログ

    apache(XAMPP)のvhostsの設定について

    こんにちわ。パグ(▼・(エ)・▼)です。 まだ先だと思って油断してたら、投稿日になってしまいました・・・。 本日は、apacheから、バーチャルホストの設定方法を書いてみたいと思います。 ちなみに、実際のサーバーではもう少し細かく色々設定が 入ってきたりするので、あくまで、ローカルXAMPP上でのapacheの設定という前提をお忘れなく。 まず始めにパグの環境と、XAMPPバージョンは以下の通りです。 XAMPPインストール先ディレクトリ:Cドライブ直下 XAMPP 1.7.7 [PHP: 5.3.8] さて、バーチャルホストって何かというと、一つのサーバーに複数のホスト名(ドメイン名)を 割り当てて、複数サイトを管理・運営するための技術です。 XAMPPを入れた時に初期の設定では「localhost」と打ち込むか、XAMPPControlパネルから Apacheのadminボタンを押下すると、  こんな画面が表示されます・・・。 このXAMPP apacheに新しくWEBサイトを追加したいと思います。 じかにC:xampphtdocs配下に新しいプロジェクトを作成出来る人はよいのですが、 ecripsなどでSVNからファイルをとってきた場合、最初のディレクトリ構成が C:xampphtdocsプロジェクト名branshes C:xampphtdocsプロジェクト名tags C:xampphtdocsプロジェクト名trank 上記のように分かれていて、初期画面が更にtrankの下の下の下の・・・・ なんて深い階層になっている時があります。 新しくSVNから取得したこのサイトなんですが、トップページを表示させるためのURLが非常に複雑です。 実際の階層をみてみると・・・  C:xampphtdocsプロジェクト名trunksrcpublic このように、トップページがhtdocsのかなり下にあるのが分かります。 このままでも表示はされますが、都度、このURLを入力するのは面倒です。 「http://localhost」のように「http://test(任意の名前)」で表示できた方が便利だと思いませんか? そんな時に役立つのが、このバーチャルホストって技術です。 ではapacheの設定ファイルから変更していきます。XAMPPのC:xamppapacheconfextraというディレクトリ 配下にある「httpd-vhosts.conf」というファイルを開いてみてください。メモ帳やテキストエディタで開く事ができます。 インストール直後はこんな感じになってます。(以下) (上部省略) ##NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any  block. # ##     ##ServerAdmin postmaster@dummy-host.localhost     ##DocumentRoot "C:/xampp/htdocs/dummy-host.localhost"     ##ServerName dummy-host.localhost     ##ServerAlias www.dummy-host.localhost     ##ErrorLog "logs/dummy-host.localhost-error.log"     ##CustomLog "logs/dummy-host.localhost-access.log" combined ## ##     ##ServerAdmin postmaster@dummy-host2.localhost     ##DocumentRoot "C:/xampp/htdocs/dummy-host2.localhost"     ##ServerName dummy-host2.localhost     ##ServerAlias www.dummy-host2.localhost     ##ErrorLog "logs/dummy-host2.localhost-error.log"     ##CustomLog "logs/dummy-host2.localhost-access.log" combined ## お気付きかもしれませんが、##の部分はコメントアウトされており、有効になっていない状態です。 ここに、下記の通り設定を追加していきます。 NameVirtualHost *:80     DocumentRoot "C:/xampp/htdocs"     ServerName localhost     DocumentRoot "C:/xampp/htdocs/プロジェクト名/trunk/src/public"     ServerName test ではこれをブロック毎にみてゆきましょう。 NameVirtualHost *:80 ここで設定するためにみる、IPとポート番号を指定することができます。 上記の場合ですと、*(全部のIP)、80番ポートという意味になります。 勿論通常のサーバーでしたら、IPアドレス:ポート番号で指定することが可能です。 例えば「0.0.0.0:80」みたいな感じです。 よくわかんなーい!という人は上記の通り*全IPの80番を指定しましょう。 次に     DocumentRoot "C:/xampp/htdocs"     ServerName localhost これは元々表示されていた、xamppの管理画面をそのまま使うために必要な記述になります。 これを指定しないとxamppの管理画面が見れなくなってしまいます。 ここで指定している「」の「*:80」もIPアドレスとポート番号を意味しています。 DocumentRootは実際のファイルが設置してある場所を指定しましょう。 「C:」直下にXAMPPを入れた場合は上記と同様で良いでしょう。 次に     DocumentRoot "C:/xampp/htdocs/new_organic/trunk/src/public"     ServerName test(任意の名前) これが、先ほどの長いルートを短くまとめる箇所になります。 実際のファイルのトップページが配置されているルート。そして、servername に好きな名前を付けましょう。 さて、これでapacheのバーチャルホスト設定が完了致しました。 早速接続してみます。 これだけでは対象の画面を開く事ができません(´・ω・`)やだった・・・。 そうです、まだ設定が足りていないのです。 次はhostsの設定です。 C:WINDOWSsystem32driversetc の配下にある「hosts」というファイルをメモ帳やテキストエディタで開いてみましょう。 # Copyright (c) 1993-1999 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # #      102.54.94.97     rhino.acme.com          # source server #       38.25.63.10     x.acme.com              # x client host #127.0.0.1       localhost こんな具合になっているかと思います。ここに、 127.0.0.1 localhost 127.0.0.1 test 上記二行を追加します。hostsや、この127.0.0.1の意味を知らない人いるの!? やだあ・・・(´・ω・`)教えません!! 下記を読んでください。 http://ja.wikipedia.org/wiki/Hosts http://ja.wikipedia.org/wiki/Localhost あとは、ローカルループバックアドレスでググってみてください。良いサイトが見つかるかと思います。 これで設定完了です。XAMPPのapacheを再起動しましょう。 WebサーバはLINUXサーバーに乗っているときはコマンドでrestartさせるかと思いますが、 XAMPPはGUIから再起動がかけられるので非常に簡単ですね。 では接続してみます。  表示できましたので、これでOK!!ファイルを物理的に移動しなくても好きなドメイン名で サイトの表示が可能になりましたね。 一応XAMPP管理画面の表示も試してみましょう。問題なく表示されるかと思います。 バーチャルホストは便利で簡単だね!!これを活用して、色々なサイトをローカル環境で動かして見て下さい♪ ではでは、パグでしたぁ~ヽ(・∀・)ノばいばいぷぅ☆ミ
  • テクログ

    WindowsにLinux(CentOS)環境を構築する。Telnet接続まで。

    VMware Playerを用いて、Windows上にLinux(CentOS)環境を構築する手順を紹介します。この環境は、Linuxのコマンド練習や、実サーバにおける作業手順の事前確認に有効です。VMware Playerの詳細については、以下を参考にして下さい。http://ja.wikipedia.org/wiki/VMware尚、ローカルに限定された環境を想定している為、セキュリティについては考慮しません。(1)▼VMware Playerhttp://www.vmware.com/go/downloadplayer/今回は"VMware-player-5.0.0-812388.exe"(73MB)をDLしました。DL後、インストールを完了させて下さい。必要に応じてインストール先の変更やチェックボックスのON/OFFを行なって下さい。(2)▼CentOS(VMware Image)http://www.thoughtpolice.co.uk/vmware/今回は"32-bit: centos-6.2-i386-server.zip"(697MB)をDLしました。"web download"をクリックするとSourceForgeからDL出来ます。DL後、解凍して下さい。尚、誤操作でOSイメージが破損した場合等の為に、このzipファイルは、残しておいて下さい。(3)(1)でインストールしたVMware Playerを起動して下さい。"仮想マシンを開く" > (2)の"centos-6.2-i386-server.vmx"を選択 > "仮想マシンの再生"と進んで下さい。各ダイアログは、内容を読んで進めて下さい。"Choose a Tool" > "Firewall configuration" > "Run Tool" > スペースキー > "OK" > "Yes""Choose a Tool" > "Keyboard configuration" > "Run Tool" > "Japanese" > "OK""Choose a Tool" > "Quit"と進めて下さい。選択は、カーソルキーとエンターキーで行います。認証情報入力を促す表示がされたら、以下を入力して下さい。 localhost login: root password: thoughtpolice (2)のOSイメージがこのパスワードで初期化されているだけで、標準のパスワードということでは有りません。(4)rootのパスワードを変更します。 passwd 設定したいパスワードを2回入力します。(5)ユーザの作成(今回は、"admin"というユーザを作成します。) useradd admin passwd admin 設定したいパスワードを2回入力します。(6)telnetのインストールをします。 yum -y install telnet-server (7)/etc/xinetd.d/telnetの編集をします。 vi /etc/xinetd.d/telnet キーボードの"I"を押して下さい。disable = yesをdisable = noに変更して下さい。尚、カーソルキーで移動出来ます。変更できたら、"Esc"キーを押して下さい。続けて、":wq"と入力して、Enterキーを押して下さい。念の為、以下のコマンドで内容が正しいか確認して下さい。 more /etc/xinetd.d/telnet 以下のコマンドを実行して下さい。 /etc/init.d/xinetd start (8)好きなターミナルソフトでtelnet接続します。プロトコルはTelnet、ポートは23として下さい。接続先IPアドレスは以下のコマンドで確認できます。 ifconfig 以下の"inet addr:"に続くIPアドレスを接続先のIPアドレスとして下さい。(5)のユーザでログインして下さい。このOSイメージで、FTP設定、SSH設定、Apache + MySQL + PHPのインストール等、色々と確認が可能です。
  • テクログ

    スマホサイト制作で役立ったもの

    スマホサイトを制作する上で便利だなと思ったコード 備忘録として記録しておきます。少しでも参考になればと思います。   ・view port width=device-width...ウィンドウの横幅をデバイスの横幅(iPhoneの場合は320px)と指定 initial-scale=1 ... 表示倍率の初期値 maximum-scale=1 ... 表示倍率の最大値 user-scalable=no ... ユーザー側の操作で、拡大/縮小を出来るようにするかの可否   ・iphoneやAndroidのデフォルト設定を無効にする。 -webkit-appearance: none; ・iphoneのみCSSを適用する /* iphone.css */ @media screen and (max-device-width: 480px) {  #help_me { color: red;  } } スマホサイト制作を行う上で上記を知っておくとなにかと役に立ちそうです。 スマホサイトは今後も伸びていくと思われます。より多くの技術や役に立ちそうなコードがあれば 載せていきたいと思います。