タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

技術

MT::Mailで添付ファイル付きメールを送信する

MT::Mail自体には添付ファイル付のメールを組み立てる機能はないが、自分でヘッダーやBodyを作成してパラメータとして渡すことで、送信することはできる。 確認環境 MovableType 6.0 MIME::Entity (MIME-tools) MT5でも動くと思う・・・たぶん・・・ サンプルコー…

IDEA 13 Keymaps: Emacs メモ

Keymaps: Emacs 標準keymapsとEmacsバインドがかぶってるところなどどうなっているのかメモ(随時追加予定) 入力補完 Basic Code Completion Alt + / 標準のCtrl + Spaceは選択開始で使用しているので。 もうちょっと空気を読んで、たとえばnewを入力したと…

ELB + EC2 + nginx 環境でアクセス元IPアドレスによる制限をかける

ELB + EC2 (nginx + unicorn + Rails)環境で運用中のサービスに対して、あるIPアドレスからディレクトリトラバーサルなどの攻撃を受けたので、その対応メモ。 取り急ぎ該当IPアドレスからのアクセスを遮断しようと考えたが、EC2の為、セキュリティグループで…

Data API + Location プラグインでAndroid地図アプリを作ってみる

いまさらですがMovableType Data APIとLocationプラグインのサンプルとして、かんたんなAndroid地図アプリを作成してみました。 機能としては以下のような基本的な検索&更新があります。 地図表示範囲内の記事データを取得してGoogle Maps Android API v2上…

MovableType DataAPIでアクセストークンを取得する例

AndroidアプリでWebAPIにデータをPOSTして結果を取得するにはの成果を利用して、MovableType Data APIでの記事更新等に必要なアクセストークンを取得した。 その他のWebAPIのPOST操作も同様にしてできるはず。 Authentication: authentication 認証情報を渡…

AndroidアプリでWebAPIにデータをPOSTして結果を取得するには

AsyncTaskLoaderでHttpPostリクエスト こちらの記事を参考に作成したLoaderに、POST送信機能を実装してみた。 public class HttpAsyncLoader extends AsyncTaskLoader<String> { private HttpUriRequest request = null; public HttpAsyncLoader(Context context, St</string>…

Zabbixで障害の深刻度によって通知を受け取るメールアドレスを変える

ユーザーのメディア設定で深刻度による絞り込みが可能。 深刻度別に通知先を設定することで、通常は管理用のメールアドレスに送信、緊急時のみ携帯に通知、といったことが簡単に実現できる。

Zabbixで復旧通知を送信

障害発生時だけでなく、復旧時も通知したい アクションの設定で「リカバリメッセージ」にチェックを入れる

Zabbixでメールの送信に失敗する

いろいろある。 そもそもSMTPサーバは生きているのか 対象のサーバでSMTPサーバは動作しているか?メールは送れるか?ファイアーウォールの設定はできているか?など メディアタイプで設定したSMTPサーバ設定等は正しいか "localhost"で設定した場合、SMTPサ…

AndroidアプリでWebAPIからデータを取得するには?

自分用学習メモ。 WebAPIにアクセスしてデータを取得&表示するには HTTP GET Androidアプリではメインスレッドからのネットワーク処理はできない(3.0以上) 非同期スレッドを扱うのにはAsyncTaskLoaderを用いる方法がCoolらしい AsyncTaskLoaderを継承して…

Zabbixで障害通知

障害発生時及び復旧時にメール通知する メディアタイプ 「管理」→「メディアタイプ」で一覧から「Email」を選択してSMTPサーバ等の設定をする。 Zabbixでメールの送信に失敗する 送信先 ユーザーのメールアドレスを設定する。 「管理」→「ユーザー」でユーザ…

Zabbixでリソース監視

さくらのクラウド上のCentOS6にZabbix 2.0を導入した。 Zabbixによるサーバー監視&運用 おおむねこちらの通り。 ただ、データベースの準備の項が抜けている感じなのでこちらを参考に Zabbix Beginner's Guide - Installing and configuring the monitoring s…

IntelliJ IDEA 13/Android Studio でFragmentを使わないアクティビティを作成するには

Creating a Non-Fragment-Layout with Android Studio 0.3.+ If you don't like to work with the Fragment Layout and rather like to use the "old" style, here is what to do: change the Fragment Layout Name into the same as the Layout Name: とい…

MT::Object での GROUP BY 集計関数の利用方法

微妙に痒いところに手が届かないものの、MT::Object->(count|max|avg|sum)_group_byというのがひっそりとある。 使い方は共通してこんなかんじ。hogeのところは便宜読み替えのこと。 my $group_iter = MT::Foo->hoge_group_by( $terms, { %args, group => […

MTのデータベース中の文字列を一括置換するスクリプト

SQLだとこんなかんじで・・・ UPDATE mt_entry SET entry_text=REPLACE(entry_text, "http://takeyu-web.com/", "/") WHERE entry_text IS NOT NULL; カスタムフィールド(複数行テキスト)だったらこんな感じで・・・ UPDATE mt_entry_meta SET entry_meta_vclob=…

MTのデータベースで任意のSQLを実行して結果を取得する

MT::Object->driver()を使う。 my $sql = "SELECT * FROM mt_entry WHERE entry_id = ?"; my @bind_values = ( 100 ); require MT::Object; my $driver = MT::Object->driver; my $dbh = $driver->rw_handle; my $sth = $dbh->prepare( $sql ); die $dbh->er…

IntelliJ IDEA でSDK(僕はRubyのバージョン)を変更する

Rails開発に使用しているが、リモートインタプリタで使用している Ruby 2.0.0-p247 を 2.1.0-p0 にアップデートしようとして少し手間取ったのでメモ。 新しいRubyのインストール [Project Structure] Project SDK → New → ... で登録 [Project Structure] Mo…

keytool -list -v -keystore debug.keystore => キーストア・ファイルは存在しません

あぁ... C:\Users\uzuki05>cd C:\Users\uzuki05\.android\ C:\Users\uzuki05>keytool -list -v -keystore debug.keystore キーストアのパスワードを入力してください: android

MTプラグインで拡張したカラムにインデックスを貼ったりデフォルト値を設定したりするには

MTプラグインを作成する際、既存のオブジェクト(記事 MT::Entry とか)に、プラグイン独自の属性を追加する場合がある。 このとき、config.yamlでこんな風にするのが基本。 object_types: entry: myid: integer 追加したカラムにインデックスを貼ったり、デ…

ターミナル終了後もプロセスを継続させたいとき

メモ。 ターミナル終了後もプロセスを継続させたいとき - masutaroの日記 $ nohup コマンド & $ Ctrl + z $ jobs $ bg %ジョブ番号 $ disown %ジョブ番号 ログアウトしてもバックグラウンド ジョブを継続する方法 例2 標準出力先を指定する $ nohup ./abc.s…

GitLabでリポジトリを作成後 push しようとすると does not appear to be a git repository

[uzuki05@dev]$ git push -u origin master fatal: '/home/git/repositories//hoge.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly サーバ上に/home/git/repositories/hoge.gitができてない。 gitlab/log/sidekiq…

SubversionリポジトリをGitに移行したメモ

参考にした 8.2 Gitとその他のシステムの連携 - Git への移行 git-svnの使い方を覚えた - idesaku blog git: 'svn' is not a command - Fix! - keithxm23

IntelliJ IDEA のコンソール文字化け

Windows環境でUTF-8な出力が文字化け。僕はRailsに使ってるので、Rails consoleとかrspecとかで問題に。 C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\bin\idea.exe.vmoptions C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.0\bin\idea64.exe…

IntelliJ IDEA 13 の内蔵SSHターミナルの文字化け

[Settings][SSH Terminal]を開き、Default encoding で指定する。

Locationプラグインで矩形領域内の記事のDataAPI検索に対応しました

記事に位置情報を設定してData APIで検索できるMovableTypeプラグイン「Location」をアップデートしました。 追加したパラメータは以下の通りです。 パラメータ 種類 デフォルト 説明 sw_lat float 矩形領域の南西端の緯度(WGS84) sw_lng float 矩形領域の…

Dreamweaver風チェックアウト機構を実現する Checkoutプラグイン

Movable Type Advent Calendar 2013 2日目の記事のネタのためにプラグイン作りました。 会社など複数人で更新を行っていると、自分がこれから編集する記事は他の人が編集中ではないのか、また自分が編集した内容を他の人が上書きしてしまわないか、不安にな…

MT6のAMIを試しに起動して設定などを観察したメモ

※はじめてのEC2みたいな手順紹介はやりません。そんなのググったらすぐですから。 AWS Marketplace で Movable Type 6 の販売を開始 | Movable Typ アマゾン ウェブ サービス(以下、AWS)の AWS Marketplace にて、Movable Type 6 の販売を開始しました。Mo…

Packer:ブログ記事インポート・エクスポートプラグイン for MovableType

ブログ記事/ウェブページ単位のインポート・エクスポート機能を提供します。MT標準のブログ記事エクスポートと違い、エクスポートする記事を個別に選択できるほか、写真などのブログ記事アイテムも同時にコピーできる点が優れています。

HTML Importerプラグイン for Movable Type

自分用に作ったものを公開。 自分用なので決して一般向けでなく、わかる人向け。まぁ使われることはないだろうけど、一応・・・ uzuki05 / mt-plugin-htmlimporter

MovableTypeのダッシュボードウィジェットを動的に追加する

ダッシュボードウィジェットを追加するには、プラグインのレジストリの以下ようなエントリを追加すれば良い。 applications: cms: widgets: sample: label: Sample Widget template: widget/sample.tmpl condition: |+ sub { 1 } handler: |+ sub { my ( $ap…