へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

シェルでlsを打った時の結果を色つきでパイプに渡す

コマンド Mac専用 $ CLICOLOR_FORCE=1 ls | less Macじゃない場合はこっち参照serverfault.com 意味 $ man ls ~~省略~~ CLICOLOR_FORCE Color sequences are normally disabled if the output isn't directed to a terminal. This can be overridden by sett…

C言語でPythonのモジュールを書く!

はじめに 社内勉強会でつかった。 てきとうなのでまちがってたらスマソ。 さいごらへん雑。 ソースにコメント書いたので、それ見たらたぶんわかる。 注意点 makeできない!→python3.rcまでパス通ってない可能性 初歩の初歩向け https://docs.python.org/3.5/…

全角を2、半角を1と数えるJavaScriptのコードがわかりにくかったので自分用に書きなおした

kihon-no-ki.com var countChar = function(words) { var len = 0; var txt = escape(words); // escape('ほ%a') -> "%u307B%25a" for (i = 0; i < txt.length; i++) { if (txt.charAt(i) == "%") { // Unicode(%u)はlen+2(4個飛ばして次の文字へ[307Bは無視…

連番のディレクトリをシェルコマンドでつくる(ゼロ埋めもする)

$ seq 1 22 | xargs -n 1 printf "%02d " | xargs -n 1 mkdir メモ用

python. ずらーっと並んでいる日付を、月ごとに見やすくまとめる方法

じみにべんり In [60]: import datetime In [61]: start = datetime.date(2015, 9, 23) In [62]: [start + datetime.timedelta(days=n) for n in range(7)] Out[62]: [datetime.date(2015, 9, 23), datetime.date(2015, 9, 24), datetime.date(2015, 9, 25),…

わかったの壁

はじめに べんきょうしていると「わかった」ような気分になる時があるけど、 「じっさいわかっていなかった」みたいなことが多いので、自戒をこめてかいてみる。 「しらない」と「わからない」の違い 言い古されていることなのでカット。 「つかえる」と「わ…

『こうあるべき』だけど、実際はそうなっていない設計[技術的負債]を解決しなければいけないときにどう動けばいいのか

まえがき 「こうあるべき」という思想 プログラミングにおいて『こうあるべき』という事態はとてもたくさんある。 それはもう『こうあるべき』とだけ発言する声帯モジュールを、すべてのエンジニアに実装したほうがいいのではないかと思うほどとてもたくさん…

AWSのマイクロインスタンスにlxmlをインストールできないときに確認すること

stackoverflow.com sudo yum install python34-devel などとする しなくてもいい気がする(´・ω・`)!とりあえず困ったら、sudo yum list | grep hogeで調べればだいたいなんとかなる。Failed to set locale, defaulting to Cなどとおこられたら LC_ALL=C su…

取りたい要素、呼びたい属性が決まっているときにいちいちメソッド定義しなくていいやつ

>>> from operator import * >>> getter = itemgetter('a', 'b', 'c') >>> d = dict(a=1, b=2, c=3, d=4) >>> getter(d) (1, 2, 3)みたいな 他にもf(r)で、r.nameと同じ意味 f = attrgetter('name') f(r)で、r.run()と同じ意味 f = methodcaller('run') f(r)…

python 条件分岐で定義するクラスを変更する

>>> def define_classA(a): ... global A ... if a: ... class A: ... hoge = 1 ... else: ... class A: ... hoge = 'h' ... >>> define_classA(1) >>> A.hoge 1 >>> define_classA(0) >>> A.hoge 'h'メソッドを変更することも可能>>> def define_classA(a):…

pythonでのsetの罠

>>> set('moge') {'o', 'g', 'e', 'm'} >>> {'moge'} {'moge'}>>> s={'hoge'}; s.update('moge'); print(s) {'o', 'g', 'e', 'm', 'hoge'} >>> s={'hoge'}; s.update({'moge'}); print(s) {'moge', 'hoge'}

listのなかでremoveするとバグ死するおはなし

奇数列の取り方>>> l = [x for x in range(10)] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> for i, value in enumerate(l): ... if i % 1 == 0: ... l.remove(value) ... >>> l [1, 3, 5, 7, 9]

Solving] Waiting 30 seconds for device /dev/disk/by-label/ARCH_201108 ... Error: Boot device didn't show up after 30 seconds...

Rename your usb-disk to "ARCH_201108"

自分のグローバルIPアドレスを知る方法

Googleで、『own ip』と検索すると一番上に出る

AWSでステータスチェックが『不十分なデータ』と言われたとき

AWS

-> "insufficient data"

WindowsでPython3.4.3の実行環境つくってみた && windowsにpyquery(←lxml)をinstallした

注意 python完全初心者向けではないので、初心者の人はLinuxつかったほうが楽だとおもいます。 本編 Macでつくったpythonのアプリケーションを、WindowsでちょこっとだけGUI化して配布してPythonとか全然知らない一般人でも使えるようにしようかなとおもって…

DjangoでformsetをつくったときのPOSTの中身

'form-MAX_NUM_FORMS': ['1000'], 'form-TOTAL_FORMS': ['1'], 'form-INITIAL_FORMS': ['0'], 'form-MIN_NUM_FORMS': ['0'], 'form-0-is_checkbox_01': ['on'], こういうのを送らないと怒られるなお、is_checkbox_01をOFFにしたいときは、中身を'off'ではな…

Gitをつかって、プロジェクト内では共有しない君だけの.gitignoreをつくろう!!!!

Git

無視するやつ(´・ω・`).git/info/exclude $ git status On branch hoge_branch Untracked files: (use "git add <file>..." to include in what will be committed) <span style="color: #ff5252">hoge.py</span> nothing added to commit but untracked files present (use "git add" to track) Untra</file>…

git pushする前に、flake8したり、なんかいろいろしたいとき

Git

$ vim .git/hooks/pre-push #!/bin/sh flake8 . 権限付与 $ chmod +x .git/hooks/pre-push できてる $ git push origin hogehoge ./test.py:1:1: F401 'datetime' imported but unused error: failed to push some refs to 'git@github.com:Hoge/mogemoge.gi…

Solving "ssh_exchange_identification: read: Connection reset by peer" after some long execution

SSH

Case I ran the file having process time-consuming and using a lot of memory on the server. Whenever it is executed, ssh connection is down. Reason in this case Swap might be "off". So you should turn Swap on. If you can, increase memory on…

3秒でわかるSeleniumのつかいかた(Python・ちょっとDjango)

2016/09/22 追記 3秒でわかるようになってなかったので追記。 Seleniumとはなにか 自動でブラウザ動かせれるやつ。テストとかにつかえる。 Seleniumのインストール方法 http://www.seleniumhq.org/download/ Chromeでやる場合、chromedriverをダウンロードす…

Railsがインストール出来ない←nokogiriがインストールできない←libxml2がない←liblzma.dylibがない←あるんだけど…←中身がなかった

これと同じエラーがでたnokogiriをビルドできずにrailsのインストールが失敗する。 - Qiitaqiita.com 依存関係をインストール brew install libxml2 が、だめ…っ! sudo gem install nokogiri むかしのが関係してるのかなとアンインストールしたけどいみがな…

Djangoのi18nで、localeが勝手に変わってしまったと思ったらそんなことなかった話

こまってたこと activate('ja')したあと、ふんふんふーんというノリで翻訳対応してたら、いつのまにか翻訳が効かなくなった。 こわくなったのでget_language()をデバッグにさしこんで事なきを得た。下を見れば、なんだあたりまえのことじゃないかというかん…

テストコードは召喚獣

テストをつくらない場合 1回目(`・ω・´)っかくにん! すぐ終わった!2回目(・ω・´)っかくにん! よし、できてるな!3回目(´・ω・`)っまたかくにんするのか4回目(`-ω-´)っねむい……かくにん…… テストがある場合 1回目(`・ω・´)っテストコード書くよ!…

じゃあPythonでは謎外国語文字からInteger.parseInt的なことをするとどういう挙動をするのか

インスパイアされた ↑Java - String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiitaqiita.com ためしてみた Pythonではこうなる >>> int("༡༢༣༤༥༦༧༨༩༠") 1234567890 >>> int('၁၂၃၄၅၆၇၈၉၀') 1234567890 >>> int('111') # おまけ(なんと全角…

IT用語辞典をおまかせ表示(ランダム表示)するサイトつくった

さっきトイレで「あ〜、このうんこしてる時間、なにかに有効活用できないかな〜」と考えて、 「そうだ、IT用語の辞典でも適当に見るか」とおもい、 IT用語辞典のサイトに行ったのだが、 →IT用語辞典 e-Words wikipediaのような「おまかせ表示」がなかったな…

ascii codeの覚え方について

じっと眺めてたら法則性に気付いたので ゴロとか無理矢理とかおおい おおまかに 0x00 ~ 0x1Fまでは特殊文字 0x20 ~ 0x40までは記号 0x41 ~ 大文字英語 と記号 0x61 ~ 小文字英語 と記号 とりあえず0x01〜0x1Fまではあとまわし(っていうか覚える必要をあまり…

Djangoでmysqlのデータを取り込み直してmigrateするシェルスクリプト書いた

発端 Model変更→データかまう→やっぱやめた→dumpファイル入れなおす→migrate→Model変更→……→おぅふ、これ毎回やるのか……→めんどくさい!!!(´・ω・`) 必要におうじて編集してつかってほしいっ…!recreate_db.sh #!/bin/sh # $1 -> filename # Setting dir="…

Djangoで、pythonシェルからmigrate前のモデルのフィールドを見る方法

>>> from django.db.migrations.state import ProjectState >>> from django.apps import apps >>> for f in ProjectState.from_apps(apps).models[('applabel', 'hogemodel')].fields: ... print(f) ... ('id', <django.db.models.fields.AutoField>) ('created_at', <django.db.models.fields.DateTimeField>) ('updated_…</django.db.models.fields.datetimefield></django.db.models.fields.autofield>

GenymotionとAndroid Studioを使って仮想環境を構築してAndroidのデバッグをする!

追記(2015/07/16) なんか2chのAndroidエミュスレからアクセス数が急激に伸びてたので追記する。 単にAndroid入れたいだけならAndroid Studioはいらない。 アプリはPlayService入れていれば、Google Playからダウンロードできるので、すればおkもしこれでう…

ファイル名がImage1.jpg、Image10.jpgみたいなやつを、Image00001.jpg、Image00010.jpgみたいにゼロ埋めするシェルスクリプト

mvzeropad.shなどとつけて保存するnum=$(echo $1 | sed 's/[^0-9]//g') zeronum=$(printf %05d $num) mvfile=$(echo $1 | sed "s/$num/$zeronum/g") mv $1 $mvfile ふつうのつかいかた $ sh mvzeropad.sh Hoge1.mp4 → Hoge00001.mp4 ファイル全体にやりたい…

日本人が、傘をさして片手がふさがっている時間について概算してみた

データ集めるのめんどくさかったから、とりあえず『東京中心主義』を採択する。 東京での年間雨日(2014年) 41日 気象庁より 1日に外出する人の数 ざっくり日本人の半分とする 概算値が1億2689万人らしいので、ざっくり6345万人くらいとしておく(雑) 統計…

pythonでは、モジュールがインポートされたときに、バイトコードにコンパイルされるッ!

インポートっていうステートメントは、単にpythonのコードを解析して、Pythonインタプリタくんが、コンパイルしているだけだったんだね(・ω・`)←怪しいこと言っている気がするなおこのバイトコードを読もうとしてみたら、よくわからなかったぞッ!なお、拡…

pythonのシェルで書いたコマンドを再利用するためにファイルに書き出すモジュールつくった

なにしたのか このようにして、何かしらコマンドを打ったとする。その後 「似たようなコマンド打ちたいな〜」 「あ〜、最初からファイルで書けばよかった〜」 みたいなこと、発生しませんか?そんなとき、また同じコマンドを打つ……これほどだるいことはない…

pythonで、性能解析(プロファイラ)して、その結果を画像ファイル(png)で表現してくれるモジュール見つけたので使ってみた 

超便利 実験台 重いです こんな感じのpngファイルができる インストール方法 $ pip install pycallgraph こんなノリでつかう $ pycallgraph graphviz shortcut.py 『実験台』みたいに、ファイルの中でwithとともになんやかんやもできる。依存関係のやつが必…

noseの--testmatchオプションや--match、-mがうまくはたらいてくれてなかった件について

noseのソースにif options.testMatch: self.testMatch = re.compile(options.testMatch)があった。プリントデバッグしてみたら、nosetests --testmatch='^test.*'と書くと ^test.*ではなく、 '^test.*' を正規表現のものとしてコンパイルしてくれるようだ(`…

pythonのインタラクティブシェルでクラスの中の属性とかを簡易的に調べたいときにつかうメソッドつくった

使用例 さっき出力したオブジェクトの属性をみたいとき => some_object => k() さっきつくったオブジェクトの、属性が大文字でできているものだけみたいとき(主に定数) => some_object => k(s=True) あるオブジェクトの属性をみたいとき => k(some_object)…

ニコニコ動画の、動画のIDを入力すると、動画をダウンロードして、ついでにmp3に変換するツールつくりました。

harukaeru/NicoNicogithub.comつくりました!!!!!!!!!!!!!!!!!!

pythonのインタラクティブシェルをViモードでつかう

~/.inpurcに、 set editing-mode vi と書く。おわり(´・ω・`)また、readlineモジュールを使うことで python標準モジュールをいくらでもハックできそうな感じだ(`・ω・´)! さんこうにしました(パクっただけ) 13. Interactive Input Editing and History …

Pythonのデコレータであそんでみた

Enumを使っていることからお察しの通り環境は3.4です。ソースコードを動的に扱えるようになるのが最近の課題。 ついき ちなみに、furikake_dict、関数のなかにありますが、これはあくまで「こういうこともできるよ」であって、 この書き方はあまり良くないで…

読みやすいコードにしようと心掛けて書いていたときに気付いたこと備忘録

コピペは便利だが、とても恐ろしいツールであること どうしてもそういうことをしたいときは、コードスニペットを使うと失敗しにくい。 def xxx_yyy(): return 'hoge' ↓ コードスニペット化 def xxx_##1##(): return ##2## ただ、コピペは最終手段のアルティ…

Chromeの検索履歴から一部、「履歴を検索した結果」だけ消す方法

チェックボックスを全部クリックするのがめんどくさかった。 chrome://history-frame/ にアクセスする。 chrome://history ではないことに注意。こちらは普通のアクセスで行く方法だが、iframeなんかを使いやがってくれており、JavaScriptを使えない(かなり…

L += [3, 4]は、L = L + [3, 4]と等価じゃなかった

あっとうてきに+=のほうが5倍から10倍くらいつよい $ python extends.py | grep 'はやい' | sort | uniq -c 100 +=がはやい あっとうてきではないか。わがぐんは。 +=とリストのメソッドであるextendを戦わせてみた なお内部では、L.extend([3, 4])のよう…

pythonの代入ぜんぜんわかってなかった

イコールの右側:メモリにオブジェクトつくる イコールの左側:そこへのリファレンス イコール:メモリにつくったオブジェクトへのリファレンスを作成するこのようにしてオブジェクトがインスタンスへ超進化するのだ。 インスタンスは、「リファレンスが張ら…

さっきダウンロードしてきたzipファイルとかを展開するコマンド

$ unzip "`ls -t | head -n 1`"

grepで--exclude-dirオプションが動かない問題について

きさまっ! サブディレクトリを指定しているなッ!

コマンドからの複数行置換について。〜え、sedって1行ずつしか置換してくれないの?〜

はじめに Nothing is happend.sedはどうやらファイルの中身を1行ずつ読み込んでいるらしい。 grepもしかりだ。 そこでぼくはperlをつかった $ perl -0777 -pe "s/a\n\b/xxx/g" grep.txt perlは偉大ダナーもちろんsedと同じように-iをつければ上書き保存して…

C言語からpython3呼び出してHello Worldしてみた

はじパイ(はじめてのPython)に載っていたやつを参考にしました #include <stdio.h> #include "Python.h"int main() { printf("C: Hello World!\n"); Py_Initialize(); PyRun_SimpleString("print('Python: Hello World!!')"); return 0; } Compile gcc -framework P</stdio.h>…

python3.4ではreloadも、imp.reloadもうまく動かない。importlib.reloadをつかおう!という話

更新日 2016年08月27日:importlib.reload(module)を使おう (´・ω・`)! reload(module)は3から廃止 imp.reload(module)は3.4から非推奨 Ref 2. Built-in Functions — Python 2.7.12 documentationWhat’s New In Python 3.0 — Python 3.5.2 documentation (…

pythonでログ出力するデコレータつくった

loggingモジュールの勉強のためにつくった なにするやつ main.py def hoge(): print("main_hoge!!") if __name__ == '__main__': hoge()というのがあったらmain.py import utils.loginit from utils.log import logger @logger def hoge(): print("main_hoge…