Archive for the ‘php’ Category

    はてなブックマーク - ファイル・ディレクトリ名コレクション
    このエントリーをはてなブックマークに追加

    Fusic 中野です。
    暑い中昼休みにゲームソフトを買いに行ったら、来週発売でした。

    ちょっとした小ネタ。

    弊社は主にRubyかPHPでプログラムを書くことが多い会社なので、今回はGo言語とHaskellについて
    書いてみようかと思います。

    Haskell製の自作ツールをGo言語で書き直していたのですが、あるディレクトリ配下のファイル一覧を
    取得する処理を簡単に記述できたので、ちょっと比較をしてみようかと思います。

    Go言語(MacOSX go1.3 darwin/amd64)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    package main
    import (
    	"fmt"
    	"os"
    	"path/filepath"
    )
     
    func main() {
    	var result []string = make([]string, 0) // グローバルはいや!
    	walk := func (p string, info os.FileInfo, _ error) error {
    		if info.IsDir() {
    			result = append(result, "Directory: " + p)
    		} else {
    			result = append(result, "File: " + p)
    		}
    		return nil
    	}
    	filepath.Walk(".", walk)
    	fmt.Println(result)
    }

    Haskell(MacOSX ghc version 7.6.3)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    module Main where
     
    import Control.Monad.Writer
    import Control.Monad.State
    import System.FilePath
    import System.Directory
     
     
    main :: IO ()
    main = go "." >>= print
        where
            go p = execWriterT $ runStateT walk [p] -- go :: FilePath -> IO [FilePath]
            walk = do -- walk :: StateT [FilePath] (WriterT [FilePath] IO) ()
                p <- get
                case p of
                    (x:xs) -> do
                        d <- lift . lift $ doesDirectoryExist x
                        if d then do
                            files <- lift . lift $ getDirectoryContents x
                            put $ xs ++ [x </> f | f <- files, f /= "." && f /= ".." ]
                            tell ["Directory: " ++ x]
                            else do
                                put xs
                                tell ["File: " ++ x]
                        walk
                    _  -> return ()

    たぶん、似たようなことをしているかと思います。

    まとめ

    今日はGo言語が1.3がリリースされました。もう、心がぴょんぴょんしてきます。

    また、もっと簡単にかけるぜ!という方、もしくは、PHPやRubyなどに興味があり、
    Fusicで一緒に働いてみたいという方はこちら
    フォームからご応募くださいませ。

    それでは。

      はてなブックマーク - Fusic勉強会 #5 を開催します
      このエントリーをはてなブックマークに追加

      小山です。

      新年ですね。まあそんな気分は既にふっとんでいますが。

      さて、Fusic勉強会 #5が1月16日(木)に開催します。

      Fusic勉強会 #5

      皆さんふるって参加してください。

      「今さら」をもう一度紹介する

      Fusic勉強会はジャンルがバラバラです。さらに発表者に「今さら??」というような技術情報をあえて発表してもらったりしています。

      というのも、先輩には「今さら」「当然」でも、新人や慣れていない人には「初めて」ということがあるからです。

      主な原因の1つとしてドキュメントの不足がありますね。

      ドキュメントがあれば、後々共有できたり学ぶ手助けができます。
      ドキュメントがないと、「そのとき」に共有した人だけが使えるツールになってしまいます。

      例えば、これとか、これとか、これとか、READMEがないとか最悪ですね。。。。ですね。。。。です。。。

      そうでなくても、「その当時は暗黙の了解」なトレンドな技術やツールがあったと思います。なかなかドキュメントに残らないですよね。。

      今回の発表内容にもある「TestFlightでスマホアプリのデバッグをラクにする」も、もともとは自分から発表者に依頼しました。
      本人には新規性がなくても、知らない人にはとても有用だと思います。

      このように、Fusic勉強会では、ときどき「今さら」な発表があったりします。

      もし発表内容に「聞いたことがあるけど学ばなかった技術」などがありましたら、いい機会ですので聞きに来てください。「今さら」ですからレアですよ?

        はてなブックマーク - Fusic勉強会 #3 本日です
        このエントリーをはてなブックマークに追加

        小山です。

        年末ですね。

        最近やっている案件で、Ansibleを使って複雑な環境を一気に作り上げたときは、本当に感動ものでした。

        さて、Fusic勉強会 #3ですが、本日開催となります。
        3回が3回ともジャンルがバラバラなので混乱している人もいるかと思いますので、今回は趣向を変えて、軽く発表内容を「想像で」紹介したいと思います。

        想像が合っているか間違っているかは、是非参加して確かめてください。

        ELBのクロスゾーン試してみた、失敗した、リベンジした / 島田 知法

        最近、ELBに追加されたCross-Zoneの話ですね。世間では「これはいい!」と、結構手放しでもてはやされていますが、やっぱり「実際に投入するときには、つまずきポイントがある」ということでしょうか?

        発表者は、Fusicの中では最も大きい規模のサービスを担っていますので、そこらへんも関わってくるのかもしれません。

        Fusic監視愛好会 活動報告 / 杉本 慎太郎

        この「Fusic監視愛好会」ですが、社内でも知っている人は一部だと思います。。。

        内容は。。。ちょっと伏せましょう。ネタバレになりそうなので。

        ただ、面白いことを始めていることは確かです。よくある「弊社ではこういったことをしています!」という発表はありますが、「こういったことを試行錯誤しています!」という発表はなかなかないかと。

        別に社員を監視しているわけではありませんよ。発表者曰く「そういった考えをする人は心にやましいところがあるからです」とのこと。

        いまさらSPL入門 / 櫻川 幸三

        「言わずと知れたSPL」と言いたいが、あまり知られていない使われていないSPL。使いどころでは便利なのに。

        という内容だと想像しています。基本を知ることができるいい機会です。

        (受託案件で)使える!! Yav plugin / 小山 健一郎

        はい、小山です。自分がずっとメンテを続けているCakePHP Yav Pluginの再紹介です。
        Fusicのメンバーも増えましたので、知らない人もいると思いましてもう一度紹介しようかと。

        いままで多くのCakePHP Pluginを作ってきましたが、メンテを続けているということは、それだけ実案件において有効だということです。

        特にこのYav Pluginは、自分の備忘録的に拡張が続けられています。

        つまり実案件におけるエッセンスがいろいろ入っているわけですね。

        ただ、当時も紹介を適当にしていたので(さらに拡張も進んでいるので)、今回は本気出します。たぶん。

        というわけで

        本日です。「忘れてた」という方も「今日は仕事が早く終わりそうだな。ちょっと言ってみるか」という方も「Fusicって何?」というかたも、遊びにきてください。

        fusic.doorkeeper.jp/events/7414