AndroidBazaarConference,Diverse2018atUDON県を終えて #abcd2018u

まず、本ブログの告知記事がこちらです。

また日本Androidの会香川支部での告知ページがこちらです。

やっと第1回ABCDうどん県が終わりました。来てくださった皆さんと、協力頂いたスタッフ、そして講師、施設の方等に感謝します。

各団体・講師へ、感謝の意も込めて箇条書きですが、私が狙っていた点・よかった点を思うままに記載します。

  • 穴吹コンピュータ専門学校・・・先生方と交流を持てた事と学生の発表の場となった事。
  • 香川短期大学・・・香川短期大学の学生成果をゼミとして展示できた事。ICTが専攻でない、子供学科(幼児・保育)がアプリ展示をしたこと。
  • 河原ITビジネス専門学校・・・かがわの西讃地区、愛媛東予にも高松同様にプログラミングを専門に学べる学校があるというPRが出来た事。
  • 各企業・・・都市部のクラウドサービスとコミュニティマーケティングへの展開が市場開拓の1つとなっている事を香川にて見せられたこと。
  • ユーザ団体・・・瀬戸内海周辺と、四国団体の活動報告を展示できた事。
  • 講師・・・分かりやすい内容と、難しい内容の両方が午前にはあり、午後は技術者向け、そして終わりの方ではコミュニティ向けのセミナーとして浅く広いところから深いところまでセミナーを開催できた事。

セミナー動画

モバイル市場とこれからの動向 | 嶋 是一 | #abcd2018u

Androidアプリで学ぶ – 東海大学での実践を元に —

ビッグデータ解析、AIの地方での活用事例の紹介

Kotlin の紹介&既存プロダクトへの導入方法

IoT化した放射線計測とその応用

Flutterでアプリ開発

岡山Android, iOS, Windows phoneアプリ開発もくもく会の活動報告

秋葉原支部の活動報告

ABCDうどん県のまとめ

 

反省点:

  • アンケート評価を実施できなかった。
  • 展示・講師への配慮・礼品
  • スタッフへの配慮で不足部分があった。

 

wordrpessのpage builder(ページビルダー)機能をサイト引越し時に移植する

WordPressのpage builder系のプラグインを持っているテーマもありますが、これがテストサイトから本番サイトへ移設する際にドメインの文字列数変更で

うまく表示されなくなってしまうという現象があります。

昨日記事で「wp_postmetaのシリアライズ化されたデータを加工する(テーマオプション・ドメイン変更対応)」を書きましたが、page builder の移設の場合も原因は同じでした。昨日の記事では、シリアライズ化されたデータに対して再帰的な処理が出来てなかった為テーマオプションの一部までしか移植できてなかったのかもしれません。

phpの内部処理は同じです。一度配列化し、置換してから再度シリアライズ化します。out.txt というファイルにupdate 構文のSQLを置くことで、phpMyadminからpage builder のpostmeta 情報に対してUpdateしてもらえれば、無事移植できるかと思います。


<?php
// ---------------------------------
// エスケープ文字を忘れずに!
// ---------------------------------
$before = "http:\/\/blog.zamuu.net\/before";
$after = "http:\/\/blog.zamuu.net\/after";
$DB_HOST = 'mysql418.db.sakura.ne.jp';
$DB_USER = 'sante-corp';
$DB_PASS = 'sante753;
$DB_NAME = 'sante-corp_wp_sante';

/**************************
* シリアライズデータの変換
**************************/
function convert($meta_value){
$serial_data = $meta_value;
$serial_data = mb_convert_encoding($serial_data, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

// デシリアライズ化(Object形式でなく配列で返却)
$ary = unserialize($serial_data);
if(is_array($ary) === false){
echo "ary ERROR !!!f";
return false ;
}
//多次元配列を再帰的に処理して 'before' をすべて 'after' に置き換える。
array_walk_recursive($ary, function (&$val, $key) {
$val = str_replace($before, $after, $val);
});
return serialize($ary);
}
$arrOut = array();

try{
// ----------------- DB
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
$mysqli->set_charset("utf8");
$sql = "SELECT * FROM wp_postmeta WHERE meta_key='page_builder'";
// echo $sql;
if ($result = $mysqli->query($sql)) {
// 連想配列を取得
while ($row = $result->fetch_assoc()) {
// var_dump($row);
$rest = convert($row["meta_value"]);
$ret = "update wp_postmeta set meta_value= '" . $rest . "' where meta_id=" . $row["meta_id"];
array_push($arrOut, $ret);
}
// 結果セットを閉じる
$result->close();
}
// ----------------- DB
}catch(Exception $e){
echo $e;
}

foreach($arrOut as $k => $v){
$line = $v . ";\r\n";
file_put_contents("out.txt" , $line, FILE_APPEND);
}
// var_dump($arrOut);

?>

&nbsp;

wp_postmetaのシリアライズ化されたデータを加工する(テーマオプション・ドメイン変更対応)

WPの移設の際、テーマオプションの引越しに手間取っていました。毎回手打ちで更新しなおすのが手間でした。

DBマイグレーションに近いプラグインも探しましたが中々できなかったので自分で変換コードを作ってしまいました。wp options importer と組み合わせて使います。

wp_postmeta に格納されるテーマオプションは、シリアライズ化されているので、それらを一度JSON→配列化→置換→JSON出力という流れで実装しました。

テーマオプションの場合について移設作業の一括移設ができましたので、記事にします。Builderという機能で記事内部のデータをwp_postmetaで管理するプラグインがあるようですが、そちらには対応しきれてないと思います。

手順1.  wp_options_importer プラグインを移設前と新しいドメインのサイトに入れておく。

手順2. WPをコピー、DBもコピーする(DBはエクスポートしてから、ドメイン名の一括置換をしてインポートする)

手順3. 手順2のファイルやエクスポートしたDBで新しいサイトを構築。

手順4. wp_options_importer をそれぞれのサイトで有効化。移設前の方でoptions のエクスポートを実施。JSONで出力されます。

手順5. 出力されたJSONはUTF8で保存しなおし、サーバへUPします。

手順6. 以下ソースをconvert.php ファイルとしてサーバに置きます。その後、$before/$after 変数を置換したい文字列へ変更します。また、”wp_options.20180127.json”のファイル名も適切なファイル名へ変更します。URLの場合はスラッシュのエスケープを忘れずに。


<?php
// ---------------------------------
// エスケープ文字を忘れずに!
// ---------------------------------
$before = "http:\/\/blog.zamuu.net\/before";
$after = "http:\/\/blog.zamuu.net\/after";

$json = file_get_contents("wp_options.20180127.json");
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$ary = json_decode($json, true);

//多次元配列を再帰的に処理して 'before' をすべて 'after' に置き換える。
array_walk_recursive($ary, function (&$val, $key) {
$val = str_replace($before, $after, $val);
});

$json_arry = json_encode($ary);
file_put_contents("out.json" , $json_arry);

?>

手順6.  サーバへ置いたphpへブラウザからアクセスして実行すると out.json ができます。これがURL返還後のjsonファイルになります。

手順7. 移設後のサイトの方で out.json をインポートします。

追加でこちら「wordrpessのpage builder(ページビルダー)機能をサイト引越し時に移植する」も記載したのでリンクしておきます。

 

サイボウズLIVE終了に伴う代替案の記事メモ

iQubeクラウド 10ユーザまで無料
http://www.iqube.net/price.html

iQube+ CPIサーバの付属で30ユーザまで無料
https://www.cpi.ad.jp/shared/detail/iqube_plus.html

stock
http://www.stock-app.info/

医療専用Line(?)
https://prtimes.jp/main/html/rd/p/000000014.000016841.html

wordpressで各ページで共通となる単語・文章を管理する

WordPressで共通文言を管理する為に便利なのがショートコードとカスタムフィールドの組合せです。今回はこの共通文言の作り方を記事にします。

どういうときに使うかというと、日本語サイト独特なような気もするのですが、「・・・できます」「・・・可能です」の統一。「お問合せ」「お問い合わせ」という送り仮名の統一・・・数ページのサイトならいいですが、百ページにも及ぶサイトでこれらの類似文言を統一させるのはかなり手間です!

これらを1か所で管理できると便利だなー、という事がきっかけで自作関数を作ったのですが、これが意外と便利なので公開しておきます。少しでもWebコーディングやデザインされている人の助けになれば幸いなのですが。

今回は、『「エンドユーザ様」「利用者さま」「ご利用者様」というバラバラの文言を「ご利用者さま」に統一する』という前提で以下記載していきます。

『アドバンストカスタムフィールド(ACF)』というプラグインでカスタムフィールドを定義します。

1.アドバンスドカスタムフィールドというプラグインをインストールしてください。

2.ホームとなる固定ページなどに共通となるカスタムフィールドを作成します。今回は「ユーザ」というラベルに「user」というフィールド名、デフォルト値を「ご利用者さま」にしています。

3.追加したカスタムフィールドは、ホームとして設定している固定ページである「トップ」という固定ページのみに表示させるように設定します。

4.「トップ」という固定ページを管理画面-固定ページから開くと、カスタムフィールドに「ご利用者さま」と反映されているかと思います。この状態で1度ページを更新します。これで「トップ」というページのカスタムフィールド:user に「ご利用者さま」が設定されました。

共通名称用のショートコードを作成します

5.事前に「トップ」という固定ページのページIDを確認してください。ページIDの確認方法は、「固定ページ」一覧のタイトル部分をマウスオーバーすれば、URLがブラウザ状にリンク先として表示されたりします。post=xxx という部分がページのIDとなります。

5.外観 – テーマの為の関数(function.php)を開きます。ここでショートコードを作成するのですが、関数名が長くなってはコーディングも大変で意味がないのでできるだけ簡潔な関数名にします。ここでは「ご利用者さま」(user)という事で [usr] というショートコードを想定します。

6.以下のようなコードをfunction.php に追記しましょう。xxxはページID、’user‘ はカスタムフィールド名です。


function usrFunc(){ return get_post_meta(xxx, 'user', true); }

add_shortcode('usr', 'usrFunc');

 

7.この状態で固定ページの記事本文にショートコードを設定していきます。固定ページであれ、記事投稿ページであれ、本文のお客様、利用者様と記載する部分に[usr] と設定することで文言が統一されます。

  • 変更前:弊社のサービスではお客様が分かりやすいサービスを展開してます。
  • 変更後: 弊社のサービスではご[usr]が分かりやすいサービスを展開してます。

ちょっと応用編

共通文言がかけるという事は共通的なHTMLも記載できます。カスタムフィールドのタイプをテキストからテキストエリアにすることで共通的なHTMLがかけるようになります。

 

 

【jQuery】+-ボタンでフォントサイズを徐々に変更する

+-のSpanタグを利用して徐々にサイズ変更をさせるサンプルです。サンプルコードのf(e,o,v)では+1px, -1pxずつの変更をしています。

e:サイズ変更対象のタグidを指定してオブジェクトを渡す。o:表示用のidを指定してオブジェクトを渡す。

変更後のサイズはmySizeへ表示します。


   <script>function f(e,o,v){var s=parseInt(e.css('font-size'))+v; e.css('font-size', s); o.html(s);}</script>
   <span id="myFont" style='font-size:85%;'>フォントサイズを変更します。</span>
   <span onclick="f($('#myFont'), $('#mySize'), +1)">【+】</span>
   <span onclick="f($('#myFont'), $('#mySize'), -1)">【-】</span>
   <span id="mySize"></span>

経済産業省推進資格ITコーディネータ

経済産業省の推進するICT、IT関連の資格はIPAの情報処理技術者(国家資格)が有名ですが、近年ITコーディネータという資格が出来ました。昨年研修を受け、香川で無事資格を取得できました。夫婦で取得したのは全国初だそうです。

本資格は、経営戦略に対してIT戦略をうまく活用していくためのコーディネートを行う為の資格です。

AndroidBazaar&Conference, Diverseがついに西日本で開催される!

2018年2月3日にAndroidBazaar&Conference,Diverse2018 at うどん県が開催されます。日本Androidの会(AndroidOSのユーザグループ)Android開発者・デザイナー・企画する人などを中心に2008年頃から活動してきました。2009年にNPO法人が設立され、活動主旨も明確となってきました。

続きを読む

パワリコ(データセンター)とSTクラウドサーバFLEX(IaaS) – 機密データは国内DC

香川県にあるIDCとして、四国電力系のグループ会社STNetが提供しています。箱ものが大きすぎて、なんの施設か数年前までわからなかったのですが、どうやらデータセンターだったようです。

パワリコは、そのままデータセンターとして施設を提供してくれています。

そのハードの上にSTクラウドサーバのいろんなメニューがあるようです。

以前、このクラウドサーバを使って環境構築する機会があったのですが、契約までは営業的に、その後はコントロールパネルで標準機能を提供してくれる業者です。NW系の構成も注文すると初期セットアップ+保守面の相談に乗ってくれるので、地元香川・岡山辺りの一般企業にはおススメできそうなサービスです。

但し、さくらサーバAWS、GMOとかなり価格帯が違うので、客先による状況によりけりでうまく判断する必要があると思います。