ブログ閲覧トラブルのお詫び

本ブログサーバーに障害が発生したため、2018年12月12日水曜午後3時頃から12月13日木曜午前10時頃までの19時間(!)、ブログ閲覧ができませんでした。期間中に訪れていただいた方々にご迷惑をおかけしたことをお詫び申し上げます🙇。

サーバー障害は現在解消しております。経緯報告と、ソフトウェア全般のメジャー更新時の対応と心構えについて示します。

ブログのみ(!?)閲覧トラブル

閲覧トラブルはHappyTechブログのみに発生し、HappyTechサイト(=マイコンテンプレートサイト)は問題なしでした。どちらも同じレンタルサーバーを利用していますが、ブログ閲覧時にブラウザで表示されたHTTPステータスコードは500番です。

ブラウザ表示のステータスコード、いわゆるエラーコードは、300番台~500番台まであります。

  • 300番台 サイト移転、ドメイン変更通知
  • 400番台 クライアント処理失敗
  • 500番台 サーバーエラー(←今回のエラーコード)

500番台サーバーエラーは、サーバー過負荷やWordPressバグなどの原因がありえます。サーバー業者の障害報告はありませんが、私は、主因がWordPress5メジャー更新だと推測します。

WordPress5へのメジャー更新

12月7日金曜からWordPress5へのメジャー更新配布が始まりました。メジャー更新の中身は、WordPressエディタの全面変更です。活版印刷の発明者といわれるGutenbergにちなんで名付けられた新エディタは、従来版とはかなり異なります。

Johannes Gutenberg(Wikipediaより)
Johannes Gutenberg(Wikipediaより)

新エディタGutenbergは、既に投稿済みの過去の投稿編集にも影響を及ぼすため、Gutenbergエディタ機能を停止するDisable Gutenbergや、代替として従来エディタが好きなブロガーのためにClassic Editorというプラグインが準備されていました。

「メジャー更新前」にこれらプラグインをインストールしておけば、問題は殆ど無かったと思います。しかし、「更新後」のインストールでは遅すぎます。過去の投稿がGutenbergで変換され、初めてエディタの違いに気づき、慌ててリカバリーするなどした結果、サーバー過負荷に至ったのだと思います。
500番台サーバーエラーが、メジャー更新配布後ではなく、数日たった12日から長時間発生したことが根拠です。

ソフトウェアのメジャー更新時の対応と心構え

このように、「メジャー更新内容の事前調査や対応」と、何か起こるかもという「心の準備」は、バックアップをとることと同じくらい重要です。

更新後に読むことが多いリリースノートですが、せめてメジャー更新がアナウンスされた時は、「更新前」に目を通し、バックアップ以外の対応・準備が万全かを想像しましょう、これが本稿で示したい対応と心構えです。

※MCU IDEは、後方互換性を重視するソフトウェアなので、今回のWordPressエディタのような互換性にインパクトがある問題は生じにくいです。

関連投稿:MCU IDEの後方互換性検証

また、2019年4月よりWordPressの動作要件にphpバージョンが5.6以上、MySQLも5.5以上が加わります。これらより下のバージョンは、セキュリティアップデートだけが提供されます。Office 2019の動作OSが、Windows 10のみというのに似ています。

WordPress推薦phpはバージョン7ですので、2019年4月以降は最新プラグイン利用や既存プラグイン更新にトラブル発生の可能性もあります。プラグイン更新時には、注意しましょう!

httpsとhttpの話

お知らせのついでに、良くあるご質問にこの場でお答えします。

ご質問:ブログもマイコンテンプレートサイトも、httpsではありません。安全ですか?

回答:httpsの目的は2つあります。1つが、サーバーとクライアント間の通信暗号化、つまり他人が通信傍受しても内容を判らなくする仕組みです。
パスワートや個人情報などの機密データを通信する場合にはhttpsは必須です。しかし、弊社ブログもマイコンテンプレートサイトも、閲覧時これら機密データの通信は発生しません。

テンプレートご購入時の銀行振込先やメール内容は、弊社サイトに無関係なhttps対応メーラー(outlook/hotmail/gmail…,etc)で通信しますので、セキュリティは万全です。

もう1つの目的が、Google検索上位を狙うSEO対策です。
Googleは、https推薦のため、httpサイトよりもhttpsサイトを検索上位に表示するそうです。これが多くのサイトがhttps化した大きな理由です。弊社も検索上位表示を望みますが、ベンダー提供以外のマイコン関連サイトは少なく、掲載の中身、つまりコンテンツで検索上位を狙うのが弊社方針です。

また、httpsサイトのドメイン取得は、httpサイトよりもコストが掛かるのも理由です。

弊社は、メンテナンスに多少手間が掛かっても、コスト重視でレンタルサーバーを選んでいます。極稀に今回のようなトラブルも発生しますが、懲りずに引き続き弊社ブログ、マイコンテンプレートサイトを今後ともよろしくお願いいたします。



投稿記事の表示、検索方法

本ブログは、マイコン:MCU関連情報をWordPressというソフトウェアを使って投稿しています。今回は、WordPressブログ投稿記事を効率的に表示、検索する方法を3つ示します。

※WordPressは、ブログサイト制作時に便利なツール。機能追加が容易なプラグインや、外観を簡単に変更できるテーマが多数あるので、カスタマイズも容易で、運営者が投稿のみに専念できる。

カテゴリ選択

各投稿の下には、カテゴリとタグ(キーワード)が表示されています。

投稿カテゴリーとタグ
各投稿の下に表示されるカテゴリーとタグ

カテゴリ選択は、1つのMCU投稿をピックアップして表示する最も簡単な方法です。

例えば、カテゴリのRL78マイコンをクリックすると、日付の新しい順にRL78関連投稿のみが表示されます。PCなどの大画面表示の時は、左端にカテゴリ一覧が表示されるので選択が簡単になります。

PCのカテゴリ表示
MCU毎の投稿を簡単にピックアップできるPCのカテゴリ表示

カテゴリ選択でブログを表示すると、興味のあるMCU投稿がまとまるので便利です。投稿数が多い時は、複数ページに渡りピックアップされます。表示ページ一番下に複数ページへのリンクが表示されます。

複数ページのリンク
カテゴリ投稿数が多い時に表示される複数ページのリンク

ページ番号が大きい、つまり日付の古い投稿は、そのMCUの選択理由や、IDE:統合開発環境インストール方法など最も基本的でMCU開発初期に必要となる情報が記載されています。古い順に読むとより容易にMCU理解が進むかもしれません。

タグ選択

カテゴリとは別に、投稿下にタグと呼ばれる、いわゆるキーワードが示されています。

投稿のタグ(キーワード)
各投稿の下に表示されるタグ(キーワード)

投稿内容で興味が湧いたキーワード(例:リアルタイムOS)がこのタグ内にある場合は、タグをクリックすると、キーワードにより投稿記事がまとめられます。タグ検索は、複数カテゴリに跨った横断的な検索方法です。

自分の興味があるMCUと他社MCU比較などに使うと便利です。

検索窓

ブログ右上にあるSearch:検索窓を使っても投稿の検索ができます。

検索窓
検索窓による投稿記事検索

タグに無いキーワードや、2018年4月など時期を検索窓に入力してクリックすると関連投稿が表示されます。

まとめ

ブログ投稿記事を効率的に表示、検索する方法を3つ示しました。

  1. カテゴリ選択:MCU毎の投稿まとめに最適
  2. タグ選択:キーワードでの横断的な複数MCU比較や理解に適す
  3. 検索窓:タグ以外のキーワードや、投稿時期での検索に適す

本プログは、複数MCUの内容を、時系列で投稿するので、興味ある対象が様々な雑音で読みにくくなる可能性はあります。この場合には、上記3方法で投稿をまとめると読み易くなると思います。

また、手動で関連する投稿を添付する場合もあります(関連投稿を自動選択するWordPressプラグインもありますが使っていません)。

但し、技術者リスク分散の点からは、雑音も耳に入れておくのも良いと思います。どの投稿もチョットした空き時間で読めるように、A4で1~2ページの文章量です。本ブログをご活用いただき、MCU情報整理やプロトタイプ開発に役立つマイコンテンプレートに興味を持っていただければ幸いです。

関連投稿:ルネサスのIDE買収とリスク分散:技術者個人のリスク分散必要性の章参照

マイコンソフトウェア開発の基礎知識と開発方法、配布開始

1月末に3回に分けて投稿した「マイコンソフトウェア開発の基礎知識と開発方法」を1つのpdf資料にまとめました。弊社マイコンテンプレートサイトのアプリケーション開発手順のページから、どなたでも無料ダウンロードが可能です。

Sample Software First and MCU Template
Sample Software First and MCU Template

この資料は、Sample Software Firstについて説明しています。マイコンテンプレートを使ったアプリケーション開発手順と合わせて読んで頂くと、マイコンソフトウェアの開発方法がより解り易くなると思います。

今後、ご購入頂いたマイコンテンプレートの付属資料としてこの資料も添付する予定です。

マイコンテンプレート購入検討中の方、既に購入された方でも、ご活用ください。

100MBフラッシュマイコンとFreeRTOS

ルネサス、100MB超の大容量フラッシュ内蔵、160℃で10年以上のデータ保持もできる車載可能な次世代マイコン実現にメドの記事が、EE Times Japanで12月6日発表されました。

ルネサス100MBフラッシュマイコン実現にメド
ルネサス100MBフラッシュマイコン実現にメド(記事より)

これは、ルネサスが車載半導体シェア30%を狙う動きとリンクしています。マイコンは、ROM128KB、RAM128KB(Cypress PSoC 4 BLEの例)の「キロバイト」容量から、5~6年後には「メガバイト」へと変わろうとしています。

FreeRTOS

Richard Barry氏により2003年に開発されたFreeRTOSもVersion 10が発表されました。12月3日投稿で示したようにアマゾンがAWS:Amazon Web Service接続のIoT MCUにFreeRTOSカーネルを提供したことで、マイコンへのFreeRTOS普及が一気に進む可能性があります。

Amazon FreeRTOS
Amazon FreeRTOS(サイトより)

従来のFreeRTOSは、5KB以下のROMにも収まりリアルタイム性とマルチタスク処理が特徴で、小容量マイコンでも十分に使えるRTOSでした。しかし、Amazon FreeRTOSの魅力的ライブラリをフル活用すると大容量ROM/RAMが必要になるハズです。フラッシュ大容量化、製造技術の細分化の流れは、マイコン高性能と低消費電力ももたらし、Amazon FreeRTOSを使用しても問題はなさそうです。

世界的な電気自動車化:EVシフトの動きは、マイコンに数年で激しい変化を与えます。弊社もCortex-M0\M0+コアに拘らず、STM32F1で使ったCortex-M3コアなどの更に高性能マイコンにも手を伸ばしたいと考えています。

ポイントは、FreeRTOSだと思います。その理由が以下です。

Amazon FreeRTOS対応のSTM32L475 Discovery kit for IoT Nodeのサイトで、AWS経由でどのようにクラウドに接続し、評価ボード実装済みの各種センサデータをグラウド送信する様子や、逆にグラウド側からボードLEDを制御する様子が英語Video(約11分)に紹介されています。
英語ですが、聞き取り易く、解り易いので是非ご覧ください。

Videoで使用したサンプルソフトも同サイトからダウンロードできます。殆ど出来上がったこのサンプルソフトへ、必要となるユーザ処理を追加しさえすれば、AWS IoT端末が出来上がります。

追加ユーザ処理は、FreeRTOSのタスクで開発します。タスクの中身は、初期設定と無限ループです。無限ループは、使用マイコン(Videoの場合はSTM32L4+)APIとFreeRTOS APIの組合せです。

つまり、従来マイコン開発に、新たにFreeRTOS API利用技術が加わった構成です。従来マイコン開発は、マイコンテンプレートで習得できます。但しFreeRTOS利用技術は、別途習得する必要がありそうです。

その他の細々したクラウド接続手続きは、通信プロトコル上の決まり文句で、独自性を出す部分ではありません。

マイコンテンプレートサイト、レスポンシブ化完了

その弊社マイコンテンプレートサイトのレスポンシブ化が完了しました。閲覧の方々が、PCやスマホで画面表示サイズを変えても、自動的に最適表示に調整します。

また、サイト運営側も従来サイトに比べ、ページ追加/削除が容易な構成に変わりました。より解りやすく充実したサイト内容にしていきます。動作テストを十分にしたつもりですが、ご感想、バグ情報などをメールで頂ければ幸いです。

レスポンシブサイトと説明資料

HappyTechサイトを年内完成目標に、レスポンシブ対応:Responsive Web Designへ改良します。

数年前にサイトを開発した時は、1ページ表示が流行っていたので、これに倣って(ならって)開発しました。しかし、スマホやタブレットなどのモバイルデバイスが増え状況が変わりました。

サイト内容のコンテンツ追加・削除もしにくい構成でしたので、流行のレスポンシブサイトに変更します。

Responsive Web Design
Responsive Web Design

レスポンシブテンプレートを探す

手っ取り早くレスポンシブサイトを開発する方法は、ネットに溢れるレスポンシブテンプレートを利用することです。

私は、HTML5 UPというサイトのテンプレートを利用しました。テンプレート説明資料はありませんので、開発には、多少のHTML、CSSの解読技術とベース知識が必要です。

レスポンシブテンプレートメリット

記載内容はそのままに、ユーザが使う画面大小に合わせて自動的に表示レイアウトを変えるのがレスポンシブサイトです。ご覧のブログはWordPressを使っていますので、利用テーマをレスポンシブ版に変えればそれで出来上がりますが、サイトの場合は、自分でHTMLとCSSを使って作り直す必要があります。

基本部分が出来上がったHTML5 UPテンプレートに、修正を加え動作を確認しながら、短期にサイトを開発できるのがテンプレート利用のメリットです。

マイコンテンプレートメリット

このメリットは、弊社マイコンテンプレートでも全く同じです。

サイト開発と同様、マイコンも動き出すまでに手間がかかります。また、動き出した後も、修正や変更が生じます。テンプレートを使うと、この動き出しまでの時間を、殆ど0に短縮できます。

マイコンAD変換:ADCを例に説明します。

ADCは、サンプルソフトも多く使い方も良く知られています。しかし、実際にセンサを接続して動作させると、複数回ADCの平均を計測値とするか、あるいは、1回のADCを計測値とするかは、アプリにより異なります。

通常は、ノイズ対策として平均値を用いる場合が多いです。それでも、測定間隔や何回の計算で平均を求めるかについては、センサとマイコンを接続し、実際に動作させカット&トライ:試行錯誤で決めるのがBestです。

この試行錯誤に適したソース構成が初めから出来上がっていれば、試行も容易でスパゲッティーコード(!?)にもなりません。

つまり、立ち上げを早くし、実動作に近い環境でプログラミングでき、しかもスパゲッティー化を避けられるのがマイコンテンプレートのメリットです。

マイコンテンプレート説明資料

説明資料があると、テンプレート修正や変更が容易になります。テンプレート開発者の考え方、指針が解るからです。最近のソースコードは、数行に渡るほどの多くの英語コメントが付いていますが、コメント文だけでは、これら考え方、指針は表現できません。

説明資料が無い場合は、どこを修正・変更すれば良いがが不明で、この場所を探すのに余分な時間が必要になります。マイコンソースコードは、その傾向が特に強く修正や変更で直にスパゲッティーコードになります。

標準的な決まりが多くあるHTMLやCSSと異なり、マイコンソースは比較的自由に記述できるからです。その結果たとえ同じ職場でも、他人が開発したマイコンソースは解読が難しいのが現状です。標準的な知識レベルがバラバラなのも原因の1つでしょう。デサインレビューの結果が反映され難いのです。

そこで、マイコンテンプレートには説明資料を添付し、標準的と思う私の考え方や開発指針を多く記載しています。テンプレートソースコードにも豊富な(冗長な!?)日本語コメントが付いています。

勿論、これら考え方や指針は、あくまでご購入者様のテンプレート理解が目的で、押付けではありません。テンプレート版権は、ご購入者様個人に帰属しますので、ご自分の考え方を反映した改良も自由です。

ご購入者様のご質問にも丁寧にお答えします。

マイコンテンプレートは、初心者~中級者向けです。しかし、全ての方のレベルに合わせた説明は、不可能です。それぞれの方でご質問は、異なります。広いレベルの方に参考になると思ったご質問に関しては、テンプレート改版時、説明資料へ付け加えています。

以上の方針で、マイコンテンプレート説明資料やソースコードを作成しています。

マイコンテンプレートご購入者は、または購入検討中の方であっても、いつでも、どのようなご質問でも、大歓迎です。お気軽にinfo@happytech.jpまでお寄せください。

WordPressテーマ変更

使用中のWordPressテーマが、テーマディレクトリから削除されました。削除理由は、私には良く解りませんが、テーマ作者が管理者との交渉の末の決定ですので、尊重いたします。

現行版は、殆どのカスタマイズがGUIででき、気に入っていただけにとても残念です。

そこで、現行版と違和感が少ない代替テーマを探しています。
個人的には、レスポンシブレイアウトなどは好まないのですが、今はほぼ全てのテーマがレスポンシブ対応です。また、私がカスタマイズしたい内容に対して、直接ソースコードを変えなければならないなど結構手間暇がかかります。

近日中に本ブログにアクセスされた時に、異なるフォームが表示されるかもしれませんが、より良く分かりやすいブログを心掛けて代替テーマへ変更しますので、ご安心ください。

記載IoTデバイス、IDE、テンプレート動作ボード一覧追加

ブログ記載の「IoT制御デバイス」、「マイコンIDE」、「テンプレート動作ボード」が一目で解る表を追加しました。記載IoTデバイスのプルダウンメニューで表示します。

ブログ記載IoTデバイスのプルダウン表示
ブログ記載IoTデバイスのプルダウン表示

これらは、Wordpress固定ページ機能を使っていますので、通常ブログ記事よりも大きな範囲で表示します。

今後、デバイス追加や対象IDEが変化した時、テンプレート動作確認ボードを追加した時は、この表を随時更新していきます。最新のブログ対応状況をチェックする時などにご利用ください。

ブログカテゴリ変更とテンプレートサイト更新のお知らせ

本ブログカテゴリを下記のとおり変更しました。

「MCU:マイコン」と「MPU/SCB:IoT用コンピュータ」を別カテゴリにしました。

※MCU: Micro Controller Unit…    ARM Cortex-M0+/M0、NXP) LPC, Kinetisシリーズ、Cypress)PSoC 4 /PSoC 4 BLE/PROCシリーズ、ルネサス)RL78/G1xシリーズなど

※MPU/SCB: Micro Processor Unit or Single Board Computer…      Raspberry Piシリーズ、DragonBoardなど

→ MCUとMPU/SCBのIoT階層構造は、コチラを参照してください。

マイリンクも下記とおり変更しました。

マイコンテンプレートサイトに、「マイコンテンプレートを利用する際に知っていると便利なTipsやコツ」のページを追加しました。

今後、MPU/SCB:IoT用コンピュータの内容も充実させる予定です。

マイコンテンプレートサイト更新完了

12月30日のPSoC 4、PSoC 4 BLE、PRoCテンプレート発売に間に合わなかったマイコンテンプレートサイトの更新が完了しました。

今回の更新では、LED照明ページを削除し、マイコンテンプレート関連のみのサイトとしました。昨年10月のサイト障害時の、“Simple is Best”の経験が理由です。

LPCXpresso v8.0.0へ更新

Freescaleを買収した新NXP、ARM Cortex-M0/M0+マイコンの今後のラインアップについては、気になるところですが解りません。NXPサイトを観ると、LPC8xx/111x、旧FreescaleのKinetisシリーズ全てがそのまま残っています。暫くは、様子を観察する必要がありそうです。

例えば、Cypressは、2014年末に買収したSpansionのFM0+マイコンを1年経過後の2015年11月、Cypress名で発売しました。このように、買収や合併で既販マイコンがどうなるかの判断は難しいものです。

そんななか、LPCXpressoは、v8へ更新されました(更新日は合併完了直前の2015/11月、LPCOpenは、V2.19のまま更新無し)。また、Kinetis Design StudioやProcessor Expertも更新されております。新マイコン追加等はありませんが、最新版へのUpdateをお勧めします。

Windows XPサポート終了とWindows 10への対応だと思います。どちらのIDEもEclipseベースですので、これも統合などがあるかもしれません。

ブログ復旧のお知らせ

ここ数日、サイトにトラブルが発生し、ブログにアクセスできない状態が続きましたが復旧しました。
期間中、読者の皆様へご迷惑をおかけしましたことをお詫び申し上げます。

サイトのホームページ復旧は、即日可能でしたが、ブログ復旧には手間取りました。原因は、WordPressのデータベースが壊れたためで、テーマを変更しようとライブプレビューを繰返したことが原因かも?と思っております。

弊社サイトは、「ホームページ」と「WordPressを使ったブログ」の2部構成で、ホームページは、簡単な自社開発テンプレートを使ったつくりのため、直ぐに復旧できますが、WordPressは、正式版の機能満載で複雑なつくりのため、大変でした。何事も、“Simple is best”ですね。

今後同様の403/404エラーページが表示された場合には、ホームページ側へアクセスしてください。
ホームページは、マイコンテンプレートとLED照明の2内容を記載しておりますが、今回の教訓として、「マイコンテンプレートの内容を充実するとともに、LED照明ページは削除しシンプル化」する予定です。

シンプル化で障害時ホームページのより早い復旧、ブログ内容を整理した「まとめページの充実」により、WordPressブログアクセス不能中でもマイコンテンプレート情報を提供することが目的です。