サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
masahito.hatenablog.com
対象バージョン Python 3.7以降 TL;DR dataclassでも __slots__ を使える __slots__ をつかうとpropertyの追加ができなくなる(自由度が下るが、コードをおいやすくなる) slots とは docs.python.org __slots__ を使うと、(プロパティのように) データメンバを明示的に宣言し、 (明示的に __slots__ で宣言しているか親クラスに存在しているかでない限り) __dict__ や __weakref__ を作成しないようにできます。 __dict__ を使うのに比べて、節約できるメモリ空間はかなり大きいです。 属性探索のスピードもかなり向上できます。 ということらしい。 dataclassの動作 dataclassを自分で使うときは私の用途だと関数の返り値/引数とかで使うときがおおいのでメモリ空間の節約できると便
masahito.hatenablog.com この記事は^の記事の続きです。^を読んでから読むと良いと思います。 なお、今回のサンプルコードはこちらにあります。(間違いなどありましたらご指摘ください) github.com TL;DR attrsのつかいどころ 今Python3.5 or 3.6を使っている。今後dataclassを使いたい dataclassで slotsなどを使いたい場合にボイラープレートコードを避けたい slotsの効果 attrsとは www.attrs.org 簡単にいうとPython でclassを書くときのボイラープレートになるところがスッキリかけるものです。 1 Overviewで書かれているコードを軽く解説します。 >>> import attr >>> @attr.s ... class SomeClass(object): ... a_number
masahito.hatenablog.com でっかいエビーです。 これの続きを書きたいと思います。 name version ubuntu 18.04 amd64 graalVM 1.0.0 RC2 TL;DL GraalVM+native-image するときはFtatJar つくっちゃうと楽っぽい 割と楽 native-image の実行は glibcが必要 Reflection/ Annotationが絡むと実行時エラーになるっぽい Apache Commons とかは安心して使える. Spring系とかはかなりはまるかも ラフに説明 用意するものがたくさんあるのでラフに説明します。exampleをつくってみたので以下を軽くみていただけると github.com 3rd party library の使い方 ビルド時にclasspath宣言をしてビルドすることで3rd-party
Ubuntu 15.10 から16.04にアップグレードしたところiPhoneでUSBでつないでインターネット共有できなくなったので つながるようにした時の作業内容をまとめます iphethのインストール これのインストールと有効化がひつようです。 Ubuntu – Details of package ipheth-utils in xenial sudo apt-get install ipheth-utils sudo modprobe ipheth これで iPhoneをインターネット共有したあとでラップトップPCにUSBでつないで、インターネッツにつながれば成功 /etc/modules への登録 起動時に毎回modprobeするのが面倒なそこのあなた!そんな僕みたいなあなたは /etc/modules に以下のように追加しましょう。 ここに記入するときはmodprobeはいりま
最近mypyを趣味で使い始めたのでいろいろ書こうと思います。 @tk0miiyka さんの記事を読んでとりあえず自分の仕事でmypy使えそうなところをいろいろ考えてみた 対象バージョン version python 3.5.2 mypy 0.4.6 last update 2017.01.08 TL;DR pyiファイルをつくれば世の中の型ヒントが提供されていないプロジェクトに型ヒントをつけられる。 まーでも結構めんどいので、みんなでtypeshedを育てていくのがよさそうです。 GitHub - python/typeshed: Collection of library stubs for Python, with static types mypyって? こちらの素晴らしい記事を読んだほうがいいですね。 qiita.com 要はPython3.4以降で使える静的型チェッカーらしい。個
うまくまとまらないけど、つらつら書いてみようと思う。 vaskir's blog: Hash maps: Rust, F#, D, Go, Scala 読んでてScalaの数値があんまり良くない原因がコメント欄で書かれてた Scala/JVM's boxing and unboxing is very slow in such a tight loop. Eclipse collections may be useful. https://gist.github.com/zakki/66d785b4a9d3c64bc9f8199d7e290e07 13x fasterただ、元コードがRustでの std::collections::{HashMap}へのキー追加 Vecで頭から参照しながら足してく なので、int[]で計算してたのが気になったのでeclipseコレクションつかって計算してみ
ブログ書くの久しぶりだなぁ。。。 システムプログラムってやつを初めて勉強してるので、まとめときます。 tl;;dr このライブラリをつかうとBoost::Pythonよりも簡単にC++11/1 でPython3を拡張できる。 github.com 簡単な使い方 TODO 後で書く CMakeとの連携 TODO 後で書く まとめ コード github.com
id:cimadai (@cimadai)さんにお誘いを受けまして執筆のお手伝いをさせていただきました。 JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技 作者: JSサポーターズ出版社/メーカー: 技術評論社発売日: 2012/08/31メディア: 単行本(ソフトカバー)購入: 35人 クリック: 1,698回この商品を含むブログ (11件) を見る この本ってどんな本? Webアプリケーションを作るときの杖(not 魔法の杖) or 冒険の地図というのがコンセプトの一部です。 JavaScriptの知識はWebを検索すればすぐに見つかるようになりました。 しかし、見つかるものはすでに古くなっていたり、いい記事にたどり着くまでに時間がかかる事も多く、 こういうのをなんとかしたいというのがこの本の目的です。 O'Reilly Japan - Head First J
id:kiris60 さんの別解的な書き方があるので一応紹介。 でも書くなら kirisさん方式が個人的には一番好きだな。 http://kiris.hatenablog.com/entry/2012/01/26/172446 参考 https://github.com/playframework/Play20/wiki/ScalaTemplates http://playscalaja.appspot.com/documentation/0.9.1/templates Play1+Scalaとあまり変わってない 気づき点(仕様?) Play2.0 or Play1+ScalaのテンプレートはScalaの関数として動作 {}の仕様 テンプレートからテンプレートに引数を渡すときに、 中括弧({})で囲むと暗黙的に"play.api.templates.Html"に変換されるっぽい。 "@"を
libuvのPython実装であるpyuvのPython3対応しているときに、Python2.6/2.7/3.0/3.1/3.2で個別にテストする必要がありました。 各バージョンのPythonを入れるのも割と大変だし、各バージョンごとに確認するのも非常に手間です。 lazyな私にはこんなのやってられません。がおー。めんどくせー。 というわけでいろいろテストツールをいろいろ探していたら、79.pyで @aodag さんにtoxを教えていただきました。 早速使ってみたので、軽くメモを残しておきます。 ドキュメント ↓を読めば大体わかるはず。 Welcome to the tox automation project — tox 1.4.2-1 documentation ざっくり説明すると Pythonライブラリを複数バージョンでテストするツールです。 CI(Jenkinsなど)で使うことも想
どうも今晩は。よく本業が何かと聞かれますが、自分でもたまに本業がなにかよくわからなくなります。 最初に 近頃サーバーサイドJavaScriptのnode.jsの人気が出てますね。 node.jsの作者が作ってるネットワーク用のライブラリlibuvはgeventの裏側でつかわれているlibev風のAPIを Windowsでも使えるという話を聞いて楽しそうなので触ってみました。 しかし、ドキュメントもほとんどなく、近頃Cから始まる言語を使っていない私には少々敷居が高いこともあり Pythonでwrapしているものを探してみました。 最悪の場合、気分転換にpython版を書いてみるかと思ったのですが、既に書いてる人がいました。 しかもほとんどの機能をPythonから使えるようにwrap済みです、これはありがたい。というわけで今回はこれを使ってみます。 https://github.com/sag
このページは絶賛更新中です version:2011/12/10 Play!の翻訳用に id:garbagetown 先生がplayframework-jaを作成してくれました。 お忙しい中、作業いただきありがとうございました。 さて、翻訳を進めていくにあたり、ある程度のガイドラインが必要だと思うので ひとまずここにまとめておきます。ご意見とか、「もっといい方法あるよー」、「こうやってるよ」っていうのがあったら教えていただけると助かります。 ある程度まとまったら 翻訳Wikiにページを追加します! changelog version:2012/03/05 :origin-masterブランチの取得方法 version:2011/12/14 : 文字化けするためソースコメントの翻訳はやめました。 version:2011/12/12 : 「fork時点での日付を各wikiページに含む」を追加
このエントリは PyPy Advent Calendar 2011 の5日目として書いています. 前日の @cocoatomo さんからバトンを受け取りました。 みなさん、PyPyを楽しまれていますでしょうか。 PyPyはよくCでのPython処理系に比べて早い(こともある)という点 *1 が有名ですが、他に違いはあるのでしょうか? 本日は実装系としてのPyPyはCPythonとどの辺が違うかを見ていきます。 本家ドキュメント 本家にドキュメントがあります。 Differences between PyPy and CPython 私の方で翻訳中のものはこちらです。1.5のときに翻訳したものなので、最新版には追随できてません。 @cocoatomo さんのところで公開されてましたので参照下さい。 https://bitbucket.org/pypyja/pypy/src/0a428637c
本エントリは Play! framework Advent Calendar 2011 jp #play_ja : ATND の4日目です。 前日の @kitora_naoki さんからバトンを受け取りました。 好きなPlay!のモジュールはcoberturaとCRUDです。皆さんよろしくお願いします。 本日のテーマは「Play!で開発するときの情報の集め方」です。 Play!の公式ドキュメントは非常に整っていてチュートリアル、各機能の説明などがきちんと書かれています。*1 実際にWebアプリケーションを作成する際に、どう実装するかの情報が欲しくなります。 本日は私がよく使っている英語の情報源を紹介しておきます。 Playの情報源 1.X Play!本家ドキュメント まずはここから 日本語版ドキュメント はこちら cheat sheet 開発中は常に開いてます Play! ML stack
EcmaScript5でStrictモードが策定され、Firefox, Google Chromeなどのブラウザで使えるようになってきました。 *1 PerlのStrictプラグマみたいに、危ない操作を仕様とすると怒ってくれるものらしい。ちなみに今は no strict プラグマはない様子。 詳しくはここを参照。 http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/ で JSではarguments.callee.callerってのを使って呼び出し元の引数を参照できるんですが、 Strict-modeでは使えません。 "use strict"; // この書き方はstrict-modeでエラー arguments.callee.caller.arguments 使えないなら引数を渡すのがよさそうかなぁ。こんな感じ。
ATND以外にもイベント告知ツールが増えました。 各サービスごとに特色があって非常に楽しいです。 ただ、サービスが違うこともあり登録したイベントの日付がかぶるリスクがあります。 なんてことをTwitterでつぶやいたら @cocoatomoさんからリプライが来ました。 @Masahito API は確かまだですが, ics へのリンクはあるので, どこか1つのカレンダーにまとめることは可能です. 2011-07-22 09:10:53 via Twitter for Mac to @Masahito PARTAKE,Zusaarには登録した予定をicsファイルで出力する機能がありますので、ATNDと同様にGoogleカレンダーなどで一覧表示することが可能でした。 やり方をまとめておきます。 ちなみに、手前味噌ですがATNDのやり方はこちらです。 >> ATNDの予定をGoogle Cale
PyPy で Grass を実装してみた - プログラマのネタ帳を読んで、 すごく楽しそうだったので、HQ9+を実装してみました。 こういう役に立ちそうで立たない実装を作るのは楽しかったです。 ソース HQ9plus.py import os, sys # So that you can still run this module under standard CPython, I add this # import guard that creates a dummy class instead. try: from pypy.rlib.jit import JitDriver except ImportError: class JitDriver(object): def __init__(self,**kw): pass def jit_merge_point(self,**kw):
id:rokujyouhitoma さんに誘われてPyPyの翻訳を始めました。 PyPy本家の資料がSpinxで書かれているため、翻訳ももちろんSphinxで行っています。 参考 Sphinxの魔法にかかってみた - ふぞろいのGENGOたち Sphinxの実行環境をつくる インストールするパッケージ Sphinxの導入 Sphinxの実行環境をつくるを参考にしてbuildoutでSphinxをインストールする。 Pythonは標準で入っているものを使えばok. ↓みたいにaliasでsphinx-buildのパスを設定しておくとベター alias shinx-build='/path/to/sphinx-build' OMakeの設定 OMakeってなに?って人はこちらを見ると良いかと => OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く [・w・]
はじめに pythonでは2.6以降ならばjsonライブラリを使ってjsonを簡単に使えて便利です。 jsonライブラリを使うと、json文字列をparseして辞書で取得することができるのですが、 jsonの階層が深いとオブジェクトっぽくアクセスできないかなーと思うときがあります。 既に同じようなことをやってる人がいそうですが、時間があったので軽く実装してみました。 ソース class DictAccessLikeObj(dict): """ >>> DictAccessLikeObj({"foo":"hoge"}).foo 'hoge' >>> DictAccessLikeObj({u"foo":[{u"bar":u"baz"}]}).foo[0].bar u'baz' >>> DictAccessLikeObj({u"foo":[[1,2,3]]}).foo[0][2] 3 """ d
このご時世だし、そろそろスマートフォン向けのアプリを作りたくなり、 近頃Titanium Cross Platform Mobile App SDK | Native iOS, Android, Hybrid, and Mobile Application Development | Appcelerator Incを触っています。 開発環境の調査もかねて一つ簡単なアプリを作っているのですが、XML-RPCを使う必要もあり、調べてみました。 Titanium mobile でXML-RPC 一般的には以下のソースを使うのが一般的です。 xmlrpc » Community Questions & Answers » Appcelerator Developer Center しかし、今回私がつかうXML-RPCではうまく行かなかったので、以下のパッケージを使ってみました。 http://c
初めに Pythonのスクリプトを書いていて、常駐化させたい時があります。 *nix系だとpython-daemon 1.5.5 : Python Package Indexを使って実現できるようですが、 Windowsのサービスは探してもあまり情報が見当たらないので腹を据えて調べてみました。 なんだかんだでwin32APIの知識が必要になって割と骨だったのですが、 ある程度動くものができたので、公開します。 [注意] 私はwin32APIの知識が足りません。おかしなところがあればご指摘をお願いします。 参考 python でWindowsサービス作成 [Python-ml-jp 4292] Re: Windowsサービスを作る方法は? Python win32 service - Stack Overflow Python Windows Service | DaniWeb Win32A
何度も言いますが、本業ではないですが近頃Titanium mobileにこっています。 さて、そろそろTitanium Developperを立ち上げてビルドするのが面倒になってきました。 ちょっと調べたところ以下の情報を発見しました。 http://code.google.com/p/titanium-mobile-doc-ja/wiki/Tips コマンドラインからコンパイルして実行 on Mac OSX /Library/Application\ Support/Titanium/mobilesdk/osx/1.3.2/iphone/builder.py run ./ なるほど、コマンドラインから行けるようです。 さらに調べると下の情報を発見。.bash_profileに設定するといいようです。 http://d.hatena.ne.jp/kaz_konno/20110304/129
勉強も飽きてきたので、たまにはまともに動くものを書いてみました。 いろいろな言語/環境で書かれてる処理があるので参考にさせていただきました。 (というよりまるっきりまねしている箇所が多々あります) 先人の方々に感謝いたします。 参考 元ネタ 東京電力使用状況メーターをヤフーのAPIとGoogle Chartで作る方法 – [Mu]ムジログ [を] WebAPIを駆使して東京電力使用状況メーターを作る!(Perl版とJavaScript版) WebAPIを駆使して東京電力使用状況メーターを作る!(Node.js版) - tokuhirom's blog. Web API 震災関連情報:電力使用状況API - Yahoo!デベロッパーネットワーク Google Chart Tools — Google Developers Titanium Mobileの知識 guides_network_h
Drillbitの勉強用に資料を翻訳しておきます。 http://developer.appcelerator.com/doc/mobile/drillbit Drillbit A unit testing framework, harness, and driver for Titanium Titanium用のユニットテストフレームワーク、ハーネス、ドライバー Drillbitテストの書き方 Drillbit resembles a JSSpec test and uses some of their conventions. DrillbitはJSSpecテストに似ていて、書き方のいくつかを使います。 To define a test suite, you have several options: テストスイートの定義用に、いくつかのオプションがあります: Create a sta
本業ではないですが、Titanium Mobileをさわり続けています。 Titanium v1.5.0から入っているわりにはまるで情報が見当たらないdrillbitがとりあえず実行できたのでとりあえずまとめときます。 ちなみにdrillbitとはTitanium MobileのUnit Testing Frameworkです。 とりあえず動かしてわかったところだけ書いて行きます。 ついでにいうと現状は(github)に格納されているテストが実行できただけです。 だれかわかるひといたら是非是非情報をください。お願いします。 Appcelaratorのドキュメント http://developer.appcelerator.com/doc/mobile/drillbit Titanium Mobileがビルドできるようにしとく ドキュメントにTitanium Mobileビルド用のscons
どうもこんにちは、素振り大好きっ子です。 海外のPDFを買う時に、通貨換算にCurrency converter | Xurrencyを使っています。 このサイトwebAPIも持っていますので、近頃学習したことのまとめとして、pypiにパッケージを作成してみました。 pyXurrency 0.0.1 : Python Package Index 目的 buildoutの練習(buildout入門(エキスパートPythonプログラミング読書会09に参加してきました) - Ehrenの日記) minimockを使ってみたかった noseの使い方の練習 coverageの使い方の練習 webAPIでのラッパークラスのテストを書いてみたかった クリーンコード読んでるのでせっかくなので何か書いてみたかった github/gitに慣れる ソース https://github.com/masahitoj
エキスパートPythonプログラミング読書会09 : ATNDに参加してきました 主催の清水川さん、会場提供いただいた アスキーメディアワークス様ありがとうございます。 今回の話題はbuildoutでした。簡単に自分用にメモをまとめておきます。 # 2011.02.19 id:shimizukawaさんからのご指摘でdefault.cfgの書き方を修正 buildoutってなんぞ pythonの構成管理ツール。 こんな感じで実行する。 $ cd /tmp $ curl -O "http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py" $ cd ~/hoge/ $ python /tmp/bootstrap.py init --distributeってやるとbuildout.cfgっていうファイルができる
Flaskをnginxで動かしてみたくていろいろ調べてみました。 参考 http://flask.pocoo.org/docs/deploying/fastcgi/ Flask の公式ドキュメントこの通り実行すれば動きますです。 http://cho-co.be/blog/django/nginx-fastcgi-django/ 環境 VirtualBox 4.0.0 ubuntu10.10 64bit python2.6.6(標準) aptで導入 nginx ソース Flaskのアプリ一式 /var/www/flask/myapp http://bitbucket.org/ehren/flask_training .fcgiファイルの置き場所 /var/www/flask/mysite.fcgi 設定ファイル .sockはfcgiファイルとnginx設定ファイルで同じパスになるようにする
参考 以下を参考にしてpythonで書いてみた [を] 形態素解析と検索APIとTF-IDFでキーワード抽出 [を] 転置インデックスによる検索システムを作ってみよう! とりあえずまだプロトタイプだからテストはなしです。レガシーコードですorz ソース #!/usr/bin/env python # -*- coding: utf-8 -*- import math index ={} num = 0 def inverted_index(no,str): """ 転置インデックス作成 例 {'banana': [(2, 3), (3, 3)]} key : 文字列 val : タプルのリスト (文章ID,文章IDの文字列での文字位置) """ str_arr =str.split(" ") for i in range(len(str_arr)): if not (str_arr[i]
次のページ
このページを最初にブックマークしてみませんか?
『Keep on moving』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く