スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    pychart使いたいよう…(泣

    0
      「WEBシステム上でリアルタイムにグラフ描きたい!」なお客様が出て来たので、見積もりの参考としてまず有名な?pychartを使ってテストしてみようと思い立ちました。

      pychartのサイト
      http://home.gna.org/pychart/
      サンプル集
      http://home.gna.org/pychart/examples/index.html

      pychartをインストールして、早速サンプルを試してみました。
      …エラー(泣)。


      ghostscriptとかいうのが無い、と怒られてます。
      ghostscript
      http://www.ghostscript.com/
      寡聞にして初めて知りました(汗
      よーし、これをインスコ……しようと思ったら、makeでコケて入りません。
      configureをいろいろ変えてみてもダメ、バージョン1つ前(8.63→8.62)に戻してもダメでした。
      諦めました。

      代替案
      ・PILで線を引かせる?
      ・phpとImageMagickにやらせる?
      ・flashを使う?

      代替案をいろいろ検討してみても、一旦使える環境さえ作ってしまえば、pychartが一番楽に使えると思うんだけどなぁ。


      python多次元リストをsort(並べ替え)する方法?

      0
        リスト型のソートについて。

        こちらのページを参考にさせていただきましたm(_ _)m

        list = [[1,2,3],[9,3,4],[5,6,7]]のような2次元リストを、中身のリスト([1,2,3]とか)の1番目の要素で並べ替えしたい場合:

        list = [[1,2,3],[9,3,4],[5,6,7]]
        def narabe(x,y):
        return x[0]-y[0]

        list.sort(narabe)

        とすると、
        list=[[1,2,3],[5,6,7],[9,3,4]]
        みたいに並び替わりました^^

        もっと多次元の配列になってもできるみたい。
        私は3次元までしか試してませんがw

        しかし、PHPで同じことできる自信がないなぁ…。
        偶々1件python使う仕事を請けたら、すっかりpythonに染まってしまった^^;


        日本語テキストをtruncate@django(Python全般にも??)

        0
          最近すっかりPHP&symfonyを捨ててdjangoばかり使ってます(汗

          さて、仕事(一応プログラマではなくWEB屋でっす^^;)柄、主に完パケ納品できるCMS・ブログ系を作ることを念頭においてdjangoをあれこれ触ってるわけですが、そうすると必然的に「コンテンツの概要」を表示して「続きを読む」ってやつをやりたいわけです。そう、MovableTypeにもあるアレ。


          もとのテキストが英語(に限らず、シングルバイト文字のみの言語)なら話は簡単です。
          何語で区切る・何文字で区切るってのが間違いようがないので。
          事実、djangoの組み込みフィルタにもありますよね<truncatewords

          ところが、日本語(に限らず、マルチバイト文字を使う言語)だと、単純に「何文字」で区切ると、ひとつの文字の途中で切られてしまうことがありえます。
          これがあまりパソコンに詳しくないクライアントに見つかると、「文字化け!文字化け!早くなんとかして!」と大騒ぎして電話がかかってくるのでもう大変(爆

          その点、MovableTypeの概要(MTEntryExcerpt)は変なところで切れたのを見たことが無いので、何かうまいことやってるんだと思うんです。つまり、方法はある!ということ。

          本来であれば、この時点でMovaleTypeのコード読みをして(Perlキラーイだけど。泣)、どうやって日本語でtruncate処理をしているのか解明してみるべきなんでしょう。
          が、やはりPerl苦手の私がPerlのコード読みをするとハマる可能性が高いこと(恥)、まとまった勉強時間が取れないこと、から判断して、簡易truncate処理を考え付きました。

          使うのは例によってカスタムフィルタです。(←最近こればっかり。汗)
          myproject > myapp > templatetags > truncate.py


          from django import template
          import string
          register = template.Library()

          @register.filter
          def truncate_first_break(value):
          list = value.rsplit("¥n")
          str = list.pop(0)
          return str

          @register.filter
          def truncate_second_break(value):
          list = value.rsplit("¥n")
          str = list.pop(0) + list.pop(1)
          return str


          ハイ、なんとも原始的でお粗末です。
          スミマセン。

          まず、日本語の文章を書いていると「改行」というのは一まとまりの文章の区切りになりやすいということに着目しました。(これが文系出身の強み?)

          そこで、生のテキストをフィルタが受け取ったら(value)、それを¥n(改行コード)で切ります(rsplit("¥n"))。
          区切られたテキストをpop()で取ってきて、テキスト内の最初の改行まで(上記truncate_first_break)又はテキスト内の2番目の改行まで(上記truncate_second_break)だけを返します。

          すると…

          「1番目の改行はここです→
          2番目の改行はココです→
          3番目の改行はありません」
          という文章がobject.bodyに入っているとして、
          テンプレートに
          {{ object.body|truncate_first_break }}...<a href="{{ object.get_absolute_url }}">続きを読む</a>
          と書けば
          「1番目の改行はここです→...続きを読む」
          という表示ができますし、

          テンプレートに
          {{ object.body|truncate_second_break }}...<a href="{{ object.get_absolute_url }}">続きを読む</a>
          と書けば
          「1番目の改行はここです→2番目の改行はココです→...続きを読む」
          という表示ができます。


          力不足のため「何文字」と指定して切る方法はまだ思いつきませんが(汗
          これで結構代用がききそうな気がしませんか(^−^)
          「何文字以内」で良いのであれば、list.popをループで廻して、strの文字数が指定文字数を超えない範囲で止めれば近いことは実現できそうです♪


          現実逃避?Pythonに浮気

          0
            symfonyで作ったサイト、本番サーバーにアップすると結構重い。
            ローカル環境…Core2Duo 2.4GHz メモリ2G WinXP Apache2.2 PHP5.2.1
            本番環境…Pen4 2.8GHzを24人共有、専有メモリ160MBのVPS Apache2.0 PHP5.1.6
            ApacheやPHPって、そんなに劇的に高速化してないはずなのにー。
            やはり原因はメモリ?w

            週末にちょっと2chを見てきた感じでは、symfonyは便利だけどやや重いというのは定説らしく、どうしようもないらしい。
            クライアントに「鯖変えて」と言うこともできるけど、どうやら予算的に無理っぽい。

            で、今の重さはクライアント的には「別に気にならない」とのことなので、まぁ放っておくとして、もし今度何か大がかりな物を組むことになった時に、symfonyと同じぐらい楽に、しかも仕上がり軽く作れるものはないかな?と物色(ぜいたく言うな!w)。
            今のを組み終わったら、ちょっとヒマができる予定(細かいデータメンテは残るけれど)なので、必要なら新しい言語を勉強してもいいし^^

            で、たどり着いたのがPythonDjango
            とにかく速いと評判なのと、小さなバイナリを付ければどんなWEBサーバーでも動作する(CGI使えない鯖でもOKとか??)らしいと小耳にはさんだ(要研究)ので、私のクライアントさん達の要求にマッチする気がして(鯖代ケチる人が多め…)。

            結局今まだPythonのインストールから色々つまづいてますが(爆)
            1日坊主に終わったRubyを放置して、しばらくPythonをやってみたいと思います。
            決意表明でした。


            1

            PR

            calendar

            S M T W T F S
                  1
            2345678
            9101112131415
            16171819202122
            23242526272829
            30      
            << April 2017 >>

            twitter

            selected entries

            categories

            archives

            recent comment

            • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
              プログラマー
            • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
              よし
            • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
              ななうぇぶ
            • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
              よし
            • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
              よし
            • WindowsのPCで開発するphperがxhprofを使う方法
              ななうぇぶ
            • WindowsのPCで開発するphperがxhprofを使う方法
              川本
            • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
              よし
            • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
              77web
            • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
              ktz

            recent trackback

            • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
              常山日記
            • django対symfony 日本語メール送信(その1 symfony編)
              CPA-LABテクニカル
            • CodeIgniterでユーザー認証
              されどLAMPな日々
            • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
              常山日記
            • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
              サーバー用語集
            • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
              常山日記
            • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
              mitszoの日記
            • python多次元リストをsort(並べ替え)する方法?
              mitszoの日記
            • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
              Humming Via Kitchen
            • 日本語テキストをtruncate@django(Python全般にも??)
              常山日記

            recommend

            links

            profile

            search this site.

            others

            mobile

            qrcode

            powered

            無料ブログ作成サービス JUGEM