タグ

ブックマーク / blog.harapeko.jp (72)

  • はらぺこ日誌» ブログアーカイブ » Python 習得中 – その 6

    今回は 5章、モジュールの import の仕方やモジュールの書き方、あとはいくつかの標準ライブラリの紹介です。 手元ではもう概ね読了しています。ブログに書くのは一旦ここまでで終了しようかなと思っています… こうやって書き出すよりいろいろ作って実践していったほうが身につくのは早そうなので…。 モジュールのパッケージ ライブラリパスの通ったディレクトリ下にディレクトリを作成 その下に Python モジュールとして読み込ませるクラスや関数を書いた .py ファイルを作成 ↑と同じ場所に __init__.py という名前の空のファイルを作成 ロードするときは、ディレクトリ名が package_dir で、その配下にある hoge.py ファイルに定義されたクラスや関数をすべてロードする場合、以下の通りとなる。 from package_dir import hoge # MyHogeHoge

    t-murachi
    t-murachi 2017/04/09
    セルクマ (忘れてた
  • はらぺこ日誌» ブログアーカイブ » Python 習得中 – その5

    業務が始まったこともあり、間が空いてしまいました。余談ですが、業務でもすでに段階的に Python を使い始めておりまして、 selenium と BeautifulSoup を使って Web スクレイピングでクローリングする script kiddy な感じのツールをメンテする準備を進めたりしています。 「入門Python3」は電子版を購入したのですが、 O’reilly の電子書籍は一度購入してしまえば O’reilly のサイトからいつでもどこでもダウンロードできます。閲覧規制が若干厳しい職場の環境でもダウンロードできたので何気に便利で快適です^^。 今回は 4章の 4.6節から。手元ではすでに 8章の途中ぐらいまで概ね読み終わっているのですが、今回は 4章までの内容について記述します。 内包表記 Python をして、もっともスクリプト言語らしい機能のひとつであるように思います。ザ

    t-murachi
    t-murachi 2017/03/22
    なかなか書く暇ないなぁ…
  • はらぺこ日誌» ブログアーカイブ » Python 習得中 – その 4

    今日は 4章の 4.5節まで。 複数の不等号を含む評価式が書ける 変数が取りうる値の範囲を調べる場合、その変数を and を挟んで 2回書く代わりに、複数の不等号を含む単一の評価式として書くことができる。 >>> x = 7 >>> 5 < x < 10 True >>> x = 2 >>> 5 < x < 10 False >>> y = 200 >>> 0 < x < 100 < y < 1000 True こういう書き方できればいいのになぁと思うことは多々あったが、実際できる言語が存在するんですなぁ…。 ループブロックの else 節 ループブロックに else 節をつけると、 break 等による中断以外でループ終了する時に呼ばれるようです。 >>> numbers = [] >>> count = 0 >>> while count < 5: ... val = input(st

  • はらぺこ日誌» ブログアーカイブ » Python習得中 – その3

    3章まで読了。データ構造を表す型が何気に豊富ですね…。 リストをコピーする方法が 3通りもある 意外と自由度高いな…。 >>> a = [1, 2, 3] >>> b = a.copy() >>> c = list(a) >>> d = a[:] >>> a[0] = 'hoge' >>> a ['hoge', 2, 3] >>> b [1, 2, 3] >>> c [1, 2, 3] >>> d [1, 2, 3] 見た目だけなら d のやり方が一番好きだけど、パフォーマンス的にはどれが一番マシなんだろう…? ちなみに辞書のコピーは 3.4.12 節では copy() メソッドによる方法しか示されていなかったが、少なくとも dict() コンストラクタを使う方法は同様にイケるっぽい。 Python ではリストとタプルは別物である Perl で慣れてるのでこういう表現になります。 Perl

  • はらぺこ日誌» ブログアーカイブ » Python習得中 – その2

    Python 習得中です。今日は 3章の 3.2.16 まで。 list コンストラクタに文字列を渡すと一文字ずつに分解してリスト化する >>> list('cat') ['c', 'a', 't'] 率直に言って気持ち悪いですね(´・ω・`) タプルも同じですか。 >>> tuple('cat') ('c', 'a', 't') 素直に [〜] とか (〜) とか使えって話ですね。 [0] はいくつでも重ねられる リストのリストをいじっていて気づいたのですが、 >>> arr = [['foo', 'bar', 'baz'], ['hoge', 'fuga', 'piyo'], [1, 2, 3]] >>> arr[0] ['foo', 'bar', 'baz'] >>> arr[0][0] 'foo' >>> arr[0][0][0] 'f' ここまではわかるのですが、 >>> arr

    t-murachi
    t-murachi 2017/02/22
    ちょこっとずつ習得中…。
  • はらぺこ日誌» ブログアーカイブ » Python 習得中 – その1

    新しい現場で Python を使う仕事があるということなので、オライリーの入門 Python 3 の電子書籍版を購入して予習しています。とりあえず 2章まで読みました。 履修した中で気づいたことなどをちらほらとメモってみることにします。 / は浮動小数点数の演算になる 演算子の左右が整数であっても、評価結果は必ず浮動小数点数になる。 整数の割り算を行いたい場合は // を使用する。 >>> 9 / 4 2.25 >>> 9 // 4 2 整数型はサイズの制限がない Python3 では long 型が廃止され、 int 型は際限なく大きい値を取り扱えるようになっている。オーバーフロー例外は起こりえない。 面白いけど、 DBMS で取り扱われる整数だってサイズ制限はあるし、そこまでメリットあるのかなぁ…? 効率面との兼ね合いとかもどう折り合いをつけているんだろう? (ソースコード嫁>ヲレ)

  • はらぺこ日誌» ブログアーカイブ » 第8期決算報告書を公開しました

    第8期決算報告書を公開しました。前期も一応黒字です。 …前回のブログ更新も決算報告ですね… この1年、社長ブログ更新してなかったのか… orz 近況ですが、ここ最近の仕事はずっと ASP.NET MVC 関連のものです。但し、9月から、メインの取引先が変わっています。で、その取引先さんとは (諸事情により) 個人事業主として契約しております。つまり、今期から、会社としての売上は、(ほとんど) 立たなくなるということになります…。 私自身としては、会社の社長になることであるとか、会社を大きくすることであるとか、といったことを目的にしているわけではないので、それはどちらでも良いことではあるのですが。

    t-murachi
    t-murachi 2015/10/24
    決算報告上げますた。さて、青色申告書類作らないとな…。
  • はらぺこ日誌» ブログアーカイブ » 第7期決算報告書を公開しました

    第7期決算報告書を公開しました。 前期は一応まあまあの黒字でした。当面は同等の売上が立ち続ける見込みなので、今期から役員報酬を計上しようかなと… なんかもうちょっとまとまった売上が立つ仕事無いもんですかね(´・ω・`)。 2014 年 10 月 29 日 by 村山 俊之 タグ: 決算 この投稿は 2014 年 10 月 29 日 水曜日 3:00 PM に 活動記録 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。 コメントを残すか、ご自分のサイトからトラックバックすることができます。

    t-murachi
    t-murachi 2014/10/29
    決算公開したでぇ。
  • はらぺこ日誌» ブログアーカイブ » C++11用のクラスひな形生成スクリプトを作ってみた

    C++ で開発する上で、クラスを一つ一つ実装するたびに毎回同じようなことを書かされるのは冗長なので、だいたいこんな感じになるよねという範囲のひな形を生成するスクリプトを perl で記述してみました。 cppgen.pl Getopt::Compact モジュールを使用しています。ご利用の際にはそちらも合わせてインストールしてあげてください。 ツールの特徴としては以下のとおりです。 名前空間とクラス名を指定すると、それらから類推される名前でファイル名や include guard シンボル名を設定し、ひな形を生成する。これらの指定は必須。 名前空間は 1階層にしか対応してません…。 doxygen フォーマット (javadoc 風) でコメントを付加。 -s オプションでクラスの概要 (@brief) を指定可能。省略した場合はクラス名を使用。 クラスの public 継承、仮想クラス、

    t-murachi
    t-murachi 2014/08/20
    ツール作ってみた。ビルド通らなかったらごめんちゃい^_^;
  • はらぺこ日誌» ブログアーカイブ » API 開発における要件分析 – C++ のための API デザイン

    ライブラリ API の設計手法を学ぼうシリーズの第3弾です。前回の記事はこちら。以下の教材を利用しています。 C++ APIデザイン 今回から第4章に入ります。4章は C++ での実装の話はなく、設計に入るまでの情報の収集や整理 (要するに要件分析)、および様々なレイヤーでの設計に関する議論となっています。プログラミング実習をするような内容でもないので、要点をまとめながら解釈したり考えたりしたことをレポートしたいと思います。 今回はその中でも、 4.1~4.3節の、要件分析までの内容について見ていきます。 大原則 最初のセクションに入る前の書き出しで、以下のように書かれています。これはもう、大原則ですよね… (強調は拙引用者によるものです)。 …こうしたさまざまな分析テクニックは個別に使っても組み合わせて使っても有用である。とはいえ、「自分で理解できないことは設計できない」という原則を常に

    t-murachi
    t-murachi 2014/08/10
    ブログ書いたでぇ。
  • はらぺこ日誌» ブログアーカイブ » Observer パターンでコンソール MVC っぽいことをやってみる – C++ のための API デザイン

    ライブラリ API の設計手法を学ぼうシリーズの第2弾です。前回の記事はこちら。以下の教材を利用しています。 C++ APIデザイン さて、API のラッピングパターンについてはざっと読むだけで終了とし、今回は Observer パターンについてさらってみました。 MVC っぽいことをやってみたい。 書では、オブザーバーパターンの説明に入る前に、 MVC アーキテクチャについての説明がありました。 シンプルなアプリケーションでは、コントローラはユーザ入力に基づいてモデルへの変更に影響を与え、こうした変更をビューに通信して、UIを更新できるようにする。しかし、実際のアプリケーションでは、通常、水面下のモデルへの追加変更を反映するために、ビューも更新する必要がある。(…中略…)とはいえ、先ほど述べたように、モデルコードはビューコードを静的にバインディングして呼び出すことはできない。そこでオブ

    t-murachi
    t-murachi 2014/08/06
    なんだか大作になってしまった…。
  • はらぺこ日誌» ブログアーカイブ » shared_ptr にヒープ以外のものを掴ませたいなら何もしない Deleter も一緒に指定してあげればいい

    これまた非常に初歩的な話なのですが… STL のコンテナ (std::vector とか) には基的にオブジェクトへの参照を掴ませることはできない (領域確保の効率の問題とかでデフォルトコンストラクタが必須だから)。 かといって、ナマポを掴ませるのは色々と危険 (意図せず寿命が切れて無効なポインタ掴まされた状態になったりとか)。 そも non-copyable なオブジェクトを扱いたかったりと言った理由で値そのものを掴ませるのは却下したい (まぁ、いろいろあるんだよ…)。 となると std::shared_ptr を噛ますのが順当かと思いきや… 必ずしもヒープに確保した (つまり、 new した) インスタンスだけを扱うとは限らないかもしれない。十分に寿命が長いことがわかっている自動変数やメンバ変数として確保したインスタンスのポインタをこのコンテナに突っ込んであげたい場合もあるかもしれな

    t-murachi
    t-murachi 2014/07/27
    また超初歩的なネタですが…
  • はらぺこ日誌» ブログアーカイブ » C++: lambda の参照キャプチャは const 性を損なわない?

    C++ の勉強ということでちょいちょいスモールケースを書いては意味もなく github に commit するということをやっているのですが… samples-for-blog/c++/minimal-cases/value-modifier-lambda at master · murachi/samples-for-blog んー、何でしょうねこの雑なコード(^_^;A これ自体は確か、ステータスの変化を検知してステータスの種類にかかわらず共通の処理を自動で走らせるようにしたいんだけど、そうするとあれとこれとそれを変更しようとした時にあれを変更した時にもこれを変更した時にもそれを変更した時にも処理が重複して走っちゃうから無駄だよねってケースを想定して、じゃあ今あるステータスを全部一時的な構造体に突っ込んだものを引数にとってその構造体に変更を加えて返すコールバックを引数に取るようにすれば

    t-murachi
    t-murachi 2014/07/25
    もうあんまり仕事に集中できないんでブログ書いた('A`)
  • はらぺこ日誌» ブログアーカイブ » Pimpl とかファクトリとか – C++ のための API デザイン

    otoco プロジェクトの開発に着手するにあたって、私はまだ C++ でのライブラリ開発を 1 からコーディネートした経験がなかったので、クロスプラットフォームに対応したライブラリ API の開発手法を学ぶ必要があると感じました。ちょうどいい感じの教材が割りと最近出ていたようで、早速購入し、勉強を進めています。 C++ APIデザイン C++11 についても若干触れられているようで (原著執筆当時はまだ C++0x と呼ばれていた模様…)、この手の教材の中では比較的情報が新しい方なんではないかと思われます。 実はこのを買って勉強し始めたのはもう結構前 (確か前原にいた頃… 昨年の暮れ頃?) なのですが、ここしばらく業やら引っ越しやらが忙しくてなかなか手を回せずにいたので、久しぶりの着手ということで、すでに履修していた第3章の、 Pimpl イディオムとファクトリメソッド辺りを復習してみ

    t-murachi
    t-murachi 2014/06/19
    べんきょーべんきょー
  • はらぺこ日誌» ブログアーカイブ » 事務所移転しました

    今更のご報告で恐縮なのですが…。 5月1日付けで、事務所を移転いたしました。新しい住所、及び電話番号を、会社サイトの会社概要のページに反映いたしましたので、これからご連絡いただける方はご注意ください。 これまでは自宅兼事務所という形で運営しておりましたが、今回は諸々の事情が有りまして、自宅とは別に独立した事務所を設置しました (とは言っても1Rマンションですが…)。最寄り駅も千葉駅ということで、これまでよりかえって都心から離れてしまいましたが… 環境的にはかなり大きく変わったということも有りますので、これよりまた心機一転、仕事に勤しんでいきたいと思います。 今後ともご贔屓に…。 2014 年 5 月 26 日 by 村山 俊之 この投稿は 2014 年 5 月 26 日 月曜日 9:49 AM に 活動記録 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購

    t-murachi
    t-murachi 2014/05/26
    今後ともご贔屓に…。
  • はらぺこ日誌» ブログアーカイブ » Boost.勉強会 #14 に行ってきました

    Boost.勉強会 #14 東京 – boostjp ヲレが書いたメモ というわけで boostjp 書記担当(?)の @T_MURACHI でございます。ご報告遅れましたが、 3/1 に開催された Boost.勉強会 #14 に行ってきました。過去ログ見る限り #4 以来なので 3年ぶりですか…。なんかもうそろそろコンパイラ的に C++11 使えるのも当たり前になってきて当時に比べてもだいぶいい時代になったなぁとか思ってみたり (M$ 除く)。 内容についてはメモに書いた以上のことを語り尽くせる自信がないので、以下、感想などを思いつきで綴ってみます…。 並列処理に関連する話題を取り上げた話が多かったように思います。トレンドというよりは、プロセッサなどのハードの進化の方向がもう完全にこっちに移行していっているが故の必然、といった感じなんですかね。GPGPU に関して言えば応用カテゴリはまだ

    t-murachi
    t-murachi 2014/03/04
    勉強会行ってきましたのご報告です。いまさらですが…。
  • はらぺこ日誌» ブログアーカイブ » 第6期決算報告と移転のお知らせ

    第6期 決算報告書 (2012年9月~2013年8月) 昨期は特に主だった売り上げもなく、赤字決算に終わりました…。 ただ、今期はすでにいくらか売り上げを確保しておりますので、これまでの青色欠損分をいくらか取り返すことは出来そうです。(志低いな…) それともう一つ。自宅の引っ越しに伴い、弊社住所も移転となりましたのでお知らせします。 新住所とアクセスについては、すでに会社概要のページにて内容を更新済みです。 2013 年 11 月 7 日 by 村山 俊之 タグ: お知らせ, 決算 この投稿は 2013 年 11 月 7 日 木曜日 12:03 PM に 活動記録 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。 コメントを残すか、ご自分のサイトからトラックバックすることができます。

    t-murachi
    t-murachi 2013/11/07
    決算報告upしますた…。
  • はらぺこ日誌» ブログアーカイブ » DataTable から値を引っ張る方法あれこれ

    C# で DB を扱う場合などで、よく DataTable を使うことになると思うのですが、こいつから値を取り出すときの書き方が人によって結構まちまちだな、と思うことが結構あるので、ちょっとおさらいしてみることにします。 今回は割と初歩的な内容になります。あと、記事中のコードはテストしてないので動作を保証できません。 方法1. 普通にキャストする DataTable table = view.Select(); foreach (var row in table) { var seq = (int)row["HOGE_CD"]; var name = (string)row["HOGE_NAME"]; var remark = row["HOGE_REMARK"].GetType() == typeof(string) ? (string)row["HOGE_REMARK"] : null

    t-murachi
    t-murachi 2013/06/10
    C# の話でごめんなさい。しかも超初歩的な内容でごめんなさい。
  • はらぺこ日誌» ブログアーカイブ » Trac で .wsgi ファイルを複数設定する場合の留意点

    小ネタですが… 重要な Note: 複数の .wsgi ファイルを使用する場合 (それぞれのファイルに別個の Trac environment を設定するケースなど) は、 os.environ['TRAC_ENV'] には Trac environment のパスを 設定しない でください。この方法を使うと、別の Trac environment の設定が Trac にロードされてしまうことがあります。 (以前にロードした Trac environment のパスが使われてしまいます。) この問題は .wsgi ファイルの内容を下記の通り変更することで回避できます: import os os.environ['PYTHON_EGG_CACHE'] = '/usr/local/trac/mysite/eggs' import trac.web.main def application(en

    t-murachi
    t-murachi 2013/03/21
    小ネタですが…。
  • はらぺこ日誌» ブログアーカイブ » WPF と MVVM で時刻入力コントロール

    ちなみに今回は面倒なので MainWindow.xaml は名前空間 TimeInputSample から移動してません。当はこれも TimeInputSample.View の配下に移動すべきなんでしょうが…。 で、「最終的に」と書きましたが、何でかというと、この最終形態はあくまで実際に動いているところを見せるための使用例に過ぎず、今回のトピックのメインはあくまで時刻入力コントロールの実装方法だからです。 時刻入力コントロールの実装 XAML まず、プロジェクト上にユーザーコントロールを新規追加すると、デフォルトでは <UserControl> 要素に d:DesignHeight やら d:DesignWidth やらとありますが、これらは WYSIWYG エディタ上での表示の大きさが設定できるだけみたいです。固定サイズのウィンドウやコントロールに対して WYSIWYG 操作で編集す

    t-murachi
    t-murachi 2013/03/01
    結局 1ヶ月越しぐらいになってしまった… 忙しいとブログ記事一つ書くのも一苦労です ('A`)