カテゴリー : プログラミング

今まで行った勉強会の内容は勉強会・講演のページをご覧ください。
栽培の勉強会の講師をご希望の方は下記の株式会社京都農販へお問い合わせください。
京都から日本の農業を支える 株式会社京都農販
ブログ内検索
 

社会人・学生向けプログラミング教室でGoogleスプレットシートの拡張の勉強会を行いました

社会人・学生向けプログラミング教室でGoogleフォームの拡張の勉強会を行いましたの続きで、 Google DriveのGoogleスプレットシートを活用して、備品の管理と足りなければ調達の指示をメールで送信するといった業務アプリのようなものを作成してみました。 Google ドライブ - 写真やドキュメントなど、ファイルのクラウド ストレージとバックアップ Google スプレッドシート - オンラインでスプレッドシートを作成、編集できる無料サービス Googleスプレット...

Read More…

 

Node.js、Socket.IOとLet's Encryptでチャットアプリの常時SSL化

Node.js Socket.IO 以前、Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみた。 チャットアプリを常時SSL化する必要が出てきたので、その時行った対応を記載する。 Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみる 常時SSL化はSEO上効果はあるか? 常時SSL化をするにあたって、 Let's Encrypt - Free SSL/TLS Certificates いつもの通り、Let...

Read More…

 

php-webdriverでconfirmダイアログをクリックする

php-webdriverでセレクトボックスの値を選択するから引き続きメモ ブラウザ上で何らかのボタンをクリックすると、 上の画像のように確認用のダイアログが表示されて、このダイアログ上のボタンをクリックすることがあります。 このダイアログのボタンをphp-webdriverでクリックするためには下記のようなコードを書けば良い。 ※今回は「退会する」リンクをクリックした時にconfirmのダイアログが表示される $driver-findElement(WebDriver...

Read More…

 

php-webdriverでセレクトボックスの値を選択する

php-webdriverでtarget="_blank"付きのアンカータグ対策から引き続きメモ 今回はセレクトボックスの値を選択してみる。 セレクトボックスは今までのinputタグと異なり、 セレクトボックスの場所を指定して、キーボード操作で値を選択するという形で、 値の指定の際の操作が増える。 該当する箇所のHTMLは select name="Customer[area]" id="" class="input-pref" option value=""都道...

Read More…

 

さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにする

さくらVPS上でSeleniumとphp-webdriverを利用する 前回、さくらのVPSにSeleniumとphp-webdriverを実行するための環境を設けた。 あとはJenkinsを入れるだけだ。 環境 さくらVPS 512 Ubuntu 16.04 Java 1.8.0_151 Jenkins 2.76 Selenium 3.7.1 Xvfb バージョンの調べ方わからず Chromeドライバ 2.33.506092 Chromium 62.0.3...

Read More…

 

さくらVPS上でSeleniumとphp-webdriverを利用する

Selenium - Web Browser Automation 最近の記事でSOY CMS / ShopのUIテストをSeleniumのGUI(Firefoxのアドオン)からFacebook製のphp-webdriverへと作り変えた。 facebook/php-webdriver: A php client for webdriver. テストを作ったのは良いけれど、ローカル環境だとテスト中に他の作業ができなくなるので、 さくらのVPSを借りてSeleniumを動かせるよう...

Read More…

 

php-webdriverでtarget="_blank"付きのアンカータグ対策

php-webdriverで任意のラジオボタンをチェックする 前回より引き続き、Seleniumとphp-webdriverのメモ 例えば、 a href="sample.html" id="link"リンク/a というコードがあったとします。 このリンクをクリックして他のページに遷移したい場合は、 php-webdriverでは、 $driver-getElement(WebDriverBy::linkText("リンク"))-click(); $driver-ge...

Read More…

 

php-webdriverで任意のラジオボタンをチェックする

php-webdriverでSOY CMSにログインしてみる 前回、任意の入力フォームを選んで値を入力して、 任意のボタンを押すという動作をSeleniumとphp-webdriverで自動化してみた。 UIテストの大体の動作は前々回のフォームの内容を取得すると合わせれば対応できるが、 これでは対応できないものがあった。 それは、 性別などで使われるラジオボタンです。 ラジオボタンのHTMLを抜き出してみると、 input type="radio" id=...

Read More…

 

php-webdriverでSOY CMSにログインしてみる

php-webdriverで指定のフォームに値を入力してみる 前回、Selenium + php-webdriverでSOY CMSのログイン画面でログインIDのフォームに値を入れ、 フォームの値を取り出して端末上に書き出す という処理を書いてみた。 今回はログインIDとパスワードを入力して、 ログインボタンを押してログインを試してみる。 実際のコードは下記の通り、 ※管理画面へログインできるアカウントをID、Pw共に「soycms」とします ?php requ...

Read More…

 

php-webdriverで指定のフォームに値を入力してみる

Seleniumとphp-webdriverでUIテストの自動化で Selenium、Chromeドライバとphp-webdriverをインストールした。 今回は基本的な動作分を確認 ワークスペースが~/workspace/soycms/で、 テストコードはsoycmsディレクトリ以下にtestというディレクトリを作成して、 テストコードを~/workspace/soycms/test/test.phpにしてファイルを作成してみる。 ※soycmsディレクトリ内にSOY CMSを...

Read More…

 

Seleniumとphp-webdriverでUIテストの自動化

アプリ開発において自動化しておきたいものにテストの自動化がある。 今までSOY CMS / ShopはSeleniumのFirefoxプラグインでGUIで一つずつ動作を登録しながらUIのテストコードを作成していたけれども、 Selenium - Web Browser Automation Jenkinsさんのお力を借りて、 JenkinsさんにSeleniumを実行してもらうべく、 PHPのコードでSeleniumのUIテストのコードを書き直すことにした。 Jenk...

Read More…

 

社会人・学生向けプログラミング教室でGoogleフォームの拡張の勉強会を行いました

社会人・学生向けプログラミング教室でGASで業務改善の勉強会を行いましたの続きで、 Google DriveのGoogleフォームをGAS(Google Apps Script)で自分好みにカスタマイズする という勉強会を行いました。 Google ドライブ - 写真やドキュメントなど、ファイルのクラウド ストレージとバックアップ Google フォーム - アンケートを作成、分析できる無料サービス Googleフォームでお問い合わせフォームを設置すると、 お問い合わせ後...

Read More…

 

Node.js製のアプリをforeverで永続化する

UbuntuサーバでNode.jsのアプリの再起動に苦戦した時のメモ 前回、Node.js製のアプリをVPSのサーバに置いて、 サーバを再起動後にアプリも自動起動するように設定してみた。 しかし、Node.jsというのは仕様上、何かのエラーがあるとアプリが止まってしまう。 これは困るということで色々と調べてみたら、 アプリを永続化するforeverというライブラリがあった。 foreverjs/forever: A simple CLI tool for ensuring t...

Read More…

 

UbuntuサーバでNode.jsのアプリの再起動に苦戦した時のメモ

Socket.IOのチャットアプリでXSS対策まででNode.jsでリアルタイムなチャットアプリの開発を見てきた。 ある程度動作するようになったので、VPSサーバで実際に動かす段階になったので設置した。 前回の記事以降、 メッセージを投稿して、他のブラウザ宛にプッシュする直前でデータベースに保存し、 表示しているブラウザをリロードしたらデータベースに保存しているやりとりを表示する という機能を付けている。 chatdemo ├── README.md ├── _modul...

Read More…

 

社会人・学生向けプログラミング教室でGASで業務改善の勉強会を行いました

社会人・学生向けプログラミング教室でコードレビューをしてみましたにも記載したとおり、 以前からTera schoolで中学生向けのプログラミング教室と平行して、 大学生・社会人向けにプログラミングの勉強会を行っています。 今までJavaScriptで色々と触れてきたので、 そろそろ日々の業務改善のためにGAS(Google Apps Script)に触れてみました。 Apps Script | Google Developers GASを簡単に説明すると、 GoogleのW...

Read More…

 

土壌分析アプリSoil3 on SOY Shop

以前から開発していた土壌分析アプリSoil2ですが、 調査を兼ねて大幅に改修してSoil3を開発しました。 ※Soil3はSOY Shopのマイページの拡張として動作します 土壌分析アプリsoil2 by Go Soil3でできることをまとめると、 事業所や各ほ場を登録し、 住所、面積やGoogle Mapsと連動して、位置情報とストリートビューの向きを設定する。 これによりアプリを介して畑の土の色や周囲の情報を現地に行かずともある程度把握することができる。 ...

Read More…

 

Socket.IOのチャットアプリでXSS対策

Socket.IOで個別チャットを作りたい後編 今までSocket.IOでチャットアプリを作ってきたけれども、 誰かが気軽に入力できて、他のブラウザで誰かから送信されたメッセージを表示できる。 送信時にHTMLタグを入れたらどうなるのだろう? そこらへんはSocket.IOはどういう対応になるのだろう? と気になったので、 strongで囲った文字列を投稿してみた。 ※strongで囲まれた文字列は強調文字(太文字)で表示される。 結果は太文字で表...

Read More…

 

Socket.IOで個別チャットを作りたい後編

Socket.IOで個別チャットを作りたい前編で、Socket.IOのnamespacesとroomsに触れた。 namespacesを活用すれば個別チャットの仕組みを作れるのではないか? ということで下記の内容を試してみた。 ・hogeとhugaというnamespaceを作成 ・フロント側でランダムでhogeかhugaのどちらかでサーバに接続する。 というわけでこれらを満たすコードを追加してみた。 server.js /** serverの接続周りは省略 **/ var...

Read More…

 

Socket.IOで個別チャットを作りたい前編

Socket.IOのチャットアプリで誰が入力中なのかを出力したい 前回までで簡易的なチャットアプリを作成することができた。 この時点ではチャットのページを知っている人は誰でも参加することができてしまうため、 AさんとBさんのみといったユーザを限定したチャットではない。 直近の目標はLineやChatWorkのようにユーザを限定したメッセージのやりとりなので、 ユーザを限定する方法というものを模索してみる。 Socket.IOにはNamespacesとRoomsいう...

Read More…

 

Socket.IOのチャットアプリで誰が入力中なのかを出力したい

Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみる 前回、Node.jsとSocket.IOでリアルタイムでやりとりができるチャットアプリを作ってみた。 Socket.IOのおかげで少ないコードでチャットアプリを作ることが出来たけれども、 これだと世間で見られるチャットアプリとは程遠い。 というわけで、 前回の簡易版に追加でカスタマイズしていく形で、 Socket.IOにより触れていくことにする。 チャットアプリで欲しい機能といえば、 ...

Read More…