プログラム

プログラム

Thunderbird アドオンの自主配布とアップデートサーバーの設定手順【2023年版】

「Thunderbird アドオン開発はじめの一歩」の記事で、メールクライアントソフトの Thunderbird(サンダーバード)アドオンの作成方法をご紹介しました。作成したアドオンは、ATN(addons.thunderbird.net)に公開して配布することもできますが、アドオンファイルを自主配布してアップデートサーバーを用意すれば、自主配布した Thunderbird アドオンでもクライアン...
プログラム

Thunderbird アドオンの公開手順【2023年版】

「Thunderbird アドオン開発はじめの一歩」の記事で、メールクライアントソフトの Thunderbird(サンダーバード)アドオンの作成方法をご紹介しました。作成したアドオンは、ATN(addons.thunderbird.net)に登録することにより公開され、だれでも簡単に作成したアドオンを利用することができるようになります。そこで今回は、作成したアドオンを ATN に登録して公開する手...
プログラム

Thunderbird アドオン開発はじめの一歩【2023年版】

メールクライアントソフトの Thunderbird(サンダーバード)には、アドオンという機能を拡張する仕組みがあり、アドオン開発者の方が作成したアドオンを追加して、Thunderbird をより使いやすくすることができます。「アドオン開発」と言われると少し敷居が高く思われるかもしれませんが、JavaScript、HTML、CSSの知識があれば簡単に自分独自のThunderbirdアドオンを作成する...
プログラム

PHP U2Fセキュリティキーを使った2段階認証の実装方法メモ

U2F(Universal 2nd Factor)は、認証技術 FIDO(ファイド)の認証方式の1つです。ユーザーIDとパスワードで認証した後に、U2F に対応したセキュリティキーなどで2段階認証を行う仕様になっています。電子的認証のガイドライン NIST SP800-63B ではこの U2Fセキュリティキーを使った2段階認証を AAL3(認証者保証レベル3)という最も強度が高い認証方式として位置...
プログラム

2段階認証を実装するための記事まとめ(PHP+認証アプリ)

Google Authenticator などの認証アプリを使った2段階認証を、ご自分や自社の WEBサービスに導入するのは少しハードルが高いと思ってはいませんか? 実は、認証アプリを使った2段階認証は、RFC6238 Time-Based One-Time Password Algorithm というとてもシンプルな技術仕様で実装できるため、スマートフォンが普及した現在では、比較的簡単に導入する...
プログラム

PHP で otpauth URI(TOTP)を作成する方法

2段階認証でよく使われる TOTP(時間ベースのワンタイムパスワード)は、利用をはじめる時に Google Authenticator などの認証アプリに、サーバーで生成した秘密鍵を登録します。この登録する秘密鍵はQRコードで表示することが多いのですが、その際に秘密鍵などを otpauth URI という形式にしてQRコードに埋め込む必要があります。そこで今回は、PHP で otpauth URI...
プログラム

5分で出来る!PHPでQRコードを生成する方法

つい先日 PHPでQRコードを生成する機会があったので少し調べてみました。実装は大変かと思っていましたが、ありがたいことに QRコードを生成する PHPライブラリはいくつも公開されていて、簡単に QRコードを生成することができそうです。そこで今回は、endroid/qr-code を使って PHPでQRコードを生成する方法をまとめてみました。
プログラム

PHP + Google Authenticator(TOTP)2段階認証の実装方法

2019年7月、あるスマートフォン決済サービスが不正利用され多くの利用者の方が被害に遭われました。その決済サービスには、2段階認証やそれに準ずるセキュリティ対策を怠ったとして大きな批判が集まりました。高い安全性が求められるサービスでは、パスワード認証だけでは安全を確保することが難しくなっています。そこで今回は、PHP と Google Authenticator を使った2段階認証の実装方法をまと...
プログラム

Python の勉強時間を取れない人に Pythonista は絶対オススメな話

最近注目のプログラミング言語 Python(パイソン)の勉強をしたいけれども、なかなか勉強時間を取れない方は多いのではないでしょうか? そんな方にオススメなのが Python のコードを iPhone や iPad で 簡単に実行できるアプリ Pythonista(パイソニスタ)です。そこで今回は、Python の勉強時間を取れない人に Pythonista をオススメする理由をまとめてみました。
プログラム

Apache NetBeans 11 を macOS にインストールメモ

Apache NetBeans(ネットビーンズ) は、オープンソースの統合開発環境(IDE)です。Java や PHP など色々なプログラム言語に対応しています。以前は オラクルが中心になって NetBeans を開発していましたが、バージョン9から Apache が開発をするようになりました。現時点ではインストーラーが提供されていないため、以前とインストール方法が少し変わっているようです。そこで...
プログラム

A3RT の Talk API を PHP で使ってみた

リクルートテクノロジーズが公開している A3RT(アート)は、機械学習や人工知能を手軽に使うことができる API群です。A3RT の各種 API はメールアドレスの登録だけで無償で使うことができます。そこで今回は、Chatbot を簡単に作成することができる Talk API を PHP で使ってみました。
プログラム

ヘッドレスChrome + Puppeteer のインストールと使い方メモ(CentOS)

ヘッドレスChrome(Headless Chrome)は、コマンドラインから Google Chrome を操作できる仕組みです。WEBアプリの自動テストや、WEBサイトのパフォーマンス監視などに活用することができそうですね。また、ヘッドレスChrome を操作するための Nodeライブラリ Puppeteer(パペティアー)の正式版が最近(2018年1月)リリースされました。そこで今回は、Ce...
プログラム

PHP7.2 に mcrypt をインストールする方法(ただし非推奨!)

PHP でデータを暗号化や複号化をする時によく使われていた mcrypt関数 が、PHP7.2でコアから削除されました。ただ OpenSSL関数 を使えば mcrypt と同じことができる上に処理も早いので問題ないはずなのですが、古いシステムからの移行時のつなぎや、色々な力関係などで(^^;) しかたなく mcrypt を使わなければならない場面もあるかと思います。そこで今回は、非推奨ですが PH...
プログラム

小数計算の誤差 0.1 + 0.2 が 0.30000000000000004 になる理由

JavaScript で「0.1 + 0.2」のような小数の計算をすると、答えが「0.30000000000000004」になり誤差が発生することがあります。JavaScript でプログラムを組んだことがある方なら、一度は経験したことがあるのではないでしょうか? そこで今回は、なぜ 0.1 + 0.2 が 0.30000000000000004 になるのか、この誤差の原因と回避する方法をまとめて...
プログラム

HTMLテーブルのヘッダを「行列固定」する方法(FixedMidashi)

業務系のシステムでは、扱っているデータが多いため、一覧表が巨大になることがよくあります。WEBベースで開発している場合は、一覧表をHTMLテーブルで作ることが多いかと思いますが、表が巨大だと上下左右にぐりぐりスクロールして閲覧することになり、行や列のヘッダ(見出し)が見えなくなってしまいます。エクセルのウインドウ枠(行列)の固定のように出来ればいいのですが、HTMLではこれが簡単にはできません。そ...
プログラム

入力チェックコードを PHP と JavaScript で共通化する方法

フォームに入力された値に行う、入力チェックは(バリデーションチェックとも言うらしいです)大きく分けて、JavaScript で行うクライアント側チェックと、PHP などで行うサーバ側チェックの2つがあります。当然両方で入力チェックを行うことが望ましいのですが、同じようなコードを、クライアント側とサーバ側で書かなければなりません。そこで今回は、入力チェックコードを PHP と JavaScript ...
データ分析

dimple.js 積上げ棒グラフの作り方

dimple(ディンプル)は、さまざまなグラフを簡単に作成できる JavaScript ライブラリです。データ可視化ライブラリの定番 D3.js と合わせて使います。D3.js は柔軟性が高く、複雑なデータを可視化することが得意ですが、グラフの描画処理を自分で作成する必要があります。描画処理のコードを書くのは、なかなか大変ですが、この dimple ライブラリを使えば、複雑なグラフを、わずか数行の...
プログラム

Twitter API search/tweets で 100件以上のツイートを取得する(PHP)

Twitter のツイート検索API(search/tweets)で、取得できるツイート数の上限は 100件 です。分析用途で使うには、ちょっと件数が少ないですね。そこで今回は、Twitter API で 100件 以上のツイートを取得する方法をご紹介します。
データ分析

PHP 政府統計 API の使い方メモ(e-Stat)

政府統計の総合窓口(e-Stat)の API 機能 では、各府省が公表する統計データを、APIを使って簡単に取得することができます。以前は各府省ごとに、統計データを公開していましたが、近年この、政府統計の総合窓口サイトの1つにまとめられ、昨年からは API 機能の提供も開始されました。 政府統計 API の使い方はいたって簡単なのですが、統計データの種類、量ともに膨大なため、データ取得までの流れが...
プログラム

PHP 5分で出来る!Twitter API アプリケーション認証(Application-only authentication)

ツイッター API の、アプリケーション認証 (app auth) を使うと、15分あたりのAPI利用上限を、ツイート検索が 180回 から 450回 に、タイムライン取得は 180回 から 300回 に増やすことができます。ツイート探索系のアプリを作るのには、ちょっと嬉しい仕組みですね。 そこで今回は、PHP から Twitter API アプリケーション認証を行い、ツイート検索をする方法をご紹...
プログラム

MeCab と php-mecab のインストールメモ(CentOS7.1)

MeCab は、日本語の文章を解析して、単語に分割してくれるソフトウェアです。WEBサービスを作るにあたって MeCab を PHP から使う必要があったので、今回は php-mecab もインストールしました。MeCab(めーきゃぶ)の名称は、開発者さんの好物「めかぶ」にちなんで付けられたそうです。ふと、めかぶをつまみに一杯やりたくなりました。(^^)
プログラム

NetBeans での Git リポジトリサーバへの接続方法

NetBeans(ネットビーンズ) は、無償で使えるオープンソースソフトウェアの、統合開発環境(IDE)です。Java、PHP、HTML5、C/C++、Groovy などのプログラミング言語に対応しています。前回の記事で、Git リポジトリサーバの構築方法をご紹介しました、今回は、構築した Git リポジトリサーバに NetBeans から接続して、リポジトリのクローンなどの操作をしてみたいと思い...
プログラム

Zabbix ドメイン名ハイジャック(ドメインの乗っ取り)を監視

2014年11月5日 国内の「.com」サイトでドメイン名の登録情報が不正に書き換えられ、攻撃者が用意した不正サイトに誘導されるドメインハイジャック(ドメインの乗っ取り)が複数発生しているそうです。 ドメイン名管理者としての対策は、利用しているレジストラやリセラーのログインアカウントを適切に管理し、定期的にDNSサーバの登録情報が正しく設定されているか(改ざんされていないか)確認することが求められ...
プログラム

Zabbix 外部スクリプトで天気を監視(OpenWeatherMap)

Zabbixの外部スクリプトを使って天気を監視してみました。仕組みとしては、気象データの無料APIを提供するオンラインサービス OpenWeatherMap から天気をデータを取得してZabbixデータベースに記録します。
プログラム

NetBeans phpcsmdプラグイン Zendコーディング規約のカスタマイズ

NetBeansでPHP CodeSnifferを使えるようにできるphpcsmdプラグインで、Zendコーディング規約をカスタマイズする手順をメモしておきました。
プログラム

NetBeans + PHP CodeSniffer プラグインのインストール

NetBeansは無償で使えるIDE(統合開発環境)です。NetBeansはプラグインを追加することにより機能を拡張できるのですが、その一つに、プログラムコードがコーディング規約に則っているかを自動チェックできる、PHP CodeSniffer(PHPコードスニファー)用のプラグインあります。 NetBeansに、PHP CodeSnifferプラグインを追加すれば、プログラムを書いているそばから...
プログラム

PHP CodeSniffer ルールセットのカスタマイズ方法

PHP CodeSniffer(PHPコードスニファー)は、PHPやJavaScriptで書いたプログラムが、決められたコーディング規約に則って書かれているかをチェックできるツールです。対応しているコーディング規約は、Zend、PEAR、PSR2 などがあります。 私は普段、ZendのPHPコーディング規約に則って、プログラミングをしているのですが、一部例外の規約を設けているため、PHP Code...