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.python.org

pypiへのユーザー登録

PyPI - the Python Package Index : Python Package Index

へ登録する

ライブラリの作成

  • sampleプロジェクトのclone

以下をcloneしたらいい感じに雛形ができた

# git clone https://github.com/pypa/sampleproject.git

github.com

  • ライブラリの作成

雛形にそってライブラリを作成する

  • 動作テスト
新規インストール : 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をインストール

github.com

pip install pep8

pylintをインストール(aws)

www.pylint.org

sudo yum install pylint

これでできた

python をupdateするとyumが動かなくなった場合の対処

awspythonを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本ノック

【 お題 : 地図 】 地図を使ったサービス

  1. ジャンプを立ち読みできるコンビニ + 地図
  2. 全国の保育園、待機児童数 + 地図
  3. 自分の商品を買ってくれたお客さんがどこに分布しているか + 地図
  4. bus、電車を待っているときにどこにきているか + 地図
  5. 自分のインストールしたアプリがどこの地域のユーザーが多いか + 地図
  6. 地図で範囲を指定して、そこにpushを送る
  7. 自分の子供がどこにいるか把握する + 地図
  8. 不動産の地価 + 地図
  9. マンション、アパートの空室分布 + 地図
  10. ラーメン激戦区などのheatmap
  11. 学校の偏差値分布 + 地図
  12. 美容室を探して口コミを見る + 地図
  13. ミシュランの3つ星 + 地図
  14. IT勉強会+地図
  15. シングルマザー分布 + 地図
  16. 赤ちゃんの年齢別分布 + 地図
  17. デートコース + 地図
  18. 自分の位置情報と会社に入ったかで残業のログをとる + 地図
  19. 自分が歩いた場所を記録する + 地図
  20. 自分がお金をどこで使っているかをカテゴリーではなく、場所で管理する + 地図
  21. どこのATMでお金を下ろしてるか + 地図
  22. 金の鉱脈+地図
  23. 地下水脈+地図
  24. ハザードマップ+地図
  25. 戦争が起きてる場所+地図
  26. 現在地震が起きた場所+地図
  27. ライバル店がどこに出展しているか+地図
  28. git-hubにどこの地域のユーザーが多いか+地図
  29. pull-requestを送ってるのはどこの地域のユーザーが多いか+地図
  30. google expert、どこの地域で多いか+地図
  31. 世界レベルでの人口増減について+地図
  32. 超ニッチな趣味を持つ人がどこに分布しているか+地図
  33. 自分の1ヶ月の移動などをすべてログ化し、地図に分布
  34. ITなどの会社分布図
  35. 鉄鋼などの消費量+地図
  36. 現在の渋滞情報などを地図にリアルタイムに表示
  37. 地図での行きかたなどを簡単にアニメーションで表示させる
  38. 普段歩いているところの距離、高さを算出
  39. 昔からの移動について+地図
  40. アプリのインストール場所+地図
  41. 海外旅行での計画+地図
  42. デートを提案してくれる+地図
  43. 天気と気温+地図
  44. 二酸化炭素排出量+地図
  45. 戦争+地図
  46. 犯罪+地図
  47. 従業員がどのあたりに住んでるか+地図
  48. 日本人がどこに住んでるか+地図
  49. フリーランスがどこに住んでるか+地図
  50. 年代別の分布+地図
  51. 世界遺産+地図
  52. 就職活動生+地図
  53. 名刺交換した会社+地図
  54. 同窓会+地図
  55. ランニングでどこからどこまで走ったか+地図
  56. 儲かってる地方自治体+地図
  57. 地層の分布図
  58. マンションの日当たり+地図
  59. 騒音+地図
  60. 森林分布
  61. エボラ等のウィルス+地図
  62. 建物の経年分布+地図
  63. コンビニ+地図
  64. 外国人+地図
  65. 日雇いですらない、超短期バイト。すぐそばで簡単に1時間働けるバイト(ちょっと手伝って)
  66. みたい映画+地図
  67. 人通り+時間+地図
  68. 飛行機の操縦体験+地図
  69. 海外旅行+地図
  70. 昔の地図と今の地図の融合
  71. カーナビ+地図(インドアビュー)
  72. 地図でクリックするとホームページがポップアップで出る
  73. 地図を作れて場所を変えれる
  74. 昔の三国志の戦闘図のようにいろんなものがおける
  75. 夜景+地図
  76. 最短距離(運行情報等も考慮したもの)
  77. 空いてるご飯屋さん
  78. 宅配便がどこまで届いているか可視化
  79. 金の流れ
  80. 近くのお店に入れるか。すぐは入れます検索
  81. ホテルが空いてるところ+地図
  82. 鳥とかサイとか、絶滅危惧種がどのあたりにいるのか把握
  83. 海の中+地図
  84. 空+地図
  85. マスコミとかの動き+地図
  86. ファッション+地図
  87. 購買ログ+地図 => 流行がどこだかわかる
  88. 仕事終わって何するか、場所から提案
  89. 晴天マップ
  90. 水田、農作物マップ
  91. 梅雨マップ
  92. 桜マップ
  93. 同じ時間に違う場所で人は何してる?
  94. 違う時間に同じ場所で人は何してる?
  95. facebookの投稿がおおい場所
  96. 心配になるような地図????
  97. 温泉地図
  98. プログラミング別場所別分布
  99. ネイル分布
  100. 借金+地図