Tag: Hugo
Hugoに切り替え
長年、WordPressで当サイトを運用してきましたが、別件でパフォーマンスが厳しいサイトがありまして、静的なサイト運用を検討する中で、まずは自社サイトからと思いHugoに切り替えることにしました。
WordPressからのエクスポートは wordpress-to-hugo-exporter こちらを利用してcliでzipファイルを取得しました。
Tag: Django
Django勉強会を開催しました
台風10号の心配がありましたが、当日の午後には晴れの予報に変わったので予定通り開催できました。
https://pyehime.connpass.com/event/326007
pyehimeとしては久々のイベントで(長年放置していてすみません)x.comとehimeitのslackからの告知程度でしたが、非エンジニアの方や学生さんを含め多くの方の参加がありました。
イベントの内容については、当初はそれぞれ課題を持ち込んでもらってもくもく勉強会の形で考えていたのですが、参加者みなさんにそれなりの成果物を持ち帰ってもらうことも必要と思い、日記サイトのお題を用意したところ、全員がお題に取り組んでくれました。
8月のDjango勉強会に向けて準備
8月末にDjangoの勉強会を開催予定です。
https://pyehime.connpass.com/event/326007
PyEhimeとしてはx年ぶりのイベントです。(長らく放置していてすみません)
ということで、当日の参考になりそうなリンクをこの記事にまとめておきます。
DjangoをRenderにdeployしてみる – deploy編(2/2)
前の記事からの続きです。
Render用に環境変数を整える
settings.py
DEBUG = 'RENDER' not in os.environ
SECRET_KEY = os.environ.get('SECRET_KEY')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS')
RENDER_EXTERNAL_HOSTNAME = os.environ.get('RENDER_EXTERNAL_HOSTNAME')
if RENDER_EXTERNAL_HOSTNAME:
ALLOWED_HOSTS.append(RENDER_EXTERNAL_HOSTNAME)
環境変数にRENDERが定義されていたら DEBUG=False にする。
ALLOWED_HOSTSにRENDER_EXTERNAL_HOSTNAMEを追加する。
DjangoをRenderにdeployしてみる – 準備編(1/2)
https://docs.render.com/deploy-django#creating-a-new-django-project
上のRenderの記事に沿って進めてみます。
最初に作業用のリポジトリを用意します。
https://github.com/kazweda/myrender
git clone https://github.com/kazweda/myrender
作業手順を随時issue化して commit, push しておけば、中断しても後で再開しやすくなります。
python環境を作成
python3 -m venv venv
source venv/bin/activate
Djangoをインストールしてプロジェクトを作成
pip install Django==5.0.7
pip freeze > requirements.txt
django-admin startproject myrender .
Djangoの画像リサイズ
GitHubのsecurity alertが届いたので調査、対応。
Removed Image.ANTIALIAS
(ちなみに現時点のPillowは10.0.1)
これに伴って django-imagekit, pilkit をアップデート。
Cookiecutter Django のテスト
python3環境とcookiecutter実行
cookiecutter設定項目
必要な環境に合わせて適宜変更…
出来上がったプロジェクトフォルダに移動して、
ビルド・実行、停止
メールアドレスでユーザーを追加する際のactivation
Mailhog
ビルドをやり直す場合
(参考)Quickstart: Compose and Django
PyEhimeもくもく勉強会を開催しました
イベントページはこちら
今回のみなさんの課題は、
- Djangoチュートリアル
- 機械学習 – オンライン講座
- 環境構築 – VirtualBox
このような感じでした。
私自身は、前回(昨年12月)のもくもく会の際に、
環境構築はそれぞれ勉強なり準備するとして、成果物を簡単に共有できた方が良い。
のような議論があって、そのときにあがった Cloud9 を使ってDjangoチュートリアルを進めました。
事前に Cloud9 でDjangoプロジェクトを作ってある程度進めていたので、
はじめての Django アプリ作成、その 6
はじめての Django アプリ作成、その 7
このあたりを中心に試してみました。
テンプレートのカスタマイズや管理サイトの機能追加など、実際にコードを書いてブラウザで確認することでDjangoの雰囲気がつかめて来た気がします。
さて、次回ですが、まだ具体的な時期とかは決めていませんが、流行の機械学習を一緒に学んでみようと思っています。
06.12追記
もくもく会の後半で少し議論させていただいた教育関係のクラウド導入の件で、まとまった資料が公開されていたので参考まで。↓
総務省 – 「教育ICTの新しいスタイル クラウド導入ガイドブック2016」の公表
PyEhimeもくもく勉強会
前回の開催から少し間が空きましたが、2回目のもくもく勉強会を開催しました。
都合により、今回も急遽の開催となってしまいました。十分な告知ができずすみません。
次回は、会場の手配を含めてもう少し余裕を持って準備しようと思いますので、ご理解・ご協力をお願いします。
前回はPyEhimeの初めての自主開催ということもあって、とりあえず集まっての意見交換程度でしたが、今回は少し足並みを揃えて、cloud9でdjangoを動かしてみるというところまではできました。
ちなみに、私は今回の勉強会のために、事前にvagrantでローカルの開発環境を用意して、準備万端のつもりだったのですが、現地で起動してみるとホストOSからアクセスできない状態。あとで調べて、CentOS(vagrant box)のネットワークインターフェースの問題ということがわかりました。この辺りも、まだまだ経験不足です。
それと、当日、私が風邪気味で頭がぼんやりしていてあまり手を動かすことができませんでした。いろいろ失礼しました。
さて、このような感じで、cloud9というクラウド上の開発環境を一つのノウハウとして共有することができましたので、このあたりをベースにして勉強会を継続できればと思っています。
ただし、具体的な目的や目標がないと、どうしても時間を無駄にしてしまいますので、何か一冊、本を選ぶなどして効率よく学ぶことも考えてみます。
まだまだぎこちないですが、まったりとやっていますので、pythonプログラミングにご興味のある方はお気軽にご参加ください。
適宜、ハッシュタグ #pyehime でおしらせします。
それとPyCon JP参加者交流用のSlackがあります。そちらのehimeチャネルで日常のやり取りをしていますので、よかったらどうぞ。
Django on vagrant の環境構築の補足 – Python3
pyvenv の pip を更新(9.0.1)して、
$ pip list
とすると、
DEPRECATION: The default format will switch to columns in the future. You can use –format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
という警告が表示されたので、
https://pip.pypa.io/en/stable/user_guide/#configuration
こちらを参考に、
(pyvenv)/pip.conf
を作成。
[list]
format=columns
次に、開発用の簡易Webサーバを起動して、ブラウザで開くと、
DisallowedHost at / …
のような警告が表示されたので、
https://docs.djangoproject.com/en/1.10/topics/settings/
こちらを参考に、
(project)/settings.pyを編集して、
ALLOWED_HOSTS = [ '192.168.33.xx' ]
を追加。
追記(2016/12/12)
モデル定義を編集してmigrateしたところでWARINGSが表示された。
WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection ‘default’
HINT: MySQL’s Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-sql-mode
PyEhimeもくもく勉強会
7月末にPython Boot Camp in 愛媛(初心者向けチュートリアル)を開催したあとで、Slackでやり取りをしていまして、その中で各々勉強したい課題が幾つか見えてきましたので、今後の愛媛でのPythonコミュニティの活動をどうしていくかという作戦会議を兼ねてもくもく勉強会を開催しました。
開催に向けて日程調整をしたところ、connpassでイベントを公開したのが開催の2日前という、急遽の開催となってしまいました。
告知期間が短くてすみません。今後の愛媛での開催に向けての準備ということでご理解いいただければ幸いです。
また、急な開催にもかかわらず4名の方にご参加いただきました。お忙しい中ありがとうございます。
会場に利用させていただいたカフェですが、Wi-Fi環境はフリーなものがいろいろ使えます。ただし6人掛けのテーブル席まわりでは電源は取れませんでした。4人掛けのエリアにはいくつかあるそうです。
開催中の様子。

さて、開催の中身ですが、
- vagrant + python3 + django
- python programming on Android
- urllib + BeautiflSoupによるスクレイピング
- eclipseのDjango開発環境
- cloud9でDjango
- 次回は11月中旬以降?
- それぞれ興味のあるライブラリを試してみて教えあう
- もう少しDjangoを使って参加者のレベルを近づける
- などなど…
のような感じでした。
あと、Google Driveでのファイル共有、appear.inでの画面共有なども行いました。
始めたばかりで右往左往の状態ですが、無理のない範囲で継続していきたいと思います。
Pythonプログラミングにご興味のある方がいらっしゃいましたらお気軽にご参加ください。
Tag: Python
Django勉強会を開催しました
台風10号の心配がありましたが、当日の午後には晴れの予報に変わったので予定通り開催できました。
https://pyehime.connpass.com/event/326007
pyehimeとしては久々のイベントで(長年放置していてすみません)x.comとehimeitのslackからの告知程度でしたが、非エンジニアの方や学生さんを含め多くの方の参加がありました。
イベントの内容については、当初はそれぞれ課題を持ち込んでもらってもくもく勉強会の形で考えていたのですが、参加者みなさんにそれなりの成果物を持ち帰ってもらうことも必要と思い、日記サイトのお題を用意したところ、全員がお題に取り組んでくれました。
DjangoをRenderにdeployしてみる – deploy編(2/2)
前の記事からの続きです。
Render用に環境変数を整える
settings.py
DEBUG = 'RENDER' not in os.environ
SECRET_KEY = os.environ.get('SECRET_KEY')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS')
RENDER_EXTERNAL_HOSTNAME = os.environ.get('RENDER_EXTERNAL_HOSTNAME')
if RENDER_EXTERNAL_HOSTNAME:
ALLOWED_HOSTS.append(RENDER_EXTERNAL_HOSTNAME)
環境変数にRENDERが定義されていたら DEBUG=False にする。
ALLOWED_HOSTSにRENDER_EXTERNAL_HOSTNAMEを追加する。
PyEhime 20181020 – MkDocs
ターミナル(シェル環境)
$ env | grep LANG
何も設定されていない場合は、
$ export LANG=ja_JP.UTF-8
としておく。
Python3環境
venvをお勧めします。作業用フォルダを workspace とすると、
$ cd workspace
$ python3 -m venv venv
$ source venv/bin/activate
mkdocs インストール
$ pip install mkdocs
pip 自体のアップグレードが勧められたら、
$ pip install --upgrade pip
mkdocsのプロジェクト作成
$ mkdocs new mktest
ビルド
$ cd mktest
$ mkdocs serve
ブラウザで http://127.0.0.1:8000
を開く。
カスタマイズ
いろいろ記事がありますので、適宜試してみてください。
MkDocsによるドキュメント作成
練習で数式を試してみました。
https://kazweda.github.io/mkdocs-lesson/math/
GitHub Pages
GitHubでリポジトリを作成。mktest
git clone の URL(PATH/TO/REPO)を取得
$ git init
$ git remote add origin (PATH/TO/REPO)
$ git pull origin master
$ mkdocs gh-deploy
Visual Studio Codeを使ってみる – macOS
Get Started Tutorialにそって進めてみる
Python環境の確認
Python 3.0 Release
パッケージをインストール
$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
$ python3 --version
Python 3.6.5
Visual Studio Code インストール
python3 -m venv
$ cd Hello
$ python3 -m venv venv
$ cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
VSCodeを起動
$ code .

Configure Python Environment
PyEhimeもくもく勉強会を開催しました
イベントページはこちら
今回のみなさんの課題は、
- Djangoチュートリアル
- 機械学習 – オンライン講座
- 環境構築 – VirtualBox
このような感じでした。
私自身は、前回(昨年12月)のもくもく会の際に、
環境構築はそれぞれ勉強なり準備するとして、成果物を簡単に共有できた方が良い。
のような議論があって、そのときにあがった Cloud9 を使ってDjangoチュートリアルを進めました。
事前に Cloud9 でDjangoプロジェクトを作ってある程度進めていたので、
はじめての Django アプリ作成、その 6
はじめての Django アプリ作成、その 7
このあたりを中心に試してみました。
テンプレートのカスタマイズや管理サイトの機能追加など、実際にコードを書いてブラウザで確認することでDjangoの雰囲気がつかめて来た気がします。
さて、次回ですが、まだ具体的な時期とかは決めていませんが、流行の機械学習を一緒に学んでみようと思っています。
06.12追記
もくもく会の後半で少し議論させていただいた教育関係のクラウド導入の件で、まとまった資料が公開されていたので参考まで。↓
総務省 – 「教育ICTの新しいスタイル クラウド導入ガイドブック2016」の公表
PyEhimeもくもく勉強会
前回の開催から少し間が空きましたが、2回目のもくもく勉強会を開催しました。
都合により、今回も急遽の開催となってしまいました。十分な告知ができずすみません。
次回は、会場の手配を含めてもう少し余裕を持って準備しようと思いますので、ご理解・ご協力をお願いします。
前回はPyEhimeの初めての自主開催ということもあって、とりあえず集まっての意見交換程度でしたが、今回は少し足並みを揃えて、cloud9でdjangoを動かしてみるというところまではできました。
ちなみに、私は今回の勉強会のために、事前にvagrantでローカルの開発環境を用意して、準備万端のつもりだったのですが、現地で起動してみるとホストOSからアクセスできない状態。あとで調べて、CentOS(vagrant box)のネットワークインターフェースの問題ということがわかりました。この辺りも、まだまだ経験不足です。
それと、当日、私が風邪気味で頭がぼんやりしていてあまり手を動かすことができませんでした。いろいろ失礼しました。
さて、このような感じで、cloud9というクラウド上の開発環境を一つのノウハウとして共有することができましたので、このあたりをベースにして勉強会を継続できればと思っています。
ただし、具体的な目的や目標がないと、どうしても時間を無駄にしてしまいますので、何か一冊、本を選ぶなどして効率よく学ぶことも考えてみます。
まだまだぎこちないですが、まったりとやっていますので、pythonプログラミングにご興味のある方はお気軽にご参加ください。
適宜、ハッシュタグ #pyehime でおしらせします。
それとPyCon JP参加者交流用のSlackがあります。そちらのehimeチャネルで日常のやり取りをしていますので、よかったらどうぞ。
Django on vagrant の環境構築の補足 – Python3
pyvenv の pip を更新(9.0.1)して、
$ pip list
とすると、
DEPRECATION: The default format will switch to columns in the future. You can use –format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
という警告が表示されたので、
https://pip.pypa.io/en/stable/user_guide/#configuration
こちらを参考に、
(pyvenv)/pip.conf
を作成。
[list]
format=columns
次に、開発用の簡易Webサーバを起動して、ブラウザで開くと、
DisallowedHost at / …
のような警告が表示されたので、
https://docs.djangoproject.com/en/1.10/topics/settings/
こちらを参考に、
(project)/settings.pyを編集して、
ALLOWED_HOSTS = [ '192.168.33.xx' ]
を追加。
追記(2016/12/12)
モデル定義を編集してmigrateしたところでWARINGSが表示された。
WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection ‘default’
HINT: MySQL’s Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-sql-mode
PyEhimeもくもく勉強会
7月末にPython Boot Camp in 愛媛(初心者向けチュートリアル)を開催したあとで、Slackでやり取りをしていまして、その中で各々勉強したい課題が幾つか見えてきましたので、今後の愛媛でのPythonコミュニティの活動をどうしていくかという作戦会議を兼ねてもくもく勉強会を開催しました。
開催に向けて日程調整をしたところ、connpassでイベントを公開したのが開催の2日前という、急遽の開催となってしまいました。
告知期間が短くてすみません。今後の愛媛での開催に向けての準備ということでご理解いいただければ幸いです。
また、急な開催にもかかわらず4名の方にご参加いただきました。お忙しい中ありがとうございます。
会場に利用させていただいたカフェですが、Wi-Fi環境はフリーなものがいろいろ使えます。ただし6人掛けのテーブル席まわりでは電源は取れませんでした。4人掛けのエリアにはいくつかあるそうです。
開催中の様子。

さて、開催の中身ですが、
- vagrant + python3 + django
- python programming on Android
- urllib + BeautiflSoupによるスクレイピング
- eclipseのDjango開発環境
- cloud9でDjango
- 次回は11月中旬以降?
- それぞれ興味のあるライブラリを試してみて教えあう
- もう少しDjangoを使って参加者のレベルを近づける
- などなど…
のような感じでした。
あと、Google Driveでのファイル共有、appear.inでの画面共有なども行いました。
始めたばかりで右往左往の状態ですが、無理のない範囲で継続していきたいと思います。
Pythonプログラミングにご興味のある方がいらっしゃいましたらお気軽にご参加ください。
Python Boot Camp in 愛媛
2016年7月30日にサイボウズ株式会社松山オフィス様にてPython Boot Camp in 愛媛を開催しました。
詳しくはこちら。
Python Boot Camp in 愛媛 を開催しました!!
当日のTwitterのまとめ
Python Boot Camp in 愛媛まとめ(togetter)
次回は熊本にて開催されます。
Python Boot Camp in 熊本
Python Boot Camp in 熊本 懇親会
この機会にぜひご参加ください。
Tag: Bootstrap
8月のDjango勉強会に向けて準備
8月末にDjangoの勉強会を開催予定です。
https://pyehime.connpass.com/event/326007
PyEhimeとしてはx年ぶりのイベントです。(長らく放置していてすみません)
ということで、当日の参考になりそうなリンクをこの記事にまとめておきます。
Tag: Render
8月のDjango勉強会に向けて準備
8月末にDjangoの勉強会を開催予定です。
https://pyehime.connpass.com/event/326007
PyEhimeとしてはx年ぶりのイベントです。(長らく放置していてすみません)
ということで、当日の参考になりそうなリンクをこの記事にまとめておきます。
DjangoをRenderにdeployしてみる – deploy編(2/2)
前の記事からの続きです。
Render用に環境変数を整える
settings.py
DEBUG = 'RENDER' not in os.environ
SECRET_KEY = os.environ.get('SECRET_KEY')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS')
RENDER_EXTERNAL_HOSTNAME = os.environ.get('RENDER_EXTERNAL_HOSTNAME')
if RENDER_EXTERNAL_HOSTNAME:
ALLOWED_HOSTS.append(RENDER_EXTERNAL_HOSTNAME)
環境変数にRENDERが定義されていたら DEBUG=False にする。
ALLOWED_HOSTSにRENDER_EXTERNAL_HOSTNAMEを追加する。
DjangoをRenderにdeployしてみる – 準備編(1/2)
https://docs.render.com/deploy-django#creating-a-new-django-project
上のRenderの記事に沿って進めてみます。
最初に作業用のリポジトリを用意します。
https://github.com/kazweda/myrender
git clone https://github.com/kazweda/myrender
作業手順を随時issue化して commit, push しておけば、中断しても後で再開しやすくなります。
python環境を作成
python3 -m venv venv
source venv/bin/activate
Djangoをインストールしてプロジェクトを作成
pip install Django==5.0.7
pip freeze > requirements.txt
django-admin startproject myrender .
Tag: Tutorial
8月のDjango勉強会に向けて準備
8月末にDjangoの勉強会を開催予定です。
https://pyehime.connpass.com/event/326007
PyEhimeとしてはx年ぶりのイベントです。(長らく放置していてすみません)
ということで、当日の参考になりそうなリンクをこの記事にまとめておきます。
macOS Appの練習 – SwiftUI Tutorials
Swiftでの開発は参考書を読んでサンプルアプリを作っている程度でまだまだ初心者です。ここで、自分で何か作ってみようと書き始めたところ、ロジックよりもレイアウトがなかなか難しくて先に進めそうにない感じがしていて、スマホのポートレイトで配置してみて、そこからタブレットの横置きに回転させると崩れてしまうような状態からなかなか抜け出せそうにありません。
Tag: Deploy
DjangoをRenderにdeployしてみる – deploy編(2/2)
前の記事からの続きです。
Render用に環境変数を整える
settings.py
DEBUG = 'RENDER' not in os.environ
SECRET_KEY = os.environ.get('SECRET_KEY')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS')
RENDER_EXTERNAL_HOSTNAME = os.environ.get('RENDER_EXTERNAL_HOSTNAME')
if RENDER_EXTERNAL_HOSTNAME:
ALLOWED_HOSTS.append(RENDER_EXTERNAL_HOSTNAME)
環境変数にRENDERが定義されていたら DEBUG=False にする。
ALLOWED_HOSTSにRENDER_EXTERNAL_HOSTNAMEを追加する。
Tag: Cctweaked
ComputerCraftでモデム通信
MinecraftのComputerCraft(Mod)でモデム通信を試してみました。
環境はこちら
- Minecraft Java Edition
- CurseForgeアプリ
- Fabric API
- CC: Tweaked
参考にさせていただいた記事
[ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説]
モデムを取り付けたTurtle(WT01)に受信側のプログラムを用意します。
receive.lua
ソースコードをpastebinから取得する場合は V1EwZLym です。
Tag: ComputerCraft
ComputerCraftでモデム通信
MinecraftのComputerCraft(Mod)でモデム通信を試してみました。
環境はこちら
- Minecraft Java Edition
- CurseForgeアプリ
- Fabric API
- CC: Tweaked
参考にさせていただいた記事
[ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説]
モデムを取り付けたTurtle(WT01)に受信側のプログラムを用意します。
receive.lua
ソースコードをpastebinから取得する場合は V1EwZLym です。
Tag: Fabric
ComputerCraftでモデム通信
MinecraftのComputerCraft(Mod)でモデム通信を試してみました。
環境はこちら
- Minecraft Java Edition
- CurseForgeアプリ
- Fabric API
- CC: Tweaked
参考にさせていただいた記事
[ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説]
モデムを取り付けたTurtle(WT01)に受信側のプログラムを用意します。
receive.lua
ソースコードをpastebinから取得する場合は V1EwZLym です。
Tag: Minecraft
ComputerCraftでモデム通信
MinecraftのComputerCraft(Mod)でモデム通信を試してみました。
環境はこちら
- Minecraft Java Edition
- CurseForgeアプリ
- Fabric API
- CC: Tweaked
参考にさせていただいた記事
[ComputerCraftの無線通信を使いこなそう(2) ―RednetAPIの解説]
モデムを取り付けたTurtle(WT01)に受信側のプログラムを用意します。
receive.lua
ソースコードをpastebinから取得する場合は V1EwZLym です。
Tag: DisplayPort
MacBook AirとQHDディスプレイの接続
外付けディスプレイをDell G2724D(27inch, QHD)に換えてみたので簡単に接続状況のレポートです。
ちなみにこれまで使っていたのはLG-24MP47HQ-P(24inch, FHD)で、幅が6センチほどしか変わらないのですんなり収まりました。
Tag: G2724D
MacBook AirとQHDディスプレイの接続
外付けディスプレイをDell G2724D(27inch, QHD)に換えてみたので簡単に接続状況のレポートです。
ちなみにこれまで使っていたのはLG-24MP47HQ-P(24inch, FHD)で、幅が6センチほどしか変わらないのですんなり収まりました。
Tag: WQHD
MacBook AirとQHDディスプレイの接続
外付けディスプレイをDell G2724D(27inch, QHD)に換えてみたので簡単に接続状況のレポートです。
ちなみにこれまで使っていたのはLG-24MP47HQ-P(24inch, FHD)で、幅が6センチほどしか変わらないのですんなり収まりました。
Tag: AppSheet
バイタル管理アプリ- AppSheet
先日、自宅で掃除中に転倒して骨折(恥骨)してしまいました。現在は入院から約2週間経ってリハビリが始まった状態です。今月予定していた訪問サポートや案件の打ち合わせなどできなくなってしまいご迷惑をお掛けしております。回復次第、あらためて対応を進めてまいりますのでいましばらくお待ちいただきますようよろしくお願いします。
このような状態で、ベッドの上でなにかできることはないかと考えていたところ、日々のバイタルの測定があるのでこれをアプリ化できないかと考えて、AndroidのスマホでAppSheetを使って作ってみました。
インボイス対応の端数処理について
先月から今月にかけて、AppSheetで作った販売管理アプリのインボイス対応を行いました。具体的には端数処理の見直しです。
例えば軽減税率8%が適用される商品と標準税率10%が適用される商品がある場合、税抜の合計金額からそれぞれの消費税額を計算して「1つのインボイスにつき、税率ごとに1回の端数処理を行う」とのことです。
制度については国税庁のサイトをご覧ください。
AppSheetのlandscape問題
AppSheetでアプリを作っていて1点問題が解決できないままだったのですが、Google Community のスレッドを読んでいるうちに解決策が見つかったので簡単に書いておきます。
レポートを横置きにしたい
例えばAppSheetのAutomationで一覧表をPDF出力する場合にGoogle Docsをテンプレートとして使うことができます。
このテンプレートがポートレート(縦置き)の場合は問題ないのですが、ランドスケープ(横置き)にしたくても右側に余白ができてしまって内容がポートレートの配置のまま出力されてしまう問題がありました。
(AppSheet自体開発が進められているのでいるので後のバージョンで改修されている可能性もあります。)
AppSheetで進行中
昨年(2021年)10月頃にご相談をいただいて、この4ヶ月ほど業務のIT化についてお手伝いをしています。
ここしばらくはウェブサイトが中心で、ご要望に応じて管理機能と合わせてカスタマイズするしたり、ウェブアプリを開発してサイトに組み込むような仕事が続いていました。今回は販売管理ということと、モバイル(タブレット)を活用したいということで、AppSheet を使って取り組んでいます。
第1弾としてできた(リリースした)こと。
- 顧客管理
- 商品管理
- 注文管理
- 納品書発行
- 売上台帳発行
続いて第2弾のリリース内容。
2021年のふりかえり
一昨年(2019)の末ごろにウェブサイトの相談を受けてJavaScriptまわりの調査や提案。それがきっかけでJavaScriptを使う機会が増えてきて、仕事やコミュニティ活動(CoderDojo伊予)で活用しています。
ちなみにCoderDojo伊予での活用というのはconnpassのイベントをSlackに流したり、Googleフォームの参加受付をGASでカスタマイズと言ったところです。
以前だとPHPがメインでJavaScriptは一部のみという使い方だったのですが、JavaScriptをメインで使うようになったことで、身の回りのちょっとした自動化(効率化)に自然と(無理なく)広がっていった感じがします。
Tag: ノーコード
バイタル管理アプリ- AppSheet
先日、自宅で掃除中に転倒して骨折(恥骨)してしまいました。現在は入院から約2週間経ってリハビリが始まった状態です。今月予定していた訪問サポートや案件の打ち合わせなどできなくなってしまいご迷惑をお掛けしております。回復次第、あらためて対応を進めてまいりますのでいましばらくお待ちいただきますようよろしくお願いします。
このような状態で、ベッドの上でなにかできることはないかと考えていたところ、日々のバイタルの測定があるのでこれをアプリ化できないかと考えて、AndroidのスマホでAppSheetを使って作ってみました。
Tag: バイタル
バイタル管理アプリ- AppSheet
先日、自宅で掃除中に転倒して骨折(恥骨)してしまいました。現在は入院から約2週間経ってリハビリが始まった状態です。今月予定していた訪問サポートや案件の打ち合わせなどできなくなってしまいご迷惑をお掛けしております。回復次第、あらためて対応を進めてまいりますのでいましばらくお待ちいただきますようよろしくお願いします。
このような状態で、ベッドの上でなにかできることはないかと考えていたところ、日々のバイタルの測定があるのでこれをアプリ化できないかと考えて、AndroidのスマホでAppSheetを使って作ってみました。
Tag: Php.ini
php.iniの初期化
レンタルサーバーの管理画面でphpのバージョンは随時更新していたものの、php.iniの設定を見落としていました。かなりレガシーな設定が残っていた様子。
phpのバージョンによって見直すタイミングがあったと思いますが、フルマネージドな環境でGUIに任せているとちょっとした落とし穴もありそうです。まぁ自分の不注意ではあるのですが。
Tag: Config
jupyter notebook の環境設定
Config file and command line options
jupyter notebook --generate-config
MacOSの場合、
~/.jupyter/jupyter_notebook_config.py
というファイルが生成される。
tesseract-ocr の config を使ってみました。
http://code.google.com/p/tesseract-ocr/
プロジェクトのサイトにあるように、元々HP社で開発されたOCRソフトで、現在はGoogleプロジェクトとしてメンテナンスされているようです。
今回はWindows版(win32, portable)をダウンロードして試してみました。
FAQはこちら(英語)
画像の中から認識したい文字列があらかじめ決まっている場合は、Configを利用すると良さそうです。
特にオプションを指定しないで実行すると、画像の中から文字のある領域をブロックとして切り出して、認識処理を行いますので多少複雑なレイアウトだと、かえって上手くいかない場合があります。
例えば、” -PSM 6″ というオプションを使うと、画像全体を1個のブロックと思って、そこからテキストの認識を行ってくれます。
さらに、” nobatch digits” というコンフィグオプションを追加すると、アプリケーションフォルダ内の “tessdata/configs/digits” を参照して処理を行います。
ちなみに、 “tessdata/configs/digits” の中身は次のようになっています。
tessedit_char_whitelist 0123456789-.
なので、この “0123456789-.” の部分を認識したい文字列に編集すれば、これにマッチするものだけを取り出すことができます。
Tag: Jupyter
jupyter notebook の環境設定
Config file and command line options
jupyter notebook --generate-config
MacOSの場合、
~/.jupyter/jupyter_notebook_config.py
というファイルが生成される。
Tag: Notebook
jupyter notebook の環境設定
Config file and command line options
jupyter notebook --generate-config
MacOSの場合、
~/.jupyter/jupyter_notebook_config.py
というファイルが生成される。
Tag: インボイス
インボイス対応の端数処理について
先月から今月にかけて、AppSheetで作った販売管理アプリのインボイス対応を行いました。具体的には端数処理の見直しです。
例えば軽減税率8%が適用される商品と標準税率10%が適用される商品がある場合、税抜の合計金額からそれぞれの消費税額を計算して「1つのインボイスにつき、税率ごとに1回の端数処理を行う」とのことです。
制度については国税庁のサイトをご覧ください。
Tag: 端数処理
インボイス対応の端数処理について
先月から今月にかけて、AppSheetで作った販売管理アプリのインボイス対応を行いました。具体的には端数処理の見直しです。
例えば軽減税率8%が適用される商品と標準税率10%が適用される商品がある場合、税抜の合計金額からそれぞれの消費税額を計算して「1つのインボイスにつき、税率ごとに1回の端数処理を行う」とのことです。
制度については国税庁のサイトをご覧ください。
Tag: Lunar Eclipse
皆既月食レポート – 20221108
2022年11月8日の皆既月食を手持ちの望遠鏡とスマホを使って撮影しました。
機材
- 望遠鏡 Mizar AR-1, 600mm
- 接眼レンズ K-20, 3x バローレンズ
- スマートフォン用アダプター ANQILAFU
- Pixel6a

Mizar AR-1 + 600mm
望遠鏡を買った当時(197x年)は一眼レフカメラの標準レンズで星野写真の撮影がメインだったのでこの様な構成(当時のまま)になっています。
Tag: Uranus
皆既月食レポート – 20221108
2022年11月8日の皆既月食を手持ちの望遠鏡とスマホを使って撮影しました。
機材
- 望遠鏡 Mizar AR-1, 600mm
- 接眼レンズ K-20, 3x バローレンズ
- スマートフォン用アダプター ANQILAFU
- Pixel6a

Mizar AR-1 + 600mm
望遠鏡を買った当時(197x年)は一眼レフカメラの標準レンズで星野写真の撮影がメインだったのでこの様な構成(当時のまま)になっています。
Tag: 天王星
皆既月食レポート – 20221108
2022年11月8日の皆既月食を手持ちの望遠鏡とスマホを使って撮影しました。
機材
- 望遠鏡 Mizar AR-1, 600mm
- 接眼レンズ K-20, 3x バローレンズ
- スマートフォン用アダプター ANQILAFU
- Pixel6a

Mizar AR-1 + 600mm
望遠鏡を買った当時(197x年)は一眼レフカメラの標準レンズで星野写真の撮影がメインだったのでこの様な構成(当時のまま)になっています。
Tag: 皆既月食
皆既月食レポート – 20221108
2022年11月8日の皆既月食を手持ちの望遠鏡とスマホを使って撮影しました。
機材
- 望遠鏡 Mizar AR-1, 600mm
- 接眼レンズ K-20, 3x バローレンズ
- スマートフォン用アダプター ANQILAFU
- Pixel6a

Mizar AR-1 + 600mm
望遠鏡を買った当時(197x年)は一眼レフカメラの標準レンズで星野写真の撮影がメインだったのでこの様な構成(当時のまま)になっています。
Tag: Landscape
AppSheetのlandscape問題
AppSheetでアプリを作っていて1点問題が解決できないままだったのですが、Google Community のスレッドを読んでいるうちに解決策が見つかったので簡単に書いておきます。
レポートを横置きにしたい
例えばAppSheetのAutomationで一覧表をPDF出力する場合にGoogle Docsをテンプレートとして使うことができます。
このテンプレートがポートレート(縦置き)の場合は問題ないのですが、ランドスケープ(横置き)にしたくても右側に余白ができてしまって内容がポートレートの配置のまま出力されてしまう問題がありました。
(AppSheet自体開発が進められているのでいるので後のバージョンで改修されている可能性もあります。)
AdMobが表示されない – 縦(Portrait)の場合
レイアウトの定義で、
android:padding = “5dip”
のように余白を設定していると、
端末を縦にしたときにAdMob(広告バナー)が表示されない場合が
あります。
一旦、余白を0:ゼロにして、縦と横のレイアウトを確認しながら
余白を調整すると良さそうです。
参考)
Android XML Layout works in landscape but not in normal orientation
Tag: Portrait
AppSheetのlandscape問題
AppSheetでアプリを作っていて1点問題が解決できないままだったのですが、Google Community のスレッドを読んでいるうちに解決策が見つかったので簡単に書いておきます。
レポートを横置きにしたい
例えばAppSheetのAutomationで一覧表をPDF出力する場合にGoogle Docsをテンプレートとして使うことができます。
このテンプレートがポートレート(縦置き)の場合は問題ないのですが、ランドスケープ(横置き)にしたくても右側に余白ができてしまって内容がポートレートの配置のまま出力されてしまう問題がありました。
(AppSheet自体開発が進められているのでいるので後のバージョンで改修されている可能性もあります。)
AdMobが表示されない – 縦(Portrait)の場合
レイアウトの定義で、
android:padding = “5dip”
のように余白を設定していると、
端末を縦にしたときにAdMob(広告バナー)が表示されない場合が
あります。
一旦、余白を0:ゼロにして、縦と横のレイアウトを確認しながら
余白を調整すると良さそうです。
参考)
Android XML Layout works in landscape but not in normal orientation
Tag: Template
AppSheetのlandscape問題
AppSheetでアプリを作っていて1点問題が解決できないままだったのですが、Google Community のスレッドを読んでいるうちに解決策が見つかったので簡単に書いておきます。
レポートを横置きにしたい
例えばAppSheetのAutomationで一覧表をPDF出力する場合にGoogle Docsをテンプレートとして使うことができます。
このテンプレートがポートレート(縦置き)の場合は問題ないのですが、ランドスケープ(横置き)にしたくても右側に余白ができてしまって内容がポートレートの配置のまま出力されてしまう問題がありました。
(AppSheet自体開発が進められているのでいるので後のバージョンで改修されている可能性もあります。)
Tag: AppsScript
AppSheetで進行中
昨年(2021年)10月頃にご相談をいただいて、この4ヶ月ほど業務のIT化についてお手伝いをしています。
ここしばらくはウェブサイトが中心で、ご要望に応じて管理機能と合わせてカスタマイズするしたり、ウェブアプリを開発してサイトに組み込むような仕事が続いていました。今回は販売管理ということと、モバイル(タブレット)を活用したいということで、AppSheet を使って取り組んでいます。
第1弾としてできた(リリースした)こと。
- 顧客管理
- 商品管理
- 注文管理
- 納品書発行
- 売上台帳発行
続いて第2弾のリリース内容。
Tag: 販売管理
AppSheetで進行中
昨年(2021年)10月頃にご相談をいただいて、この4ヶ月ほど業務のIT化についてお手伝いをしています。
ここしばらくはウェブサイトが中心で、ご要望に応じて管理機能と合わせてカスタマイズするしたり、ウェブアプリを開発してサイトに組み込むような仕事が続いていました。今回は販売管理ということと、モバイル(タブレット)を活用したいということで、AppSheet を使って取り組んでいます。
第1弾としてできた(リリースした)こと。
- 顧客管理
- 商品管理
- 注文管理
- 納品書発行
- 売上台帳発行
続いて第2弾のリリース内容。
Tag: CoderDojo伊予
2021年のふりかえり
一昨年(2019)の末ごろにウェブサイトの相談を受けてJavaScriptまわりの調査や提案。それがきっかけでJavaScriptを使う機会が増えてきて、仕事やコミュニティ活動(CoderDojo伊予)で活用しています。
ちなみにCoderDojo伊予での活用というのはconnpassのイベントをSlackに流したり、Googleフォームの参加受付をGASでカスタマイズと言ったところです。
以前だとPHPがメインでJavaScriptは一部のみという使い方だったのですが、JavaScriptをメインで使うようになったことで、身の回りのちょっとした自動化(効率化)に自然と(無理なく)広がっていった感じがします。
Scratch 夏の音ネタシリーズ
8月8日のCoderDojo伊予(オンライン)にメンターとして参加しました。
春頃はマイクラを少し試してみたりしていましたが、Scratchはしばらく作っていなくて、Dojo開催のたびによく引っかかる(思うように動かない)クローンを使ったサンプル的なアプリを作った程度でした。
Raspberry Pi 3 セットアップ 1/2
先月のCoderDojo伊予でmicrobitを試しました。
次はRaspberry Piを、と思って確認したところSDカードがなかったので、次回(10月)までに手持ちのSDカードを仕込んで持っていこうと計画。
SDカードへの書き込みは Raspberry Imager で簡単にできました。
Tag: Connpass
2021年のふりかえり
一昨年(2019)の末ごろにウェブサイトの相談を受けてJavaScriptまわりの調査や提案。それがきっかけでJavaScriptを使う機会が増えてきて、仕事やコミュニティ活動(CoderDojo伊予)で活用しています。
ちなみにCoderDojo伊予での活用というのはconnpassのイベントをSlackに流したり、Googleフォームの参加受付をGASでカスタマイズと言ったところです。
以前だとPHPがメインでJavaScriptは一部のみという使い方だったのですが、JavaScriptをメインで使うようになったことで、身の回りのちょっとした自動化(効率化)に自然と(無理なく)広がっていった感じがします。
Tag: GAS
2021年のふりかえり
一昨年(2019)の末ごろにウェブサイトの相談を受けてJavaScriptまわりの調査や提案。それがきっかけでJavaScriptを使う機会が増えてきて、仕事やコミュニティ活動(CoderDojo伊予)で活用しています。
ちなみにCoderDojo伊予での活用というのはconnpassのイベントをSlackに流したり、Googleフォームの参加受付をGASでカスタマイズと言ったところです。
以前だとPHPがメインでJavaScriptは一部のみという使い方だったのですが、JavaScriptをメインで使うようになったことで、身の回りのちょっとした自動化(効率化)に自然と(無理なく)広がっていった感じがします。
Tag: Slack
2021年のふりかえり
一昨年(2019)の末ごろにウェブサイトの相談を受けてJavaScriptまわりの調査や提案。それがきっかけでJavaScriptを使う機会が増えてきて、仕事やコミュニティ活動(CoderDojo伊予)で活用しています。
ちなみにCoderDojo伊予での活用というのはconnpassのイベントをSlackに流したり、Googleフォームの参加受付をGASでカスタマイズと言ったところです。
以前だとPHPがメインでJavaScriptは一部のみという使い方だったのですが、JavaScriptをメインで使うようになったことで、身の回りのちょっとした自動化(効率化)に自然と(無理なく)広がっていった感じがします。
GASでSlackBotを作ってみた
2019年秋頃からCoderDojo伊予のメンターとしてお手伝いをしています。最初のイベントはこちら。↓
第0回 CoderDojo伊予[リハーサル会]子どものためのプログラミング道場:メンター募集
Dojoの運営にあたって情報共有や課題管理を GitHub の Organization で始めてみたのですが今ひとつ馴染まない感じで、今は
- Googleドライブのファイル共有
- Trelloの課題管理
- Slackで日常のやりとり
- ウェブサイト(WordPress)で情報公開
- connpass -> Googleフォームでイベント受付
- SNSでシェア(Twitter, Facebook, LINEグループ)
のような運用をしています。これで毎月Dojoを開催するとそれなりにやることがあって、特にチャンピオン(Dojoの運営者)の方にあらゆる作業が集中しがちになります。
Tag: Scratch
Scratch 夏の音ネタシリーズ
8月8日のCoderDojo伊予(オンライン)にメンターとして参加しました。
春頃はマイクラを少し試してみたりしていましたが、Scratchはしばらく作っていなくて、Dojo開催のたびによく引っかかる(思うように動かない)クローンを使ったサンプル的なアプリを作った程度でした。
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: Sound
Scratch 夏の音ネタシリーズ
8月8日のCoderDojo伊予(オンライン)にメンターとして参加しました。
春頃はマイクラを少し試してみたりしていましたが、Scratchはしばらく作っていなくて、Dojo開催のたびによく引っかかる(思うように動かない)クローンを使ったサンプル的なアプリを作った程度でした。
Tag: CMS
Strapi deployment on Heroku のメモ書き
Setup & Deployment -> Heroku – Strapi Docs
上の記事に沿ってローカルに構築してHerokuにデプロイ。
デプロイ先のHerokuはStrapiのproductionになる。
heroku config:set NODE_ENV=production
Strapi Quick Start
Ghost に続いて Headless CMS の Strapi を試してみます。
Quick Start Guide – Strapi Developer Documentation
インストール
npx create-strapi-starter my-project gatsby-blog
「早春CMS祭り」を開催しました。
2013年2月16日(土曜日)にCreator’s village in EHIMEさんとWordBench愛媛の共催で「早春CMS祭り」というセミナーを開催しました。
開催内容はこちら(ATND)
http://atnd.org/events/35423
ツイッターのまとめ
http://togetter.com/li/458104
僭越ながら、私の発表資料はこちら
http://www.slideshare.net/twikaz/cms-festa0216
昨年秋、WordBench愛媛を作る際にお世話になった三好さん。@takayukister
WordBenchのメッセージでやり取りをしていたところ「愛媛」というキーワードがあったので勢いで講師をお願いしたところ、快く引き受けてくださいまして、はるばる松山まで講演にきていただきました。
ということで、せっかく三好さんに来て頂くので少しでも多くの方にご参加いただこうと思い、Creator’s village in EHIMEの@bornknow108さんに共催をお願いしたところ、快く引き受けてくださいましてトップバッターとして登壇をしていただきました。
そして、最近いろいろなコミュニティに積極的に参加され、プレゼンもされている@0310lanさんにお声がけしたところ、快く引き受けてくださいまして、ウェブサービスのCMSをメインにご紹介いただきました。
さらに、@bornknow108さんからのご紹介で@netachoさんにも劇画調に各種CMSをご紹介いただきました。さすがWebディレクターです。プレゼン内容はまさにエンターテインメントでした。
ショートセッションでは昨年のWordBench愛媛で自作のプラグインをつくってこられたわたなべさんに、プラグイン開発の技術要素についてご紹介をいただきました。プレゼン資料がきれいに作られていて尊敬。
ラストのセッションはオートクチュールの中村さん。@shinyajp
ソーシャルアプリで益々ご発展の様子。お忙しい中ありがとうございました。
それと、今回のセミナーで会場を提供してくださったイヨテツケーターサービス様には会場設営から当日の受け付け、ドリンクの提供など大変感謝しております。さらに、開催当日の午前中にコワーキングスペースを無料提供してくださったシトラス・スペース・カンパニー様にもお世話になりました。
ご参加いただいた皆様もふくめ、お礼申し上げます。
ありがとうございました。
おすすめCMS – GeekLog
最近、GeekLogを使い始めました。
詳しくは、日本語のGeekLogサイトをご覧ください。
ユーザをグループに分けて情報提供するような、
会員サポートサイトなど、割と簡単に構築できます。
管理画面が直感的に分かりやすいのがよいですね。
「設定例」
ゲストユーザ(公開画面)には新着情報を表示したくない場合。
・管理者メニューから「ブロック」を開く。
・ブロックの一覧から「新着情報」を編集。
・「新着情報」の編集画面で、パーミッションから「ゲストユーザ」のチェックを外して保存。
といった感じです。
これからいろいろと活用していきたいと思います。
Tag: Heroku
Strapi deployment on Heroku のメモ書き
Setup & Deployment -> Heroku – Strapi Docs
上の記事に沿ってローカルに構築してHerokuにデプロイ。
デプロイ先のHerokuはStrapiのproductionになる。
heroku config:set NODE_ENV=production
Rails Girls Ehimeに参加しました
昨年末からehime.rbで少しずつですが Ruby on Rails を勉強していまして、
今回 Rails Girls Ehime が開催されたのでスタッフとして参加してきました。
スタッフといってもイベント当日のお手伝いは特にしていなくて、開催前のお手伝いでイベントのお知らせページの一部をGitHubで更新した程度です。マスターリポジトリをフォークして、ブランチを切ってファイルを編集。コミットしてPRを送ってマージされたらフェッチしてフォーク先を更新、みたいな手順を何度か行いました。これはこれでgit操作の勉強になりました。
イベント自体は2日目の土曜日のみお邪魔して参加者と同じ立場でRailsの環境づくりとチュートリアルを試しました。昨年末かあるいはその前だったか作成済みのRails環境があって、今回のチュートリアルの環境に合わせるにはいくつかバージョンアップが必要でした。
anyenvのrbenvを更新しました。(してなかった
— ♂️ (@kazweda) June 15, 2019
https://t.co/fSKmKFgCd3
platformsオプションを削除してbundle update— ♂️ (@kazweda) June 15, 2019
herokuへのdeployをする際にherokuコマンドのバージョンアップを促すメッセージが出たので、更新を実行したところ更新できず。下記のherokuのドキュメントによると、どうやらnpmでのheroku(cli)のインストールはおすすめではないらしい。
The Heroku CLI | Heroku Dev Center https://t.co/feGOVy4DgU #rg_ehime
— ♂️ (@kazweda) June 15, 2019
で、なんとか環境が整ったのでチュートリアルを進めていきました。で、herokuへのdeployもできて、次の課題でファイルのアップロードに対応しようとしたところで、deployしたところでエラー発生。
Application error #rg_ehime pic.twitter.com/KhOy1Hww2m
— ♂️ (@kazweda) June 15, 2019
調べていくと、
— ♂️ (@kazweda) June 15, 2019
Gemfileの編集で gem 'carrierwave'
これを追加する場所がまずかったようです。(developmentの中にのみ書いていた)
そんなこんなでエラーを起こしつつもherokuでの動作確認までできました。
あとLTで参考になるサイトとか書籍の紹介があったのでいくつか書いておきます。
Progate – Ruby on Rails5
Paizaラーニング – 「Ruby on Rails」入門講座
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 五十嵐 邦明 https://t.co/0GVpU2UICl via @amazonJP #rg_ehime
herokuまわり – Rails Tutorial
明日の勉強会の準備。メモ書き程度です。
1.5.1 Herokuのセットアップ
このあたりの作業中。
ndenvのnpmをインストール済みなので、
$ npm install -g heroku-cli
を試したところ、npm WARN ... 'heroku-cli' has been renamed 'heroku'
と表示されたもののインストールはできた様子。
それと、cross-spawn no longer requires a build toolchain, use it instead
という警告もあり。
$ heroku --version
heroku/7.19.3 darwin-x64 node-v8.11.2
$ heroku login
ブラウザが開くのでログインします。
SSHキーを作成して登録。
$ ssh-keygen -t rsa -C "your.name@example.com" -f ~/.ssh/id_rsa_heroku
$ heroku keys:add
$heroku create
ブラウザで確認
herokuにデプロイ
$ git push heroku master
pushでrejected
SQLite on Heroku
ローカルのGemfileを編集したものの、コミットするのを忘れていました。(^^;
Tag: Strapi
Strapi deployment on Heroku のメモ書き
Setup & Deployment -> Heroku – Strapi Docs
上の記事に沿ってローカルに構築してHerokuにデプロイ。
デプロイ先のHerokuはStrapiのproductionになる。
heroku config:set NODE_ENV=production
Strapi Quick Start
Ghost に続いて Headless CMS の Strapi を試してみます。
Quick Start Guide – Strapi Developer Documentation
インストール
npx create-strapi-starter my-project gatsby-blog
Tag: Github
VS Codeでリポジトリをクローン
普段はシェルから操作することが多いのですが、VS Code の使い方を確認しておこうと思いまして。
VS Code左側のメニューで Source Control を選択して Clone Repository をクリック。
入力ダイアログで Clone From GitHub を選択。アプリの認証が要求されたら適宜認証を進めて完了させる。
リポジトリ名を入力。(GitHub側にリポジトリが作成されている前提)
PyEhime 20181020 – MkDocs
ターミナル(シェル環境)
$ env | grep LANG
何も設定されていない場合は、
$ export LANG=ja_JP.UTF-8
としておく。
Python3環境
venvをお勧めします。作業用フォルダを workspace とすると、
$ cd workspace
$ python3 -m venv venv
$ source venv/bin/activate
mkdocs インストール
$ pip install mkdocs
pip 自体のアップグレードが勧められたら、
$ pip install --upgrade pip
mkdocsのプロジェクト作成
$ mkdocs new mktest
ビルド
$ cd mktest
$ mkdocs serve
ブラウザで http://127.0.0.1:8000
を開く。
カスタマイズ
いろいろ記事がありますので、適宜試してみてください。
MkDocsによるドキュメント作成
練習で数式を試してみました。
https://kazweda.github.io/mkdocs-lesson/math/
GitHub Pages
GitHubでリポジトリを作成。mktest
git clone の URL(PATH/TO/REPO)を取得
$ git init
$ git remote add origin (PATH/TO/REPO)
$ git pull origin master
$ mkdocs gh-deploy
Tag: Themes
VS Codeでリポジトリをクローン
普段はシェルから操作することが多いのですが、VS Code の使い方を確認しておこうと思いまして。
VS Code左側のメニューで Source Control を選択して Clone Repository をクリック。
入力ダイアログで Clone From GitHub を選択。アプリの認証が要求されたら適宜認証を進めて完了させる。
リポジトリ名を入力。(GitHub側にリポジトリが作成されている前提)
引き続き WordPress のテーマ
比較的シンプルなテーマを2点ほど取り上げて
ざっとHTML5の対応について調べてみました。
- Suffusion
http://wordpress.org/extend/themes/suffusion
- Fiver
http://wordpress.org/extend/themes/fiver
Suffusionの場合、トップページにはsectionタグが見つからなかったのですが、
コンテンツの詳細ページで使われていました。
Tag: Vscode
VS Codeでリポジトリをクローン
普段はシェルから操作することが多いのですが、VS Code の使い方を確認しておこうと思いまして。
VS Code左側のメニューで Source Control を選択して Clone Repository をクリック。
入力ダイアログで Clone From GitHub を選択。アプリの認証が要求されたら適宜認証を進めて完了させる。
リポジトリ名を入力。(GitHub側にリポジトリが作成されている前提)
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
Visual Studio Codeを使ってみる – macOS
Get Started Tutorialにそって進めてみる
Python環境の確認
Python 3.0 Release
パッケージをインストール
$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
$ python3 --version
Python 3.6.5
Visual Studio Code インストール
python3 -m venv
$ cd Hello
$ python3 -m venv venv
$ cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
VSCodeを起動
$ code .

Configure Python Environment
Tag: Gatsby
Strapi Quick Start
Ghost に続いて Headless CMS の Strapi を試してみます。
Quick Start Guide – Strapi Developer Documentation
インストール
npx create-strapi-starter my-project gatsby-blog
Tag: Ghost
Ghost メモ書き
Ghost をmacOSにインストール。
14.x (Node v14 Fermium LTS) |
手元の Node.js が少し古かったようでインストールが進まず。
Tag: Nodejs
Ghost メモ書き
Ghost をmacOSにインストール。
14.x (Node v14 Fermium LTS) |
手元の Node.js が少し古かったようでインストールが進まず。
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: GCP
GoogleCloudスキルバッジ キャンペーンで勉強中
Twitterのタイムラインで「GoogleCloudスキルバッジ」というキーワードを見かけて、良い機会なのでGCPを勉強してみることにしました。
最初、Qwiklabsがどういうものか分からなくて戸惑ったのですが、学びたい課題を選んでスタートするとセットアップ済みのプロジェクトが用意されたり、生徒用のアカウントが発行されたりするようです。
Tag: Qwiklabs
GoogleCloudスキルバッジ キャンペーンで勉強中
Twitterのタイムラインで「GoogleCloudスキルバッジ」というキーワードを見かけて、良い機会なのでGCPを勉強してみることにしました。
最初、Qwiklabsがどういうものか分からなくて戸惑ったのですが、学びたい課題を選んでスタートするとセットアップ済みのプロジェクトが用意されたり、生徒用のアカウントが発行されたりするようです。
Tag: Search Console
Google Data Portal のキーワード分析
GoogleデータポータルでAnalyticsのデータを接続してキーワード分析を表示すると、大半が(not provided)になってしまいます。
ここで Search Console を活用。
Tag: アクセス分析
Google Data Portal のキーワード分析
GoogleデータポータルでAnalyticsのデータを接続してキーワード分析を表示すると、大半が(not provided)になってしまいます。
ここで Search Console を活用。
Tag: アナリティクス
Google Data Portal のキーワード分析
GoogleデータポータルでAnalyticsのデータを接続してキーワード分析を表示すると、大半が(not provided)になってしまいます。
ここで Search Console を活用。
Googleアナリティクスに漏れが… – WordPress
先月末に自社サイトのメンテナンスをしていて、モバイル対応をレスポンシブデザインからWPtouchに戻しました。
主な理由は次の通り。
- レスポンシブデザインは必ずしもモバイルデバイスに最適化されていない。
- 現在のAdSenseモバイル用バナーがレスポンシブに対応していない。
最適化については実際にページの表示が遅く感じていたのと、WPtouch開発者のブログを参考にしました。
WEIGHING OPTIONS: WPTOUCH, RESPONSIVE DESIGN AND YOUR MOBILE STRATEGY
要するにWPtouchはサーバ側の処理、つまりUAによってモバイル向けのコンテンツを送出し、レスポンシブはクライアント側の処理という感じです。
で、その他高速化のプラグインやDBのメンテナンスにより結構改善ができたのですが、Googleアナリティクスを開いて「ユーザ」->「モバイル」->「デバイス」を確認してみると、次のようになっていました。(大汗
ということで至急対策。
参考にさせていただいた記事。
具体的にはダッシュボードから「設定」->「WPtouch」を開いてGoogleアナリティクスのコードを貼り付けて保存します。
以上です。
Tag: データポータル
Google Data Portal のキーワード分析
GoogleデータポータルでAnalyticsのデータを接続してキーワード分析を表示すると、大半が(not provided)になってしまいます。
ここで Search Console を活用。
Tag: 検索キーワード
Google Data Portal のキーワード分析
GoogleデータポータルでAnalyticsのデータを接続してキーワード分析を表示すると、大半が(not provided)になってしまいます。
ここで Search Console を活用。
Tag: ATEM Mini
[zenn.dev]ライブ配信について調査中…
先日「OBSを使ってライブ配信をするには?」という相談があって、「OBS」というものを知らなかったので調べているところです。わかったこと、やりたいこと、確認すべきことを zenn.dev のスクラップに書いていますので参考まで。
最初は手元のMacBookでOBSを試していたのですが、いろいろ調べていくうちに ATEM Mini で映像や音声をハードウェアでまとめてしまうのも安定して良さそうな気がしています。
Tag: EAD10
[zenn.dev]ライブ配信について調査中…
先日「OBSを使ってライブ配信をするには?」という相談があって、「OBS」というものを知らなかったので調べているところです。わかったこと、やりたいこと、確認すべきことを zenn.dev のスクラップに書いていますので参考まで。
最初は手元のMacBookでOBSを試していたのですが、いろいろ調べていくうちに ATEM Mini で映像や音声をハードウェアでまとめてしまうのも安定して良さそうな気がしています。
Tag: Obs
[zenn.dev]ライブ配信について調査中…
先日「OBSを使ってライブ配信をするには?」という相談があって、「OBS」というものを知らなかったので調べているところです。わかったこと、やりたいこと、確認すべきことを zenn.dev のスクラップに書いていますので参考まで。
最初は手元のMacBookでOBSを試していたのですが、いろいろ調べていくうちに ATEM Mini で映像や音声をハードウェアでまとめてしまうのも安定して良さそうな気がしています。
Tag: Stream
[zenn.dev]ライブ配信について調査中…
先日「OBSを使ってライブ配信をするには?」という相談があって、「OBS」というものを知らなかったので調べているところです。わかったこと、やりたいこと、確認すべきことを zenn.dev のスクラップに書いていますので参考まで。
最初は手元のMacBookでOBSを試していたのですが、いろいろ調べていくうちに ATEM Mini で映像や音声をハードウェアでまとめてしまうのも安定して良さそうな気がしています。
Tag: ライブ配信
[zenn.dev]ライブ配信について調査中…
先日「OBSを使ってライブ配信をするには?」という相談があって、「OBS」というものを知らなかったので調べているところです。わかったこと、やりたいこと、確認すべきことを zenn.dev のスクラップに書いていますので参考まで。
最初は手元のMacBookでOBSを試していたのですが、いろいろ調べていくうちに ATEM Mini で映像や音声をハードウェアでまとめてしまうのも安定して良さそうな気がしています。
Tag: ACF
Tag: Maps
Tag: LocalByFlywheel
Local By Flywheel が起動しない…
さて、進行中のウェブサイトを確認するため Local By Flywheel を起動しようとすると、
このダイアログが表示されて、先に進まない様子。
調べてみると、
Regenerating Docker Machine TLS Certificate, checking system won’t start
という記事があって、
さらに手順をまとめた記事がありました。感謝。
Local by Flywheel Regenerating Machine Certificates
この手順で復旧完了。
Tag: RaspberryPi
Raspberry Pi 3 セットアップ 2/2
前の記事の続きです。
MacのターミナルからRaspberryPiにssh接続を試すとrefusedになりました。ということで設定を確認。
RaspberryPiのたターミナルを開いて、
sudo raspi-config
を実行すると上の画面が開きます。
Raspberry Pi 3 セットアップ 1/2
先月のCoderDojo伊予でmicrobitを試しました。
次はRaspberry Piを、と思って確認したところSDカードがなかったので、次回(10月)までに手持ちのSDカードを仕込んで持っていこうと計画。
SDカードへの書き込みは Raspberry Imager で簡単にできました。
Tag: Ssh
Raspberry Pi 3 セットアップ 2/2
前の記事の続きです。
MacのターミナルからRaspberryPiにssh接続を試すとrefusedになりました。ということで設定を確認。
RaspberryPiのたターミナルを開いて、
sudo raspi-config
を実行すると上の画面が開きます。
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
SFTPクライアントの紹介
WinSCP 4.2.9 がリリースされています。
http://winscp.net/eng/docs/lang:jp
http://sourceforge.jp/magazine/08/09/03/1110251
それと、FileZilla
http://sourceforge.jp/magazine/10/01/30/0741238
http://sourceforge.jp/projects/filezilla/
Tag: VNC
Raspberry Pi 3 セットアップ 2/2
前の記事の続きです。
MacのターミナルからRaspberryPiにssh接続を試すとrefusedになりました。ということで設定を確認。
RaspberryPiのたターミナルを開いて、
sudo raspi-config
を実行すると上の画面が開きます。
Tag: Microbit
Raspberry Pi 3 セットアップ 1/2
先月のCoderDojo伊予でmicrobitを試しました。
次はRaspberry Piを、と思って確認したところSDカードがなかったので、次回(10月)までに手持ちのSDカードを仕込んで持っていこうと計画。
SDカードへの書き込みは Raspberry Imager で簡単にできました。
Tag: Agile
進化的アーキテクチャのKataリスト
Fitness Function Katas の List Katas を拝読。
Agile459 の今後のイベントで活用ができればと思いキーワード程度ですが一覧にしてみました。
アジャイルサムライ読書会#7のふりかえり
先週末の9月1日にアジャイルサムライ読書会#7に参加しました。内容はインセプションデッキの後半(5.2~5.5)でした。
5.2「夜も眠れなくなる問題は何だろう?」
プロジェクトが進みだすと、不安なことがあっても口に出しにくかったり、質問しにくい雰囲気になったりしますよね。どうしようもなくなって「実は…」となるよりは最初からそういう要素を洗い出して明記して共有すること。
5.3「期間を見極める」
開発プロジェクトの期間は6ヶ月以内がのぞましい。もちろんあらゆるプロジェクトが6ヶ月でできるわけではないが、3ヶ月あるいは6ヶ月といったできるだけ短い期間におさまるように分割して計画を立てる。
5.4「トレードオフ・スライダー」
あらゆるプロジェクトは次の4つのフォース(力)によって統治される。
- 時間
- 予算
- 品質
- スコープ
言い替えれば大きく4つの制約があるということ。
この時間、予算、品質を動かすことができないとすれば、調整可能な要素はスコープ(範囲)のみ。
「どれも最優先」とか「これとこれは同じレベル」というのは禁止。
このルールによって諦めるものを明確にすることができる。
あと、上記の4つ以外でプロジェクトの重要な要素をスライダーの項目に追加する。
顧客と共にスライダーを設定する。
5.5「何がどれだけ必要なのか」
期間、メンバー、予算。
この部分はいろいろ議論がありました。
そもそもメンバーは社内で手が空いている人で、おのずと決まっているとか、
予算も期間も決まった後でアサインされて、そこから作業規模を洗い出したところでどうにもならない、など。
日常の仕事を考えれば、確かにそのような状況が一般的かも知れませんが、
新たなプロジェクトに対してチームを編成することを考えると、果たしてそれでプロジェクトがうまく行くのか。
まったくリソースが足りてないところで、無理やりチーム編成をして進めてしまっているのではないか。
とても考えさせられる内容でした。
単価の話もしました。その場では「上流だったらこれぐらいかなぁ」という話もありましたが、後で考えてみると上流とか下流という時点でアジャイルではないようにも思いました。
さて、次回のアジャイルサムライ読書会は10月6日(土曜日)の予定です。
http://agile459.doorkeeper.jp/
随時 #agile459 というハッシュタグでTwitterで情報が流れていますのでよろしければご利用ください。
それと補足の資料。
読書会の中で「そもそもウォーターフォールって…?」のような議論があったので、
前にForkwellで見かけた記事を貼っておきます。
“History of Waterfall”
Tag: Architecture
進化的アーキテクチャのKataリスト
Fitness Function Katas の List Katas を拝読。
Agile459 の今後のイベントで活用ができればと思いキーワード程度ですが一覧にしてみました。
進化的アーキテクチャの読書会
Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
Tag: Evolutionary
進化的アーキテクチャのKataリスト
Fitness Function Katas の List Katas を拝読。
Agile459 の今後のイベントで活用ができればと思いキーワード程度ですが一覧にしてみました。
進化的アーキテクチャの読書会
Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
Tag: 進化的アーキテクチャ
進化的アーキテクチャのKataリスト
Fitness Function Katas の List Katas を拝読。
Agile459 の今後のイベントで活用ができればと思いキーワード程度ですが一覧にしてみました。
Tag: Chaos
進化的アーキテクチャの読書会
Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
Tag: アーキテクチャ
進化的アーキテクチャの読書会
Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
Tag: 進化的
進化的アーキテクチャの読書会
Agile459のイベントで8月から「進化的アーキテクチャ」の読書会が始まりました。
1回目は1章と2章の最初の部分まで。
1章は概要の説明という感じで、ここだけでは何かを理解できるものではなさそう。適応度関数 Fitness Function とは何だろうというモヤモヤした雰囲気でした。
ここで、本と並行してウェブ上の情報を探してみました。
Tag: Discord
Discordの登録についてメモ
最近、Slackと並行してDiscordを使う機会が多くなってきて、ボイスチャットを有効活用してみようと思い、サーバーを立てたのですが、そこからの招待が上手くいかなかったので確認しました。
Discordの音声・ビデオ設定
先日のオンラインミーティングで新しいマイク(JTS TX-7)を使ったところ、声が小さい(遠くに聞こえる)という指摘があってDiscordの設定を見直してみました。
音声設定 {.wp-block-heading}
入力デバイスは USB AUdio CODEC になっています。これはUSB接続しているオーディオI/F(behringer UMC22)です。
入力音量はMax(100%)に設定。ちなみにオーディオI/F側のゲインもMaxにしています。
Tag: サーバー
Discordの登録についてメモ
最近、Slackと並行してDiscordを使う機会が多くなってきて、ボイスチャットを有効活用してみようと思い、サーバーを立てたのですが、そこからの招待が上手くいかなかったので確認しました。
Tag: 招待リンク
Discordの登録についてメモ
最近、Slackと並行してDiscordを使う機会が多くなってきて、ボイスチャットを有効活用してみようと思い、サーバーを立てたのですが、そこからの招待が上手くいかなかったので確認しました。
Tag: MB168B
Macbookに画面を追加
部屋の整理をしていたところ、数年前に購入したUSB接続のディスプレイを箱に入れたまま放置していたことに気がついて、動作確認してみました。
6年ほど前に購入した ASUS MB168B+ です。当時、このディスプレイを購入したのは GDCR 2014 というイベントがあって、ペアプログラミングをするのにノートPCの画面とキーボードを2人で共有するのはなかなかしんどいので用意した次第です。
Tag: USB接続
Macbookに画面を追加
部屋の整理をしていたところ、数年前に購入したUSB接続のディスプレイを箱に入れたまま放置していたことに気がついて、動作確認してみました。
6年ほど前に購入した ASUS MB168B+ です。当時、このディスプレイを購入したのは GDCR 2014 というイベントがあって、ペアプログラミングをするのにノートPCの画面とキーボードを2人で共有するのはなかなかしんどいので用意した次第です。
Tag: 外部ディスプレイ
Macbookに画面を追加
部屋の整理をしていたところ、数年前に購入したUSB接続のディスプレイを箱に入れたまま放置していたことに気がついて、動作確認してみました。
6年ほど前に購入した ASUS MB168B+ です。当時、このディスプレイを購入したのは GDCR 2014 というイベントがあって、ペアプログラミングをするのにノートPCの画面とキーボードを2人で共有するのはなかなかしんどいので用意した次第です。
Tag: マイク
Discordの音声・ビデオ設定
先日のオンラインミーティングで新しいマイク(JTS TX-7)を使ったところ、声が小さい(遠くに聞こえる)という指摘があってDiscordの設定を見直してみました。
音声設定 {.wp-block-heading}
入力デバイスは USB AUdio CODEC になっています。これはUSB接続しているオーディオI/F(behringer UMC22)です。
入力音量はMax(100%)に設定。ちなみにオーディオI/F側のゲインもMaxにしています。
Tag: Behringer
ダイナミックマイクに変えてみた
ここのところ、Zoomのミーティングや英語の勉強(Duolingo)をするのに、主にゼンハイザーのヘッドセット(Sennheiser PC5 Chat)を使っていました。
ヘッドセット購入の経緯はこちら。
これで十分と思っていたのですが、どうも周りの音を拾うのが気になっていて、つい先日Discordで音声チャットをした際に、自分の音声の品質が「まぁそこそこ…」という話もあって、音質にこだわってみることにしました。
Tag: JTS
ダイナミックマイクに変えてみた
ここのところ、Zoomのミーティングや英語の勉強(Duolingo)をするのに、主にゼンハイザーのヘッドセット(Sennheiser PC5 Chat)を使っていました。
ヘッドセット購入の経緯はこちら。
これで十分と思っていたのですが、どうも周りの音を拾うのが気になっていて、つい先日Discordで音声チャットをした際に、自分の音声の品質が「まぁそこそこ…」という話もあって、音質にこだわってみることにしました。
Tag: LENTION
ダイナミックマイクに変えてみた
ここのところ、Zoomのミーティングや英語の勉強(Duolingo)をするのに、主にゼンハイザーのヘッドセット(Sennheiser PC5 Chat)を使っていました。
ヘッドセット購入の経緯はこちら。
これで十分と思っていたのですが、どうも周りの音を拾うのが気になっていて、つい先日Discordで音声チャットをした際に、自分の音声の品質が「まぁそこそこ…」という話もあって、音質にこだわってみることにしました。
Tag: ダイナミックマイク
ダイナミックマイクに変えてみた
ここのところ、Zoomのミーティングや英語の勉強(Duolingo)をするのに、主にゼンハイザーのヘッドセット(Sennheiser PC5 Chat)を使っていました。
ヘッドセット購入の経緯はこちら。
これで十分と思っていたのですが、どうも周りの音を拾うのが気になっていて、つい先日Discordで音声チャットをした際に、自分の音声の品質が「まぁそこそこ…」という話もあって、音質にこだわってみることにしました。
Tag: ドッキングステーション
ダイナミックマイクに変えてみた
ここのところ、Zoomのミーティングや英語の勉強(Duolingo)をするのに、主にゼンハイザーのヘッドセット(Sennheiser PC5 Chat)を使っていました。
ヘッドセット購入の経緯はこちら。
これで十分と思っていたのですが、どうも周りの音を拾うのが気になっていて、つい先日Discordで音声チャットをした際に、自分の音声の品質が「まぁそこそこ…」という話もあって、音質にこだわってみることにしました。
Tag: Clone
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: Drag
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: Timer
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: クローン
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: スクラッチ
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: タイマー
Scratchのcloneの練習
昨日のCoderDojo伊予でspriteをランダムに配置する議論があって、いろいろ調べているうちにcloneの方が気になって試してみました。
spriteをcloneする際のIDについて。
Discussion Forums » Help With Scripts » the cloning tutorial: the basics of cloning.
ポイントは、
NOTE: When you create the variable ID you must check the box that says “for this sprite only”
変数をスプライトのみにすること。
Tag: GarageBand
Solo mode on GarageBand
GarageBand(on macOS)を使っていて、何かの操作でPlay Headが黄色い表示になりました。
復旧の仕方がわからずいろいろ調べて解明。
Soloモードというらしく、各トラックにある Solo ボタンをクリックすると、そのトラックのみの再生ができるようです。
そして、このSoloモードの切り替えのショートカットが “S”キーに割り当てられていて、何かの拍子に “S”キーを触ってしまったようです。
Tag: Music
Solo mode on GarageBand
GarageBand(on macOS)を使っていて、何かの操作でPlay Headが黄色い表示になりました。
復旧の仕方がわからずいろいろ調べて解明。
Soloモードというらしく、各トラックにある Solo ボタンをクリックすると、そのトラックのみの再生ができるようです。
そして、このSoloモードの切り替えのショートカットが “S”キーに割り当てられていて、何かの拍子に “S”キーを触ってしまったようです。
Tag: Solo
Solo mode on GarageBand
GarageBand(on macOS)を使っていて、何かの操作でPlay Headが黄色い表示になりました。
復旧の仕方がわからずいろいろ調べて解明。
Soloモードというらしく、各トラックにある Solo ボタンをクリックすると、そのトラックのみの再生ができるようです。
そして、このSoloモードの切り替えのショートカットが “S”キーに割り当てられていて、何かの拍子に “S”キーを触ってしまったようです。
Tag: Macos
macOS Appの練習 – SwiftUI Tutorials
Swiftでの開発は参考書を読んでサンプルアプリを作っている程度でまだまだ初心者です。ここで、自分で何か作ってみようと書き始めたところ、ロジックよりもレイアウトがなかなか難しくて先に進めそうにない感じがしていて、スマホのポートレイトで配置してみて、そこからタブレットの横置きに回転させると崩れてしまうような状態からなかなか抜け出せそうにありません。
Backup & Sync のエラー通知を止める – macOS
Googleの Backup & Sync を有効にしていると、
“Can’t backup files” のような通知がわりと頻繁にデスクトップに表示されることがあって、
通知の止め方がわからず Backup & Sync 自体を止めていたのですが、
それだと不便なこともあってあらためて調べてみました。
結論としては Backup & Sync の設定でオプションを外せば良さそうです。
参考記事はこのあたり。
[How do I stop Backup and Sync notifications on my PC?][2]
[How to Fix: Disable Google Drive / Backup and Sync Popups when Inserting USB, DVD, or Smartphone][3]
- ステータスメニューの Backup & Sync アイコンをクリックして右端のメニューを開く。
- Preferences…を開く。
- ウインドウの一番下にある USB Devices & SD Cards をクリック
すると、次の設定項目が表示されるので、不要な項目のチェックを外します。
[][4]
Sourcetree で ローカルリポジトリが開けない – High Sierra
macOS を High Sierra にアップデートして、
Sourcetree でローカルリポジトリを開こうとしたところ、
次のようなエラーダイアログが表示されて開けなくなっていました。
‘git status’ failed with code 1:’xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
‘
ファインダーで調べたところ、確かに
/Library/Developer/CommandLineTools/usr/bin/xcrun
このファイルが存在しません。
要するに、OSをアップデートしたので CommandLineTools をインストールし直さないといけないようです。
ということでターミナルから、
xcode-select –install
を実行。
Sourcetree がもとどおり動くことを確認しました。
Tag: SwiftUI
macOS Appの練習 – SwiftUI Tutorials
Swiftでの開発は参考書を読んでサンプルアプリを作っている程度でまだまだ初心者です。ここで、自分で何か作ってみようと書き始めたところ、ロジックよりもレイアウトがなかなか難しくて先に進めそうにない感じがしていて、スマホのポートレイトで配置してみて、そこからタブレットの横置きに回転させると崩れてしまうような状態からなかなか抜け出せそうにありません。
Tag: WatchOS
macOS Appの練習 – SwiftUI Tutorials
Swiftでの開発は参考書を読んでサンプルアプリを作っている程度でまだまだ初心者です。ここで、自分で何か作ってみようと書き始めたところ、ロジックよりもレイアウトがなかなか難しくて先に進めそうにない感じがしていて、スマホのポートレイトで配置してみて、そこからタブレットの横置きに回転させると崩れてしまうような状態からなかなか抜け出せそうにありません。
Tag: Angular
GDG Tokyo のハンズオンにリモート参加 – Angular+Firebase
土曜日の午後、仕掛かりのチュートリアルでも進めようかと思っていたら #GDGTokyo のハンズオンにリモート参加できることを知りYoutube Live 視聴枠でエントリー。
https://gdg-tokyo.connpass.com/event/168843/
前半はなんとかついていけたのですが、後半のAngularのセッションのスピードについていけず早々に脱落。あとでビデオが公開されるとのことで、夕食後にビデオを見ながら(何度も巻き戻しながら)試してみました。ざっとメモ書き程度ですが書いておきます。
Tag: Firebase
GDG Tokyo のハンズオンにリモート参加 – Angular+Firebase
土曜日の午後、仕掛かりのチュートリアルでも進めようかと思っていたら #GDGTokyo のハンズオンにリモート参加できることを知りYoutube Live 視聴枠でエントリー。
https://gdg-tokyo.connpass.com/event/168843/
前半はなんとかついていけたのですが、後半のAngularのセッションのスピードについていけず早々に脱落。あとでビデオが公開されるとのことで、夕食後にビデオを見ながら(何度も巻き戻しながら)試してみました。ざっとメモ書き程度ですが書いておきます。
CodeLabsのbarcode scannerを試してみました。 – Firebase
チュートリアルはこちらから。
Detect Barcodes in an Image using Firebase MLKit
サンプルソースにはML Kitのプロジェクトがいくつか含まれているので、
その中から barcode-scanning/starter を適当な場所に置いて AndroidStudio で開きます。
Nextボタンで進めていきます。
Firebase consoleで入力するパッケージ名ですが、
誤:com.google.firebase.codelab.barcode-scanning
正:com.google.firebase.codelab.barcode_scanning
のようです。
あと appのbuild.gradle ですが、
`
implementation ‘com.google.firebase:firebase-ml-vision:17.0.0’
…
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
`
このように disableVersionCheck = true を追加してエラーを回避しました。
(他に正しい方法があるのかも…)
emulatorでアプリが起動することを確認して、USBで実機を接続。
実行すると、書籍のバーコードが読み取れました。
Firebase In-App Messaging API – Android Studio
Firebase の In-App Messaging を試してみるものの、一向に表示される様子がなく…
Android Studio の Logcat を眺めてみると、
PERMISSION_DENIED: Firebase In-App Messaging API has not been
used in project ??? before or it is disabled.
のようなログがありました。
Enable it by visiting …
Firebase In-App Messaging API が有効になっていない?
ということでした。
ENABLE をクリックして、再度 Firebase console からテストを実行。
emulatorでアプリを閉じて開きなおすとメッセージが表示されました。
Firebase勉強会に参加しました
5月20日土曜日にFirebase勉強会に参加しました。
最初に参加者みなさんの自己紹介があって、興味分野とか近況などを軽く共有して本題に。
どのプラットフォームで勉強するかを選ぶということで、ウェブを希望。
ちなみにFirebaseの概要はこちら。
Firebaseドキュメント
具体的にはこちらの記事を参考にさせていただきました。感謝。
Firebaseの始め方 – Qiita
開発環境の準備としては、
Firebase CLI リファレンス
Firebase CLIを使うために、npm コマンドがインストールされていなければ、
Node.js をインストール。そして、
npm install -g firebase-tools
で Firebase CLI をインストールします。
あとは firebaseのコンソール を開いて、記事に沿って進めていきます。
ということで、言われるままにソースを編集して、コマンドを叩いているうちに簡単なチャットサービスができました。しかも、ローカルの動作確認から実際のウェブで確認(deploy)できるところまで。
本格的にサービスを構築して運用ということを考えると、色々とやるべきことがあるのかもしれませんが、例えば、ちょっとした要望が上がって、「こんな感じでいかがでしょう」とサクッとプロトタイプ的なものを作って実際に試してみる場合など、非常に効率よく進めることができそうです。
Tag: Gdgtokyo
GDG Tokyo のハンズオンにリモート参加 – Angular+Firebase
土曜日の午後、仕掛かりのチュートリアルでも進めようかと思っていたら #GDGTokyo のハンズオンにリモート参加できることを知りYoutube Live 視聴枠でエントリー。
https://gdg-tokyo.connpass.com/event/168843/
前半はなんとかついていけたのですが、後半のAngularのセッションのスピードについていけず早々に脱落。あとでビデオが公開されるとのことで、夕食後にビデオを見ながら(何度も巻き戻しながら)試してみました。ざっとメモ書き程度ですが書いておきます。
Tag: Coverage
pytestでTDD
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
TDDとは
- 失敗するテストを書く
- テストを通すコードを書く
- 必要に応じてリファクタリング
Red-Green-Refactor サイクル。
なぜTDDを用いるか
Tag: Integration
pytestでTDD
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
TDDとは
- 失敗するテストを書く
- テストを通すコードを書く
- 必要に応じてリファクタリング
Red-Green-Refactor サイクル。
なぜTDDを用いるか
Tag: Pytest
pytestでTDD
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
TDDとは
- 失敗するテストを書く
- テストを通すコードを書く
- 必要に応じてリファクタリング
Red-Green-Refactor サイクル。
なぜTDDを用いるか
Tag: TDD
pytestでTDD
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
TDDとは
- 失敗するテストを書く
- テストを通すコードを書く
- 必要に応じてリファクタリング
Red-Green-Refactor サイクル。
なぜTDDを用いるか
TDDは 過大評価されてる?
“Test Driven Development is overrated” という記事を拝読してのメモ書き。
“TDDは過大評価されてる” と言われて残念に思ったのと同時に、TDDが都市伝説化していると感じた。(ことからこの記事にまとめたとのこと)
TDDのアイディアは Kent Beck によって作られた。
“Test Driven Development” written in 2003
- 小さな落ちるテストを書く
- テストを通す機能を実装する
- リファクタリング
“Red, Green, Refactor”
WordPress作業メモ
学術研究機関向けシンポジウム管理システム developed with WordPress
2015年版の開発
TDD(PHPUnit)で進めた。
当初、2ヶ国語(日本語、英語)で開発・運用していたが、複数言語でのコンテンツの更新が負担になるため英語メインに変更。必要に応じて日本語を併記。
2017年版で機能追加
1アカウントで複数の論文投稿(および決済)に対応。この部分でプログラムが若干複雑になり、決済のチェックも事務方での確認など手間が増えてしまう。
ただしTDD(2015版)によるテストコードがあったので、改修作業は比較的スムーズに進んだ。
2019版を開発開始
MVCに関する記事を参考に、リファクタリングを進める。
やはりここでもTDDに救われる。仮にテストコードがないとすると、ここまでたどり着けていないと思う。しかもストレスなく、というよりもどちらかというとモチベーション高めでリファクタリングを進めることができるのはわりと幸せな感じ。
ただし、PayPalのAPIが開発の時期によってバージョンアップされていて、その対応(情報収集、試作)に結構な時間が取られるのがなかなかしんどい。
Coderetreat 参考資料
Conway’s Game of Life
ライフゲーム(Conway’s Game of Life)
TDD & Conway’s Game of Life by Jeremy Bytes
Kata
In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.
As a group, software developers don’t practice enough. Most of our learning takes place on the job, which means that most of our mistakes get made there as well. Other creative professions practice: artists carry a sketchpad, musicians play technical pieces, poets constantly rewrite works. In karate, where the aim is to learn to spar or fight, most of a student’s time is spent learning and refining basic moves. The more formal of these exercises are called kata.
GDCR 2018 in 松山を開催しました
イベントページ
Global Day of Coderetreat 2018 in Matsuyama
ツイートまとめ(togetter)
GDCR 2018 in Matsuyama
会場はこちら
The 3rd FLOOR
ご協力ありがとうございました。
ランチ、ドリンク、デザートは1Fのグレイズさんにお願いしました。
とても美味しかったです。ありがとうございました。
CodeRetreat は、1日かけてプログラミングのスキルアップを目指すイベントで基本的にプログラマーは無料で参加できます。会場やランチ、おやつなどにかかる費用は、スポンサーを募ってまかないます。ご賛同いただける企業の方、個人の方がいらっしゃいましたら今後のイベントへのご協力をお願いします。
ペアを組んで1日に5から6セッション行います。セッション毎に書いたコードを消します。各セッションでペアを入れ替えます。参加者は使いたいプログラミング言語の環境(テストフレームワークを含む)を各自用意して、ペアで共有します。
今回のイベントではオブジェクト指向設計を重視する方向だったので、そのあたり自分自身まだまだトレーニングが必要と感じました。
でも、セッションを重ねるたびに、とても楽しい、面白いという感想が多く聞こえて、松山で3度目の開催になりますがとても充実した良いイベントになったと思います。参加されたみなさんのおかげです。
あと、時差の関係でイベント終了後になりましたが、スペイン(Valencia)の会場とHangoutで繋いで無事バトンを渡すことができました。
今後は、年1回のGDCRとは別に、もう少しカジュアルに CodeRetreat が開催できればと思っています。興味のある方はぜひご協力をお願いします。
先日のTDDBCのおさらい – Android Studio
先日高松で開催されたTDDBCにPHPのTAとして参加しました。
事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。
ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。
確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。
Toggle auto-test のボタンを有効にしますが、その前に、
Preferences… -> Build, Execution, Deployment -> Compiler
を開いて「Make project automatically」にチェックを入れておきます。
Mockito でテストしようとして java.lang.NoClassDefFoundError になる場合 – Android
先月JUnit勉強会を開催しまして、
JUnit勉強会 in 松山 – “REVIVAL” #season1
その時に仕掛ったモックをあらためて使おうとしたところ、
“java.lang.NoClassDefFoundError”
となって先に進めない状況が続いていました。
開発環境は、Googleが提供しているADT-Bundle版です。
結局、ビルドパスの設定でMockitoをライブラリに追加したのが良くなかったようです。
例えば、
- テスト対象: TipsCalendar
- テストプロジェクト: TipsCalendarTest
の場合。
テスト対象プロジェクトが指定されていること。
ターゲットのAPIとその依存関係が指定されていること。
※ここに手作業でmockito-all-1.9.5.jarを追加するとタイトルのエラーになりました。
ビルドパスを編集するのではなくて、テストプロジェクトに libs フォルダを作成してその中に、
- mockito-all-1.9.5.jar
- dexmaker-1.0.jar
- dexmaker-mockito-1.0.jar
これらのファイルをコピーすればOKでした。
Tag: Overrated
TDDは 過大評価されてる?
“Test Driven Development is overrated” という記事を拝読してのメモ書き。
“TDDは過大評価されてる” と言われて残念に思ったのと同時に、TDDが都市伝説化していると感じた。(ことからこの記事にまとめたとのこと)
TDDのアイディアは Kent Beck によって作られた。
“Test Driven Development” written in 2003
- 小さな落ちるテストを書く
- テストを通す機能を実装する
- リファクタリング
“Red, Green, Refactor”
Tag: 都市伝説
TDDは 過大評価されてる?
“Test Driven Development is overrated” という記事を拝読してのメモ書き。
“TDDは過大評価されてる” と言われて残念に思ったのと同時に、TDDが都市伝説化していると感じた。(ことからこの記事にまとめたとのこと)
TDDのアイディアは Kent Beck によって作られた。
“Test Driven Development” written in 2003
- 小さな落ちるテストを書く
- テストを通す機能を実装する
- リファクタリング
“Red, Green, Refactor”
Tag: Docker
Local By Flywheel が起動しない…
さて、進行中のウェブサイトを確認するため Local By Flywheel を起動しようとすると、
このダイアログが表示されて、先に進まない様子。
調べてみると、
Regenerating Docker Machine TLS Certificate, checking system won’t start
という記事があって、
さらに手順をまとめた記事がありました。感謝。
Local by Flywheel Regenerating Machine Certificates
この手順で復旧完了。
Docker の WordPress で PHPUnit を試してみる
先日の WordPress Meetup で Docker 環境を試しました。
ゆるウェブもくもく会 #1 @ミュゼ灘屋
当日は phpunit コマンドが実行できることを確認して終了。
その後、実際にプラグインを追加してテストが通るところまで確認できたので、いくつか試したことをメモっておきます。
まずはこちら。Docker公式のドキュメント。
Quickstart: Compose and WordPress
これでローカルの起動までは簡単にできるのですが、WordPressのファイルがホスト側にマウントされないので、
Dockerにシェルで入って操作、編集する必要があります。
次に参考にさせていただいた記事。
Docker ComposeでWordPressを構築する
こちらだと docker-compose.yml を置いた場所に /html/ というフォルダができるので、ここから WordPress の各種ファイル操作ができます。
ただしこの環境だと phpunit まわりが入っていないので、必要なコマンド群を手作業でインストールする必要があります。
WordPressのイメージのカスタマイズで参考にした記事がこちら。
Dockerfile を編集して必要なコマンドをインストールすれば良さそう。
と調べているうちに、必要なものが一通り揃ったものがありました。感謝。
akahigeg/wordpress-plugin-unittest-on-docker – GitHub
こちらのソース一式をクローンなりダウンロードなりして、
$ docker-compose up -d
とすれば、phpunit用にカスタマイズされたWordPressのイメージで起動できます。
Dockerfileを編集した場合は、
$ docker-compose down
して、
$ docker-compose build
$ docker-compose up -d
という操作をすれば良さそうです。
少し気になるのが Docker 内のファイルのパーミッション。
この環境だと my-plugin の owner が root になるようで、
Cookiecutter Django のテスト
python3環境とcookiecutter実行
cookiecutter設定項目
必要な環境に合わせて適宜変更…
出来上がったプロジェクトフォルダに移動して、
ビルド・実行、停止
メールアドレスでユーザーを追加する際のactivation
Mailhog
ビルドをやり直す場合
(参考)Quickstart: Compose and Django
Tag: Virtualbox
Local By Flywheel が起動しない…
さて、進行中のウェブサイトを確認するため Local By Flywheel を起動しようとすると、
このダイアログが表示されて、先に進まない様子。
調べてみると、
Regenerating Docker Machine TLS Certificate, checking system won’t start
という記事があって、
さらに手順をまとめた記事がありました。感謝。
Local by Flywheel Regenerating Machine Certificates
この手順で復旧完了。
ローカル環境からのメール通知など – WordPress
先日、macOSをHigh Sierraにアップデートしてそれに合わせてWordPressのテスト環境(VCCW)を作り直しました。
ざっとですが、メモ書き。
VirtualBox-5.1.30
Download VirtualBox
2017年10月19日時点で VirtualBox-5.2.0 がリリースされていますが、vagrant-2.0 は VirtualBox-5.2 には未対応なので、5.1系にしておきます。
ちなみに VirtualBox-5.2 をインストールした状態で vagrant up とすると、下記のエラーメッセージが表示されて起動できません。
The provider ‘virtualbox’ that was requested to back the machine ‘vccw.test’ is reporting that it isn’t usable on this system. Thereason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of the supported versions listed below to use Vagrant:
AirStation設定ツールで無線親機が見つからない場合 – VirtualBox
Buffaloの無線LAN中継器を使っておりまして、ファームウェアを更新しようとしてはまりましたので、備忘録として書いておきます。
Buffaloのエアステーション設定ツール
https://www.buffalo.jp/support/other/airset.html
見つからない場合は「AS設定ツール」で検索してください。
設定ツールを実行すると、
「2つ以上のネットワーク接続がつながっています。…」
このような警告メッセージが表示されて、続行すると、
このように「無線親機が見つかりませんでした。」となってしまいます。
私の場合は、次の画面のように VirtualBox NDIS 6.0 Miniport Driver を無効にすることで、無線親機を見つけることができました。
上記画面はVPN接続もつながっていない状態です。VPN接続を有効にすると、やはり「無線親機が見つかりませんでした。」となります。
ということで、Wi-Fi接続のみを有効にした状態でエアステーション設定ツールを実行すると、次のように無線親機を見つけることができました。
vagrant 起動エラー – VirtualBox
仮想環境を整えるために VirtualBox を起動したところ、バージョンアップがリリースされているようなメッセージがあったので、早速ダウンロードしてインストール。
すると、vagrant upでエラーが発生して起動できず。
シェルの画面には次のようなメッセージ。
The guest machine entered an invalid state while waiting for it to boot. Valid states are ‘starting, running’. The machine is in the ‘poweroff’ state. Please verify everything is configured properly and try again.
これだけでは様子がわからないのでGUI(VirtualBoxマネージャ)から起動してみると、
このようなエラーメッセージが表示されました。
このエラーメッセージを元にGoogleで検索して見つかった記事。
Failed to open/create the internal network Vagrant on Windows10
Tag: Git
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
Rails Girls Ehimeに参加しました
昨年末からehime.rbで少しずつですが Ruby on Rails を勉強していまして、
今回 Rails Girls Ehime が開催されたのでスタッフとして参加してきました。
スタッフといってもイベント当日のお手伝いは特にしていなくて、開催前のお手伝いでイベントのお知らせページの一部をGitHubで更新した程度です。マスターリポジトリをフォークして、ブランチを切ってファイルを編集。コミットしてPRを送ってマージされたらフェッチしてフォーク先を更新、みたいな手順を何度か行いました。これはこれでgit操作の勉強になりました。
イベント自体は2日目の土曜日のみお邪魔して参加者と同じ立場でRailsの環境づくりとチュートリアルを試しました。昨年末かあるいはその前だったか作成済みのRails環境があって、今回のチュートリアルの環境に合わせるにはいくつかバージョンアップが必要でした。
anyenvのrbenvを更新しました。(してなかった
— ♂️ (@kazweda) June 15, 2019
https://t.co/fSKmKFgCd3
platformsオプションを削除してbundle update— ♂️ (@kazweda) June 15, 2019
herokuへのdeployをする際にherokuコマンドのバージョンアップを促すメッセージが出たので、更新を実行したところ更新できず。下記のherokuのドキュメントによると、どうやらnpmでのheroku(cli)のインストールはおすすめではないらしい。
The Heroku CLI | Heroku Dev Center https://t.co/feGOVy4DgU #rg_ehime
— ♂️ (@kazweda) June 15, 2019
で、なんとか環境が整ったのでチュートリアルを進めていきました。で、herokuへのdeployもできて、次の課題でファイルのアップロードに対応しようとしたところで、deployしたところでエラー発生。
Application error #rg_ehime pic.twitter.com/KhOy1Hww2m
— ♂️ (@kazweda) June 15, 2019
調べていくと、
— ♂️ (@kazweda) June 15, 2019
Gemfileの編集で gem 'carrierwave'
これを追加する場所がまずかったようです。(developmentの中にのみ書いていた)
そんなこんなでエラーを起こしつつもherokuでの動作確認までできました。
あとLTで参考になるサイトとか書籍の紹介があったのでいくつか書いておきます。
Progate – Ruby on Rails5
Paizaラーニング – 「Ruby on Rails」入門講座
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 五十嵐 邦明 https://t.co/0GVpU2UICl via @amazonJP #rg_ehime
herokuまわり – Rails Tutorial
明日の勉強会の準備。メモ書き程度です。
1.5.1 Herokuのセットアップ
このあたりの作業中。
ndenvのnpmをインストール済みなので、
$ npm install -g heroku-cli
を試したところ、npm WARN ... 'heroku-cli' has been renamed 'heroku'
と表示されたもののインストールはできた様子。
それと、cross-spawn no longer requires a build toolchain, use it instead
という警告もあり。
$ heroku --version
heroku/7.19.3 darwin-x64 node-v8.11.2
$ heroku login
ブラウザが開くのでログインします。
SSHキーを作成して登録。
$ ssh-keygen -t rsa -C "your.name@example.com" -f ~/.ssh/id_rsa_heroku
$ heroku keys:add
$heroku create
ブラウザで確認
herokuにデプロイ
$ git push heroku master
pushでrejected
SQLite on Heroku
ローカルのGemfileを編集したものの、コミットするのを忘れていました。(^^;
Sourcetree で ローカルリポジトリが開けない – High Sierra
macOS を High Sierra にアップデートして、
Sourcetree でローカルリポジトリを開こうとしたところ、
次のようなエラーダイアログが表示されて開けなくなっていました。
‘git status’ failed with code 1:’xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
‘
ファインダーで調べたところ、確かに
/Library/Developer/CommandLineTools/usr/bin/xcrun
このファイルが存在しません。
要するに、OSをアップデートしたので CommandLineTools をインストールし直さないといけないようです。
ということでターミナルから、
xcode-select –install
を実行。
Sourcetree がもとどおり動くことを確認しました。
Git環境まとめ
Windows
SourceTree
Git for Windows
TortoiseGit – Windows Shell Interface to Git
macOS
Xcode Command Line Tools – macOS Sierra – Install
Macでgitを使えるようにする | Code Tips
SourceTree
Tutorial
Gitクライアント! SourceTree の使い方 ~GUIでGitを使おう~
Bitbucket クラウドでの Git の使用方法 – Atlassian Git チュートリアル
TortoiseGit の基礎勉強 〜TortoiseGit によるバージョン管理を使う〜
GitHubで共同開発のためのチュートリアル
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜
Tag: PHPUnit
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
Docker の WordPress で PHPUnit を試してみる
先日の WordPress Meetup で Docker 環境を試しました。
ゆるウェブもくもく会 #1 @ミュゼ灘屋
当日は phpunit コマンドが実行できることを確認して終了。
その後、実際にプラグインを追加してテストが通るところまで確認できたので、いくつか試したことをメモっておきます。
まずはこちら。Docker公式のドキュメント。
Quickstart: Compose and WordPress
これでローカルの起動までは簡単にできるのですが、WordPressのファイルがホスト側にマウントされないので、
Dockerにシェルで入って操作、編集する必要があります。
次に参考にさせていただいた記事。
Docker ComposeでWordPressを構築する
こちらだと docker-compose.yml を置いた場所に /html/ というフォルダができるので、ここから WordPress の各種ファイル操作ができます。
ただしこの環境だと phpunit まわりが入っていないので、必要なコマンド群を手作業でインストールする必要があります。
WordPressのイメージのカスタマイズで参考にした記事がこちら。
Dockerfile を編集して必要なコマンドをインストールすれば良さそう。
と調べているうちに、必要なものが一通り揃ったものがありました。感謝。
akahigeg/wordpress-plugin-unittest-on-docker – GitHub
こちらのソース一式をクローンなりダウンロードなりして、
$ docker-compose up -d
とすれば、phpunit用にカスタマイズされたWordPressのイメージで起動できます。
Dockerfileを編集した場合は、
$ docker-compose down
して、
$ docker-compose build
$ docker-compose up -d
という操作をすれば良さそうです。
少し気になるのが Docker 内のファイルのパーミッション。
この環境だと my-plugin の owner が root になるようで、
ローカル環境からのメール通知など – WordPress
先日、macOSをHigh Sierraにアップデートしてそれに合わせてWordPressのテスト環境(VCCW)を作り直しました。
ざっとですが、メモ書き。
VirtualBox-5.1.30
Download VirtualBox
2017年10月19日時点で VirtualBox-5.2.0 がリリースされていますが、vagrant-2.0 は VirtualBox-5.2 には未対応なので、5.1系にしておきます。
ちなみに VirtualBox-5.2 をインストールした状態で vagrant up とすると、下記のエラーメッセージが表示されて起動できません。
The provider ‘virtualbox’ that was requested to back the machine ‘vccw.test’ is reporting that it isn’t usable on this system. Thereason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of the supported versions listed below to use Vagrant:
Tag: Tddbc
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
Tag: Windows
phpのテスト環境 – Windows
メモ書き程度で恐縮ですが。
ローカル環境の場合
レシピ
– Windows10
– PHP-7.4.x
– phpunit
– Git for Windows
– VS Code
https://windows.php.net/download/
ここからNon Thread Safeのzipファイルをダウンロードして展開し、C:\php
へ配置。
環境変数(システム -> 詳細設定 -> 環境変数)を開いてユーザーもしくはシステムの環境変数:PATH に C:\php
を追加。
合わせて git
の環境も整えておく。
デスクトップの表示
クイック起動ツールバーに、デスクトップを表示するための
ショートカットを登録していたのですが、他のメニューにも
登録しようと操作していたところ間違って削除してしまいました。
そのような場合の修復方法です。
「Windows XP のクイック起動ツール バーに [デスクトップの表示] アイコンを再登録する方法」
http://support.microsoft.com/kb/190355/ja
テキストエディタ(メモ帳など)で、
—————————————
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
—————————————
と書いて、「デスクトップの表示.scf」という名前で保存すればOKです。
その他にも、
「Windows」キー+「D」
や、
タスクバーで右クリックして「デスクトップを表示」
など。
Tag: Rails
Rails環境のwarningなど – wsl
wsl(Windows Subsystem for Linux)のubuntuでRails環境を構築する際に、いくつかwarningが表示されたのでその対応を簡単に書いておきます。
ちなみに rails は、
rbenv install 2.6.5
rbenv global 2.6.5
gem install rails --no-document
でインストールできた前提です。
ここで例えば、
rails -v
として、
Ruby on Rails 5 のローカル環境
Ruby on Rails 5をvagrantで環境構築していて少し引っ掛かったのでメモ書き。
主なレシピ
- macOS 10.15.2
- vagrant-box bento/centos-6.8
- ruby 2.6.5
- rails 5.1.7
Vagrantfileに下記を追加。
Rails Girls Ehime 2nd 開催準備のお手伝い
今年6月に開催された Rails Girls Ehime ですが、来年2月に2回目のイベントを開催するということで準備が始まりました。
1回目のイベントのツイートまとめはこちら。
Rails Girls Ehime – June 2019 のまとめ
ちなみに Girls と女子向けなのは Affirmative action というコンセプトがあるそうです。性別に関係なく働きやすい環境って大切ですよね。
ということで、次回イベントの参加登録ページなど準備(お手伝い)しています。コーチとしての参加もありますので、ご興味のある方、少しでもご経験のある方はぜひこの機会にご参加ください。
それと ehime.rb という愛媛の地域 Ruby・Rails コミュニティもあります。最近はオンラインで開催されているので、ご都合が合えばこちらもどうぞ。
Rails Girls Ehimeに参加しました
昨年末からehime.rbで少しずつですが Ruby on Rails を勉強していまして、
今回 Rails Girls Ehime が開催されたのでスタッフとして参加してきました。
スタッフといってもイベント当日のお手伝いは特にしていなくて、開催前のお手伝いでイベントのお知らせページの一部をGitHubで更新した程度です。マスターリポジトリをフォークして、ブランチを切ってファイルを編集。コミットしてPRを送ってマージされたらフェッチしてフォーク先を更新、みたいな手順を何度か行いました。これはこれでgit操作の勉強になりました。
イベント自体は2日目の土曜日のみお邪魔して参加者と同じ立場でRailsの環境づくりとチュートリアルを試しました。昨年末かあるいはその前だったか作成済みのRails環境があって、今回のチュートリアルの環境に合わせるにはいくつかバージョンアップが必要でした。
anyenvのrbenvを更新しました。(してなかった
— ♂️ (@kazweda) June 15, 2019
https://t.co/fSKmKFgCd3
platformsオプションを削除してbundle update— ♂️ (@kazweda) June 15, 2019
herokuへのdeployをする際にherokuコマンドのバージョンアップを促すメッセージが出たので、更新を実行したところ更新できず。下記のherokuのドキュメントによると、どうやらnpmでのheroku(cli)のインストールはおすすめではないらしい。
The Heroku CLI | Heroku Dev Center https://t.co/feGOVy4DgU #rg_ehime
— ♂️ (@kazweda) June 15, 2019
で、なんとか環境が整ったのでチュートリアルを進めていきました。で、herokuへのdeployもできて、次の課題でファイルのアップロードに対応しようとしたところで、deployしたところでエラー発生。
Application error #rg_ehime pic.twitter.com/KhOy1Hww2m
— ♂️ (@kazweda) June 15, 2019
調べていくと、
— ♂️ (@kazweda) June 15, 2019
Gemfileの編集で gem 'carrierwave'
これを追加する場所がまずかったようです。(developmentの中にのみ書いていた)
そんなこんなでエラーを起こしつつもherokuでの動作確認までできました。
あとLTで参考になるサイトとか書籍の紹介があったのでいくつか書いておきます。
Progate – Ruby on Rails5
Paizaラーニング – 「Ruby on Rails」入門講座
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 五十嵐 邦明 https://t.co/0GVpU2UICl via @amazonJP #rg_ehime
herokuまわり – Rails Tutorial
明日の勉強会の準備。メモ書き程度です。
1.5.1 Herokuのセットアップ
このあたりの作業中。
ndenvのnpmをインストール済みなので、
$ npm install -g heroku-cli
を試したところ、npm WARN ... 'heroku-cli' has been renamed 'heroku'
と表示されたもののインストールはできた様子。
それと、cross-spawn no longer requires a build toolchain, use it instead
という警告もあり。
$ heroku --version
heroku/7.19.3 darwin-x64 node-v8.11.2
$ heroku login
ブラウザが開くのでログインします。
SSHキーを作成して登録。
$ ssh-keygen -t rsa -C "your.name@example.com" -f ~/.ssh/id_rsa_heroku
$ heroku keys:add
$heroku create
ブラウザで確認
herokuにデプロイ
$ git push heroku master
pushでrejected
SQLite on Heroku
ローカルのGemfileを編集したものの、コミットするのを忘れていました。(^^;
Tag: Ubuntu
Rails環境のwarningなど – wsl
wsl(Windows Subsystem for Linux)のubuntuでRails環境を構築する際に、いくつかwarningが表示されたのでその対応を簡単に書いておきます。
ちなみに rails は、
rbenv install 2.6.5
rbenv global 2.6.5
gem install rails --no-document
でインストールできた前提です。
ここで例えば、
rails -v
として、
apache2でmod_rewriteを有効にする – a2enmod
先日も、ユーザホーム(public_html)を公開する場合に、a2enmodを
使うような記事を書きましたが、あらためてapacheのモジュールを有効に
する場合の備忘録です。
ubuntu-8.04
apache-2.2.8
ちなみに、apache2の詳細情報は、
$ apt-cache show apache2
$ dpkg -s apache2
で確認。
そもそも、a2enmodとは、シェルスクリプトなのですね。
/usr/sbin/a2enmod
ここにインストールされていました。
なので、使い方については、スクリプトを読めば良さそうです。
さて、mod_rewriteを有効にするには、
# a2enmod rewrite
とします。これで、
/etc/apache2/mods-enabled
のフォルダ内に、rewrite.loadのシンボリックリンクが生成されます。
そして、configをリロードするように促されますので、
# /etc/init.d/apache2 force-reload
を実行します。
viエディタのタブ幅を設定 – vimrc
Ubuntu(8.04.2)のviを使っていて、タブ幅などデフォルトのままでは
使いにくいところがあったので、設定を変更してみました。
ユーザホームで、
~/.vimrc または、 ~/.exrc
に、
set tabstop=4
set number
などと記述すれば反映されるのですが、
/etc/vim/vimrc
に設定を追加しても、反映されません。
いろいろと調べてみると、Ubuntuのviエディタはデフォルトで、
vim.tiny
になっているようです。したがって、ユーザ共通で設定を変更するには、
/etc/vim/vimrc.tiny
に記述する必要がありました。
ちなみに、
$ sudo update-alternatives –config vi
を実行してみると、
There is only 1 program which provides vi
(/usr/bin/vim.tiny). Nothing to configure.
ということで、vim.tinyしかインストールされていない模様。
そこで、
$ sudo apt-get install vim
とすると、vim および vim-runtime の2個のパッケージが
インストールされました。
あらためて、
$ sudo update-alternatives –config vi
とすると、
There are 2 alternatives which provide `vi’.
Selection Alternative
———————————————–
1 /usr/bin/vim.tiny
*+ 2 /usr/bin/vim.basic
と表示され、vim.basicがデフォルトになりました。
この場合、vimrcファイルから、vimrc.localを読み込むようになって
いるので、共通の設定は、vimrc.local に記述すればよさそうです。
Apache2でユーザページの公開 – a2enmod
ubuntu-8サーバに、apache2をインストールしてみました。
このような記事がいろいろと公開されているので非常に助かります。↓
http://www.thinkit.co.jp/free/article/0707/11/4/
で、apache2, mysql, phpをインストールしたところで、ユーザディレクトリphpファイルを
置いて、phpinfoを確認しようとしたところ、Not Found になってしまいます。
調べてみたところ、a2enmodというコマンドでモジュールを有効にする必要があるとのこと。
参考サイト
「(Ubuntu Tips) Apache HTTP Serverを構築するには 」
https://wiki.ubuntulinux.jp/UbuntuTips/Server/ApacheServer
「(Ubuntu Official Documentation) HTTPD – Apache2 Web Server」
https://help.ubuntu.com/8.04/serverguide/C/httpd.html
Tag: Wsl
Rails環境のwarningなど – wsl
wsl(Windows Subsystem for Linux)のubuntuでRails環境を構築する際に、いくつかwarningが表示されたのでその対応を簡単に書いておきます。
ちなみに rails は、
rbenv install 2.6.5
rbenv global 2.6.5
gem install rails --no-document
でインストールできた前提です。
ここで例えば、
rails -v
として、
Tag: Zoom
Zoomのオンラインミーティングとマイクについて
最近、オンラインのミーティングでZoomを使う機会がわりとあるのですが、環境によっては周辺の音を拾ってしまって話が聞き取りにくい場合があります。
自分はヘッドセットを使っているから大丈夫、と思っていたのですが、たまたま周りが静かなだけで試しにBGMを大きめの音で流してマイクのテストをしてみると、結構BGMを拾ってしまっていることに気がつきました。
ということで、少しマイクにこだわってみようと思い「単一指向性」を条件に探してみたところ「SENNHEISER PC 5 CHAT」が値段も手頃で良さそうだったので購入。手元にあるイヤホン、ヘッドセットと比べてみました。
Tag: オンラインミーティング
Zoomのオンラインミーティングとマイクについて
最近、オンラインのミーティングでZoomを使う機会がわりとあるのですが、環境によっては周辺の音を拾ってしまって話が聞き取りにくい場合があります。
自分はヘッドセットを使っているから大丈夫、と思っていたのですが、たまたま周りが静かなだけで試しにBGMを大きめの音で流してマイクのテストをしてみると、結構BGMを拾ってしまっていることに気がつきました。
ということで、少しマイクにこだわってみようと思い「単一指向性」を条件に探してみたところ「SENNHEISER PC 5 CHAT」が値段も手頃で良さそうだったので購入。手元にあるイヤホン、ヘッドセットと比べてみました。
Tag: ヘッドセット
Zoomのオンラインミーティングとマイクについて
最近、オンラインのミーティングでZoomを使う機会がわりとあるのですが、環境によっては周辺の音を拾ってしまって話が聞き取りにくい場合があります。
自分はヘッドセットを使っているから大丈夫、と思っていたのですが、たまたま周りが静かなだけで試しにBGMを大きめの音で流してマイクのテストをしてみると、結構BGMを拾ってしまっていることに気がつきました。
ということで、少しマイクにこだわってみようと思い「単一指向性」を条件に探してみたところ「SENNHEISER PC 5 CHAT」が値段も手頃で良さそうだったので購入。手元にあるイヤホン、ヘッドセットと比べてみました。
Tag: Ruby
Ruby on Rails 5 のローカル環境
Ruby on Rails 5をvagrantで環境構築していて少し引っ掛かったのでメモ書き。
主なレシピ
- macOS 10.15.2
- vagrant-box bento/centos-6.8
- ruby 2.6.5
- rails 5.1.7
Vagrantfileに下記を追加。
Rails Girls Ehime 2nd 開催準備のお手伝い
今年6月に開催された Rails Girls Ehime ですが、来年2月に2回目のイベントを開催するということで準備が始まりました。
1回目のイベントのツイートまとめはこちら。
Rails Girls Ehime – June 2019 のまとめ
ちなみに Girls と女子向けなのは Affirmative action というコンセプトがあるそうです。性別に関係なく働きやすい環境って大切ですよね。
ということで、次回イベントの参加登録ページなど準備(お手伝い)しています。コーチとしての参加もありますので、ご興味のある方、少しでもご経験のある方はぜひこの機会にご参加ください。
それと ehime.rb という愛媛の地域 Ruby・Rails コミュニティもあります。最近はオンラインで開催されているので、ご都合が合えばこちらもどうぞ。
Rails Girls Ehimeに参加しました
昨年末からehime.rbで少しずつですが Ruby on Rails を勉強していまして、
今回 Rails Girls Ehime が開催されたのでスタッフとして参加してきました。
スタッフといってもイベント当日のお手伝いは特にしていなくて、開催前のお手伝いでイベントのお知らせページの一部をGitHubで更新した程度です。マスターリポジトリをフォークして、ブランチを切ってファイルを編集。コミットしてPRを送ってマージされたらフェッチしてフォーク先を更新、みたいな手順を何度か行いました。これはこれでgit操作の勉強になりました。
イベント自体は2日目の土曜日のみお邪魔して参加者と同じ立場でRailsの環境づくりとチュートリアルを試しました。昨年末かあるいはその前だったか作成済みのRails環境があって、今回のチュートリアルの環境に合わせるにはいくつかバージョンアップが必要でした。
anyenvのrbenvを更新しました。(してなかった
— ♂️ (@kazweda) June 15, 2019
https://t.co/fSKmKFgCd3
platformsオプションを削除してbundle update— ♂️ (@kazweda) June 15, 2019
herokuへのdeployをする際にherokuコマンドのバージョンアップを促すメッセージが出たので、更新を実行したところ更新できず。下記のherokuのドキュメントによると、どうやらnpmでのheroku(cli)のインストールはおすすめではないらしい。
The Heroku CLI | Heroku Dev Center https://t.co/feGOVy4DgU #rg_ehime
— ♂️ (@kazweda) June 15, 2019
で、なんとか環境が整ったのでチュートリアルを進めていきました。で、herokuへのdeployもできて、次の課題でファイルのアップロードに対応しようとしたところで、deployしたところでエラー発生。
Application error #rg_ehime pic.twitter.com/KhOy1Hww2m
— ♂️ (@kazweda) June 15, 2019
調べていくと、
— ♂️ (@kazweda) June 15, 2019
Gemfileの編集で gem 'carrierwave'
これを追加する場所がまずかったようです。(developmentの中にのみ書いていた)
そんなこんなでエラーを起こしつつもherokuでの動作確認までできました。
あとLTで参考になるサイトとか書籍の紹介があったのでいくつか書いておきます。
Progate – Ruby on Rails5
Paizaラーニング – 「Ruby on Rails」入門講座
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 五十嵐 邦明 https://t.co/0GVpU2UICl via @amazonJP #rg_ehime
docxのルビ文字が消える – LibreOffice
docxファイルをLibreOffice(4.3.7.2)で開いたところルビ文字のふりがなが親の漢字ごと消えていました。
検索してみると、
https://bugs.documentfoundation.org/show_bug.cgi?id=50607
docであれば大丈夫みたいです。
OpenXMLのルビまわり
<w:ruby>...</w:ruby>
Tag: Server
Ruby on Rails 5 のローカル環境
Ruby on Rails 5をvagrantで環境構築していて少し引っ掛かったのでメモ書き。
主なレシピ
- macOS 10.15.2
- vagrant-box bento/centos-6.8
- ruby 2.6.5
- rails 5.1.7
Vagrantfileに下記を追加。
Tag: Vagrant
Ruby on Rails 5 のローカル環境
Ruby on Rails 5をvagrantで環境構築していて少し引っ掛かったのでメモ書き。
主なレシピ
- macOS 10.15.2
- vagrant-box bento/centos-6.8
- ruby 2.6.5
- rails 5.1.7
Vagrantfileに下記を追加。
ローカル環境からのメール通知など – WordPress
先日、macOSをHigh Sierraにアップデートしてそれに合わせてWordPressのテスト環境(VCCW)を作り直しました。
ざっとですが、メモ書き。
VirtualBox-5.1.30
Download VirtualBox
2017年10月19日時点で VirtualBox-5.2.0 がリリースされていますが、vagrant-2.0 は VirtualBox-5.2 には未対応なので、5.1系にしておきます。
ちなみに VirtualBox-5.2 をインストールした状態で vagrant up とすると、下記のエラーメッセージが表示されて起動できません。
The provider ‘virtualbox’ that was requested to back the machine ‘vccw.test’ is reporting that it isn’t usable on this system. Thereason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of the supported versions listed below to use Vagrant:
vagrant環境のアップデート ( 1.8.6 -> 1.9.1 )
vagrant 自体をアップデート(1.8.6 -> 1.9.1)して、vagrant up したらエラーになったのでメモ書き。
基本的には、vagrantの新しいバージョンをダウンロードして上書きでインストールすれば良さそう。
https://www.vagrantup.com/docs/installation/upgrading.html
で、アップデートして起動した際のエラーメッセージ。
Vagrant failed to initialize at a very early stage:
The plugins failed to initialize correctly. This may be due to manual modifications made within the Vagrant home directory. Vagrant can attempt to automatically correct this issue by running:
vagrant plugin repair
If Vagrant was recently updated, this error may be due to incompatible versions of dependencies. To fix this problem please remove and re-install all plugins. Vagrant can attempt to do this automatically by running:
vagrant 起動エラー – VirtualBox
仮想環境を整えるために VirtualBox を起動したところ、バージョンアップがリリースされているようなメッセージがあったので、早速ダウンロードしてインストール。
すると、vagrant upでエラーが発生して起動できず。
シェルの画面には次のようなメッセージ。
The guest machine entered an invalid state while waiting for it to boot. Valid states are ‘starting, running’. The machine is in the ‘poweroff’ state. Please verify everything is configured properly and try again.
これだけでは様子がわからないのでGUI(VirtualBoxマネージャ)から起動してみると、
このようなエラーメッセージが表示されました。
このエラーメッセージを元にGoogleで検索して見つかった記事。
Failed to open/create the internal network Vagrant on Windows10
Tag: Ios
iOSアプリのレイアウトの練習 – Swift
Swiftでボタンやラベルをたくさん並べたい場合に、どのように実装するのがスマートなのか調べてみました。
参考にさせていただいた記事はこちら。
HOW TO ADD STACK VIEWS PROGRAMMATICALLY AND (ALMOST) AVOID AUTOLAYOUT
ちなみにプロジェクトはSwiftUIではなくてStoryboardで作ります。
このサンプルでは LaunchScreenの上には手動でラベルを配置しますが、Main.storyboard の上は白紙(初期状態)のままでプログラムの中でButton、Label、StackViewを動的に配置しています。
スマートフォンのシェア on 2012.05.24 by IDC
プレスリリースの資料がシェアできるようなので試してみました。
ちなみに、日本語の記事はこちら。
世界スマホ市場シェア、Androidが59%、iPhoneは23%—IDC調査
Tag: Stack
iOSアプリのレイアウトの練習 – Swift
Swiftでボタンやラベルをたくさん並べたい場合に、どのように実装するのがスマートなのか調べてみました。
参考にさせていただいた記事はこちら。
HOW TO ADD STACK VIEWS PROGRAMMATICALLY AND (ALMOST) AVOID AUTOLAYOUT
ちなみにプロジェクトはSwiftUIではなくてStoryboardで作ります。
このサンプルでは LaunchScreenの上には手動でラベルを配置しますが、Main.storyboard の上は白紙(初期状態)のままでプログラムの中でButton、Label、StackViewを動的に配置しています。
Tag: Storyboard
iOSアプリのレイアウトの練習 – Swift
Swiftでボタンやラベルをたくさん並べたい場合に、どのように実装するのがスマートなのか調べてみました。
参考にさせていただいた記事はこちら。
HOW TO ADD STACK VIEWS PROGRAMMATICALLY AND (ALMOST) AVOID AUTOLAYOUT
ちなみにプロジェクトはSwiftUIではなくてStoryboardで作ります。
このサンプルでは LaunchScreenの上には手動でラベルを配置しますが、Main.storyboard の上は白紙(初期状態)のままでプログラムの中でButton、Label、StackViewを動的に配置しています。
Tag: Swift
iOSアプリのレイアウトの練習 – Swift
Swiftでボタンやラベルをたくさん並べたい場合に、どのように実装するのがスマートなのか調べてみました。
参考にさせていただいた記事はこちら。
HOW TO ADD STACK VIEWS PROGRAMMATICALLY AND (ALMOST) AVOID AUTOLAYOUT
ちなみにプロジェクトはSwiftUIではなくてStoryboardで作ります。
このサンプルでは LaunchScreenの上には手動でラベルを配置しますが、Main.storyboard の上は白紙(初期状態)のままでプログラムの中でButton、Label、StackViewを動的に配置しています。
Swiftメモ
めも
- Button.setTitle
- Timer.scheduledTimer
- AVAudioPlayer
- UserDefaults
- UINavigationController
画面遷移
- Viewのコードを書くSwiftファイルを追加(HogeViewController)
- Main.storyboard -> ViewController
- Editor -> Embed In -> Navigation Controller
- Navigation Controller が追加される(画面遷移をナビゲーションするためのクラス)
- ViewController に Navigation Item が追加される
- Object Library -> ViewController をエディタエリアに追加
- 新しい View の Identity inspector -> HogeViewController
- Date Picker を配置
設定画面
- DatePickerのバグ対応
- 1回目のValueChangedはイベントが発生しない。
- datePicker.setDate() すると良さそう。
Swift – UITest
Understanding UI Testing using iOS, Xcode 9 and Swift
Identity inspector
Accessibility -> identifier でIDをセットしてみる。
IDの問題ではなくてテストの順番で今どのViewを開いているかが問題?
でもなくて、
setUp() で 毎回、
XCUIApplication().launch()
しているのでSliderの値が変わっていると、Labelの内容も変化させているので、
初期値の Label ではなくて、Slider に合わせた値がView上に残っているため、
操作によって変化しない ID が必要、ということでした。
Tag: AOSign
電子入札システム対応メモ – パソコンサポート
先日、電子入札で使っているカードの読み取りができなくなったという相談を受けてパソコンのサポートをしてきました。
結果的には専用のJREをインストールし直すことで復旧できました。カードリーダーやそのドライバは問題なかったようです。私自身、電子入札システムを使ったことがなかったので、始めのうちは様子がわからず、セットアップの方法など正確な情報にたどり着くのに少し時間がかかりました。
入り口としてはこちら
えひめ電子入札共同システム
上のページにあるパソコンの設定手順(PDFファイル)を見ながら設定を確認。
指定のJREはこちらから入手。
電子入札システム専用JREダウンロードサイト
ダウンロードの際に電子証明書が必要。
こちらにもJREのサポートに関する情報があります。
日本電子認証株式会社様ウェブサイト – AOSignお知らせ
また、専用JREのサポート期限が令和2年9月までということで、新方式(脱Java)の準備が進められているようです。
応札者向け情報 – 電子入札コアシステム
来年(令和2年)秋までには .NET版 への移行が必要みたいです。
Tag: Jre
電子入札システム対応メモ – パソコンサポート
先日、電子入札で使っているカードの読み取りができなくなったという相談を受けてパソコンのサポートをしてきました。
結果的には専用のJREをインストールし直すことで復旧できました。カードリーダーやそのドライバは問題なかったようです。私自身、電子入札システムを使ったことがなかったので、始めのうちは様子がわからず、セットアップの方法など正確な情報にたどり着くのに少し時間がかかりました。
入り口としてはこちら
えひめ電子入札共同システム
上のページにあるパソコンの設定手順(PDFファイル)を見ながら設定を確認。
指定のJREはこちらから入手。
電子入札システム専用JREダウンロードサイト
ダウンロードの際に電子証明書が必要。
こちらにもJREのサポートに関する情報があります。
日本電子認証株式会社様ウェブサイト – AOSignお知らせ
また、専用JREのサポート期限が令和2年9月までということで、新方式(脱Java)の準備が進められているようです。
応札者向け情報 – 電子入札コアシステム
来年(令和2年)秋までには .NET版 への移行が必要みたいです。
Tag: 電子入札
電子入札システム対応メモ – パソコンサポート
先日、電子入札で使っているカードの読み取りができなくなったという相談を受けてパソコンのサポートをしてきました。
結果的には専用のJREをインストールし直すことで復旧できました。カードリーダーやそのドライバは問題なかったようです。私自身、電子入札システムを使ったことがなかったので、始めのうちは様子がわからず、セットアップの方法など正確な情報にたどり着くのに少し時間がかかりました。
入り口としてはこちら
えひめ電子入札共同システム
上のページにあるパソコンの設定手順(PDFファイル)を見ながら設定を確認。
指定のJREはこちらから入手。
電子入札システム専用JREダウンロードサイト
ダウンロードの際に電子証明書が必要。
こちらにもJREのサポートに関する情報があります。
日本電子認証株式会社様ウェブサイト – AOSignお知らせ
また、専用JREのサポート期限が令和2年9月までということで、新方式(脱Java)の準備が進められているようです。
応札者向け情報 – 電子入札コアシステム
来年(令和2年)秋までには .NET版 への移行が必要みたいです。
Tag: RailsGirls
Rails Girls Ehime 2nd 開催準備のお手伝い
今年6月に開催された Rails Girls Ehime ですが、来年2月に2回目のイベントを開催するということで準備が始まりました。
1回目のイベントのツイートまとめはこちら。
Rails Girls Ehime – June 2019 のまとめ
ちなみに Girls と女子向けなのは Affirmative action というコンセプトがあるそうです。性別に関係なく働きやすい環境って大切ですよね。
ということで、次回イベントの参加登録ページなど準備(お手伝い)しています。コーチとしての参加もありますので、ご興味のある方、少しでもご経験のある方はぜひこの機会にご参加ください。
それと ehime.rb という愛媛の地域 Ruby・Rails コミュニティもあります。最近はオンラインで開催されているので、ご都合が合えばこちらもどうぞ。
Tag: Azure
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: Crossbrowser
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: Edge
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: Ehimejs
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: Selenium
Selenium Grid on Azure and LambdaTest
EhimeJSという勉強会で初心者歓迎LT会が開催されるということで、JSはあまり得意ではないのですが、ちょうどクロスブラウザのテストが気になっていたのでSeleniumの練習を兼ねて参加してきました。
当日の様子はこちら。(@PET_HAL さんのまとめ)
数年前にSeleniumを仕事で使ったことがあって、その時はJavaとPythonでテストプログラムを書いたのですが、今回はJSがテーマということでざっと調べたところ Node.js の記事がいろいろ見つかったので Node.js で書くことにしました。
そしてテスト環境ですが、仕事で主にmacOSを使っていて、Chrome / Firefox / Safari はローカル環境で問題ないので、Edge / IE をメインのテスト対象として考えました。ここで、MSのブラウザは Edge_Chromium がメインになっていくと思うので Edge_HTML / IE 対応にはあまりコストをかけたくないというのが正直なところですが、運用しているウェブサイトの利用状況を見るとそれなりにユーザー数もあるので、であればテストを自動化することでモチベーションにつながればということもあります。
Edge_HTML / IE を試すには Win10 の仮想マシンが必要と考えて、だとすれば Azure を使ってみるのも良いかなと思い Azure の VM で Selenium Grid (hub + node) を立てることにしました。結論としては、環境構築自体は割とスムーズにできて、手元のターミナルからリモートマシンの Chrome / Firefox / Edge_HTML / IE11 を Node.js で動かすことができました。
少し手間取ったのはリージョンの選択とVMサイズの変更。いろいろリージョンを変えてVMを探してみたのですが、少し金額が高めのスペックしか選択肢に表示されず。ちょっと様子がわからなかったので、サポートに問い合わせたところ、希望するリージョンとVMのスペックをリクエストすれば選べるようになりますとのこと。ということでリージョンを変えて希望のスペックが選択できました。
Seleniumについては主にこのページを参考にしました。
Setting up your own test automation environment
ローカルでのテストの仕方やリモートテストに関する情報がまとまっています。ここで LambdaTest というサービスも紹介されていたので試してみました。
EhimeJS で発表した資料はこちらに公開しています。
Selenium Grid on Azure and LambdaTest
LTで説明したのは前半の20枚くらいです。後半に環境構築での注意点とか、まだ試してはいませんが、気になる記事をまとめておきました。少しでも参考になれば幸いです。
Tag: Css
ダッシュボードのスタイル調整(印刷用) – WordPress
あまり利用する機会はないかもしれませんが、ダッシュボードのあるページを印刷する際に admin menu は不要かもと思って
試してみました。
Admin pagesのカスタマイズ方法はこちら(Plugin API/Action Reference/admin enqueue scripts)
概要は、メディアクエリの print を定義して、
adminメニュー領域を非表示にする。
ダッシュボードのコンテンツ領域(#wpcontent)の左側マージンをなくす。
以上です。
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
Chromeで文字化け – Windows7
昨年の記事「WordPressのダッシュボードで文字化け」に関連して、Windows7でも同様の文字化けがありました。
今回はWordPressとは関係なく、あるイベントの登録フォームに入力していて文字化けが発生。
スタイルを確認すると次のようになっています。
font: normal 1em Verdana, 'Trebuchet MS', Tahoma, sans-serif;
ちなみに[CTRL]+マウススクロールで画面のフォントサイズを変えてみると
文字化けが解消。特定の文字サイズのみ □ (白抜き四角)で表示される状況です。
そこで昨年のWinXPのときと同様にフォントをカスタマイズしてみました。
※Chromeのデバッグ機能(文字化けしている部分でマウスを右クリックして「要素を検証」)
今回は “Verdana” を削除したところで文字化けが解消されたので、
C:\Windows\Fonts フォルダを開いて “Verdana” をマウス右クリックで
「非表示」に設定して再起動。

これで文字化けが解消された模様です。
【追記】[2012.01.23]
… と思ったのですが、再度文字化けが発生。
フォントの設定で非表示にしてもアプリケーション側が対応していないと表示されるようです。
Windows 7 で非表示に設定したフォントが表示される
やはりフォントを削除する必要があります。
まず、削除するフォントを念のため他のフォルダあるいは他の媒体にバックアップしておきます。
それからフォントの削除。
コントロール パネル\デスクトップのカスタマイズ\フォント
を開いて “Verdana” をマウス右クリックで削除。(\Windows\Fontsフォルダからでも同様)
このようにエラーが発生して削除できません。
Chromeが “Verdana” を使用中ということですね。
Chrome を一旦終了すると “Verdana” を削除することができました。
WordPressのダッシュボードで文字化け
先週あたりから、WordPressのダッシュボードで作業をしているとメニューやコンテンツの一部が文字化けするようになりました。ちょうどWordPressが3.3にアップデートされたこともあってそれが原因かと思っていたのですが、どうやらChrome(ブラウザ)とWindowsXPのフォントの組み合わせによる問題だったようです。
まず、Chromeで文字化けが起きたときに確認すべきこと。
「設定」->「ツール」->「エンコード」
エンコードが「自動検出」、「UTF-8」となっていること。 ※ご利用の状況によってはエンコードの種類が異なるかもしれません。![]()
「設定」->「オプション」->「高度な設定」->「フォントをカスタマイズ」
※この設定で文字化けが解消できるということではありませんので、念のため。 ※エンコードを「日本語(Shift_JIS)」にすると改善されるという記事もあります。
chromeのみの文字化けについて(Googleグループ)
例えば、あるウェブページのcssでfont-familyに英語のフォントが指定されていると、WindowsXPのバグによって日本語フォントへの置き換えができず文字化けしてしまうようです。
確かに、過去にAdobe製品他をインストールしたことがあっていろいろなフォントが入っていました。
そして、WordPressのダッシュボードには、たとえば次のようなcssが設定されています。
body :not(textarea) { font-style: normal !important; font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif !important; }
そこで、Chromeのデバッグ機能によってcssを調べてみました。
Tag: Print
ダッシュボードのスタイル調整(印刷用) – WordPress
あまり利用する機会はないかもしれませんが、ダッシュボードのあるページを印刷する際に admin menu は不要かもと思って
試してみました。
Admin pagesのカスタマイズ方法はこちら(Plugin API/Action Reference/admin enqueue scripts)
概要は、メディアクエリの print を定義して、
adminメニュー領域を非表示にする。
ダッシュボードのコンテンツ領域(#wpcontent)の左側マージンをなくす。
以上です。
Tag: Wp-Admin
ダッシュボードのスタイル調整(印刷用) – WordPress
あまり利用する機会はないかもしれませんが、ダッシュボードのあるページを印刷する際に admin menu は不要かもと思って
試してみました。
Admin pagesのカスタマイズ方法はこちら(Plugin API/Action Reference/admin enqueue scripts)
概要は、メディアクエリの print を定義して、
adminメニュー領域を非表示にする。
ダッシュボードのコンテンツ領域(#wpcontent)の左側マージンをなくす。
以上です。
WordPressにログインできない場合
この話題は通常のインストールではありませんので念のため。
WordPressで構築したウェブサイトをリニューアルするために、インストール済みのWordPressを別のフォルダに複製してみました。
例えば次のような設置イメージです。
- 運用中のサイト
設置場所 http://www.example.com/wp
公開URL http://www.example.com/ - テストサイト
設置場所 http://www.example.com/wp2
公開URL http://www.example.com/wp2
複製の手順は次の通りです。
- 運用中のサイトのDBをエクスポート
- テストサイト用のDBを作成
- エクスポートしたDBをインポート
- テストサイトのwp-config.phpを編集
define('WP_HOME', 'http://www.example.com/wp2');<br /> define('WP_SITEURL', 'http://www.example.com/wp2');
- 運用中のwp/フォルダ以下を、テストサイト(wp2/)にコピー
で、ダッシュボードにログインしようと運用中のIDとパスワードを入力したところ、認証は通っているようなのですが reauth=1 となってログイン画面がループ状態になってダッシュボードへたどり着けなくなりました。
そこでいろいろと調べているうちに、WordPressのドキュメントが見つかりました。
<a href="http://codex.wordpress.org/Login_Trouble" title="Login Trouble" target="_blank">Login Trouble(WordPress)</a>
結論としては、元のサイトでインストール済みのプラグインが原因でした。
上記のドキュメントを参考にして /wp-content/plugins/ 内のフォルダ名をひとつずつ変えて無効にしてみたところログインできました。
その後、ダッシュボードのツールバー表示が崩れるような現象もありましたが再読み込みで復旧。
※ちなみに、使用中のテーマフォルダをリネームするとデフォルトテーマ(TwentyEleven)に切り替わるようです。
以上です。
組み込んでいるプラグインによってはこのような問題も起こらないのかもしれませんが、あるウェブサイトを丸ごとどこかに移設する場合など同様の問題が発生する可能性もあると思います。少しでもヒントになれば幸いです。
Tag: Polylang
Polylangメモ – WordPress Plugin
プラグインPolylangを使って、ホームページ多言語化 その1:インストールして使ってみる | ゆうそうとITブログ
プラグイン導入に際し、参考にさせていただきました。m(__)m
Language switcherはウィジェットとして設置するので、使用するテーマがウィジェットに対応している前提。
上のページの例だとfunctions.phpのID home_right_1
とテンプレート側のID sidebar-1
が異なるので、実装する際はこのIDを揃える。
外観 -> ウィジェット から Language Switcher を追加。
How to display the widget flags horizontally?
デフォルトだと選択する言語が縦に並ぶので、横に並べたい場合のスタイル指定。
Tag: WordPress
Polylangメモ – WordPress Plugin
プラグインPolylangを使って、ホームページ多言語化 その1:インストールして使ってみる | ゆうそうとITブログ
プラグイン導入に際し、参考にさせていただきました。m(__)m
Language switcherはウィジェットとして設置するので、使用するテーマがウィジェットに対応している前提。
上のページの例だとfunctions.phpのID home_right_1
とテンプレート側のID sidebar-1
が異なるので、実装する際はこのIDを揃える。
外観 -> ウィジェット から Language Switcher を追加。
How to display the widget flags horizontally?
デフォルトだと選択する言語が縦に並ぶので、横に並べたい場合のスタイル指定。
WordPress作業メモ
学術研究機関向けシンポジウム管理システム developed with WordPress
2015年版の開発
TDD(PHPUnit)で進めた。
当初、2ヶ国語(日本語、英語)で開発・運用していたが、複数言語でのコンテンツの更新が負担になるため英語メインに変更。必要に応じて日本語を併記。
2017年版で機能追加
1アカウントで複数の論文投稿(および決済)に対応。この部分でプログラムが若干複雑になり、決済のチェックも事務方での確認など手間が増えてしまう。
ただしTDD(2015版)によるテストコードがあったので、改修作業は比較的スムーズに進んだ。
2019版を開発開始
MVCに関する記事を参考に、リファクタリングを進める。
やはりここでもTDDに救われる。仮にテストコードがないとすると、ここまでたどり着けていないと思う。しかもストレスなく、というよりもどちらかというとモチベーション高めでリファクタリングを進めることができるのはわりと幸せな感じ。
ただし、PayPalのAPIが開発の時期によってバージョンアップされていて、その対応(情報収集、試作)に結構な時間が取られるのがなかなかしんどい。
WordPressで動画をアップ
参考:「videoタグを使って動画を再生する」
http://techbooster.org/html5/9592/
で、調べてみるとWordPressではショートコードが使えるのですね。
https://codex.wordpress.org/Video_Shortcode
なので、スマホ向けのWordPressアプリを使えば、スマホで撮影した動画を簡単に投稿することができます。
WordPress for Android
https://play.google.com/store/apps/details?id=org.wordpress.android&hl=ja
WordPress for iPhone
https://itunes.apple.com/jp/app/wordpress/id335703880?mt=8
WordBench愛媛 – 春のお茶会を開催します。
新年度が始まりましたね。
フレッシュな気分で、新しい環境で皆さんそれぞれご活躍のことと思います。
さて、WordBehch愛媛もおかげさまで登録メンバーが増えてきまして、せっかくの地域コミュニティですので実際にお会いして情報交換ができればと思いましてお茶会をセッティングしました。
まだ席がございますのでお時間ありましたらお気軽にご参加ください。
参加登録はATNDからお願いします。
http://atnd.org/events/38295
WordBench愛媛の参加方法
昨日お知らせしたWordBench愛媛の参加方法をご案内します。
まず最初にWordBench.orgでアカウントを登録します。(create account)
WordBench.orgのページを開いて画面左上の[Register]または右のほうにある[create an account]をクリックします。
すると登録フォームのページが開きます。
必要事項を入力して[Complete Sign Up]をクリックします。
登録したメールアドレスに確認メールが届きますので、メールの内容にしたがって登録を完了してください。
上記でアカウントの登録ができたら、あらためてWordBench.orgのページを開いてログインします。左上の[Log In]メニューまたは右側のアカウント項目からログインできます。
WordBench愛媛ができました。
WordBenchの愛媛グループができました。
http://wordbench.org/groups/ehime/
オンラインでの情報交換は上記WordBenchのサイトに集約しようと思います。
ということで愛媛に限らずWordPressに興味のある方はお気軽にご参加ください。
#WordBenchでのメンバー登録と愛媛グループへの参加をお願いします。
オフライン活動については何名か登録していただいたところで、
場所と日時を相談して「準備会」のような名目で集まって決めたいと思います。
よろしくお願いします。
カスタムフィールドの不具合 – WordPress
先日、WordPressのカスタムフィールドが使えないようなツイートが流れていて、その時はダッシュボードを開いて表示ができたので気にしていなかったのですが、今日になってカスタムフィールドを編集(追加)しようとすると思うように反映されず。
調べてみるとWordPressの現在のバージョンにバグがありました。
3.4.2 カスタムフィールド追加のバグ
お急ぎの場合は、フォーラムの記事にあるようにHotFixプラグインで対処できます。
メールアドレスの暗号化やスパム対策など – WordPress
WordPressのプラグインいくつかご紹介。
- メールアドレスの暗号化
Email Address Encoder
HTMLのソースに含まれるメールアドレスを暗号化してくれます。うっかりメールアドレスをウェブに公開してもbotに拾われる心配がすくなくなります。まぁいたちごっこではありますが。 - お問い合わせフォームのスパム対策
Honeypot Module for Contact Form 7
一般的にはCAPTCHAが利用されていますが、利用する側にとってはなかなか面倒です。
これはbotを逆手にとってダミーの項目を用意しておいて、そこに入力があればスパム扱いするようです。
(こちらを参考にさせていただきました。↓)
[WordPress] CAPTCHAなしでContact Form 7のスパム対策を強化するプラグイン「Contact Form 7 Honeypot」
WordPressにログインできない場合
この話題は通常のインストールではありませんので念のため。
WordPressで構築したウェブサイトをリニューアルするために、インストール済みのWordPressを別のフォルダに複製してみました。
例えば次のような設置イメージです。
- 運用中のサイト
設置場所 http://www.example.com/wp
公開URL http://www.example.com/ - テストサイト
設置場所 http://www.example.com/wp2
公開URL http://www.example.com/wp2
複製の手順は次の通りです。
- 運用中のサイトのDBをエクスポート
- テストサイト用のDBを作成
- エクスポートしたDBをインポート
- テストサイトのwp-config.phpを編集
define('WP_HOME', 'http://www.example.com/wp2');<br /> define('WP_SITEURL', 'http://www.example.com/wp2');
- 運用中のwp/フォルダ以下を、テストサイト(wp2/)にコピー
で、ダッシュボードにログインしようと運用中のIDとパスワードを入力したところ、認証は通っているようなのですが reauth=1 となってログイン画面がループ状態になってダッシュボードへたどり着けなくなりました。
そこでいろいろと調べているうちに、WordPressのドキュメントが見つかりました。
<a href="http://codex.wordpress.org/Login_Trouble" title="Login Trouble" target="_blank">Login Trouble(WordPress)</a>
結論としては、元のサイトでインストール済みのプラグインが原因でした。
上記のドキュメントを参考にして /wp-content/plugins/ 内のフォルダ名をひとつずつ変えて無効にしてみたところログインできました。
その後、ダッシュボードのツールバー表示が崩れるような現象もありましたが再読み込みで復旧。
※ちなみに、使用中のテーマフォルダをリネームするとデフォルトテーマ(TwentyEleven)に切り替わるようです。
以上です。
組み込んでいるプラグインによってはこのような問題も起こらないのかもしれませんが、あるウェブサイトを丸ごとどこかに移設する場合など同様の問題が発生する可能性もあると思います。少しでもヒントになれば幸いです。
Googleアナリティクスに漏れが… – WordPress
先月末に自社サイトのメンテナンスをしていて、モバイル対応をレスポンシブデザインからWPtouchに戻しました。
主な理由は次の通り。
- レスポンシブデザインは必ずしもモバイルデバイスに最適化されていない。
- 現在のAdSenseモバイル用バナーがレスポンシブに対応していない。
最適化については実際にページの表示が遅く感じていたのと、WPtouch開発者のブログを参考にしました。
WEIGHING OPTIONS: WPTOUCH, RESPONSIVE DESIGN AND YOUR MOBILE STRATEGY
要するにWPtouchはサーバ側の処理、つまりUAによってモバイル向けのコンテンツを送出し、レスポンシブはクライアント側の処理という感じです。
で、その他高速化のプラグインやDBのメンテナンスにより結構改善ができたのですが、Googleアナリティクスを開いて「ユーザ」->「モバイル」->「デバイス」を確認してみると、次のようになっていました。(大汗
ということで至急対策。
参考にさせていただいた記事。
具体的にはダッシュボードから「設定」->「WPtouch」を開いてGoogleアナリティクスのコードを貼り付けて保存します。
以上です。
WordPressのレスポンス改善
最近、自社サイトで各種プラグインやテーマを試しているうちに、次第にレスポンスが悪くなっていると感じたのであらためて高速化について調べてその対策をしてみました。
これまでは定番のプラグイン “WP Super Cache” を使っておけば良いと思っていたのですが、バージョンアップを重ねて高機能化するのは良いものの設定項目が多くて管理に手間取ったり、他のプラグインとの相性の問題があったり。ということで高速化について調べてみると他にも高速化の要素があることに気がつきました。
今回、主に参考にさせていただいたサイト。
- MAKA-VELI.COMさん
WordPress高速化に使えそうなプラグインを色々試してみた結果、けっこう早くなったのでご紹介。 - WP SEOブログさん
今使っているWordPressの高速化用プラグイン - カワイイはつくれるさん
WordPress をたった3分で3倍高速化する方法 [MO Cache]
それと上記サイトでも一部紹介されているレスポンスを確認するためのツール
- PingDom Tools
Full Page Test - GTmetrix
WebSite Speed and Performance Optimization
で、今回新たに組み込んだプラグインは次の3個です。
- WP-Optimize
投稿記事の複数リビジョンや下書き、スパムコメントなどの削除と
DBの最適化を手動で行うことができます。 - MO Cache
翻訳ファイル(.mo)のキャッシュ - WP File Cache
上記キャッシュを複数のアクセスに対応させる
そしてツールで測定した結果、タイミングとか時間帯によってばらつきがありますが、読み込みの時間が以前の約60%に改善されました。
ブラウザで直接開いてみると、以前はしばらく待たされる感じがあったのですが、対策後はそれほど待たされる感じもなくすっと表示されます。ブラウザのキャッシュやネットワークの状態などいろいろな要素が絡みますので一概に良くなると言い切れない部分もありますが、WordPressのレスポンスが悪いと感じられる場合は、試してみてはいかがでしょうか。
お問い合わせフォーム – WordPress
お問い合わせフォームに日付や時刻の項目を追加しようと思って調べてみたら “Fast Secure Contact Form” というプラグインが見つかりました。お問い合わせフォームといえば、”Contact Form 7″ が定番になっていますが、こちらのプラグインも機能が充実していてよさそうです。
Fast Secure Contact Form
Fast Secure Contact Form(スクリーンショット)
公式サイトはすべて英語になっていますが、日本語に対応しており設定画面はほぼ日本語で表示されますので無理なく使えると思います。
まずダッシュボードの「プラグイン」から「FS Contact Form Options」を開きます。
デフォルトで4種類のフォームが作れるようになっています。
フォームを設置する場合はこの設定画面の上のほうにある、
[si-contact-form form=’1’]
というコードを本文中に貼り付けるだけです。
また、「プレビュー」をクリックすると、その場でフォームが確認できます。
ひとまず基本項目はそのままで各種オプションも初期値のままにしておいて、
追加項目「Extra Field 1」に日付を追加してみます。
WP Super Cache の WPTouch 対応について – WordPress
WordPressのキャッシュの状況を確認しようと思い、ダッシュボードからWP Super Cacheの設定を開いてみたところ、なにやら警告表示がありました。
どうやら WP Super Cache が WPTouch を見つけている様子です。
そこで、WP Super Cacheの設定画面からプラグインを開いてみると、
WPTouchの設定(有効/無効)が見つかりました。
ということで、早速この設定を有効にしておきました。
ちなみに、WP Super Cacheをモバイル端末でも有効にするには詳細設定で
Mobile Device Supportをチェックしておきます。
参考までに WP Super Cache へのリンクを貼っておきます。
引き続き WordPress のテーマ
比較的シンプルなテーマを2点ほど取り上げて
ざっとHTML5の対応について調べてみました。
- Suffusion
http://wordpress.org/extend/themes/suffusion
- Fiver
http://wordpress.org/extend/themes/fiver
Suffusionの場合、トップページにはsectionタグが見つからなかったのですが、
コンテンツの詳細ページで使われていました。
PageLines – WordPressのテーマ
先日、CSS Niteというセミナーに参加しました。
http://cssnite-matsuyama.com/vol01/
http://cssnite.jp/
HTML5とCSS3を中心に、各講師の方それぞれの切り口で
貴重なお話を聴かせていただきました。
せっかく勉強したので何か実践してみようと思い、
WordPressのテーマを HTML5 というキーワードで検索。
#実践という割には、やる気が感じられないですね。(汗
まぁともかく、PageLinesというテーマを見つけてインストール。
最近のテーマは各種SNSへの対応はもちろんのこと、
ダッシュボードの設定画面がとても充実しています。
以下、1点気になったので、メモ書き。
フッターに Twitter Bar があって、
アカウントを設定すると最近のツイートが表示されるとか。
ですが、どうもうまく動作せず。
そこで、非表示にしようと思ったのですが、
設定の場所がすぐには見つからず。
ということでスクリーンショットを貼っておきます。
Facebookへの連携 – Add Link to Facebook
http://wordpress.org/extend/plugins/add-link-to-facebook/
しばらく、Wordbookerを使っていましたが、
WordPressのダッシュボードで、この “Add Link to Facebook” の人気が高そうだったので、
試しに切り替えてみました。
画像をリンクにする – WordPress
WordPressのページ編集において、画像を追加してそれを他のページへのリンクにしたい場合。
新規に画像を設置して他のページへのリンクにする場合
- 「アップロード/挿入」をクリックして画像をアップロード
- リンクURLを編集して「投稿に挿入」をクリック。
- プレビューで確認して保存(完了)
設置済みの画像を他のページへのリンクにする場合
WordPressのダッシュボードで文字化け
先週あたりから、WordPressのダッシュボードで作業をしているとメニューやコンテンツの一部が文字化けするようになりました。ちょうどWordPressが3.3にアップデートされたこともあってそれが原因かと思っていたのですが、どうやらChrome(ブラウザ)とWindowsXPのフォントの組み合わせによる問題だったようです。
まず、Chromeで文字化けが起きたときに確認すべきこと。
「設定」->「ツール」->「エンコード」
エンコードが「自動検出」、「UTF-8」となっていること。 ※ご利用の状況によってはエンコードの種類が異なるかもしれません。![]()
「設定」->「オプション」->「高度な設定」->「フォントをカスタマイズ」
※この設定で文字化けが解消できるということではありませんので、念のため。 ※エンコードを「日本語(Shift_JIS)」にすると改善されるという記事もあります。
chromeのみの文字化けについて(Googleグループ)
例えば、あるウェブページのcssでfont-familyに英語のフォントが指定されていると、WindowsXPのバグによって日本語フォントへの置き換えができず文字化けしてしまうようです。
確かに、過去にAdobe製品他をインストールしたことがあっていろいろなフォントが入っていました。
そして、WordPressのダッシュボードには、たとえば次のようなcssが設定されています。
body :not(textarea) { font-style: normal !important; font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif !important; }
そこで、Chromeのデバッグ機能によってcssを調べてみました。
PHPEnkoder – WordPressプラグイン
コンテンツにメールアドレスを書くと、自動的にmailtoのリンクに
変換してくれます。しかも、HTMLソース内のメールアドレスが
エンコードされますので、スパム対策にもなります。
TwentyEleven – ヘッダー画像サイズのカスタマイズ
今回は、ヘッダ画像の高さのみカスタマイズしてみます。
デフォルト値 288px を 200px にする場合。
※TwentyElevenの子テーマが用意されていることを前提としています。
修正ファイルは次の2つ
- style.css
- fuctions.php
style.css の修正箇所
section.feature-image.large { border: none; max-height: 200px; /*288px;*/ padding: 0; width: 100%; }
functions.phpの修正箇所
function twentyeleven_setup() { /* (省略) */ require( dirname( __FILE__ ) . '/../twentyeleven/inc/theme-options.php' ); require( dirname( __FILE__ ) . '/../twentyeleven/inc/widgets.php' ); /* (省略) */ define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyeleven_header_image_height', 200 ) ); /* (省略) */ }
require()の行は、子テーマから参照する場合の親テーマのパスに合わせます。
TwentyEleven のウィジェットの余白
WordPressのデフォルトテーマ(TwentyEleven)でウィジェットを設置すると、
縦方向に結構余白ができてしまいますので調整してみました。
数値はお好みでどうぞ。
対象ファイル:style.css
【修正前】 .widget { clear: both; margin: 0 0 2.2em; } 【修正後】 .widget { clear: both; margin: 0 0 0.4em; }
サブフォルダに設置したWordPressをドメインのトップに表示する
詳しい説明は、こちらのページをご覧いただくとして…
「WordPress を専用ディレクトリに配置する」
サブフォルダにインストールした状態で、ページを作成しておいて、
ドメインのトップページとして見せたい場合。
インストール場所:http://example.jp/wordpress/
公開したい場所:http://example.jp/
最初に前準備として、パーマリンクの設定をしておきます。
ダッシュボード > 設定 > パーマリンク設定
初期状態は、
http://example.jp/?p=123
のようになっていると思います。これを、例えば「数字ベース」やその他お好みの形式に変更しておきます。
そして、「変更を保存」すると wordpress フォルダ内に .htaccess ファイルが
生成されます。
このとき、フォルダへの書き込み権限がない場合は書き込みができるようにパーミッションを変更するか、あるいは手作業にて .htaccess を設置します。
次に、ダッシュボードから、設定 > 一般設定 を開きます。
WordPress のアドレス (URL):http://example.jp/wordpress
サイトのアドレス (URL):http://example.jp/wordpress
このようになっていると思います。これを、
WordPress のアドレス (URL):http://example.jp/wordpress
サイトのアドレス (URL):http://example.jp/
このように変更して「変更を保存」します。
そして、インストール場所(サブフォルダ内)にある index.php と .htaccess をFTPでダウンロードします。
FTPソフトによっては .htaccess のようなドットから始まるファイルが見えない場合がありますので、利用するソフトウェアの説明に沿って見えるようにしておいてください。
ダウンロードした index.php をテキストエディタで次のように編集します。
※wordpressの部分はインストール場所に合わせて適宜読み替えてください。
修正前
require(‘./wp-blog-header.php’);
修正後
require(‘./wordpress/wp-blog-header.php’);
編集内容を保存したら、index.php と .htaccess をダウンロードした場所ではなくて、一つ上のフォルダ(ルート)にアップロードします。
例)
コピー元
public_html/wordpress/index.php
コピー先
public_html/index.php
.htaccess も同様にコピーします。
これまでの作業が完了したら、
http://example.jp/
このアドレスでWordPressで作成したページが見えるか確認します。
TwentyEleven – テーマのカスタマイズ
WordPressテーマの “TwentyEleven” を使っている場合。
固定ページで親子関係を設定すると、子ページのタイトルがサブメニューとしてプルダウン表示されます。
このとき、サブメニューのタイトルが長いと、複数行に折り返されてしまいます。
この設定は、style.cssの中の次の部分です。
#access ul ul { /*(省略)*/ width: 188px; /*(省略)*/ } #access ul ul a { /*(省略)*/ width: 168px; }
この数字を大きくすることで調整できます。
ここで念のため。
デフォルトのテーマを直接編集するとバージョンアップで上書きされてしまいますので、子テーマを作ってからカスタマイズします。
詳しくは、こちら。
子テーマ – WordPress Codex
Wordbooker – (その2)
[Blog Level Customisation]
Default Publish Post to Facebook: *(チェック)
[User Level Customisation]
Default Publish Post to Facebook : *(いいえ)
*(instead of)
publishing to a personal wall, post to the following fan page :
*(Netplan.Matsuyama)
※ユーザレベルの設定を変えてみました。
Wordbooker – WordPressの投稿をFacebookページに連携
Wordbooker
WordPressのプラグイン “Wordbooker” をインストールしてみました。
設定項目がかなり多いですが、次の2項目だけ設定して試してみます。
*:変更した項目
[Blog Level Customisation]
Default Publish Post to Facebook: *チェック
[User Level Customisation]
*instead of
publishing to a personal wall, post to the following fan page :
*Netplan.Matsuyama
上記だと、個人のウォールとFanページの両方に投稿されました。
WPtouchの設定 – WordPress
WordPressのスマートフォン向けプラグイン「WPtouch」を導入してみました。
例えば、adMobの広告を入れたい場合は、themes/default/header.phpを編集して、
adMobのスクリプトを挿入すれば良さそうです。詳しくは、”wptouch, admob”で
検索するといくつか記事が見つかると思います。
また、WPtouchProを購入するとAdSenseだけでなくAdMobも簡単に設置できたり、
テーマのカスタマイズや追加にも対応できるようです。
子テーマの作成
広告関連機能
それと、ヘッダのタブメニューのカスタマイズについて。
WPtouchの設定画面で、
” Enable Login/My Account tab in the header”のチェックは外れているのですが、
ヘッダ部の”login”が表示されたままになります。
調べてみたところ、
コメント投稿可能、ユーザ登録可能、ログインボタン表示
この3つのいずれかが許可されていると表示される模様。
私の場合は、WordPress本体のディスカッション設定で、
「ユーザー登録してログインしたユーザーのみコメントをつけられるようにする 」
このチェックを外したところ、”login”が表示されなくなりました。
WordPress Mobile Pack – WordPress プラグイン
スマートフォン向けページにAdMobを組み込んでみようと思い、MobilePressのヘッダを編集してみたのですが、上手く行かず、他のツールを探してみたところ、WordPress Mobile Packを導入することで簡単に組み込めました。
- WordPress Mobile Pack プラグインをインストール
プラグインをインストールして有効にします。 - 「外観」->「ウィジェット」を編集
ウィジェットの一覧から「Mobile Ads」を選んで、例えば「Footer Area One」に設置します。
そして、「Mobile Ads」のProviderで「AdMob」を選択し、
あらかじめ取得しておいた「Publisher ID」を入力して保存します。 - 「外観」->「Mobile Widgets」を編集
「Footer Area One」のところで「Mobile Ads」をチェックします。
とりあえず組み込めたということで、それ以上の検証は行っていませんが参考になりましたら。
※設置した後で「Mobile Switcher」の設定画面で「Mobile theme」を切り替えたところ、
広告が表示されなくなることがありました。そのような場合はウィジェットを外して置きなおすと
良いかもしれません。
WordPressのアップデート — 更新を展開しています…
年末のWordPressの更新(3.0.3 -> 3.0.4)を適用しようとしたところ、
「更新を展開しています…」
という表示から進みません。
Webサーバのエラーログを見ると、
“PHP Fatal error: Allowed memory size of 33554432 bytes exhausted…”
のようなメッセージがありました。
そこで、.htaccessに
php_value memory_limit 256M
という行を追加して、あらためて更新を実行したところ
問題なく更新できました。
下記の記事を参考にさせていただきました。
http://ja.forums.wordpress.org/topic/4692
(WP) メール通知プラグイン
WordPressのメール通知用プラグインを2点ほど。
Subscribe2-6.0がリリースされています。
Post Notificationは、正式版が1.2.39
http://wordpress.org/extend/plugins/post-notification/
昨年5月頃に2.0のベータ版が公開されたあと、
メンテナンスが進んでいない模様。
携帯から、
・空メールでユーザ登録できる
・購読カテゴリを簡単に選べる
など、私としてはPNのほうが気に入っています。
【追記:2010.12.16】
Post Notificationを空メールに対応するには、
受信メールからWeb参照を行うスクリプトを
自前で用意する必要がありました。
失礼しました。
購読カテゴリの選択はWebページで行います。
パンくずナビ
一般に「パンくずナビ」と言われる、ウェブサイトの現在位置を
階層的に示してくれる機能ですが、「ヘンゼルとグレーテル」の
童話が由来なのですね。
で、WordPress用のパンくずナビプラグイン
Breadcrumb NavXT
がバージョン3.6.0で日本語に対応していました。
Post Notificationの設定 – WordPress
Post Notificationをインストールして設定画面を開くと、次のようなメッセージが
表示される場合があります。
Please save own Profiles in: /var/www/…/wp-content/post_notification/
Otherwise they may be deleted using autoupdate.
調べてみたところ、プラグインの自動アップデートでプラグイン内のテンプレートが
上書きされてしまうので、推奨するフォルダにバックアップすることを促して
いるようです。例えば、
wp-content/plugins/post-notification/ja_JP/
このような場所にある、日本語テンプレート(ja_JP)を
wp-content/post_notification/
こちらへフォルダごとコピーすることで、先ほどのような警告メッセージが
でなくなります。
WordPressのsecret key generator – NONCE_SALT
WP-3.0のコンフィグに、
define( ‘NONCE_SALT’, ‘xxx 自前のキー xxx’);
を追加するように書かれています。
以前のAPIでは生成できない、と思っていたらAPIも新しいものが
提供されていました。もっとも、このAPIじゃないとだめ、ということでは
ないのですが、ツールがあれば、それに頼りたくなります。
https://api.wordpress.org/secret-key/1.1/salt/
そういえば、よく利用させてもらっていたパスワード生成ツールが、ここのところ
使えなくなっており、そろそろ自前で用意してみようかと思う今日この頃です。
パーマリンクについて – WordPress
Apacheのmod_rewriteが有効になっている場合は、パーマリンク設定を変更する
ことで、各記事へのリンクをより良いURL形式(Pretty Permalinks)にすることができます。
ここで、.htaccessの自動更新が動作しない場合はドキュメントルートのAllowOverrideを
許可すると改善されるかも知れません。
WordPress2.9リリース
WordPress2.9がリリースされています。
今回のバージョンアップに伴いサーバ要件が変更され、
MySQL4.1.2以上が必要となりました。
http://wpdocs.sourceforge.jp/Version_2.9
レンタルサーバのサービスによっては、MySQL5.xへ移行するような
メニューも用意されているようです。
参考までにMySQL4.0から4.1へのアップグレードに関する記事を
いくつか紹介しておきます。
http://journal.mycom.co.jp/column/yetanother/048/index.html
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?FAQ
http://dev.mysql.com/doc/refman/4.1/ja/upgrading-from-4-0.html
Tag: 多言語
Polylangメモ – WordPress Plugin
プラグインPolylangを使って、ホームページ多言語化 その1:インストールして使ってみる | ゆうそうとITブログ
プラグイン導入に際し、参考にさせていただきました。m(__)m
Language switcherはウィジェットとして設置するので、使用するテーマがウィジェットに対応している前提。
上のページの例だとfunctions.phpのID home_right_1
とテンプレート側のID sidebar-1
が異なるので、実装する際はこのIDを揃える。
外観 -> ウィジェット から Language Switcher を追加。
How to display the widget flags horizontally?
デフォルトだと選択する言語が縦に並ぶので、横に並べたい場合のスタイル指定。
localization – android
Androidアプリ開発のメモです。
Localization
基本的には、res内のフォルダ名に -
Tag: Codelabs
CodeLabsのbarcode scannerを試してみました。 – Firebase
チュートリアルはこちらから。
Detect Barcodes in an Image using Firebase MLKit
サンプルソースにはML Kitのプロジェクトがいくつか含まれているので、
その中から barcode-scanning/starter を適当な場所に置いて AndroidStudio で開きます。
Nextボタンで進めていきます。
Firebase consoleで入力するパッケージ名ですが、
誤:com.google.firebase.codelab.barcode-scanning
正:com.google.firebase.codelab.barcode_scanning
のようです。
あと appのbuild.gradle ですが、
`
implementation ‘com.google.firebase:firebase-ml-vision:17.0.0’
…
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
`
このように disableVersionCheck = true を追加してエラーを回避しました。
(他に正しい方法があるのかも…)
emulatorでアプリが起動することを確認して、USBで実機を接続。
実行すると、書籍のバーコードが読み取れました。
Tag: ML Kit
CodeLabsのbarcode scannerを試してみました。 – Firebase
チュートリアルはこちらから。
Detect Barcodes in an Image using Firebase MLKit
サンプルソースにはML Kitのプロジェクトがいくつか含まれているので、
その中から barcode-scanning/starter を適当な場所に置いて AndroidStudio で開きます。
Nextボタンで進めていきます。
Firebase consoleで入力するパッケージ名ですが、
誤:com.google.firebase.codelab.barcode-scanning
正:com.google.firebase.codelab.barcode_scanning
のようです。
あと appのbuild.gradle ですが、
`
implementation ‘com.google.firebase:firebase-ml-vision:17.0.0’
…
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
`
このように disableVersionCheck = true を追加してエラーを回避しました。
(他に正しい方法があるのかも…)
emulatorでアプリが起動することを確認して、USBで実機を接続。
実行すると、書籍のバーコードが読み取れました。
Tag: Cookiecutter
Cookiecutter Django のテスト
python3環境とcookiecutter実行
cookiecutter設定項目
必要な環境に合わせて適宜変更…
出来上がったプロジェクトフォルダに移動して、
ビルド・実行、停止
メールアドレスでユーザーを追加する際のactivation
Mailhog
ビルドをやり直す場合
(参考)Quickstart: Compose and Django
Tag: アクセシビリティ
アクセシビリティに関するメモ
Twitterでアクセシビリティについて話し合うようなメッセージが流れていて、都合で参加できなかったのでわかる範囲でまとめておきます。
どちらかというと、視覚障害者(音声利用者)寄りの内容です。
音声利用(スクリーンリーダー)をするには、それぞれのOSについて下記のようなツールがあります。
私自身は晴眼者で、音声利用をする機会はほぼなくて、盲ろう者(視聴覚重複障害)のボランティアの経験が少しある程度です。
紹介しているツールについての詳しい知識はありませんのであらかじめご了承お願いします。
音声利用ツール
Mac, iPhone, iPad
VioceOver for Mac
VoiceOver for iPhone
Windows
ナレーター for Windows
PC-Talker for Windows
NVDA for Windows
Android
Android ユーザー補助機能の概要
Android TalkBack を有効にする
WordPress
当サイトもそうですが、仕事でWordPressを使う機会が多いので、WordPressのアクセシビリティについて探してみました。
Make WordPress Accessible
ここから辿っていくと良さそうです。
例えば Readability を開いてみると、
Good practice:
Start with a short summary of the content
Divide the rest of the text in short blocks
Use headings and lists and meaningful link text
Avoid large blocks of text
という説明があります。
音声利用の場合、コンテンツを全て読み上げてからでないとそこに何が書かれているかわかりませんので、あまり階層が深くて複雑なページ構成になっていると、読みたい記事があってもなかなかたどり着けないと思います。上に引用したように、先頭にサマリーがあって、テキストが比較的短いブロックに分かれていて、見出しやリンク文字列が理解しやすい、大きなブロックは出来るだけ避ける、といった配慮が必要と思います。
参考資料
Web Content Accessibility Guidelines (WCAG) 2.0
論文作成・発表アクセシビリティガイドライン(Ver.3.0)
総務省:みんなのアクセシビリティ評価ツール:miChecker (エムアイチェッカー)
Tag: Messaging
Firebase In-App Messaging API – Android Studio
Firebase の In-App Messaging を試してみるものの、一向に表示される様子がなく…
Android Studio の Logcat を眺めてみると、
PERMISSION_DENIED: Firebase In-App Messaging API has not been
used in project ??? before or it is disabled.
のようなログがありました。
Enable it by visiting …
Firebase In-App Messaging API が有効になっていない?
ということでした。
ENABLE をクリックして、再度 Firebase console からテストを実行。
emulatorでアプリを閉じて開きなおすとメッセージが表示されました。
Tag: Automatic
Turn off numbered list – Google Docs
Turn off numbered list – Google Docs Help Forum
Tools -> Preferences -> Automatically detect lists(to Uncheck).
Tag: Google Docs
Turn off numbered list – Google Docs
Turn off numbered list – Google Docs Help Forum
Tools -> Preferences -> Automatically detect lists(to Uncheck).
How to disable Auto Capitalize in Google Docs
Open menu “Tools -> Preferences…”,
then turn off “Automatically capitalize words”
and click OK button.
Tag: List
Turn off numbered list – Google Docs
Turn off numbered list – Google Docs Help Forum
Tools -> Preferences -> Automatically detect lists(to Uncheck).
Tag: DS_Store
Filename filters – FileZilla
To opt-out of system files like “.DS_Store”,
Open “View->Directory listing filters”,
check “Configuration files”
and click “OK” or “Apply”.
Tag: Filezilla
Filename filters – FileZilla
To opt-out of system files like “.DS_Store”,
Open “View->Directory listing filters”,
check “Configuration files”
and click “OK” or “Apply”.
SFTPクライアントの紹介
WinSCP 4.2.9 がリリースされています。
http://winscp.net/eng/docs/lang:jp
http://sourceforge.jp/magazine/08/09/03/1110251
それと、FileZilla
http://sourceforge.jp/magazine/10/01/30/0741238
http://sourceforge.jp/projects/filezilla/
Tag: Filter
Filename filters – FileZilla
To opt-out of system files like “.DS_Store”,
Open “View->Directory listing filters”,
check “Configuration files”
and click “OK” or “Apply”.
Gmailのフィルタ – 新しいデザイン
前の記事を書いたあとで、Gmailの新しいデザインを適用していなかったことに気がつきまして、あらためて手順を確認しました。
受信トレイからフィルタを作成したいメールを選びます。
そして、「その他」ボタンを押して表示されるメニューから「メールの自動振り分け設定」を選択。
すると、送信元のメールアドレスあるいはメーリングリストのアドレスが自動的にセットされ、フィルタのオプションを設定する画面が表示されます。
ここで「検索オプションに戻る」をクリックすると、自動的にセットされた送信元やメーリングリストのメールアドレスを確認し、編集することができます。
Tag: Akismet
お問い合わせフォームからのspam対策 – Contact Form 7
昨年(2018)秋頃から、あるサイトでspamがたくさん届くようになったとのことで対処。
方法としては、
(1) reCAPTCHAによる自動送信の回避
(2) Akismetによるメールアドレスチェック
(3) 入力内容によるフィルタ
など。
で、(1)と(2)は適宜実施するとして、(3)について調べてみました。
ちなみに、問題となっているサイトは日本語のみでの運用のため、日本語が入力されていない場合はエラーにする方向で考えています。
参考にさせていただいた記事
Contact Form 7で本文に日本語が含まれていない時は送信できないようにする方法
Custom Validation | Contact Form 7
textarea* は何らかのひらがなが含まれていること。
text* your-address は半角英数が含まれていないこと。
としてみました。
Tag: ContactForm
お問い合わせフォームからのspam対策 – Contact Form 7
昨年(2018)秋頃から、あるサイトでspamがたくさん届くようになったとのことで対処。
方法としては、
(1) reCAPTCHAによる自動送信の回避
(2) Akismetによるメールアドレスチェック
(3) 入力内容によるフィルタ
など。
で、(1)と(2)は適宜実施するとして、(3)について調べてみました。
ちなみに、問題となっているサイトは日本語のみでの運用のため、日本語が入力されていない場合はエラーにする方向で考えています。
参考にさせていただいた記事
Contact Form 7で本文に日本語が含まれていない時は送信できないようにする方法
Custom Validation | Contact Form 7
textarea* は何らかのひらがなが含まれていること。
text* your-address は半角英数が含まれていないこと。
としてみました。
Tag: Recaptcha
お問い合わせフォームからのspam対策 – Contact Form 7
昨年(2018)秋頃から、あるサイトでspamがたくさん届くようになったとのことで対処。
方法としては、
(1) reCAPTCHAによる自動送信の回避
(2) Akismetによるメールアドレスチェック
(3) 入力内容によるフィルタ
など。
で、(1)と(2)は適宜実施するとして、(3)について調べてみました。
ちなみに、問題となっているサイトは日本語のみでの運用のため、日本語が入力されていない場合はエラーにする方向で考えています。
参考にさせていただいた記事
Contact Form 7で本文に日本語が含まれていない時は送信できないようにする方法
Custom Validation | Contact Form 7
textarea* は何らかのひらがなが含まれていること。
text* your-address は半角英数が含まれていないこと。
としてみました。
reCAPTCHA for testing
“I’d like to run automated tests with reCAPTCHA. What should I do?”
https://developers.google.com/recaptcha/docs/faq
There is a set of keys for testing purpose.
On the first time, the reCAPTCHA widget will show a warning message. And verify with check “I’m not a robot”, completed message will appear.
Tag: Xp
XP本読書会最後のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
エクストリームの純度
アジャイルでもそうですが、ドキュメントを書かないことの言い訳に使われることがありますね。でもそれ以前にコミュニケーションの問題があるかもしれませんし、様々なスナップショットを大量に生産したところで時間のロスばかりであまり役に立つものではない。頑張ったことの証拠としてカサ増しにはなるかもしれませんが、それよりは成果物の品質や価値を高める方が大切。その上で必要とされるドキュメントがあれば用意するのは当然。
と言いつつ、このAgile459の中でも打ち合わせのために事前にドキュメントを用意したりしていますが、それも個人が思うままにかなりの時間を割いて作ったりしているので、そのあたり、せっかくXPとか学んでいるわりに実践が伴っていなかったり、コミュニケーションが足りなかったりしています。コミュニティの運営にもこの学びを活かさないといけませんね。
オフショア開発
オフショアには権限の不均衡が伴う
とあるように、身の回りで聞くオフショアとかニアショアの案件はコストの話にしかなっていなくて、本に書かれているようなコミュニケーションとかリスペクト、単一のコードベースとは異質なもののような気がします。そうではなくて、マルチサイト(拠点の違い)をどう活かすか。メリットとしては例えば多様性と時差でしょうか。ライフスタイルの違い、物事の捉え方の違いを開発や成果物に活かす。あるいは時差を活用してうまく連携することでまさにエクストリームな開発を進めるなど。
結論
最近、働き方が問われていますが、まさにこのXPの原則そしてプラクティスがこれからの働き方に役立つと思います。
今回、ふと思いついてAdvent calendarで勢いでXP本読書会をふりかえってみましたが、読み返すたびにあらたな気づきがあります。すぐに忘れているということもありますが、また折をみてXP本をふりかえってみたいと思います。
XP本読書会15,16回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会15回目と16回目からいくつかピックアップ。
ロゼッタストーン
プロジェクトが停止する前に、ビルドやテスト、システムを理解するためのガイドのようなものを書いておく。まぁ、停止する前というのもいつかわからないので、プロジェクト開始に合わせて準備して、随時更新しておくのが良さそう。
解決策の複雑さ
Agile459のコミュニティの中で「リファクタリング」が話題にあがることがわりとあります。なかなか日常の仕事の中でリファクタリングに時間をかけるのが難しいとか、その成果を説明するのが難しいとか。あるいは、一旦リリースしたものについて、具体的な予算のないところで手間(工数)をかけることができないとか。ですが、そういった気がかりがあるなら実践して前に進んだ方が良いですし、経費なのか投資なのかという判断が必要ならそういう協力者を見つけておく(15章)のが良さそうです。
継続的にデリバリーする中で、少しずつ複雑さを削り取っていく
と考えると、間違いなくメンテナンス性とか開発効率につながるわけで、変更に柔軟に対応できると考えればオープンにしてアピールすべき点とも思います。逆に、リファクタリングをしないで、複雑な状態のまま変更が求められるとなると、負担が増すばかりで、変更に対しても言い訳が先に立ってしまうような気がします。取引先も含めてお互いに気持ちよく仕事を進めるには大切な要素と思います。
また、次のセクションに出てくるトレーサビリティを考えると、こまめにリリースしておくことで、仮に大きな問題が見つかっても対応しやすいですね。これが長期間にわたってしまうと、何をどこまで戻すとか、その場合の影響範囲とか、考えるだけでもストレスになりそうです。
インタビュー
ペアプログラミングであり、チーム開発なのでそれができないとなるとXPの導入は難しいということ。それと、一部見過ごしていたのですが、見積もり当初は要件を隠しておいて、後からすべてのフィーチャーを要求される、というリスクもあるんですね。ここはやはり顧客との信頼関係ができていないと難しいですね。
全員が品質に責任を持つ
何か問題があると、伝言ゲームのように芋づる式に個人の責任が問われて対応するのが当たり前のような場面が多かったような気がします。それだとリスク管理ができていないわけで、やはりチームでコードを共有してテストも自動化することが大切。チーム全員で責任を共有して、自信を持ってプロダクトをリリース。チーム内のモチベーションにもつながります。
時間、設計、パターン – XP本読書会14回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回のログを読んで気になった部分をピックアップ。
時間の重要性
ソフトウェアはレバレッジゲームだ
Wikipediaによると、レバレッジの言葉は「てこ(lever)」が由来なんですね。テコの原理か。なるほど。
だけどわりとそうなっていないケースが多いのが残念だなぁと思いました。というのは、毎回引き合いがあるたびに1から開発して納めて、しばらくして似たような案件があっても、また最初から作り直しているような。まぁ作り直すのは良いとしても、そこから横に展開するというか、汎用的にしてみるとか、可能性はありそうだけど、努力が足りないのか、営業力?、具体的なニーズの把握?もしかすると、安易に取りかかってしまうのが問題かもしれません。その先にどうありたいか、とかの見通しなど。
XPの戦略は「常に設計する」
この考え方が大切と思いました。要件を確認して詳細まで設計しても、そこから実装を進めていくうちに設計の問題が見えてきたり、要件も変わってきたりするので、それが判明した時点で設計の見直しが常に行えるようにする。となると、ドキュメントがボトルネックになったりするので、最低限必要なものにするとか、オンラインで共有して更新可能にしておくとか、テストコードで仕様がある程度表現されていれば、テストコードのメンテナンスで対応できる部分もあったりとか。長期に渡ったり、規模が大きかったりすると、どうしてもあれこれドキュメントを増やしてしまったりしますが、成果物の品質がよくて、説明しなくても使えるようなものになっていれば、それほどドキュメントに頼ることもないのかなぁと。何というか、ドキュメントを作ることは本来の目的ではないですよね。例えば、管理のために必要、と言われれば、では何のために管理をするのでしょう。管理すること自体がボトルネックになっていて、生産性や品質を下げる要因かもしれません。それよりは、常に設計できる環境にすることで、生産性がグッと向上して品質も上がれば、それこそさっきのレバレッジゲームに乗れる状況が作り出せるかもしれません。
こうした設計の改善が共通してたどり着く先が、パターン
重複は悪、パターン
と言われても、なかなか重複が取りきれなかったり。このあたり、チーム内でノウハウがあって、スマートに対応できれば良いのですが、場合によってはノウハウがあまりなかったり、学ぶ機会が少なかったり、ということもあると思います。例えばコミュニティで相談してみて勉強会、という可能性もあるかもしれません。先日開催したGDCRの中で、オブジェクト指向設計についての解説があったのですが、それを理解するまでの余裕がなかったのが残念。このようにふりかえってみると、あれもこれもまだまだ学ぶことが山積みです。
XP本読書会13回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
スコープの管理
ここ数年は契約の関係でスコープの調整ができるようになってきましたが、過去に関わった仕事で、スコープが調整されるケースはあまりなかったように思います。やるべき課題とスケジュールが決まっていて、とはいってもスケジュールどおりにはなかなか進まず、スコープは固定されたまま、あるいは開発の過程で次第に膨らむケースが多かったかもしれません。
数年前、あるプロジェクトに途中からお手伝いで参加しました。当初、担当の方に話を聞いてみるとあれこれ進んでいなくて、そのため取引先に状況を説明するのが難しそうな雰囲気。そこで、そのプロジェクトの中でほぼ手付かずの項目があって、ちょうど切り出すのに適当な規模だったので、その部分だけ急遽手伝ってある程度進めて、その成果物と合わせてとにかく状況をオープンにしましょうと提案。
すると、成果物の部分が取引先から予想外に良い評価をもらえたようで、それが信用に繋がってプロジェクトがうまく回り出したことがありました。そこからプロジェクトの風通しが良くなり、少しずつ成果物を積み上げていって落ち着いたようです。
いろいろ難しい状況があると思いますが、クローズにしてごまかしたところで疑心暗鬼になってお互いに不信感が募るばかりなので、とにかくオープンにして少しでも成果を出して一部分でも評価してもらえれば、そこからなんとか前に進み出すんじゃないかと思います。
テスト:早めに、こまめに、自動化
あとでまとめてテストしようとすると、テスト自体にとてもコストがかかるのと、どうしても欠陥が残ってしまうということ。さらに欠陥を取り除こうとしてもコストが増えるばかり。逆に、こまめにテストを実施していれば、欠陥も起こりにくいしそれほどコストもかからない。あと、プログラマー目線でのテストと、顧客目線でのテストによるダブルチェックが重要というお話。ダブルチェックといっても、テストの工程を分けるんじゃなくて、まとめてテストできるように自動化が必要、という感じでしょうか。
XP本読書会12回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この当時、Kindleは買ったもののどうも慣れなくて、まだあまり本が読めていない頃でした。ですが、この回の後半にある制約理論の部分で「ザ・ゴール」という本を知り、それをきっかけにKindleで本を読むようになりました。Kindleだと本の厚さを気にすることがないのでそれですんなりと読めた気がします。今もあれこれ読んでいます。といってもまだ10冊くらいですが…
あと、読書会の進み具合をD3jsでグラフ化したりしていました。読書会の中での会話とか感想を話す際に、ちょっとルーズになってしまうこともあって、せっかく時間を決めて参加しているのに、なかなか先に進まない状況もあって、目標(その日に読むページ数)を決めて、その結果(読んだページ数)を記録していくことになっていました。ただ、ページ数を記録するだけでは様子がわかりにくいので、グラフ化(burn down chart)した次第です。
XP reading circle burndown chart
CSV形式で日付とページ数を書いて、git pushするとグラフが更新できます。今考えると、読書会Wikiに書いたページ数をスクレイピングすればもう一段階自動化できるかも?と思ったり。あるいはWikiから読み取るのはあまりきれいに書けそうにないので、ページ数の記録は別にして、逆にページ数とグラフをWikiに表示する方が良いかも。
さて、この回の「XPチーム全体」について。
ここで解説されているそれぞれの役割ですが、これまで関わった仕事ではこのような役割を意識したことはなかったと思います。なので、良い方向に捉えれば、チームのメンバーでそれぞれの役割を意識することで、仕事の仕方に変化が生まれていろいろと改善に向かうように思います。(かなり適当…
例えば、一気にすべての役割を決めるんじゃなくて、一つの役割を決めてそのように振る舞ってみて、そこから派生していくとうまくいくのかも。まぁ、ともかくすべての役割をやらないといけない、ということではなくて、現状の問題点を洗い出して、その解決に繋がりそうな役割を立ててみる、という感じでしょうか。
そして制約理論。
ここの議論で「制約理論」が気になって、いきおいで「ザ・ゴール」と「クリティカルチェーン」を読みました。で、ボトルネックを見つけて解消して、そうすると別のところがボトルネックになって、というような話で、じゃあ例えば開発チームの中にボトルネックがあって、と言ってしまうと角が立つので…という話もあったり。スループットをあげるにはボトルネックの解消が必要というのは良いのですが、読書会の当時はそれで理解していたものの、例えば加工や部品を外部委託する場合など、もちろんコストパフォーマンスが求められるのはわかりますが、単にプレッシャーというとちょっと違うのかなぁとも思います。労働環境があらためて問われる時代になっていますし、なるべくフラットな形で良い協力関係が構築できれば良いですかね。
主要プラクティス – XP本読書会7回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この時期にSlackでコミュニケーション取り過ぎの問題があって、今思えば自分の使い方も良くなかったと反省。どちらかというとプライベート寄りのチーム、仕事用のチーム、その中間的なチームに参加していて、通知を受けたり書き込んだりする時間帯の切り替えができていなかった感じです。
今でも切り替えができていないので、通知とかステータスの設定を見直してみます。
Slack 通知の仕組み
おやすみモードによる通知の一時停止
さて、まずはペアプロについて。
Agile459ではこれまでにGDCRを3回開催していて、昨年のAgile Japanサテライトではモブプログラミング、そして今年の夏にはTDDBCも開催しましたので、ペアプロの有効性についてはコミュニティの中で共通認識が持てていると思います。ただし「ペアとパーソナルスペース」に書かれているような気配りについてはこれまで意識が低かったと反省。
例えば、Wikiのまとめにも書きましたが、以前使っていたアウトドア用の腕時計。そのバンドの裏側に着け心地を良くするための皮が貼ってあり、どうやらその部分が汗臭くなっていたみたいで臭いを指摘されたことがありました。指摘されたときは分からなくて、その腕時計が故障して買い換えた時に、「あーもしかしたら腕時計のバンドの臭いで迷惑を掛けていたかも」と反省。
自分では気がつかないこともあるので、ペアで作業する際の注意点などチーム内で話し合う機会が適宜必要と思いました。
次に、ゆとり(Slack)
最近、働き方が変わってきているようで、その中で、この「ゆとり(Slack)」の考え方が重要かもしれません。
重要度の低いタスクを含めること
とありますが、これは調整のために外す(対応しない)こともできるし、比較的簡単なものでも実現することで評価につながることもあります。臨機応変に対応するためのタスク。
それと、毎日の仕事の中で集中というか効率よく仕事ができる時間は実際には割と短いものだと思います。タスクを詰め込み過ぎず、ゆとりを持って、それ以外の環境であるとか、スキルアップのための学びであるとか、そういう時間も日々確保することで、より質の高い仕事につながっていくと思います。
そして、インクリメンタルな設計。
新規に取り組んだものは、その時点で要件を満たすことができた試作レベルと割り切って、機能追加とか何らかの改修をする際に、気がついた時点でリファクタリングを進めていくことでより良いものに仕上がっていくと思います。もちろん、リファクタリングを進めるにはテストコードによる動作保証が前提になります。言い換えれば、テストコードによってシステム全体の動作確認が取れる状態になっていれば、いつでも気軽にリファクタリングに取り組むことができます。
という感じで、今日はこのあたりまで。
XPのプラクティス – XP本読書会6回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
第6章の冒頭に、
「プラクティスとは、XPチームが日常的に行うものである。…」
という説明があって、その後に「…、機械的な作業になってしまう。…」
読書会の時にこの部分を読んで、過去に関わったプロジェクトで、テスト工程をペアで手作業で行うというなかなか残念なプロジェクトを思い出しました。のちの改修とか機能追加などを考えれば普通に自動化すべき部分だと思うのですが、リリース前のテストは手をかけて苦労することがルールみたいな感じでした。。。
さて、読書会の議論のなかで「どのプラクティスが導入しやすいのか?」という話があって、いやおそらくそういう方法から入るんじゃなくて、何に困っているかという具体的な問題の洗い出しが必要で、それに対して、じゃあこのプラクティスをやってみれば、というようなやり取りがありました。
あと、全員同席の部分。
過去の仕事場を振り返ってみると、個人スペース、もしくはオープンスペースのどちらかはありましたが、両方を使い分けるような環境はなかったと思います。あと、オープンスペースといっても、単に机が並んでいるだけのごく一般的な職場なので、本に書かれている会議室を占有する感じのオープンワークスペースというのは心に刺さる部分でした。
個人が集中して作業できる環境と、チームメンバーが集まってコミュニケーションをしながら作業できる環境。両方があるのがポイント。
そして「チーム全体」の終わりのほうにある「タスクの切り替え時間」。
いろいろ忙しくて、あれもこれもみたいな状況になるのを仕方ないとするか。いや、その切り替えにはどうしても時間がかかるので、できるだけ一つの仕事に集中できるようにスケジュールなり人員なりを調整するなど。
この回の終わりは「いきいきとした仕事」でした。
長時間働くのは良くないですね。以前は当たり前のように毎日遅くまで仕事をしていましたが、単に時間をかけてコードを書くよりも、できるだけ短時間で切り上げて、環境を整えるとか、こういう本で手法を学ぶとか、プログラミングのスキルを学ぶなど。それと、健康に配慮して体を動かすとか、そうやって生活の質を上げることで結果として仕事の成果も上がるようにしていきたいですね。
XP本読書会5回目のふりかえりのふりかえり – 機会とか品質とか責任とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の5回目は5章の後半でした。
機会と失敗はつながる部分があって、失敗とか何か問題があった場合にネガティブになるんじゃなくて良い方向に向かせるための機会ととらえることがポイント。反省も必要だけどそればかりではしんどいですし、さらに大きな問題につながる可能性もあるわけで、そうならないうちに気がつけたと思えば良いんじゃないかと。テストケースを追加してみるとか、テストの仕方を変えてみるとか、機能自体を見直してみるとか。
あと、失敗したら急いで対処するんじゃなくて、まず失敗した状況を共有。対処できたらまた共有。そうすることで落ち着いて対応できるし、時間がかかったらかかったでエビデンスにもなるし、のちの教訓とかノウハウにもつながると思います。
次に品質について。
仕事の中で品質を求めることができなくて(あきらめて)、プライベートで品質に対する欲求を満たしていたという話の中で「盆栽」というキーワードが上がって、「盆栽」といえば波平の「ばっかもーん!!」ですよね、みたいなところから脱線。まぁそれはそれで面白かったです。面白かったというか、オンライン読書会の中で一番脳が活性化した瞬間だったかもです。
で、品質と責任の部分もつながると思います。誰かの成果物の品質がどうとか、誰かに責任を押し付けたところで、プロジェクト全体としては何の解決にもならないわけで、解決にならないどころかそれこそ時間の無駄。それよりも、プロジェクトのチームとして品質を良くしていくとか、責任を共有することが大切。そうすれば信用とか期待につながりますよね。
本の内容とは少し外れますが、この頃に自分の課題として「リファクタリング」というキーワードがあって、なかなか進めることができていなかったのですが、
【質問紹介】#Csharp #ASPdotNET #MVC #EntityFramework
Q. MVCの考え方がいまいち噛み砕けないので教えて頂きたいです。— teratail【テラテイル】 (@teratail) September 4, 2018
このコメントがすごく良いヒントになって、仕事のタイミングと重なってリファクタリング進行中です。
読書会に参加したことで、そういう課題意識を持てたし、継続的に考えることで実践にも繋がったと思います。
XP本読書会4回目のふりかえりのふりかえり – 自己相似性とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の4回目は5章の途中でした。この頃は参加者がわりと多くて、その分あまり進まなかった様子。
それと、ディスカッションのまとめもSlackのタイムラインをWikiへコピペしていたので、ログがちょっとわかりにくい。後日、記録用にHackMDを使うようになりました。
さて、自己相似性の部分ですが、あらためてその部分を読んでみると、わかりやすくて重要と思いました。
- 四半期単位:テーマを選んでストーリー単位で組み立てていく。
- 週単位:ストーリーを選んでテストを組んでいく。
- 数時間単位:テストを書いて、実装していく。
小さなループ(TDD)を繰り返して、ストーリーとして組み立てて、テーマとして完成させるような流れ。
なので、小さなループがちゃんと回る(動く)のがポイントですね。
あと、「ふりかえり」のところにあった「ソフトウェアプロセスばかり考えている」の部分。方法論にとらわれ過ぎて、生産性に繋がらないのはよろしくないですし、開発のことを考えるのは良いけれど、管理するために資料を作らないといけないとか、プロダクトとは直接関係のない物に対してリソースが消費されるのは避けたいですね。フラットなチームとかフラットな組織であれば、そのあたりの無駄も少なくなると思います。
XP本読書会1回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
昨年(2017年)秋頃からAgile459で開催されたオンライン読書会1回目のログ。
https://github.com/agile459/reading-circle/wiki/XP2ndBook-1st-20171018
この内容をふりかえって思うのは、これまでに関わった仕事にはソーシャルチェンジという文化があまりなくて、硬直していたものが多かったということ。
もちろん仕事の種類とか現場によって様々ですが、例えば、あるプロジェクトでは仕事の進め方のルールがあって、そのルールに沿っているかどうかのチェックがあります。ルールに沿っていなければチームのリーダーから叱責されて修正を求められて、ルールを確認して修正して提出。でも、まだリーダーとしては納得のいくものになっていなくて修正を求められる。これを数回繰り返してなんとか完了。
でもですね、このやりとりってプロダクト(ソースコード)じゃなくて、プロダクトをコミットする際の関連ドキュメントやメールの文面の話だったりします。なので、(今後ほぼ使うことがないであろう)関連ドキュメントがボトルネックになって、コミットがなかなか進まない。モチベーション的にもちょっとしんどい状況なわけです。
しかも、そのようなドキュメントの不備が続くと、さらにルールが上乗せされて、足かせが二重、三重になっていきます。
で、XPを学ぶことで「あー、そういうところでものすごいリソースを消費していたんだなぁ」と感慨に浸ったりできるわけです。
管理する立場から言えば、すべてあたりまえに必要な作業、と言われるかもしれませんが、いや、だったらもっとプロダクト自体にリソースを割けば間違いなく好循環が生まれるわけで。
そういった、何かしんどいなぁとか、モチベーションが上がらないなぁ、と感じるときに、その原因に気づかされて、さらっと解決につながるような、そういう学びのある読書会でした。
あけましておめでとうございます
あけましておめでとうございます。
本年もよろしくお願いします。
昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。
次回は1月10日開催予定です。
エクストリームプログラミング読書会 第6回
教材はこちら「エクストリームプログラミング」
ふと、あとがきを開いてみました。
目についたのが、
エクストリームプログラミング(XP)はソーシャルチェンジである。
…
成功には「優れた技術力と良好な人間関係が必要」
の部分。
これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。
それと次の部分。
あなた自身が自分の言葉を生み出しながら、利用すること
状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。
一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。
Tag: 読書会
XP本読書会最後のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
エクストリームの純度
アジャイルでもそうですが、ドキュメントを書かないことの言い訳に使われることがありますね。でもそれ以前にコミュニケーションの問題があるかもしれませんし、様々なスナップショットを大量に生産したところで時間のロスばかりであまり役に立つものではない。頑張ったことの証拠としてカサ増しにはなるかもしれませんが、それよりは成果物の品質や価値を高める方が大切。その上で必要とされるドキュメントがあれば用意するのは当然。
と言いつつ、このAgile459の中でも打ち合わせのために事前にドキュメントを用意したりしていますが、それも個人が思うままにかなりの時間を割いて作ったりしているので、そのあたり、せっかくXPとか学んでいるわりに実践が伴っていなかったり、コミュニケーションが足りなかったりしています。コミュニティの運営にもこの学びを活かさないといけませんね。
オフショア開発
オフショアには権限の不均衡が伴う
とあるように、身の回りで聞くオフショアとかニアショアの案件はコストの話にしかなっていなくて、本に書かれているようなコミュニケーションとかリスペクト、単一のコードベースとは異質なもののような気がします。そうではなくて、マルチサイト(拠点の違い)をどう活かすか。メリットとしては例えば多様性と時差でしょうか。ライフスタイルの違い、物事の捉え方の違いを開発や成果物に活かす。あるいは時差を活用してうまく連携することでまさにエクストリームな開発を進めるなど。
結論
最近、働き方が問われていますが、まさにこのXPの原則そしてプラクティスがこれからの働き方に役立つと思います。
今回、ふと思いついてAdvent calendarで勢いでXP本読書会をふりかえってみましたが、読み返すたびにあらたな気づきがあります。すぐに忘れているということもありますが、また折をみてXP本をふりかえってみたいと思います。
時間、設計、パターン – XP本読書会14回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回のログを読んで気になった部分をピックアップ。
時間の重要性
ソフトウェアはレバレッジゲームだ
Wikipediaによると、レバレッジの言葉は「てこ(lever)」が由来なんですね。テコの原理か。なるほど。
だけどわりとそうなっていないケースが多いのが残念だなぁと思いました。というのは、毎回引き合いがあるたびに1から開発して納めて、しばらくして似たような案件があっても、また最初から作り直しているような。まぁ作り直すのは良いとしても、そこから横に展開するというか、汎用的にしてみるとか、可能性はありそうだけど、努力が足りないのか、営業力?、具体的なニーズの把握?もしかすると、安易に取りかかってしまうのが問題かもしれません。その先にどうありたいか、とかの見通しなど。
XPの戦略は「常に設計する」
この考え方が大切と思いました。要件を確認して詳細まで設計しても、そこから実装を進めていくうちに設計の問題が見えてきたり、要件も変わってきたりするので、それが判明した時点で設計の見直しが常に行えるようにする。となると、ドキュメントがボトルネックになったりするので、最低限必要なものにするとか、オンラインで共有して更新可能にしておくとか、テストコードで仕様がある程度表現されていれば、テストコードのメンテナンスで対応できる部分もあったりとか。長期に渡ったり、規模が大きかったりすると、どうしてもあれこれドキュメントを増やしてしまったりしますが、成果物の品質がよくて、説明しなくても使えるようなものになっていれば、それほどドキュメントに頼ることもないのかなぁと。何というか、ドキュメントを作ることは本来の目的ではないですよね。例えば、管理のために必要、と言われれば、では何のために管理をするのでしょう。管理すること自体がボトルネックになっていて、生産性や品質を下げる要因かもしれません。それよりは、常に設計できる環境にすることで、生産性がグッと向上して品質も上がれば、それこそさっきのレバレッジゲームに乗れる状況が作り出せるかもしれません。
こうした設計の改善が共通してたどり着く先が、パターン
重複は悪、パターン
と言われても、なかなか重複が取りきれなかったり。このあたり、チーム内でノウハウがあって、スマートに対応できれば良いのですが、場合によってはノウハウがあまりなかったり、学ぶ機会が少なかったり、ということもあると思います。例えばコミュニティで相談してみて勉強会、という可能性もあるかもしれません。先日開催したGDCRの中で、オブジェクト指向設計についての解説があったのですが、それを理解するまでの余裕がなかったのが残念。このようにふりかえってみると、あれもこれもまだまだ学ぶことが山積みです。
XP本読書会13回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
スコープの管理
ここ数年は契約の関係でスコープの調整ができるようになってきましたが、過去に関わった仕事で、スコープが調整されるケースはあまりなかったように思います。やるべき課題とスケジュールが決まっていて、とはいってもスケジュールどおりにはなかなか進まず、スコープは固定されたまま、あるいは開発の過程で次第に膨らむケースが多かったかもしれません。
数年前、あるプロジェクトに途中からお手伝いで参加しました。当初、担当の方に話を聞いてみるとあれこれ進んでいなくて、そのため取引先に状況を説明するのが難しそうな雰囲気。そこで、そのプロジェクトの中でほぼ手付かずの項目があって、ちょうど切り出すのに適当な規模だったので、その部分だけ急遽手伝ってある程度進めて、その成果物と合わせてとにかく状況をオープンにしましょうと提案。
すると、成果物の部分が取引先から予想外に良い評価をもらえたようで、それが信用に繋がってプロジェクトがうまく回り出したことがありました。そこからプロジェクトの風通しが良くなり、少しずつ成果物を積み上げていって落ち着いたようです。
いろいろ難しい状況があると思いますが、クローズにしてごまかしたところで疑心暗鬼になってお互いに不信感が募るばかりなので、とにかくオープンにして少しでも成果を出して一部分でも評価してもらえれば、そこからなんとか前に進み出すんじゃないかと思います。
テスト:早めに、こまめに、自動化
あとでまとめてテストしようとすると、テスト自体にとてもコストがかかるのと、どうしても欠陥が残ってしまうということ。さらに欠陥を取り除こうとしてもコストが増えるばかり。逆に、こまめにテストを実施していれば、欠陥も起こりにくいしそれほどコストもかからない。あと、プログラマー目線でのテストと、顧客目線でのテストによるダブルチェックが重要というお話。ダブルチェックといっても、テストの工程を分けるんじゃなくて、まとめてテストできるように自動化が必要、という感じでしょうか。
XP本読書会12回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この当時、Kindleは買ったもののどうも慣れなくて、まだあまり本が読めていない頃でした。ですが、この回の後半にある制約理論の部分で「ザ・ゴール」という本を知り、それをきっかけにKindleで本を読むようになりました。Kindleだと本の厚さを気にすることがないのでそれですんなりと読めた気がします。今もあれこれ読んでいます。といってもまだ10冊くらいですが…
あと、読書会の進み具合をD3jsでグラフ化したりしていました。読書会の中での会話とか感想を話す際に、ちょっとルーズになってしまうこともあって、せっかく時間を決めて参加しているのに、なかなか先に進まない状況もあって、目標(その日に読むページ数)を決めて、その結果(読んだページ数)を記録していくことになっていました。ただ、ページ数を記録するだけでは様子がわかりにくいので、グラフ化(burn down chart)した次第です。
XP reading circle burndown chart
CSV形式で日付とページ数を書いて、git pushするとグラフが更新できます。今考えると、読書会Wikiに書いたページ数をスクレイピングすればもう一段階自動化できるかも?と思ったり。あるいはWikiから読み取るのはあまりきれいに書けそうにないので、ページ数の記録は別にして、逆にページ数とグラフをWikiに表示する方が良いかも。
さて、この回の「XPチーム全体」について。
ここで解説されているそれぞれの役割ですが、これまで関わった仕事ではこのような役割を意識したことはなかったと思います。なので、良い方向に捉えれば、チームのメンバーでそれぞれの役割を意識することで、仕事の仕方に変化が生まれていろいろと改善に向かうように思います。(かなり適当…
例えば、一気にすべての役割を決めるんじゃなくて、一つの役割を決めてそのように振る舞ってみて、そこから派生していくとうまくいくのかも。まぁ、ともかくすべての役割をやらないといけない、ということではなくて、現状の問題点を洗い出して、その解決に繋がりそうな役割を立ててみる、という感じでしょうか。
そして制約理論。
ここの議論で「制約理論」が気になって、いきおいで「ザ・ゴール」と「クリティカルチェーン」を読みました。で、ボトルネックを見つけて解消して、そうすると別のところがボトルネックになって、というような話で、じゃあ例えば開発チームの中にボトルネックがあって、と言ってしまうと角が立つので…という話もあったり。スループットをあげるにはボトルネックの解消が必要というのは良いのですが、読書会の当時はそれで理解していたものの、例えば加工や部品を外部委託する場合など、もちろんコストパフォーマンスが求められるのはわかりますが、単にプレッシャーというとちょっと違うのかなぁとも思います。労働環境があらためて問われる時代になっていますし、なるべくフラットな形で良い協力関係が構築できれば良いですかね。
主要プラクティス – XP本読書会7回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この時期にSlackでコミュニケーション取り過ぎの問題があって、今思えば自分の使い方も良くなかったと反省。どちらかというとプライベート寄りのチーム、仕事用のチーム、その中間的なチームに参加していて、通知を受けたり書き込んだりする時間帯の切り替えができていなかった感じです。
今でも切り替えができていないので、通知とかステータスの設定を見直してみます。
Slack 通知の仕組み
おやすみモードによる通知の一時停止
さて、まずはペアプロについて。
Agile459ではこれまでにGDCRを3回開催していて、昨年のAgile Japanサテライトではモブプログラミング、そして今年の夏にはTDDBCも開催しましたので、ペアプロの有効性についてはコミュニティの中で共通認識が持てていると思います。ただし「ペアとパーソナルスペース」に書かれているような気配りについてはこれまで意識が低かったと反省。
例えば、Wikiのまとめにも書きましたが、以前使っていたアウトドア用の腕時計。そのバンドの裏側に着け心地を良くするための皮が貼ってあり、どうやらその部分が汗臭くなっていたみたいで臭いを指摘されたことがありました。指摘されたときは分からなくて、その腕時計が故障して買い換えた時に、「あーもしかしたら腕時計のバンドの臭いで迷惑を掛けていたかも」と反省。
自分では気がつかないこともあるので、ペアで作業する際の注意点などチーム内で話し合う機会が適宜必要と思いました。
次に、ゆとり(Slack)
最近、働き方が変わってきているようで、その中で、この「ゆとり(Slack)」の考え方が重要かもしれません。
重要度の低いタスクを含めること
とありますが、これは調整のために外す(対応しない)こともできるし、比較的簡単なものでも実現することで評価につながることもあります。臨機応変に対応するためのタスク。
それと、毎日の仕事の中で集中というか効率よく仕事ができる時間は実際には割と短いものだと思います。タスクを詰め込み過ぎず、ゆとりを持って、それ以外の環境であるとか、スキルアップのための学びであるとか、そういう時間も日々確保することで、より質の高い仕事につながっていくと思います。
そして、インクリメンタルな設計。
新規に取り組んだものは、その時点で要件を満たすことができた試作レベルと割り切って、機能追加とか何らかの改修をする際に、気がついた時点でリファクタリングを進めていくことでより良いものに仕上がっていくと思います。もちろん、リファクタリングを進めるにはテストコードによる動作保証が前提になります。言い換えれば、テストコードによってシステム全体の動作確認が取れる状態になっていれば、いつでも気軽にリファクタリングに取り組むことができます。
という感じで、今日はこのあたりまで。
XP本読書会5回目のふりかえりのふりかえり – 機会とか品質とか責任とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の5回目は5章の後半でした。
機会と失敗はつながる部分があって、失敗とか何か問題があった場合にネガティブになるんじゃなくて良い方向に向かせるための機会ととらえることがポイント。反省も必要だけどそればかりではしんどいですし、さらに大きな問題につながる可能性もあるわけで、そうならないうちに気がつけたと思えば良いんじゃないかと。テストケースを追加してみるとか、テストの仕方を変えてみるとか、機能自体を見直してみるとか。
あと、失敗したら急いで対処するんじゃなくて、まず失敗した状況を共有。対処できたらまた共有。そうすることで落ち着いて対応できるし、時間がかかったらかかったでエビデンスにもなるし、のちの教訓とかノウハウにもつながると思います。
次に品質について。
仕事の中で品質を求めることができなくて(あきらめて)、プライベートで品質に対する欲求を満たしていたという話の中で「盆栽」というキーワードが上がって、「盆栽」といえば波平の「ばっかもーん!!」ですよね、みたいなところから脱線。まぁそれはそれで面白かったです。面白かったというか、オンライン読書会の中で一番脳が活性化した瞬間だったかもです。
で、品質と責任の部分もつながると思います。誰かの成果物の品質がどうとか、誰かに責任を押し付けたところで、プロジェクト全体としては何の解決にもならないわけで、解決にならないどころかそれこそ時間の無駄。それよりも、プロジェクトのチームとして品質を良くしていくとか、責任を共有することが大切。そうすれば信用とか期待につながりますよね。
本の内容とは少し外れますが、この頃に自分の課題として「リファクタリング」というキーワードがあって、なかなか進めることができていなかったのですが、
【質問紹介】#Csharp #ASPdotNET #MVC #EntityFramework
Q. MVCの考え方がいまいち噛み砕けないので教えて頂きたいです。— teratail【テラテイル】 (@teratail) September 4, 2018
このコメントがすごく良いヒントになって、仕事のタイミングと重なってリファクタリング進行中です。
読書会に参加したことで、そういう課題意識を持てたし、継続的に考えることで実践にも繋がったと思います。
XP本読書会4回目のふりかえりのふりかえり – 自己相似性とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の4回目は5章の途中でした。この頃は参加者がわりと多くて、その分あまり進まなかった様子。
それと、ディスカッションのまとめもSlackのタイムラインをWikiへコピペしていたので、ログがちょっとわかりにくい。後日、記録用にHackMDを使うようになりました。
さて、自己相似性の部分ですが、あらためてその部分を読んでみると、わかりやすくて重要と思いました。
- 四半期単位:テーマを選んでストーリー単位で組み立てていく。
- 週単位:ストーリーを選んでテストを組んでいく。
- 数時間単位:テストを書いて、実装していく。
小さなループ(TDD)を繰り返して、ストーリーとして組み立てて、テーマとして完成させるような流れ。
なので、小さなループがちゃんと回る(動く)のがポイントですね。
あと、「ふりかえり」のところにあった「ソフトウェアプロセスばかり考えている」の部分。方法論にとらわれ過ぎて、生産性に繋がらないのはよろしくないですし、開発のことを考えるのは良いけれど、管理するために資料を作らないといけないとか、プロダクトとは直接関係のない物に対してリソースが消費されるのは避けたいですね。フラットなチームとかフラットな組織であれば、そのあたりの無駄も少なくなると思います。
ユーザーストーリー – 明日の予習
明日はアジャイルサムライ読書会に参加予定。
ということで、たまには予習をしながらブログを書いてみるなど。
まず最初に、文書化の難しさ。
大量のドキュメントを作ったところで、時間が経てばやりたいことも変わってくるし、人が書いた文書を正しく理解するのは難しい。あるいは文書で他人に正確にものごとを伝えるのもなかなか難しい。
「要件」を信じない。
要件定義にかかれている項目のうち80%は必須ではない?
(参考文献 XPエクストリームプログラミング入門 第2版)
必ず実現しないといけないことと、そうでないことの切り分けをしないまま「要件」としてまとめてしまっているので、本筋が見えにくい、という感じかな。
そこで「ユーザーストーリー」
インデックスカードに書き出す。
フィーチャーの本質となるキーワードを書く。
わかりやすくシンプル。
ぱっと読んでおいしいと思えるもの。
「6つの要素」
Independent, Negotiable, Valuable, Estimatable, Small, Testable
ユーザーストーリー vs 要件定義書・仕様書
「要件定義」はそれを作る時点での情報を固定化してしまうところを問題視している感じ。
それにくらべてユーザーストーリーは柔軟で無駄がない。
ユーザーストーリーの「テンプレート」
だれのためのストーリーで
なにをしたいのか
なぜそうしたいのか
そして「ストーリー収集ワークショップ」の開催
フィーチャーリストの作成。
ワークショップでは開発チームと顧客が一緒になってユーザーストーリーを書く。
と、こんな感じの内容です。
アジャイルサムライ読書会#7のふりかえり
先週末の9月1日にアジャイルサムライ読書会#7に参加しました。内容はインセプションデッキの後半(5.2~5.5)でした。
5.2「夜も眠れなくなる問題は何だろう?」
プロジェクトが進みだすと、不安なことがあっても口に出しにくかったり、質問しにくい雰囲気になったりしますよね。どうしようもなくなって「実は…」となるよりは最初からそういう要素を洗い出して明記して共有すること。
5.3「期間を見極める」
開発プロジェクトの期間は6ヶ月以内がのぞましい。もちろんあらゆるプロジェクトが6ヶ月でできるわけではないが、3ヶ月あるいは6ヶ月といったできるだけ短い期間におさまるように分割して計画を立てる。
5.4「トレードオフ・スライダー」
あらゆるプロジェクトは次の4つのフォース(力)によって統治される。
- 時間
- 予算
- 品質
- スコープ
言い替えれば大きく4つの制約があるということ。
この時間、予算、品質を動かすことができないとすれば、調整可能な要素はスコープ(範囲)のみ。
「どれも最優先」とか「これとこれは同じレベル」というのは禁止。
このルールによって諦めるものを明確にすることができる。
あと、上記の4つ以外でプロジェクトの重要な要素をスライダーの項目に追加する。
顧客と共にスライダーを設定する。
5.5「何がどれだけ必要なのか」
期間、メンバー、予算。
この部分はいろいろ議論がありました。
そもそもメンバーは社内で手が空いている人で、おのずと決まっているとか、
予算も期間も決まった後でアサインされて、そこから作業規模を洗い出したところでどうにもならない、など。
日常の仕事を考えれば、確かにそのような状況が一般的かも知れませんが、
新たなプロジェクトに対してチームを編成することを考えると、果たしてそれでプロジェクトがうまく行くのか。
まったくリソースが足りてないところで、無理やりチーム編成をして進めてしまっているのではないか。
とても考えさせられる内容でした。
単価の話もしました。その場では「上流だったらこれぐらいかなぁ」という話もありましたが、後で考えてみると上流とか下流という時点でアジャイルではないようにも思いました。
さて、次回のアジャイルサムライ読書会は10月6日(土曜日)の予定です。
http://agile459.doorkeeper.jp/
随時 #agile459 というハッシュタグでTwitterで情報が流れていますのでよろしければご利用ください。
それと補足の資料。
読書会の中で「そもそもウォーターフォールって…?」のような議論があったので、
前にForkwellで見かけた記事を貼っておきます。
“History of Waterfall”
Tag: Rosetta Stone
XP本読書会15,16回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会15回目と16回目からいくつかピックアップ。
ロゼッタストーン
プロジェクトが停止する前に、ビルドやテスト、システムを理解するためのガイドのようなものを書いておく。まぁ、停止する前というのもいつかわからないので、プロジェクト開始に合わせて準備して、随時更新しておくのが良さそう。
解決策の複雑さ
Agile459のコミュニティの中で「リファクタリング」が話題にあがることがわりとあります。なかなか日常の仕事の中でリファクタリングに時間をかけるのが難しいとか、その成果を説明するのが難しいとか。あるいは、一旦リリースしたものについて、具体的な予算のないところで手間(工数)をかけることができないとか。ですが、そういった気がかりがあるなら実践して前に進んだ方が良いですし、経費なのか投資なのかという判断が必要ならそういう協力者を見つけておく(15章)のが良さそうです。
継続的にデリバリーする中で、少しずつ複雑さを削り取っていく
と考えると、間違いなくメンテナンス性とか開発効率につながるわけで、変更に柔軟に対応できると考えればオープンにしてアピールすべき点とも思います。逆に、リファクタリングをしないで、複雑な状態のまま変更が求められるとなると、負担が増すばかりで、変更に対しても言い訳が先に立ってしまうような気がします。取引先も含めてお互いに気持ちよく仕事を進めるには大切な要素と思います。
また、次のセクションに出てくるトレーサビリティを考えると、こまめにリリースしておくことで、仮に大きな問題が見つかっても対応しやすいですね。これが長期間にわたってしまうと、何をどこまで戻すとか、その場合の影響範囲とか、考えるだけでもストレスになりそうです。
インタビュー
ペアプログラミングであり、チーム開発なのでそれができないとなるとXPの導入は難しいということ。それと、一部見過ごしていたのですが、見積もり当初は要件を隠しておいて、後からすべてのフィーチャーを要求される、というリスクもあるんですね。ここはやはり顧客との信頼関係ができていないと難しいですね。
全員が品質に責任を持つ
何か問題があると、伝言ゲームのように芋づる式に個人の責任が問われて対応するのが当たり前のような場面が多かったような気がします。それだとリスク管理ができていないわけで、やはりチームでコードを共有してテストも自動化することが大切。チーム全員で責任を共有して、自信を持ってプロダクトをリリース。チーム内のモチベーションにもつながります。
Tag: パターン
時間、設計、パターン – XP本読書会14回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回のログを読んで気になった部分をピックアップ。
時間の重要性
ソフトウェアはレバレッジゲームだ
Wikipediaによると、レバレッジの言葉は「てこ(lever)」が由来なんですね。テコの原理か。なるほど。
だけどわりとそうなっていないケースが多いのが残念だなぁと思いました。というのは、毎回引き合いがあるたびに1から開発して納めて、しばらくして似たような案件があっても、また最初から作り直しているような。まぁ作り直すのは良いとしても、そこから横に展開するというか、汎用的にしてみるとか、可能性はありそうだけど、努力が足りないのか、営業力?、具体的なニーズの把握?もしかすると、安易に取りかかってしまうのが問題かもしれません。その先にどうありたいか、とかの見通しなど。
XPの戦略は「常に設計する」
この考え方が大切と思いました。要件を確認して詳細まで設計しても、そこから実装を進めていくうちに設計の問題が見えてきたり、要件も変わってきたりするので、それが判明した時点で設計の見直しが常に行えるようにする。となると、ドキュメントがボトルネックになったりするので、最低限必要なものにするとか、オンラインで共有して更新可能にしておくとか、テストコードで仕様がある程度表現されていれば、テストコードのメンテナンスで対応できる部分もあったりとか。長期に渡ったり、規模が大きかったりすると、どうしてもあれこれドキュメントを増やしてしまったりしますが、成果物の品質がよくて、説明しなくても使えるようなものになっていれば、それほどドキュメントに頼ることもないのかなぁと。何というか、ドキュメントを作ることは本来の目的ではないですよね。例えば、管理のために必要、と言われれば、では何のために管理をするのでしょう。管理すること自体がボトルネックになっていて、生産性や品質を下げる要因かもしれません。それよりは、常に設計できる環境にすることで、生産性がグッと向上して品質も上がれば、それこそさっきのレバレッジゲームに乗れる状況が作り出せるかもしれません。
こうした設計の改善が共通してたどり着く先が、パターン
重複は悪、パターン
と言われても、なかなか重複が取りきれなかったり。このあたり、チーム内でノウハウがあって、スマートに対応できれば良いのですが、場合によってはノウハウがあまりなかったり、学ぶ機会が少なかったり、ということもあると思います。例えばコミュニティで相談してみて勉強会、という可能性もあるかもしれません。先日開催したGDCRの中で、オブジェクト指向設計についての解説があったのですが、それを理解するまでの余裕がなかったのが残念。このようにふりかえってみると、あれもこれもまだまだ学ぶことが山積みです。
Tag: スコープ
XP本読書会13回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
スコープの管理
ここ数年は契約の関係でスコープの調整ができるようになってきましたが、過去に関わった仕事で、スコープが調整されるケースはあまりなかったように思います。やるべき課題とスケジュールが決まっていて、とはいってもスケジュールどおりにはなかなか進まず、スコープは固定されたまま、あるいは開発の過程で次第に膨らむケースが多かったかもしれません。
数年前、あるプロジェクトに途中からお手伝いで参加しました。当初、担当の方に話を聞いてみるとあれこれ進んでいなくて、そのため取引先に状況を説明するのが難しそうな雰囲気。そこで、そのプロジェクトの中でほぼ手付かずの項目があって、ちょうど切り出すのに適当な規模だったので、その部分だけ急遽手伝ってある程度進めて、その成果物と合わせてとにかく状況をオープンにしましょうと提案。
すると、成果物の部分が取引先から予想外に良い評価をもらえたようで、それが信用に繋がってプロジェクトがうまく回り出したことがありました。そこからプロジェクトの風通しが良くなり、少しずつ成果物を積み上げていって落ち着いたようです。
いろいろ難しい状況があると思いますが、クローズにしてごまかしたところで疑心暗鬼になってお互いに不信感が募るばかりなので、とにかくオープンにして少しでも成果を出して一部分でも評価してもらえれば、そこからなんとか前に進み出すんじゃないかと思います。
テスト:早めに、こまめに、自動化
あとでまとめてテストしようとすると、テスト自体にとてもコストがかかるのと、どうしても欠陥が残ってしまうということ。さらに欠陥を取り除こうとしてもコストが増えるばかり。逆に、こまめにテストを実施していれば、欠陥も起こりにくいしそれほどコストもかからない。あと、プログラマー目線でのテストと、顧客目線でのテストによるダブルチェックが重要というお話。ダブルチェックといっても、テストの工程を分けるんじゃなくて、まとめてテストできるように自動化が必要、という感じでしょうか。
XP本読書会10回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
単一のコードベース
読書会のときは、以前に手掛けたAndroidのカメラアプリが頭の中にあって、機種依存で苦労したことを考えていたのですが、今思えば他の仕事(ウェブサイト)でも派生させてそのままになっているコードも存在していて、このあたり一つに集約する努力が足りていないなぁとあらためて反省。
今、この記事を書きながら考えているのですが、共通部分を派生させて使いまわすのではなくて、共通部分を完全に分離して、汎用的に使えるように作り込めば良いはず。今、すでに複数のプラグインでメンテナンスが必要になっている部分を切り出して汎用化する方向で検討してみます。
交渉によるスコープ契約
新規案件だと、過去の習慣もあってひとかたまりで見積もってしまいがち。部分的にリリースして、その状況で次のステップに進めるように、契約を分けておくと良さそうです。一つ一つの機能の価値を確認しながら進めていく感じですかね。
(余談)読書会とは別の Code Kata について
先月、GDCRを松山で実施したことがきっかけとなって、この1月ほど Codewars で Kata の練習をしています。(参考:最近の勉強ツールあれこれ)
レベルはまだ 6kyu で、問題も 7kyu の Fundamentals を中心に練習しているのですが、問題によっては解いているうちにプロパティやメソッド、変数の状態など強制的に使わされる感じのものがあったり、あるいは問題を解くと、他の人のコード例も見えるので、そこで自分のコードの拙さに愕然としたりという状況ですが、まぁとにかくとても良いトレーニングになっています。
日常の仕事の中だとスキルアップに時間を費やすのはなかなか難しいかもしれません。ですが、適切なコードを書けるかどうかで効率とか品質は全然違ってくると思います。そのためには日常のトレーニングが重要。あまり難しい問題だと、続かないかもしれないので、比較的簡単な問題を様々な言語で引き続き進めてみようと思います。
Tag: Kindle
XP本読書会12回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この当時、Kindleは買ったもののどうも慣れなくて、まだあまり本が読めていない頃でした。ですが、この回の後半にある制約理論の部分で「ザ・ゴール」という本を知り、それをきっかけにKindleで本を読むようになりました。Kindleだと本の厚さを気にすることがないのでそれですんなりと読めた気がします。今もあれこれ読んでいます。といってもまだ10冊くらいですが…
あと、読書会の進み具合をD3jsでグラフ化したりしていました。読書会の中での会話とか感想を話す際に、ちょっとルーズになってしまうこともあって、せっかく時間を決めて参加しているのに、なかなか先に進まない状況もあって、目標(その日に読むページ数)を決めて、その結果(読んだページ数)を記録していくことになっていました。ただ、ページ数を記録するだけでは様子がわかりにくいので、グラフ化(burn down chart)した次第です。
XP reading circle burndown chart
CSV形式で日付とページ数を書いて、git pushするとグラフが更新できます。今考えると、読書会Wikiに書いたページ数をスクレイピングすればもう一段階自動化できるかも?と思ったり。あるいはWikiから読み取るのはあまりきれいに書けそうにないので、ページ数の記録は別にして、逆にページ数とグラフをWikiに表示する方が良いかも。
さて、この回の「XPチーム全体」について。
ここで解説されているそれぞれの役割ですが、これまで関わった仕事ではこのような役割を意識したことはなかったと思います。なので、良い方向に捉えれば、チームのメンバーでそれぞれの役割を意識することで、仕事の仕方に変化が生まれていろいろと改善に向かうように思います。(かなり適当…
例えば、一気にすべての役割を決めるんじゃなくて、一つの役割を決めてそのように振る舞ってみて、そこから派生していくとうまくいくのかも。まぁ、ともかくすべての役割をやらないといけない、ということではなくて、現状の問題点を洗い出して、その解決に繋がりそうな役割を立ててみる、という感じでしょうか。
そして制約理論。
ここの議論で「制約理論」が気になって、いきおいで「ザ・ゴール」と「クリティカルチェーン」を読みました。で、ボトルネックを見つけて解消して、そうすると別のところがボトルネックになって、というような話で、じゃあ例えば開発チームの中にボトルネックがあって、と言ってしまうと角が立つので…という話もあったり。スループットをあげるにはボトルネックの解消が必要というのは良いのですが、読書会の当時はそれで理解していたものの、例えば加工や部品を外部委託する場合など、もちろんコストパフォーマンスが求められるのはわかりますが、単にプレッシャーというとちょっと違うのかなぁとも思います。労働環境があらためて問われる時代になっていますし、なるべくフラットな形で良い協力関係が構築できれば良いですかね。
Tag: ボトルネック
XP本読書会12回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この当時、Kindleは買ったもののどうも慣れなくて、まだあまり本が読めていない頃でした。ですが、この回の後半にある制約理論の部分で「ザ・ゴール」という本を知り、それをきっかけにKindleで本を読むようになりました。Kindleだと本の厚さを気にすることがないのでそれですんなりと読めた気がします。今もあれこれ読んでいます。といってもまだ10冊くらいですが…
あと、読書会の進み具合をD3jsでグラフ化したりしていました。読書会の中での会話とか感想を話す際に、ちょっとルーズになってしまうこともあって、せっかく時間を決めて参加しているのに、なかなか先に進まない状況もあって、目標(その日に読むページ数)を決めて、その結果(読んだページ数)を記録していくことになっていました。ただ、ページ数を記録するだけでは様子がわかりにくいので、グラフ化(burn down chart)した次第です。
XP reading circle burndown chart
CSV形式で日付とページ数を書いて、git pushするとグラフが更新できます。今考えると、読書会Wikiに書いたページ数をスクレイピングすればもう一段階自動化できるかも?と思ったり。あるいはWikiから読み取るのはあまりきれいに書けそうにないので、ページ数の記録は別にして、逆にページ数とグラフをWikiに表示する方が良いかも。
さて、この回の「XPチーム全体」について。
ここで解説されているそれぞれの役割ですが、これまで関わった仕事ではこのような役割を意識したことはなかったと思います。なので、良い方向に捉えれば、チームのメンバーでそれぞれの役割を意識することで、仕事の仕方に変化が生まれていろいろと改善に向かうように思います。(かなり適当…
例えば、一気にすべての役割を決めるんじゃなくて、一つの役割を決めてそのように振る舞ってみて、そこから派生していくとうまくいくのかも。まぁ、ともかくすべての役割をやらないといけない、ということではなくて、現状の問題点を洗い出して、その解決に繋がりそうな役割を立ててみる、という感じでしょうか。
そして制約理論。
ここの議論で「制約理論」が気になって、いきおいで「ザ・ゴール」と「クリティカルチェーン」を読みました。で、ボトルネックを見つけて解消して、そうすると別のところがボトルネックになって、というような話で、じゃあ例えば開発チームの中にボトルネックがあって、と言ってしまうと角が立つので…という話もあったり。スループットをあげるにはボトルネックの解消が必要というのは良いのですが、読書会の当時はそれで理解していたものの、例えば加工や部品を外部委託する場合など、もちろんコストパフォーマンスが求められるのはわかりますが、単にプレッシャーというとちょっと違うのかなぁとも思います。労働環境があらためて問われる時代になっていますし、なるべくフラットな形で良い協力関係が構築できれば良いですかね。
Tag: 制約理論
XP本読書会12回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この当時、Kindleは買ったもののどうも慣れなくて、まだあまり本が読めていない頃でした。ですが、この回の後半にある制約理論の部分で「ザ・ゴール」という本を知り、それをきっかけにKindleで本を読むようになりました。Kindleだと本の厚さを気にすることがないのでそれですんなりと読めた気がします。今もあれこれ読んでいます。といってもまだ10冊くらいですが…
あと、読書会の進み具合をD3jsでグラフ化したりしていました。読書会の中での会話とか感想を話す際に、ちょっとルーズになってしまうこともあって、せっかく時間を決めて参加しているのに、なかなか先に進まない状況もあって、目標(その日に読むページ数)を決めて、その結果(読んだページ数)を記録していくことになっていました。ただ、ページ数を記録するだけでは様子がわかりにくいので、グラフ化(burn down chart)した次第です。
XP reading circle burndown chart
CSV形式で日付とページ数を書いて、git pushするとグラフが更新できます。今考えると、読書会Wikiに書いたページ数をスクレイピングすればもう一段階自動化できるかも?と思ったり。あるいはWikiから読み取るのはあまりきれいに書けそうにないので、ページ数の記録は別にして、逆にページ数とグラフをWikiに表示する方が良いかも。
さて、この回の「XPチーム全体」について。
ここで解説されているそれぞれの役割ですが、これまで関わった仕事ではこのような役割を意識したことはなかったと思います。なので、良い方向に捉えれば、チームのメンバーでそれぞれの役割を意識することで、仕事の仕方に変化が生まれていろいろと改善に向かうように思います。(かなり適当…
例えば、一気にすべての役割を決めるんじゃなくて、一つの役割を決めてそのように振る舞ってみて、そこから派生していくとうまくいくのかも。まぁ、ともかくすべての役割をやらないといけない、ということではなくて、現状の問題点を洗い出して、その解決に繋がりそうな役割を立ててみる、という感じでしょうか。
そして制約理論。
ここの議論で「制約理論」が気になって、いきおいで「ザ・ゴール」と「クリティカルチェーン」を読みました。で、ボトルネックを見つけて解消して、そうすると別のところがボトルネックになって、というような話で、じゃあ例えば開発チームの中にボトルネックがあって、と言ってしまうと角が立つので…という話もあったり。スループットをあげるにはボトルネックの解消が必要というのは良いのですが、読書会の当時はそれで理解していたものの、例えば加工や部品を外部委託する場合など、もちろんコストパフォーマンスが求められるのはわかりますが、単にプレッシャーというとちょっと違うのかなぁとも思います。労働環境があらためて問われる時代になっていますし、なるべくフラットな形で良い協力関係が構築できれば良いですかね。
Tag: インタラクション
XP本読書会11回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回は第10章でした。XPチームの役割についていくつかピックアップ。
テスター
従来の後工程のユニットテストや結合テストではなくて、テストファーストで始めるための「要素の定義や仕様化」を支援。今年7月に高松で開催したTDDBCでも習ったように、テストコードのファンクション名で要件を表現すると思えばイメージがつかみやすいですかね。
インタラクションデザイナー
自分のまわりではこの役割が弱いというか欠けている感じがしました。
「顧客と一緒に働いて、ストーリーの記述や明確化を支援」
デザイナーさんに任せてしまうのではなくて、インタラクションを意識したデザイナーとプログラマーの間の意識合わせというか作り込みが大切と思いました。
経営幹部
振り返ってみると、経営幹部って進捗状況を見て、遅れていたら急がせるだけだったり追加の資料を求めるなど、管理しようとすればするほど足を引っ張っているような気がします。でも、ここに書いているのはそうではなくて、環境を整えたりともにゴールを目指したりチームの功績をアピールしたりと、ちょっと役割が違うみたいです。もちろん後者の方がチームとしてモチベーション高く仕事できますよね。敵対するんじゃなくて、お互いの得意なことを活かして相乗効果につなげたいですね。
役割
チームとして成長していくには変化が必要で、そのためには誰でも提案できる土壌が必要。また、提案するばかりで行動が伴わないと信用してもらえないわけで、チームとして行動を起こして変化していくことが大切。風通しの良いチーム。お互いをリスペクト。
今日はこのへんで。
そういえば、今日 ehimerb の勉強会に参加したのですが、その中で ehimerb と agile459 のコラボで何かイベントしませんか、というお話がありました。何がいいですかね…
Tag: テスター
XP本読書会11回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回は第10章でした。XPチームの役割についていくつかピックアップ。
テスター
従来の後工程のユニットテストや結合テストではなくて、テストファーストで始めるための「要素の定義や仕様化」を支援。今年7月に高松で開催したTDDBCでも習ったように、テストコードのファンクション名で要件を表現すると思えばイメージがつかみやすいですかね。
インタラクションデザイナー
自分のまわりではこの役割が弱いというか欠けている感じがしました。
「顧客と一緒に働いて、ストーリーの記述や明確化を支援」
デザイナーさんに任せてしまうのではなくて、インタラクションを意識したデザイナーとプログラマーの間の意識合わせというか作り込みが大切と思いました。
経営幹部
振り返ってみると、経営幹部って進捗状況を見て、遅れていたら急がせるだけだったり追加の資料を求めるなど、管理しようとすればするほど足を引っ張っているような気がします。でも、ここに書いているのはそうではなくて、環境を整えたりともにゴールを目指したりチームの功績をアピールしたりと、ちょっと役割が違うみたいです。もちろん後者の方がチームとしてモチベーション高く仕事できますよね。敵対するんじゃなくて、お互いの得意なことを活かして相乗効果につなげたいですね。
役割
チームとして成長していくには変化が必要で、そのためには誰でも提案できる土壌が必要。また、提案するばかりで行動が伴わないと信用してもらえないわけで、チームとして行動を起こして変化していくことが大切。風通しの良いチーム。お互いをリスペクト。
今日はこのへんで。
そういえば、今日 ehimerb の勉強会に参加したのですが、その中で ehimerb と agile459 のコラボで何かイベントしませんか、というお話がありました。何がいいですかね…
Tag: モチベーション
XP本読書会11回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回は第10章でした。XPチームの役割についていくつかピックアップ。
テスター
従来の後工程のユニットテストや結合テストではなくて、テストファーストで始めるための「要素の定義や仕様化」を支援。今年7月に高松で開催したTDDBCでも習ったように、テストコードのファンクション名で要件を表現すると思えばイメージがつかみやすいですかね。
インタラクションデザイナー
自分のまわりではこの役割が弱いというか欠けている感じがしました。
「顧客と一緒に働いて、ストーリーの記述や明確化を支援」
デザイナーさんに任せてしまうのではなくて、インタラクションを意識したデザイナーとプログラマーの間の意識合わせというか作り込みが大切と思いました。
経営幹部
振り返ってみると、経営幹部って進捗状況を見て、遅れていたら急がせるだけだったり追加の資料を求めるなど、管理しようとすればするほど足を引っ張っているような気がします。でも、ここに書いているのはそうではなくて、環境を整えたりともにゴールを目指したりチームの功績をアピールしたりと、ちょっと役割が違うみたいです。もちろん後者の方がチームとしてモチベーション高く仕事できますよね。敵対するんじゃなくて、お互いの得意なことを活かして相乗効果につなげたいですね。
役割
チームとして成長していくには変化が必要で、そのためには誰でも提案できる土壌が必要。また、提案するばかりで行動が伴わないと信用してもらえないわけで、チームとして行動を起こして変化していくことが大切。風通しの良いチーム。お互いをリスペクト。
今日はこのへんで。
そういえば、今日 ehimerb の勉強会に参加したのですが、その中で ehimerb と agile459 のコラボで何かイベントしませんか、というお話がありました。何がいいですかね…
Tag: 役割
XP本読書会11回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回は第10章でした。XPチームの役割についていくつかピックアップ。
テスター
従来の後工程のユニットテストや結合テストではなくて、テストファーストで始めるための「要素の定義や仕様化」を支援。今年7月に高松で開催したTDDBCでも習ったように、テストコードのファンクション名で要件を表現すると思えばイメージがつかみやすいですかね。
インタラクションデザイナー
自分のまわりではこの役割が弱いというか欠けている感じがしました。
「顧客と一緒に働いて、ストーリーの記述や明確化を支援」
デザイナーさんに任せてしまうのではなくて、インタラクションを意識したデザイナーとプログラマーの間の意識合わせというか作り込みが大切と思いました。
経営幹部
振り返ってみると、経営幹部って進捗状況を見て、遅れていたら急がせるだけだったり追加の資料を求めるなど、管理しようとすればするほど足を引っ張っているような気がします。でも、ここに書いているのはそうではなくて、環境を整えたりともにゴールを目指したりチームの功績をアピールしたりと、ちょっと役割が違うみたいです。もちろん後者の方がチームとしてモチベーション高く仕事できますよね。敵対するんじゃなくて、お互いの得意なことを活かして相乗効果につなげたいですね。
役割
チームとして成長していくには変化が必要で、そのためには誰でも提案できる土壌が必要。また、提案するばかりで行動が伴わないと信用してもらえないわけで、チームとして行動を起こして変化していくことが大切。風通しの良いチーム。お互いをリスペクト。
今日はこのへんで。
そういえば、今日 ehimerb の勉強会に参加したのですが、その中で ehimerb と agile459 のコラボで何かイベントしませんか、というお話がありました。何がいいですかね…
Tag: 経営幹部
XP本読書会11回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この回は第10章でした。XPチームの役割についていくつかピックアップ。
テスター
従来の後工程のユニットテストや結合テストではなくて、テストファーストで始めるための「要素の定義や仕様化」を支援。今年7月に高松で開催したTDDBCでも習ったように、テストコードのファンクション名で要件を表現すると思えばイメージがつかみやすいですかね。
インタラクションデザイナー
自分のまわりではこの役割が弱いというか欠けている感じがしました。
「顧客と一緒に働いて、ストーリーの記述や明確化を支援」
デザイナーさんに任せてしまうのではなくて、インタラクションを意識したデザイナーとプログラマーの間の意識合わせというか作り込みが大切と思いました。
経営幹部
振り返ってみると、経営幹部って進捗状況を見て、遅れていたら急がせるだけだったり追加の資料を求めるなど、管理しようとすればするほど足を引っ張っているような気がします。でも、ここに書いているのはそうではなくて、環境を整えたりともにゴールを目指したりチームの功績をアピールしたりと、ちょっと役割が違うみたいです。もちろん後者の方がチームとしてモチベーション高く仕事できますよね。敵対するんじゃなくて、お互いの得意なことを活かして相乗効果につなげたいですね。
役割
チームとして成長していくには変化が必要で、そのためには誰でも提案できる土壌が必要。また、提案するばかりで行動が伴わないと信用してもらえないわけで、チームとして行動を起こして変化していくことが大切。風通しの良いチーム。お互いをリスペクト。
今日はこのへんで。
そういえば、今日 ehimerb の勉強会に参加したのですが、その中で ehimerb と agile459 のコラボで何かイベントしませんか、というお話がありました。何がいいですかね…
Tag: Head
HTMLのヘッダについて – 勉強会の下調べ
年明けの勉強会の予習というかメモ書き。
クロコラボ #20 headタグの中を考えてみよう
少しずつ書き足していきます。
文書メタデータ(ヘッダー)要素
文書レベルメタデータ要素
Qiita:色々あるHTMLのmetaタグなど一覧
JavaScriptはhead内で読み込みたい
結論としてはhead内で良さそう。
Document metadata – HTML 5.2
W3C Recommendation, 14 December 2017
headタグの短い例
headタグの長い例
エンコーディングを宣言する
要素は 要素の内部かつ
HTML の始めから 1024 バイト以内に配置しなければなりません。
これは、ページの文字集合を選択するまでに始めの部分しか確認しないブラウザーがあるためです。
What’s in the head? Metadata in HTML
https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML
タイトル
<title>Page title</title>
Document’s character encoding
<meta charset="utf-8">
charsetをISO-8859-1に変えて文字化けを確認してみる。
Adding an author and description
<meta name="author" content="name here...">
<meta name="description" content="description here...">
Googleで MDN Web Docs を検索してみる。
descriptionの内容やtitleが検索結果に利用されていることを確認。
Tag: Html
HTMLのヘッダについて – 勉強会の下調べ
年明けの勉強会の予習というかメモ書き。
クロコラボ #20 headタグの中を考えてみよう
少しずつ書き足していきます。
文書メタデータ(ヘッダー)要素
文書レベルメタデータ要素
Qiita:色々あるHTMLのmetaタグなど一覧
JavaScriptはhead内で読み込みたい
結論としてはhead内で良さそう。
Document metadata – HTML 5.2
W3C Recommendation, 14 December 2017
headタグの短い例
headタグの長い例
エンコーディングを宣言する
要素は 要素の内部かつ
HTML の始めから 1024 バイト以内に配置しなければなりません。
これは、ページの文字集合を選択するまでに始めの部分しか確認しないブラウザーがあるためです。
What’s in the head? Metadata in HTML
https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML
タイトル
<title>Page title</title>
Document’s character encoding
<meta charset="utf-8">
charsetをISO-8859-1に変えて文字化けを確認してみる。
Adding an author and description
<meta name="author" content="name here...">
<meta name="description" content="description here...">
Googleで MDN Web Docs を検索してみる。
descriptionの内容やtitleが検索結果に利用されていることを確認。
Tag: Meta
HTMLのヘッダについて – 勉強会の下調べ
年明けの勉強会の予習というかメモ書き。
クロコラボ #20 headタグの中を考えてみよう
少しずつ書き足していきます。
文書メタデータ(ヘッダー)要素
文書レベルメタデータ要素
Qiita:色々あるHTMLのmetaタグなど一覧
JavaScriptはhead内で読み込みたい
結論としてはhead内で良さそう。
Document metadata – HTML 5.2
W3C Recommendation, 14 December 2017
headタグの短い例
headタグの長い例
エンコーディングを宣言する
要素は 要素の内部かつ
HTML の始めから 1024 バイト以内に配置しなければなりません。
これは、ページの文字集合を選択するまでに始めの部分しか確認しないブラウザーがあるためです。
What’s in the head? Metadata in HTML
https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML
タイトル
<title>Page title</title>
Document’s character encoding
<meta charset="utf-8">
charsetをISO-8859-1に変えて文字化けを確認してみる。
Adding an author and description
<meta name="author" content="name here...">
<meta name="description" content="description here...">
Googleで MDN Web Docs を検索してみる。
descriptionの内容やtitleが検索結果に利用されていることを確認。
Tag: Codewars
XP本読書会10回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
単一のコードベース
読書会のときは、以前に手掛けたAndroidのカメラアプリが頭の中にあって、機種依存で苦労したことを考えていたのですが、今思えば他の仕事(ウェブサイト)でも派生させてそのままになっているコードも存在していて、このあたり一つに集約する努力が足りていないなぁとあらためて反省。
今、この記事を書きながら考えているのですが、共通部分を派生させて使いまわすのではなくて、共通部分を完全に分離して、汎用的に使えるように作り込めば良いはず。今、すでに複数のプラグインでメンテナンスが必要になっている部分を切り出して汎用化する方向で検討してみます。
交渉によるスコープ契約
新規案件だと、過去の習慣もあってひとかたまりで見積もってしまいがち。部分的にリリースして、その状況で次のステップに進めるように、契約を分けておくと良さそうです。一つ一つの機能の価値を確認しながら進めていく感じですかね。
(余談)読書会とは別の Code Kata について
先月、GDCRを松山で実施したことがきっかけとなって、この1月ほど Codewars で Kata の練習をしています。(参考:最近の勉強ツールあれこれ)
レベルはまだ 6kyu で、問題も 7kyu の Fundamentals を中心に練習しているのですが、問題によっては解いているうちにプロパティやメソッド、変数の状態など強制的に使わされる感じのものがあったり、あるいは問題を解くと、他の人のコード例も見えるので、そこで自分のコードの拙さに愕然としたりという状況ですが、まぁとにかくとても良いトレーニングになっています。
日常の仕事の中だとスキルアップに時間を費やすのはなかなか難しいかもしれません。ですが、適切なコードを書けるかどうかで効率とか品質は全然違ってくると思います。そのためには日常のトレーニングが重要。あまり難しい問題だと、続かないかもしれないので、比較的簡単な問題を様々な言語で引き続き進めてみようと思います。
最近の勉強ツールあれこれ
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。
まず最初にタイピングの練習。
インターネットでタイピング練習 – e-typing
スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。
練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。
プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。
次に語学の勉強。
同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。
普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。
まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。
ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。
あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)
まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。
3つ目の勉強ツールはプログラミングのKATA。
KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。
で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?
ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。
以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。
Tag: KATA
XP本読書会10回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
単一のコードベース
読書会のときは、以前に手掛けたAndroidのカメラアプリが頭の中にあって、機種依存で苦労したことを考えていたのですが、今思えば他の仕事(ウェブサイト)でも派生させてそのままになっているコードも存在していて、このあたり一つに集約する努力が足りていないなぁとあらためて反省。
今、この記事を書きながら考えているのですが、共通部分を派生させて使いまわすのではなくて、共通部分を完全に分離して、汎用的に使えるように作り込めば良いはず。今、すでに複数のプラグインでメンテナンスが必要になっている部分を切り出して汎用化する方向で検討してみます。
交渉によるスコープ契約
新規案件だと、過去の習慣もあってひとかたまりで見積もってしまいがち。部分的にリリースして、その状況で次のステップに進めるように、契約を分けておくと良さそうです。一つ一つの機能の価値を確認しながら進めていく感じですかね。
(余談)読書会とは別の Code Kata について
先月、GDCRを松山で実施したことがきっかけとなって、この1月ほど Codewars で Kata の練習をしています。(参考:最近の勉強ツールあれこれ)
レベルはまだ 6kyu で、問題も 7kyu の Fundamentals を中心に練習しているのですが、問題によっては解いているうちにプロパティやメソッド、変数の状態など強制的に使わされる感じのものがあったり、あるいは問題を解くと、他の人のコード例も見えるので、そこで自分のコードの拙さに愕然としたりという状況ですが、まぁとにかくとても良いトレーニングになっています。
日常の仕事の中だとスキルアップに時間を費やすのはなかなか難しいかもしれません。ですが、適切なコードを書けるかどうかで効率とか品質は全然違ってくると思います。そのためには日常のトレーニングが重要。あまり難しい問題だと、続かないかもしれないので、比較的簡単な問題を様々な言語で引き続き進めてみようと思います。
最近の勉強ツールあれこれ
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。
まず最初にタイピングの練習。
インターネットでタイピング練習 – e-typing
スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。
練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。
プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。
次に語学の勉強。
同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。
普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。
まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。
ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。
あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)
まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。
3つ目の勉強ツールはプログラミングのKATA。
KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。
で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?
ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。
以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。
Tag: コードベース
XP本読書会10回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
単一のコードベース
読書会のときは、以前に手掛けたAndroidのカメラアプリが頭の中にあって、機種依存で苦労したことを考えていたのですが、今思えば他の仕事(ウェブサイト)でも派生させてそのままになっているコードも存在していて、このあたり一つに集約する努力が足りていないなぁとあらためて反省。
今、この記事を書きながら考えているのですが、共通部分を派生させて使いまわすのではなくて、共通部分を完全に分離して、汎用的に使えるように作り込めば良いはず。今、すでに複数のプラグインでメンテナンスが必要になっている部分を切り出して汎用化する方向で検討してみます。
交渉によるスコープ契約
新規案件だと、過去の習慣もあってひとかたまりで見積もってしまいがち。部分的にリリースして、その状況で次のステップに進めるように、契約を分けておくと良さそうです。一つ一つの機能の価値を確認しながら進めていく感じですかね。
(余談)読書会とは別の Code Kata について
先月、GDCRを松山で実施したことがきっかけとなって、この1月ほど Codewars で Kata の練習をしています。(参考:最近の勉強ツールあれこれ)
レベルはまだ 6kyu で、問題も 7kyu の Fundamentals を中心に練習しているのですが、問題によっては解いているうちにプロパティやメソッド、変数の状態など強制的に使わされる感じのものがあったり、あるいは問題を解くと、他の人のコード例も見えるので、そこで自分のコードの拙さに愕然としたりという状況ですが、まぁとにかくとても良いトレーニングになっています。
日常の仕事の中だとスキルアップに時間を費やすのはなかなか難しいかもしれません。ですが、適切なコードを書けるかどうかで効率とか品質は全然違ってくると思います。そのためには日常のトレーニングが重要。あまり難しい問題だと、続かないかもしれないので、比較的簡単な問題を様々な言語で引き続き進めてみようと思います。
Tag: Postgresql
herokuまわり – Rails Tutorial
明日の勉強会の準備。メモ書き程度です。
1.5.1 Herokuのセットアップ
このあたりの作業中。
ndenvのnpmをインストール済みなので、
$ npm install -g heroku-cli
を試したところ、npm WARN ... 'heroku-cli' has been renamed 'heroku'
と表示されたもののインストールはできた様子。
それと、cross-spawn no longer requires a build toolchain, use it instead
という警告もあり。
$ heroku --version
heroku/7.19.3 darwin-x64 node-v8.11.2
$ heroku login
ブラウザが開くのでログインします。
SSHキーを作成して登録。
$ ssh-keygen -t rsa -C "your.name@example.com" -f ~/.ssh/id_rsa_heroku
$ heroku keys:add
$heroku create
ブラウザで確認
herokuにデプロイ
$ git push heroku master
pushでrejected
SQLite on Heroku
ローカルのGemfileを編集したものの、コミットするのを忘れていました。(^^;
Tag: Sqlite
herokuまわり – Rails Tutorial
明日の勉強会の準備。メモ書き程度です。
1.5.1 Herokuのセットアップ
このあたりの作業中。
ndenvのnpmをインストール済みなので、
$ npm install -g heroku-cli
を試したところ、npm WARN ... 'heroku-cli' has been renamed 'heroku'
と表示されたもののインストールはできた様子。
それと、cross-spawn no longer requires a build toolchain, use it instead
という警告もあり。
$ heroku --version
heroku/7.19.3 darwin-x64 node-v8.11.2
$ heroku login
ブラウザが開くのでログインします。
SSHキーを作成して登録。
$ ssh-keygen -t rsa -C "your.name@example.com" -f ~/.ssh/id_rsa_heroku
$ heroku keys:add
$heroku create
ブラウザで確認
herokuにデプロイ
$ git push heroku master
pushでrejected
SQLite on Heroku
ローカルのGemfileを編集したものの、コミットするのを忘れていました。(^^;
Tag: Reading
主要プラクティス – XP本読書会7回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
この時期にSlackでコミュニケーション取り過ぎの問題があって、今思えば自分の使い方も良くなかったと反省。どちらかというとプライベート寄りのチーム、仕事用のチーム、その中間的なチームに参加していて、通知を受けたり書き込んだりする時間帯の切り替えができていなかった感じです。
今でも切り替えができていないので、通知とかステータスの設定を見直してみます。
Slack 通知の仕組み
おやすみモードによる通知の一時停止
さて、まずはペアプロについて。
Agile459ではこれまでにGDCRを3回開催していて、昨年のAgile Japanサテライトではモブプログラミング、そして今年の夏にはTDDBCも開催しましたので、ペアプロの有効性についてはコミュニティの中で共通認識が持てていると思います。ただし「ペアとパーソナルスペース」に書かれているような気配りについてはこれまで意識が低かったと反省。
例えば、Wikiのまとめにも書きましたが、以前使っていたアウトドア用の腕時計。そのバンドの裏側に着け心地を良くするための皮が貼ってあり、どうやらその部分が汗臭くなっていたみたいで臭いを指摘されたことがありました。指摘されたときは分からなくて、その腕時計が故障して買い換えた時に、「あーもしかしたら腕時計のバンドの臭いで迷惑を掛けていたかも」と反省。
自分では気がつかないこともあるので、ペアで作業する際の注意点などチーム内で話し合う機会が適宜必要と思いました。
次に、ゆとり(Slack)
最近、働き方が変わってきているようで、その中で、この「ゆとり(Slack)」の考え方が重要かもしれません。
重要度の低いタスクを含めること
とありますが、これは調整のために外す(対応しない)こともできるし、比較的簡単なものでも実現することで評価につながることもあります。臨機応変に対応するためのタスク。
それと、毎日の仕事の中で集中というか効率よく仕事ができる時間は実際には割と短いものだと思います。タスクを詰め込み過ぎず、ゆとりを持って、それ以外の環境であるとか、スキルアップのための学びであるとか、そういう時間も日々確保することで、より質の高い仕事につながっていくと思います。
そして、インクリメンタルな設計。
新規に取り組んだものは、その時点で要件を満たすことができた試作レベルと割り切って、機能追加とか何らかの改修をする際に、気がついた時点でリファクタリングを進めていくことでより良いものに仕上がっていくと思います。もちろん、リファクタリングを進めるにはテストコードによる動作保証が前提になります。言い換えれば、テストコードによってシステム全体の動作確認が取れる状態になっていれば、いつでも気軽にリファクタリングに取り組むことができます。
という感じで、今日はこのあたりまで。
Tag: 全員同席
XPのプラクティス – XP本読書会6回目のふりかえりのふりかえり
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
第6章の冒頭に、
「プラクティスとは、XPチームが日常的に行うものである。…」
という説明があって、その後に「…、機械的な作業になってしまう。…」
読書会の時にこの部分を読んで、過去に関わったプロジェクトで、テスト工程をペアで手作業で行うというなかなか残念なプロジェクトを思い出しました。のちの改修とか機能追加などを考えれば普通に自動化すべき部分だと思うのですが、リリース前のテストは手をかけて苦労することがルールみたいな感じでした。。。
さて、読書会の議論のなかで「どのプラクティスが導入しやすいのか?」という話があって、いやおそらくそういう方法から入るんじゃなくて、何に困っているかという具体的な問題の洗い出しが必要で、それに対して、じゃあこのプラクティスをやってみれば、というようなやり取りがありました。
あと、全員同席の部分。
過去の仕事場を振り返ってみると、個人スペース、もしくはオープンスペースのどちらかはありましたが、両方を使い分けるような環境はなかったと思います。あと、オープンスペースといっても、単に机が並んでいるだけのごく一般的な職場なので、本に書かれている会議室を占有する感じのオープンワークスペースというのは心に刺さる部分でした。
個人が集中して作業できる環境と、チームメンバーが集まってコミュニケーションをしながら作業できる環境。両方があるのがポイント。
そして「チーム全体」の終わりのほうにある「タスクの切り替え時間」。
いろいろ忙しくて、あれもこれもみたいな状況になるのを仕方ないとするか。いや、その切り替えにはどうしても時間がかかるので、できるだけ一つの仕事に集中できるようにスケジュールなり人員なりを調整するなど。
この回の終わりは「いきいきとした仕事」でした。
長時間働くのは良くないですね。以前は当たり前のように毎日遅くまで仕事をしていましたが、単に時間をかけてコードを書くよりも、できるだけ短時間で切り上げて、環境を整えるとか、こういう本で手法を学ぶとか、プログラミングのスキルを学ぶなど。それと、健康に配慮して体を動かすとか、そうやって生活の質を上げることで結果として仕事の成果も上がるようにしていきたいですね。
Tag: コミュニティ
Agile459のコミュニティについて
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
私自身、Agile459のコミュニティに参加して8年ほどになります。
おもに @kkd 氏が中心となって、県外から講師を招いてセミナーを開いたり、Agile Japanのサテライトを開催したり、読書会(アジャイルサムライ、エクストリームプログラミング)を開催したりしています。
参加するまではアジャイル開発についての知識がなく、キーワードとしては知っていたかも知れませんが、どう実践するとかそういうノウハウがない状態でしたが、毎年の様々なイベントの中で少しずつですが、自分の知識として身について、仕事の中で実践できるようになってきました。
今の時代に対しては、自分の進歩のスピードに多少(?)問題があるかも知れませんが…(^^;
少し残念なのは、その年々で参加者が入れ替わっていく感じで、継続して参加している運営スタッフもそれぞれ興味分野が違ったりするので、なかなかコミュニティとしての運営がまとまらない状況があります。例えば特定のプログラミング言語や技術に特化したコミュニティだと、わりと継続的にあるいは定期的に勉強会が開催されるようになってきてはいますが、アジャイルというキーワードだと、対象とする範囲が広すぎるのか、具体的な必要性が見えにくいのか、内容によってはたくさんの参加もあるのですが、イベントが終わると一気に疎遠になってしまう感じがします。
前のエントリー 今年(2018)のAgile459のふりかえり の最後の部分にも書きましたが、自分の仕事の中ではなかなか変えることができない、あるいは気がつかないことが、外のコミュニティに参加することで気がついて改善につながったりすることもあると思います。仕事の進め方とか、開発方法とか、日常の仕事の中で何か疑問に感じるけれど、何となくそのままやり過ごしていることなど、もしあればAgile459のコミュニティに参加して議論してみると、何か発見があるかも知れません。
あと、コミュニティの運営ですが、8年も経つとウェブサイトまわりもいろいろと変わってきて、見直しが必要な時期になっていると思います。ただ、これも仕事や家庭とは別の活動になるので、なかなか時間を取って進めるのは難しい。それと、中に時間が取れる人がいたとしても、その人ばかりが手をかけてしまうと、その人じゃないとわからない(弄れない)状況になってしまって、時間とともに破綻してしまう可能性もあります。このあたりも、せっかくのアジャイルのコミュニティーなので、うまくチームとして回せる環境を作ることができればと、ぼんやりですが考えています。
Tag: 運営
Agile459のコミュニティについて
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
私自身、Agile459のコミュニティに参加して8年ほどになります。
おもに @kkd 氏が中心となって、県外から講師を招いてセミナーを開いたり、Agile Japanのサテライトを開催したり、読書会(アジャイルサムライ、エクストリームプログラミング)を開催したりしています。
参加するまではアジャイル開発についての知識がなく、キーワードとしては知っていたかも知れませんが、どう実践するとかそういうノウハウがない状態でしたが、毎年の様々なイベントの中で少しずつですが、自分の知識として身について、仕事の中で実践できるようになってきました。
今の時代に対しては、自分の進歩のスピードに多少(?)問題があるかも知れませんが…(^^;
少し残念なのは、その年々で参加者が入れ替わっていく感じで、継続して参加している運営スタッフもそれぞれ興味分野が違ったりするので、なかなかコミュニティとしての運営がまとまらない状況があります。例えば特定のプログラミング言語や技術に特化したコミュニティだと、わりと継続的にあるいは定期的に勉強会が開催されるようになってきてはいますが、アジャイルというキーワードだと、対象とする範囲が広すぎるのか、具体的な必要性が見えにくいのか、内容によってはたくさんの参加もあるのですが、イベントが終わると一気に疎遠になってしまう感じがします。
前のエントリー 今年(2018)のAgile459のふりかえり の最後の部分にも書きましたが、自分の仕事の中ではなかなか変えることができない、あるいは気がつかないことが、外のコミュニティに参加することで気がついて改善につながったりすることもあると思います。仕事の進め方とか、開発方法とか、日常の仕事の中で何か疑問に感じるけれど、何となくそのままやり過ごしていることなど、もしあればAgile459のコミュニティに参加して議論してみると、何か発見があるかも知れません。
あと、コミュニティの運営ですが、8年も経つとウェブサイトまわりもいろいろと変わってきて、見直しが必要な時期になっていると思います。ただ、これも仕事や家庭とは別の活動になるので、なかなか時間を取って進めるのは難しい。それと、中に時間が取れる人がいたとしても、その人ばかりが手をかけてしまうと、その人じゃないとわからない(弄れない)状況になってしまって、時間とともに破綻してしまう可能性もあります。このあたりも、せっかくのアジャイルのコミュニティーなので、うまくチームとして回せる環境を作ることができればと、ぼんやりですが考えています。
Tag: 品質
XP本読書会5回目のふりかえりのふりかえり – 機会とか品質とか責任とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の5回目は5章の後半でした。
機会と失敗はつながる部分があって、失敗とか何か問題があった場合にネガティブになるんじゃなくて良い方向に向かせるための機会ととらえることがポイント。反省も必要だけどそればかりではしんどいですし、さらに大きな問題につながる可能性もあるわけで、そうならないうちに気がつけたと思えば良いんじゃないかと。テストケースを追加してみるとか、テストの仕方を変えてみるとか、機能自体を見直してみるとか。
あと、失敗したら急いで対処するんじゃなくて、まず失敗した状況を共有。対処できたらまた共有。そうすることで落ち着いて対応できるし、時間がかかったらかかったでエビデンスにもなるし、のちの教訓とかノウハウにもつながると思います。
次に品質について。
仕事の中で品質を求めることができなくて(あきらめて)、プライベートで品質に対する欲求を満たしていたという話の中で「盆栽」というキーワードが上がって、「盆栽」といえば波平の「ばっかもーん!!」ですよね、みたいなところから脱線。まぁそれはそれで面白かったです。面白かったというか、オンライン読書会の中で一番脳が活性化した瞬間だったかもです。
で、品質と責任の部分もつながると思います。誰かの成果物の品質がどうとか、誰かに責任を押し付けたところで、プロジェクト全体としては何の解決にもならないわけで、解決にならないどころかそれこそ時間の無駄。それよりも、プロジェクトのチームとして品質を良くしていくとか、責任を共有することが大切。そうすれば信用とか期待につながりますよね。
本の内容とは少し外れますが、この頃に自分の課題として「リファクタリング」というキーワードがあって、なかなか進めることができていなかったのですが、
【質問紹介】#Csharp #ASPdotNET #MVC #EntityFramework
Q. MVCの考え方がいまいち噛み砕けないので教えて頂きたいです。— teratail【テラテイル】 (@teratail) September 4, 2018
このコメントがすごく良いヒントになって、仕事のタイミングと重なってリファクタリング進行中です。
読書会に参加したことで、そういう課題意識を持てたし、継続的に考えることで実践にも繋がったと思います。
Tag: 機会
XP本読書会5回目のふりかえりのふりかえり – 機会とか品質とか責任とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の5回目は5章の後半でした。
機会と失敗はつながる部分があって、失敗とか何か問題があった場合にネガティブになるんじゃなくて良い方向に向かせるための機会ととらえることがポイント。反省も必要だけどそればかりではしんどいですし、さらに大きな問題につながる可能性もあるわけで、そうならないうちに気がつけたと思えば良いんじゃないかと。テストケースを追加してみるとか、テストの仕方を変えてみるとか、機能自体を見直してみるとか。
あと、失敗したら急いで対処するんじゃなくて、まず失敗した状況を共有。対処できたらまた共有。そうすることで落ち着いて対応できるし、時間がかかったらかかったでエビデンスにもなるし、のちの教訓とかノウハウにもつながると思います。
次に品質について。
仕事の中で品質を求めることができなくて(あきらめて)、プライベートで品質に対する欲求を満たしていたという話の中で「盆栽」というキーワードが上がって、「盆栽」といえば波平の「ばっかもーん!!」ですよね、みたいなところから脱線。まぁそれはそれで面白かったです。面白かったというか、オンライン読書会の中で一番脳が活性化した瞬間だったかもです。
で、品質と責任の部分もつながると思います。誰かの成果物の品質がどうとか、誰かに責任を押し付けたところで、プロジェクト全体としては何の解決にもならないわけで、解決にならないどころかそれこそ時間の無駄。それよりも、プロジェクトのチームとして品質を良くしていくとか、責任を共有することが大切。そうすれば信用とか期待につながりますよね。
本の内容とは少し外れますが、この頃に自分の課題として「リファクタリング」というキーワードがあって、なかなか進めることができていなかったのですが、
【質問紹介】#Csharp #ASPdotNET #MVC #EntityFramework
Q. MVCの考え方がいまいち噛み砕けないので教えて頂きたいです。— teratail【テラテイル】 (@teratail) September 4, 2018
このコメントがすごく良いヒントになって、仕事のタイミングと重なってリファクタリング進行中です。
読書会に参加したことで、そういう課題意識を持てたし、継続的に考えることで実践にも繋がったと思います。
Tag: 責任
XP本読書会5回目のふりかえりのふりかえり – 機会とか品質とか責任とか
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
XP本読書会の5回目は5章の後半でした。
機会と失敗はつながる部分があって、失敗とか何か問題があった場合にネガティブになるんじゃなくて良い方向に向かせるための機会ととらえることがポイント。反省も必要だけどそればかりではしんどいですし、さらに大きな問題につながる可能性もあるわけで、そうならないうちに気がつけたと思えば良いんじゃないかと。テストケースを追加してみるとか、テストの仕方を変えてみるとか、機能自体を見直してみるとか。
あと、失敗したら急いで対処するんじゃなくて、まず失敗した状況を共有。対処できたらまた共有。そうすることで落ち着いて対応できるし、時間がかかったらかかったでエビデンスにもなるし、のちの教訓とかノウハウにもつながると思います。
次に品質について。
仕事の中で品質を求めることができなくて(あきらめて)、プライベートで品質に対する欲求を満たしていたという話の中で「盆栽」というキーワードが上がって、「盆栽」といえば波平の「ばっかもーん!!」ですよね、みたいなところから脱線。まぁそれはそれで面白かったです。面白かったというか、オンライン読書会の中で一番脳が活性化した瞬間だったかもです。
で、品質と責任の部分もつながると思います。誰かの成果物の品質がどうとか、誰かに責任を押し付けたところで、プロジェクト全体としては何の解決にもならないわけで、解決にならないどころかそれこそ時間の無駄。それよりも、プロジェクトのチームとして品質を良くしていくとか、責任を共有することが大切。そうすれば信用とか期待につながりますよね。
本の内容とは少し外れますが、この頃に自分の課題として「リファクタリング」というキーワードがあって、なかなか進めることができていなかったのですが、
【質問紹介】#Csharp #ASPdotNET #MVC #EntityFramework
Q. MVCの考え方がいまいち噛み砕けないので教えて頂きたいです。— teratail【テラテイル】 (@teratail) September 4, 2018
このコメントがすごく良いヒントになって、仕事のタイミングと重なってリファクタリング進行中です。
読書会に参加したことで、そういう課題意識を持てたし、継続的に考えることで実践にも繋がったと思います。
Tag: Duolingo
最近の勉強ツールあれこれ
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。
まず最初にタイピングの練習。
インターネットでタイピング練習 – e-typing
スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。
練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。
プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。
次に語学の勉強。
同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。
普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。
まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。
ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。
あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)
まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。
3つ目の勉強ツールはプログラミングのKATA。
KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。
で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?
ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。
以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。
Tag: Etyping
最近の勉強ツールあれこれ
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。
まず最初にタイピングの練習。
インターネットでタイピング練習 – e-typing
スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。
練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。
プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。
次に語学の勉強。
同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。
普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。
まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。
ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。
あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)
まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。
3つ目の勉強ツールはプログラミングのKATA。
KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。
で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?
ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。
以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。
Tag: Katayunos
最近の勉強ツールあれこれ
この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。
先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。
まず最初にタイピングの練習。
インターネットでタイピング練習 – e-typing
スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。
練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。
プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。
次に語学の勉強。
同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。
普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。
まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。
ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。
あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)
まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。
3つ目の勉強ツールはプログラミングのKATA。
KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。
で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?
ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。
以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。
Tag: Apn
Y!mobileのスマホで通話の不具合
機種名は Huawei nova lite です。
原因の特定はできていませんが、いくつか気になる点があるので今後の対応のためにまとめておきます。
症状としては、掛かってきた電話の通話中に突然切れる。通話時間1分47秒。
その後、先方から着信があるものの通話ボタンを押すと切れる。
しばらく時間を置いて(約6時間後)電話を受ける。この時は問題なく11分ほど通話。
最初に通話が切れた時は、アプリの更新の通知が3個ほどあって、更新はまだ実行していない状態。
この日以外にも頻繁ではないけれど、これまでに何度か通話が中断されて掛け直すことがありました。
あと、以前に、特定の電話番号から着信できない問題があって、その時はYmobileさんに調べてもらって、先方の交換機だかの問題と特定できた経緯があって、同じような問題なのかとYmobileさんに問い合わせてみたところ、そのような調査はできないとの回答で、
(A)SIMの抜き差し
(B)Safeモードでの起動
(C)場所を変えてみて着信できるかどうか
など試すようにアドバイスをもらいました。
結局、時間を置けば通話ができたので(A),(B),(C)は関係なさそう。
他に要因はないかと調べてみると価格.comに気になる書き込みがありました。
端末の不具合(ハードウェアの問題)の可能性もあるかもですが、APNの設定について書かれていたので確認したところ端末のデフォルトの設定(Application: plus.acs.jp.v6)しかなかったので、Y!mobile APNの設定を追加してそちらに切り替えておきました。
ワイモバイルスマホの初期設定方法 – APN未設定の場合(新APN作成)
これでしばらく様子を見ます。
この設定にすると、4Gの接続ができなくなりました。デフォルトの設定に戻します。
ユーザー名とパスワードを間違えていました。
ymobileのページの説明が
ユーザー名: ym<br>パスワード: ym
となっていて y と m の間にスペースがあるように見えるのですが、ここだけ全角文字になっていました。正しくは半角で間のスペースは不要でした。
ユーザー名: ym<br>パスワード: ym
上記の初期設定方法ですが、Ymobileが販売しているAndroid端末では追加のAPN設定は不要(デフォルトの設定でOK)とのことでした。
Tag: Huawei
Y!mobileのスマホで通話の不具合
機種名は Huawei nova lite です。
原因の特定はできていませんが、いくつか気になる点があるので今後の対応のためにまとめておきます。
症状としては、掛かってきた電話の通話中に突然切れる。通話時間1分47秒。
その後、先方から着信があるものの通話ボタンを押すと切れる。
しばらく時間を置いて(約6時間後)電話を受ける。この時は問題なく11分ほど通話。
最初に通話が切れた時は、アプリの更新の通知が3個ほどあって、更新はまだ実行していない状態。
この日以外にも頻繁ではないけれど、これまでに何度か通話が中断されて掛け直すことがありました。
あと、以前に、特定の電話番号から着信できない問題があって、その時はYmobileさんに調べてもらって、先方の交換機だかの問題と特定できた経緯があって、同じような問題なのかとYmobileさんに問い合わせてみたところ、そのような調査はできないとの回答で、
(A)SIMの抜き差し
(B)Safeモードでの起動
(C)場所を変えてみて着信できるかどうか
など試すようにアドバイスをもらいました。
結局、時間を置けば通話ができたので(A),(B),(C)は関係なさそう。
他に要因はないかと調べてみると価格.comに気になる書き込みがありました。
端末の不具合(ハードウェアの問題)の可能性もあるかもですが、APNの設定について書かれていたので確認したところ端末のデフォルトの設定(Application: plus.acs.jp.v6)しかなかったので、Y!mobile APNの設定を追加してそちらに切り替えておきました。
ワイモバイルスマホの初期設定方法 – APN未設定の場合(新APN作成)
これでしばらく様子を見ます。
この設定にすると、4Gの接続ができなくなりました。デフォルトの設定に戻します。
ユーザー名とパスワードを間違えていました。
ymobileのページの説明が
ユーザー名: ym<br>パスワード: ym
となっていて y と m の間にスペースがあるように見えるのですが、ここだけ全角文字になっていました。正しくは半角で間のスペースは不要でした。
ユーザー名: ym<br>パスワード: ym
上記の初期設定方法ですが、Ymobileが販売しているAndroid端末では追加のAPN設定は不要(デフォルトの設定でOK)とのことでした。
HUAWEI nova lite のGPSについて – バッテリー最適化
最初に結論ですが、
アプリ個別の設定でバッテリーの最適化を無視することで
GPSが取れなくなるのを回避できました。
ただし、当然のことながら電池の消耗が大きくなります。
具体的な状況(経緯)は次の通り。
昨年末に HUAWEI nova lite に機種変更して使っているのですが、
PokemonGOを使っているとGPSがかなりの頻度で落ちます。
アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
現在位置から数キロメートル離れた場所に飛ばされたりします。
昨年末にHUAWEIのサポートに問い合わせたところ、
「セーフモードで起動してGPSが機能するか確認してください。」
とのこと。
セーフモードでGoogle Mapsを数10分間試してみましたが、
GPSは問題なく機能しています。
ハードウェア自体は問題なさそうです。
で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
一旦GPSをオフにして入れ直すと復帰するので、
そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、
HUAWEI P9のGPS問題に関する書き込みを見つけました。
Huawei P9 Questions & Answers -> GPS problem
problem due to battery optimisation
設定の手順
Tag: Novalite
Y!mobileのスマホで通話の不具合
機種名は Huawei nova lite です。
原因の特定はできていませんが、いくつか気になる点があるので今後の対応のためにまとめておきます。
症状としては、掛かってきた電話の通話中に突然切れる。通話時間1分47秒。
その後、先方から着信があるものの通話ボタンを押すと切れる。
しばらく時間を置いて(約6時間後)電話を受ける。この時は問題なく11分ほど通話。
最初に通話が切れた時は、アプリの更新の通知が3個ほどあって、更新はまだ実行していない状態。
この日以外にも頻繁ではないけれど、これまでに何度か通話が中断されて掛け直すことがありました。
あと、以前に、特定の電話番号から着信できない問題があって、その時はYmobileさんに調べてもらって、先方の交換機だかの問題と特定できた経緯があって、同じような問題なのかとYmobileさんに問い合わせてみたところ、そのような調査はできないとの回答で、
(A)SIMの抜き差し
(B)Safeモードでの起動
(C)場所を変えてみて着信できるかどうか
など試すようにアドバイスをもらいました。
結局、時間を置けば通話ができたので(A),(B),(C)は関係なさそう。
他に要因はないかと調べてみると価格.comに気になる書き込みがありました。
端末の不具合(ハードウェアの問題)の可能性もあるかもですが、APNの設定について書かれていたので確認したところ端末のデフォルトの設定(Application: plus.acs.jp.v6)しかなかったので、Y!mobile APNの設定を追加してそちらに切り替えておきました。
ワイモバイルスマホの初期設定方法 – APN未設定の場合(新APN作成)
これでしばらく様子を見ます。
この設定にすると、4Gの接続ができなくなりました。デフォルトの設定に戻します。
ユーザー名とパスワードを間違えていました。
ymobileのページの説明が
ユーザー名: ym<br>パスワード: ym
となっていて y と m の間にスペースがあるように見えるのですが、ここだけ全角文字になっていました。正しくは半角で間のスペースは不要でした。
ユーザー名: ym<br>パスワード: ym
上記の初期設定方法ですが、Ymobileが販売しているAndroid端末では追加のAPN設定は不要(デフォルトの設定でOK)とのことでした。
Tag: Ymobile
Y!mobileのスマホで通話の不具合
機種名は Huawei nova lite です。
原因の特定はできていませんが、いくつか気になる点があるので今後の対応のためにまとめておきます。
症状としては、掛かってきた電話の通話中に突然切れる。通話時間1分47秒。
その後、先方から着信があるものの通話ボタンを押すと切れる。
しばらく時間を置いて(約6時間後)電話を受ける。この時は問題なく11分ほど通話。
最初に通話が切れた時は、アプリの更新の通知が3個ほどあって、更新はまだ実行していない状態。
この日以外にも頻繁ではないけれど、これまでに何度か通話が中断されて掛け直すことがありました。
あと、以前に、特定の電話番号から着信できない問題があって、その時はYmobileさんに調べてもらって、先方の交換機だかの問題と特定できた経緯があって、同じような問題なのかとYmobileさんに問い合わせてみたところ、そのような調査はできないとの回答で、
(A)SIMの抜き差し
(B)Safeモードでの起動
(C)場所を変えてみて着信できるかどうか
など試すようにアドバイスをもらいました。
結局、時間を置けば通話ができたので(A),(B),(C)は関係なさそう。
他に要因はないかと調べてみると価格.comに気になる書き込みがありました。
端末の不具合(ハードウェアの問題)の可能性もあるかもですが、APNの設定について書かれていたので確認したところ端末のデフォルトの設定(Application: plus.acs.jp.v6)しかなかったので、Y!mobile APNの設定を追加してそちらに切り替えておきました。
ワイモバイルスマホの初期設定方法 – APN未設定の場合(新APN作成)
これでしばらく様子を見ます。
この設定にすると、4Gの接続ができなくなりました。デフォルトの設定に戻します。
ユーザー名とパスワードを間違えていました。
ymobileのページの説明が
ユーザー名: ym<br>パスワード: ym
となっていて y と m の間にスペースがあるように見えるのですが、ここだけ全角文字になっていました。正しくは半角で間のスペースは不要でした。
ユーザー名: ym<br>パスワード: ym
上記の初期設定方法ですが、Ymobileが販売しているAndroid端末では追加のAPN設定は不要(デフォルトの設定でOK)とのことでした。
Tag: Events
Retro of Agile459 since 2010
I picked up Agile459’s some events since 2010.
Agile459 is a community which we learn and discuss about agile development in Shikoku.
459 means shikoku by japanese pronounciation of four: shi, five: go(ko), nine: ku.
Shikoku is one of the island of Japan.
Sorry linked contents are all written in Japanese.
2010
21 November 2010
Agileprocess Association Shikoku division
2011
08 November 2011
Agile case study
2012
16 March 2012
Agile Japan 2012 Ehime/Setouchi satellite
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: History
Retro of Agile459 since 2010
I picked up Agile459’s some events since 2010.
Agile459 is a community which we learn and discuss about agile development in Shikoku.
459 means shikoku by japanese pronounciation of four: shi, five: go(ko), nine: ku.
Shikoku is one of the island of Japan.
Sorry linked contents are all written in Japanese.
2010
21 November 2010
Agileprocess Association Shikoku division
2011
08 November 2011
Agile case study
2012
16 March 2012
Agile Japan 2012 Ehime/Setouchi satellite
Tag: Mkdocs
PyEhime 20181020 – MkDocs
ターミナル(シェル環境)
$ env | grep LANG
何も設定されていない場合は、
$ export LANG=ja_JP.UTF-8
としておく。
Python3環境
venvをお勧めします。作業用フォルダを workspace とすると、
$ cd workspace
$ python3 -m venv venv
$ source venv/bin/activate
mkdocs インストール
$ pip install mkdocs
pip 自体のアップグレードが勧められたら、
$ pip install --upgrade pip
mkdocsのプロジェクト作成
$ mkdocs new mktest
ビルド
$ cd mktest
$ mkdocs serve
ブラウザで http://127.0.0.1:8000
を開く。
カスタマイズ
いろいろ記事がありますので、適宜試してみてください。
MkDocsによるドキュメント作成
練習で数式を試してみました。
https://kazweda.github.io/mkdocs-lesson/math/
GitHub Pages
GitHubでリポジトリを作成。mktest
git clone の URL(PATH/TO/REPO)を取得
$ git init
$ git remote add origin (PATH/TO/REPO)
$ git pull origin master
$ mkdocs gh-deploy
Tag: Mvc
WordPress作業メモ
学術研究機関向けシンポジウム管理システム developed with WordPress
2015年版の開発
TDD(PHPUnit)で進めた。
当初、2ヶ国語(日本語、英語)で開発・運用していたが、複数言語でのコンテンツの更新が負担になるため英語メインに変更。必要に応じて日本語を併記。
2017年版で機能追加
1アカウントで複数の論文投稿(および決済)に対応。この部分でプログラムが若干複雑になり、決済のチェックも事務方での確認など手間が増えてしまう。
ただしTDD(2015版)によるテストコードがあったので、改修作業は比較的スムーズに進んだ。
2019版を開発開始
MVCに関する記事を参考に、リファクタリングを進める。
やはりここでもTDDに救われる。仮にテストコードがないとすると、ここまでたどり着けていないと思う。しかもストレスなく、というよりもどちらかというとモチベーション高めでリファクタリングを進めることができるのはわりと幸せな感じ。
ただし、PayPalのAPIが開発の時期によってバージョンアップされていて、その対応(情報収集、試作)に結構な時間が取られるのがなかなかしんどい。
Tag: Coderetreat
Coderetreat 参考資料
Conway’s Game of Life
ライフゲーム(Conway’s Game of Life)
TDD & Conway’s Game of Life by Jeremy Bytes
Kata
In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.
As a group, software developers don’t practice enough. Most of our learning takes place on the job, which means that most of our mistakes get made there as well. Other creative professions practice: artists carry a sketchpad, musicians play technical pieces, poets constantly rewrite works. In karate, where the aim is to learn to spar or fight, most of a student’s time is spent learning and refining basic moves. The more formal of these exercises are called kata.
GDCR 2018 in 松山を開催しました
イベントページ
Global Day of Coderetreat 2018 in Matsuyama
ツイートまとめ(togetter)
GDCR 2018 in Matsuyama
会場はこちら
The 3rd FLOOR
ご協力ありがとうございました。
ランチ、ドリンク、デザートは1Fのグレイズさんにお願いしました。
とても美味しかったです。ありがとうございました。
CodeRetreat は、1日かけてプログラミングのスキルアップを目指すイベントで基本的にプログラマーは無料で参加できます。会場やランチ、おやつなどにかかる費用は、スポンサーを募ってまかないます。ご賛同いただける企業の方、個人の方がいらっしゃいましたら今後のイベントへのご協力をお願いします。
ペアを組んで1日に5から6セッション行います。セッション毎に書いたコードを消します。各セッションでペアを入れ替えます。参加者は使いたいプログラミング言語の環境(テストフレームワークを含む)を各自用意して、ペアで共有します。
今回のイベントではオブジェクト指向設計を重視する方向だったので、そのあたり自分自身まだまだトレーニングが必要と感じました。
でも、セッションを重ねるたびに、とても楽しい、面白いという感想が多く聞こえて、松山で3度目の開催になりますがとても充実した良いイベントになったと思います。参加されたみなさんのおかげです。
あと、時差の関係でイベント終了後になりましたが、スペイン(Valencia)の会場とHangoutで繋いで無事バトンを渡すことができました。
今後は、年1回のGDCRとは別に、もう少しカジュアルに CodeRetreat が開催できればと思っています。興味のある方はぜひご協力をお願いします。
コードリトリート開催しました
Global Day of Coderetreat 2012
松山で記念すべきイベントを開催することができました。
2012年12月8日は “Global Day of Coderetreat 2012” ということで、Coderetreatが世界各地で同時開催されました。
国内では東京、大阪、松山、福岡の4ヶ所。
Coderetreatとはプログラマのスキルアップのためのイベントです。
午前・午後合わせて6つのセッションがあって、すべてペアプログラミングを行います。
また、セッションが終了したら書いたコードをすべて削除します。それとTDDでのプログラミングを基本とします。
オブジェクト指向が使えるものであれば言語はとくに制限はされません。
ファシリテータによって、セッションごとに制約が設定されます。セッションごとに毎回ペアを入れ替えます。
初めてのイベントで、ちゃんと開催できるかどうかいろいろ不安がありましたが、経験豊富なファシリテータ @haradakiro さんによってペアの進行状況をみながらきちっと形にしていただきました。
参加してみての感想。
テストファーストで、余計なコードを書かないということが体感できた。
ペアで作業すると確かに集中力が高まる。
とにかく小さく書くこと。コメントにたよらないということ。
コードをわかりやすく書くことで意思疎通ができるようになる。
最初のうちは、相手がやろうとしていることや自分がどうしたいのか、などの意思疎通が難しくあっというまにセッション終了となってしまいました。セッションを重ねるたびに慣れてはきたものの、完成させるには至らず。スキル不足を痛感させられるイベントでした。
基本的な言語のスキル、テストツールを使いこなすこと、そして小さく作ること。このトレーニングを習慣づけることでソフトウェアの品質は格段に向上しそうです。
今後、松山ローカルでもCoderetreatのイベントを継続して開催したいと思います。
皆様のご協力・ご参加をよろしくお願いします。
開催当日の会場/昼食/おやつスポンサー
- 株式会社アトラクタ
- 株式会社ウイットプラン
- 合同会社カルチャーワークス
ありがとうございました。
当日の各地の様子
http://coderetreat.org/photo
GDCR公式サイト
http://globalday.coderetreat.org/
GDCR12のアナウンス
http://coderetreat.org/profiles/blogs/announcing-global-day-of-coderetreat-2012
12月8日土曜日に松山で初開催!!Coderetreat in Matsuyama
12月8日(土曜日)にコードリトリートというイベントが松山で開催されます。
この日は “Global Day of Coderetreat” すなわち世界で同時開催というとても大きなイベントになっています。
↓↓↓ご参加の申し込みはコチラ↓↓↓
Global Day of Coderetreat in Matsuyama
まだ席に余裕がありますのでご参加可能な場合はお早めにどうぞ。
国内では、東京・大阪・松山・福岡の4会場がこのイベントに参加しています。(11月28日時点)
今回はファシリテーターの @haradakiro さんに松山に来ていただいての開催です。
イベントに向けての丁寧な記事が公開されていますので是非お読みください。
Coderetreat ファシリテーターガイド
なぜコードリトリートに参加するのか?
参加費は無料です。昼食やドリンクのサービスもあります。
普段のお仕事仲間、企業でのまとまってのご参加も歓迎です。
この機会に是非ご参加ください。
ご不明な点などございましたら @twikaz までお気軽にどうぞ。
皆様のご参加をお待ちしております。
Tag: Layout
Swiftメモ
めも
- Button.setTitle
- Timer.scheduledTimer
- AVAudioPlayer
- UserDefaults
- UINavigationController
画面遷移
- Viewのコードを書くSwiftファイルを追加(HogeViewController)
- Main.storyboard -> ViewController
- Editor -> Embed In -> Navigation Controller
- Navigation Controller が追加される(画面遷移をナビゲーションするためのクラス)
- ViewController に Navigation Item が追加される
- Object Library -> ViewController をエディタエリアに追加
- 新しい View の Identity inspector -> HogeViewController
- Date Picker を配置
設定画面
- DatePickerのバグ対応
- 1回目のValueChangedはイベントが発生しない。
- datePicker.setDate() すると良さそう。
Swift – UITest
Understanding UI Testing using iOS, Xcode 9 and Swift
Identity inspector
Accessibility -> identifier でIDをセットしてみる。
IDの問題ではなくてテストの順番で今どのViewを開いているかが問題?
でもなくて、
setUp() で 毎回、
XCUIApplication().launch()
しているのでSliderの値が変わっていると、Labelの内容も変化させているので、
初期値の Label ではなくて、Slider に合わせた値がView上に残っているため、
操作によって変化しない ID が必要、ということでした。
AdMobが表示されない – 縦(Portrait)の場合
レイアウトの定義で、
android:padding = “5dip”
のように余白を設定していると、
端末を縦にしたときにAdMob(広告バナー)が表示されない場合が
あります。
一旦、余白を0:ゼロにして、縦と横のレイアウトを確認しながら
余白を調整すると良さそうです。
参考)
Android XML Layout works in landscape but not in normal orientation
Tag: GDCR
GDCR 2018 in 松山を開催しました
イベントページ
Global Day of Coderetreat 2018 in Matsuyama
ツイートまとめ(togetter)
GDCR 2018 in Matsuyama
会場はこちら
The 3rd FLOOR
ご協力ありがとうございました。
ランチ、ドリンク、デザートは1Fのグレイズさんにお願いしました。
とても美味しかったです。ありがとうございました。
CodeRetreat は、1日かけてプログラミングのスキルアップを目指すイベントで基本的にプログラマーは無料で参加できます。会場やランチ、おやつなどにかかる費用は、スポンサーを募ってまかないます。ご賛同いただける企業の方、個人の方がいらっしゃいましたら今後のイベントへのご協力をお願いします。
ペアを組んで1日に5から6セッション行います。セッション毎に書いたコードを消します。各セッションでペアを入れ替えます。参加者は使いたいプログラミング言語の環境(テストフレームワークを含む)を各自用意して、ペアで共有します。
今回のイベントではオブジェクト指向設計を重視する方向だったので、そのあたり自分自身まだまだトレーニングが必要と感じました。
でも、セッションを重ねるたびに、とても楽しい、面白いという感想が多く聞こえて、松山で3度目の開催になりますがとても充実した良いイベントになったと思います。参加されたみなさんのおかげです。
あと、時差の関係でイベント終了後になりましたが、スペイン(Valencia)の会場とHangoutで繋いで無事バトンを渡すことができました。
今後は、年1回のGDCRとは別に、もう少しカジュアルに CodeRetreat が開催できればと思っています。興味のある方はぜひご協力をお願いします。
Tag: Flip3
JBL Flip 3 の アップデート – Bluetooth Speaker
ちょうど3年前に購入した BTスピーカー JBL Flip 3 ですが、バッテリーの持ちが悪くなった様子。
何か情報はないかと検索したところ、
「バッテリーのセルが複数あってそのバランスが取れていないのでは?」のような書き込みがあったので、充電せずに放置してみようかと。 (未確認です。m(..)m
ついでに、同じスレッドにファームウェア更新の情報があったので、公式サイトからダウンロードして更新しておきました。
[追記:8月22日]
下記の手順ですが、日本語のサポートにあるソフトウェアアップデートの方が簡単でした。<br> Android / iOS からアップデートできます。<br> <a href="http://jbl.harman-japan.co.jp/support/jblactivesp_update.php">JBL アクティブスピーカーのソフトウェアアップデート</a>
[追記:9月13日]
充電せずに放置すると、1メモリ分ほど復活することもありましたがそれ以上の改善はなく。
で、故障したものを放置して、新しいのを買い直すのもどうかと思って修理に出しました。
2日ほどで見積もりが届き、バッテリーの故障(交換)とのこと。
サービスセンターへの送料(元払い)と修理費用を合わせると、新しいモデル(Flip 4)を買うよりは少し安いくらいですが、
お気に入りのスピーカーなので、これでしばらく使ってみようと思います。
以下、PC(Windows)によるアップデート手順。
PC(Windows)によるアップデート
JBL Flip 3
ページ中ほどの Manuals & Downloads を開いて、
“Firmware USB update tool for JBL headsets and JBL portable speakers for Windows”
をクリックしてzipファイルをダウンロード。(UpdaterはWindows用のみ)
解凍して Harman Update.exe を実行。
AGREEMENTの画面が表示されるので、CONTINUE / I ACCEPT をクリック。
Tag: JBL
JBL Flip 3 の アップデート – Bluetooth Speaker
ちょうど3年前に購入した BTスピーカー JBL Flip 3 ですが、バッテリーの持ちが悪くなった様子。
何か情報はないかと検索したところ、
「バッテリーのセルが複数あってそのバランスが取れていないのでは?」のような書き込みがあったので、充電せずに放置してみようかと。 (未確認です。m(..)m
ついでに、同じスレッドにファームウェア更新の情報があったので、公式サイトからダウンロードして更新しておきました。
[追記:8月22日]
下記の手順ですが、日本語のサポートにあるソフトウェアアップデートの方が簡単でした。<br> Android / iOS からアップデートできます。<br> <a href="http://jbl.harman-japan.co.jp/support/jblactivesp_update.php">JBL アクティブスピーカーのソフトウェアアップデート</a>
[追記:9月13日]
充電せずに放置すると、1メモリ分ほど復活することもありましたがそれ以上の改善はなく。
で、故障したものを放置して、新しいのを買い直すのもどうかと思って修理に出しました。
2日ほどで見積もりが届き、バッテリーの故障(交換)とのこと。
サービスセンターへの送料(元払い)と修理費用を合わせると、新しいモデル(Flip 4)を買うよりは少し安いくらいですが、
お気に入りのスピーカーなので、これでしばらく使ってみようと思います。
以下、PC(Windows)によるアップデート手順。
PC(Windows)によるアップデート
JBL Flip 3
ページ中ほどの Manuals & Downloads を開いて、
“Firmware USB update tool for JBL headsets and JBL portable speakers for Windows”
をクリックしてzipファイルをダウンロード。(UpdaterはWindows用のみ)
解凍して Harman Update.exe を実行。
AGREEMENTの画面が表示されるので、CONTINUE / I ACCEPT をクリック。
Tag: Java
先日のTDDBCのおさらい – Android Studio
先日高松で開催されたTDDBCにPHPのTAとして参加しました。
事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。
ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。
確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。
Toggle auto-test のボタンを有効にしますが、その前に、
Preferences… -> Build, Execution, Deployment -> Compiler
を開いて「Make project automatically」にチェックを入れておきます。
Robocode 1.7.3.0
Robocode 1.7.3.0が5月にリリースされていました。
詳しくはRobocodeの公式サイト(英語)をご覧ください。
jqs.exe 常駐プログラムの停止 – Windowsのメンテナンス
タスクマネージャを起動して、プロセス名を見ていたところ
jqs.exe という項目があって調べてみました。
Java Quick Starter (JQS) とは ?
http://www.java.com/ja/download/help/quickstarter.xml
メモリーにJavaの一部をあらかじめ読み込んでおいて、
Javaアプリの起動を速くするようです。
特に必要がなければ、Javaのコントロールパネルから
停止することができます。
Robocode(ロボコード) 1.7.2.1リリース
Robocode 1.7.2.1がリリースされています。
http://robocode.sourceforge.net/ Newest version: 1.7.2.1 (Thu, 05 Aug 2010)
Robocode バージョンアップ
Robocodeがバージョンアップされていました。
http://robo-code.blogspot.com/2010/01/robocode-1716.html
画面上にメモリの使用量が表示されるようになっています。
その他、バグフィックスがいくつかあります。
更新情報をいくつかご紹介
最近更新のあったソフトウェアを3つほど紹介しておきます。
- Firefox3.5.5
http://mozilla.jp/firefox/3.5.5/releasenotes/ - Java Version 6 Update 17
http://www.java.com/ja/download/ - AVG9.0
http://www.avgjapan.com/
さらに、Javaのサイトを見ていると、旧バージョンの削除に関する記事が
ありました。
http://www.java.com/ja/download/faq/remove_olderversions.xml
「コントロールパネル」->「プログラムの追加と削除」
で削除できない場合は、「Windows Installer CleanUp ユーティリティ」
を使うと良いそうです。
http://www.java.com/ja/download/help/uninstall_java.xml
「Windows Installer CleanUp ユーティリティ」の説明およびダウンロード
【追記】2012年3月3日
※Office2007での不具合の問題により削除されたようです。
http://en.wikipedia.org/wiki/Windows_Installer_CleanUp_Utility
その代わりに「診断ツール Fix it」が提供されています。
http://support.microsoft.com/mats/Program_Install_and_Uninstall/
Robocodeの新しいロボット
Robocodeの新しいバージョンが7月にリリースされていました。
詳しくは、オフィシャルサイト(英語)をご覧ください。
昨年(2008年)、高校生や専門学校生を対象に、プログラミングの
教材として利用してみたところ、思った以上に良い反応がありました。
Javaのプログラミングやオブジェクト指向を学ぶための環境が
比較的簡単に作れるので、とても便利です。
さて、今回のバージョン(1.7.1.3)には、RateControlRobotという新たな
ロボットタイプが追加されています。AdvancedRobotを継承したクラスで、
さらにリアルな動きをシミュレーションできるようです。
サンプルロボットの中に、VelociRobotという実装例があります。
Tag: Junit
先日のTDDBCのおさらい – Android Studio
先日高松で開催されたTDDBCにPHPのTAとして参加しました。
事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。
ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。
確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。
Toggle auto-test のボタンを有効にしますが、その前に、
Preferences… -> Build, Execution, Deployment -> Compiler
を開いて「Make project automatically」にチェックを入れておきます。
Mockito でテストしようとして java.lang.NoClassDefFoundError になる場合 – Android
先月JUnit勉強会を開催しまして、
JUnit勉強会 in 松山 – “REVIVAL” #season1
その時に仕掛ったモックをあらためて使おうとしたところ、
“java.lang.NoClassDefFoundError”
となって先に進めない状況が続いていました。
開発環境は、Googleが提供しているADT-Bundle版です。
結局、ビルドパスの設定でMockitoをライブラリに追加したのが良くなかったようです。
例えば、
- テスト対象: TipsCalendar
- テストプロジェクト: TipsCalendarTest
の場合。
テスト対象プロジェクトが指定されていること。
ターゲットのAPIとその依存関係が指定されていること。
※ここに手作業でmockito-all-1.9.5.jarを追加するとタイトルのエラーになりました。
ビルドパスを編集するのではなくて、テストプロジェクトに libs フォルダを作成してその中に、
- mockito-all-1.9.5.jar
- dexmaker-1.0.jar
- dexmaker-mockito-1.0.jar
これらのファイルをコピーすればOKでした。
JUnit勉強会を開催しました。
3月12日の夕方からJUnitの勉強会を開催しました。
イベントの案内ページはこちら。
「JUnit勉強会 in 松山 – “REVIVAL” #season1」
教材は、”JUnit” や “Tutorial” といったキーワードで検索したネット上の記事と
WEB+DB PRESS Vol.69, そして「JUnit実践入門」を辞書的に(?)使いました。
セッション1
Eclipse, JDKなどは各自インストール済みだったのでプロジェクト作成から開始。
JUnitライブラリの組み込み方や、テストクラスの追加の仕方などうっかりミスがあったり。それとAssertThatですが、参考にしたTutorial記事のimportの仕方に引きずられていたようで、勉強会のあとでimportの記述の仕方を見直したところ問題なく利用できました。
参考
The Hamcrest Tutorial
JUnitMatchers(JUnit API)
セッション2
ParameterizedTestやTemporary Folder、@Ruleなど。
何となくキーワードをながめるだけではよくわからなかったりしますが、仕事のどういう場面で使うとか解説してくれる方がいてとても勉強になりました。逆に、あまり使っていないこともわかったりして、今後の仕事で使ってみたいなど刺激にもなったようです。
セッション3
EasyMockをテーマに議論しました。
そして全体を通しての振り返り。今回はTutorialに沿って進めてみましたが、次回は実際に課題を決めてテスト->コーディングを繰り返してみたいと思います。
Androidのテストプロジェクト – JUnit test
Androidのテストプロジェクトを試していたところコンストラクタのところで警告が出ました。
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityTest() {
super("package.name.hogehoge", MainActivity.class);
// TODO Auto-generated constructor stub
}
Referenceを調べてみたところ、パッケージ名を指定するコンストラクタがdeprecatedになっていました。
ActivityInstrumentationTestCase2
ということで、下記のように修正。
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityTest() {
super(MainActivity.class);
// TODO Auto-generated constructor stub
}
以上です。
Tag: AWSCloud9Administrator
Cloud9でユーザーを招待 – AWS
メモ書き程度ですが AWS Cloud9 の環境にIAMユーザーを招待する手順。
共有用のIAMグループを作成
グループ名: c9group(任意)
ポリシー名: AWSCloud9User
共有用のIAMユーザーを作成
ユーザー名: c9user(任意)
ユーザーをグループに追加: c9group(任意)
Cloud9管理用のIAMユーザーでログイン
ユーザー名: c9admin(任意)
所有ポリシー: AWSCloud9Administrator
cloud9のIDEを開いて、右上の Share をクリック。
AWS Cloud9 に関するよくある質問 – 環境の共有
Invite Members に作成したIAMユーザー名を入力して Invite をクリックして進める。
招待ができたら、共有用のIAMユーザーでログイン。
cloud9のサービスを開いて Shared with you を選択。
Tag: AWSCloud9User
Cloud9でユーザーを招待 – AWS
メモ書き程度ですが AWS Cloud9 の環境にIAMユーザーを招待する手順。
共有用のIAMグループを作成
グループ名: c9group(任意)
ポリシー名: AWSCloud9User
共有用のIAMユーザーを作成
ユーザー名: c9user(任意)
ユーザーをグループに追加: c9group(任意)
Cloud9管理用のIAMユーザーでログイン
ユーザー名: c9admin(任意)
所有ポリシー: AWSCloud9Administrator
cloud9のIDEを開いて、右上の Share をクリック。
AWS Cloud9 に関するよくある質問 – 環境の共有
Invite Members に作成したIAMユーザー名を入力して Invite をクリックして進める。
招待ができたら、共有用のIAMユーザーでログイン。
cloud9のサービスを開いて Shared with you を選択。
Tag: Cloud9
Cloud9でユーザーを招待 – AWS
メモ書き程度ですが AWS Cloud9 の環境にIAMユーザーを招待する手順。
共有用のIAMグループを作成
グループ名: c9group(任意)
ポリシー名: AWSCloud9User
共有用のIAMユーザーを作成
ユーザー名: c9user(任意)
ユーザーをグループに追加: c9group(任意)
Cloud9管理用のIAMユーザーでログイン
ユーザー名: c9admin(任意)
所有ポリシー: AWSCloud9Administrator
cloud9のIDEを開いて、右上の Share をクリック。
AWS Cloud9 に関するよくある質問 – 環境の共有
Invite Members に作成したIAMユーザー名を入力して Invite をクリックして進める。
招待ができたら、共有用のIAMユーザーでログイン。
cloud9のサービスを開いて Shared with you を選択。
PyEhimeもくもく勉強会を開催しました
イベントページはこちら
今回のみなさんの課題は、
- Djangoチュートリアル
- 機械学習 – オンライン講座
- 環境構築 – VirtualBox
このような感じでした。
私自身は、前回(昨年12月)のもくもく会の際に、
環境構築はそれぞれ勉強なり準備するとして、成果物を簡単に共有できた方が良い。
のような議論があって、そのときにあがった Cloud9 を使ってDjangoチュートリアルを進めました。
事前に Cloud9 でDjangoプロジェクトを作ってある程度進めていたので、
はじめての Django アプリ作成、その 6
はじめての Django アプリ作成、その 7
このあたりを中心に試してみました。
テンプレートのカスタマイズや管理サイトの機能追加など、実際にコードを書いてブラウザで確認することでDjangoの雰囲気がつかめて来た気がします。
さて、次回ですが、まだ具体的な時期とかは決めていませんが、流行の機械学習を一緒に学んでみようと思っています。
06.12追記
もくもく会の後半で少し議論させていただいた教育関係のクラウド導入の件で、まとまった資料が公開されていたので参考まで。↓
総務省 – 「教育ICTの新しいスタイル クラウド導入ガイドブック2016」の公表
PyEhimeもくもく勉強会
前回の開催から少し間が空きましたが、2回目のもくもく勉強会を開催しました。
都合により、今回も急遽の開催となってしまいました。十分な告知ができずすみません。
次回は、会場の手配を含めてもう少し余裕を持って準備しようと思いますので、ご理解・ご協力をお願いします。
前回はPyEhimeの初めての自主開催ということもあって、とりあえず集まっての意見交換程度でしたが、今回は少し足並みを揃えて、cloud9でdjangoを動かしてみるというところまではできました。
ちなみに、私は今回の勉強会のために、事前にvagrantでローカルの開発環境を用意して、準備万端のつもりだったのですが、現地で起動してみるとホストOSからアクセスできない状態。あとで調べて、CentOS(vagrant box)のネットワークインターフェースの問題ということがわかりました。この辺りも、まだまだ経験不足です。
それと、当日、私が風邪気味で頭がぼんやりしていてあまり手を動かすことができませんでした。いろいろ失礼しました。
さて、このような感じで、cloud9というクラウド上の開発環境を一つのノウハウとして共有することができましたので、このあたりをベースにして勉強会を継続できればと思っています。
ただし、具体的な目的や目標がないと、どうしても時間を無駄にしてしまいますので、何か一冊、本を選ぶなどして効率よく学ぶことも考えてみます。
まだまだぎこちないですが、まったりとやっていますので、pythonプログラミングにご興味のある方はお気軽にご参加ください。
適宜、ハッシュタグ #pyehime でおしらせします。
それとPyCon JP参加者交流用のSlackがあります。そちらのehimeチャネルで日常のやり取りをしていますので、よかったらどうぞ。
Tag: Share
Cloud9でユーザーを招待 – AWS
メモ書き程度ですが AWS Cloud9 の環境にIAMユーザーを招待する手順。
共有用のIAMグループを作成
グループ名: c9group(任意)
ポリシー名: AWSCloud9User
共有用のIAMユーザーを作成
ユーザー名: c9user(任意)
ユーザーをグループに追加: c9group(任意)
Cloud9管理用のIAMユーザーでログイン
ユーザー名: c9admin(任意)
所有ポリシー: AWSCloud9Administrator
cloud9のIDEを開いて、右上の Share をクリック。
AWS Cloud9 に関するよくある質問 – 環境の共有
Invite Members に作成したIAMユーザー名を入力して Invite をクリックして進める。
招待ができたら、共有用のIAMユーザーでログイン。
cloud9のサービスを開いて Shared with you を選択。
スマートフォンのシェア on 2012.05.24 by IDC
プレスリリースの資料がシェアできるようなので試してみました。
ちなみに、日本語の記事はこちら。
世界スマホ市場シェア、Androidが59%、iPhoneは23%—IDC調査
Facebookに画像を送る – Android
先日、Androidアプリを作ったのですが、
画像をシェアする部分が間違っていました。
参考にした記事はこちら。↓
http://stackoverflow.com/questions/3553017/android-share-via-dialog/3553102#3553102
※Uri.parse()のパラメータに “file://” が足りませんでした…orz
Tag: Backup
Backup & Sync のエラー通知を止める – macOS
Googleの Backup & Sync を有効にしていると、
“Can’t backup files” のような通知がわりと頻繁にデスクトップに表示されることがあって、
通知の止め方がわからず Backup & Sync 自体を止めていたのですが、
それだと不便なこともあってあらためて調べてみました。
結論としては Backup & Sync の設定でオプションを外せば良さそうです。
参考記事はこのあたり。
[How do I stop Backup and Sync notifications on my PC?][2]
[How to Fix: Disable Google Drive / Backup and Sync Popups when Inserting USB, DVD, or Smartphone][3]
- ステータスメニューの Backup & Sync アイコンをクリックして右端のメニューを開く。
- Preferences…を開く。
- ウインドウの一番下にある USB Devices & SD Cards をクリック
すると、次の設定項目が表示されるので、不要な項目のチェックを外します。
[][4]
HP製デスクトップPCのSSD換装 – Windows7
対象はHP dc5700sf
結構古いPCですが、SSDに入れ替えればまだ少しは使えるかと思い、換装してみました。メモ書き程度ですが残しておきます。
まず、USB3がないのでIFボードを購入して拡張スロットで対応。HDDのクローンを作成するのにUSB2では時間がかかりすぎると思いまして。
クローンのターゲットはCrucial BX100。
このSSDをケースにセットしてUSBケーブルでPCに接続。
クローンの作成はEaseUS Todo Backup Free
で、Cドライブ(HDD)のクローン先をSSDにセットして実行。
約1時間ほどでクローン作成終了。
さて、HDDをSSDに差し替えて起動してみると、
“Non system disk …”
という黒い画面で先へ進めず。
SSDのパーティションを”アクティブ”にしていませんでした。
ということで、HDDを元に戻してSSDをUSBで接続して、
「コンピュータの管理」->「ディスクの管理」
を開いて、SSDのパーティションをマウス右クリック。
「パーティションをアクティブとしてマーク」
再度、HDDをSSDに差し替えて起動すると、今度は、
“BOOTMGR is missing”
で進めず。
“BOOTMGR is missing「BOOTMGR」とは何か”
こちらの記事を参考にさせていただきました。
またまたSSDをHDDに戻して、
「システム修復ディスク」
を作成(CD-ROM)。
このCD-ROMから起動して、
「システム回復オプション」->「スタートアップ修復」
やっとのことでSSDから無事起動することができました。
Tag: Boot
Backup & Sync のエラー通知を止める – macOS
Googleの Backup & Sync を有効にしていると、
“Can’t backup files” のような通知がわりと頻繁にデスクトップに表示されることがあって、
通知の止め方がわからず Backup & Sync 自体を止めていたのですが、
それだと不便なこともあってあらためて調べてみました。
結論としては Backup & Sync の設定でオプションを外せば良さそうです。
参考記事はこのあたり。
[How do I stop Backup and Sync notifications on my PC?][2]
[How to Fix: Disable Google Drive / Backup and Sync Popups when Inserting USB, DVD, or Smartphone][3]
- ステータスメニューの Backup & Sync アイコンをクリックして右端のメニューを開く。
- Preferences…を開く。
- ウインドウの一番下にある USB Devices & SD Cards をクリック
すると、次の設定項目が表示されるので、不要な項目のチェックを外します。
[][4]
Zenbook復旧!! – ASUS UX32VD
まずは結論。
内蔵のiSSD(SanDisk)が故障したようです。
PCはASUSのZenbook(UX32VD)
復旧に際して参考になったのはこちらの記事のコメント。感謝です。
http://cookuop.co.uk/asus-ux32a-not-detecting-ssd/
症状は一月半ほど前から。
Windowsの起動に4分ほどかかるようになってしまいました。
場合によってはHDDのLEDが点灯して黒い画面にASUSのロゴのまま起動しないことも。
最初、HDDの故障?とも思いましたがチェックディスクを試したところ問題なし。
不要なアプリを削除してみたり、PCのリフレッシュをしてみたり。
すべて削除してリカバリ領域から再インストールも状況は変わらず。
念のためHDDを交換、と考えて、どうせならとSSDで、
とクローンを作成したところ、
起動はするもののやはり状況は変わらず。
残りはオンボードのiSSDあたりか、
と調べていたところ、上の記事が見つかりました。
まず、上記サイトのコメントを参考にインテル® ラピッド・ストレージ・テクノロジーを削除。
すると、元通りにそれほど時間がかからず起動。
これで治ったかと思ったのですが、
再起動してみると、またもや起動に4分ほどかかる状態。
次に「コンピュータの管理」から「ディスクの管理」を開いてみると、
ディスク1にSanDiskが見えていてフォーマットされていない様子。
このSanDiskをフォーマットしようとしたら、
「要求されたセクタが見つかりません。」
という表示。
このiSSDの故障が原因だったようです。
ということでディスク1のプロパティからiSSDを「無効」にしたところ復旧。
iSSDは使えない状態ですが、HDDをSSDに換えたことで
電源投入から6秒ほどでWindows8.1が起動するようになりました。
Tag: Sync
Backup & Sync のエラー通知を止める – macOS
Googleの Backup & Sync を有効にしていると、
“Can’t backup files” のような通知がわりと頻繁にデスクトップに表示されることがあって、
通知の止め方がわからず Backup & Sync 自体を止めていたのですが、
それだと不便なこともあってあらためて調べてみました。
結論としては Backup & Sync の設定でオプションを外せば良さそうです。
参考記事はこのあたり。
[How do I stop Backup and Sync notifications on my PC?][2]
[How to Fix: Disable Google Drive / Backup and Sync Popups when Inserting USB, DVD, or Smartphone][3]
- ステータスメニューの Backup & Sync アイコンをクリックして右端のメニューを開く。
- Preferences…を開く。
- ウインドウの一番下にある USB Devices & SD Cards をクリック
すると、次の設定項目が表示されるので、不要な項目のチェックを外します。
[][4]
Tag: 1709
Windows Update の再起動に失敗する – Windows 10
2018-04 x64 ベースシステム用 Windows 10 Version 1709 の累積更新プログラム(KB4093112)
この更新を適用しようとして再起動を実行するのですが、数分後にエラーが発生して再起動できない状態。
検索してみると、
Windows Update トラブルシューティング ツール
このようなツールがありました。
早速「Windows 10 用トラブルシューティング ツールのダウンロード」をクリックして実行。
これで再起動できました。
「1709 の累積更新プログラム(KB4093112)」がスキップされた様子です。
あらためて Windows Update を確認すると、
Windows 10、バージョン 1803 の昨日更新プログラム
のダウンロードが進行中。
これで大丈夫そうです。
Tag: KB4093112
Windows Update の再起動に失敗する – Windows 10
2018-04 x64 ベースシステム用 Windows 10 Version 1709 の累積更新プログラム(KB4093112)
この更新を適用しようとして再起動を実行するのですが、数分後にエラーが発生して再起動できない状態。
検索してみると、
Windows Update トラブルシューティング ツール
このようなツールがありました。
早速「Windows 10 用トラブルシューティング ツールのダウンロード」をクリックして実行。
これで再起動できました。
「1709 の累積更新プログラム(KB4093112)」がスキップされた様子です。
あらためて Windows Update を確認すると、
Windows 10、バージョン 1803 の昨日更新プログラム
のダウンロードが進行中。
これで大丈夫そうです。
Tag: Update
Windows Update の再起動に失敗する – Windows 10
2018-04 x64 ベースシステム用 Windows 10 Version 1709 の累積更新プログラム(KB4093112)
この更新を適用しようとして再起動を実行するのですが、数分後にエラーが発生して再起動できない状態。
検索してみると、
Windows Update トラブルシューティング ツール
このようなツールがありました。
早速「Windows 10 用トラブルシューティング ツールのダウンロード」をクリックして実行。
これで再起動できました。
「1709 の累積更新プログラム(KB4093112)」がスキップされた様子です。
あらためて Windows Update を確認すると、
Windows 10、バージョン 1803 の昨日更新プログラム
のダウンロードが進行中。
これで大丈夫そうです。
Windows Update でエラー – KB4054517
昨年からmacOSをメインで使っていてWindowsPCを使う機会が少なくなっているのですが、たまにはメンテナンス(アップデート)をしておかないとと思いまして起動してみたところ、Windows Update(KB4054517) でエラーが発生。
再起動すると、適用に失敗して元の構成に戻すようなメッセージで、この繰り返しになってしまいます。
シャットダウンして、しばらく様子を見ることに。
で、先ほどあらためて調べて見ると、次の記事が見つかりました。
【0x800705b4】Windows10 KB4054517 インストールできない【Ver1709】
この回答にしたがって、
(1)Windows Update のサービスを一時的に停止し、Windows Update の情報をクリアにする
(2)更新プログラムを手動でインストールする
としたところ、無事にアップデートができました。
(2)の手順で再起動が求められるので、再起動したところ
Windows Update のサービスがすでに起動されていました。
Windows 8.1の Wndows Update でエラー – KB2919355
最近リリースされたWindows Updateを実施したところエラーが発生。
ファイルサイズが大きいようで、Windows Updateでまとめて更新するのとは別に、個別にダウンロードして実行できるようにダウンロード用のページも用意されています。
ですが、この記事に沿ってKB2919355をインストールしてもやはりエラーになってしまいました。
さらに記事を検索して、
[WINDOWS UPDATE] WINDOWS 8.1 UPDATE – KB2919355
こちらの手順にそって実行したところ無事アップデートできました。感謝。
どうやらMSが示しているインストールの順番があてにならないようで。
記事にあるクリーンブートは必要に応じて実施してください。
※私の場合はクリーンブートはしなくてもOKでした。
[Windowsキー] + [X]
メニューのなかから、
コマンドプロンプト(管理者)を選択。
確認ダイアログが表示されるので「はい」を選択。
手順1)
DISM.exe /Online /Cleanup-image /Scanhealth
上記コマンドをコピーして、コマンドプロンプトのウインドウ内で
マウス右クリックで貼り付け。Enterキーで実行。
完了するまでしばらく待ちます。
手順2)
DISM.exe /Online /Cleanup-image /Restorehealth
同様にこのコマンドを実行。
手順3)
dism /online /remove-package /packagename:Package_for_KB2919355~31bf3856ad364e35~amd64~~6.3.1.14
同様にこのコマンドを実行。
※私の場合は対象ファイルが存在しなかったようでエラーになりました。そのまま継続。
手順4)
dism /online /cleanup-image /startcomponentcleanup
同様にこのコマンドを実行。
手順5)
ダウンロード用のページからアップデート用のファイルをダウンロードしておきます。
私の場合は他の対処法をいろいろ試しているうちに、
KB2959977
を先にインストールしてしまったので、
(1) Windows8.1-KB2932046
(2) Windows8.1-KB2934018
(3) Windows8.1-KB2937592
(4) Windows8.1-KB2938439
(5) Windows8.1-KB2919355
という順番になりましたが、これで問題なくアップデートが完了しました。
Mobile Joomla をインストール
以前、顧客サポート用のウェブサイトを制作する際にいくつかのCMSを試しました。その時にインストールした Joomla をそのままにしていたのですが、今朝、Mobile-Joomlaの更新情報が届いたので試してみました。
まず、Joomlaのサイトを開いてみるとJoomla本体のバージョンが2.5にアップデートされています。インストール済みのバージョンは1.7だったので管理メニューから本体の更新を行いました。
更新時の注意点など詳細はこちら。
http://docs.joomla.org/Upgrading_from_an_existing_version
【更新方法】
http://docs.joomla.jp/Upgrading_from_an_existing_version/ja
1.7からのアップデートなので管理画面から簡単な操作でアップデートできました。
「エクステンション管理」ページを開いて「アップデート」タブをクリック。そして「更新を検索」をクリックすると一覧に本体の新しいバージョンが表示されますので、それを選んで「更新」ボタンをクリックするだけです。
実行後の「エクステンション管理」ページ
次にMobile-Joomlaのインストール。
Mobile-JoomlaのウェブサイトからMobile-Joomlaをダウンロードします。
現在のバージョン:Mobile-Joomla.1.0.1.tar.gz
そして「エクステンション管理」ページを開きます。
今度は「インストール」タブを選んでダウンロードしたファイルを選択して
「アップロード&インストール」ボタンをクリック。
これでインストール完了です。
試しにスマホでJoomlaのトップページを開いてみると、
このようにスマホ向けに変換されたページが表示されればOKです。
Mobile-Joomlaの設定は「コンポーネント」メニューの中にあります。
仮想環境メンテナンス – ESXi 4.1 -> 4.1 Update1
ESXi 4.1 Update1 がリリースされています。
http://www.vmware.com/jp/products/vsphere-hypervisor/
http://www.vmware.com/go/JP-get-esxi
詳細(リリースノート)はこちら
http://www.vmware.com/jp/support/vsphere4/doc/vsp_esxi41_u1_rel_notes.html
前回の 4.0 -> 4.1 と同じ手順で
更新ができました。
PLESKが起動しない – CentOS
先日、VPSサーバの管理画面からコンテナソフトウェアの更新を
実施したあたりから、PLESK9.3のコントロールパネルが表示されなく
なりました。
ネットで調べてみると、どうやらOpenSSLの更新によって、
PLESKが壊れるらしい。
詳細な記事(英語)
http://www.keithdmitchell.com/?p=349
ということで、Parallelsからパッチがリリースされています。
http://kb.parallels.com/en/8338
ちなみに、問題となるOpenSSLは、
openssl-devel-0.9.8e-12.el5_4.6
openssl-0.9.8e-12.el5_4.6
openssl-perl-0.9.8e-12.el5_4.6
で、これらを前のバージョンにダウングレードする方法も
ありますが、その場合は、依存関係により、mod_sslおよび
httpdも合わせて前のバージョンにする必要があります。
Tag: 再起動できない
Windows Update の再起動に失敗する – Windows 10
2018-04 x64 ベースシステム用 Windows 10 Version 1709 の累積更新プログラム(KB4093112)
この更新を適用しようとして再起動を実行するのですが、数分後にエラーが発生して再起動できない状態。
検索してみると、
Windows Update トラブルシューティング ツール
このようなツールがありました。
早速「Windows 10 用トラブルシューティング ツールのダウンロード」をクリックして実行。
これで再起動できました。
「1709 の累積更新プログラム(KB4093112)」がスキップされた様子です。
あらためて Windows Update を確認すると、
Windows 10、バージョン 1803 の昨日更新プログラム
のダウンロードが進行中。
これで大丈夫そうです。
Tag: Unittest
Visual Studio Codeを使ってみる – macOS
Get Started Tutorialにそって進めてみる
Python環境の確認
Python 3.0 Release
パッケージをインストール
$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
$ python3 --version
Python 3.6.5
Visual Studio Code インストール
python3 -m venv
$ cd Hello
$ python3 -m venv venv
$ cat << EOF >> ~/.bash_profile
# Add Visual Studio Code (code)
export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
EOF
VSCodeを起動
$ code .

Configure Python Environment
Tag: Android Studio
Android Things ハンズオン勉強会に参加しました – gdgshikoku
GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
イベントページはこちら
Android Things ハンズオン勉強会
開催中の様子はこんな感じです。
Android Things ハンズオンやってます! https://t.co/2xfHo5i4eV #gdgshikoku pic.twitter.com/P9Nd7G4n2h
— GDG Shikoku (@GDGShikoku) January 27, 2018
黒い箱(Android Things Kit)の中身
https://twitter.com/kazweda/status/957107056665812993
持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
adbコマンドが使えるようにPATH(環境変数)を追加
講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。
まずはGPIO(汎用入出力)のリストを取得。
次に、ボタンを押して、その状態を確認。
さらに、ボタンの状態に応じてLEDを点灯・消灯。
ここから各自でやってみましょう、ということで、
Interact with Peripherals
このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。
途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。
Tag: Gdg
Android Things ハンズオン勉強会に参加しました – gdgshikoku
GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
イベントページはこちら
Android Things ハンズオン勉強会
開催中の様子はこんな感じです。
Android Things ハンズオンやってます! https://t.co/2xfHo5i4eV #gdgshikoku pic.twitter.com/P9Nd7G4n2h
— GDG Shikoku (@GDGShikoku) January 27, 2018
黒い箱(Android Things Kit)の中身
https://twitter.com/kazweda/status/957107056665812993
持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
adbコマンドが使えるようにPATH(環境変数)を追加
講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。
まずはGPIO(汎用入出力)のリストを取得。
次に、ボタンを押して、その状態を確認。
さらに、ボタンの状態に応じてLEDを点灯・消灯。
ここから各自でやってみましょう、ということで、
Interact with Peripherals
このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。
途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。
Firebase勉強会に参加しました
5月20日土曜日にFirebase勉強会に参加しました。
最初に参加者みなさんの自己紹介があって、興味分野とか近況などを軽く共有して本題に。
どのプラットフォームで勉強するかを選ぶということで、ウェブを希望。
ちなみにFirebaseの概要はこちら。
Firebaseドキュメント
具体的にはこちらの記事を参考にさせていただきました。感謝。
Firebaseの始め方 – Qiita
開発環境の準備としては、
Firebase CLI リファレンス
Firebase CLIを使うために、npm コマンドがインストールされていなければ、
Node.js をインストール。そして、
npm install -g firebase-tools
で Firebase CLI をインストールします。
あとは firebaseのコンソール を開いて、記事に沿って進めていきます。
ということで、言われるままにソースを編集して、コマンドを叩いているうちに簡単なチャットサービスができました。しかも、ローカルの動作確認から実際のウェブで確認(deploy)できるところまで。
本格的にサービスを構築して運用ということを考えると、色々とやるべきことがあるのかもしれませんが、例えば、ちょっとした要望が上がって、「こんな感じでいかがでしょう」とサクッとプロトタイプ的なものを作って実際に試してみる場合など、非常に効率よく進めることができそうです。
Tag: IoT
Android Things ハンズオン勉強会に参加しました – gdgshikoku
GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
イベントページはこちら
Android Things ハンズオン勉強会
開催中の様子はこんな感じです。
Android Things ハンズオンやってます! https://t.co/2xfHo5i4eV #gdgshikoku pic.twitter.com/P9Nd7G4n2h
— GDG Shikoku (@GDGShikoku) January 27, 2018
黒い箱(Android Things Kit)の中身
https://twitter.com/kazweda/status/957107056665812993
持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
adbコマンドが使えるようにPATH(環境変数)を追加
講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。
まずはGPIO(汎用入出力)のリストを取得。
次に、ボタンを押して、その状態を確認。
さらに、ボタンの状態に応じてLEDを点灯・消灯。
ここから各自でやってみましょう、ということで、
Interact with Peripherals
このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。
途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。
Tag: Shikoku
Android Things ハンズオン勉強会に参加しました – gdgshikoku
GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
イベントページはこちら
Android Things ハンズオン勉強会
開催中の様子はこんな感じです。
Android Things ハンズオンやってます! https://t.co/2xfHo5i4eV #gdgshikoku pic.twitter.com/P9Nd7G4n2h
— GDG Shikoku (@GDGShikoku) January 27, 2018
黒い箱(Android Things Kit)の中身
https://twitter.com/kazweda/status/957107056665812993
持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
adbコマンドが使えるようにPATH(環境変数)を追加
講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。
まずはGPIO(汎用入出力)のリストを取得。
次に、ボタンを押して、その状態を確認。
さらに、ボタンの状態に応じてLEDを点灯・消灯。
ここから各自でやってみましょう、ということで、
Interact with Peripherals
このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。
途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。
Firebase勉強会に参加しました
5月20日土曜日にFirebase勉強会に参加しました。
最初に参加者みなさんの自己紹介があって、興味分野とか近況などを軽く共有して本題に。
どのプラットフォームで勉強するかを選ぶということで、ウェブを希望。
ちなみにFirebaseの概要はこちら。
Firebaseドキュメント
具体的にはこちらの記事を参考にさせていただきました。感謝。
Firebaseの始め方 – Qiita
開発環境の準備としては、
Firebase CLI リファレンス
Firebase CLIを使うために、npm コマンドがインストールされていなければ、
Node.js をインストール。そして、
npm install -g firebase-tools
で Firebase CLI をインストールします。
あとは firebaseのコンソール を開いて、記事に沿って進めていきます。
ということで、言われるままにソースを編集して、コマンドを叩いているうちに簡単なチャットサービスができました。しかも、ローカルの動作確認から実際のウェブで確認(deploy)できるところまで。
本格的にサービスを構築して運用ということを考えると、色々とやるべきことがあるのかもしれませんが、例えば、ちょっとした要望が上がって、「こんな感じでいかがでしょう」とサクッとプロトタイプ的なものを作って実際に試してみる場合など、非常に効率よく進めることができそうです。
Tag: Things
Android Things ハンズオン勉強会に参加しました – gdgshikoku
GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
イベントページはこちら
Android Things ハンズオン勉強会
開催中の様子はこんな感じです。
Android Things ハンズオンやってます! https://t.co/2xfHo5i4eV #gdgshikoku pic.twitter.com/P9Nd7G4n2h
— GDG Shikoku (@GDGShikoku) January 27, 2018
黒い箱(Android Things Kit)の中身
https://twitter.com/kazweda/status/957107056665812993
持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
adbコマンドが使えるようにPATH(環境変数)を追加
講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。
まずはGPIO(汎用入出力)のリストを取得。
次に、ボタンを押して、その状態を確認。
さらに、ボタンの状態に応じてLEDを点灯・消灯。
ここから各自でやってみましょう、ということで、
Interact with Peripherals
このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。
途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。
Tag: Gps
HUAWEI nova lite のGPSについて – バッテリー最適化
最初に結論ですが、
アプリ個別の設定でバッテリーの最適化を無視することで
GPSが取れなくなるのを回避できました。
ただし、当然のことながら電池の消耗が大きくなります。
具体的な状況(経緯)は次の通り。
昨年末に HUAWEI nova lite に機種変更して使っているのですが、
PokemonGOを使っているとGPSがかなりの頻度で落ちます。
アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
現在位置から数キロメートル離れた場所に飛ばされたりします。
昨年末にHUAWEIのサポートに問い合わせたところ、
「セーフモードで起動してGPSが機能するか確認してください。」
とのこと。
セーフモードでGoogle Mapsを数10分間試してみましたが、
GPSは問題なく機能しています。
ハードウェア自体は問題なさそうです。
で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
一旦GPSをオフにして入れ直すと復帰するので、
そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、
HUAWEI P9のGPS問題に関する書き込みを見つけました。
Huawei P9 Questions & Answers -> GPS problem
problem due to battery optimisation
設定の手順
Tag: Lite
HUAWEI nova lite のGPSについて – バッテリー最適化
最初に結論ですが、
アプリ個別の設定でバッテリーの最適化を無視することで
GPSが取れなくなるのを回避できました。
ただし、当然のことながら電池の消耗が大きくなります。
具体的な状況(経緯)は次の通り。
昨年末に HUAWEI nova lite に機種変更して使っているのですが、
PokemonGOを使っているとGPSがかなりの頻度で落ちます。
アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
現在位置から数キロメートル離れた場所に飛ばされたりします。
昨年末にHUAWEIのサポートに問い合わせたところ、
「セーフモードで起動してGPSが機能するか確認してください。」
とのこと。
セーフモードでGoogle Mapsを数10分間試してみましたが、
GPSは問題なく機能しています。
ハードウェア自体は問題なさそうです。
で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
一旦GPSをオフにして入れ直すと復帰するので、
そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、
HUAWEI P9のGPS問題に関する書き込みを見つけました。
Huawei P9 Questions & Answers -> GPS problem
problem due to battery optimisation
設定の手順
Tag: Nova
HUAWEI nova lite のGPSについて – バッテリー最適化
最初に結論ですが、
アプリ個別の設定でバッテリーの最適化を無視することで
GPSが取れなくなるのを回避できました。
ただし、当然のことながら電池の消耗が大きくなります。
具体的な状況(経緯)は次の通り。
昨年末に HUAWEI nova lite に機種変更して使っているのですが、
PokemonGOを使っているとGPSがかなりの頻度で落ちます。
アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
現在位置から数キロメートル離れた場所に飛ばされたりします。
昨年末にHUAWEIのサポートに問い合わせたところ、
「セーフモードで起動してGPSが機能するか確認してください。」
とのこと。
セーフモードでGoogle Mapsを数10分間試してみましたが、
GPSは問題なく機能しています。
ハードウェア自体は問題なさそうです。
で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
一旦GPSをオフにして入れ直すと復帰するので、
そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、
HUAWEI P9のGPS問題に関する書き込みを見つけました。
Huawei P9 Questions & Answers -> GPS problem
problem due to battery optimisation
設定の手順
Tag: Pokemon
HUAWEI nova lite のGPSについて – バッテリー最適化
最初に結論ですが、
アプリ個別の設定でバッテリーの最適化を無視することで
GPSが取れなくなるのを回避できました。
ただし、当然のことながら電池の消耗が大きくなります。
具体的な状況(経緯)は次の通り。
昨年末に HUAWEI nova lite に機種変更して使っているのですが、
PokemonGOを使っているとGPSがかなりの頻度で落ちます。
アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
現在位置から数キロメートル離れた場所に飛ばされたりします。
昨年末にHUAWEIのサポートに問い合わせたところ、
「セーフモードで起動してGPSが機能するか確認してください。」
とのこと。
セーフモードでGoogle Mapsを数10分間試してみましたが、
GPSは問題なく機能しています。
ハードウェア自体は問題なさそうです。
で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
一旦GPSをオフにして入れ直すと復帰するので、
そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、
HUAWEI P9のGPS問題に関する書き込みを見つけました。
Huawei P9 Questions & Answers -> GPS problem
problem due to battery optimisation
設定の手順
Tag: ソーシャルチェンジ
あけましておめでとうございます
あけましておめでとうございます。
本年もよろしくお願いします。
昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。
次回は1月10日開催予定です。
エクストリームプログラミング読書会 第6回
教材はこちら「エクストリームプログラミング」
ふと、あとがきを開いてみました。
目についたのが、
エクストリームプログラミング(XP)はソーシャルチェンジである。
…
成功には「優れた技術力と良好な人間関係が必要」
の部分。
これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。
それと次の部分。
あなた自身が自分の言葉を生み出しながら、利用すること
状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。
一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。
Tag: プラクティス
あけましておめでとうございます
あけましておめでとうございます。
本年もよろしくお願いします。
昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。
次回は1月10日開催予定です。
エクストリームプログラミング読書会 第6回
教材はこちら「エクストリームプログラミング」
ふと、あとがきを開いてみました。
目についたのが、
エクストリームプログラミング(XP)はソーシャルチェンジである。
…
成功には「優れた技術力と良好な人間関係が必要」
の部分。
これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。
それと次の部分。
あなた自身が自分の言葉を生み出しながら、利用すること
状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。
一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。
Tag: 人間関係
あけましておめでとうございます
あけましておめでとうございます。
本年もよろしくお願いします。
昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。
次回は1月10日開催予定です。
エクストリームプログラミング読書会 第6回
教材はこちら「エクストリームプログラミング」
ふと、あとがきを開いてみました。
目についたのが、
エクストリームプログラミング(XP)はソーシャルチェンジである。
…
成功には「優れた技術力と良好な人間関係が必要」
の部分。
これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。
それと次の部分。
あなた自身が自分の言葉を生み出しながら、利用すること
状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。
一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。
Tag: 技術力
あけましておめでとうございます
あけましておめでとうございます。
本年もよろしくお願いします。
昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。
次回は1月10日開催予定です。
エクストリームプログラミング読書会 第6回
教材はこちら「エクストリームプログラミング」
ふと、あとがきを開いてみました。
目についたのが、
エクストリームプログラミング(XP)はソーシャルチェンジである。
…
成功には「優れた技術力と良好な人間関係が必要」
の部分。
これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。
それと次の部分。
あなた自身が自分の言葉を生み出しながら、利用すること
状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。
一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。
Tag: KB4054517
Windows Update でエラー – KB4054517
昨年からmacOSをメインで使っていてWindowsPCを使う機会が少なくなっているのですが、たまにはメンテナンス(アップデート)をしておかないとと思いまして起動してみたところ、Windows Update(KB4054517) でエラーが発生。
再起動すると、適用に失敗して元の構成に戻すようなメッセージで、この繰り返しになってしまいます。
シャットダウンして、しばらく様子を見ることに。
で、先ほどあらためて調べて見ると、次の記事が見つかりました。
【0x800705b4】Windows10 KB4054517 インストールできない【Ver1709】
この回答にしたがって、
(1)Windows Update のサービスを一時的に停止し、Windows Update の情報をクリアにする
(2)更新プログラムを手動でインストールする
としたところ、無事にアップデートができました。
(2)の手順で再起動が求められるので、再起動したところ
Windows Update のサービスがすでに起動されていました。
Tag: Windows10
Windows Update でエラー – KB4054517
昨年からmacOSをメインで使っていてWindowsPCを使う機会が少なくなっているのですが、たまにはメンテナンス(アップデート)をしておかないとと思いまして起動してみたところ、Windows Update(KB4054517) でエラーが発生。
再起動すると、適用に失敗して元の構成に戻すようなメッセージで、この繰り返しになってしまいます。
シャットダウンして、しばらく様子を見ることに。
で、先ほどあらためて調べて見ると、次の記事が見つかりました。
【0x800705b4】Windows10 KB4054517 インストールできない【Ver1709】
この回答にしたがって、
(1)Windows Update のサービスを一時的に停止し、Windows Update の情報をクリアにする
(2)更新プログラムを手動でインストールする
としたところ、無事にアップデートができました。
(2)の手順で再起動が求められるので、再起動したところ
Windows Update のサービスがすでに起動されていました。
Tag: Cimy Swift SMTP
ローカル環境からのメール通知など – WordPress
先日、macOSをHigh Sierraにアップデートしてそれに合わせてWordPressのテスト環境(VCCW)を作り直しました。
ざっとですが、メモ書き。
VirtualBox-5.1.30
Download VirtualBox
2017年10月19日時点で VirtualBox-5.2.0 がリリースされていますが、vagrant-2.0 は VirtualBox-5.2 には未対応なので、5.1系にしておきます。
ちなみに VirtualBox-5.2 をインストールした状態で vagrant up とすると、下記のエラーメッセージが表示されて起動できません。
The provider ‘virtualbox’ that was requested to back the machine ‘vccw.test’ is reporting that it isn’t usable on this system. Thereason is shown below:
Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of the supported versions listed below to use Vagrant:
Tag: Capitalize
How to disable Auto Capitalize in Google Docs
Open menu “Tools -> Preferences…”,
then turn off “Automatically capitalize words”
and click OK button.
Tag: Preference
How to disable Auto Capitalize in Google Docs
Open menu “Tools -> Preferences…”,
then turn off “Automatically capitalize words”
and click OK button.
AdvancedPreferences – android
DeveloperのサイトでPreferenceについて調べていたところ、
AdvancedPreferencesというサンプルがありました。
ソースだけでは様子が分からないので、ApiDemoを開いて
みたところ、項目を選ぶとカウンタが増えるとか、1秒ごとに
チェックボックスが自動的にOn/Offされるとか。
Tag: Sierra
Sourcetree で ローカルリポジトリが開けない – High Sierra
macOS を High Sierra にアップデートして、
Sourcetree でローカルリポジトリを開こうとしたところ、
次のようなエラーダイアログが表示されて開けなくなっていました。
‘git status’ failed with code 1:’xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
‘
ファインダーで調べたところ、確かに
/Library/Developer/CommandLineTools/usr/bin/xcrun
このファイルが存在しません。
要するに、OSをアップデートしたので CommandLineTools をインストールし直さないといけないようです。
ということでターミナルから、
xcode-select –install
を実行。
Sourcetree がもとどおり動くことを確認しました。
Tag: SourceTree
Sourcetree で ローカルリポジトリが開けない – High Sierra
macOS を High Sierra にアップデートして、
Sourcetree でローカルリポジトリを開こうとしたところ、
次のようなエラーダイアログが表示されて開けなくなっていました。
‘git status’ failed with code 1:’xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
‘
ファインダーで調べたところ、確かに
/Library/Developer/CommandLineTools/usr/bin/xcrun
このファイルが存在しません。
要するに、OSをアップデートしたので CommandLineTools をインストールし直さないといけないようです。
ということでターミナルから、
xcode-select –install
を実行。
Sourcetree がもとどおり動くことを確認しました。
Git環境まとめ
Windows
SourceTree
Git for Windows
TortoiseGit – Windows Shell Interface to Git
macOS
Xcode Command Line Tools – macOS Sierra – Install
Macでgitを使えるようにする | Code Tips
SourceTree
Tutorial
Gitクライアント! SourceTree の使い方 ~GUIでGitを使おう~
Bitbucket クラウドでの Git の使用方法 – Atlassian Git チュートリアル
TortoiseGit の基礎勉強 〜TortoiseGit によるバージョン管理を使う〜
GitHubで共同開発のためのチュートリアル
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜
Tag: Xcode
Sourcetree で ローカルリポジトリが開けない – High Sierra
macOS を High Sierra にアップデートして、
Sourcetree でローカルリポジトリを開こうとしたところ、
次のようなエラーダイアログが表示されて開けなくなっていました。
‘git status’ failed with code 1:’xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
‘
ファインダーで調べたところ、確かに
/Library/Developer/CommandLineTools/usr/bin/xcrun
このファイルが存在しません。
要するに、OSをアップデートしたので CommandLineTools をインストールし直さないといけないようです。
ということでターミナルから、
xcode-select –install
を実行。
Sourcetree がもとどおり動くことを確認しました。
Tag: Add-Ons
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Language
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Lightning
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Locale
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Tasks
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Thundrebird
Thunderbird’s “Events and Tasks” language
I’ve changed lang from Japanese to English on macos(sierra). And I installed Thunderbird(us english version) over Japanese version. But only Thunderbird’s “Events and Tasks” is displayed in Japanese “予定とToDo”.
So I checked config editor by reading this article.
My settings are …
intl.locale.matchOS false<br /> general.useragent.locale ja-JP-mac
Then I tried some patterns like …
intl.locale.matchOS false<br /> general.useragent.locale en-US
intl.locale.matchOS true<br /> general.useragent.locale en-US
but still in Japanese.
Finally, I found add-ons. There was one Add-ons “Lightning”. And I removed “Lightning”.
Sorry, I don’t use Events and Tasks on Thunderbird. 🙂
Tag: Thunderbird
Thunderbirdのヘッダー表示
メールソフト Thunderbird
メールを転送する際に気がついたのでメモ。
普通に使う分には「標準」のままで良いのですが、
メールを転送する場合に、
表示 -> ヘッダー -> すべて
としておくと元の詳細なヘッダを含めて転送できます。
メールとブラウザのデータを移行
メールやブラウザのデータをWindowsXPからWindows7に移行する場合の備忘録です。
Thunderbirdのメールやアカウントをすべて移行
※あらかじめ移行先(Windows7)にThunderbirdをインストールしておきます。
- コピー元(WindowsXP)
C:\Documents and Settings(ユーザ名)\Application Data\Thunderbird\Profiles
上記フォルダ内にある xxxxxxxx.default というフォルダ
※xxxxxxxxは適宜読み替えてください。 - コピー先(Windows7)
C:\Users(ユーザ名)\AppData\Roaming\Thunderbird\Profiles
上記フォルダ内に先ほどの xxxxxxxx.default をコピーします。
すでに yyyyyyyy.default のようなフォルダがあると思いますので、
念のためそのまま残しておきます。 - profiles.iniを編集
C:\Users(ユーザ名)\AppData\Roaming\Thunderbird
上記フォルダ内に profiles.ini というファイルがありますので
メモ帳などで開いて次のように編集します。(編集前)
Path=Profiles/yyyyyyyy.default (編集後) Path=Profiles/xxxxxxxx.default
Chromeの設定(ブックマークや保存したパスワードなど)をすべて移行
- コピー元(WindowsXP)
C:\Documents and Settings(ユーザ名)\Local Settings\Application Data\Google\Chrome\User Data
上記フォルダ内の Default フォルダ - コピー先(Windows7)
C:\Users(ユーザ名)\AppData\Local\Google\Chrome\User Data
先ほどの Default を上記フォルダ内へコピーします。
※念のためコピーする前に、既存の Default フォルダをバックアップしておきます。
またはGoogleの「同期」を利用する
- コピー元(WindowsXP)
Chromeの「設定」->「オプション」を開きます。
そして「個人設定」->「ログイン」でGoogleアカウントに接続し、必要な項目を選んで同期させます。 - コピー先(Windows7)
※コピー元と同様です。
Chromeの「設定」->「オプション」を開きます。
そして「個人設定」->「ログイン」でGoogleアカウントに接続し、必要な項目を選んで同期させます。
Thunderbirdの重複メール
Thunderbird 3.0.1に更新したあたりから、メッセージフィルタによって
振り分けられるメッセージが二重に保存される症状があります。
メール受信の設定がIMAP接続というのも要因かもしれません。
対処として、重複メッセージを削除するアドオンをインストールしてみました。
https://addons.mozilla.org/ja/thunderbird/addon/4654
インストールして再起動すると、フォルダの右クリックで
「重複メッセージの削除…」
というメニューが選べるようになります。
Thunderbird 3
ふと思いついて、Thunderbirdのソフトウェア更新を確認したところ、
Thunderbird 3 に更新されました。
12月8日にリリースされたようです。
Mozilla Thunderbird 3.0 リリースノート
http://mozilla.jp/thunderbird/3.0/releasenotes/
主な機能はこちら
http://mozilla.jp/thunderbird/features/
初回起動時は、索引の作成のため各フォルダのメール件数に
よっては、しばらく時間がかかります。
今回のバージョンアップで、タブ表示や全文検索の高速化
スマートフォルダなどかなり使い勝手が向上しそうです。
Tag: ヘッダ
Thunderbirdのヘッダー表示
メールソフト Thunderbird
メールを転送する際に気がついたのでメモ。
普通に使う分には「標準」のままで良いのですが、
メールを転送する場合に、
表示 -> ヘッダー -> すべて
としておくと元の詳細なヘッダを含めて転送できます。
Tag: メール
Thunderbirdのヘッダー表示
メールソフト Thunderbird
メールを転送する際に気がついたのでメモ。
普通に使う分には「標準」のままで良いのですが、
メールを転送する場合に、
表示 -> ヘッダー -> すべて
としておくと元の詳細なヘッダを含めて転送できます。
Tag: 転送
Thunderbirdのヘッダー表示
メールソフト Thunderbird
メールを転送する際に気がついたのでメモ。
普通に使う分には「標準」のままで良いのですが、
メールを転送する場合に、
表示 -> ヘッダー -> すべて
としておくと元の詳細なヘッダを含めて転送できます。
Tag: Npm
Firebase勉強会に参加しました
5月20日土曜日にFirebase勉強会に参加しました。
最初に参加者みなさんの自己紹介があって、興味分野とか近況などを軽く共有して本題に。
どのプラットフォームで勉強するかを選ぶということで、ウェブを希望。
ちなみにFirebaseの概要はこちら。
Firebaseドキュメント
具体的にはこちらの記事を参考にさせていただきました。感謝。
Firebaseの始め方 – Qiita
開発環境の準備としては、
Firebase CLI リファレンス
Firebase CLIを使うために、npm コマンドがインストールされていなければ、
Node.js をインストール。そして、
npm install -g firebase-tools
で Firebase CLI をインストールします。
あとは firebaseのコンソール を開いて、記事に沿って進めていきます。
ということで、言われるままにソースを編集して、コマンドを叩いているうちに簡単なチャットサービスができました。しかも、ローカルの動作確認から実際のウェブで確認(deploy)できるところまで。
本格的にサービスを構築して運用ということを考えると、色々とやるべきことがあるのかもしれませんが、例えば、ちょっとした要望が上がって、「こんな感じでいかがでしょう」とサクッとプロトタイプ的なものを作って実際に試してみる場合など、非常に効率よく進めることができそうです。
Tag: TortoiseGit
Git環境まとめ
Windows
SourceTree
Git for Windows
TortoiseGit – Windows Shell Interface to Git
macOS
Xcode Command Line Tools – macOS Sierra – Install
Macでgitを使えるようにする | Code Tips
SourceTree
Tutorial
Gitクライアント! SourceTree の使い方 ~GUIでGitを使おう~
Bitbucket クラウドでの Git の使用方法 – Atlassian Git チュートリアル
TortoiseGit の基礎勉強 〜TortoiseGit によるバージョン管理を使う〜
GitHubで共同開発のためのチュートリアル
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜
Tag: Flywheel
WordBench愛媛 もくもく会 を開催しました。
3月3日金曜日の夕方に WordBench愛媛 もくもく会 を開催しました。
ブログで収益を上げる学生さんや、はるばる岡山からのデザイナーさんなど少人数ですが多彩な顔ぶれでした。
きびだんごのお土産もありまして、みんなで美味しくいただきました。
今回は、最初にみなさんの自己紹介の後、私が直前に作成した簡単な資料でローカル環境についてご紹介。
その後は、WordPressに関係あることないこと、日常の関心事など、情報交換というよりはよもやま話でとても盛り上がりました。
開催する前は、手を動かして何らかの成果を上げて、と形式にこだわって若干神経質になっていたのですが、開催してみると、あまりそういうことは気にせず、コミュニケーションを大切にすることでそれなりに充実したイベントになると感じました。要するに、参加者のみなさんのおかげですね。感謝。
さて、今回(一応)用意したテーマのローカル環境について、もくもく会の当日、Local by Flywheel が良さそう、という話がありまして後日試してみました。
ダウンロードしてインストールを実行するだけで Dockerベース の環境が簡単に構築できて、GUIで複数のサイトを作ることができます。
私自身、普段はプラグイン開発やテーマのカスタマイズでVCCWを使っているのですが、コマンドラインが中心の操作になるので、デザイナーさんとのやりとりなど、この Local by Flywheel も活用してみたいと思います。
追記(2017.03.15)
参考:Local by Flywheelの紹介記事
WordPressのローカル環境のためのGUIツール”Local by Flywheel”が便利
Tag: Local
WordBench愛媛 もくもく会 を開催しました。
3月3日金曜日の夕方に WordBench愛媛 もくもく会 を開催しました。
ブログで収益を上げる学生さんや、はるばる岡山からのデザイナーさんなど少人数ですが多彩な顔ぶれでした。
きびだんごのお土産もありまして、みんなで美味しくいただきました。
今回は、最初にみなさんの自己紹介の後、私が直前に作成した簡単な資料でローカル環境についてご紹介。
その後は、WordPressに関係あることないこと、日常の関心事など、情報交換というよりはよもやま話でとても盛り上がりました。
開催する前は、手を動かして何らかの成果を上げて、と形式にこだわって若干神経質になっていたのですが、開催してみると、あまりそういうことは気にせず、コミュニケーションを大切にすることでそれなりに充実したイベントになると感じました。要するに、参加者のみなさんのおかげですね。感謝。
さて、今回(一応)用意したテーマのローカル環境について、もくもく会の当日、Local by Flywheel が良さそう、という話がありまして後日試してみました。
ダウンロードしてインストールを実行するだけで Dockerベース の環境が簡単に構築できて、GUIで複数のサイトを作ることができます。
私自身、普段はプラグイン開発やテーマのカスタマイズでVCCWを使っているのですが、コマンドラインが中心の操作になるので、デザイナーさんとのやりとりなど、この Local by Flywheel も活用してみたいと思います。
追記(2017.03.15)
参考:Local by Flywheelの紹介記事
WordPressのローカル環境のためのGUIツール”Local by Flywheel”が便利
Tag: Ngrok
WordBench愛媛 もくもく会 を開催しました。
3月3日金曜日の夕方に WordBench愛媛 もくもく会 を開催しました。
ブログで収益を上げる学生さんや、はるばる岡山からのデザイナーさんなど少人数ですが多彩な顔ぶれでした。
きびだんごのお土産もありまして、みんなで美味しくいただきました。
今回は、最初にみなさんの自己紹介の後、私が直前に作成した簡単な資料でローカル環境についてご紹介。
その後は、WordPressに関係あることないこと、日常の関心事など、情報交換というよりはよもやま話でとても盛り上がりました。
開催する前は、手を動かして何らかの成果を上げて、と形式にこだわって若干神経質になっていたのですが、開催してみると、あまりそういうことは気にせず、コミュニケーションを大切にすることでそれなりに充実したイベントになると感じました。要するに、参加者のみなさんのおかげですね。感謝。
さて、今回(一応)用意したテーマのローカル環境について、もくもく会の当日、Local by Flywheel が良さそう、という話がありまして後日試してみました。
ダウンロードしてインストールを実行するだけで Dockerベース の環境が簡単に構築できて、GUIで複数のサイトを作ることができます。
私自身、普段はプラグイン開発やテーマのカスタマイズでVCCWを使っているのですが、コマンドラインが中心の操作になるので、デザイナーさんとのやりとりなど、この Local by Flywheel も活用してみたいと思います。
追記(2017.03.15)
参考:Local by Flywheelの紹介記事
WordPressのローカル環境のためのGUIツール”Local by Flywheel”が便利
Tag: Chef
CI勉強会を開催します
1月28日土曜日の午前に開催します。
イベントの詳細はこちら↓
CI勉強会 in 松山
昨年末のある飲み会の席で CakePHP や PHPUnit のキーワードが上がって、じゃあ勉強会をしましょうか、という話になりました。
そこで、どういう内容にすれば良いかとジュンク堂に寄ってみたところ、
この書籍を発見。
冬休みの宿題にいいかなと思って、まだ一部ではありますが、実践してみました。
2014年に出版された本で、そのままでは動かない部分もありましたが、最近の環境に合わせて編集してみることで色々と勉強になります。
何より、開発環境からCIサーバ、デプロイ先サーバの構築と運用まで幅広く網羅されているので、CIについての全体像の把握もできます。
ちなみに、CHEF SOLO PROVISIONER
ここに、
Warning: If you are not familiar with Chef and Vagrant already, I recommend starting with the shell provisioner. However, if you are comfortable with Vagrant already, Vagrant is the best way to learn Chef.
とあって、確かに最初はとっつきにくくて shell で書いた方が手っ取り早い?と思っていたのですが、弄っているうちに、様々なサービスプログラムやバージョンの違いなどを考えると shell では間に合わなくなりそうです。
ということで、CIについては今回初めての企画ですが、それこそ継続的に進めたいと思っています。
補足:バナーはGimpで作ってみました。
Tag: Jenkins
CI勉強会を開催します
1月28日土曜日の午前に開催します。
イベントの詳細はこちら↓
CI勉強会 in 松山
昨年末のある飲み会の席で CakePHP や PHPUnit のキーワードが上がって、じゃあ勉強会をしましょうか、という話になりました。
そこで、どういう内容にすれば良いかとジュンク堂に寄ってみたところ、
この書籍を発見。
冬休みの宿題にいいかなと思って、まだ一部ではありますが、実践してみました。
2014年に出版された本で、そのままでは動かない部分もありましたが、最近の環境に合わせて編集してみることで色々と勉強になります。
何より、開発環境からCIサーバ、デプロイ先サーバの構築と運用まで幅広く網羅されているので、CIについての全体像の把握もできます。
ちなみに、CHEF SOLO PROVISIONER
ここに、
Warning: If you are not familiar with Chef and Vagrant already, I recommend starting with the shell provisioner. However, if you are comfortable with Vagrant already, Vagrant is the best way to learn Chef.
とあって、確かに最初はとっつきにくくて shell で書いた方が手っ取り早い?と思っていたのですが、弄っているうちに、様々なサービスプログラムやバージョンの違いなどを考えると shell では間に合わなくなりそうです。
ということで、CIについては今回初めての企画ですが、それこそ継続的に進めたいと思っています。
補足:バナーはGimpで作ってみました。
Tag: Provision
CI勉強会を開催します
1月28日土曜日の午前に開催します。
イベントの詳細はこちら↓
CI勉強会 in 松山
昨年末のある飲み会の席で CakePHP や PHPUnit のキーワードが上がって、じゃあ勉強会をしましょうか、という話になりました。
そこで、どういう内容にすれば良いかとジュンク堂に寄ってみたところ、
この書籍を発見。
冬休みの宿題にいいかなと思って、まだ一部ではありますが、実践してみました。
2014年に出版された本で、そのままでは動かない部分もありましたが、最近の環境に合わせて編集してみることで色々と勉強になります。
何より、開発環境からCIサーバ、デプロイ先サーバの構築と運用まで幅広く網羅されているので、CIについての全体像の把握もできます。
ちなみに、CHEF SOLO PROVISIONER
ここに、
Warning: If you are not familiar with Chef and Vagrant already, I recommend starting with the shell provisioner. However, if you are comfortable with Vagrant already, Vagrant is the best way to learn Chef.
とあって、確かに最初はとっつきにくくて shell で書いた方が手っ取り早い?と思っていたのですが、弄っているうちに、様々なサービスプログラムやバージョンの違いなどを考えると shell では間に合わなくなりそうです。
ということで、CIについては今回初めての企画ですが、それこそ継続的に進めたいと思っています。
補足:バナーはGimpで作ってみました。
Tag: Pip
Django on vagrant の環境構築の補足 – Python3
pyvenv の pip を更新(9.0.1)して、
$ pip list
とすると、
DEPRECATION: The default format will switch to columns in the future. You can use –format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
という警告が表示されたので、
https://pip.pypa.io/en/stable/user_guide/#configuration
こちらを参考に、
(pyvenv)/pip.conf
を作成。
[list]
format=columns
次に、開発用の簡易Webサーバを起動して、ブラウザで開くと、
DisallowedHost at / …
のような警告が表示されたので、
https://docs.djangoproject.com/en/1.10/topics/settings/
こちらを参考に、
(project)/settings.pyを編集して、
ALLOWED_HOSTS = [ '192.168.33.xx' ]
を追加。
追記(2016/12/12)
モデル定義を編集してmigrateしたところでWARINGSが表示された。
WARNINGS:
?: (mysql.W002) MySQL Strict Mode is not set for database connection ‘default’
HINT: MySQL’s Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/1.10/ref/databases/#mysql-sql-mode
Tag: スクレイピング
PyEhimeもくもく勉強会
7月末にPython Boot Camp in 愛媛(初心者向けチュートリアル)を開催したあとで、Slackでやり取りをしていまして、その中で各々勉強したい課題が幾つか見えてきましたので、今後の愛媛でのPythonコミュニティの活動をどうしていくかという作戦会議を兼ねてもくもく勉強会を開催しました。
開催に向けて日程調整をしたところ、connpassでイベントを公開したのが開催の2日前という、急遽の開催となってしまいました。
告知期間が短くてすみません。今後の愛媛での開催に向けての準備ということでご理解いいただければ幸いです。
また、急な開催にもかかわらず4名の方にご参加いただきました。お忙しい中ありがとうございます。
会場に利用させていただいたカフェですが、Wi-Fi環境はフリーなものがいろいろ使えます。ただし6人掛けのテーブル席まわりでは電源は取れませんでした。4人掛けのエリアにはいくつかあるそうです。
開催中の様子。

さて、開催の中身ですが、
- vagrant + python3 + django
- python programming on Android
- urllib + BeautiflSoupによるスクレイピング
- eclipseのDjango開発環境
- cloud9でDjango
- 次回は11月中旬以降?
- それぞれ興味のあるライブラリを試してみて教えあう
- もう少しDjangoを使って参加者のレベルを近づける
- などなど…
のような感じでした。
あと、Google Driveでのファイル共有、appear.inでの画面共有なども行いました。
始めたばかりで右往左往の状態ですが、無理のない範囲で継続していきたいと思います。
Pythonプログラミングにご興味のある方がいらっしゃいましたらお気軽にご参加ください。
Tag: Pyconjp
Python Boot Camp in 愛媛
2016年7月30日にサイボウズ株式会社松山オフィス様にてPython Boot Camp in 愛媛を開催しました。
詳しくはこちら。
Python Boot Camp in 愛媛 を開催しました!!
当日のTwitterのまとめ
Python Boot Camp in 愛媛まとめ(togetter)
次回は熊本にて開催されます。
Python Boot Camp in 熊本
Python Boot Camp in 熊本 懇親会
この機会にぜひご参加ください。
Tag: 海外、ローミング、パケット定額
海外でのデータ通信
海外でスマホを利用する際に、パケット代が高額になるとか心配になったので Ymobile のサポートに問い合わせてアドバイスをいただきました。
まず、日本国内で出発前に、モバイルデータをOffにして、機内モードをOnにする。
渡航先に着いたら、利用できる通信事業者(定額対象事業者)を選択。
参考:SoftBank、国際サービス、定額対象事業者
優先ネットワークタイプを適宜選択。(LTE, 3G, …)
データローミングをOnにする。
モバイルデータをOnにする。
以上です。
詳しくはSoftBankのFAQページなど。
[海外パケットし放題]設定方法を教えてください。 | モバイル | ソフトバンク:
Tag: Android
Androidで画面のキャスト – Fire TV Stick
今年(2016)の春にFire TV Stickを購入して、オンデマンドの番組を視聴しています。
このFire TV Stickを使ってオンラインでお手軽にニュースを見ようとすると、NHK World TV(英語)アプリを使うかYoutubeでニュースカテゴリをあさるくらい。しかも、Youtubeの場合はニュースが断片的にアップされていて、都度CMが流れたり、少し前の再生済みのニュースをまた再生したりと、結構不便です。そこで、もう少しニュースをまとめて効率よく視聴することはできないかと調べたところ、AbemaTVアプリ(Android)が見つかりました。といっても、これをFire TV Stickにインストールするわけではなくて、Androidのスマホから画面のキャストで視聴します。
※AbemaTVアプリをFire TVにインストールする方法もあるようです。検索してみてください。
ここで、Fire TV Stickの「ディスプレイミラーリング」機能を使うわけですが、何度かは使えたものの、その後つながらなくなったのでしばらく放置していました。
※ちなみに、Youtubeアプリ(Android)からのFire TVへの画面のキャストは難なくつながります。
Amazon Fire TVのディスプレイミラーリングを使用する
これでつないだ後で切断すると、次からつながらなくなる症状があります。
そこで、これまでに実施したこと。
- Fire TV Stickの工場出荷時の設定にリセット
設定 -> システム -> 工場出荷時の設定にリセット - Wi-Fiの接続を2.4GHzに揃える
- Android端末のWi-Fi Directの接続履歴を削除
設定 -> Wi-Fi -> 詳細設定 -> Wi-Fi Direct -> 接続履歴のあるグループ - キャストの「詳細設定」でデバイスを選択して接続
そして、接続操作ですが、Fire TV Stick側で、
設定 > ディスプレイとサウンド > ディスプレイミラーリングを有効にする
を選択しておいて、Android端末でキャストを開きます。
Gradle build error on Android Studio 0.5.2
しばらくぶりに Android Studio を使ってみようと思い、あらためてインストール。
新規プロジェクトを作成しようとすると
Messages Gradle tasks に
Error:Execution failed for task ':app:preBuild'.
> Build Tools Revision 19.0.0+ is required.
のエラー。
ちなみに、Tools -> Android -> SDK Manager
を開いてUpdateを実行して、Build-tools 19.0.3 がインストールされているのは確認済み。
いろいろ調べたところ、
http://stackoverflow.com/questions/22247548/upgraded-android-studio-project-no-longer-builds-gradle-build-tools-version
このような記事があったので、これを参考に、
appフォルダ内の build.gradle を編集。
[before edit]
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
...
[after edit]
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
...
このようにするとビルドできました。
PHSでテザリング – WX04SH
この画面で「テザリング」を選択すると次のメニューが開きます。
ここで「Wi-Fiテザリング」にチェックを入れます。
必要に応じて、「Wi-Fiテザリングを設定」を開いてネットワークSSIDを編集します。
本端末(WX04SH)のテザリングはPHS経由のデータ通信なので「モバイルネットワーク設定」でデータ通信(PHS)にチェックを入れます。
ADT Plugin のアップデート – Android
ADT-Bundle版を使っていて、SDKの更新をしたところADTのバージョンが古いと怒られましたので更新しました。
詳細はこちら
Installing the Eclipse Plugin
- Help -> Install New Software
- Work with
リポジトリのURLを追加します。
https://dl-ssl.google.com/android/eclipse/
- Developer Toolsをチェック
- Installの確認・実行
以上です。
Mockito でテストしようとして java.lang.NoClassDefFoundError になる場合 – Android
先月JUnit勉強会を開催しまして、
JUnit勉強会 in 松山 – “REVIVAL” #season1
その時に仕掛ったモックをあらためて使おうとしたところ、
“java.lang.NoClassDefFoundError”
となって先に進めない状況が続いていました。
開発環境は、Googleが提供しているADT-Bundle版です。
結局、ビルドパスの設定でMockitoをライブラリに追加したのが良くなかったようです。
例えば、
- テスト対象: TipsCalendar
- テストプロジェクト: TipsCalendarTest
の場合。
テスト対象プロジェクトが指定されていること。
ターゲットのAPIとその依存関係が指定されていること。
※ここに手作業でmockito-all-1.9.5.jarを追加するとタイトルのエラーになりました。
ビルドパスを編集するのではなくて、テストプロジェクトに libs フォルダを作成してその中に、
- mockito-all-1.9.5.jar
- dexmaker-1.0.jar
- dexmaker-mockito-1.0.jar
これらのファイルをコピーすればOKでした。
maxSdkVersion を指定しないほうがいい – Android
http://goo.gl/FiIm3
android:maxSdkVersionは指定しないほうがいい(not recommended)
Androidプラットフォームの新しいバージョンは後方互換性を維持するので、新しいバージョンをブロックするのではなくて、標準のAPIを使って新しいバージョンの上でも動作するようにするべき。
それと、maxSdkVersionを指定すると、利用者がシステムアップデートを行った際にそのアプリケーションが削除されることになる。
また、システムアップデートの定期的な通知がアプリケーションに何らかの影響を与えないか事前に確認する必要がある。
Android用Facebookアプリ
Facebookアプリ(for Android)が最近のバージョンアップによってずいぶんとサクサク動くようになった感じです。現在のバージョンは2.0です。UIも改善されてずいぶん使いやすくなりました。
以前、Facebookアプリの調子が悪かったころに、3GとかWi-Fiとか接続方法を変えてみたりキャッシュを削除してみたりといろいろと試してみましたがなかなか根本的な解決には至らず。これまで使ってきての私なりの感触というか想像も含めてなのですが、サービス側が日々改善なりバージョンアップされていて、そのタイミングによってアプリ側が部分的に対応できなかったり不具合が発生して、その後のアプリ側のアップデートで改善されるという、アプリが後追いの形になっているのかなぁと思います。
なので、あるタイミングでアプリでなにか問題がおきたら、それはサービスとアプリの整合性の問題であってアプリ側(端末側)で何とかしようとしても、その時点ではおそらく解決はできないと判断する。そして、代替のアプリを利用するとかWeb(ブラウザ)からのアクセスに切り替えて様子を見るのが良いような気がします。
たとえば、この秋ごろからFacebookの”グループ”をよく利用するようになったのですが、Facebookアプリからだとグループのコメントにたどり着けない(開けない)状況がしばらく続いていました。現在では改善されています。現時点での問題としてはFacebookページのアンケートに「いいね!」をもらった際に「お知らせ」からアンケートのページにたどり着けない、というのがあります。ご利用の端末によって状況が異なるかもしれませんが、参考までに。
Android用 Facebookアプリ
最近、Facebookのグループを良く使うようになったのですが、Android用のFacebookアプリだとグループのコメントに行き着けない状況が続いていました。それが、今回のアップデートによってグループのコメントまで問題なく利用できるようになりました。
Facebook for Android Version 1.9.12
http://goo.gl/YLf8z
Like, Comment, Share のUIも改善されて使いやすくなっていますね。
愛媛IT勉強会にて喋りました。
Marketing Vanguard の池田さんに機会をいただきまして、Android開発についてプレゼンをしてきました。
勉強会の前半はITストラテジストの秋田さんの講演でした。
オフショア、ニアショアといったキーワードでSE的な立場あるいは発注する側の視点を含めての貴重なお話でした。
地方のエンジニアとしてはニアショアってどうなんだろうとはてなマークがついたりしているのですが、アピールの仕方もいろいろあるのだなぁと、可能性を感じることができました。
続いて、後半30分間ほど時間をいただいてAndroid開発についてプレゼンをしました。
そのときに使った資料をSlideShareにて公開します。
まぁ、拙い資料ではありますが、少しでも参考になれば幸いです。
Androidアプリ開発を始めたのが一昨年。
本を読んだり、各種ウェブサイトを調べたり、勉強会に参加したり。
Androidに関して自分が話す立場になったのは今回が初めて。
何とか資料を作ってみたものの、やはりもう少し範囲を絞ってターゲットを定めて資料を作らないといけないなぁと反省。
実際に使った資料から、いくつか余分なページを削除したのと、お伝えし切れなかったページ(最終章)を追加しております。
スマートフォンのシェア on 2012.05.24 by IDC
プレスリリースの資料がシェアできるようなので試してみました。
ちなみに、日本語の記事はこちら。
世界スマホ市場シェア、Androidが59%、iPhoneは23%—IDC調査
新アプリをリリースしました。 – Android
新しいアプリをリリースしました。
パスリス – PasLis
詳細およびダウンロードはGoogle Playのページをご覧ください。
Android用アプリです。
パスワードを簡単に作成することができます。
大文字、小文字、数字、記号を 使う・使わない が指定できます。
それと、パスワードの長さや作成する個数も指定できます。
メールなど他のアプリに転送するシェア機能もあります。
お気軽にお試しください。
ご意見、ご要望などありましたらお気軽にどうぞ。
Fragmentへの対応 – android
スマホ向けにアプリを作って、
ふとタブレットで開いてみると、残念なレイアウトになっていたり…
そういうことがないように、Fragment機能を活用してアプリを作るための参考書の紹介です。
Support packageを使って Android-1.6 から対応させる記述もあって助かります。
Eclipse(Juno)エディタでの不具合
Eclipse(Juno)の不具合、こちらの記事で助かりました。
http://frmmpgit.blog.fc2.com/blog-entry-133.html
例えば複数のXMLファイルを開いて編集しようと Copy & Paste すると、
エディタの裏側に隠れているファイル(コピー元)が書き換わってしまう状況でした。
そこで上の記事に倣って”XML Editor”をデフォルトに設定します。
また”Android Common XML Editor”を削除する場合でも、後で[Add…]ボタンで
元に戻すことができます。
ここで”XML Editor”をデフォルトに設定しただけではXMLファイルの編集で
“Android Common XML Editor”が立ち上がってしまうようですので、
編集したいXMLファイルを右クリックして、Open Withで”XML Editor”を
選ぶと次からは”XML Editor”で編集できるようになります。
Androidのテストプロジェクト – JUnit test
Androidのテストプロジェクトを試していたところコンストラクタのところで警告が出ました。
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityTest() {
super("package.name.hogehoge", MainActivity.class);
// TODO Auto-generated constructor stub
}
Referenceを調べてみたところ、パッケージ名を指定するコンストラクタがdeprecatedになっていました。
ActivityInstrumentationTestCase2
ということで、下記のように修正。
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
public MainActivityTest() {
super(MainActivity.class);
// TODO Auto-generated constructor stub
}
以上です。
Lintチェックのエラーと旧バージョンのサポート
以下、自分用の備忘録として
Lint API Check
の記事を読みながら簡単にまとめたものです。
Androidアプリ開発において、API 4(Android 1.6) までサポートする際に、ターゲットのビルドバージョンによって呼び出すAPIを切り替えたい場合があります。
しかし、マニフェストが、
<uses-sdk android:minSdkVersion="4" />
となっているので、API 4では対応していないAPIを呼び出すところで次のようなLintチェックのエラーになってしまいます。
Call requires API level 11 (current min is 4):
そのような場合に、@TargetApi というアノテーション(annotation)をつけることで回避できます。
@TargetApi(11)
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.hogehoge, target);
}
Androidのデバッグでソースが読めない – eclipse
Androidのアプリ開発において、eclipseでステップ実行しようとしてソースが開けない場合。
(Source not found となってしまう)
上記の [Attach source] をクリックしてソースを置いているフォルダのパスを指定します。
例えば、次のようにします。
で、そうなるまえにソースのパスをセットしておく方法。
[Project] -> [Properties] を開きます。
次に [Java Build Path] -> [Libraries] を開いてターゲットの android.jar を展開します。
そして [Source attachment] が (None) になっていれば、[Edit…]をクリックして先ほどと同様にソースのフォルダを設定します。
Facebookアプリ – WiFiで接続できない場合【その3】
Facebookアプリ(for Android)がWiFiでなかなかつながらない件について追加の記事です。
先週の7日に1.9.5がリリースされ、その数日前あたりから特に問題なくつながるようになりました。
これまでにも同じような状況が何度かありましたので、例えばFacebookの公式アプリで問題が発生した場合はブラウザやSeesmicなど他の利用手段を用意しておいて、次のバージョンアップまでしばらく様子をみるのが良いのかも知れません。
それと、3GからWiFiに切り替えた直後や電波の状態でWiFi接続が安定していないと
「接続が切れました」
という表示になって、そこからなかなかつながらなくなる場合があります。
そのようなときに、WiFi Fixerを利用すると改善されるかも知れません。
ネットワーク環境や機種によると思いますが、参考まで。
Facebookアプリ – WiFiで接続できない【その2】
Facebookアプリ(Android)がWiFiで接続できなくなった件について
追加の記事です。
接続復旧の手順をいろいろ試してみました。
サービスの停止までしなくても、もう少し簡単にできるようなので
まとめておきます。
ただし、アプリを閉じてしばらく時間が経つとやはりつながらなくなって
また3Gからのやり直しが必要です。
- WiFiでつながらない状態を確認。
- WiFiをOFFにして3GをONにします。
- Facebookアプリを終了させます。
「設定」->「システム」->「アプリケーション」->「アプリケーションの管理」
を開いて「実行中タブ」を選択し「Facebook」をタップ。
強制停止ボタンを押します。
※前の記事では関連サービスを止めたり、キャッシュを削除したりしましたがそこまではしなくても良さそうです。 - あらためてFacebookアプリを起動。
3Gで利用できることが確認できたら、WiFiに切り替えます。
これで、WiFiのみで継続して利用できると思います。
ちなみに、アプリケーションの強制終了ですが、
Androidの「設定」からだと結構階層が深いので手間がかかります。
アプリを終了させる専用のアプリが便利です。
Automatic Task Killerがおすすめ。
Facebookアプリ – WiFiで接続できない【未解決】
先日から、Android用のFacebookアプリがWiFiではつながらなくなっていました。
3Gだとつながるのですが、WiFiではつながらない状態。
ただし、WiFiでもメッセージのリストは表示されます。
ちなみに、Facebookアプリのバージョンは、本日アップデートして
1.9.3 -> 1.9.4 になっています。
問題を解決しようと検索してみたのですが、
それらしい記事がなかなか見つからず。
やっと見つけた記事(フォーラム)がこちら。
http://androidforums.com/desire-hd-support-troubleshooting/535279-facebook-android-connection-lost.html
で、先ほどやっと解決しました。
(半分ほど解決)その方法。
上記フォーラムを参考にWiFiと3Gを両方ONにしてアプリを起動。
正常にアクセスできることを確認して、3GをOFFにします。
これで元通りWiFiでもつながるようになりました。
まぁ、それだけのことではあるのですが、
普段、なるべく電池の消耗を抑えようと、3G/WiFiの切り替えを
しているので、なかなか気づかず。
それと、WiFiで接続できない状態で、WiFi:OFF、3G:ON としても
すぐには3Gでつながらないことがあります。
その場合は、「アプリケーション設定」を開いて実行中のサービスを
確認します。
すると、Facebook関連のサービスが3~4個ほど見つかると思いますので、
タッチして停止します。
Facebookアプリ自体も「アプリケーションの管理」で確認して
起動している場合は停止しておきます。
そして、ネットワークの接続(3G only, WiFi only, 3G+WiFi)を切り替えるなどして、
あらためてFacebookアプリを起動します。
【追記】
一度、Facebookアプリを閉じるとやはりWiFiではつながらなくなりました。
その際、毎回、上記のような手順が必要になります。
機種依存の問題もあるかもしれません。(IS06, Android-2.2.1)
継続して調べてみます。
オプションメニューを設置 – Android
最近は、従来のメニューボタンからのオプションメニューに変わって、アクションバーが推奨されているようです。ということで、Android 3.0 (API level 11)から追加されたアクションバーを設置してみました。
アクティビティの onCreate()にアクションバーの利用を宣言します。
ただし、API level 11より前の端末ではエラーになりますので、
バージョンによって条件分岐させます。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { getWindow().requestFeature(Window.FEATURE_ACTION_BAR); } setContentView(R.layout.main); //以降省略 }
アクションバー(またはメニューボタン)をでメニューが表示されるようにします。
ここでも、setShowAsAction()というメソッドがAPI level 11以降に対応なので、
条件分岐が必要です。
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem actionItem = menu.add("About"); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } actionItem.setIcon(android.R.drawable.ic_menu_info_details); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { //メニューが選ばれたときの処理を書きます。 }
このように実装することで、API level 11以降はアクションバーが表示され、
API level 11より前の端末では従来のオプションメニューが表示されます。
参考記事
http://www.pcmag.com/article2/0,2817,2399437,00.asp
http://developer.android.com/guide/topics/ui/actionbar.html
パッケージ名の変更 – Androidアプリ開発
Google Playにアプリを公開した後で、パッケージ名を変更することはできません。
そのような場合は、新たにアプリを登録する必要があります。
パッケージ名を決める際は、慎重に。(自分の反省を込めて…)
で、パッケージ名を変更する場合ですが、TechBoosterさんにまとまった記事がありましたので参考にさせていただきました。
1)マニフェストファイル(xml)を編集。
2)Package Explorerから、src内にある該当のパッケージを右クリック
(Refactor -> Rename を選択)
3)上記の操作で開いたダイアログで、新しいパッケージ名を入力
Facebookに画像を送る – Android
先日、Androidアプリを作ったのですが、
画像をシェアする部分が間違っていました。
参考にした記事はこちら。↓
http://stackoverflow.com/questions/3553017/android-share-via-dialog/3553102#3553102
※Uri.parse()のパラメータに “file://” が足りませんでした…orz
しばらくぶりにAndroidアプリを作ってみたメモ
新規に作るのは、昨年の?月以来となります。(汗
今回のアプリ開発の過程で参考にした記事とかツールなど
メモ書きしておきます。
まず、アイコンデザイン
公式サイトのガイドライン
http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
正面から見た感じで、少し厚みを持たせる
光沢感を強くしすぎないこと
など。
※日本語で解説されているサイトがいくつかあるようです。
それと、フリーのツールとしてInkscapeが紹介されていたので使ってみました。
http://inkscape.org/index.php?lang=ja
形を作ったり、文字を変形させたりなど便利です。
標準のフォルダについて
http://developer.android.com/reference/android/os/Environment.html
Picturesフォルダなど、最初から存在するのかと思ったのですが、
そうでもないのですね。
とはいえ、Standard directory として紹介されているので、
アプリで安易に独自のフォルダを作るよりは、標準的なフォルダを
利用するのもよさそうです。
Intentの使い方
http://thinkit.co.jp/article/921/1
テキストや画像をシェアする場合など。
広告の設置:adMob
最後にバナー広告を設置しようとしてはまりました。
http://tools.android.com/recent/dealingwithdependenciesinandroidprojects
プロジェクトフォルダ内に libs というフォルダを作って
adMobのjarファイルをコピーすれば自動的に組み込まれるようです。
strings.xml の警告(Warning) – Android開発
自作したAndroidアプリをメンテナンスしていて、
リソースファイル(strings.xml)の中に警告が出ているのを見つけました。
<string name="menu_pos">Position 1-3</string>
例えば、上記のように文字列にハイフン “-” が含まれている場合など。
警告のメッセージは次の通りです。
Replace "-" with an "en dash" character (–, –) ?
調べてみると、昨年(2011)11月頃に文法チェックのルールがいくつか追加された模様。
New Lint Rules
ということで、
<string name="menu_pos">Position 1–3</string>
このように修正しました。
achartengine で null を扱う – Android
Androidアプリでグラフを描画するツール achartengine で
null値を扱う場合について調べてみました。
まずはデモソースを下記からダウンロード。
http://code.google.com/p/achartengine/downloads/list
※現時点で achartengine-0.7.0-demo-source.zip となっています。
これを、Eclipseのファイルメニューからインポート(import)します。
ここでは “Existing Projects into Workspace” を選んで “Next”

“Select Archive File” を選んで、ダウンロードしたzipファイルを指定して
“Finish” でプロジェクトの登録が完了です。
次にソースの編集に移ります。
例として、”AverageTemperatureChart.java” を編集してみます。

ソースを開くと、66行目あたりに温度の値が並んでいます。
proguard.cfg のエラーでリリースができない – Android
Androidマーケットに公開しているアプリをメンテナンスしていて、
いざリリースしようとしたところでエラーが発生しました。

ソースを確認すると次のようなエラーメッセージが…
Obsolete proguard file; use -keepclasseswithmembers instead of -keepclasseswithmembernames
プロジェクト内の proguard.cfg というファイルにエラーがあるので
そのままではリリースできず。
メッセージにしたがって、
-keepclasseswithmembernames
となっている部分を
-keepclasseswithmembers
に修正して Run Android Lint を実行。

エラーがなくなりました。復旧。
ということでパッケージを作成してリリース。

以上です。
Androidアプリを更新しました。
自社開発のAndroidアプリを更新しました。
- AssortCam
ギャラリーのスライド表示部分を改善しました。 - PicsReader
音声エンジンのON/OFFをに対応しました。
共有機能(シェア)を追加しました。
詳細およびダウンロードはAndroidマーケット(netplan_jp)をご利用ください。
Androidアプリをピックアップ
LinkedInのAndroidグループで必携アプリに関する記事があって、そのコメントに各自のおすすめアプリが紹介されていたのでその中からピックアップしてみました。
- Angry Birds
カテゴリ:アーケード&アクション - App2SD
カテゴリ:ツール - Astro File Manager
カテゴリ:仕事効率化 - AudioManager
カテゴリ:音楽&オーディオ - AutoSMS
カテゴリ:通信 - Dolphin Browser
カテゴリ:通信 - Dropbox
カテゴリ:仕事効率化 - Evernote
カテゴリ:仕事効率化 - Facebook
カテゴリ:ソーシャルネットワーク - Google Maps
カテゴリ:旅行&地域 - Google Plus
カテゴリ:ソーシャルネットワーク - Google Reader
カテゴリ:ニュース&雑誌 - Google Translate
カテゴリ:ツール - LinkedIn
カテゴリ:ソーシャルネットワーク - Lookout
カテゴリ:ツール - Netflix
カテゴリ:エンターテイメント
※Available in the USA, Canada and Latin America. - PowerAMP Music Player
カテゴリ:音楽&オーディオ - Pulse News
カテゴリ:ニュース&雑誌 - Shazam
カテゴリ:音楽&オーディオ - Skype
カテゴリ:通信 - Sygic
カテゴリ:旅行&地域 - Titanium Backup
カテゴリ:ツール - Exchange for Android(TouchDown)
カテゴリ:ビジネス - Twitter
カテゴリ:ソーシャルネットワーク - WhatsApp Messenger
カテゴリ:通信
いずれも、アプリの名前でAndrodマーケットを検索して見つかったものです。
動作確認等は行っておりません。中には日本国内では使えないものもありますので
ご注意願います。
AdMobが表示されない – 縦(Portrait)の場合
レイアウトの定義で、
android:padding = “5dip”
のように余白を設定していると、
端末を縦にしたときにAdMob(広告バナー)が表示されない場合が
あります。
一旦、余白を0:ゼロにして、縦と横のレイアウトを確認しながら
余白を調整すると良さそうです。
参考)
Android XML Layout works in landscape but not in normal orientation
Androidアプリ PicsReader をリリースしました。
Androidアプリ PicsReader をリリースしました。
標準のギャラリーから写真を選んで画面に表示すると、
クローバーの形をしたカーソルが表示されます。
このカーソルを指で動かすことで、カーソルの中心の
画素値(RGBの値)を表示し、さらに音声で返すことが
できます。
皆さまのご意見を伺いながら、機能アップをしていきたいと
思っています。
Androidマーケット “PicsReader”
https://market.android.com/details?id=jp.netplan.picsreader
WordPress Mobile Pack – WordPress プラグイン
スマートフォン向けページにAdMobを組み込んでみようと思い、MobilePressのヘッダを編集してみたのですが、上手く行かず、他のツールを探してみたところ、WordPress Mobile Packを導入することで簡単に組み込めました。
- WordPress Mobile Pack プラグインをインストール
プラグインをインストールして有効にします。 - 「外観」->「ウィジェット」を編集
ウィジェットの一覧から「Mobile Ads」を選んで、例えば「Footer Area One」に設置します。
そして、「Mobile Ads」のProviderで「AdMob」を選択し、
あらかじめ取得しておいた「Publisher ID」を入力して保存します。 - 「外観」->「Mobile Widgets」を編集
「Footer Area One」のところで「Mobile Ads」をチェックします。
とりあえず組み込めたということで、それ以上の検証は行っていませんが参考になりましたら。
※設置した後で「Mobile Switcher」の設定画面で「Mobile theme」を切り替えたところ、
広告が表示されなくなることがありました。そのような場合はウィジェットを外して置きなおすと
良いかもしれません。
Bitmapのリサイクルなど – Android
解像度が高い画像を扱う際のOutOfMemory対策。
“Bitmap recycle() how does it works”
他にも、
「CacheオブジェクトにはSoftReferenceを」
AssortCam – androidアプリをリリースしました
AssortCam はAndroid端末で利用できるカメラアプリです。
あらかじめ保存用のフォルダを用意しておくことで、
撮影時に写真の仕分けができます。
弊社紹介ページ
/lib/assortcam
Android マーケット: AssortCam
https://market.android.com/details?id=jp.netplan.assortcam
AdvancedPreferences – android
DeveloperのサイトでPreferenceについて調べていたところ、
AdvancedPreferencesというサンプルがありました。
ソースだけでは様子が分からないので、ApiDemoを開いて
みたところ、項目を選ぶとカウンタが増えるとか、1秒ごとに
チェックボックスが自動的にOn/Offされるとか。
localization – android
Androidアプリ開発のメモです。
Localization
基本的には、res内のフォルダ名に -
NpsViewer リリース – androidアプリ
東京電力様(TEPCO)のウェブサイトに公開されている福島第一原子力発電所の温度データ(CSV)を利用して
1号機から3号機の主なポイントの温度変化をグラフで表示するアプリ “NpsViewer” を開発・リリースしました。
専用のページを用意しましたので、そちらをご覧ください。
弊社開発ソフト「NpsViewer」のご紹介
Tag: Fire Tv
Androidで画面のキャスト – Fire TV Stick
今年(2016)の春にFire TV Stickを購入して、オンデマンドの番組を視聴しています。
このFire TV Stickを使ってオンラインでお手軽にニュースを見ようとすると、NHK World TV(英語)アプリを使うかYoutubeでニュースカテゴリをあさるくらい。しかも、Youtubeの場合はニュースが断片的にアップされていて、都度CMが流れたり、少し前の再生済みのニュースをまた再生したりと、結構不便です。そこで、もう少しニュースをまとめて効率よく視聴することはできないかと調べたところ、AbemaTVアプリ(Android)が見つかりました。といっても、これをFire TV Stickにインストールするわけではなくて、Androidのスマホから画面のキャストで視聴します。
※AbemaTVアプリをFire TVにインストールする方法もあるようです。検索してみてください。
ここで、Fire TV Stickの「ディスプレイミラーリング」機能を使うわけですが、何度かは使えたものの、その後つながらなくなったのでしばらく放置していました。
※ちなみに、Youtubeアプリ(Android)からのFire TVへの画面のキャストは難なくつながります。
Amazon Fire TVのディスプレイミラーリングを使用する
これでつないだ後で切断すると、次からつながらなくなる症状があります。
そこで、これまでに実施したこと。
- Fire TV Stickの工場出荷時の設定にリセット
設定 -> システム -> 工場出荷時の設定にリセット - Wi-Fiの接続を2.4GHzに揃える
- Android端末のWi-Fi Directの接続履歴を削除
設定 -> Wi-Fi -> 詳細設定 -> Wi-Fi Direct -> 接続履歴のあるグループ - キャストの「詳細設定」でデバイスを選択して接続
そして、接続操作ですが、Fire TV Stick側で、
設定 > ディスプレイとサウンド > ディスプレイミラーリングを有効にする
を選択しておいて、Android端末でキャストを開きます。
Tag: ミラーリング、キャスト
Androidで画面のキャスト – Fire TV Stick
今年(2016)の春にFire TV Stickを購入して、オンデマンドの番組を視聴しています。
このFire TV Stickを使ってオンラインでお手軽にニュースを見ようとすると、NHK World TV(英語)アプリを使うかYoutubeでニュースカテゴリをあさるくらい。しかも、Youtubeの場合はニュースが断片的にアップされていて、都度CMが流れたり、少し前の再生済みのニュースをまた再生したりと、結構不便です。そこで、もう少しニュースをまとめて効率よく視聴することはできないかと調べたところ、AbemaTVアプリ(Android)が見つかりました。といっても、これをFire TV Stickにインストールするわけではなくて、Androidのスマホから画面のキャストで視聴します。
※AbemaTVアプリをFire TVにインストールする方法もあるようです。検索してみてください。
ここで、Fire TV Stickの「ディスプレイミラーリング」機能を使うわけですが、何度かは使えたものの、その後つながらなくなったのでしばらく放置していました。
※ちなみに、Youtubeアプリ(Android)からのFire TVへの画面のキャストは難なくつながります。
Amazon Fire TVのディスプレイミラーリングを使用する
これでつないだ後で切断すると、次からつながらなくなる症状があります。
そこで、これまでに実施したこと。
- Fire TV Stickの工場出荷時の設定にリセット
設定 -> システム -> 工場出荷時の設定にリセット - Wi-Fiの接続を2.4GHzに揃える
- Android端末のWi-Fi Directの接続履歴を削除
設定 -> Wi-Fi -> 詳細設定 -> Wi-Fi Direct -> 接続履歴のあるグループ - キャストの「詳細設定」でデバイスを選択して接続
そして、接続操作ですが、Fire TV Stick側で、
設定 > ディスプレイとサウンド > ディスプレイミラーリングを有効にする
を選択しておいて、Android端末でキャストを開きます。
Tag: Font-Family
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
Chromeで文字化け – Windows7
昨年の記事「WordPressのダッシュボードで文字化け」に関連して、Windows7でも同様の文字化けがありました。
今回はWordPressとは関係なく、あるイベントの登録フォームに入力していて文字化けが発生。
スタイルを確認すると次のようになっています。
font: normal 1em Verdana, 'Trebuchet MS', Tahoma, sans-serif;
ちなみに[CTRL]+マウススクロールで画面のフォントサイズを変えてみると
文字化けが解消。特定の文字サイズのみ □ (白抜き四角)で表示される状況です。
そこで昨年のWinXPのときと同様にフォントをカスタマイズしてみました。
※Chromeのデバッグ機能(文字化けしている部分でマウスを右クリックして「要素を検証」)
今回は “Verdana” を削除したところで文字化けが解消されたので、
C:\Windows\Fonts フォルダを開いて “Verdana” をマウス右クリックで
「非表示」に設定して再起動。

これで文字化けが解消された模様です。
【追記】[2012.01.23]
… と思ったのですが、再度文字化けが発生。
フォントの設定で非表示にしてもアプリケーション側が対応していないと表示されるようです。
Windows 7 で非表示に設定したフォントが表示される
やはりフォントを削除する必要があります。
まず、削除するフォントを念のため他のフォルダあるいは他の媒体にバックアップしておきます。
それからフォントの削除。
コントロール パネル\デスクトップのカスタマイズ\フォント
を開いて “Verdana” をマウス右クリックで削除。(\Windows\Fontsフォルダからでも同様)
このようにエラーが発生して削除できません。
Chromeが “Verdana” を使用中ということですね。
Chrome を一旦終了すると “Verdana” を削除することができました。
WordPressのダッシュボードで文字化け
先週あたりから、WordPressのダッシュボードで作業をしているとメニューやコンテンツの一部が文字化けするようになりました。ちょうどWordPressが3.3にアップデートされたこともあってそれが原因かと思っていたのですが、どうやらChrome(ブラウザ)とWindowsXPのフォントの組み合わせによる問題だったようです。
まず、Chromeで文字化けが起きたときに確認すべきこと。
「設定」->「ツール」->「エンコード」
エンコードが「自動検出」、「UTF-8」となっていること。 ※ご利用の状況によってはエンコードの種類が異なるかもしれません。![]()
「設定」->「オプション」->「高度な設定」->「フォントをカスタマイズ」
※この設定で文字化けが解消できるということではありませんので、念のため。 ※エンコードを「日本語(Shift_JIS)」にすると改善されるという記事もあります。
chromeのみの文字化けについて(Googleグループ)
例えば、あるウェブページのcssでfont-familyに英語のフォントが指定されていると、WindowsXPのバグによって日本語フォントへの置き換えができず文字化けしてしまうようです。
確かに、過去にAdobe製品他をインストールしたことがあっていろいろなフォントが入っていました。
そして、WordPressのダッシュボードには、たとえば次のようなcssが設定されています。
body :not(textarea) { font-style: normal !important; font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif !important; }
そこで、Chromeのデバッグ機能によってcssを調べてみました。
Tag: Languages
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
Tag: Twitter
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
Tag: フォント
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
LibreOffice Draw のフォント設定
普段、設計書などドキュメントを書く場合に LibreOffice Draw を使っています。表がメインの場合は Calc のほうが便利ですが、文章と図(画像)がメインの場合は、セルの制約がなくてグリッドで簡単に位置決めができたり、コネクタの機能など Draw が好みです。
で、Draw で文書を作成する場合に、デフォルトの文字サイズがプレゼンテーション用の 18pt となっていて設計書としては大きすぎ。この文字サイズを、テキスト枠を配置する際に毎回変更となると非常に手間がかかります。
そこで、文書の標準のスタイルを編集します。
「書式」->「スタイルと書式設定」を開くと、

次のウインドウが表示されますので「標準」を右クリックして「変更」を選択。

すると「標準」スタイルの各種設定が表示されます。

「フォント」タブを開いて「西洋諸言語用フォント」および「アジア諸言語用フォント」のサイズを希望の数値に変更(例えば、18pt -> 12pt など)してOKをクリックします。
これでテキスト枠を追加する際は変更したサイズで文字を書くことができます。ただし、新規にファイルを作成する場合は、やはりデフォルトの18ptになってしまいます。
新規の場合も変更したフォントサイズで書きたい場合はテンプレートを編集します。
Tag: 言語設定
Twitterのフォントと言語設定 – Windows
最近、Twitterの日本語文字が薄くて等幅で読みにくい感じになったので調べてみました。
ChromeのDeveroper Toolsを開いて、
Elements -> Computed -> Rendered Fonts をみると、
Yu Gothic
Arial
となっています。
適用されているスタイルは、
body.ms-windows {
font-family: Arial,sans-serif;
}
Arialの指定により、Windows10のシステムフォント”游ゴシック”で表示されている様子。
というのは、私のTwitterの言語設定(Settings -> Languages)が原因でした。
Twitter -> Settings -> Languages -> “English”
言語設定が英語だと上記のCSSが適用されるんですね。
そこで言語設定を日本語にしてみたところ、
body.ja {
font-family: Arial,
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
Osaka,
"メイリオ",
Meiryo,
"MS Pゴシック",
"MS PGothic",
sans-serif;
}
上記のCSSによりMeiryoでの表示が確認できました。
Developer Tools -> Elements -> Computed -> Rendered Fonts
Arial
Meiryo
Tag: FancyBox
WordPress勉強会の素材 – 城山公園
昨日(5/12)WordPress勉強会を開催しまして、その際に使った写真をこちらにアップしておきます。
WordPress標準のギャラリーで作成。リンク先をメディアファイルとしています。
昨日のデモではEasy FancyBoxというプラグインでポップアップ表示にしていましたが、当サイトはJetpackプラグインを使っておりましてcarouselという機能でスライド表示ができるようになっています。
#ということに、作ってみて気が付きました。
Tag: Gallery
WordPress勉強会の素材 – 城山公園
昨日(5/12)WordPress勉強会を開催しまして、その際に使った写真をこちらにアップしておきます。
WordPress標準のギャラリーで作成。リンク先をメディアファイルとしています。
昨日のデモではEasy FancyBoxというプラグインでポップアップ表示にしていましたが、当サイトはJetpackプラグインを使っておりましてcarouselという機能でスライド表示ができるようになっています。
#ということに、作ってみて気が付きました。
AssortCam – androidアプリをリリースしました
AssortCam はAndroid端末で利用できるカメラアプリです。
あらかじめ保存用のフォルダを用意しておくことで、
撮影時に写真の仕分けができます。
弊社紹介ページ
/lib/assortcam
Android マーケット: AssortCam
https://market.android.com/details?id=jp.netplan.assortcam
Tag: Bluetooth
ファイル名の一括変更(名前の変更) – Windows10
フォルダ内の複数のファイル名を変更しようと思い、エクスプローラで複数ファイルを選択してマウス右ボタンで「名前の変更」を実行。
参考)「一気にファイル名を変更する」
するとファイル名が
“hoge (1).JPG, hoge (2).JPG, hoge (3).JPG, …”
のように「半角スペース+括弧付き連番+拡張子」になります。
まぁこのままでも問題はないのですが、スペースとか括弧が好ましくないので何かできないかと調べていたら、このような記事が見つかりました。感謝。
「一括リネームした括弧付き連番ファイル名から括弧を削除する」
ところが、これを試そうと sendTo に配置したところで「送る(N)」に表示されないことが発覚。
※たぶん不便だったけれどあまり気にしていなかった…
「Windows 10 Th2アップデートで右クリックの「送る」機能が使えなくなっていませんか?」
はい。ご指摘の通り使えなくなっておりました。
で、SendToの「Bluetooth(種類:Send To Bluetooth)」を削除して復旧。
問題となっている複数ファイルを選択して「一括リネームした括弧付き連番ファイル名から括弧を削除」することができました。
ここで「Bluetooth(種類:Send To Bluetooth)」を削除をするのが厄介。環境によるのかもしれませんが、マウスで右クリックしてコンテキストメニューで削除しようとするとマウスポインタが処理中のままで先に進めません。タスクマネージャでエクスプローラを再起動して、ドラッグ&ドロップでゴミ箱へ移動しました。
Tag: Sendto
ファイル名の一括変更(名前の変更) – Windows10
フォルダ内の複数のファイル名を変更しようと思い、エクスプローラで複数ファイルを選択してマウス右ボタンで「名前の変更」を実行。
参考)「一気にファイル名を変更する」
するとファイル名が
“hoge (1).JPG, hoge (2).JPG, hoge (3).JPG, …”
のように「半角スペース+括弧付き連番+拡張子」になります。
まぁこのままでも問題はないのですが、スペースとか括弧が好ましくないので何かできないかと調べていたら、このような記事が見つかりました。感謝。
「一括リネームした括弧付き連番ファイル名から括弧を削除する」
ところが、これを試そうと sendTo に配置したところで「送る(N)」に表示されないことが発覚。
※たぶん不便だったけれどあまり気にしていなかった…
「Windows 10 Th2アップデートで右クリックの「送る」機能が使えなくなっていませんか?」
はい。ご指摘の通り使えなくなっておりました。
で、SendToの「Bluetooth(種類:Send To Bluetooth)」を削除して復旧。
問題となっている複数ファイルを選択して「一括リネームした括弧付き連番ファイル名から括弧を削除」することができました。
ここで「Bluetooth(種類:Send To Bluetooth)」を削除をするのが厄介。環境によるのかもしれませんが、マウスで右クリックしてコンテキストメニューで削除しようとするとマウスポインタが処理中のままで先に進めません。タスクマネージャでエクスプローラを再起動して、ドラッグ&ドロップでゴミ箱へ移動しました。
sendTo (送る) でのトラブル対応
Windows XPでのトラブルシューティングです。
マウスの右ボタンで「送る」を選ぶと、しばらく操作できなくなる
という不具合があって調べてみました。
「Windows XP の [送る] メニューに項目を追加する方法」
http://support.microsoft.com/kb/310270/ja
ソフトウェアによっては、インストール時にsendTo というフォルダに
ショートカットを設置する場合があります。
この追加されたショートカットが原因で
上記のような不具合が発生するようです。
ということで、
「ファイル名を指定して実行」に sendto を入力して
開いたフォルダ内の不要なショートカットを削除して
解決しました。
Tag: ファイル名
ファイル名の一括変更(名前の変更) – Windows10
フォルダ内の複数のファイル名を変更しようと思い、エクスプローラで複数ファイルを選択してマウス右ボタンで「名前の変更」を実行。
参考)「一気にファイル名を変更する」
するとファイル名が
“hoge (1).JPG, hoge (2).JPG, hoge (3).JPG, …”
のように「半角スペース+括弧付き連番+拡張子」になります。
まぁこのままでも問題はないのですが、スペースとか括弧が好ましくないので何かできないかと調べていたら、このような記事が見つかりました。感謝。
「一括リネームした括弧付き連番ファイル名から括弧を削除する」
ところが、これを試そうと sendTo に配置したところで「送る(N)」に表示されないことが発覚。
※たぶん不便だったけれどあまり気にしていなかった…
「Windows 10 Th2アップデートで右クリックの「送る」機能が使えなくなっていませんか?」
はい。ご指摘の通り使えなくなっておりました。
で、SendToの「Bluetooth(種類:Send To Bluetooth)」を削除して復旧。
問題となっている複数ファイルを選択して「一括リネームした括弧付き連番ファイル名から括弧を削除」することができました。
ここで「Bluetooth(種類:Send To Bluetooth)」を削除をするのが厄介。環境によるのかもしれませんが、マウスで右クリックしてコンテキストメニューで削除しようとするとマウスポインタが処理中のままで先に進めません。タスクマネージャでエクスプローラを再起動して、ドラッグ&ドロップでゴミ箱へ移動しました。
Tag: 送る
ファイル名の一括変更(名前の変更) – Windows10
フォルダ内の複数のファイル名を変更しようと思い、エクスプローラで複数ファイルを選択してマウス右ボタンで「名前の変更」を実行。
参考)「一気にファイル名を変更する」
するとファイル名が
“hoge (1).JPG, hoge (2).JPG, hoge (3).JPG, …”
のように「半角スペース+括弧付き連番+拡張子」になります。
まぁこのままでも問題はないのですが、スペースとか括弧が好ましくないので何かできないかと調べていたら、このような記事が見つかりました。感謝。
「一括リネームした括弧付き連番ファイル名から括弧を削除する」
ところが、これを試そうと sendTo に配置したところで「送る(N)」に表示されないことが発覚。
※たぶん不便だったけれどあまり気にしていなかった…
「Windows 10 Th2アップデートで右クリックの「送る」機能が使えなくなっていませんか?」
はい。ご指摘の通り使えなくなっておりました。
で、SendToの「Bluetooth(種類:Send To Bluetooth)」を削除して復旧。
問題となっている複数ファイルを選択して「一括リネームした括弧付き連番ファイル名から括弧を削除」することができました。
ここで「Bluetooth(種類:Send To Bluetooth)」を削除をするのが厄介。環境によるのかもしれませんが、マウスで右クリックしてコンテキストメニューで削除しようとするとマウスポインタが処理中のままで先に進めません。タスクマネージャでエクスプローラを再起動して、ドラッグ&ドロップでゴミ箱へ移動しました。
sendTo (送る) でのトラブル対応
Windows XPでのトラブルシューティングです。
マウスの右ボタンで「送る」を選ぶと、しばらく操作できなくなる
という不具合があって調べてみました。
「Windows XP の [送る] メニューに項目を追加する方法」
http://support.microsoft.com/kb/310270/ja
ソフトウェアによっては、インストール時にsendTo というフォルダに
ショートカットを設置する場合があります。
この追加されたショートカットが原因で
上記のような不具合が発生するようです。
ということで、
「ファイル名を指定して実行」に sendto を入力して
開いたフォルダ内の不要なショートカットを削除して
解決しました。
Tag: 連番
ファイル名の一括変更(名前の変更) – Windows10
フォルダ内の複数のファイル名を変更しようと思い、エクスプローラで複数ファイルを選択してマウス右ボタンで「名前の変更」を実行。
参考)「一気にファイル名を変更する」
するとファイル名が
“hoge (1).JPG, hoge (2).JPG, hoge (3).JPG, …”
のように「半角スペース+括弧付き連番+拡張子」になります。
まぁこのままでも問題はないのですが、スペースとか括弧が好ましくないので何かできないかと調べていたら、このような記事が見つかりました。感謝。
「一括リネームした括弧付き連番ファイル名から括弧を削除する」
ところが、これを試そうと sendTo に配置したところで「送る(N)」に表示されないことが発覚。
※たぶん不便だったけれどあまり気にしていなかった…
「Windows 10 Th2アップデートで右クリックの「送る」機能が使えなくなっていませんか?」
はい。ご指摘の通り使えなくなっておりました。
で、SendToの「Bluetooth(種類:Send To Bluetooth)」を削除して復旧。
問題となっている複数ファイルを選択して「一括リネームした括弧付き連番ファイル名から括弧を削除」することができました。
ここで「Bluetooth(種類:Send To Bluetooth)」を削除をするのが厄介。環境によるのかもしれませんが、マウスで右クリックしてコンテキストメニューで削除しようとするとマウスポインタが処理中のままで先に進めません。タスクマネージャでエクスプローラを再起動して、ドラッグ&ドロップでゴミ箱へ移動しました。
Tag: エアステーション
AirStation設定ツールで無線親機が見つからない場合 – VirtualBox
Buffaloの無線LAN中継器を使っておりまして、ファームウェアを更新しようとしてはまりましたので、備忘録として書いておきます。
Buffaloのエアステーション設定ツール
https://www.buffalo.jp/support/other/airset.html
見つからない場合は「AS設定ツール」で検索してください。
設定ツールを実行すると、
「2つ以上のネットワーク接続がつながっています。…」
このような警告メッセージが表示されて、続行すると、
このように「無線親機が見つかりませんでした。」となってしまいます。
私の場合は、次の画面のように VirtualBox NDIS 6.0 Miniport Driver を無効にすることで、無線親機を見つけることができました。
上記画面はVPN接続もつながっていない状態です。VPN接続を有効にすると、やはり「無線親機が見つかりませんでした。」となります。
ということで、Wi-Fi接続のみを有効にした状態でエアステーション設定ツールを実行すると、次のように無線親機を見つけることができました。
Tag: 無線親機
AirStation設定ツールで無線親機が見つからない場合 – VirtualBox
Buffaloの無線LAN中継器を使っておりまして、ファームウェアを更新しようとしてはまりましたので、備忘録として書いておきます。
Buffaloのエアステーション設定ツール
https://www.buffalo.jp/support/other/airset.html
見つからない場合は「AS設定ツール」で検索してください。
設定ツールを実行すると、
「2つ以上のネットワーク接続がつながっています。…」
このような警告メッセージが表示されて、続行すると、
このように「無線親機が見つかりませんでした。」となってしまいます。
私の場合は、次の画面のように VirtualBox NDIS 6.0 Miniport Driver を無効にすることで、無線親機を見つけることができました。
上記画面はVPN接続もつながっていない状態です。VPN接続を有効にすると、やはり「無線親機が見つかりませんでした。」となります。
ということで、Wi-Fi接続のみを有効にした状態でエアステーション設定ツールを実行すると、次のように無線親機を見つけることができました。
Tag: 見つからない
AirStation設定ツールで無線親機が見つからない場合 – VirtualBox
Buffaloの無線LAN中継器を使っておりまして、ファームウェアを更新しようとしてはまりましたので、備忘録として書いておきます。
Buffaloのエアステーション設定ツール
https://www.buffalo.jp/support/other/airset.html
見つからない場合は「AS設定ツール」で検索してください。
設定ツールを実行すると、
「2つ以上のネットワーク接続がつながっています。…」
このような警告メッセージが表示されて、続行すると、
このように「無線親機が見つかりませんでした。」となってしまいます。
私の場合は、次の画面のように VirtualBox NDIS 6.0 Miniport Driver を無効にすることで、無線親機を見つけることができました。
上記画面はVPN接続もつながっていない状態です。VPN接続を有効にすると、やはり「無線親機が見つかりませんでした。」となります。
ということで、Wi-Fi接続のみを有効にした状態でエアステーション設定ツールを実行すると、次のように無線親機を見つけることができました。
Tag: 設定ツール
AirStation設定ツールで無線親機が見つからない場合 – VirtualBox
Buffaloの無線LAN中継器を使っておりまして、ファームウェアを更新しようとしてはまりましたので、備忘録として書いておきます。
Buffaloのエアステーション設定ツール
https://www.buffalo.jp/support/other/airset.html
見つからない場合は「AS設定ツール」で検索してください。
設定ツールを実行すると、
「2つ以上のネットワーク接続がつながっています。…」
このような警告メッセージが表示されて、続行すると、
このように「無線親機が見つかりませんでした。」となってしまいます。
私の場合は、次の画面のように VirtualBox NDIS 6.0 Miniport Driver を無効にすることで、無線親機を見つけることができました。
上記画面はVPN接続もつながっていない状態です。VPN接続を有効にすると、やはり「無線親機が見つかりませんでした。」となります。
ということで、Wi-Fi接続のみを有効にした状態でエアステーション設定ツールを実行すると、次のように無線親機を見つけることができました。
Tag: Ndis
vagrant 起動エラー – VirtualBox
仮想環境を整えるために VirtualBox を起動したところ、バージョンアップがリリースされているようなメッセージがあったので、早速ダウンロードしてインストール。
すると、vagrant upでエラーが発生して起動できず。
シェルの画面には次のようなメッセージ。
The guest machine entered an invalid state while waiting for it to boot. Valid states are ‘starting, running’. The machine is in the ‘poweroff’ state. Please verify everything is configured properly and try again.
これだけでは様子がわからないのでGUI(VirtualBoxマネージャ)から起動してみると、
このようなエラーメッセージが表示されました。
このエラーメッセージを元にGoogleで検索して見つかった記事。
Failed to open/create the internal network Vagrant on Windows10
Tag: VCCW
vagrant 起動エラー – VirtualBox
仮想環境を整えるために VirtualBox を起動したところ、バージョンアップがリリースされているようなメッセージがあったので、早速ダウンロードしてインストール。
すると、vagrant upでエラーが発生して起動できず。
シェルの画面には次のようなメッセージ。
The guest machine entered an invalid state while waiting for it to boot. Valid states are ‘starting, running’. The machine is in the ‘poweroff’ state. Please verify everything is configured properly and try again.
これだけでは様子がわからないのでGUI(VirtualBoxマネージャ)から起動してみると、
このようなエラーメッセージが表示されました。
このエラーメッセージを元にGoogleで検索して見つかった記事。
Failed to open/create the internal network Vagrant on Windows10
Tag: ASUS
PCメンテナンス – ASUS UX32VD
先日のWindows10のアップデート、
もしくは昨日、液晶ディスプレイを交換したのが要因?
原因は不明ですが、Chrome(ブラウザ)を操作中にフリーズして数分から10分程度の間、PCが操作できなくなる状態になりました。復旧するまでタスクマネージャすら開かない。
ついでにタッチパッドのSmart Gestureが動かない状態だったので、あわせてメンテナンスしました。
Smart GestureのドライバはASUSのサポートからダウンロード。
http://support.asus.com/ServiceHome.aspx?SLanguage=en
“smart gesture”で検索。
いくつか候補が見つかるので、その中でWindows 10 64bitの選択肢があるものを開いてダウンロード。
現時点で Version V4.0.12 が最新の模様。ASUS Smart Gesture (Touchpad Driver)
インストール時に「すでに新しいドライバが…」のようなメッセージが出る場合は、インストール済みのドライバを削除して、ダウンロードしたドライバをインストール。
これで、タッチパッドが復旧できました。
次にChromeのフリーズの件。
グラフィックスドライバが原因のような記事があったので実施してみました。
インテル ドライバー・アップデート・ユーティリティー
スキャンしたところ、BluetoothとGraphicsドライバのアップデートが見つかりました。
インストールを実行すると、Bluetoothのドライバは失敗。Graphicsドライバは成功。
ひとまずこれで様子を見てみます。
ASUS X202Eメンテナンス中 – Windows10 -> 8.1
ASUS Windows MDA特設サイトを見ると、X202EはWindows10に対応していない模様?
という状況を知らないまま、先月Windows10にアップグレードして問題なく使えていたのですが、いくつかアプリを追加でインストールしていたところWi-Fiがつながらなくなりました。
下記、まだ実施していませんが、情報をかき集めているところです。
ドライバの問題かと、探してみるとASUSのサイトに更新情報がありました。
ASUS – Support For Notebook WLAN
上記ページを開いてOS:Windows 10 64bitを選択。Version V12.0.0.126
Qualcomm Atheros Wireless Lan Driver and Application
2015.09.22 update
上記よりも少し前の8月の記事ですが、
Qualcomm Atheros AR9485 compatibility with Windows 10
メーカーが提供するドライバを互換モードでセットアップするような記事もありました。
ひとまずWindows8.1に戻すべきか…
…ということでWindows8.1に戻したところ、
Wi-Fi接続は復旧したものの、今度はChromeが起動できない。
グーグルクローム「クラスが登録されていません」エラーの対処方法
こちらの記事を参考にさせていただきました。
あらためてChromeを上書きインストールして復旧しました。
USB3.0ケーブルを交換 – ASUS MB168B+
ノートPCの画面を拡張するために購入した ASUS MB168B+ ですが、たまにデバイスが認識されないことがありまして、接続するUSBポートもしくはUSBハブの問題かと思っていたのですが、付属のUSBケーブルが原因かも?ということで交換してみました。
本日手元に届いたので早速交換して、問題なく表示できました。
試しに元のASUS付属ケーブルに戻したところ、認識できない状況(ASUSのロゴが出ないままON – OFFを繰り返す)が発生。やはりUSB3.0ケーブルが原因だったようです。もしかすると使っているうちにケーブルにストレスがかかって接触不良になったのかもしれません。ということで、このELECOM製の新しいケーブルで様子を見てみます。
Tag: Intel
PCメンテナンス – ASUS UX32VD
先日のWindows10のアップデート、
もしくは昨日、液晶ディスプレイを交換したのが要因?
原因は不明ですが、Chrome(ブラウザ)を操作中にフリーズして数分から10分程度の間、PCが操作できなくなる状態になりました。復旧するまでタスクマネージャすら開かない。
ついでにタッチパッドのSmart Gestureが動かない状態だったので、あわせてメンテナンスしました。
Smart GestureのドライバはASUSのサポートからダウンロード。
http://support.asus.com/ServiceHome.aspx?SLanguage=en
“smart gesture”で検索。
いくつか候補が見つかるので、その中でWindows 10 64bitの選択肢があるものを開いてダウンロード。
現時点で Version V4.0.12 が最新の模様。ASUS Smart Gesture (Touchpad Driver)
インストール時に「すでに新しいドライバが…」のようなメッセージが出る場合は、インストール済みのドライバを削除して、ダウンロードしたドライバをインストール。
これで、タッチパッドが復旧できました。
次にChromeのフリーズの件。
グラフィックスドライバが原因のような記事があったので実施してみました。
インテル ドライバー・アップデート・ユーティリティー
スキャンしたところ、BluetoothとGraphicsドライバのアップデートが見つかりました。
インストールを実行すると、Bluetoothのドライバは失敗。Graphicsドライバは成功。
ひとまずこれで様子を見てみます。
Tag: Smart Gesture
PCメンテナンス – ASUS UX32VD
先日のWindows10のアップデート、
もしくは昨日、液晶ディスプレイを交換したのが要因?
原因は不明ですが、Chrome(ブラウザ)を操作中にフリーズして数分から10分程度の間、PCが操作できなくなる状態になりました。復旧するまでタスクマネージャすら開かない。
ついでにタッチパッドのSmart Gestureが動かない状態だったので、あわせてメンテナンスしました。
Smart GestureのドライバはASUSのサポートからダウンロード。
http://support.asus.com/ServiceHome.aspx?SLanguage=en
“smart gesture”で検索。
いくつか候補が見つかるので、その中でWindows 10 64bitの選択肢があるものを開いてダウンロード。
現時点で Version V4.0.12 が最新の模様。ASUS Smart Gesture (Touchpad Driver)
インストール時に「すでに新しいドライバが…」のようなメッセージが出る場合は、インストール済みのドライバを削除して、ダウンロードしたドライバをインストール。
これで、タッチパッドが復旧できました。
次にChromeのフリーズの件。
グラフィックスドライバが原因のような記事があったので実施してみました。
インテル ドライバー・アップデート・ユーティリティー
スキャンしたところ、BluetoothとGraphicsドライバのアップデートが見つかりました。
インストールを実行すると、Bluetoothのドライバは失敗。Graphicsドライバは成功。
ひとまずこれで様子を見てみます。
Tag: Plugins
Tag: Crucial
HP製デスクトップPCのSSD換装 – Windows7
対象はHP dc5700sf
結構古いPCですが、SSDに入れ替えればまだ少しは使えるかと思い、換装してみました。メモ書き程度ですが残しておきます。
まず、USB3がないのでIFボードを購入して拡張スロットで対応。HDDのクローンを作成するのにUSB2では時間がかかりすぎると思いまして。
クローンのターゲットはCrucial BX100。
このSSDをケースにセットしてUSBケーブルでPCに接続。
クローンの作成はEaseUS Todo Backup Free
で、Cドライブ(HDD)のクローン先をSSDにセットして実行。
約1時間ほどでクローン作成終了。
さて、HDDをSSDに差し替えて起動してみると、
“Non system disk …”
という黒い画面で先へ進めず。
SSDのパーティションを”アクティブ”にしていませんでした。
ということで、HDDを元に戻してSSDをUSBで接続して、
「コンピュータの管理」->「ディスクの管理」
を開いて、SSDのパーティションをマウス右クリック。
「パーティションをアクティブとしてマーク」
再度、HDDをSSDに差し替えて起動すると、今度は、
“BOOTMGR is missing”
で進めず。
“BOOTMGR is missing「BOOTMGR」とは何か”
こちらの記事を参考にさせていただきました。
またまたSSDをHDDに戻して、
「システム修復ディスク」
を作成(CD-ROM)。
このCD-ROMから起動して、
「システム回復オプション」->「スタートアップ修復」
やっとのことでSSDから無事起動することができました。
Tag: Easeus
HP製デスクトップPCのSSD換装 – Windows7
対象はHP dc5700sf
結構古いPCですが、SSDに入れ替えればまだ少しは使えるかと思い、換装してみました。メモ書き程度ですが残しておきます。
まず、USB3がないのでIFボードを購入して拡張スロットで対応。HDDのクローンを作成するのにUSB2では時間がかかりすぎると思いまして。
クローンのターゲットはCrucial BX100。
このSSDをケースにセットしてUSBケーブルでPCに接続。
クローンの作成はEaseUS Todo Backup Free
で、Cドライブ(HDD)のクローン先をSSDにセットして実行。
約1時間ほどでクローン作成終了。
さて、HDDをSSDに差し替えて起動してみると、
“Non system disk …”
という黒い画面で先へ進めず。
SSDのパーティションを”アクティブ”にしていませんでした。
ということで、HDDを元に戻してSSDをUSBで接続して、
「コンピュータの管理」->「ディスクの管理」
を開いて、SSDのパーティションをマウス右クリック。
「パーティションをアクティブとしてマーク」
再度、HDDをSSDに差し替えて起動すると、今度は、
“BOOTMGR is missing”
で進めず。
“BOOTMGR is missing「BOOTMGR」とは何か”
こちらの記事を参考にさせていただきました。
またまたSSDをHDDに戻して、
「システム修復ディスク」
を作成(CD-ROM)。
このCD-ROMから起動して、
「システム回復オプション」->「スタートアップ修復」
やっとのことでSSDから無事起動することができました。
Tag: SSD
HP製デスクトップPCのSSD換装 – Windows7
対象はHP dc5700sf
結構古いPCですが、SSDに入れ替えればまだ少しは使えるかと思い、換装してみました。メモ書き程度ですが残しておきます。
まず、USB3がないのでIFボードを購入して拡張スロットで対応。HDDのクローンを作成するのにUSB2では時間がかかりすぎると思いまして。
クローンのターゲットはCrucial BX100。
このSSDをケースにセットしてUSBケーブルでPCに接続。
クローンの作成はEaseUS Todo Backup Free
で、Cドライブ(HDD)のクローン先をSSDにセットして実行。
約1時間ほどでクローン作成終了。
さて、HDDをSSDに差し替えて起動してみると、
“Non system disk …”
という黒い画面で先へ進めず。
SSDのパーティションを”アクティブ”にしていませんでした。
ということで、HDDを元に戻してSSDをUSBで接続して、
「コンピュータの管理」->「ディスクの管理」
を開いて、SSDのパーティションをマウス右クリック。
「パーティションをアクティブとしてマーク」
再度、HDDをSSDに差し替えて起動すると、今度は、
“BOOTMGR is missing”
で進めず。
“BOOTMGR is missing「BOOTMGR」とは何か”
こちらの記事を参考にさせていただきました。
またまたSSDをHDDに戻して、
「システム修復ディスク」
を作成(CD-ROM)。
このCD-ROMから起動して、
「システム回復オプション」->「スタートアップ修復」
やっとのことでSSDから無事起動することができました。
Tag: Todo
HP製デスクトップPCのSSD換装 – Windows7
対象はHP dc5700sf
結構古いPCですが、SSDに入れ替えればまだ少しは使えるかと思い、換装してみました。メモ書き程度ですが残しておきます。
まず、USB3がないのでIFボードを購入して拡張スロットで対応。HDDのクローンを作成するのにUSB2では時間がかかりすぎると思いまして。
クローンのターゲットはCrucial BX100。
このSSDをケースにセットしてUSBケーブルでPCに接続。
クローンの作成はEaseUS Todo Backup Free
で、Cドライブ(HDD)のクローン先をSSDにセットして実行。
約1時間ほどでクローン作成終了。
さて、HDDをSSDに差し替えて起動してみると、
“Non system disk …”
という黒い画面で先へ進めず。
SSDのパーティションを”アクティブ”にしていませんでした。
ということで、HDDを元に戻してSSDをUSBで接続して、
「コンピュータの管理」->「ディスクの管理」
を開いて、SSDのパーティションをマウス右クリック。
「パーティションをアクティブとしてマーク」
再度、HDDをSSDに差し替えて起動すると、今度は、
“BOOTMGR is missing”
で進めず。
“BOOTMGR is missing「BOOTMGR」とは何か”
こちらの記事を参考にさせていただきました。
またまたSSDをHDDに戻して、
「システム修復ディスク」
を作成(CD-ROM)。
このCD-ROMから起動して、
「システム回復オプション」->「スタートアップ修復」
やっとのことでSSDから無事起動することができました。
Tag: Calc
Calcの日付フォーマット – LibreOffice
「自由に使えるオフィススイート」https://ja.libreoffice.org/
Calcのセルに日付データがある場合のフォーマットについてメモ書きです。
例えば、セルの内容が次のような場合。
1 |
1 |
1 |
1 |