サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPTs
qiita.com/shibacow
法令作成の苦労 コロナ禍で明らかになったように、日本の社会は未だにハンコと紙、FAXで業務を進めており、大企業や政府、官庁は特にその傾向が強い。 例えば、次のような記事がある。 働くママが終止符を打った霞が関の“伝統芸能 法令の作成は、多くが手作業で行われた。改め文や新旧対照表の作成も人手で行っていたが、プログラムを開発することで、人手で30時間かかった作業を、10秒に短縮した。 改め文や新旧対照表の作成は官僚の間で「霞が関の伝統芸能」と揶揄されていたのだ。このルールは見た目の美しさを追及する意味があったとみられるが、若手の官僚にとっては実質的な利点が理解し難い代物になっていた。 ところが、新しいデータベースは、プログラム言語の変更により、改正部分を旧法令と自動で照合して、資料を自動作成してくれるようになったのだ。以前は30時間ほどかかることもあった作業が10秒程度で完了する。 EUでは、
概要 BigQueryに保存されたtweetを形態素解析したい。BigQuery単体では形態素解析出来ないし、mecabの新語辞書を使ったりも出来ないのでdataflowを利用することで形態素解析を行う。 twitterでは、常に最新の言葉が使われる。そのためmecabの辞書は neologd を利用して最新の状態の言葉で形態素解析ができるようにする。 通常のdataflowのサンプルと異なるのはmecabで使う辞書ファイルをどのように配布するかという問題だ。今回は、パッケージ等は作らなず、インスタンスが生成された後、GCSにおいたmecabの辞書ファイルを読んでいる。 今回はtwitterで使われる人名は誰が多いのかをサンプルとして調べることにする。
概要 最近は行政データをオープンに公開することで、広く官民に使ってもらおうと言う動きが活発だ。裁判所も過去の判例データを公開している。こちらのサイトで、過去の判例データを検索して、判決文や判決に至る根拠を書いたPDFをダウンロードできる。 しかし、そのPDFは人間が読むことを想定しており、PDFの内容を機械が読み取ってデータとして利用することは想定していないように見られる。 今回は、判例PDFをダウンロードして、機械的に読み取り、テキスト化する際にどのような不便があるかを共有する。 アドベントカレンダーへの参加 こちらの記事は、CivicTechテック好き Advent Calendar 2020 12/15に参加しています。 使用ツール PDFから機械的にテキストを抜き出すツールは色々ある が、今回は、pdfminer を利用して判例PDFからテキストファイルを抜き出す。pdfminer
jythonでは、デフォルトではpipのインストールはされないようだ。 次のようにすると、pipが入る。試したのは、ubuntu16.04 jythonのバージョンはjython2.7.0である。 Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11) [OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.8.0_121
はじめに CPUのメニーコア化が止まらない。CPUクロックを上げての性能向上が難しくなったので、各CPUメーカは、メニーコア化で性能を上げる方向を模索している。 ARMはそのような競争のフロントランナーを務めている。 例えば、64coreのserver用ARMプロセッサーなどが出てきている。 そのような中で、Packetという会社が、東京リージョンで、ARM 96コアのクラウドサービスを始めたので、実際メニーコアがどのような性能が出るか試してみた。今までも、東京リージョン以外でARM coreを利用したクラウドサービスはあったが、ヨーロッパなどで、レイテンシが大きくて、使いにくかった。 使用マシン 今回使用したのは、Packetという会社のARMサーバクラウドサービス。ベアメタルで、96コアのマシンを一時間0.5ドルで利用できる。 サーバの性能はこんな感じだ ARMv8 96core 12
1ワールドで済ますというチャレンジ Nianticの求人を見ていて、凄く驚いたのは、「Software Engineer - Server Infrastructure」での次の項目。 all on a single, coherent world-wide instance shared by millions of users. 対訳 全ての(アクション)は、数百万のユーザーに共有された単一の一貫した(サーバ群で行われる) つまり、ポケモンGOは1ワールドで構成されている。MMOのサーバを作ったことがある人なら5それがどんなに大変かピンとくるだろう。特に、ポケモンGOの様に一日に数百万人とかが遊ぶゲームで、1ワールドでゲーム世界を構築するのは、結構大変だ。6 MMOで1ワールドがなぜ大変か(データストレージとの戦い) MMOの様なオンラインゲームで、1ワールドがなぜ大変かを図示する。
Elixirというプログラミング言語が人気だ。関数型言語erlang VM上で動く関数型言語だ。Rubyっぽい書き方ができるといわれている。 Elixir Advent Calendar 2015というカレンダーができるくらい人気だ。 この記事では、Elixirで作るMMO-RPGの基礎というタイトルを付けた。なぜならばElixirはMMO1を作るのにとても適していると考えたからだ。 今回、elixirでMMOを作ろうと思ったが、残念ながらMMOを作る基礎的な部分しかできなかった。その作った分を紹介しながらなぜelixirがMMOに向いているかを見ていこうと思う。 MMOの構成と作りたかったもの MMOの骨格はなんだろう。私は、通信、位置同期、チャットだと考える。オンライン上を自由に歩ける。集まってチャットが出来る。このふたつができれば、MMOの基礎ができたんじゃないんかなと感じる。 通信
Elixirで、表題の通り5000万プロセスぐらい作ってみた。 Elixirで20万プロセスを作ったその後 Elixirはerlang VMをベースとした関数型の言語だ。Rubyっぽい文法も使えて便利である。erlangの特徴である、軽量のプロセスが使えるのが一つの売りである。 少し前に、Elixirでプロセス20万位作ってみた という投稿を行った。その時は、デフォルトのprocess_limitのサイズ約26万を超えて、プロセスを指定する方法がわからなかった。親切な方から、26万を超えるprocess_limitの指定方法を教えてもらったので、それならどれくらいまで行けるかと思い、5000万までプロセスを作ってみた。プロセスの単位がインフレしすぎて、実際何の単位なのかわからなくなった。 erlangのプロセス この場合のプロセスは、erlangで使われる軽量プロセスのことだ。プロセスはe
1,536 CUDA コアと 4GB のビデオメモリを搭載した高パフォーマンスの NVIDIA GPU LINPACKベンチマーク環境の構築 CUDA実行環境の構築は結構大変だ。 linpackプログラムの準備 https://devtalk.nvidia.com/default/topic/819284/linpack-benchmark-for-cuda/ こちらを参考。CUDA Registered Developer Programというのに入って、上のリンク https://developer.nvidia.com/rdp/assets/cuda-accelerated-linpack-linux64 こちらから、hpl-2.0_FERMI_v15.tgzを手に入れる。 インスタンス立ち上げ nvidiaが用意しているCUDAドライバーが事前に入っている環境を利用する。 AWS
スパコンと自分のマシンを比べてみる 最近、スパコン周りの話題が人気だ。 またもスパコンにメス 「見合った成果説明できず」 京速コンピューターが、予算にあった成果があるかという突っ込みが入ったそうだ。 そのニュースをぼーっと見ながら、疑問に思った。自分の手元にあるマシンに比べてどの位、京速コンピュータは速いのだろう? ということで、スーパーコンピューターでよく使われるベンチマークソフト LINPACKを手元で動かしてみて、どの位違うものなのか比べてみることにする。 実際のスパコンは、メモリーやストレージ性能も段違いなので、あまり真に受けないように。 ベンチマークソフトを入手 スーパーコンピュータの準位比較としてはTOP500というランクが有名だ。そこではLINPACKベンチマークというベンチマークが使われているようだ。LINPACKについてはこちら。 書いてあることはよくわからないが、世の中
Elixirでプロセス20万位作ってみた Elixirの下のErlang VMは軽量プロセスという仕組みを使って、並列プログラミングをサポートしている。ErlangのプロセスはOSのプロセスとは異なり、VM内でプロセスを切り替えている。 erlangやElixirではプロセスの使用を勧められる。 実際、どのくらいのプロセスが生成出来るか調べてみた。 process limitの引き上げ 20万プロセスまで生成出来た。それ以上はデフォルトのprocess limit に引っかかって起動出来なかった。erl +P 1000000 でprocess limit をあげられるそうだが、erlang r18からそのオプションは無効化されたそうで、何を指定すれば、process limitの上限をあげられるかわからなかった。 追記: erlang r18で+P オプションは無効化されてないそうです。
このシルバーウィークは、Elixirを勉強している。 Qiitaでも次のような投稿をした。 Elixirのプロセスをマルチコア環境で試した Elixirを試してみた。HirofumiTamori さんのElixirチュートリアルをやってみる ElixirはerlangVM上で動くRubyっぽい文法の言語だ。このサイトの紹介が詳しい。 Elixir : Erlang VM 上で動作する Ruby 風味の関数型言語 実際どのくらい実用に堪えるのか確認するため、昔作ったニコニコ動画で似た動画を推薦するレコメンドエンジン部分を作ってみた。 ソースコードはこちらに公開している。 中心になるソースコードは、lib/relation_view.exである。 ニコニコ動画データセットを使ったリコメンドエンジン 類似動画の集計結果 まず最初に今回作成したレコメンドエンジンの集計結果を示す。 左の紫色の背景の
最近Elixirをちょこちょこ使ってみている。 オンラインゲームを作るプラットホームとして優れているのではないかと考えたからだ(ベースとなるerlangが電話交換機を制御するための言語なので得意なのは当たり前だが)。 また、CPU単体での性能向上に陰りが見えてきて、メニーコア環境でのプログラミングが増えて来ている。 elixir/erlangが持っているプロセスを使って、簡単にメニーコアを使えて性能が向上するなら、こちらを使って行く方が、メニーコア環境でのコア数増加の恩恵を得られるのではないかと思っている。 CPUが大量にある環境でプロセスを使うことでどの程度コアを並列に使うのか調べてみた。 調査環境 EC2のc4.8xlargeを利用して、多数のCPU環境下でelxirがどの程度CPUを使用するか調べてみた。 c4.8xlargeはCPUを36個持っている(手軽に、数ドルで、36cpu環
flask-babelを使って他言語化サイトと作ったので、作り方をドキュメント化 こちらのサイトを、参考にしたが、5年ほど前に書かれていて、現状と合わなくなっているものもあるので、少し修正した。 サンプルのコードはこちらのgithubにあげている。 https://github.com/shibacow/flask_babel_sample (実際これだけでこのブログの意図は達成できているかも)。 上のレポジトリをクローンして、FlaskとFlask-Babelを入れれば動くと思う。 インストール flask-babelはflaskでi18nを実現するためのライブラリだ。flask-babelのサイトはこちら インストールはpipを使って次のようにする
7/1 0時(日本時間の9時)閏秒が挿入される。 通常59秒の次は00秒だが、60秒が追加される。http://www3.nhk.or.jp/news/html/20150628/k10010130831000.html BigQueryにうるう秒が差し込また時に、きちんと動くかどうかを確認する。 bigqueryへは通常のロードの他に、td-agent経由でデータを入れることが多いので、td-agent経由でデータをインサートする場合も検証する。 結論 td-agent,bigqueryへのデータロード共に、 特に対策は必要ないようだ。 BigQueryが異常な動作をしないか? うるう秒が入ることで、BigQueryが異常な挙動を示すか? こちらの記事によるとBigQueryは、1秒を20時間にぼかして埋め込むことで、59:60秒を作らないようにしている。そのため、BigQueryが異常
3千万件送信して、2605件のログが欠落した。 今回の調査ではここまでになった。 BigQueryはログを取り入れてからは素晴らしいけど、まずログを取り入れる部分で不安がある。td-agentを使わなければ良いのかもしれないが、そうするとログ収集システムを自前で構築せねばならず非効率である。 googleはfluetdをGCEなどの標準ログコレクターにしたのだから、bigqueryプラグインについても手を加えてくれても良いかも知れない。 TreasureDataへ、並列送信 後半は、TreasureDataへも並列で送信を行った。一番最後に一千万件のログを送信した際には、TreasureData,BigQuery両方共ログ欠損はなかった。 TreasureDataの設定は特に何もしなくても、ログ欠損が起こらないのが素晴らしい。 ログ欠損とデータ分析 今回の調査ではfluent-plugin
ストレージのお値段が高いのでAWSに乗り換えられないか検討する 私は、いま、ニコラン というサービスと、nicoappli というサービスを2つやっている。nicoappliの方はそんなに真面目にはやってないけど。 ニコラン はニコニコ動画の独自ランキングサイト。nicoappli はitunesランキングを、週単位で、スクレイプしてまとめたものだ。 ニコラン はさくらVPSのSSD 4Gプラン。nicoappli はさくらVPSの4Gプランを使っている。ニコラン は速度が欲しかったのでSSDを使い、nicoappli はデータをスクレイプしたかったので、容量の大きなHHD(400GB)が付いているプランにしている。 合計で月7000円程度かかっており、年間8万程度なので若干高く感じている。もう少し安く出来ないかと考えていたが、最近AWSが安くなったので、試算してみた。AWS m1.lar
最近、bigqueryの評価を行っている。本番向けのデータではよくあることだが、本来データが入る場所にnullが入っていたり、要素が無かったり、逆に要素が多かったりする。 bigqueryはTreasureDataの様にスキーマレスではなくきちんとスキーマを定義しなければならない。 bigqueryでは、スキーマの定義にjsonを使い、データのロードにもjsonを使うため、要素にミスマッチが発生する場合が考えられる。 スキーマとjsonで要素のミスマッチがあった場合は、データにnullが入っていた場合のbigqueryの挙動に関してまとめた。 最初に結果だけ書き、後半に実際にデータロードで試したサンプルを乗せる。 データロード時のBigQueryスキーマと、jsonの対応 送信jsonにスキーマがある。 送信jsonにスキーマが無い
BigQueryをpythonで使う。 BigQueryはGoogleの提供しているとても早いデータ分析環境だ。なんでもデータを何千台のマシンに分散して処理しているそうで、まさにGoogleにしかできそうもない。 縁がありBigQueryを評価する機会に恵まれた。触ってみたら結構早かった。pythonから触ってみる方法を試したので共有したい。 事前準備 BigQuery単体で使えるようにしておく。 Billingを設定しないと使えないかもしれない。 BigQueryAPIのアクセスは有効にしておく。 2015-09-14 修正 下の方法を取らずとも、 というライブラリが出ているようです。 参考の為下の記述を残します。 環境整備 ubuntu13.10で試した。 pythonで使うには以下のようなライブラリを入れる。pipは事前に入れておくこと。 sudo pip install --upg
リーダー論に対する違和感 最近、開発のプロジェクトマネージメントをしている。その仕事を通して、リーダー論や開発手法の書物を読むことが多くなった。 特に、リーダー論を読むことが多くなった。しかし、リーダー論に関する本を読んでいると、とても違和感を感じることが多かった。その違和感の正体をぼんやり考えていたのだが、アジャイル開発のインセプションデッキに関する話(アジャイルサムライという本に出てくる)で、トレードオフスライダーについて知ったところ、違和感の正体に思い至ったので書いておく。 トレードオフスライダーとは アジャイル開発の本(アジャイルサムライ)に、トレードオフスライダーというものが紹介されている。図示すると、次のようなものだ。 プロジェクトの重要項目に、優先順位をつけて、どれを犠牲にして、どれを守るか図示したものだ。例えば、ソフトウェアプロジェクトの四大要素(予算、時間、品質、スコープ
windows7のruby環境で音を鳴らす。 友人が、rubyで作曲ソフトを作りたいと言っていた。彼はプログラマーではないけれど、音楽が作れる。そのため、rubyを勉強して、作曲ソフトを作ってみたいそうだ。rubyが簡単なのでrubyを使って、音楽が作れると薦めてみた。実際に、rubyを使ってmidiで音を鳴らしてみる。 いろいろな作業は、windows7のpowershell上で行う。 windows7でrubyで音を鳴らす準備 rubyで音を鳴らすために次のような準備をする。 gitインストール rubyインストール bundlerのインストール サンプルファイルを落とす unimidiのインストール unimidiのサンプルを落としてくる unimidiのサンプルを見ている。 unimidiのサンプルを鳴らしてみる。 gitのインストール gitのページからwindows用のgitを
Amazon Elastic MapReduceでニコニコデータセットを使ってHiveとImpalaの速度を比較する。hadoophiveImpalaElasticMapReduceEMR EC2安くなる 気がついたら、EC2がだいぶ値下げしていて、我が家の ニコニコデータセットの分析環境のHive利用料も安くなっていた。 参考 【AWS発表】42回目の値下げ!EC2、S3、RDS、ElastiCache、そしてElastic MapReduceも! http://aws.typepad.com/aws_japan/2014/03/aws-price-reduction-42-ec2-s3-rds-elasticache-and-elastic-mapreduce.html 値段の問題もあり、ニコニコデータセット分析環境は、hadoopのバージョン1系でm1.mediumを3台利用して、分
あふれるデータ 会社で、Treasure Dataを使った分析システムを作っている。ゲーム情報を収集して、ユーザーの体験向上に役立てるためだ。そのため、ユーザーの行動を細かく把握する必要がある。勢いデータ容量は増えてしまう。加えて、オンラインのゲームは、パッケージゲームと違い売って終わりではなく、その後何年にも渡って、サービスを提供する。そのため、ユーザーの行動ログは数億件に達することも珍しくない。 Treasure Dataでのログ分析 先に書いたが、大量のログに対応するため、hadoopを利用した問題解決が様々な企業から提供され始めている。タイトルに有るTreasure Dataもその企業の一つだ。こちらからは、ログを送るだけでhadoopやhiveを用いた分析環境を提供してくれる。一方で、こちらが分析機材を用意するわけではないため、どのくらいの速度で分析できるかわからない。特に複雑な
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く