はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    ブラックフライデー

『@methaneのマイページ - Qiita』

  • 人気
  • 新着
  • すべて
  • エラーを検査する - Qiita

    93 users

    qiita.com/methane

    NOTE: この記事は Inspecting Errors を翻訳したものです。 原文に従い、 Creative Commons ライセンスで公開します。 error インターフェイス型の値を返す関数の一般的な契約は、呼び出し側はその error をチェックする前にそれ以外のいかなる戻り値も利用してはいけないというものです。 多くのケースにおいて、関数が返した error 値は呼び出し元にとって不透明であるべきです。 error が nil かどうかチェックすることで呼び出しが成功したかどうかを知ることができ、そしてそれ以上のことはしません。 少ないケースにおいて、主にネットワークなどプロセス外の世界とやりとりする場合に、呼び出し側がエラーの種別を調べて、操作をリトライするべきかどうかを決める必要があります。 パッケージ作者に対して、呼び出し側がエラーの型を判別して利用できるように返すエラ

    • テクノロジー
    • 2015/05/08 18:23
    • golang
    • Go
    • error
    • exception
    • あとで読む
    • API
    • stringer を使う場合は import に注意 - Qiita

      5 users

      qiita.com/methane

      原因 stringer がコード生成する際に、単に AST を作るだけじゃなくて型チェックなどまで行っていて、その中の import チェックでこけています。 GOPATH が通ってるのに import がコケてるのは、 golang.org/x/tools/gcimporter が $GOPATH/pkg/ 配下から $GOPATH/pkg/pkg.a などのファイルを探していて、 Go のソースファイルは探していないせいです。 憶測ですが、Go のパッケージ名は慣習的にディレクトリ名と同じになっていますが、実際には package 文にはディレクトリ名以外の名前を指定することもできるため、コンパイラを呼び出さずに高速に解析するための制限なのかもしれません。 解決策1: go install する 上の例で言えば、 go generate pkg の前に go install pkg/s

      • テクノロジー
      • 2015/01/23 12:20
      • Go
      • Windows での Python 2.7, 3.4, 3.5 の拡張モジュールビルド環境 - Qiita

        25 users

        qiita.com/methane

        Windows 用に Python のバイナリパッケージを作成するときに知っておいたほうがいい基礎知識や便利情報をまとめて書いていきます。 Windows でのバイナリパッケージの重要性について Windows 上で Python を使っているユーザーは、 Python の拡張モジュールをビルドする環境を持っている可能性はとても低いです。 もともと Mac に比べてコンパイラをインストールしているユーザーが少ない上に、 Mac 版では OS のバージョンごとにコンパイラが固定されるのに対して、 Windows では OS ではなく Python のバージョンによってコンパイラのバージョンが決まるという事情もあり、自分で調べて Python の開発環境を揃えている人以外が適切なコンパイラをセットアップしている可能性はゼロに近いです。 一方で Windows では python.org が提供

        • テクノロジー
        • 2014/12/18 10:18
        • Python
        • windows
        • python3
        • プログラミング
        • Go で Language Benchmark Game に挑戦して惨敗した - Qiita

          18 users

          qiita.com/methane

          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

          • テクノロジー
          • 2014/12/09 00:36
          • golang
          • Go
          • benchmark
          • cpu
          • あとで読む
          • libh2o をビルドする - Qiita

            13 users

            qiita.com/methane

            h2o Advent Calendar の2日目です。 h2o はスタンドアロンの HTTP サーバーだけでなく、 libh2o というライブラリとしてビルドすることもできます。今回は libh2o をビルドして、 hello world サーバーを作るまでやってみます。 環境は Ubuntu と Mac OS X を想定しています。 cmake h2o はビルドシステムに cmake を利用しています。 brew なり apt-get なりで cmake を用意しておきましょう。 他に、後述する libuv のために automake, libtool が必要です。 C++ も入ってなかったら用意しておきましょう。 libuv h2o のスタンドアロン版では libuv 1.0.x への依存が optional なのですが、 libh2o では必須になっているようです(少なくとも僕は l

            • テクノロジー
            • 2014/12/02 10:13
            • h2o
            • C++
            • サーバ
            • Library
            • プログラミング
            • web
            • Python 3 で少しだけ便利になった datetime の新機能 - Qiita

              37 users

              qiita.com/methane

              datetime モジュールは Python の標準ライブラリの中でも、使用頻度が高い割に罠が多かったり使い方が難しかったりする、あまりイケてないモジュールだと個人的に思っています。 そんな datetime モジュールですが、 Python 2 のプロジェクトを Python 3 に移行した時に大分コードを整理できてちょっと感動したので紹介しておきます。 unixtime との相互変換 unixtime から datetime.datetime への変換は、 ローカルタイムなら.fromtimestamp() で、 UTC なら .utcfromtimestamp() 関数で行います。 >>> import time >>> from datetime import datetime >>> now = time.time() >>> now 1415542873.099776 >>>

              • テクノロジー
              • 2014/11/10 08:04
              • python
              • datetime
              • Python 3
              • python3
              • qiita
              • ISUCON2 向けのOSの初期設定 - Qiita

                6 users

                qiita.com/methane

                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                • テクノロジー
                • 2014/10/02 23:06
                • wsgi, Bottle, Flask の速度差 - Qiita

                  46 users

                  qiita.com/methane

                  ISUCON の季節ですね。 ISUCON では慣習的に各言語で代表的なマイクロフレームワークが使われるのですが、 Python では今のところ Flask がずっと使われています。 Flask は確かに、簡単なサンプルアプリを書くときの見た目はマイクロフレームワークになっています。 しかし、構造的には沢山のフック、シグナルがあったりしていて、重量級の設計になっています。 Flask 本体と Werkzeug を合わせると数万行のサイズです。単なる Hello World アプリでも、数十の関数呼び出しが裏で動いています。 Bottle も、 Flask と同じくマルチスレッド対応で、スレッドローカルを使ったコンテキストスタックがある、拡張機能もあるフレームワークですが、構造は Flask よりも大分質素です。 ソースコードも1ファイル3000行代で、その分フレームワークのオーバーヘッドも

                  • テクノロジー
                  • 2014/09/19 00:52
                  • python
                  • flask
                  • bottle
                  • wsgi
                  • framework
                  • performance
                  • 技術
                  • 開発
                  • Go の Prepared Statement は Connection を気にせず使える - Qiita

                    13 users

                    qiita.com/methane

                    コネクションプールと prepared statement database/sql は、トランザクションを除いて基本的にコネクションをユーザーに見せず、全ての操作をコネクションプール sql.DB を通して行う設計になっています。 コネクションプールと言えば、 prepared statement の実装が気になります。 prepared statement は基本的にコネクションに紐付いていて、 プレースホルダ付きのクエリを投げてコネクションローカルの「ハンドル」を貰う 「ハンドル」にパラメータを送ってクエリを実行する 「ハンドル」を閉じる(あるいはコネクション自体を閉じる) という流れになるので、コネクションプールと組み合わせて使う場合には、 毎回ハンドルを取得&開放する (1クエリに3回通信が発生) ハンドルを開放しない (DBサーバー側のリソースを食いつぶす) コネクションごとに

                    • テクノロジー
                    • 2014/09/03 13:31
                    • golang
                    • db
                    • Go
                    • MySQL
                    • development
                    • *あとで
                    • あとで読む
                    • Travis-CI で Go の Windows 用バイナリを Github release に登録する - Qiita

                      13 users

                      qiita.com/methane

                      Travis-CI には Github release にファイルを登録する機能があります。 (参考) この機能と Go のクロスコンパイル機能を使って、 tag に自動的に Windows 向けのバイナリを登録してみます。 成功したリポジトリがこちらにあります。 methane/localserver Makefile で Windows 向けバイナリを作る GOOS と GOARCH を指定してクロスコンパイルし、 Github にアップロードしたい zip ファイルを作ります。ここでは Windows 用の 32bit 版だけ用意しています。この例では localserver-win32.zip が生成されます。 Travis CLI を使って準備 gem install travis をして、 travis のコマンドラインツールが実行できるようにしておきます。 (gem とか面倒

                      • テクノロジー
                      • 2014/07/19 23:01
                      • golang
                      • travis-ci
                      • github
                      • TravisCI
                      • CI
                      • go
                      • Homebrew で pip が DistributionError を出す場合の対処 - Qiita

                        5 users

                        qiita.com/methane

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                        • テクノロジー
                        • 2014/06/06 14:10
                        • python
                        • mac
                        • Python 3 で日本語ファイル名が入った zip ファイルを扱う - Qiita

                          5 users

                          qiita.com/methane

                          zip ファイルは最近の仕様では UTF-8 でファイル名を格納できるのですが、多くの場合レガシーな環境依存文字コードでファイル名が格納された形式が使われています。日本語の場合は Windows に合わせて Shift-JIS (cp932) が使われることが多いです。 Python 2 では zipfile モジュールが返すファイル名はバイト文字列だったのでそのまま cp932 のファイル名が返ってきたのですが、 Python 3 では文字列が Unicode に統一されたため、 zip ファイルを読み込むとファイル名がデコードされて文字列になって返ってきます。 が、もちろん日本語の慣習がデフォルトの挙動になってるわけではないので、このままでは文字化けしてしまいます。 Python 3.4 の zipfile モジュールを読むと次のようになっていました。

                          • テクノロジー
                          • 2014/03/24 10:07
                          • Python
                          • 日本語
                          • Flask + SQLAlchemy でテストごとに DB を rollback する - Qiita

                            12 users

                            qiita.com/methane

                            Flask アプリのテストで、簡単なものなら sqlite のメモリDBを使えば良いですが、複雑なアプリだと本番環境と同じ RDBMS を使って実行したいことが多いです。 その際、テストごとにDBを初期化すると遅いので、コミットせずに毎回ロールバックで対応したいのですが、 Flask.test_client や WebTest などを使って複数のHTTPリクエストを行うテストでは、リクエストをまたいでデータを引き継ぐ必要があります。 これを実現するために、 テスト中は session.commit() を session.flush(), session.expire_all() に置き換える リクエスト終了時、通常は session.remove() し、テスト中は session.expire_all() する テストごとに session.remove() する。 というカスタマイズ

                            • テクノロジー
                            • 2014/03/07 14:25
                            • flask
                            • SQLAlchemy
                            • python
                            • database
                            • Go 1.4 の環境構築 Homebrew + Vim 編 (2014.12) - Qiita

                              22 users

                              qiita.com/methane

                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                              • テクノロジー
                              • 2014/03/04 12:37
                              • golang
                              • Go
                              • vim
                              • development
                              • Python の logging を設定するときは disable_existing_loggers に注意 - Qiita

                                12 users

                                qiita.com/methane

                                ロギングの環境設定 という公式ドキュメントにも警告があったのですが、思いっきりハマってしまったので記事にしておきます。 Python の logging モジュールは、 addHandler() などのメソッドを呼び出して構成する以外に、 ini 形式の設定ファイルを元に構成する logging.config.fileConfig() や、 dict 型の設定情報を元に構成する logging.config.dictConfig() を使って構成することができます。 import logging.config logging.config.dictConfig({ 'version': 1, 'handlers': { 'default': { 'class': 'logging.StreamHandler', 'level': 'DEBUG', 'stream': 'ext://sys.

                                • テクノロジー
                                • 2014/03/03 04:15
                                • python
                                • nginx + uwsgi でアプリケーションをサブディレクトリで動かす設定 - Qiita

                                  10 users

                                  qiita.com/methane

                                  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                  • テクノロジー
                                  • 2014/02/26 20:57
                                  • uwsgi
                                  • nginx
                                  • howto
                                  • qiita
                                  • tech
                                  • python
                                  • 技術
                                  • 開発
                                  • SQLAlchemy で Enum を使う - Qiita

                                    4 users

                                    qiita.com/methane

                                    便利な Enum 型 ですが、 Web アプリで使う場合は O/R Mapper でそのまま使いたいですよね。 SQLAlchemy は、 TypeDecorator を使って、既存の型をラップした独自型を簡単に定義できます。 Integer をラップして Enum を保存してみます。 from __future__ import print_function, division, absolute_import from sqlalchemy import Integer from sqlalchemy.types import TypeDecorator class EnumType(TypeDecorator): """Store IntEnum as Integer""" impl = Integer def __init__(self, *args, **kwargs): sel

                                    • テクノロジー
                                    • 2014/01/24 18:36
                                    • SQLAlchemy
                                    • Python
                                    • Python 3.4 から標準ライブラリに入る Enum 型が今からでも便利 - Qiita

                                      35 users

                                      qiita.com/methane

                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                      • テクノロジー
                                      • 2014/01/24 03:23
                                      • python
                                      • enum
                                      • Qiita
                                      • development
                                      • programming
                                      • 技術
                                      • PyCharm での type hinting を使いこなす - Qiita

                                        15 users

                                        qiita.com/methane

                                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                        • テクノロジー
                                        • 2013/04/21 23:59
                                        • Python
                                        • PyCharm
                                        • Flaskのカスタマイズについて - Qiita

                                          12 users

                                          qiita.com/methane

                                          2012 Pythonアドベントカレンダー(Webフレームワーク) #python_adv の5日目担当です。 この記事は自分のBlogとのマルチポストになります。 http://methane.hatenablog.jp/entry/2012/12/05/134206 Flaskはオモチャじゃないよ PyCharmなどのIDEがFlaskに対応を始めたり、Flask はそろそろ Django に続く Python の Web フレームワーク No.2 と名乗れそうなほど広まってきています。(その割にPython3対応遅いけど) Flaskと言えばマイクロフレームワーク、Hello World が簡単に書けるヤツで有名ですよね。 これを見るとオモチャっぽく見えるんですが、Flaskは1つのPythonインタプリタに複数のアプリを載せたり、1つのアプリの複数のインスタンスを載せたりできるしっ

                                          • テクノロジー
                                          • 2012/12/05 15:40
                                          • flask
                                          • Python
                                          • qiita
                                          • 技術
                                          • 開発
                                          • LinuxでPythonをビルドするときの --enable-shared オプションについて - Qiita

                                            40 users

                                            qiita.com/methane

                                            Linux で Python をビルドするとき、 --enable-shared という configure オプションがありるので、その解説とTipsを紹介します。 具体例として Python を挙げていますが、話の内容のほとんどは他の言語やライブラリでも共通だと思います。 --enable-shared とはなにか このオプションを指定しない場合、主要なバイナリファイルとして python という実行ファイルと libpython2.7.a (Python 2.7の場合) というライブラリファイルができます。 --enable-shared をつけた場合、 libpython2.7.so というダイナミックリンク用の shared object も生成され、 python はこの shared object をダイナミックリンクするようになります。 Debian などの Linux デ

                                            • テクノロジー
                                            • 2012/11/28 17:11
                                            • python
                                            • Linux
                                            • build
                                            • 技術
                                            • 最速最強Webサーバーアーキテクチャ - Qiita

                                              316 users

                                              qiita.com/methane

                                              PyFes 2012.11 発表資料です。 システムコールに焦点を当てて、 meinheld のアーキテクチャを紹介します。 アーキテクチャを説明するために Pure Python でサンプル実装を書いていますが、ちゃんと動くし、HTTPリクエストのパースを端折っているので 10000req/sec 以上出ます。 イベントドリブンのコードでフローが判りにくい場合は python -mtrace -t --ignore-module socket webserver1.py などのようにトレースしながら実行するといいでしょう。 前提 今日は、シンプルなレスポンスを返すだけの条件でをひたすら req/sec を追求する話をします。 たとえば、 nginx の lua モジュールで "hello" と返すだけとかです。 静的ファイルを配信するサーバーとかだともっと別のことも考えないといけません。

                                              • テクノロジー
                                              • 2012/11/24 13:52
                                              • python
                                              • HTTP
                                              • サーバ
                                              • httpd
                                              • nginx
                                              • アーキテクチャ
                                              • Webサーバー
                                              • programming
                                              • サーバー
                                              • web
                                              • VimでGoのコードを書くときにやっておきたいこと - Qiita

                                                28 users

                                                qiita.com/methane

                                                Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                • テクノロジー
                                                • 2012/10/16 17:23
                                                • vim
                                                • golang
                                                • Go
                                                • すごく簡単なアルゴリズムがphpで書けなくてつらい - Qiita

                                                  98 users

                                                  qiita.com/methane

                                                  ある条件でソートされているIDのリストを与えられて、なんとなく近い範囲でマッチングさせたいという要件があった。配列からの任意の要素の取り出しは O(n) だけど、末尾や末尾から固定した範囲の要素に限って言えば O(1) なので、後ろの方からマッチングさせながら要素を取り出していけば O(n) でマッチングできるはず。 なんにも難しいことは無い話で、 Python で書けばこうなる。 list.pop() が末尾からのインデックス (-1 が最後の要素を表す) を許すのが地味に便利だ。 # coding: utf-8 def match(seq, r=100): from random import randint # 奇数個の時に先頭周辺の要素がボッチになるのが嫌なら、先に後ろの方の # 要素を取り除いて偶数にしておくこと. while len(seq) >= 2: # 引数を省略すると末

                                                  • テクノロジー
                                                  • 2012/09/05 15:50
                                                  • php
                                                  • アルゴリズム
                                                  • python
                                                  • algorithm
                                                  • dis
                                                  • 技術
                                                  • test
                                                  • Paver を使ったスクリプティング - ファイル操作編 - Qiita

                                                    5 users

                                                    qiita.com/methane

                                                    Python の標準ライブラリのファイル操作、 os にあるのか os.path にあるのか、 shutil にあるのかで悩むことないですか? paver.path モジュールにある path クラスを使うと、ファイル操作が Python の標準ライブラリよりも簡単になります。 使い方 path クラスも paver.easy に入っているので、 from paver.easy import * してあると path だけで利用できます。 この path クラスは文字列を継承して、その文字列を引数に取るような操作をするメソッドを定義しています。また / 演算子にパスの結合操作をオーバーライドしていたり、その他さまざまな便利メソッドを定義してあります。 >>> from paver.easy import * >>> root = path('/') >>> root path(u'/')

                                                    • テクノロジー
                                                    • 2012/08/27 21:58
                                                    • python
                                                    • 一度だけ評価するプロパティ - Qiita

                                                      5 users

                                                      qiita.com/methane

                                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                      • テクノロジー
                                                      • 2012/08/22 12:16
                                                      • python
                                                      • php
                                                      • programming

                                                      このページはまだ
                                                      ブックマークされていません

                                                      このページを最初にブックマークしてみませんか?

                                                      『@methaneのマイページ - Qiita』の新着エントリーを見る

                                                      キーボードショートカット一覧

                                                      j次のブックマーク

                                                      k前のブックマーク

                                                      lあとで読む

                                                      eコメント一覧を開く

                                                      oページを開く

                                                      はてなブックマーク

                                                      • 総合
                                                      • 一般
                                                      • 世の中
                                                      • 政治と経済
                                                      • 暮らし
                                                      • 学び
                                                      • テクノロジー
                                                      • エンタメ
                                                      • アニメとゲーム
                                                      • おもしろ
                                                      • アプリ・拡張機能
                                                      • 開発ブログ
                                                      • ヘルプ
                                                      • お問い合わせ
                                                      • ガイドライン
                                                      • 利用規約
                                                      • プライバシーポリシー
                                                      • 利用者情報の外部送信について
                                                      • ガイドライン
                                                      • 利用規約
                                                      • プライバシーポリシー
                                                      • 利用者情報の外部送信について

                                                      公式Twitter

                                                      • 公式アカウント
                                                      • ホットエントリー

                                                      はてなのサービス

                                                      • はてなブログ
                                                      • はてなブログPro
                                                      • 人力検索はてな
                                                      • はてなブログ タグ
                                                      • はてなニュース
                                                      • ソレドコ
                                                      • App Storeからダウンロード
                                                      • Google Playで手に入れよう
                                                      Copyright © 2005-2025 Hatena. All Rights Reserved.
                                                      設定を変更しましたx