一般的に「IT業界」のサービスはSNSやEコマース、WEBマーケティングなどの『インターネット・WEB業界』、システムインテグレーター(Sier)や携帯キャリア―などの通信を含む『情報処理・情報通信サービス業界』、OSやデータベース、パッケージソフトウェアなどを開発販売する『ソフトウェア業界』、サーバーやネットワーク機器の導入等を行う『ハードウェア業界』の4種類に分類されます。
このIT業界に属する会社を私はITサービス会社と呼んでおりまして、インドネシアにも同じようなITサービス会社が多数ありますが、近年のインターネット技術の急速な発展と普及により、優秀なIT人材を輩出することで知られているジャカルタのビヌス大学(BINUS)やバンドゥンのバンドゥン工科大学、インドネシアコンピューター大学(UNIKOM)の学生達は、多くが『インターネット・WEB業界』や『ソフトウェア業界』を志望するようです。
インドネシアの日系ITサービス会社としては、年平均5%程度で拡大する国内市場へ自社製品を売り込みたい日系企業向けの販促支援を行うWEBマーケティング会社や、所得が増え消費意欲が高まったインドネシア人中間層からの日本のインバウンド需要をSNSを通じて取り込むインターネット広告会社などが増えてきましたが、GoToグループのTokopediaやシンガポール系のLazadaやShopeeなど、巨大資本が群雄割拠するインドネシアeコマース市場には、2010年に進出し『Rakuten Belanja Online』のブランドで挑んだ日本の楽天でさえも事業拡大が難しく2016年に撤退しました。
2010年以降、日本のシステムインテグレーターの参入がありましたが、インドネシアの経済成長を後目に、国内での日系企業の存在感の低下と比例して、進出してくる日系製造業の数はさほど伸びていないため、弊社のような主に日系製造業様をターゲットにしたSierの数も目立って増えてはいません。
当ブログでは私と同じようにインドネシアに関わり合いを持って仕事をする人が、日常生活やビジネスの現場で出会うさまざまな事象のコンテキスト(背景)の理解の一助となるようなITサービスについての記事を書いています。
インドネシアの違法コピー事情とKMS認証の闇|海賊版の実態とマルウェア被害
ライセンス認証の種類は、PC1台ずつMicrosoftの認証サイトにライセンスのリクエストを出して認証を受けるMAK認証(Multiple Activation Key)と、PCがKMSホストという認証サーバーを経由してMicrosoftの認証サイトに接続するKMS認証(Key Management Service)があり、社内にサーバーを設置してまとめて更新できるKMS認証のほうがライセンス管理コストは低いです。
私がインドネシアに来た1997年頃に比べて大分改善されたとはいえ、いまだにインドネシアのソフトウェアの80%以上が違法コピーとも言われており、インストール時にライセンスの防御を解除するためのKMS認証クラックソフトを使用する際に、PCのアンチウィルスソフトをオフにする必要があるため、バックドア用のポートを開けて情報漏洩を企てるマルウェアの標的になりやすいと言われています。
コピーライト(Copyright)は著作権という意味であり、商品でもWEBサイトでも他人が作ったものを勝手にコピーしたら当然ながら違法になります。一方でオープンソースのフリーソフトウェアの場合は、コピーレフト(Copyleft)という全く価値観が異なる考え方に基づいており、「修正したソースとその派生物は、元のライセンスと同じ条件で配布しなければならない」という、むしろコピーして改変して配布することを前提としたものです。 インドネシアの違法コピー事情とKMS認証の闇|海賊版の実態とマルウェア被害 ライセンス認証には、PC1台ずつリクエストを出して認証を受けるMAK認証と、PCが認証サーバーを経由してMicrosoftの認証サイトに接続するKMS認証がありますが、インドネシアのソフトウェアの83%がクラックツールを利用した違法コピーです。 続きを見る
インドネシアのバックドア侵入と怨恨によるサイバー攻撃の実態|ZOOM不正アクセスから企業サーバー破壊まで
システムにバックドア(裏口)を仕込む動機は、所有者に気づかれないように不正アクセスを続けたり、サイトへの訪問者を特定のサイトへ不正リダイレクトで誘導するフィッシング詐欺であったり、サイトから不特定多数のメールアドレスにスパムメールを送り続けたりする愉快犯的目的というものが多く、弊社サイトも、テーマのどこかに不審な管理者ユーザーを生成するバックドアを仕込まれ、そのアカウントを通じてフッター領域のコピーライト表示部分に、ロシアの物販サイトにリダイレクトさせるフィッシング詐欺を目的としたJavascriptが埋め込まれたことがあります。
インドネシアでも2020年から2021年のコロナ禍で、オンライン上でのコミュニケーションツールや遠隔操作ツールを利用する機会が増えましたが、愉快犯による不正侵入の事例が数多く報道されています。
また日系企業の業務システムサーバーへの不正侵入のほとんどが元社員による怨恨が理由であり、アクセス履歴の管理や退職した社員のアカウントの削除など、基本的なITシステム運用手順の見直しが迫られています。
-
-
インドネシアのバックドア侵入と怨恨によるサイバー攻撃の実態|ZOOM不正アクセスから企業サーバー破壊まで
システムにバックドアを仕込まれる動機は、所有者に気づかれないように不正アクセスを続けたり、閲覧者を特定のサイトへ不正リダイレクトで誘導するフィッシング詐欺であったり、サイトから不特定多数のメールアドレスにスパムメールを送り続けたりするものです。
続きを見る
WordPressマルウェア感染の原因と復旧手順|テーマ改ざん・不正ユーザー追加・別タブ広告表示の対策
PCのOSの世界標準であるMicrosoft Windowsがウィルスの標的となるように、CMS(コンテンツマネージメントシステム)の60%を占めるWordPressもウィルスの標的となりやすく、対応するセキュリティプラグインの防御能力だけでは不完全です。
WordPressで構築したサイトならウィルスコードが埋め込まれる可能性のある場所はおおよそ以下のとおりになります。
- WordPress本体のファイル
- テーマファイル本体
- テーマ設定
- プラグイン本体
- プラグイン設定
- データベース(投稿・固定ページ)
管理フォルダ(wp-admin)にベーシック認証をかけたり、WAF(Web Application Firewall)によりスクリプトの実行等に制限をかけたほうがいいと思います。
-
-
WordPressマルウェア感染の原因と復旧手順|テーマ改ざん・不正ユーザー追加・別タブ広告表示の対策
マルウェアが埋め込まれる場所はWordPress本体、テーマファイル(本体・設定)、プラグイン(本体・設定)、データベース(投稿・固定ページ)であり、管理画面フォルダwp-adminにBasic認証をかけ、プラグインでセキュリティを強化する必要があります。
続きを見る
JSOX対応と内部統制強化|インドネシア現地法人のIT統制とシステム運用管理
「内部統制とは何か」とは「業務フローの承認機能を健全にコントロールすること」であり、これは「社内コンプライアンスを遵守させること」と同義と言えます。
財務諸表の適正性をチェックするには業務オペレーションの証拠である伝票のチェックが必要になりますが、膨大に蓄積した伝票をすべてチェックしていくのは大変であるため、基幹システムでデータが適正に流れているかどうかのチェックをすることで末端の伝票チェックをカバーできます。
それでいうデータが適正に流れるとは、システムの承認機能(Approval)がキチンと機能しているということであり、これを保証させるものがいわゆるIT業務処理統制にあたるものです。
-
-
JSOX対応と内部統制強化|インドネシア現地法人のIT統制とシステム運用管理
内部統制とは業務フローの承認機能を健全にコントロールすることであり、そのためにはシステム上で伝票が適切な承認機能の元で発行されているITコンプライアンスの順守の有無をチェックする必要があります。
続きを見る
FTPとSFTPの違いと公開鍵暗号化方式|SSH接続による安全なファイル転送と認証方法
FTPは旧来のパスワード認証方式ですが、SFTPはファイル転送に公開鍵暗号化方式(Public Key Encryption)によるOpenSSH (Open Secure Shell) を採用しています。
公開鍵暗号化方式によるSSH接続は、管理者が暗号化するための公開鍵(public key 南京錠のイメージ)と、復号化するための秘密鍵(private key 鍵のイメージ)を作成し、公開鍵をサーバーのOpenSSHに登録し、ログインを許可したユーザーに秘密鍵をパスフレーズで暗号化した上で渡し、秘密鍵を持ったユーザーはサーバーにアクセス要求します。
サーバーは乱数を生成しハッシュ値を計算し、公開鍵で暗号化した上でアクセス要求したユーザーに送信し、ユーザーはサーバーから送られてきた乱数を秘密鍵で復号化し、ハッシュ値を計算しサーバーに送信し、サーバーはハッシュ値が同じなら認証します。 FTPとSFTPの違いと公開鍵暗号化方式|SSH接続による安全なファイル転送と認証方法 公開鍵暗号化方式はクライアントがサーバーにアクセス要求し、サーバーは公開鍵で暗号化した乱数をクライアントに送信し、クライアントは事前に渡された秘密鍵をパスワードで復号化した上で乱数を復号化しハッシュ値をサーバに返し、サーバーは乱数のハッシュ値を比較して同じであれば認証します。 続きを見る
ジャカルタ世界一の渋滞と遠隔操作の必須機能|TeamViewer・WebEX比較と導入コスト
2020年から2021年にかけてのコロナ禍下のリモート会議システムとして世界中で利用されるようになったZOOMは、元々は代表的なWEB会議アプリケーションだったWebEXの中国系技術者が中心となって設立された会社です。
弊社も2020年4月にはブカシの労働局(DISNAKER)の指導に従い、オフィスを閉鎖し全社員在宅勤務に切り替えましたが、非対面型の仕事が増える中、もっとも活躍したITツールがWEB会議のZOOM、案件管理のMicrosoft Teams、そしてリモート接続のTeam Viewerでした。
遠隔操作はいわゆるリモートデスクトップのことで、遠隔地からコンピューターを操作するための仕組みですが、セキュリティ上インターネット公衆回線上に仮想的に専用トンネルを作り、外部からのアクセスが不可能な専用線で拠点間を結ぶのと同じことを実現するVPN(Virtual Private Network)とセットです。 ジャカルタ世界一の渋滞と遠隔操作の必須機能|TeamViewer・WebEX比較と導入コスト リモートコントロール機能(リモートデスクトップ)は画面上に相手先の画面をレンダリング(データを画素の集合として描画すること)する機能であり、表示品質と速度を最適化し、瞬断時にフリーズせずに前の状態から作業を再開させる機能が必要です。 続きを見る
データベース不要の差分管理と排他制御の仕組み|Evernote競合事例からGit・Asprovaまで
GitはLinuxカーネルのソースコード管理のためのリポジトリ(ソースコードやデータを管理する場所)のパッケージですが、今ではシステム開発全般のバージョン管理に汎用化されており、Gitのリポジトリによるソースコード管理サービスであるGithubやGitLabではバージョン管理にコピー・マージ方式を採用しています。
一方で差分管理システムでは、チェックアウト/チェックインでファイル本体を排他制御し、ダウンロード/アップロードでデータの差分管理をし、次のチェックインのタイミングでマージされるという仕組みです。
例えばAさんがファイルをチェックアウト(データにロックをかける)して作業している間に、Bさんが作業フォルダにファイルをダウンロードして作業してから、Aさんがチェックイン(データを保存しロック解除)したタイミングで、Bさんが作業後のファイルをアップロードすると、Bさんの修正分(差分)はtransactionフォルダに圧縮保存され、次に誰かがチェックインしたタイミングでファイルにマージされ、差分はhistoryフォルダに移動します。
ただし差分のマージはあくまでテーブルのキーを基準に行なうとはいえ、排他制御をかけるわけではないので、同一レコードを同時に複数端末から修正を行なう場合は上書きが起こるのはDBの排他制御と同じです。 データベース不要の差分管理と排他制御の仕組み|Evernote競合事例からGit・Asprovaまで データベースを使わない差分管理では、ファイル本体をチェックイン/チェックアウトで排他制御し、データをダウンロード/アップロードで差分管理し、次回のチェックインのタイミングでマージさせます。 続きを見る
Oracle vs SQLServer比較:機能・速度・ライセンス・インストール手順まで
「検索のOracle、更新のSQLServer」と言われますが、感覚的にはデータ量の多い大規模なシステムにはOracle、中堅どころの規模にはSQLServerが採用されるケースが多いようで、これはSQLServerはWindowsでしか使用できない一方で、OracleはUnix系サーバでも利用できるという汎用性の違いがも多少影響していると思います。
Windows ServerもDBもCAL(Client Access License)が必要になり、サーバー側で動くWEBアプリをクライアントから使う場合、クライアントはアプリとDBの両方使うのでWindows ServerのCALとDBのCALの両方必要ですが、サーバー側にあるDBをクライアント側にあるデスクトップアプリから利用する場合は、サーバーのDBに直接接続して利用しているだけなので、Windows ServerのCALは不要でDBのCALのみ必要になります。
-
-
Oracle vs SQLServer比較:機能・速度・ライセンス・インストール手順まで
SQLServerはWindowsサーバー上でしか使えませんが、OracleはLinux上でも使えるため、多くのインターネット上の巨大サービスのデータ管理で採用されてきた歴史があります。検索やSQL処理スピードは体感としてOracleのほうが快適に感じますが、管理ツールはSQLServerのほうが豊富で使いやすいです。
続きを見る
Windowsバッチファイルで自動更新を実装する方法|コマンド解説とサンプルコード
コンソールとターミナルの違いですが、Windowsのカーネルを操作するコマンドプロンプト(cmd.exe)はコンソールであり、メインフレームに直接繋げて直接操作するコンソール(CPUがないダム端末)と同じです。
インターネットの世界では、サーバーのほとんどがUnix/Linuxであり、シェルであるbashなどをWindows上のエミュレータとして操作するターミナルがTelnetであり、Unix/Linux(カーネル)に繋いでCUI(Character-based User Interface)で操作するためのものです。
Windows上でUnix/Linux 向けのソースコードを動かせるようにするエミュレーターとしてcygwinがあります。
Windowsのシステム環境変数Pathに、『set PATH=%PATH%;C:\Windows\System32』のようにコマンドを実行するプログラムのあるディレクトリを設定することで、コマンドプロンプトからフルパスを入れずコマンドのみで実行できます。
バッチファイルはその名のとおり、Windowsのシェル(コマンドプロンプト)で実行させたい処理を、まとめて呼び出して走らせるための、拡張子がbatのテキストファイルです。
-
-
Windowsバッチファイルで自動更新を実装する方法|コマンド解説とサンプルコード
ローカルWindows環境の外にあるインターネットの世界では、サーバーのほとんどがUNIXであり、TelnetなどWindowsで使える端末エミュレータ(ターミナル+シェル)は、UNIX(カーネル)に繋いでCUI(Character-based User Interface)ターミナル上で操作するためのものです。
続きを見る
SQLのLEFT JOINとINNER JOIN解説|外部結合・内部結合の違いと実務活用
業務システムの実績データを分析する際に外部結合LEFT JOINを使うケースが多いのは、『SELECT * FROM 実績テーブル A LEFT JOIN マスタ B ON A.品目コード=B.品目コード』または『SELECT * FROM 実績テーブル A,マスタ B WHERE A.品目コード=B.品目コード』のように、実績(左)に含まれない不足情報をマスタ(右)から追加する、というニーズが多いからで、この場合ON以下の結合条件はマスタ(右)のプライマリーキーであるはずで、外部結合結果のレコード件数は実績(左)と同じになり、実績のないマスタがレコードを作ることはありません。
外部結合(LEFT JOIN)は左のテーブルをすべて抽出し、これを基準にON結合条件で右のテーブルのキーをチェックし、合致するレコードを結合。よってキーが存在せず結合できなくてもレコードをNull値で追加し、キーが重複していればその分重複して結合され、レコード件数が増えます。
レコードが増えたら結合条件が不足しているか、マスタ(右)のキーが重複しているかのどちらかですが、ヘッダー(左)に対する明細(右)のような1対Nのテーブル同士を結合する場合は、外部結合結果のレコード件数はヘッダー(左)よりも多くなります。
-
-
SQLのLEFT JOINとINNER JOIN解説|外部結合・内部結合の違いと実務活用
LEFT JOINは左のテーブルをすべて抽出した上で、これを基準としてON以下の外部結合条件に合致すれば右テーブルのレコードを結合し、INNER JOINはWHEREと同じ完全内部結合であり、ON以下の内部結合条件が両方のテーブルに合致する場合のみレコードを結合します。
続きを見る
ストレージとCPUを接続するインターフェイスについて |ストレージエリアネットワーク
外付けHDDやストレージはUSBでPC(サーバー)に接続するが、NAS(Network Attached Storage)は文字通りネットワークに直接接続してIP通信を行い、NASの反対としてDAS(Direct Attached Storage)という言葉もあるようで、これはサーバー内部に直接設置された記憶装置、内臓HDDを指し、昔IBMメインフレームの仕事をしていた頃に、記憶装置のことをDASD(ダスド=直接アクセス記憶装置 Direct Access Storage Device)と呼んでいました。 ストレージとCPUを接続するインターフェイスについて |ストレージエリアネットワーク コストパフォーマンスと設置性の良さからインドネシアでもNAS(Network Attached Storage)を見る機会が増えてきた。外付けHDDやストレージはUSBでPC(サーバー)に接続するが、NASは文字通りネットワークに直接接続してIP通信を行う。 続きを見る
インドネシアでプロジェクターを購入する際の注意点
プロジェクターの投影方式(Projection)は現在ではDLP(Digital Light Processing)方式一択なので、注意すべきは解像度(Resolution)と明るさ(lumens ルーメン)で、セミナーや映画の上映会で使うのであればXGA(1024x768ピクセル=横にドットが1024個、縦に768個あるということ)よりも十分な画素のワイド画面のWXGA(1280x800ピクセル)が必要ですが、予算限定でプレゼン用のプロジェクターを買うのなら、画素よりも明るさを優先させるべきです。 インドネシアでプロジェクターを購入する際の注意点 プロジェクターの解像度(Resolution)はXGA(1024×768ピクセルなので1.333:1)、PCの解像度が1920x1080のワイド(1.777:1)である以上、若干横幅が圧縮されるので、PCの解像度を800x600(1.333:1)に変えると丁度よくなります。 続きを見る
Sentinelプロテクタードライバーを認識しない場合の対処法
SentinelはSafeNet社のソフトのライセンス保護のための製品で、プロテクトの方法としてハードウェア型(USBドングル)、ソフトウェア型、クラウド型の3種類があります。 Sentinelプロテクタードライバーを認識しない場合の対処法 センチネル(Sentinel)はSafeNet社のソフトのライセンス保護のための製品で、プロテクトの方法としてハードウェア型(USBドングル)、ソフトウェア型、クラウド型の3種類がありますが、ドライバーが正しくインストールされずPCのアプリケーション側から認識されないケースがあります。 続きを見る
UPS容量の見方と選び方ガイド|VA・W・力率の違いと計算方法
電気とは電子の動きで生じる働きの総称で、電力会社、PCの電力使用量、原発の発電量など単位は電力(W)です。
電力(Electric power)とは電流エネルギーの消費量ということになり、一般的には電流(Electric current)は電気とほぼ同意義で使用されていると思います。
- 電気の流れる量が電流で(Electric current)ありアンペア(A)で表す。
- 電流を流すには電圧(Voltage)が必要でボルト(V)で表す。電圧が強いほど遠くに電流を流せる。
- 電流のあるところ抵抗(Resistance)が発生しこれをオーム(Ω)で表す。
電圧(V)=電流(A)x抵抗(Ω)をオームの法則といい、物質に電流が流れるとジュール熱が発生しますが、Spot weldingはまさに電気抵抗熱を利用した溶接です。
UPSの容量の単位であるグロスの皮相電力(VA)に対してネットの消費電力(W)は6掛と覚えておくと、必要なUPSの容量を見積もれます。
- スポットウェルディングは電気抵抗熱を利用した溶接
電気の流れる量が電流で(Electric current)ありアンペア(A)で表す。
電流を流すには電圧(Voltage)が必要でボルト(V)で表す。電圧が強いほど遠くに電流を流せる。
UPSの単位である消費電力(W)を生み出す皮相電力(VA) - サーバー1台の使用電力は670Wなので2台で1370W、モニターを最大100Wとすると1470W。
- 消費電力(W)=皮相電力(VA)x力率(仕事をしない電流を考慮)なので1470÷0.6=2450VA
- 交流を直流に変換するのがコンバーター(AC/DC:整流器)
- その逆がインバーター(DC/AC:逆変換装置)で、インバーターは制御装置と組み合わせることで省エネルギー効果をもたらし、エアコンで室内負荷に応じた柔軟なコンプレッサーの運転をさせます。
- 直流電力を希望の直流電力に変換するDC/DCコンバーターをスイッチング電源(Switching Power Supply)と呼びます。
ちなみにインドネシアの電力会社PLNはVAの大きさで供給サービスをカテゴリ分けしており、我が家は2200VAなので供給可能電力は『2200VAx0.6=1320W』であり、リビングの電気をつけたまま寝室のエアコンとお風呂場の湯沸かし器を同時に使用するとブレーカーが落ちます。
インドネシア国営電力会社PLNやUPSメーカーなど供給側の電力容量は総量であるVAで提供される(例えば工場の設備は総量のVAベースで作らないと対応できないから)一方で、消費側の電化製品の電力消費量はWで表示されるので、6掛けしてから容量を見積もらないと間違うことになります。
-
-
UPS容量の見方と選び方ガイド|VA・W・力率の違いと計算方法
UPSの供給電力がグロスの皮相電力で表示される場合、おおよそ力率である6掛けの数字がネットの消費電力となり単位ワットで表現されます。電力は単位アンペアで表現される電流エネルギーの消費量と言えます。
続きを見る
周波数と通信速度の関係解説|3G・4G・5G・Wi-Fi規格の違い
電波や電磁波のスピードは光の速さと同じく30万km/秒(地球7周半)で、『周波数=1秒間の波の数』『波長=波の長さ』なので、『波長(1つの波の長さ)x周波数=30万km/秒』となり、周波数が高い(波の数が多い)ほど波長が短いので、同じスピードでもより多くの情報を送ることができます。
光も電波も電磁波(空間の電場と磁場の変化によって作られる波、電場の周りに磁場が発生する)の仲間で、周波数が大きいほど波長は短くなり通信速度は速くなり、モバイル通信の規格でみると『3G(3rd Generation)の周波数は700~900MHzの低帯域=数Mbps(1秒間に数Mビット)』『4G(4th Generation)の周波数は1.5~2GHzの高帯域=数十Mbps(1秒間に数十Mビット)』というように、低帯域の3Gののほうが障害物に強くより遠く届きます(短波放送は3,000~30,000kHzの低周波数帯で国際放送で使用)。
ADSL(Asymmetric Digital Subscriber Line)は、アナログ電話回線を使用する上り(アップリンク)と下り(ダウンリンク)の速度が非対称(Asymmetric)なデジタル有線通信で、通信インフラ劣悪なインドネシアでは、既存の電話線を使えるということで重宝されてきましたが、光ファイバーの設置やワイヤレス基地局の整備により、最近は少なくなりました。ちなみにAsymmetricは非対称、Asynchronous(アシンクロナス)は非同期です。 周波数と通信速度の関係解説|3G・4G・5G・Wi-Fi規格の違い 周波数とは1秒間に何回波が出来るかということで、振動の速さ=1秒間に何回振動するかになるため、無線データの通信速度は周波数の大きさに比例して速くなります。 続きを見る
ドメイン・DNS・サブドメイン解説|Googleメール移行からWordPressマルチサイト運用まで
WEBサイトを開設するためにホスティング会社と契約するということは、ドメイン取得を代行(URLを打ち込むとホスティング会社のルータのIPに飛ぶ)してもらい、サーバースペースも貸してもらってメールBOXも置かせてもらえるということです。
当サイトが契約しているXserverは、上位のDNSサーバーにドメイン名とXserverのルーターのローカルIPアドレスをマッピングし、ブラウザでbahtera.jpと打ち込めば、上位DNSのIPアドレスを元にXserverの所定のサーバーに繋がるルーターまで到達し、それ以降はXserver側でよろしくやってくれるということです。
ドメインの移管(転入)を行なう場合、まず移管先のホスティング会社と契約したら旧ホスティング会社からEPP key (AuthCode)を発行してもらい、これをもって上位DNS登録の変更を行なってもらいます。
XserverのDNSにはAレコード(ドメインのIPアドレス)、CNAMEレコード(サブドメイン作成に使用)、MXレコード(メール配信先サーバーIPアドレス)が登録され、Xserver内のそれぞれのサーバーのIPにマッピングされています。
社内LANで、クライアントPCをワークグループではなくドメインメンバーにすると、Windowsログインからドメインコントローラー(アクティブディレクトリ)によるユーザー管理に移行されるので、LAN上へのアクセスコントロールという観点からセキュリティレベルが格段に上がる。 ドメイン・DNS・サブドメイン解説|Googleメール移行からWordPressマルチサイト運用まで インターネット上のドメインは、DNSサーバー上にプロバイダのルーターのIPアドレスを人間が理解しやすい文字列にマッピングさせたものであり、LANの中でドメインの場合は、ドメインコントローラー上にサーバーのIPアドレスをユーザーとPCの大枠の管理単位でマッピングしたものです。 続きを見る
リピーター・モデム・ルーター・スイッチ(ブリッジ)・ハブの違いと役割|ネットワーク機器の基本と進化
ModemはModular(変調 アナログ→デジタル)とDemodular(復調 デジタル→アナログ)の頭をとってくっつけた造語であり、役割はダイアルアップとデータの変復調です。
ルーターはLANとLANを繋ぐこと、LANから別のLANまでのルーティング(道案内)が役割で、同一敷地内のLAN同士を結ぶ場合はローカルルーター、遠距離のLAN同士を結ぶ場合はリモートルーターと呼ばれ、モデムと異なり近距離であろうと遠距離であろうとデータ通信はすべてデジタルで行われTCP/IPというプロトコルを通して行われます。
リピータハブ(Unmanaged)はデータが接続されるすべての端末に送信しますが、スイッチングハブ(Managed)は宛先を判断して送信します。 リピーター・モデム・ルーター・スイッチ(ブリッジ)・ハブの違いと役割|ネットワーク機器の基本と進化 ModemはModular(変調 アナログ→デジタル)とDemodular(復調 デジタル→アナログ)の頭をとってくっつけた造語であり、役割はダイアルアップとデータの変復調です。 続きを見る
MikrotikルーターとDDNSで監視カメラ映像を遠隔配信|インドネシア税関対応の構築方法
監視カメラの映像をインターネット経由で配信するには、デジタルビデオレコーダー(DVR=Digital Video Recorder)を導入しますが、そこにはカメラの台数分のチャンネル(入力端子)と、社内モニター用の出力端子1個と、インターネット配信用にLANケーブルの出力インターフェイス(RJ-45)が必要です。
監視カメラの映像をインターネット上から見られるようにする(配信する)には、固定IPに監視カメラの出力ポート番号を指定する必要がありますが、プロバイダ側のルーターにポート番号を利用可能に設定(ポートを開けてもらう)します。
社内側のルーターにMikrotik社のルータを使えばアメリカのRethem Hosting社のDDNS(Dynamic Domain Name System)サービスを無料で利用できるので、Mikrotikのルーターの社内IPにグローバルIPを動的に割り当てedns.bizというドメインのサブドメインで配信できます。
-
-
MikrotikルーターとDDNSで監視カメラ映像を遠隔配信|インドネシア税関対応の構築方法
監視カメラの映像をインターネット経由で配信するためにMicrotikのルーターを購入し、アメリカのRethem Hosting社が提供するDDNSサービスで、edns.bizというドメインに設定したサブドメインを、Mikrotikのルータに動的に割り当てられるグローバルIPに変換します。
続きを見る
WordPressで業務系システムは可能か?参照系との違い・MVC構造・カスタム投稿タイプ
マスタとその管理画面が多く、取引データが複数機能に渡って継続的に利用され、データ更新のSQL文が複雑になる業務系(更新系)のプラットフォームとしてWordPressは不向きで、その逆の性格を持つ情報系(参照系)向きと言えます。
フロントエンド開発を「ユーザーに見える部分の開発」、バックエンド開発を「ユーザーに見えない裏方処理の開発」と定義すれば、WEBサイト全体はフロントエンド(View)で入力されたデータが、バックエンドで処理(Controller)されて、データベースに格納(Model)されるという動きをします。
WordPressはテーマ(View)とコアシステム&拡張機能プラグイン(Controller)とMySQLが独立して機能するという意味で、MVCモデルのような動きをすると言えますが、MVCフレームワークではないのでWordPressをインストールしたディレクトリやテーマフォルダの中に、viewとかcontrollerとかmodelというフォルダは存在しません。 WordPressで業務系システムは可能か?参照系との違い・MVC構造・カスタム投稿タイプ 投稿される情報をユーザー単位に時系列に保存し、「会計システム」「インドネシアの税法」というようなカテゴリ、または「PPN」「WordPress」というようなタグ単位にフィルタして表示できるのがWordpressの最大の強みであり、これらカテゴリやタグなどの投稿記事の切り口(分類)をタクソノミーと呼んでいます。 続きを見る
WordPress企業サイト開発|テーマ構成・テンプレート階層・タグ活用・CSS装飾まで
テーマのテンプレートファイルは、PHPファイルとスタイルシートから構成され、「wp-content/themes」内のテーマフォルダに格納されますが、テーマ用のPHPファイルの中に、1人だけ拡張テーマ関数を集めたfunctions.phpという色違いが居り、これがwp-includes内の関数ファイルと同様に、自動的にWordPressの初期化中にロードされ、WordPressの拡張インターフェイスのような機能を果たします。
すべてのテーマテンプレートの階層の最下位に、最大公約数的記述をするindex.phpがあり、テーマフォルダ直下に最低限index.phpとstyle.cssの2つが存在していればテーマとして成立するわけで、テンプレートファイルをカスタマイズする場合は、子テーマフォルダ内に同名でコピーしたファイルをカスタマイズすることにより、先に読み込まれる親テーマのテンプレートファイルを、後に読み込まれる子テーマのテンプレートファイルが上書きします。 WordPress企業サイト開発|テーマ構成・テンプレート階層・タグ活用・CSS装飾まで WordPressを使った企業サイト開発のためには、テーマを構成するテンプレートファイルの構成、ページを構築するHTMLタグの書き方、テーマの中で使用される関数の分類、そしてテーマの見た目を装飾するスタイルシートの書き方についての理解が必要になります。 続きを見る
WordPressプラグイン開発|アクションフックとフィルターフックで本文文字列を置換
AsprovaでCOMインターフェイスを用いてカスタマイズする場合、Standard EXE(オートメーションクライアント)はAsprovaの関数を任意のタイミングで呼び出しますが、DLL(プラグイン)はAsprova起動時にロードされ、AsDefaultクラスのAutoRegistration関数に、プラグインキー(アクセスポイント)に対応するフックとエントリ関数をマッピングすることで、Asprovaのアクセスポイントのタイミングでフックされることでイベントが発生し、フックされ呼び出されエントリ関数を実行するイベントドリブン型です。
同様にWordPress本体(コアシステム)のロジック内に、do_actionとかapply_filterとかいうキーが仕込んであるので、開発するプラグイン関数の中に、キーと紐付けするためのadd_actionとかadd_filterという命令を記述することで、ロジックが実行され動作するときには必ずアクションが起動され、出力がされる時には必ずフィルターが起動されます。 WordPressプラグイン開発|アクションフックとフィルターフックで本文文字列を置換 ここでは通常のクライアントアプリのプラグイン開発と比較した上で、WordPress投稿本文中の「おはよう」という文字列を「Selamt pagi!」に変換する簡単なWordPressプラグインを作ってみます。 続きを見る
WordPress商品カタログの作り方|カスタム投稿タイプとタクソノミーで効率管理
「投稿(post)」で標準で利用できるカテゴリとタグという2つのタクソノミを使って、全商品ページで必要になる共通の情報は、管理画面の投稿画面からタイトルやコンテンツと同じように、共通情報用の入力フィールドをカスタムフィールドで追加することも可能で、その場合は投稿記事のメインクエリ内の日付や著者を削除して、本文欄に商品情報を配置していくことになりますが、膨大な作業負荷がかかりそうです。
それでコンテンツ作成を「投稿(post)」「固定ページ(page)」とは違う第三の投稿タイプ「商品(post_type)」として、カスタム投稿タイプとカスタムタクソノミーで定義できまので、第三の投稿タイプ「商品カタログ」、その中に価格・サイズなどをカスタムタクソノミとして定義します。 WordPress商品カタログの作り方|カスタム投稿タイプとタクソノミーで効率管理 商品ページは投稿記事の入力画面に、共通情報用の入力フィールドをカスタムフィールドで追加し、「投稿」というタイトルを「商品登録」に変えて作成することもできますが、WordPressはコンテンツ作成を「投稿(post)」「固定ページ(page)」とは違う第三の投稿タイプ「商品(post_type)」として定義できます。 続きを見る
WordPressの起動1|テンプレートファイルの構成
WordPressは起動時の最初に、データベースやfunctions.phpの情報を読み込み環境設定を行い、URLのクエリ文字列を使用してページの種類を判断し、あてはまるテンプレートファイルを、テンプレート階層に従って優先度の高い順に探し、パラメータに応じたSQL文を組み立て記事を取得し、WEBページとしてレンダリングします。
-
-
WordPressの起動1|テンプレートファイルの構成
WordPressはURLのクエリ文字列を使用して、ページの表示に使用するテンプレートファイルが見つかるまでテンプレート階層を検索し、複数のテンプレートの中から優先順位が高いものを選択します。
続きを見る
WordPressの起動2|読み込まれるコアファイルの順番
WordPressがURLクエリストリングを処理しテーマを表示するまでの動きとしては、まずエントリポイントであるindex.phpからインクルードされるwp-blog-header.phpがすべての基点になり、wp-load.phpで環境設定、wp-config.phpでDB接続情報、wp-settings.phpでWordPress初期設定のコアをロードし、template-loader.phpでテンプレートが選択されます。 WordPressの起動2|読み込まれるコアファイルの順番 index.phpはWordPressのエントリーポイントでwp-blog-header.phpを通して環境設定ファイルwp-load.phpを呼びwp-config.phpの中でDB接続情報を読み込み、WordPressメイン関数を実行実行してtemplate-loader.phpの中でテンプレートを選択します。 続きを見る
WordPressの起動3|WP_Queryクラスのカスタマイズ
WordPressはURLクエリストリングに適合したテンプレートをテンプレート階層に従って選択し、WP_Queryクラスのメインループが$wp_queryインスタンスからquery_posts()メソッドを実行し、wp_postsテーブルなどから該当する投稿データを取得し、グローバル変数$postsに格納し、have_posts()で$wp_query内にデータが確認できる間は、the_posts()で投稿を、the_title()でタイトルを取得し表示し続けます。 WordPressの起動3|WP_Queryクラスのカスタマイズ WP_Queryのメインループは$wp_queryインスタンスからメソッドを実行し該当する投稿データを取得しますが、サブループ(カスタムループ)を作る場合には別途$wp_query2のようなインスタンスを生成する必要があります。 続きを見る
HTML要素と属性の違い|CSS・jQueryセレクタの仕組みと実践例
要素は「物・事を成り立たせるもとであるそれ以上は簡単なものに分析できないもの」という、これ以上分解できない絶対的な単位であり、システムは人間の言葉をそのままでは理解できないので、理解できるようにタグを付けて範囲を明確にしてあげた後のカタマリを要素と考えます(要素=HTMLタグ)。
人間世界でプロパティ(属性)という言葉は「土地・資産・所有物」という意味であり、世の中のすべてのオブジェクトは属性を持っています。システムの世界の属性はオブジェクトが持つ「特徴・性質」という意味であり、HTML要素内の属性(id, classなど)はDOMオブジェクトのプロパティに割り当てられます(属性=idやclass)。
セレクタはWEB上のオブジェクトに対して、装飾(CSSにてプロパティに値を設定)したり処理を実行(メソッドやイベント)したりするための仲介役ですが、セレクタになる資格のあるものはHTML要素またはHTML属性です(セレクタ=HTML要素またはHTML属性)。
配列はお年玉用のルピア紙幣の入った封筒を束ねたものであり、封筒に連番が振ってあれば通常配列、渡す相手の名前が書いてあれば連想配列となります。要素はこの場合のルピア紙幣の入った封筒全体であり、ルピア紙幣が値、封筒に振ってあるのが連番ならインデックス、相手の名前ならキーとなります。
封筒からルピア紙幣を出した後の相手の名前付きの空の封筒をプロパティと考えると、入れるものはルピア紙幣に限る必要はなく、車のキーでも手紙でもいいわけです。
航空券が入っている場合は、「スカルノハッタ空港からバリ島に飛ぶ」というアクションを約束するものですので、航空券は関数リテラルという値であると考えられ、この場合は別の封筒には名義人の名前を入れておきます(参照渡し)。
-
-
HTML要素と属性の違い|CSS・jQueryセレクタの仕組みと実践例
人間世界で要素という言葉は「物・事を成り立たせるもとであるそれ以上は簡単なものに分析できないもの」というこれ以上分解できない絶対的な単位という意味がありますが、一方システムは人間の言葉をそのままでは理解できないので、理解できるようにタグを付けて範囲を明確にしてあげた後のカタマリを要素と考えます。
続きを見る
HTML要素と属性の基本とCSSカスケード効果
ページ定義タグは、HTMLをメタデータ部(html・head)とコンテンツ部(body)に分けるためのもので、コンテンツ部(body)に対してHTML5で標準装備されている構造化タグ(header, nav, article, aside, footer)でWEBサイト全体を「ヘッダー領域」「ナビゲーション領域」「コンテンツ領域」「サイドバー領域」「フッター領域」の5つに区切ってレイアウトし、コンテンツの意味のカタマリはdivタグにid属性やclass属性で定義するのが基本です。
- HTML
タグ(要素)単位でコンテンツに意味付けし、ブラウザのDOMによりオブジェクト化され、JavaScriptから操作される。 - CSS
HTMLの要素や属性をセレクタというオブジェクトとして扱い、プロパティに値をセットすることで装飾。 - PHP
ブラウザから受け取った要求をサーバー側処理して結果をブラウザにhtmlとして返す。 - JavaScript
ブラウザに内蔵されたスクリプト言語であり、イベントに応じて関数を実行したりDOMを通してWEBサイトの表示を変化させたりする。 - jQuery+jQuery Easy UI
JavaScriptで頻繁に使う関数のライブラリで、セレクタのcssに値セット、サイト構築後に関数実行、エレメントの追加、オブジェクトのプロパティに値セットなどの機能がある。
ブラウザはHTMLの開始タグから終了タグまでを、1つのDOM(Document Object Model=CSSやJavascriptに対するAPI)オブジェクトとして要素化(エレメント化)し、DOMはJavaScriptやjQueryからエレメントにアクセスするために、Nodeインターフェイスを提供します。
-
-
HTML要素と属性の基本とCSSカスケード効果
WEBシステム開発とは何かと問われた場合の最大公約数的答えは、多少くどい言い方にはなりますが、ブラウザからの要求をサーバー側で処理したHTMLを、ブラウザが受け取ってスクリプトを実行した結果をレンダリングしてWEBサイトという形で表示する過程を構築することになります。
続きを見る
HTTPプロトコルのGETとPOST|文字化け防止とjQuery Ajax活用法
ブラウザとWEBサーバー間のデータ通信であるHTTPプロトコルはOSI参照モデルのセッション層に属しており、ブラウザ上のHTMLフォームに入力したデータをサーバーに引き継ぐGETメソッドとPOSTメソッドもHTTPプロトコルに定義されています。
ブラウザの役割は、ユーザーが要求したURLのリソースをサーバーに要求して、ブラウザウィンドウに表示(レンダリング)することですが、内部では以下の2つを行なっています。
- HTMLを読み込むことでDOMを生成
- JavaScriptやjQueryがプログラムからDOMにアクセスできるようにNodeインターフェイスを提供
nodeインターフェイスを通してアクセスできるDOMの最上位オブジェクト(エレメント)は、html開始タグ<html>とhtml終了タグ</html>から生成されるdocumentオブジェクトです。
Google検索などのGETはフォームに入力したデータを元ににサーバーから情報を取得することに重きを置いており、URLの後ろに「?」で始まり、「=」で結ばれた名前と値を「&」で連結したクエリ文字列によってデータを引き継ぎますが、POSTはフォームのデータを投稿することに重きを置いており、WordPressの新規投稿はPOSTになります。
-
-
HTTPプロトコルのGETとPOST|文字化け防止とjQuery Ajax活用法
jQueryはDOM(Document Object Model)を操作するためにJavaScriptを元に設計されたJavaScriptの拡張ライブラリで、nodeインターフェイスを通してアクセスできるDOMの最上位オブジェクト(エレメント)は、html開始タグ<html>とhtml終了タグ</html>から生成されるdocumentオブジェクトです。
続きを見る
.htaccessとApacheディレクティブ|Basic認証・mod_rewrite・HTTP通信の仕組みと設定方法
HTTP通信はクライアントからのリクエストに対して、Apacheサーバーがレスポンスを返すことで成立し、PHPではクライアントからのリクエストヘッダは$_SERVERで、フォームに入力したリクエスト本体は$_GETや$_POSTで参照でき、関数の内外問わずスクリプトのどこからでもアクセスできる配列変数であるスーパーグローバル変数としてPHPのコード中で使用できます。
HTTPサーバーとしての最大の機能はバーチャルホストであり、物理ディレクトリ(フォルダ)を仮想サーバーのDocumentRootに指定してURLを割り当てることで、1つのApacheサーバーで複数のドメインや複数のサブドメインの管理することができます。
Apacheサーバーのチューニングをするといういことは、Apache設定ファイルであるhttpd.confに、Apacheディレクティブと値(ON/OFF, 数字, HTTP環境変数, URLなど)を設定することであり、これを親子関係にある.htaccessに設定して、ディレクトリ(フォルダ)単位に配置することもできます。 .htaccessとApacheディレクティブ|Basic認証・mod_rewrite・HTTP通信の仕組みと設定方法 HTTP通信はクライアントからのリクエストに対してApacheサーバーがレスポンスを返すことで成立します。 続きを見る