しもむブログ

技術メモ。といっても高度なことは書けないので…初心者がハマったところや、ググってもすぐには出てこないようなものを書くつもり。

Microsoft Azure Virtual Training Day: Fundamentalsの受講特典として無料でAZ-900が受験できるが申込み画面でエラーになる

  • これはInfocom Advent Calendar 2020 21日目の記事です。

  • 今年からMicrosoft Azureを使い始めているが体系的な勉強はできていない

  • Twitterで広告に出てきたので「Fundamentals: Azure の基礎」というのに申し込んでみた

www.microsoft.com

また、Azure Fundamentals (AZ-900 試験) を受験し、Microsoft Certified Azure Fundamentals 認定を受けるための準備としてもご活用いただけます。
2 日間両日を受講された方には、各認定試験機関で AZ-900 を無料で受験できる特典をご用意しております。
  • とのこと。12,500円お得になるのに期待。
続きを読む

技術士第一次試験を受験してきた

  • 10/11に技術士第一次試験を受験してきた
  • 技術士は機電系や建築・建設系の人がとる資格として知っていたものの、IT業界での知名度は低い印象
  • 技術士までたどりつくには難易度が高いだけでなく長期戦にもなるので、モチベーションがなかったが、千里の山も一歩からということで受験してみた

受験前の前提

  • 大学院修士までバイオ系を専攻
    • 新型コロナで一躍有名になったPCRは毎日のようにやっていた
  • 社会人になってからはITベンダーで開発のお仕事(10年目)
  • 今回に関連のある保有資格
    • 危険物取扱者(甲種、乙4) -> 甲種は過去に科目免除に使えた
    • 情報処理安全確保支援士 -> 2020年度、情報工学部門は専門科目免除に使える

2月頃の現在地

I 基礎科目
  • IPAの試験の択一式と比べると計算量が多めなので時間がかかる
    • 電卓の使用は認められているので絶対に使ったほうがよい
  • 各群5問中3問解答なので選球眼が重要
  • 各群の感触
    • 1群
      • IPAの試験で出るような問題も混ざっているが、出題運に依存する
    • 2群
      • IPAの試験で出るような問題がほとんどでなんとかなりそう
    • 3群 解析に関するもの
      • 壊滅的、全くわからない
    • 4群 材料・化学・バイオに関するもの
      • 昔とった杵柄でなんとかなりそう
    • 5群 環境・エネルギー・技術に関するもの
      • 常識的に考えれば解けそうな問題もあるが、出題運にかなり依存する
II 適性科目
  • 常識的に考えれば解けそうな問題が多いが、出題運に依存する
  • 択一式だが、正誤の組み合わせや(不)適切なものの数を問われるので、1問のなかで色々なことを知っていないと正解しにくい

作戦

  • 過去問の解説と出題ジャンル総整理が載っている らくらく突破 2019年版 技術士第一次試験[基礎科目・適性科目]過去問題集 を購入
  • I 基礎科目
    • 1, 2, 4群をメインに5群を足して合格点を稼ぐ(50%以上、8/15問が合格ライン)
    • 1, 5群は出題運に依存しないよう満遍なく勉強する
    • 保険で3群の一部を解けるように勉強しておく -> 微積分、行列と一部の物理にのみ注力
  • II 適性科目
    • 出題運に依存しないよう満遍なく勉強する
  • 点をとると決めた分野は過去問を5問全て解いて、解説を読みながらノートに整理する
    • 基礎科目は群を決めたら複数年まとめてやって定着のしやすさを高める
    • 参考書を読んでもわからないところはぐぐって補完
  • 各科目はI, IIとついているが、実際の試験は II -> I で行われるので当日の順番も意識して勉強する
  • 前日に参考書には載っていない2019年の過去問を本番と同じように解いた
    • 合格点に達していたが、出題運の不安は拭えなかった

受験当日

  • コロナと台風で実施がどうなるかという不安があったが、無事実施された
  • 受験票が届いた時点で感染リスクを下げるために試験時間を全て午後に収めるように繰り下げられていた
    • 私の場合は14:30〜だったのでのんびり行けた
  • 場所は早稲田大学 西早稲田キャンパス
    • 一級建築士の試験もやっていたようでそれなりに人がいた
  • 当日の体温をはかり受験票に記入するか、はかっていない人はキャンパスの入口ではかる
  • 建物やトイレの出入り口にアルコール設置
  • トイレは行列の間隔を保てるよう足元に目印があり、出入りの人数をスタッフが管理
  • 3人掛けの机に真ん中空けて2人着席なので、人口密度は一般的な試験とかわらなかった
    • 欠席率が低いので、IPAの試験と比べるとむしろ密に感じた
  • 試験中も教室のドアはあけっぱなし
  • 試験中もマスク着用、写真照合の時はマスクをずらす
    • ときどきずらして、ちゃんと酸素を吸って頭がクリアになるようにした
  • ペットボトルとボトル缶を机上に置くことは許可されていたが、水筒を出していた人はしまわされていた。

受験後

  • 適性科目は常識的に考えて解けたものの、確信を持てる問題が少なかった
  • 基礎科目
    • 解けるはずなのに文の意味が半分理解できない問題にムキになってしまい、時間ギリギリになってしまった
    • 選択なのでマークシート上は歯抜けになってしまうため、正しくマークできているか気を遣っていたにもかかわらずずれている箇所があった(ちゃんと修正)
    • 4群で話題のPCRについての出題があってラッキー
  • 10/19に正答が公開されたので自己採点
    • 基礎科目:11/15 (73%)
      • 1,2,4群で9問 + 3,5群が2問なので作戦通りに点が取れた
    • 適性科目:12/15 (80%)
  • マークミスさえしていなければ合格してそう

【2021/01/09追記】

  • 自己採点どおり合格していました!

在宅勤務用にダンボールデスクを購入した

  • もともと東京オリンピック時の在宅勤務用に処分が簡単なデスクがほしかった
  • 以前はこれを調べていたが、1NZD65円だとしても26,000円弱もしたので諦めた(当時はもう少し円安だった)
    • Sitting desk 200.00 NZD
    • Shipping 192.87 NZD

refold.co

  • COVID-19で在宅勤務になったが、自宅にはローテーブルしかないので床に正座しながらの仕事が1ヶ月続くのはさすがにしんどい
  • 再度調べたらちょうどよさそうなのがあった

uchidashokai.com

  • 高さ 660mmは低いと思ったが、下に雑誌とか置けばなんとでもなる
  • カスタマイズもできそうだが、何cmがいいかこだわり始めるとキリがないのでデフォルトでいく
  • webのお問い合わせフォームからコンタクトを取り、メールのやり取りで注文完了
  • 4/23に発注して、4/29にゆうパックの代金引換で到着

組み立て開始

f:id:mshimomu:20200430191052j:plain

  • 脚を組み立て中板をはめる

f:id:mshimomu:20200430191447j:plain

  • 天板をはめる

f:id:mshimomu:20200430191834j:plain

  • 組み立て完了

f:id:mshimomu:20200430191949j:plain

  • 予想通り低かったので四季報で高さ調節

f:id:mshimomu:20200430192434j:plain

  • これで在宅勤務もより捗るはず

PoCのアプリケーションログをクラウドストレージサービスで収集する

はじめに

  • PoCをやっても「1週間経って全然動いて(動かして)いませんでした」ということが何度かあった
  • どう見ても時間が無駄に流れていくだけだったのでそれをなくしたかった

やろうとしたこと

  • PoC現場をフォローするにしてもリモートでもある程度状況がわかるようにしてからにしたい
  • ログ収集するにもPoC現場の手を動かしてもらいたくない
  • いわゆるログ収集をするのはめんどくさいので楽にやりたい

やったこと

  • クラウドストレージサービスのパスにログを出せば楽にログが手に入るのでは?と考えた
  • 大人の都合でPoC専用で用意
  • クラウドストレージサービス
    • Box Sync
      • 同期タイミングはよくわからないが、必ずしもリアルタイムでわかる必要はない
      • 翌日見れれば上記の1週間経っても〜という課題は十分解決できる
      • 別にDropboxなど他のサービスでもできるはず
  • PoCアプリケーション
    • 動作で知りたいことをログを仕込んでBox Syncに出力した
    • 日単位でローテート
      • 同期の仕様はわからないが、これなら通信量も少なくできるだろうと思った

結果

  • 簡単にリモートでログが見れるようになった
    • 画像の例だとログファイルのサイズと内容から2019/7/27 16:51以降操作がされていないことがわかったので先手を打ってフォローできた
  • SIMの通信量制限にもひっかからずに動いた

f:id:mshimomu:20191221231830p:plain

OpenBlocks IoT EX1 バージョン 8(jessie)にOpenJDK8をインストールする

前提条件

  • OpenBlocks IoT EX1
  • Debian 8.11

失敗例

  • 無邪気に入れようとするがエラー
root@obsiot:~# apt-get install openjdk-8-jdk
Reading package lists... 0%Reading package lists... 100%Reading package lists... Done
Building dependency tree... 0%Building dependency tree... 0%Building dependency tree... 50%Building dependency tree... 50%Building dependency tree... 59%Building dependency tree... 90%Building dependency tree       
Reading state information... 0%Reading state information... 0%Reading state information... Done
Package openjdk-8-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'openjdk-8-jdk' has no installation candidate
  • 探してみるがなさそう
root@obsiot:~# apt-cache search jdk
libanimal-sniffer-java - JDK/API verification tools
libanimal-sniffer-java-doc - Documentation for Animal Sniffer
jvm-7-avian-jre - lightweight virtual machine using the OpenJDK class library
libcommons-math-java - Java lightweight mathematics and statistics components
libcommons-math-java-doc - Java lightweight mathematics and statistics components - documentation
libcommons-math3-java - Java lightweight mathematics and statistics components
libcommons-math3-java-doc - Java lightweight mathematics and statistics components - documentation
fakeroot-ng - Gives a fake root environment
freemind - Java Program for creating and viewing Mindmaps
gcj-4.8-jdk - GCJ and Classpath development tools for Java(TM)
gcj-4.9-jdk - GCJ and Classpath development tools for Java(TM)
gcj-jdk - gcj and Classpath development tools for Java(TM)
libhessian-java - Java implementation of a binary protocol for web services
libhessian-java-doc - Documentation for libhessian-java
icedtea-7-plugin - web browser plugin based on OpenJDK and IcedTea to execute Java applets
libicu4j-java - Library for Unicode support and internationalization
libicu4j-4.4-java - Library for Unicode support and internationalization
libicu4j-49-java - Library for Unicode support and internationalization
japitools - Java API compatibility testing tools
default-jdk - Standard Java or Java compatible Development Kit
default-jdk-doc - Standard Java or Java compatible Development Kit (documentation)
default-jre - Standard Java or Java compatible Runtime
default-jre-headless - Standard Java or Java compatible Runtime (headless)
gcj-native-helper - Standard helper tools for creating gcj native packages
java3ds-fileloader - Java3D 3DS File Loader
libjson-simple-java - Simple, lightweight and efficient JSON toolkit for Java
jtreg - Regression Test Harness for the OpenJDK platform
libcommons-collections3-java - Apache Commons Collections - Extended Collections API for Java
libcommons-collections4-java - Apache Commons Collections - Extended Collections API for Java
libcommons-collections4-java-doc - Documentation for Commons Collections 4
libcommons-lang-java - Commons Lang - an extension of the java.lang package
libcommons-lang-java-doc - Documentation for Commons Lang - an extension of the java.lang package
libcommons-lang3-java - Extension of the java.lang package (for Java 5+)
libcommons-lang3-java-doc - Documentation for extension of the java.lang package (for Java 5+)
libcommons-launcher-java - Apache Commons Launcher - Cross platform Java application launcher
libhibernate-commons-annotations-java - Hibernate Commons Annotations
libitext1-java - Java Library to generate PDF on the Fly
libjboss-common-java - The JBoss Common Project
libjboss-marshalling-java - alternative serialization API
libjxp-java - Java template engine/script processor
libnb-javaparser-java - Parser for the Java language which is good for use in tools
libpostgresql-jdbc-java - Java database (JDBC) driver for PostgreSQL
libpostgresql-jdbc-java-doc - Java database (JDBC) driver for PostgreSQL (documentation)
libreoffice - office productivity suite (metapackage)
libslf4j-java - Simple Logging Facade for Java
mauve - free test suite for the Java Class libraries
libmaven-enforcer-plugin-java - Maven build rule execution framework
mmake - Makefile generator for Java programs
icedtea-7-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
openjdk-7-dbg - Java runtime based on OpenJDK (debugging symbols)
openjdk-7-demo - Java runtime based on OpenJDK (demos and examples)
openjdk-7-doc - OpenJDK Development Kit (JDK) documentation
openjdk-7-jdk - OpenJDK Development Kit (JDK)
openjdk-7-jre - OpenJDK Java runtime, using Hotspot JIT
openjdk-7-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-7-jre-lib - OpenJDK Java runtime (architecture independent libraries)
openjdk-7-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-7-source - OpenJDK Development Kit (JDK) source files
openjdk-7-jre-dcevm - Alternative VM for OpenJDK 7 with enhanced class redefinition
libpracticalxml-java - practical XML handling routines
substance - cross-platform look & feel for Swing applications
substance-doc - cross-platform look & feel for Swing applications - documentation
testng - testing framework for Java
libtrove-java - high performance collections for java
libtrove-java-doc - high performance collections for java
libtrove3-java - high performance collections for java
libtrove3-java-doc - high performance collections for java
usepackage - utility to manage environment variables from within dotfiles
uwsgi-app-integration-plugins - plugins for integration of uWSGI and application
uwsgi-plugin-jvm-openjdk-7 - Java plugin for uWSGI (OpenJDK 7)
uwsgi-plugin-jwsgi-openjdk-7 - JWSGI plugin for uWSGI (OpenJDK 7)
libvisualvm-jni - All-in-One Java Troubleshooting Tool (JNI libraries)
visualvm - All-in-One Java Troubleshooting Tool
libwagon-java - tools to manage Maven artifacts and deployment

やったこと

  • /etc/apt/sources.listを修正
root@obsiot:~# vi /etc/apt/sources.list

deb http://ftp.jp.debian.org/debian/ jessie main
deb-src http://ftp.jp.debian.org/debian/ jessie main

# deb http://ftp.jp.debian.org/debian/ jessie-backports main
# deb-src http://ftp.jp.debian.org/debian/ jessie-backports main

#deb http://ftp.jp.debian.org/debian/ jessie-updates main  #コメントアウト
#deb-src http://ftp.jp.debian.org/debian/ jessie-updates main  #コメントアウト

deb http://security.debian.org jessie/updates main
deb-src http://security.debian.org jessie/updates main

deb http://ftp.plathome.co.jp/pub/BX1/debian/jessie ./
deb http://archive.debian.org/debian jessie-backports main  #追記
  • ファイルを2つ作成
echo "Acquire::Check-Valid-Until false;" >/etc/apt/apt.conf.d/10-nocheckvalid
echo 'Package: *\nPin: origin "archive.debian.org"\nPin-Priority: 500' >/etc/apt/preferences.d/10-archive-pin
  • 更新してインストール
apt-get update
apt-get install -t jessie-backports openjdk-8-jre-headless ca-certificates-java
apt-get install -t jessie-backports openjdk-8-jdk openjdk-8-jre
  • OpenJDK7が入っていたので切り替える
root@obsiot:~# /usr/sbin/update-java-alternatives -l
java-1.7.0-openjdk-i386 1071 /usr/lib/jvm/java-1.7.0-openjdk-i386
java-1.8.0-openjdk-i386 1069 /usr/lib/jvm/java-1.8.0-openjdk-i386
root@obsiot:~# sudo /usr/sbin/update-java-alternatives -s java-1.8.0-openjdk-i386
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so
  • バージョンの確認
root@obsiot:~# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~bpo8+1-b11)
OpenJDK Server VM (build 25.171-b11, mixed mode)
root@obsiot:~# javac -version
javac 1.8.0_171
  • いいかんじでIoT(OpenBlocks)ネタが多くなってきた

参考

OpenBlocks IoT EX1にSDカードを挿す時はマウントポイントに気をつける

  • ログを大量かつ長期間とっておきたいので念のためディスク容量を増やしておきたい
  • 開発者向けガイドを読むとMMCスロットがあり、まさにうってつけである

MMCはシステム運用に十分な信頼性を確保できない為、ファイル交換やログ保存用等にご利用ください。

  • たまたま余っていたSDカードをもらったので挿してみる
続きを読む