PHPの関数やメソッドで多値を返すときのパターン

muraveです。「多値を返せる #lua」というツブヤキをTwitterで見かけて、ふとPHPでよくやってるパターンを書こうかと。

配列で返してlistで受けるってだけですが。

function retManyValues()
{
    return ['m', 'a', 'n', 'y'];
}

list($m, $a, $n, $y) = retManyValues();

直書きしたのでバグってるかもしれませんがご容赦を(php -a して確認してみたら大丈夫っぽいですね)。

[]で配列を書けるようになったので以前より見た目がスッキリして嬉しい今日この頃です。

Facebooktwitterlinkedintumblrmail

OS X に byobu で tmux 環境をお手軽構築 [2015 冬版]

ターミナルの分割ウィンドウ、便利ですね。OS X だと有名なターミナルエミュレータに iTerm があり、多分に漏れずこれも分割ウィンドウに対応しているのですが、愛用している AquaSKK との相性が悪く Terminal.app を使わざるを得なくなっていました。Terminal.app のウィンドウ分割は貧弱なのでしばらくタブでなんとかしていたものの、いい機会なので以前から見送っていた tmux の環境を整えることでウィンドウ管理を行なおうと思い立ったのが今回の動機です。

対象読者

tmux 便利にしたいけどいい感じの設定が分からない、でもよく分からないまま他人の丸コピは嫌という方。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

雑用係のマイナンバー奮闘記

正式名称「行政手続きにおける特定の個人を識別するための番号の利用等に関する法律」

長い・・・(´Д`;)ですヨネ

普段は「マイナンバー法」とか「番号利用法」とか呼ばれてますが、一般的には前者が有名でしょうか。

我が社では、今年夏前ごろから準備を始めました。

とはいっても、まずはマイナンバー法とはなんぞや?からです。
とにもかくにも、情報です。
ネットで様々な情報を漁り、セミナーなどに参加し、何が必要で、何をしなくちゃならなくて、何をしてはいけないか、色々と勉強しました。

マイナンバーが必要な事務と会社で番号を提供していただく対象者を絞って、管理方法、廃棄方法を社内にあった形を作る。

一番大変なのが取得/管理/廃棄の方法を社内に合った方法を規程すること。

まず、取得。

必要な事務を行うために、提供者へ何故番号を提供してもらう必要があるのか説明をし、どんな事務に利用するのか通知をします。
また、番号を提供してもらう際に本人確認が必要なので、マイナンバー法に沿って身分証明書の写しを一緒に提出してもらうことにしました。
提出の方法は取扱い担当者への直接提出(預け不可)、直接提出が不可能な営業所からは簡易書留での郵送のみとします。
提供依頼書

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

cordova でプラットフォーム固有の orientation を指定する

最近ハイブリッドアプリを検討する機会があり、cordova 由来のプロジェクト、PhoneGap や ionic 等を触っています。

さて、これらのアプリも基本的には Web の技術で実装するとはいえプラットフォームとの協調を設定する部分はあり、それらが記載されているのがプロジェクトルートにある config.xml です。

よく設定が必要となる項目に画面回転があると思います。アプリの要件で縦固定となることは少なくありません。ゲームであれば横固定となることもあるでしょう。config.xml では以下の項目を指定します。

    

この orientation にはプラットフォーム固有の値を持たせることが出来、Android であれば一例として sensorLandscape という値があります。sensorLandscape は横固定だが上下はセンサーに従うという設定です。
これをドキュメントに記載されているコードを参考に追記すると、以下のようになります。

    
    
        
    

これで画面横向き、Android においては sensorLandscape が適用され…るかと思いきや、どうもそうでは無いようです。
少なくとも今試している cordova (v5.4.1) では通常の preference があるとそちらが優先されるようなので、プラットフォーム固有のコードを適用させたい場合は共通の設定は削除する必要があります。

    
        
    

上記でビルドが通り、orientation が適用されます。他プラットフォームでもビルドは可能で、その場合プラットフォーム指定が無ければ default 指定が適用されるようです。

該当箇所っぽいコードを見るとプラットフォーム固有の指定がある場合はそちらを優先させてくれるような実装に見てとれます。恐らく意図しない挙動だとは思うのですが、軽い気持ちで issue でも投げに行くか〜と覗きに行くと JIRA でキッチリやっている様子で思わず身が竦んでしまいました。いい感じに直ってくれるといいんですが…。


Facebooktwitterlinkedintumblrmail

MacVim で mvim シェルスクリプトを活用する

OS X で使える GUI 用 Vim には MacVim kaoriYa 版 があります。
dmg パッケージで配布されていて導入が手軽、かつ自動アップデータ等の機能もあり便利です。

KaoriYa 版に限らずこの MacVim には以前から mvim というシェルスクリプトが同梱されています。

https://github.com/splhack/macvim-kaoriya/wiki/Readme#コンソールからmacvimappを起動する

Terminal.appやiTerm.appからMacVim.app (GUI)を起動する場合は、mvimシェルスクリプトを使用します。
$ /Applications/MacVim.app/Contents/MacOS/mvim
GUIでvimdiffを起動するにはmvimdiffを使用します。
$ /Applications/MacVim.app/Contents/MacOS/mvimdiff file1 file2
/Applications/MacVim.app/Contents/MacOSにパスを通すと便利です。

これは MacVim を端末から様々な方法で起動する為のスクリプトで、上記のページでは GUI 起動のみ触れてありますが
他にも様々に用いることが出来ます。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

RoundCubeのmanagesieveをちょっと使ってみる

こちらの記事で使ったサーバに引き続き、sieveを入れます。

  • 配送にはLDAとLMTP形式があるようですが、LMTPが流行らしいのでLMTPで。
  • postfixでvirtualドメインを使ってるとこれだと動かないので、またひと手間必要です。
  • CentOSのバージョンによって微妙に違いが有るようですが、多分動くと思います。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

積み pi-top があったので組み立てて供養する

pi-top の供養をします。

th_IMG_20151209_135928

これは弊社社長が興味本位で注文し、現物が届いた際に数人で群がりひととおり盛り上がって満足したあと組み立てずに解散し、放置されていたものです。

これをやっていきます。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

baserCMSを3.0.9へアップデートしました(あっさり)

おひさしぶりです。muraveです。

恒例(?)のbaserCMSアップデート話です。

3.0.7にアップデートする時にスマートURLをオンにした状態ではアップデート処理を実行できなかったり(baserCMSを3.0.2から3.0.7へ。ところでカテゴリ名ってまだ簡単に取れないんです?)、その後.htaccesをいじっていたり(URLを統一したくなったので.htaccessで301リダイレクト)したので、不安がありまして、時間が取れる状況になってから作業しました。

リリースから約一週間、先ほど作業したところ

公式に書いてある手順であっさりアップデートできました!

ヽ(=´▽`=)ノばんざ〜い ←絶対何かで引っかかると思っていた人

どんどん扱いやすいCMSになっていると感じました。

そうそう、管理ページのレイアウトが少しかわっているのでアップデート直後少し表示が崩れて見えたというのがありましたがブラウザのキャッシュの問題で、リロードしたらなおりました。

Facebooktwitterlinkedintumblrmail

Kotlin の便利な機能 3 選

主に Android の界隈で最近にわかに取り上げられている Kotlin ですが、しばらく使ってみて便利だと感じている機能を 3 つ紹介します。

この投稿の続きを読む »

Facebooktwitterlinkedintumblrmail

OSC2015 Fukuoka 参加セミナーでのメモ

2015年10月3日(土)に九州産業大学で開催された オープンソースカンファレンス 2015 Fukuoka (http://www.ospn.jp/osc2015-fukuoka/)に参加しました。

今回はセミナー中に書いたメモを(ほぼ)そのままだしてしまおうかと思います(手抜き)。だんだんメモが少なくなっていくのがリアルですね。


Open Compute Project についての第3弾 〜オープンソース化した Facebook のサーバとデータセンタとネットワーク

担当:Cobalt Users Group/Project BlueQuartz
講師:伊藤 正宏

  • スケールメリットを活かすための設計。
  • データセンターは全世界電力の1〜2%を消費。電力消費が最大の課題。
  • 涼しいところでエアフロー最優先のデータセンター、サーバー。
  • すかすかのサーバー。エアフロー、修理(部品交換)簡単。

純水ミストでの冷却はコスト高で中止、といったネタもありました。その夕方の弊社社長のツイートが(たぶん偶然)同じく純水ぶっかけネタだったのでなんとなく確保。


PG-REXで学ぶPacemaker運用の実例

担当:Linux-HA Japan Project
講師:東 一彦(Linux-HA Japan Project)

  • 「PG-REX利用マニュアル」が存在する。
  • crm_mon -rfA おすすめ
  • Pacemaker1.1はctr+D押下でヘッダ表示消えるそうな。へーへーへー
  • Act側Sby側でログは異なる。故障時は両方みないとわからないことが多い。
  • 資料公開されてる。
  • vip-master故障時、故障した方のPacemakerを一旦停止するのが良い。
  • PG-REX運用補助ツール
    • pg-rex_slave_start 修理したサーバーをスレーブに組み込み
    • pg-rex_switchover マスターとスレーブを入れ替え
    • stonith-helper スレーブ側が10秒待つ

弊社のお客さんでPG-REXな構成で運用しているところがあるんですがPG-REXと呼ばれる前に構築したものだったり。PG-REX運用補助ツールいいなぁ。つかえるのかなぁ。


【飲食OK】Samba4を「ふつうに」使おう!Samba4によるファイルサーバ構築テクニック

担当:日本Sambaユーザ会
講師:たかはしもとのぶ

  • SeLinux活かして運用するの大変そう。
  • スライドシェアに資料

Firefox OS から眺める HTML5 アプリ開発最前線

担当:Mozilla Japan
講師:清水 智公

  • ロジックはJavaScriptでしか書けない。それは良し悪しだが経験した面倒なところ。
    • コールバック地獄
      • Promiseを使った非同期処理
        • コードが読みやすくなる
        • 待ちも簡単に
        • テストが容易になる

次世代ECプラットフォーム「EC-CUBE 3」に迫る!「3」で何が変わったのか!?

担当:EC-CUBE九州ユーザーグループ
講師:金 陽信

  • 2系の問題
    • プラグイン同士の競合
      • 安心して使えない
      • カスタマイズが必要になり導入コストが高くなる
    • セキュリティ面の課題
      • 手順が複雑でバージョンアップしにくい
    • 拡張性の課題
      • WEB中心のソフトウェア
      • 今後、スマホアプリ対応などが困難
  • 2系は全部入り

  • 3系はコアだけ残してプラグイン対応。

    • Symfony Components採用。
    • フレームワーク
      • Silexフレームワーク。
      • Doctrine ORM
      • Twig
    • フィーチャーフォンを切ってすっきり。


次期baserCMSの新機能と今後の展望

担当:baserCMSユーザー会
講師:江頭 竜二

http://www.slideshare.net/ryuring/baser-cms-53530309

  • 予定されてる「統合コンテンツ管理システム」いいぞー。

ところで、baserCMSのベースとなっているCakePHP、2系についてはPHP7で動かないのでは?(予約語が増えてぶつかっちゃったので)という問題があるわけですが、


オープンソース!Open Flow 1.3 対応!日本発のネットワークスイッチOS「Lagopus Switch」

担当:Lagopus Users Community
講師:日比 智也(Lagopus Users Community)

  • Lagopus(OpenFlow スイッチ)はいろいろなことができるが、セッション(ステート)は持てない。
  • ソフト屋としてはパフォーマンスチューニングの話が面白かった。
    • そのまま実践することはないと思うけど(レイヤーが違うので)。

以上、現場(のメモ)からお届けしました。

Facebooktwitterlinkedintumblrmail