3月に1週間くらいかけて自作したので備忘録として書いておきます。
3月に1週間くらいかけて自作したので備忘録として書いておきます。
以下の機能がある定点カメラを作成しました。
経緯
2016 年までは Raspberry Pi と homebridge を使って自作でスマートホームを構成していましたが。 2018 年以降は既成品も充実してきたので、これまでの Raspberry Pi の用途は無くなってしまいました。
やること
最近は WEB サイトや CLI ツールを作ることが多かったので Raspberry Pi を使ってモノづくりが出来ないかなと考えて、だいぶ前に観た「父親が娘の写真を 18 年間撮ってつなぎ合わせた動画」が勝手な親心ながら良いなと思ったので、Raspberry Pi を使って似たようなことを自動化をしてみることにしました。
自作キーボード沼に最短でハマるまでの手順書を書き記しておきます。
ここ 1,2 ヶ月で興味を持ち始めて自作キーボードデビューしました!
沼にハマってからは、会社にキーボードの Slack チャンネルを作り、テックブログにも記事を書きました。 この短期間でかなり下調べしたつもりですが、誤りがあった場合は優しく指摘してもらえればと思います 🙏
この手順書は自作キーボードに興味があるけど、自分と同じようにパーツや用語いろいろあってわからないという人向けに書いたものです。
まずは以下の手順でパーツを選ぶとスムーズです。
スマートホームはラズパイで自作しなくても安く構築できる時代
Siri と Google Home と Alexa を実際使ってみて、 スマートホーム 1.0 の頃は Homebridge とラズパイの組み合わせで Siri 大活躍だったが、 Google Home と Alexa が家にきてからはスマート家電の種類も増えてラズパイの用途は少し別のことで使うようになった。
個人的には Google Home の mini じゃないやつが優勝だと思う。 理由を書く。
海外製品の日本語対応
どちらかというと Alexa が残念で日本語対応されていない場合、 Amazon.com のアカウントで Alexa をアクティベートしないといけない。 Amazon Music など Amazon.co.jp アカウントなので利用できないし不便。
Google Home の場合は日本語対応されてない事がそもそもなかった。
アプリの使い勝手
Google Home アプリは機能面でも UI でも快適。 唯一欠点を挙げるとスケジュールのハブ機能が物足りない。 だがスマート家電ごとのアプリで設定はできるので不便はしていない。
できること
購入したスマート家電
これで「おはよう」と言えば天気を読み上げる & ダイニング照明 100% & テレビをつけるし「おやすみ」と言えばテレビ消す & リビング照明 10% & 寝室照明みたいなことをしてくれる。
購入して思うのが AI アシスタントと連携できるスマート家電は少ないし、高すぎる。 そんな中で Xiaomi の家電は安いし使い勝手もいいのでおすすめしたい。
書斎とベットをXiaomiの電飾でオシャンティにした。スマート家電なので完璧。 pic.twitter.com/Z8SUyFmw4L
— ᴊᴀxx₂₁₀₄ (@jaxx2104) October 6, 2018
これを Amazon.com のインターナショナルシッピングから購入した。
寝室照明を焚き火のような黄色から橙色のゆらぎ照明にしていて、眠りやすい。
あと Rumba を買ったが Xiaomi からも同様の製品が出ていて安い。 掃除っぷりも動画でみた感じはいいので、気になる気になる。
ブログ書く枠で参加させていただいたのでレポート👨💻
@kazu_pon さん
スピーカーとタイトルが発表 🎉
One More Thing 🎉
夏休みの期間でやったこと、技術的な部分は Qiita にエントリーでも書きたいけど仕事復帰すると忘れてしまいそうなのでこのエントリーは一旦のメモです。(写真は 6 日目に行った蔵前のカフェ)
@千葉
@銚子
@銚子
@蔵前
@渋谷
文字におこすとやった感ある。 だけど一日の大半は遊んでいて実際は大したことやってないです。
このブログは静的サイトジェネレータを使って書いてます。
マークダウンなので文章自体は書きやすいんですが、WordPress と違って iPad や iPhone から更新する方法はいまひとつな感じでした。通勤時間や寝る前のちょっとの時間を有効活用したかったので、試している方法を書いておきます。
複数の端末からアクセスできるように Markdown を置いているフォルダを Dropbox フォルダにシンボリックリンクを貼ります。写真とかも携帯からアップしやすくて便利かもです。
iPad 向けエディタは 1Writer、Bear、Byword などなど、 たくさんあるんですが個人的には Editorial が一番使いやすい感じがしました。
Editorial http://omz-software.com/editorial/
マークダウンが書けて記号をタイプしやすいようキーボード拡張がついていて Dropbox 連携もできて、さらに後述する Workflow という機能があるのでお勧めです。
インストールした後は Dropbox 連携を済ませておきます。
よいタイミングかなと思い書き記すことにします。
2013 年に Web メディアを運営している会社にインターンシップを経て新卒入社しました。 主に自社 Web メディアの開発でしたが病院やら学校サイトの受託開発もやってきました。
4 年間でやったこと(受託を除く)
開発メンバーは少なかったですがエンジニアとしての基礎を学べて、技術面などの新しい取り組みについても割と寛容で、提案すればだいたいやらせてもらえたので自分には合っていました。 またタイミングよく各メディアのリニューアルや新規事業の立ち上げに携われたので、この 4 年間は貴重な経験だったなと思います。
たぶんいろんなタイミングが重なって転職しようと思いましたが、主な理由は以下 3 つです。
あとは純粋にエンジニアとしての評価がどれくらいあるのか知りたかったので転職しました。
転職には転職ドラフトと Wantedly を使いました。個人的に就活をあまり経験していなかった事もあり、あらためていろんな会社を見ようという事で 10 社くらい受けました。技術課題の提出期限が 3 社かぶった時は、仕事でのリリースとの両立が難しくてヒーヒー言ってました。でも転職活動は総じて楽しかったです。
結果いくつか内定もらった中で、現状に課題感がありながらも、フロントエンドに明るくなりそうな感じがした 1 社に転職を決めました。
結果としてエンジニアが 3 人の会社から社員とパートナー合わせると 100 人規模の会社に転職しました。 以下はこれまでもこれからも大切にしようと思っていることです。
同じようなキャリアを進む人は少ないと思うけど、もしエンジニアならどこへ行っても 技術的な興味とプロダクトへの活かしどころに常にアンテナを張る必要があるなと感じます。
30 歳になって東京オリンピックを家族 3 人で一緒に見るころには、もう少しイケているエンジニアになっていたいものです。終わり。
正直なところ本を読むのが苦手です。
なぜか理由はよくわからないけど。学生時代、活字に親しんでこなかったツケがまわってきたんだと思います。
それでもエンジニアとして、継続的に本を読まないといけません。 本はネットと違って
などのメリットがあり、技術の習得やら再確認やらで読む必要があります。
試行錯誤の結果、本を Siri に読んでもらえばよいんだという結論に至りました。
これによって、読み上げ速度を 3 倍速くらいまで上げれば普通の読書と同じくらいのスピードで読めるし、両手を塞がないので通勤や育児中も読書ができます。
より快適な読書ライフを 👩💻
いままでコードを書くとき Emacs か Atom で書いてました。
ローカルではもっぱら Atom を使っていたのですが自分の環境だとちょっと立ち上がりが重い。 さすがに耐えられなくなって少し前から Visual Studio Code にエディタを移行してみています。
追加した拡張機能などメモしておきます。
Git や Lint 関連の機能は初期状態で動作していて、とても始めやすい設定になっていました。
かなり遅いけれど最後の正月休みなので区切りのため去年を振り返ってみました。
今までこれといった趣味がながったのですが、HomeKit や Raspberry Pi を中心としたスマートホーム化をきっかけにハマった 1 年でした。 現在は自宅の照明やエアコン、温度計を自動化し快適な生活を過ごしています。 アドベントカレンダーでは irMagician の homebridge プラグインを作成しエントリにしました。
正月前に chibi:bit をポチったのと、Kickstarter で Neture Remo に出資したので暑い夏までに届くとよいなと思ってます。
2016 年で一番良かったゲーム。トリコに感情移入しすぎてエンディングに向かっていくのが切なくも感じた。
これまでイベント関数でバインドした要素を取得する場合。
$(".button").on("click", function(e) {
$(this).addClass("clicked")
})
こんなコードを書いてました。
e.target
だとクリックした要素を取得するので.button
の子要素の場合があります。
$(".button").on("click", e => {
$(e.target).addClass("clicked")
})
e.currentTarget
だとバインドした要素を取得します。
$(".button").on("click", e => {
$(e.currentTarget).addClass("clicked")
})
これまで WordPress で技術メモを書いていたのですが、 静的サイトジェネレータの記事を読んで試してみたいと思いました。 有名どころの jekyll, Hugo, Hexo などを一通り使ってみたのですが、 React.js 製の Gatsby がおもしろそうだなと思って WordPress 環境から移行してみました。
最近のフロントエンドはブラウザやライブラリ互換の問題を解決するため、 以前の書いた記事のように ES や SCSS をコンパイルして使うことが増えてきました。 ただ環境を用意するのにいろんなツールがあって気軽に ES や SCSS を使う人にはツラい。
という事で自分なりに必要最低限ツールをまとめたパッケージを作成しました。
jaxx2104/gulp-sample https://github.com/jaxx2104/gulp-sample
これらの設定はgulpfile.js
に書いてます。
このツールは Node.js 上で動作します。公式から最新版をダウンロードしてください。
暑い季節になってきました。夏の自由研究ということで電子工作と IoT に挑戦したいと思います。
エアコンをリモートコントロールできたら快適だなぁと思ったので、家をスマートホーム化してみました。
まずどうやってスマートホーム化するか。
iOS の Homekit というものを使えば iPhone から Homekit 対応した家電を操作できます。
今後 iOS 10 で Home アプリケーションも出て対応製品も出てくるはず、でも現在日本ではこれを扱った製品はあまり多くありません。
で既存製品でも対応できるよう Homebridge という Node.js のライブラリが公開されています。
nfarina/homebridge https://github.com/nfarina/homebridge
今回はこの Homebridge を使って開発しようと思います。
去年 2015 年 6 月に JavaScript の標準仕様の ES2015 が正式にリリースされ、 自分も最近 ES2015 で書くことが多くなってきました。クラス定義やアロー関数、定数など非常に便利です。
詳細は以下の URL が分かりやすいです。
ECMAScript 2015 Features https://babeljs.io/docs/learn-es2015/
Node.js と npm インストール
$ sudo yum install nodejs npm -enablerepo=epel
$ sudo yum install gcc gcc-c++
n のインストール
$ sudo npm install -g n
n を使って Node.js のアップデート
$ n -stable
$ sudo n -stable
$ sudo n -latest
$ sudo n latest
nam のアップデート
$ sudo npm update -g npm
$ sudo npm update -g
$ sudo npm outdated -g
こんな感じでサーバ上に JS を動かすことができる
$ node
> console.log("hello world!")
hello world
環境変数の値を変更するとエラー内容を表示できる。
httpd.conf
# SetEnv FUEL_ENV PRODUCTION
SetEnv FUEL_ENV DEVELOPMENT
nginx.conf
# fastcgi_param FUEL_ENV "PRODUCTION";
fastcgi_param FUEL_ENV "DEVELOPMENT";
インストール方法 - インストール - FuelPHP ドキュメント http://fuelphp.jp/docs/1.8/installation/instructions.html
iOS の新プログラミング言語 Swift をゲームアプリケーションを作りながら触りたいと思います。
フレームワークは SpriteKit を使います。
まず Xcode を App Store からインストールし立ち上げ、[File] -> [New] -> [Project] -> [Game] と選択します。Language は Swift で、GameTechnology は SpriteKit にします。
next を押すとプロジェクトの保存場所を聞かれます。
アプリケーションを作った際に、参考にしたサイトについて初心者目線ですが紹介したいと思います。
Titanium は以前に少しだけ触ったことがあって、その時は「Resources/app.js」に書く Classic なものでした。
個人的にアプリケーションを作りたい衝動にかられて開発環境も不十分なくせに、 iOS Developer Program に 7,800 円払ってしまったこと。 また数年さわっていない間に MVC フレームワーク「Alloy」が出ていておもしろそうだったので Titanium を使って初アプリケーションを作ることにしました。
公式ドキュメントを読んで開発環境と Alloy の基本構成は理解できました。
Titanium 3.X - Appcelerator Docs http://docs.appcelerator.com/titanium/3.0/#!/guide
GoogleAnalytics で離脱率や平均セッションを見ていて、ユーザーがページのどこまで目を通しているのか気になりました。
海外の技術ブログや GitHub でも評価のある、「Scroll Depth」というライブラリを使用します。要件として jQuery1.7 以上です。
Scroll Depth http://scrolldepth.parsnip.io/
これとタグマネージャーを連携してスクロール計測を行いたい思います。
Twitter API を使って画像付きで投稿する場合、ライブラリの tmhOAuth で簡単に認証とリクエスト行うことができます。
themattharris/tmhOAuth https://github.com/themattharris/tmhOAuth
Twitter への認証の際に使う、認証鍵は Twitter Developers にて取得します。
Twitter Developers https://dev.twitter.com/
URL パラメータの書き換えることってそんなになにけど、 プログラムのアップデートやら改修やらで仕様変更などで旧仕様のパラメータを新仕様へと書き換える必要があったので備忘録としてメモります。
以下を例にしてみます。
変更前
/test/index.php?page=1&mode=entry
変更後
/test/index.php?type=entry&page=1
.htaccess を以下のように設定する。
RewriteBase /test/
RewriteCond %{REQUEST_URI} index.php
RewriteCond %{QUERY_STRING} ^page=(\d\d?)\&mode=(entry|comment).*?$
RewriteRule index.php index.php?type=%2&page=%1 [L,R=301]
これで OK です。
ページ番号が 2 桁まで、モードが記事 or コメントとなっている部分、 サンプルなので要件に合わせてよく考えて設定してください。
最近よる冷えてきたのでつらいもん食べたい。
Twitter などでは絵文字が使えます。
Twitter の埋め込んだサイトの HTML ソースを利用する際など、 HTML エンティティを含んだ文字列をこちらでデコードしたい場合。 以下のようにします。
$text = html_entity_decode($text);
$text = mb_decode_numericentity($text, array (0x0, 0xffff, 0, 0xffff), 'UTF-8');
さくら VPS を CentOS7 へアップデートしました。いろいろ変更点あったので備忘録としてメモしました。
OS のインストールとネットワーク周りはさくらの管理画面から。「OS 再インストール」->「カスタム OS インストール」
正規表現を使って以下の対象 URL をマッチさせる。
http://jaxx2104.tumblr.com/post/76844550315
パターン文字列
;/[^¥/]\*/
Window マシンに Emacs を入れた際に、 日本語ディレクトリ内のファイルを開くと中身が空の状態になってしまいます。
init.el もしくは.Emacs に以下の一文を追加してください。
(setq default-file-name-coding-system 'japanese-shift-jis)
これで問題なくファイルが開けるはずです。
PHP から MySQL に接続していて以下のエラーが出た、原因がつかめなくて詰まったが。解決したのでメモ。
Warning: mysql_query(): MySQL server has gone away
Warning: mysql_query(): Error reading result set's header
仕事終わりと休日を使ってアプリケーションを作り始めました、 個人制作だと細かいところに時間をかけられない場合があります。 そんな時、参考になったサイトをまとめてみました。
印刷するとペーパープロトタイピングのテンプレートになる。紙に書くと要素の大きさとか位置とかが検討しやすい。
Free Printable iPhone 5, iPhone 5s, and iPhone 5c Templates https://dribbble.com/shots/728257-Free-Printable-iPhone-5-Templates?list=popular
iOS 7 の各パーツがセットになった AI ベクタ
iOS 7 iPhone AI Download https://dribbble.com/shots/1152667-iOS-7-iPhone-AI-Download
iOS 7 で使われている色をチートシートにしているサイト
なんか Android っぽい色使いになった時とか参考にするとよいかも。
iOS 7 colors http://ios7colors.com/
iOS 7 とそれ以前の UI サイズ比較したチートシートにしているサイト
デバッガで要素のサイズを 1 つずつ取得するより、一覧で見れるのでよいです。
The iOS Design Cheat Sheet 7 http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/
iOS 7 に合いそうな白黒で多様なボタンを公開しているサイト
アプリケーションのイメージとマッチする場合は導入してみてはどうでしょうか。
iconmonstr http://iconmonstr.com/
こんにちは、今日から三連休ということで、ワークスペースを利用してブログ書きます。
では WordPress で Bootstrap の Pagination を実装方法について、
メモしていきたいと思います。
bootstarap の Pagenation http://getbootstrap.com/components/#pagination
iPad や iPhone でも Web のクリップを手軽にしたいので、ブックマークレットを用意した、快適な Evernote Life を。
javascript:%28function%28%29 %7b%0d%0a%09EN_CLIP_HOST %3d %27http%3a%2f%2fwww%2eevernote%2ecom%27%3b%0d%0a%09try %7b%0d%0a%09%09var x %3d document%2ecreateElement%28%27SCRIPT%27%29%3b%0d%0a%09%09x%2etype %3d %27text%2fjavascript%27%3b%0d%0a%09%09x%2esrc %3d EN_CLIP_HOST %2b %27%2fpublic%2fbookmarkClipper%2ejs%3f%27 %2b %28new Date%28%29%2egetTime%28%29 %2f 100000%29%3b%0d%0a%09%09document%2egetElementsByTagName%28%27head%27%29%5b0%5d%2eappendChild%28x%29%3b%0d%0a%09%7d catch%28e%29 %7b%0d%0a%09%09location%2ehref %3d EN_CLIP_HOST %2b %27%2fclip%2eaction%3furl%3d%27 %2b encodeURIComponent%28location%2ehref%29 %2b %27%26title%3d%27 %2b encodeURIComponent%28document%2etitle%29%3b%0d%0a%09%7d%0d%0a%7d%29%28%29%3b
あとは Evernote に保存したいサイトで登録したブックマークレットを押すと…。
アプリケーションとかページ遷移せずに保存できる。
ご飯が炊けるまで時間があるので、ちょっとだけメモします。
指定した要素にスクロールするボタンを jQuery で書きます。
<span style="line-height: 1.5em;">
<div id="page-scroll-button">スクロール!</div>
</span>
書き方はどうあれ、こんなボタンがあったとしましょう。
こんな感じ。
ほんとにチラシの裏にでも書けっていう内容ですみません。
ごはん炊けました。晩御飯ですよ〜(^^)
参考 : http://www.zabbix.jp/node/1441
# cd /usr/local/src/
# git clone git://github.com/zabbix-jp/plugins.git
# mv plugins zabbix-jp-plugins
# cp -a /usr/local/src/zabbix-jp-plugins/notification/sendmessage-smtp-php /etc/zabbix/alertscripts/
# chmod 755 /etc/zabbix/alertscripts/sendmessage-smtp-php/sendmessage_smtp_php.sh
AWS での死活監視とアラートメールの送信方法がいくつかあり、
そのメリット、デメリットについて調べものをしたのでメモ。
監視からアラートメールまで AWS Console の設定で済む
ログが 2 週間しか残らないため非推奨とのこと。
[CloudWatch]グラフの確認方法と確認できるグラフ一覧(EC2/ELB/RDS) http://dev.classmethod.jp/cloud/aws/cloudwatch-can-be-seen-graph/
Amazon EC2 編~ EC2 インスタンスを監視するには~ http://recipe.kc-cloud.jp/archives/258
$ sudo yum -y install gcc make ncurses-devel`
Emacs をダウンロードします。50MB くらいありました。
2014.01.13 時点での最新バージョンは 24.3 です。
最新バージョンの確認は公式で確認してください。
$ wget http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.3.tar.gz
解凍します。
WebView で構成されたハイブリッドアプリケーションを開発しようと思った。
既存の Web サイトでも User Agent でアプリケーションか Web かを判断できれば、
CSS でスタイルの切り分けとかができてよいんじゃないかと思った。
iOS 7 Safari の User Agent
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53
iOS 7 WebView の User Agent
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465
Evernote がネットでセレクトショップ始めたようですので、おしゃれだった MacBook ケースを買ってみました。
お値段は商品 ¥4410 + 送料 ¥600 でした。商品は注文してから 2, 3 日で届きました。
ナビゲーションや背景を暗くした時に statusbar の文字色を白にしたかったんだけど、書き方が変わっていたのでメモ。
tiapp.xml
<ios>
<plist>
<dict>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
</dict>
</plist>
</ios>
立ち上がりまでが重いですよね。
開発していてログとか取るのも一苦労です。
最近は仮想マシンとして Android エミュレータを立ち上げる Genymotion を使うのが主流みたいで、 Titanium も使えないかなと思ったら、バージョン 3.2 から対応したみたいです。
さっそく有効にしてみたいと思う。
LAMP 環境構築を数ヵ月ぶりにやったらいろいろと変更している部分があったので更新。
WordPress のインストールは実際の作業ではやっていないので少し省いてます。
サーバに CentOS をインストールしたらバージョンを確認します。
$ rpm -qa | grep centos-release
$ yum -y update
必要最小限の構成の場合は一つ一つ入れますが今回は一気にインストールします。CentOS6 の場合「開発ツール」の後ろ全角スペースが必要でした注意してください。
勉強していて調べたら Wikipedia に載っていた。
そして個人的におもしろかったのでメモさせてください。
特異なバグ - Wikipedia http://ja.wikipedia.org/wiki/特異なバグ
AWS 登録してみたのでさっそく触ってみました。
登録には携帯番号やクレジットカードが必要でした。
AWS の操作は以下4つの方法がある。
AWS の Web 管理画面上で手動にて操作を行う。
Google APIs Console から Google Cloud Console に変わって、見た目もずいぶん変わってしまいました。
Create Project を押すと本人確認を求められます。
自分は電話認証にしました、非通知でかかってきた電話に出て、言われた通りに認証番号を入力します。
今週末 Macbook Air 13 インチの梅買いました。 メモリ 4GB でも Xcode サクサクです。
今まで NVIDIA 搭載していて 3D CAD なんかもバリバリ動いてた ThinkPad の T420si を使っていました。 勉強会で持ち運んだりアプリケーション作ったりっていう使い方になってきたのでオークションに出品して、それを元に買いました。
ローカル保存できる場所は各プラットフォームごとで違いがあってややこしいけど、下のように書くのが差分も少ないかなと…。
function doSaveFile(data) {
var cachefileName = "test.txt"
var cacheFilePath = Ti.Filesystem.applicationDataDirectory + "cache/"
var directory = Ti.Filesystem.getFile(cacheFilePath)
//ディレクトリが存在しない場合
if (!directory.exists()) {
directory.createDirectory()
}
var cacheFile = Ti.Filesystem.getFile(cacheFilePath + cachefileName)
var cacheFileData = OS_IOS ? cacheFile.read() : cacheFile.read().text
if (cacheFileData) {
//append
cacheFile.write("add : " + cacheFileData + data)
} else {
//new
cacheFile.write("new : " + data)
}
}
applicationDataDirectory
でなくexternalStorageDirectory
にすると、
外部ストレージに保存されます。
ほかのアプリケーションで使ったりできるようなファイルを生成する場合はお勧めです。
ファイルに追記する場合はキャッシュ File.append すればよいと思ったけど、Android はそもそも append が使えないのでこんな感じになってます。
アプリケーションを iOS 7 のデザインへ対応するとき新しいナビゲーション部分に回りこんでしまうため、iOS 7 のみで分岐が必要になってきます。
正直この分岐は納得いかない。
初期状態だとこんな感じ
iMac:~ jaxx2104$
このサイトでどんな表示になるのかを確認しながら変更できる。
Bash $PS1 Generator http://www.kirsle.net/wizards/ps1.html
出力結果を.bash_profile に書けばよいだけ
emacs .bash_profile
自分はこう書いてます。
export PS1="[\u@\h \W]\\$ "
sourse .bash_profile
するとこんな感じになる。
[jaxx2104@iMac ~] $
おしまい。
辛酸なめ子のギャラリー探訪記 「アガタ竹澤ビル」 http://www.artgene.net/labo/theme/cat243/post_45.php
今日は Titanium で Google Play に公開したアプリケーションについて。
Google Play の「開く」かアプリケーションのショートカットから起動すると “application restart is required” と表示されるエラーに悩まされた。
起動時にこんなエラーが出る
去年に続き、今年も参加してきました。楽しかったぞ!
電車に揺られうとうとしながら着きました。会場は大田区産業プラザ PIO です。
開発環境を移行したとき Emacs の設定ファイルの init.el が読み込めなくって、ちょっと困ったけどあっさり解決したので備忘録メモ。
.Emacs と .Emacs.el が存在する場合は前者が優先的に読み込まれるので.Emacs を削除すればよい。
~/.emacs <- こちらが優先的に読み込まれる
~/.emacs.d/init.el
これで読めました。
またほかの方法としては
.Emacs には ~/.Emacs.d/init.el を読ませるだけで設定は init.el に書くっていうのもある。
(load (expand-file-name (concat (getenv "HOME") "/.emacs.d/init")))
こっちのほうが運用しやすいのかも。
iPhoto を使ってフォトブックが簡単に作れるみたいですので、ためしてみる。
ではさっそく作っていきます!
フォトブックの種類とサイズ。 テーマを選んで写真を配置していく。
Chrome のデバッグツールを開いてみると、「jquery-1.10.2.min.map not found」のエラーが大量に出てました。
調べてみると WordPress のバージョン 3.6 を使っていて、プラグインのどれかで jQuery のエラーが出ているとのこと。
WordPress 3.6 and jQuery.BlockUI Version problem http://wordpress.org/support/topic/wordpress-36-and-jqueryblockui-version-problem-solution
自分はプラグイン側が対応するまでいったん停止することにしました。
Linux でよく使うんですが、Mac は初期状態だと使えない。
なので.bahs_profile にエイリアスを設定します。
emacs .bash_profile
alias ll='ls -l'
PHP 部分で文字化けが起きた場合
この一行を追加する。
header('Content-Type: text/html; charset=UTF-8');
右カラムのつぶやきを 1 件表示するプラグインを作った時のメモ
このままだと[外観]->[ウィジェット]の欄に「Get Twitter」が追加され、サイト上に「サンプルです」と表示されるので、この部分を置き換える。
/wp/wp-contents/plugin/test/test.php
<?php
/*
Plugin Name: Get Twitter
Plugin URI: http://jaxx2104.info
Description: Twitterを表示するプラグイン
Author: jaxx2104
Version: 0.1
Author URI: http://www.jaxx2104.info
*/
class GetTwitter_Widget extends WP_Widget {
//1.[外観]->[ウィジェット] での表示
public function __construct() {
parent::__construct(
'getTwitter_widget', // Base ID
'Get Twitter', // Name
array( 'description' => __('TwitterAPIを使って、つぶやきを表示するプラグイン', 'text_domain'), ) //desc
);
}
//2.サイト上での表示
public function widget($args, $instance) {
extract($args);
$title = apply_filters('widget_title', $instance['title']);
echo $before_widget;
if (!empty($title))
echo $before_title . $title . $after_title;
echo 'サンプルです'; //ウィジェット本体
echo $after_widget;
}
//3.フォーム(4)の情報をサイト(2)へ渡す
public function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
return $instance;
}
//4.[外観]->[ウィジェット] でのフォーム
public function form( $instance ) {
if ( $instance ) {
$title = esc_attr($instance['title']);
}
else {
$title = __('New title', 'text_domain');
}
echo sprintf('<p><label for="%s">%s</label><input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',$this->get_field_id('title'),_e('Title:'),$this->get_field_id('title'),$this->get_field_name('title'),$title);
}
}
add_action('widgets_init',
create_function('', 'register_widget("GetTwitter_widget");')
);
?>
プラグイン作るの楽しいぞ!
飛び出し坊や
今日から夏季休暇です。旅行に行ってきます。
2 泊 3 日で行きはバスで帰りは、新幹線です。
デジタルカメラとノート PC 持っていくので、たくさん写真撮って時間あればブログ更新しよっと。
最近アイスコーヒーばっかり飲んでいる。
PHP で改行コードを LF(\n)に統一するには、
$str = preg_replace("/\r\n|\r/","\n",$str);
としてあげるだけ。