刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

programming

Pyppeteerをdocker環境とmacで動かす

Google Cloud Buildでbazel testで動かしてたpyppeteerが動くようになるまでのメモ。 TL;DR Docker環境ではダウンロード済みのchromiumをexecutablePathで指定 pyppeteer==0.0.25 websockets==6.0.0 pyee==6.0.0 ブラウザからの反応がなくなるタイプの問題は…

Google App Engine + Djangoの地雷

基本的には https://cloud.google.com/python/django/appengine にそって行けばいいんだけど、地雷を一杯踏んだので書いておく。 App Engineの場所はアメリカにしろ。AsiaはSQLとApp Engine一緒に置けない。 書かれてないけど、SQLのDB作成時に、場所はApp E…

feedparser置き換え

2chnaviのサービスを運用するにあたって、リソースのボトルネックは何かというと、実はCPUが一番きつい。HDDと違って足りなかったら遅くなるだけでよかったんだけど、流石に全てのフィードをとってパースするのに1時間以上かかるのは、1万以上のRSSがあると…

モンスターハンタースキルシミュレータのアルゴリズム

この記事はモンハン Advent Calendar 2013 23日目のエントリーです。こんにちわ!kudzuです。よろしくっく! MH4用のスキルシミュレータのMH4スキルシミュ(泣)*1や、お守りスナイプ用のウェブページ*2とかを作ってます。 現在HR289で、好きな武器はライト…

djangoで独自の認証つきadminページの追加

調べても、ほとんどModelからAdminページを作る話ばかりで、完全にカスタマイズされたページで、認証だけ流用したい、という用途においては全然参考になるコードがなかったので、一応記録しておく。 http://docs.djangoproject.jp/en/latest/ref/contrib/adm…

続・最近の話題抽出

適当にクラスタリングしてみたらこんな感じになった。 ハ 8 ヤバイ 8 ソフトバンク 8 部分 9 ゆき 9 ドイツ 12 小林 15 完全 17 アメリカン, 航空 22 プラス, NEW, ラブ 28 民団, 外国, 異論 32 白, 旭, ヤクザ, ゴルフ 33 お前, 社長, 社員 39 バス, 地下鉄…

最近の話題抽出

とりあえずクラスタリングは置いといて、単純に最近の話題の抽出を行ってみた。 方法は単純に最新1000件とその前の1000件で出てくる単語の比較。 8 栄子 名詞,固有名詞,人名,名,*,*,栄子,エイコ,エイコ 8 ヤクザ 名詞,一般,*,*,*,*,ヤクザ,ヤクザ,ヤクザ 8 …

Pythonでクラスタリング

http://pypi.python.org/pypi/cluster/1.1.0b1これかなぁ。 とりあえずk-means法で適当にクラスタリングしてみたけど、結構時間がかかる。 適当に400次元空間とか遅すぎる。追記: 記事タイトルを形態素解析して、全抽出した単語から、出現頻度が一定以上の…

AndroidでScalaを使う

というか、使えない。酷く時間がかかったけど、ようやくできた。ネットを調べてると、色々なアプローチが書いてあるんだけど、antの使い方わからないし、おぼえるの面倒だからeclipseだけでできる方法で頑張ってみたんだが、うまくいかん。とりあえず、http:…

twisted 2chnavi todo

広告を載せる ロギングをもう少しちゃんとする datetime、IP、Path、UAくらいでいい気がする SVNレポジトリ

2chnavi置き換え完了

色々どたばたしたけど、一応終わったのかな?色々と感想: Pythonは言語的にめちゃくちゃ強い。PHPは不便すぎる。 Cheetah vs Smartyも同様。Cheetah使った後にSmarty見るとあまりにも貧弱で構文がうんこすぎて困る。 TwistedはDocumentが足りなさ過ぎて困っ…

twisted 2chnavi

とりえあず置いてみた。 http://2chnavi.net:18080/データを定期更新するスクリプトを実行してないから、データは更新されない感じ。 大きく変わったのは、 実装をphp+ethna+smartyからpython+twisted+cheetahに変更 ページのキャッシングを無効化して、リク…

Twisted 2chnavi

面白いからtwistedで書き直しているところなんだけど、大体できあがったので、まだ残っている作業をメモしておく。 インデックスの作成しなおし できたけど、インデックスサイズが倍になってしまった... トップページ 完成 リアルタイムランキング 完成 クリ…

twisted web

http://twistedmatrix.com/trac/wiki/TwistedWeb twisted webが割と強そうなので、試しに2chnaviのコードをpythonで書きなおしてみた。 大雑把にrenderingするところまではできるんだけど、templateのcachingとか考えると、わざわざ書くのが面倒くさい気持ち…

scrapy

Python用のスクレイパーライブラリ。 http://scrapy.org/ 何がいいかというと、 IO処理の効率が大変高いので、多重ダウンロードなどが効率的 リクエスト投げて、結果をとってくるところはある程度勝手にやってくれる スクレイピング自体がxpathが使えるので…

solrのfacetの使い方

facetってあのgroup byみたいなやつ。 ここに大体書いてある。 http://wiki.apache.org/solr/SimpleFacetParameters忘れないうちにリクエストのurlをメモしておく。/solr/select?indent=on&version=2.2&q=(クエリ)&fq=&start=0&rows=10&fl=*%2Cscore&qt=&wt=…

apache solrでまじめな検索つくるよー!

なんだかんだで結構自分でも使ったりするので、真面目に作ることにしてみた。 一応目標は、 日付でソートされた結果 ブックマーク数によりフィルタリング 日付・ブックマーク数を利用した重み付け付きの検索結果 が出せればいいと思ってる。最後のはどういう…

みさくら言語

これは理解しようとする気が湧かない。 #! /usr/bin/misaごっ、ごぉおっ、ご〜きげんよおぉおおぉおほっ。ほおぉおぉおっ。「ごきげん☆みゃぁああ”あ”ぁ”ぁああ〜っ」さわやかな朝の☆ご挨拶! お挨拶がっ。 澄みきった青空にこだましちゃうぉ〜ああぉおおお…

Touch Screen Phone向けサイトへの移植メモ

今回色々変更するにあたって思った事とか。 デザインについて 縦スクロールのみ。横スクロールは厳禁。 サイドバーはなし。多分あんまりいらないし。 よくクリックするところはテキストリンクではなく、ボタンみたいな大きいヒット判定のあるリンク 一番上の…

Unreal Engineでゲームを作る

http://www.4gamer.net/games/032/G003263/20091212002/なんかすげぇな、これ。Windowsでしか動かないのが残念だ...。

pivotal tracker

これからはpivotal trackerで管理してみる。 http://www.pivotaltracker.com/projects/26270/stories

高速なsplit/parse

昨日datファイルのパースが遅くてびっくりしてた。 900レスくらいのデータを行ごとに配列に入れた上で、 デリミタの<>でsplit 本文の<br>を\nに置換 本文のタグをstrip 本文のhtmlエスケープ文字(&など)のアンエスケープ という処理をやってたわけだけど、ざっく…

touch downでfling停止

今回の変更について。 list viewでflingした際、デフォルトではtouch downで停止する 中のTextViewのsetMovementMethodでMovementMethodを設定すると何故かtouch upで停止になる TextViewに疑似touch upイベントをdispatchすることでflingを停止することはで…

Android開発メモ

最近apiドキュメントを見て、いくつかのadapterがFilterableを実装していて、ListViewにもsetFilterTextなるものがあることに気付いたので、今まで自力で実装していたfilterをandroid風に変えてみた。http://developer.android.com/reference/android/widget…

プロ・アマ・プログラミング言語を問わずに高スピードで学習する方法

以下にその方法を紹介します。 1. ソーシャルブックマークのホッテントリのフィードを購読する 2. 特に気になったサイトの人気エントリにざっと目を通す 3. 特に気になったブログを個別に購読する 4. 流行のライブラリ、フレームワーク、アプリケーションの…

Android - Designing for Performance

http://dann.g.hatena.ne.jp/dann/20090712/p1http://developer.android.com/guide/practices/design/performance.html先にこれを読んでいれば、四苦八苦しなくて済んだのになぁ。あえてこれに加えるとするならばShort lived objectをなるべく作らないのは重…

Reflectionで非同期呼び出し

androidではUIコンポーネントの状態の変更をUIスレッドでしかできないため、通信処理が多い2chビューワだと、非同期呼び出しがちらほら出て来る。以下のような感じ。 Handler handler = new Handler();void beginDownloading() { class UpdateSomething impl…

String.subSequence()

文字列の処理のオーバーヘッドを減らすためにString.subSequenceを使おうと思ったら subSequencepublic CharSequence subSequence(int beginIndex, int endIndex) このシーケンスのサブシーケンスである新規文字シーケンスを返します。 次のフォームのメソッ…

android

大量に小さなインスタンス生成するコードがネックですごく遅い気がする。 さて、どうしようかね。

(キリッ)本物のプログラマーなら、絶対PHPは使わない

第10位:「本物のプログラマーなら、絶対にPHPは使わない」 むしろオタクのほうが言いそうな台詞だと思うんだが、どうなのかね。 俺?俺は本物のプログラマーじゃないからPHP使う。