サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
limitusus.hatenablog.com
これは2019年9月に起きたChef関連OSSの削除騒ぎの経緯を個人的に記録するための記事である。この記事はどちらの立場にも立たず、確認できた記事の内容を記載するにとどめる。 記載している2019年9月24日現在、事態は進行中であり、変更が確認されれば更新していく。 2019/09/17 Chef社とアメリカ合衆国移民・関税執行局(以下ICE)との契約についてのTweetがなされる。 hey @chef can you please provide a statement on your $100k contract with ICE, as documented here: https://t.co/x1awrUmVEt — shanley #NoTechForICE (@shanley) September 16, 2019 2019/09/19 chef-sugar をはじめとしたC
先日 id:hirose31 と 並列処理はParallel::ForkManagerとかParallel::Preforkが定番だけど、もうちょっと効率よくやりたいこともある P::ForkManagerはタスクごとにforkするので負荷の分散は綺麗にできるが、タスクの数だけforkが発生して効率がよくない P::Preforkだとfork回数は並列度分だけだが、タスク開始前にタスクの分配を完了させないといけない Cでmultithreadならmaster-workerモデルでmasterにqueue持ってmutexでロックするような練習問題とかある けどPerlでmultithreadやりたくないし、実現するとすればsocket経由でタスクを渡していく感じにしないといけないか 誰かCPANに上げてるんじゃないかなー なければ作るかー 的な話をしていました。 で、metacpanを漁って
今月末はうるう秒が予定されていますね。 http://jjy.nict.go.jp/news/leaps2015.html これについては様々なところで「何が影響を受ける?」「どう対応する?」などが書かれています。 今回はその中でも、「事前に試験環境でうるう秒を入れてみる」ことについてRedHatの記事が書かれていたので、そのお話。 How to clear the Leap Second Insertion flag after it has been received? この記事の中では leap-a-day.c というコードが公開されていて、簡単に言うと ntpdにうるう秒の通知を行う (adjtimex) うるう秒の直前まで時刻を進める (settimeofday) ということをやってくれます。 これを試験環境で実行したところ、仮想ネットワークインタフェース(IP alias)が落
今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のためにXSモジュールを書くのはいささか大袈裟すぎる。 もう少し簡単にやろうと思うと Inline::C を利用する。 これでも別に構わなかったのだけど、今回はこのPerlスクリプトをほぼ同時に並列起動する可能性があり、コンパイルが多重に走るのを避けたい。 ということで、ちょっと珍しいアプローチとしてXSモジュールのベースに使われているDynaLoaderモジュールを直接使ってみることにした。 DynaLoaderとは? Perlで昔からあるコアモジュールで、*.soファイルをロードし、その中のシンボルをモジュール名前空間に
StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。 Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してくれる。 これはfork(2)とexec(2)によってファイルディスクリプタを引き継ぐことにより実現されているが、ファイルディスクリプタそのものをどのように引き渡しているのか、という問題。 exec(2)により実行バイナリは差し換わってしまうので、プログラム中の変数により引き継ぐことはできない。 Server::Starterではこれを環境変数SERVER_STARTER_PORTにより実現している。 おおよそ以下のような感じ。 FD = integer
アラートのメール通知がきたらGoogle Calendarに記入しておくとあとで振り返るのが簡単なんじゃないかなーと思ったので、まずはお勉強から。 要素 できるようになってから振り返ると、以下の要素を理解する必要があった。 REST OAuth 2.0 Application Credential Authorization Code Scope Access Token Refresh Token Google Calendar API 3.0 これからそれぞれの要素について書いていこうと思う。 コードはほぼコピペだが、エラー処理(status=200でないとき)の処理は簡単のため省いている。 REST REST APIはここ数年では至るところで使われているので、どうということはないと思っている。 HTTPのGETやPOSTやPUTなどのメソッドを使い分けて、サーバにリクエストをすること
github SSL certificate problem - A Life Less Ordinary と同じ問題に遭遇してしまったので、まっとうな解決策を探ってみたところ、無事に解決できたのだが、どうやら同じようなことをしているページが見つからなかったので書いておく。 error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/...... 問題はGithubのHTTPSで使われているSSL証明書を発行しているところ(CA)が変わったが、たまたまそのgitコマンドは Ro
今まで数多くのTwitterクライアントアプリが書かれてきて、誰もが様々な方法で手軽にPOSTできるようになっている。 一方、過去の自分の歴史を抹消したいと考える需要もあるにもかかわらず、その需要に応えるアプリケーションは見当たらない。 そこで、今回 twdel というアプリケーションを実装した。 limitusus/twdel - Github 細かい必要モジュールなどはREADME.mdを読んでもらうとして、使い方は至って簡単である。 ./authenticate によってOAuth認証を行い、アクセストークンとアクセスシークレットを記録する(パスワードはもちろん保持しない)。 認証をやり直すときはいつでもこのコマンドを実行できる。基本的には最初の1回だけ。 ./twdel によって実際の消去を実行する。デフォルトではAPIの許す限り、2ページ目から100ページ目まで(0-origin
大学の課題で「いろいろな条件下で各プロセスのメモリ使用量を調べよ」というのが出ました。メモリ使用量は/proc/PID/smapsに書かれているということを知ったので、それを使ってみることにしました。 もうレポート提出してからだいぶ日が経過したので公開してしまおうと思います。 カーネルによってはsmapsが存在しないとか。そういう場合には使えません。 今回も例によってPerlで書くことに。どうやらCPANに(ryということでLinux::Smapsを使っています。 プログラムは追記に置いておきます。 ロジックを軽く書いておきます。 pid_list()が/proc中にある適切なPID(数字の連続)のリストへのリファレンスを返します。 各PIDについてLinux::Smapsのオブジェクトを生成し、Linux::Smaps::sizeメソッドがメモリ使用量を返します。最後にまとめて出力します
経緯 最近書いているプログラムで無限ループするワーカースレッドを立てまくるものがあって, それを signal で安全に終了させる手段が知りたかった. 課題プログラム 以下のようなプログラムがあります. import threading import time def loopfunc(event): print "Thread Started" while not event.isSet(): time.sleep(1) print "Thread End" def main() : threads = [] e = threading.Event() for x in range(10): threads.append(threading.Thread(target=loopfunc, args=(e,))) threads[x].start() for th in threads:
大学にいる人間として(, そして一利害関係者として), ちょっと真面目に生意気なことを書いてみます. 何があったのか 大学でノーベル賞・フィールズ賞受賞者による事業仕分けに対する緊急声明と 科学技術予算をめぐる緊急討論会 - お知らせ - 東京大学 大学院理学系研究科・理学部というイベントがあったので, 行ってみました. 私の立場はせいぜい研究室に所属する学部学生であって, 研究室の先生が予算を取ってくれていて, そのお金によって研究室の運営ができている, その恩恵にあずかっている存在です. そんな学部学生ですが, 基礎研究(Science)および科学技術(Science-based Technology)に関する予算が削減されることが「ヤバい」ことくらいは直感で分かっているつもりです. 私の周囲には研究者, 技術者の方が多いので眺めてみても, この直感は外れていなかったと思っています.
Google が Go という言語処理系をリリースしたので、さっそくビルドしてみました。 環境 Debian GNU/Linux 2.6.26-2-amd64 #1 SMP Wed Aug 19 22:33:18 UTC 2009 x86_64 GNU/Linux 手順 環境変数の設定 Go では環境変数をいくつか設定しておく必要があります。これはその場で設定するのではなく、~/.bashrc などに書いておく必要があるようです。 また、$GOBIN を設定したところには予め $PATH に追加しておく必要があります。 hg clone 公式ページの手順通りに hg clone します。 % env | grep GO GOBIN=/home/limit/local/go GOARCH=amd64 GOROOT=/home/limit/hg/go GOOS=linux $ hg clone
GitHub に上げたので最新ソースは GitHub からどうぞ http://github.com/limitusus/google_docs_up/ Motivation 普段研究室のサーバにログインして作業することが多いので、メールもサーバ上で Emacs を立ち上げ、その上で Mew を使ってメールを読んでいます。 ときどき添付ファイルつきメールが来ることもあるんですが、 .doc なファイルとか、 .xls なファイルとか、挙げ句の果てには .docx とか .xlsx とかが添付されてきます。 普段は Ubuntu しか使ってないので、 Openoffice.org を使って .doc や .xls まではギリギリ読めるのですが、 .docx とか来るとどうしようもなく、 Google Docs にアップロードすることで開くという対処法が存在していました。 前述したとおりメール
注意:ここで書かれているのは基本的にドワンゴインターン2008の内容です。 去年 ドワンゴインターン行ってきた - Limitの日記 で書いた通り、去年のドワンゴインターン2008に参加したわけだけど、何の因果かインターン2009の最終発表会を見学させていただくことができました。 インターン2008 どうやらインターン2008の内容はほとんどしゃべっちゃって大丈夫らしい(というか、既に公開されてるとか)ので、もう少し技術的に詳しいところを書こうと思います。 インターン2008は2チームに分かれていて、もう片方はd:id:con_mameが2009-09-16で書いてくれています。 やったこと ニコニコ動画の各動画につけられるタグの情報を利用して、タグ荒らしを検出しよう 状況および目的 動画にユーザが自由につけられるタグだが、自由なのをいいことに好き放題タグを編集しまくる人がいる。 場合によ
Perl使いとしてはやはりPerl6のビルドくらいはやっておかないとということでやってみた。 環境 OS Ubuntu 8.10 Intrepid Ibex Server Parrotのインストール % svn co https://svn.parrot.org/parrot/trunk parrot % cd parrot % perl Configure.pl --prefix=/home/limit/local % make % make test % make install revは39563だった。 /home/limit/local/bin/の中にparrotやparrot_configがあることを確認 追記(2009/09/25): 2009/09/25時点での最新版では以下のPerl 6のConfigure.plで % perl Configure.pl --parrot
OSの授業で扱っていたfork(2)とexecve(2)ですが,実際に使ってみたことがなかったので実際に試しに使ってみました. 別に特別なことをしたかったわけではないので,とりあえずシェルと同じように動いてくれればいいかなーという設計になっています. 暇な時間に大学で作ったのでMac OS Xでしか動作確認をしていません.多分大丈夫だと思いますが,具体的にはerrnoまわりで何かあるかもしれません. ではソースコードをいつものように追記に置いておきます. switchでbreakし忘れてたので修正(erマクロ) id:showyou の指摘により実行結果も追記に書きました 動いたからそのままにしてあるけどargv[argc]は必ずNULLって決まってるのかな? ISO Cの規格書に書いてあるとか http://cobito.tea-nifty.com/bleu/2004/02/argvar
試験期間中ということもあり会場にはいけなかったのですがDevelopers Summit 2009のコミュニティLTがUstreamで中継されていたので見ました! http://codezine.jp/trackback/devsumi2009/ 勉強会勉強会 - よしおかひろたか 結論 Googleカレンダー(勉強会大集合)見ろ 勉強会勉強会 勉強会についてゆるーく語る 勉強会の主催者側の事情を解決 勉強会って うまくいく条件 開催メリット>開催コスト+デメリット KPI 感想を書いてもらう 実践 主催 立ち上げ 社内->ダメ ブログに書く ブクマとトラバ 結成できそうな状態<-いまココ かけがえのないものだよ!>< DevLOVE - id:papanda0806 経緯 起きていることは全て正しい 現場で起きていることは全て正しい? 現場ではさまざまな問題 開発って楽しい? RubyK
経緯 ITproのRSSを購読していたら米VMwareが無償の仮想化ソフトの新版を公開,管理機能を強化:ITproの記事を発見したので、さっそく入れてみた 出たばかりなので試している人が全然いないですよね 人柱的な意味合いもあります OS環境 ホストOS Ubuntu Linux 8.04 LTS (Hardy Heron) クライアントOS Windows XP Professional SP2(VMware Server 1のときに入れたもの) 準備 元々VMware Server 1.06(ソースからビルドしたもの)を入れていたので、まずそれを消すことにした。 $ sudo vmware-uninstall.pl 今まで使っていたWindows XPのデータが消えるわけではないので安心。 ライセンスはVMware Server 1とは別に発行されるので、きちんと登録。 今回はRPMパ
インターンに行こうと思った経緯 ニコ中じゃね? Larkも行こうとしてるじゃん? 仕事でPGしてる現場って見てみたいぞ という感じ。 選考 500字以内でES 大学入試では90%=450文字以上埋めるのが常識 だがめんどくさい PGたるもの簡潔に済ませるのが美徳 多分350文字くらいで出した 通ったからOK 作品の提出 選考する研究開発部の人の思いつきらしい。 もちろんそんな話は応募前に聞いてない というわけで何も用意してない まあ、大学の課題でいいか。 Hello Worldとかを出した人もいるようだが、単にCで書いた程度ではいくらなんでも通らないだろうなあ。 せめてWhiteSpaceとかGrassとか、そういうネタ言語で(もちろんそらで)書けるようでないとHello Worldでは通らないのだと思われる。別に基準は聞いてないんだけど。勘。 通った。 実はこのとき大学の実験レポートが多
「Windows XPに容量なんて8GBで充分だ!」とか言って本当に8GBしか与えていなかったのだが、ちょっとcoLinuxを使おうと思っただけで容量が厳しくなったため容量を増やすことにした。 方法はid:yuyarinが書いてくれていたのでそれを流用。 VMwareServerで仮想ディスクのサイズを変更する - yuyarinの日記 id:yuyarinのはホストXP、ゲストUbuntuです。ホストとゲストの立場が逆。 環境 VMware VMware-Server 1.0.6 build-91891 Host OS Ubuntu 8.04 Guest OS Windows XP Professional 手順 ディスクの拡張 Hostからサイズの変更を行う。 ディスクのファイル(.vmdk)がどこにあるかを知るためにはVMware Serverからわかる。 ゲストOSを開くと上部にC
このページを最初にブックマークしてみませんか?
『limitusus’s diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く