preventDefault, stopPropagation,の違い
最近javascriptをきちんと勉強なおしていて、 preventDefaultとstopPropagationの違いがわからなかったのでメモ
evt.preventDefault => イベントなどを実行しないで終了させる。たとえば大文字を入力したら文字の入力をさせずにアラームを表示させる場合
function checkName(evt) {
var charCode = evt.charCode;
if (charCode != 0) {
if (charCode < 97 || charCode > 122) {
// これがなかったらalert表示された後に
// 大文字が入る
// 入力した文字の表示などのイベントを無効にする
// return falseがはいったときは何もイベントをやらずに文字が入力される
evt.preventDefault();
alert('大文字が入りました!');
}
}
}
evt.stopPropagation() => 子要素でクリックした際、親要素へのイベントの伝搬をふせぐ 下記の例だとhoge22をクリックすると、親要素のhogeにまでイベントが伝搬する
hoge
hoge22
return false; => 何もしないで終了
pypiに初アップしたので、一連の流れをまとめる
pypiにライブラリを初めてアップしたので、その一連の流れをメモしておく。
アップしたライブラリ
pypiへのユーザー登録
PyPI - the Python Package Index : Python Package Index
へ登録する
ライブラリの作成
- sampleプロジェクトのclone
以下をcloneしたらいい感じに雛形ができた
# git clone https://github.com/pypa/sampleproject.git
- ライブラリの作成
雛形にそってライブラリを作成する
- 動作テスト
新規インストール : pip install -e [target_dir] アップデート : pip install -U [target_dir]
でinstallし、確認できる。 終わった後は以下でok
pip list pip uninstall [target_lib]
この時にpyenvを使ってバージョンを変えてテストするとなおよい
pyenv virtualenv 3.4.3 test pyenv versions pyenv local test python --version => 3.4.3になってる
pypiへのアップのための事前準備
- setup.py編集
それぞれ雛形に沿い、編集する
README関連の編集
MANIFEST.inの編集
これはパッケージをpypiをアップするときに必要なもの
ここを編集しないと後述のpip install した際にdata/data_fileがないよ、
っておこられてinstallできない
以下を末尾に付け加える
include data/*
なお、python setup.py関連の参考は以下
ソースコード配布物を作成する — Python 2.7ja1 documentation
pypiへのアップ
いよいよできたので、pypiにアップする
初回登録時
- 登録コマンド
# python setup.py sdist # python setup.py bdist_wheel --universal # python setup.py register
python setup.py registerでlogin アカウントが必要 なお、
Server response (401): basic auth failed
っていうのがでてログインできなくはまったが、 登録先のメールアドレスに確認メールが届いており、そこから有効化させたら正常にできた。
これで登録できたので、pypiにアクセスし確認する
次回からの更新時
- setup.pyの編集
version をあげる
- 更新コマンド
# python setup.py sdist # python setup.py bdist_wheel --universal # python setup.py sdist bdist_wheel upload
import できることを確認
環境でpip install hogehogeをし、 正常にimport、動作することを確認すること
なお、以下のエラーが出た場合は MANIFEST.inを編集してない可能性が高い。
error: can't copy 'data/data_file': doesn't exist or not a regular file
以上で完了
vimrcにpythonのsyntastic checkを導入
vimのプラグイン 'scrooloose/syntastic' にpython関係のpep8とpylintを導入したのでメモする。
"NeoBundle 'scrooloose/syntastic' let g:syntastic_enable_signs=1 let g:syntastic_auto_loc_list=1 let g:syntastic_mode_map={ 'mode': 'passive', \ 'active_filetypes': ['php', 'ruby', 'javascript', 'json', 'python'], \ 'passive_filetypes': [] \} let g:syntastic_ruby_checkers=['rubocop'] let g:syntastic_javascript_checkers=['jshint'] let g:syntastic_python_checkers=['pep8', 'pylint'] "let g:syntastic_python_checkers=['pep8'] let g:syntastic_php_checkers=['php','phpcs'] let g:syntastic_php_phpcs_args='--report=csv --standard=CakePHP' let g:syntastic_quite_warnings=0
pep8をインストール
pip install pep8
pylintをインストール(aws)
sudo yum install pylint
これでできた
python をupdateするとyumが動かなくなった場合の対処
awsでpythonを2.7へアップデートした後、 yumが動かなくなった。 その場合の対処方法をメモしておく。
エラー内容
# yum There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: No module named yum Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.7.5 (default, May 5 2015, 16:19:52) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] If you cannot solve this problem yourself, please go to the yum faq at: http://yum.baseurl.org/wiki/Faq
/usr/bin/yumを見る
#!/usr/bin/python2.7 ・・・・・
pythonのバージョンを見る
# ll /usr/bin/python python python2 python26 python2.6 python27 python2.7
/usr/bin/yumの編集
#!/usr/bin/python2.6 ・・・・・
以上で完了
django のviewの追加のしかたメモ
project の作成
django-admin.py startproject hogehoge
templateの設定
vim hogehoge/settings.py
TEMPLATE_DIRS = ( 'templates/mytemplates', )
絶対パスでかくこと
appの作成
python manage.py startapp hogeapp
urlの設定
vim hogehoge/urls.py
=> url(r'^hogeapp/$', 'hogeapp.views.index'),
のように追加
templatesの追加
touch mytemplates/hogeapp/index.html
viewsの編集
vim hogeapp/views.py
""" ang """ from django.shortcuts import render_to_response def index(request): """ ang """ return render_to_response('ang/index.html')
地図
100本ノック
【 お題 : 地図 】 地図を使ったサービス
- ジャンプを立ち読みできるコンビニ + 地図
- 全国の保育園、待機児童数 + 地図
- 自分の商品を買ってくれたお客さんがどこに分布しているか + 地図
- bus、電車を待っているときにどこにきているか + 地図
- 自分のインストールしたアプリがどこの地域のユーザーが多いか + 地図
- 地図で範囲を指定して、そこにpushを送る
- 自分の子供がどこにいるか把握する + 地図
- 不動産の地価 + 地図
- マンション、アパートの空室分布 + 地図
- ラーメン激戦区などのheatmap
- 学校の偏差値分布 + 地図
- 美容室を探して口コミを見る + 地図
- ミシュランの3つ星 + 地図
- IT勉強会+地図
- シングルマザー分布 + 地図
- 赤ちゃんの年齢別分布 + 地図
- デートコース + 地図
- 自分の位置情報と会社に入ったかで残業のログをとる + 地図
- 自分が歩いた場所を記録する + 地図
- 自分がお金をどこで使っているかをカテゴリーではなく、場所で管理する + 地図
- どこのATMでお金を下ろしてるか + 地図
- 金の鉱脈+地図
- 地下水脈+地図
- ハザードマップ+地図
- 戦争が起きてる場所+地図
- 現在地震が起きた場所+地図
- ライバル店がどこに出展しているか+地図
- git-hubにどこの地域のユーザーが多いか+地図
- pull-requestを送ってるのはどこの地域のユーザーが多いか+地図
- google expert、どこの地域で多いか+地図
- 世界レベルでの人口増減について+地図
- 超ニッチな趣味を持つ人がどこに分布しているか+地図
- 自分の1ヶ月の移動などをすべてログ化し、地図に分布
- ITなどの会社分布図
- 鉄鋼などの消費量+地図
- 現在の渋滞情報などを地図にリアルタイムに表示
- 地図での行きかたなどを簡単にアニメーションで表示させる
- 普段歩いているところの距離、高さを算出
- 昔からの移動について+地図
- アプリのインストール場所+地図
- 海外旅行での計画+地図
- デートを提案してくれる+地図
- 天気と気温+地図
- 二酸化炭素排出量+地図
- 戦争+地図
- 犯罪+地図
- 従業員がどのあたりに住んでるか+地図
- 日本人がどこに住んでるか+地図
- フリーランスがどこに住んでるか+地図
- 年代別の分布+地図
- 世界遺産+地図
- 就職活動生+地図
- 名刺交換した会社+地図
- 同窓会+地図
- ランニングでどこからどこまで走ったか+地図
- 儲かってる地方自治体+地図
- 地層の分布図
- マンションの日当たり+地図
- 騒音+地図
- 森林分布
- エボラ等のウィルス+地図
- 建物の経年分布+地図
- コンビニ+地図
- 外国人+地図
- 日雇いですらない、超短期バイト。すぐそばで簡単に1時間働けるバイト(ちょっと手伝って)
- みたい映画+地図
- 人通り+時間+地図
- 飛行機の操縦体験+地図
- 海外旅行+地図
- 昔の地図と今の地図の融合
- カーナビ+地図(インドアビュー)
- 地図でクリックするとホームページがポップアップで出る
- 地図を作れて場所を変えれる
- 昔の三国志の戦闘図のようにいろんなものがおける
- 夜景+地図
- 最短距離(運行情報等も考慮したもの)
- 空いてるご飯屋さん
- 宅配便がどこまで届いているか可視化
- 金の流れ
- 近くのお店に入れるか。すぐは入れます検索
- ホテルが空いてるところ+地図
- 鳥とかサイとか、絶滅危惧種がどのあたりにいるのか把握
- 海の中+地図
- 空+地図
- マスコミとかの動き+地図
- ファッション+地図
- 購買ログ+地図 => 流行がどこだかわかる
- 仕事終わって何するか、場所から提案
- 晴天マップ
- 水田、農作物マップ
- 梅雨マップ
- 桜マップ
- 同じ時間に違う場所で人は何してる?
- 違う時間に同じ場所で人は何してる?
- facebookの投稿がおおい場所
- 心配になるような地図????
- 温泉地図
- プログラミング別場所別分布
- ネイル分布
- 借金+地図
あめぶろから
やっとこさ引越した