うちのサイトへご訪問いただいた方からの質問で、1番多いのは「180度開脚したいんですけど、どうやるのが近道ですか?」です。 これについては、ちょっと誤解があるようなんで、180度開脚の正しい方法をご紹介しましょう。と言っても、すでにやり方は紹介しているんですけど、前々から質問が多かったので、補足します。 180度開脚は股関節を柔らかくすればできる!…と思っていませんか?実はこれが違うんです…。 まずですね、180度開脚は背中と腰が柔らかくないとできないんですよ。普通に床に座っても、背中が硬いと後ろに倒れそうになるんです(笑)体の硬かった私がそうだったので、同じ経験をしている方も多いと思います。 太腿が突っ張るし、背中が伸びないため、上体が前に倒れないんですよね。 ダイエット方法 ネタ本で紹介しているストレッチは、開脚、左右開脚ができるように、編成しているんです。最初は簡単なストレッチ(柔軟
【音楽mp3ファイル】 ・mp3ファイルの場合 1.リンクを右クリック 2.「対象をファイルに保存」を選択するとダウンロードが始まります。 リンクを左クリックすると、Windows media playerが立ち上がり曲の確認ができます。 ・Sky Driveへのリンクの場合 1.リンクをクリック 2.ファイルもしくは「ダウンロード」をクリック 3.「保存」をクリックするとダウンロードが始まります。 「開く」をクリックするとWindows media playerが立ち上がり曲の確認ができます。 ・☆のついたもの 著作権があり、有料でダウンロードできます。 ダウンロードの方法はリンク先のサイトに従ってください。 【楽譜】 ・PDFファイルの場合(.pdf) 1.リンクをクリックすると、PDFファイルが開きます。 2.メニューの「ファイル」をクリックし、「名前を付けて保存」を選択するとダウン
メインページ / 更新履歴 数学:物理を学び楽しむために 更新日 2024 年 3 月 18 日 (半永久的に)執筆中の数学の教科書の草稿を公開しています。どうぞご活用ください。著作権等についてはこのページの一番下をご覧ください。 これは、主として物理学(とそれに関連する分野)を学ぶ方を対象にした、大学レベルの数学の入門的な教科書である。 高校数学の知識を前提にして、大学生が学ぶべき数学をじっくりと解説する。 最終的には、大学で物理を学ぶために必須の基本的な数学すべてを一冊で完全にカバーする教科書をつくることを夢見ているが、その目標が果たして達成されるのかはわからない。 今は、書き上げた範囲をこうやって公開している。 詳しい内容については目次をご覧いただきたいが、現段階では ■ 論理、集合、そして関数や収束についての基本(2 章) ■ 一変数関数の微分とその応用(3 章) ■ 一変数関数の
2011年09月16日 表情筋鍛えるとイケメンになるぞマジで おまえらもやってみろ その赤ちゃん顔まず変えろ Tweet 0コメント |2011年09月16日 18:00|美容・健康|Editタグ :表情筋イケメン死んだ目笑顔 http://hatsukari.2ch.net/test/read.cgi/news/1316008174/ 当ブログサイトはアフィリエイト広告、バナー広告を利用しています。 11 :(庭):2011/09/14(水) 22:53:16.94 ID:FjV/GyQf0 表情を変えないのが一番シワをできにくくする方法 15 :(関東・甲信越):2011/09/14(水) 22:54:26.46 ID:0fz3WK41O 感情を鍛えないとダメだろ 20 :(iPhone):2011/09/14(水) 22:55:05.36 ID:Jkm8t/bw0 ぶっちゃけ体重減ら
1本の剣が勝敗を分ける ロシアのライトゲームズが英語版を制作したカードゲームは、『エボリューション:種の起源』など4タイトルがある。その1つがこの『十字軍の王国』。美麗なカードを使った2人用カードゲームである。 2人は向い合って5つのエリアにカードを出し、相手より強い役を作ることを目指す。『バトルライン』のようなゲームだが、もっと直感的だ。カードには槍、弓、剣、ヘルメット、旗の5つのマークがいろいろな組み合わせでついており、同じマークが揃えば揃うほど強い。 各エリアには4枚ずつ、合計20枚出した時点でゲーム終了。エリアごとに、同じマークがいくつ揃っているかを比べる。4つ揃ったマークの数が多い方、同じならマークの強い方、また同じなら3つ揃ったマークの数が多い方、またまた同じならマークの強い方……というように比べていく。 これだけだが、駆け引きは熱い。相手の出したカードと、自分の手札を見比べな
王冠を追う薔薇戦争の陣取り ローゼンケーニッヒ / Rosenkönig メーカー: Kosmos(コスモス, ドイツ), 発売年: 2010年(原版は1997年) 作者: Dirk Henn (ディルク・ヘン, 代表作: 『アルハンブラ』など) 10才~大人, 2人専用, 所要40分, ルール難易度:★★(2) 表になっている自分の手札(最大5枚)から1枚選んで使い、指示されている向き(上下左右 斜め)と1~3マスの距離に従って王冠コマを動かします。そして、そこを支配した印として自分の色のコマを置きます。 これを繰り返していき、陣地を増やしていきます。上下左右にコマがつながった分だけ高得点が得られます(コマ数の二乗)。 これを阻止するため、ゲーム中に4回だけ、相手の陣地を自分の色に塗り替えられる「騎士のカード」を使います。 こうしてゲームを進めていき、身動きが取れず、お互いに何もできなく
PC・スマートフォン周辺機器なら 株式会社アーキサイト 〒110-0006 東京都台東区秋葉原5-9 明治安田生命秋葉原ビル
「最近はレシピとか書かないんですか?」 「なんか書いたほうがいい?」 「そういうわけでもないんですけど」 「カルボナーラとか?」 「簡単ですか?」 「簡単。ファイナル・カルボナーラ。食う?」 準備(二人前) ベーコン、37g(セブンイレブンの小パック) スパゲッティ、200g 卵、2個 バター、20g 塩、適当 パスタ茹で用鍋 フライパン 「こんだけ」 「クリームは?」 「使わない」 作り方 1 卵の黄身を取り分ける 「できる?」 「はい。最初にやるんですか?」 「そう」 2 パスタの湯を沸かして塩を適量入れる 3 沸いたらパスタを茹でる 「塩は塩気がつくくらい」 「というと?」 「塩水をなめる。それがパスタに付く塩味」 「ゆで時間は?」 「パスタの袋に書いてある分の数から1を引く」 4 ベーコンをフライパンで炒める 「大きさは適当。弱火でパスタの茹で上がりに合わせる」 「あ、写真ボケちゃ
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
岐阜県 可児市・美濃加茂市・多治見市・土岐市・瑞浪市の整体/整体屋しみず スノーボード・トレーニング・ストレッチ教室・ヨガレッスン 整体屋しみず スノーボードの ページへようこそ! ■Enjoy Snowboard ■プロフィール ■必要な スノーボードギアなど ■ショップでのギア購入 ●トレーニングについて ■理論編>>> ■実践編>>> ■ボディーメンテナンス ■リンク 整体屋しみずの紹介 インフォメーション ■地図・アクセス ■ストレッチ教室 ■ヨガレッスン ■出張整体 今日から始めよう ■バランスボール ■ウォーキング ■ストレッチ ■トレーニング ■ストレッチポール ■ストレッチポール(実践編) スノーボーダーのためのトレーニング スノーボードを楽しむためには道具も大切ですが、体力をつけておくことも大切! 体力をつける、つまり、トレーニングが大切ということです。 滑る、飛ぶなどの
めちゃくちゃうまいペペロンチーノの作り方教えろ貴様ら 2011年04月13日10:53 | カテゴリ:飲食物 / 雑学 | Tweet 1:以下、名無しにかわりましてVIPがお送りします:2011/04/13(水) 00:37:41.42 ID:MFjhMXqe0 料理うまい友達に教えてもらったのは ・にんにくは刻まずにスライス ・オリーブオイルは絶対沸騰させたらダメなので中火くらいでじっくりにんにく熱する ・当然ゆで汁入れる ・味を決めるのはにんにくでも油でもなくベーコン 2:以下、名無しにかわりましてVIPがお送りします:2011/04/13(水) 00:38:01.29 ID:c7jwJIuk0 それでいいじゃないか 欲張りさんめ 4:以下、名無しにかわりましてVIPがお送りします:2011/04/13(水) 00:38:38.21 ID:ru/ur
私たちについて DMKsnowboard.comは、1997年12月10に発足しました。スノーボードの楽しさや魅力を一人でも多くの人に伝えたくて、毎日更新しています!国内では最も人気が高いスノーボード・サイトで、一日も欠かさずアップする姿勢は、多くの方に評価されています。 DMKは、最新情報をリリースするだけではなく、日本で最大規模を誇るスノーボード・クラブ、DMK SNOWBOARD CLUBの活動で、リアルにスノーボードの素晴らしさを伝えるスノーボード・ツアー、キャンプも行っています。 くわしくはこちらをクリックしてください
私たちについて DMKsnowboard.comは、1997年12月10に発足しました。スノーボードの楽しさや魅力を一人でも多くの人に伝えたくて、毎日更新しています!国内では最も人気が高いスノーボード・サイトで、一日も欠かさずアップする姿勢は、多くの方に評価されています。 DMKは、最新情報をリリースするだけではなく、日本で最大規模を誇るスノーボード・クラブ、DMK SNOWBOARD CLUBの活動で、リアルにスノーボードの素晴らしさを伝えるスノーボード・ツアー、キャンプも行っています。 くわしくはこちらをクリックしてください
東京大学の講義や公開講座の映像・音声をポッドキャストでもお楽しみいただけます。東京大学が誇る「世界の叡智」をいつでも、どこでも、より多くの方々に体験していただきたいと考えています。 MIMA Search とは、UT OCW、MIT OCWに公開されている各授業のシラバスの関係を構造的に見ることができる検索システムです。MIMA Searchは、シラバスに含まれている各種の情報をもとに、検索結果を「点」と「線」でネットワーク表現します。
バラエティに富んだ 全23会場 会議・研修から展示会まで様々な用途で、ご利用いただけます。早朝・深夜のご利用も可能です。 出入口徒歩0分の立地 抜群の交通アクセス 都営地下鉄大江戸線「両国駅」A1出入口から徒歩0分、JR中央・総武線「両国駅」東口からも徒歩約6分と非常に便利です。
平素はスノボー&スキーツアーサイトをご愛顧頂き誠にありがとうございます。 お客様により便利にお使いいただくため、複数ある弊社サイトを「スノボー&スキーツアーのビーウェーブ」として統合・リニューアル致します。 この統合に伴い、スノボー&スキーツアーサイトは2015年5月12日をもって閉鎖させていただきます。 今後は、「スノボー&スキーツアーのビーウェーブ」をご利用ください。 スノボー&スキーツアーのビーウェーブ https://www.skiski.jp/ これまで長きにわたりスノボー&スキーツアーサイトをご愛顧下さり、改めて御礼申し上げます。 誠にありがとうございました。 2015年5月吉日
TL;DR — Reeder と Readability, ifttt すばらしいよ。 最近よく使っている「あとで読む」ためのアプリケーション環境。基本的には naoya さんが書いてるのと同じだと思うんだけど。 HBFav というはてなブックマーク iPhone アプリを作りました HBFav には、はてなブックマークに追加する機能や、公式のはてなブックマークアプリと連携してブックマークを追加する機能だけでなく、Instapaper と連携する機能をつけました。Instapaper はいわゆる「あとで読む」サービスで、これは後で読みたいなと思ったサイトを登録すると、良い感じに整形してくれ保存しておいてくれるサービスです。 PC や iPad で Instapaper を利用するのも便利ですが、ぼくはこのところ Kindle を使っています。 気になるサイトは Instapaper 系の「
2016/04/03更新 (v2.12 準拠) 概要 「ロゴ検出型自動CMカットプログラム logoGuillo」は動画から放送局のロゴが表示されるシーンを検出することで自動的にCMを判別し、CMカットを自動で行うための情報を出力するフリーソフトウェアです。 *本ソフトウェアは個人的な研究として開発したフリーウェアです。そのため商用利用はご遠慮下さい。非商用目的であれば個人・団体を問わず無料で使用可能です。 出力した情報はAvisynthやAviUtlに加えMP4Boxやmp4chaps等でも利用出来るので、実際にCMカットをせずにCMスキップ用のチャプターを埋め込む使い方にも対応しています。また、出力を反転してCMのみ取り出す事も可能です。 検出に使用するロゴデータはAviUtl用のロゴ解析プラグインと互換性があるので、お手持ちのロゴデータの流用が可能です。 また、同梱のAviUtl用プ
Simple Life in the Digital Age Synchronicity and Serendipity Brain, Computer and Intelligence 12月15日デル株式会社主催のブロガーミーティングに参加してきました。 主な内容は、 ・ノートブック新製品「Vostro V13」の紹介 ・2-3年後に欲しいモバイルPCの要求仕様 今までのデル社のノートブックは、デザインはすっきりしているが重たい、家の据え置き型というイメージが強い。今回見せてもらったVostro V13は、以下のように16.5mmと薄く、13インチのディスプレイもなかなか良い。価格もおすすめ版で69980円とちょっと手が出そうな設定である。 重さが1.59キロでモバイルとしては微妙なところであるが、実際に持ってみると大きさがあるからか思ったより軽い。似たような仕様、価格でAcerやA
はじめに † これからの動画ファイルはmp4だ!ということで、今回は地デジチューナーから取り出したTSファイルをffmpegでエンコードする方法についてまとめます。 私は面倒なのでCMカット等の編集作業は行いません。録画したTSファイルを自動的に圧縮(エンコード)して、効率よく保存する事に重きを置いていますので、編集について情報収集したい方にはこのページは不向きかもしれないです。 ↑ 環境 † CentOS 5.4 (ProLiantML115) アースソフト PT2 ソースファイル・・・PT2から出力されたTSファイル ffmpeg・・・FFmpeg version 0.5.2 built on Jun 13 2010 23:49:29, gcc: 4.1.2 20080704 (Red Hat 4.1.2-48) ↑ プログラムIDの指定について † チューナーから取り出したT
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
FrontPage / 言語処理100本ノック 3 秒後に NLP 100 Drill Exercises に移動します。 (移動しない場合は、上のリンクをクリックしてください。) © Inui Laboratory 2010-2018 All rights reserved. 研究室紹介/About Us 過去に在籍したメンバー Members 研究室環境 Lab Facilities ↑研究会/Research Meetings 概要 Overview 総合研究会 Research Seminar 意味研究会 SIG Semantics 談話研究会 SIG Discourse 知識獲得研究会 SIG Knowledge Acquisition Embedding研究会 SIG Embedding KIAI Knowledge-Intensive Artificial Intellige
この時間帯にできるだけ多く眠るようにすると、成長ホルモンが分泌されるのだ。 この成長ホルモンの分泌により、以下のような素晴らしい作用がもたらされる。 ダイエット効果: 成長ホルモンの分泌により「たんぱく同化作用」という作用が起きる。これにより太りにくく痩せやすい体質になる。 美白効果:成長ホルモンはメラニン色素を取り除く効果があるので、皮膚が白くなり、しみやそばかすが減る効果がある。 創傷治癒効果:成長ホルモンの働きで、皮膚の痣や傷、それに体内の血管などにできた炎症や粘膜の傷を修復する作用がある。 また、早起きをして朝に太陽の光を浴びると、脳からセロトニンという「幸せホルモン」が分泌され、精神的に安定して心が豊かになる。 分泌されたセロトニンは夜になるとメラトニンという「睡眠ホルモン」に脳内で変化する。 メラトニンのおかげで早く眠くなり熟睡でき、翌朝も爽やかに起きられるという良いサイクルに
Background We use MySQL for storing all of the data in FriendFeed. Our database has grown a lot as our user base has grown. We now store over 250 million entries and a bunch of other data, from comments and "likes" to friend lists. As our database has grown, we have tried to iteratively deal with the scaling issues that come with rapid growth. We did the typical things, like using read slaves and
仮想化技術が進歩し、大量のサーバを管理・構築することが多くなりました。 PuppetやChefなど、サーバ構築・管理を自動化するいろんなツールがあるので、 整理しておこうと思います。 以下の3つに分類します。 Provisioning Tools kickstart cobbler crowbar spacewalk BIOS設定、PXEブート、kicskstartなど、一番下のレイヤーのOSインストールまでを行うツールです。 Configuration Management Tools puppet chef saltstack rundeck and more... http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software パッケージ管理や設定ファイルの配布など、OS
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 研究でcgroupやCFSを調査しているんですが、トラフィックをコントロールするtcコマンドやqos周りを復習がてら、ツールを作ってみました。簡単という所が重要です。何をするツールかというと、「Linuxサーバ上でinboundとoutboundのトラフィック帯域をIPやプロトコル単位で好きなようにコントロールし管理する」ためのツールです。 これまでのトラフィックコントロールツールを改良 とにかく複雑でわかりにくかった印象があります。その結果、トラフィックコントロールを運用に持ち込んでも、うまく管理することができなかったのは容易に想像できます。最初はtcコマンド、次にcbq.initが使われてきました。 tcコマンドはわかりにくいので tcコ
ロングスリーパー気味なので、睡眠時間が少ないと、ぜんぜん捗らない@HIROCASTERでございませう。 誰もが毎日することといえば、“睡眠”です。 この睡眠は遅刻や集中力、生活リズムなど、さまざまなことに影響を与えます。 あなたは、自分がどれだけ睡眠を取れば、日々の生活にベストコンディションを保てるかを知っていますか? 朝早く起きて、本当にやりたいことをする。充実した1日を送りたい人は、睡眠時間をライフログとして記録することをオススメします。 Step1 まずは記録まずは、睡眠時間を記録してください。 紙やEvernoteに記録しても良いのですが、あとで分析するためにできれば、 ホーム|ねむログ 睡眠時間を管理するサービス のような、無料の専用サービスを利用するのがお勧めです。iPhoneアプリで一発で記録したり、Twitterから記録することができます。 このようにあとで、グラフを見るこ
概要 KSM(Kernel SamePage Merging)とは、ユーザプロセスのメモリ領域を走査して、同一内容のページを1つのページにマージすることで使用メモリ量を削減するLinuxカーネルの機能です。マージされたページはCoW(Copy on Write)状態に設定され、ページへの書き込みが発生すると再び個別のページに分裂されます。 KSMはバージョン2.6.32でマージされ、主に同一内容のページを重複して持つ可能性が比較的多いVM利用時の使用メモリ削減が期待されています。 この記事はKSMの内部構造と動作を解析するものです。 忙しい人のための解析概略 ユーザインタフェースはmadvise(の新しいオプションMADV_MERGEABLEとMADV_UNMERGEABLE)と/sys/kernel/mm/ksm/以下のsysfsファイル ユーザプロセスがmadviseでマージしても良い
NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック
動画トップ … 掲示板 - ヘルプ- 利用規約 | 台湾版(Taiwan) - 動画を投稿される方へ - 動画に使用できる音源の検索 - フィッシング詐欺にご注意ください - 広告出稿に関するお問い合わせ - 総動画数:7,300,273 / 総再生数:30,023,441,515 / 総コメント数:3,535,546,209 【推奨環境】 OS:Windows XP, Vista, 7 & Mac OS X Leopard, Snow Leopard ブラウザ:Internet Explorer, Firefox, Safari(Mac版のみ), 各最新版 プラグイン:Adobe Flash Player 10以降 その他:クッキー(cookie)制限をしている場合は nicovideo.jp を許可
ザッPさんのユーザーページです。MF文庫Jでラノベとか書いてます ついったー:https://twitter.com/ZAP_TSUCHISE
Saving Time and Money with Fake S3 Online storage has become a necessity to many people. This is because of the security associated with online storage. One of the most common online storage is the Simple Storage Service, popularly known as S3, offered by Amazon Web Services. In as much as it is a good service, we at spool believe that the Amazon guys are exploiting people. Amazon S3 is a extremel
このドキュメントの内容は、以下の通りです。 libeventサンプルコード コンパイル方法 実行方法 参考 libeventは、スケーラブルなネットワークサーバを開発するためのイベント通知ライブラリです。 libeventは、memcachedなどで利用されています。 libeventは、イベントの抽象化ライブラリです。 libevent APIは特定のイベントがファイルディスクリプタに発生するか、タイムアウトに達した場合に、コールバック関数を実行するためのメカニズムを提供します。 ファイルの更新やソケットのデータ到着などのイベントを監視する アプリケーションを開発するには、FreeBSDでは、selectやkqueueなどを 利用します。Linuxならepollを利用します。 このように、プラットフォームになるオペレーティングシステムによって 利用するAPIが異なるため、移植性が低くなり
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
kaoriyaさんところのVimに這いよる混沌が楽しそうだったのでパクって参考にしてxyzzyで動作するようにしてみました。 実行させると、下の図のようにカーソルの移動ごとにモードラインが変化します。 パッケージ化などしていないので、遊び終わったら一番下のS式を評価して片付けてください。 てか、半年ぶりの更新がこれだよ! <p>&amp;amp;lt;a href="http://www.nicovideo.jp/watch/1333619854"&amp;amp;gt;【ニコニコ動画】這いよれ!ニャル子さん 第1話「第三種接近遭遇、的な」&amp;amp;lt;/a&amp;amp;gt;</p> 追記 (2012/04/20) youzさんが
あらためて GitHub へのインストールから、GitHub Pages への記事投稿、Bitbucket での原稿管理までをまとめておく。 インストールは、公式サイトの Octopress Setup に従う。 GitHub Pages には、ユーザーページとプロジェクトページがあるが、以下ユーザーページ用を主とする。 1. Octopress 利用の前提条件 Git + GitHub アカウント ruby 1.9.2 1.9.3 以上 + RubyGems RubyGems は、ruby 1.9.2 以上であれば インストーラー のパッケージに含まれているという情報が多い(特に Windows)。 Mac であれば、rvm からアップデートする。 また、gem は gem update --system で最新版にしておく。 2. GitHub ユーザーページ用リポジトリの作成 Git
CentOS 6 なら libvirt-guests で停止→開始できるのでこのようなものは不要です。 . . ゲストが起動したままホストをシャットダウンすると、ゲストはプッツリ切られてしまうようなので、なんとかできないかと探してみたところ下記を発見。 http://d.hatena.ne.jp/desutai/20090502/1241248197 そのままコピペして使ってみたが・・・上手く動かなかったのでCentOS用に少し改変してみた。 改変したスクリプトの内容 #!/bin/bash # (c) Andi Barth <aba@not.so.argh.org> 2008 # Distributable under the terms of the GNU GPL version 2. # # copy to /etc/init.d/libvirt-suspendonreboot a
ubuntu 9.04のKVM libvirtが思ったより良く出来ていていろいろ試してみた。 ホストOSを普通にシャットダウンすると、自動でゲストOS側もシャットダウンしてくれるんだろうな と思い込んでいたが、違った。ゲストOS側はブッツリ切られてしまうようだ。 自動シャットダウン的なもの無いかと探したがなかなか見つからなくて やっと見つけたのがこれだった。 http://www.vogelweith.com/debian_server/14_kvm.php#x1-170004 /usr/share/doc/libvirt-bin/examples/libvirt-suspendonreboot こんなものが用意されてました。 中身は、↓の感じ。 #! /bin/bash # (c) Andi Barth <aba@not.so.argh.org> 2008 # Distributable
The Linux Foundation(LF)は、6月6日(水)~8日(金)にパシフィコ横浜にて開催する国際技術カンファレンス「LinuxCon Japan 2012」のプログラムを発表した。 「LinuxCon Japan」は、世界中からLinux/OSSの開発を牽引するリーダーやトップエンジニア、意思決定者、および業界エキスパートが集まり、講演や議論を通じてLinux/OSSの発展を促進することを目的としている。 日本での開催が4回目となる今年は、基調講演に日本人が登壇するほか、日本やアジア諸国からの講演者が多数登壇する予定。『世界へ発信する』場所という意味合いが強いものとなっているとのこと。 また今回初めて、学生を対象としたプログラム「Linux Community 101 For Students」を開催する。 「Linux Community 101 For Studen
Paul Graham / 青木靖 訳 2012年4月 ブロニー・ウェアという緩和ケアの看護師が、人が死の間際によく後悔することのリストを作っている。なるほどと思えるものだ。5つの間違いのうち少なくとも4つを私自身犯していた——というか犯しているのがわかる。 人が死の間際に後悔すること 1. 他の人の期待に合わせるのではなく、自分に正直に生きる勇気が欲しかった。 2. あんなに仕事ばかりするんじゃなかった。 3. 自分の感情を表す勇気を持てばよかった。 4. 友達と連絡を絶やさずにいればよかった。 5. もっと自分を幸せにしてあげればよかった。 これらの間違いを1つのアドバイスにまとめるとしたら、それはたぶん「歯車になるな」ということだろう。この5つの後悔は、状況に合わせて自分を押し込め、止まる時まで律儀に回り続ける脱工業化社会の人間の姿をよく描き出している。 気掛かりなのは、これらの後悔
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 インターネットにおいて、素晴らしいサービスが沢山生まれてきている一方で、実はそれらを後ろで目立つことなく支えている人達がいます。 はい、それが皆さんご存知の所謂インフラエンジニアと呼ばれる人達です。素晴らしいサービスやアプリケーションがリリースされ、そらを開発したプログラマーが世間からの脚光を浴びている中、インフラエンジニアはその陰に身をひそめ、リリース後からこそ真の地獄が始まる、と言わんばかりに、サーバやネットワークのリソースのグラフを昼夜問わず眺めたり、監視アラートにビクビク怯えながら日々すごしています。 しかし、彼らはシステムを安定稼働させるために、自ら進んで後ろに立ち、常にシステムを最適化するためにはどうしたら良いかを考えてくれている
家庭用Faxをe-mailに転送機能が付いたブラザー複合機買った。A3の印刷が出来るってことで買った。楽しみにしてたブラザーのFAX→メール転送機能はSTMP over SSLに非対応だった。残念だった。非常に残念だった。仕方ないから返品しようかと思ったけど、それくらいRubyで何とかすればいいじゃない?っていう悪魔のささやきが聞こえた。 SMTPをフォワードするためのSMTPを書いた。 SMTPって最近規制が多いので従来のパッケージでは動かないことも多いので、いい機会だからプロキシサーバーを書いておいた。 これを使えば、任意のメールサーバーをリレーできる。PostfixやQmailで設定してもいいけどさ、Postfix面倒だし。C言語があまりできない僕は、デバッグが大変なのでRubyでパパっとやることにした。 smtpを立てて、メールが来たらGmailで送り直す。 SMTPを立てる。(m
はじめに ここ数年、ハイパーバイザ方式の仮想化技術が普及し、商用システムに適用することが当たり前という時代になってきました。さらに最近では、クラウドサービスやデータセンタでオープンソースの仮想化技術を採用する動きも出ています。 図1 仮想化マシンの基本用語 仮想的なマシンを「VM(Virtual Machine:仮想マシン)と呼び、仮想化を実現しているソフトを「VMM」(Virtual Machine Monitor)あるいは「ハイパーバイザー」と呼びます。 オープンソースのハイパーバイザには何種類かの実装方式がありますが、中でもKVMが最も有望であると考えます。その理由は、開発-利用-要望-開発の好循環が実現されており、その好循環がKVMの進化に大きく貢献しているからです。開発者だけでなく、利用者も必要なコードを開発したりドキュメントを整備し、その貢献によりプロジェクトの一員と認められ
Documentation extracted from the Linux kernel and mirrored on the web where Google can find it: html/latest - Kernel Documentation (mainline) html/next - Kernel Documentation (linux-next) README various README files scattered around Linux kernel source Output of kernel's "make help". Standards documents applicable to the Linux kernel Single Unix Specification v4 (Also known as Open Group Base Spec
We’ve made the very difficult decision to cancel all future O’Reilly in-person conferences. Instead, we’ll continue to invest in and grow O’Reilly online learning, supporting the 5,000 companies and 2.5 million people who count on our experts to help them stay ahead in all facets of business and technology. Come join them and learn what they already know. Become an O’Reilly online learning member
基本的には、virt-cloneした後にいろいろする。 (virt-manager上でクローンした後に行うのも同じ) 直接マウントして書き換える raw形式ならそのままマウントして書き換える qcow2形式ならqemu-nbdを使ってマウントして書き換える libguestfs経由で書き換える 結論としては、今から利用するならlibguestfsを使うほうが便利。CentOS6.2以降であればyumでインストールできる。 以下、いくつか使ってみたツール類。 Linux at IBM | RHEL5.x/RHEL6.0 KVM 仮想マシンの自動複製 RHEL5.x/RHEL6.0 の KVM では、virt-clone コマンドにより仮想マシンの複製が可能ですが、この場合、ゲスト OS のホストネームやネットワーク設定などは、別途、手動で変更する必要があります。 添付のスクリプト kvmcl
qcow2 images are not flat files, see qemu-img(1). KVM ships with qemu-nbd, which lets you use the NBD protocol to share the disk image on the network. First, for partition nbd partition support you need to be running kernel 2.6.26 (commit, changelog) or greater. For ubuntu users, that means it’s time to upgrade to intrepid ibex. Load the nbd module with: sudo modprobe nbd max_part=8 If you leave o
ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.
はじめに これまでにLinuxカーネルの解説本やカーネルのソースコードを読んでみたものの、 実際にカーネルをビルドしてブートする、という基本的なことを避けてきた。 Linuxカーネルをいじれるようになる(なりたい)、という観点で真剣に考えると、カーネルの ビルドとビルドしたカーネルをブートするという行為は避けて通れない。 いじった結果を観測できないから。フィードバックが無ければやる気も維持できない。 何が障壁になっているのだろう?と考えると、自分でビルドしたカーネルを Linuxにインストールして、ブートできなくなったらどうするの?面倒すぎる。 というのが一番の障壁になっていることがわかった。 この障壁を解決するいい方法は無いだろうか?と考えると、ちょうどいいのがあった。 それがUML(User Mode Linux)だった。 UMLを使えば、ビルドしたカーネルが何らかの原因でブートできな
これまでUML(User Mode Linux)でカーネルデバッグできる環境を使って、カーネルの解析等を行ってきた。UMLの環境は、VMWare Server上のUbuntu 8.0.4に構築していたが、最近、起動しなってしまった。これまでKVM(Kernel-based Virtual Machine)に興味があったものの、手元にはIntel VT対応CPUが無く、ずっと試せない状況だった。そこで、Intel VT対応のマシンを新たに購入し、そのマシンにLinuxカーネル開発環境を作ることにした。 余談: 購入したマシンについて 購入したマシンスペックは、以下の通り。o'zzioのXRシリーズ。http://www.ozzio.jp/html/ozzio_xr_specs.htm このマシンにUbuntu 10.10をインストールした。 CPU: Intel Core i7 870 (8
べっ・・・別にソースコードなんて自分でコンパイルしないんだからねッ!!などと言わずにまず聞いていただきたい。30秒でMySQLのコンパイルが出来るというこの事実を。最近、細々とビルド時間の短縮に取り組んでいたのだが、正直ここまで爆速になるとは思わなかった。今日はビルド時間短縮のためのテクニックを紹介するので、是非皆さんも参考にして、快適ビルド生活を送って頂きたい!! 自己ベストは26.262秒マシンの状態や負荷の状況によって多少ビルドにかかる時間は前後してしまうのだが、これまでの自己ベストはなんと26.262秒。平均すると30秒ぐらい。以前は1分を切ることがなかったのだが、今ではなんとその半分でビルドが出来てしまう。これは純粋にmakeをするのにかかった時間であり、cmake(MySQL 5.5以降)やconfigure(MySQL 5.1以前)にかかる時間は除いてある。だがそれでも速い。
Nginxは非常に強力なhttpdですが、独自のモジュールを実装しようとするとこれまた非常に敷居が高い印象です。 追記 この記事よりも前に http://openresty.org/#DynamicRoutingBasedOnRedis でほとんど同じ内容のエントリが書かれていました。こちらも参照ください モジュールの開発はむずかしい まず開発用のドキュメントはほとんどありません。必然 既存のモジュールをお手本としますが、コメントも少ないのでソースだけが頼りです。 {ファイル,ネットワーク} I/O を伴う処理では、Nginxのノンブロッキング/イベントドリブンのアーキテクチャにのっとってコールバックを駆使したCで実装する必要があり、LLで育ったゆとり脳では太刀打ちできませんでした lua-nginx-module が代わりになるかも なんらかのNginxモジュールを開発しなければならない
新しいカーネルをコンパイルしようとする動機はなんでしょう? Debian では、標準で入っているカーネルで多くの機能をサポートしているので、ほとんどその必要はありません。また、Debian は多くの場合、いくつかの代替カーネルを提供しています。ですからおそらく、もっと自分のハードウェアに対応する代わりのカーネルイメージパッケージがあるかどうかをまず確認したいと思うでしょう。しかし、以下のような目的のためには、新しいカーネルをコンパイルすることは有益です。 特殊なハードウェアを使ったり、標準カーネルとハードウェアとの競合を回避するため (ハイメモリサポートなど) 標準カーネルでサポートされていない機能を利用するため 使わないドライバを取り除くことでカーネルを最適化し、起動にかかる時間を短くするため モジュール化されたカーネルの代わりに、一体化したカーネルを作成するため 最新のカーネルや開発版
絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows APIを
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
KVMで便利なqcow2フォーマット。 しかし、仮想マシン内でファイルの作成と削除を繰り返すと徐々にサイズが大きくなってしまう。 これを圧縮する方法。 ■最初の状態 # ll -h -rw-r--r--. 1 root root 16G 5月 9 00:48 centos62_x64_master-clone.qcow2 ■qemu-img の convert と圧縮を利用する。 # qemu-img -h qemu-img version 0.15.1, Copyright (c) 2004-2008 Fabrice Bellard usage: qemu-img command [command options] QEMU disk image utility Command syntax: convert [-c] [-p] [-f fmt] [-t cache] [-O outpu
JavaScript でアニメーションを作る アニメーションとは何? ビューを少しずつ回転、拡大縮小、移動、変色などを行い、連続的な動きを作る こんな感じ <div id="view">hoge</div> <script> var el = document.getElementById('view'); el.style.opacity = 1; setInterval(function() { el.style.opacity -= 0.01; }, 10); </script> なんで、あんな感じの書き方になるの? setInterval の意味が分からない こんな感じで書けないの? <div id="view">hoge</div> <script> var el = document.getElementById('view'); el.style.opacity = 1; w
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といっても、きちんとした検証をしたわけではないので、あくまで「こういう環境でこういう事をやるとこうなる」という参考程度のものと理解してい頂ければ幸いです。 Linux上でプロセスは同時に何個起動できるのか 数年前にC10K問題が流行りました。これは、簡単に言うと、万のオーダーでプロセスを立ち上げる事になると、現状のOSではそれを想定した設計になっていないためまともに動かなくなる、といった問題でした。 だったら、「10万プロセス位を同時に立ち上げてみて、どうなるか試してみようぜ!」と思い、会社のエンジニアと一緒に試してみました。検証環境は、メモリ48GでCPUはHyperThreading込で24コアです。そこで動いていたOSはDebianでL
x-callback-url とはURLスキームを利用したアプリ間連携の仕組み。他アプリを呼び出すだけでなく、その名(コールバック)の通り呼び出し元で結果を受け取るまでの一連の動作を定めている。 x-callback-url 現在は 1.0 DRAFT...
今日はcobblerを使ってKickStartを使った自動インストール環境を 作ってみる事にします。 環境 OS : CentOS5.5を使います。 インストール まず、EPELのリポジトリを使えるようにします。 # rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm その後、cobblerをインストールします。 # yum install cobbler cobbler-web DHCP, DNSを使う場合は、必要なパッケージをインストールしておきます。 # yum install dhcp bind caching-nameserver Apache、cobblerを起動します。今回は自動起動するようにしておくことにします。 # /etc/init.d/httpd
そうですね…… 自慢するわけではないですけど、 学校の時、ぼくは作文や詩や絵を、 毎日書いて校長先生のところへ 持っていったの。 緑の小箱というのがあって 毎日入れていました。 すると校長先生が赤字を入れてくれて、 原田くん、よかったね、 ここのところはこう書くと、 もっとすばらしい文章になるよと 毎日やり続けてくれて……。 もう、あの校長先生には、 今でも感謝しています。 それからオヤジの存在も大きかったと思う。 勉強しろとは絶対に言わないの。 勉強しなかったらトラックに乗せて 山の上に連れていかれて…… 「勉強しないのに、なんで学校行くんだ? ここで石をいっぱい積んでいろ」 夜中まで積まされましたが、 昔のオヤジの教育の勇気ってすごいですよ。 私は自分の子どもに そういう教育をする勇気はない。 野球ばっかりやっていて 遊んで家に帰ってきたら、 勉強部屋に何にもないのよ。本もない! 庭を
「便利である」ということは、黄門様の印籠みたいなもので、その言葉を出すと誰もが黙るような迫力がある。すべてのサービスはそこへ収束されるんじゃないかというような迫力が。 ところが便利には退屈がつきまとう。便利というのは快適に目的を達成することだから、それを突き詰めてしまうと、合目的的だけどつまらないという世界に入っていく。何の寄り道もない退屈な合理性。 便利には相容れない、もうひとつの価値がそこで登場する。「にぎやかさ」である。にぎやかさは、盛り上がりを生む。 メールは互いに同席していなくてもいいから便利だ。でも盛り上がりやにぎやかさがない。チャットは、時間に縛られるから不便だ。でも盛り上がりはあって、にぎやかさがある。ニコニコ動画は便利かというと違うけど、にぎやかで、盛り上がりがある。LINEもそうかもしれない。ごちゃごちゃしたサイトや店舗もこちらに属するだろう。 便利さとにぎやかさという
データ解析の重要性が認識されつつある(?)最近でさえも,A/Bテストを始めとしたテスト( = 統計的仮説検定:以後これをテストと呼ぶ)の重要性が注目される事は少なく,またテストの多くが正しく実施・解釈されていないという現状は今も昔も変わっていないように思われる。そこで,本シリーズではテストを正しく理解・実施・解釈してもらう事を目的として,テストのいろはをわかりやすく説明していきたいと思う。 スケジュール スケジュール 第1回 [読み物]:『人間の感覚のみでテスト結果を判定する事の難しさについて』:人間の感覚のみでは正しくテストの判定を行うのは困難である事を説明し,テストになぜ統計的手法が必要かを感じてもらう。 第2回 [読み物]:『「何をテストすべきか」意義のある仮説を立てるためのヒント』:何をテストするか,つまり改善可能性のある効果的な仮説を見いだす事は,テストの実施方法うんぬんより本質
x86 と x64 のマシン語は可変長です。 ふつーはそれほど意識する必要はないのですが、 トランポリンフックやライブパッチを作る人だと、マシン語コードの長さを取得したい時があります。 たとえば、トランポリンを作るときに、破壊するバイト数を計算したり、 破壊してしまったメモリをうまくつなぎあわせて処理の効率化を測る場合には、必要になります。 まぁ、まれによくある。といった感じでしょうか? まれによくある程度なので、あんまりライブラリが整備されていないように思えます。 逆アセンブラであれば、用途は満たしますが、ソースコードがやや大きくなってしまったり、 ライセンスがあまり自由でないライセンスだったりするみたいです。 で、 それなら俺が作ってやんよってことで作ってみました。 でけた oplen https://github.com/rti7743/oplen x86とx64のマシン語サイズを求
perl は system perl じゃなくて perlbrew で入れて、アプリで必要な CPAN モジュールは全てアプリのディレクトリ下の extlib というディレクトリにインストールする方式は個人的にはいい感じだよなぁと思いつつ、cron とか daemontools がいつもどうやるのが正解なのか分からず困ってた。 またセットアップする機会があったので色々考えた結果、こんな感じなら割とすっきりした感じになった。 env このファイルがキモで、アプリのディレクトリに移動しつつ、いい感じに perl とか PATH とか@INC を設定して、渡されたコマンドを実行してくれる。 # perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi # ./env perl -v This is perl 5, versi
こんにちはこんにちは!! 今日はブログとかを書く時の、ぼくなりの考え方をいくつか書いてみようと思います! 1. 知ってることを書く 君の思う、 「こんなこと、○○やってる奴なら、誰だって知ってるだろう」は、意外と知らない人が多い。 普段から、それを知らない人の視点で考えてみる。 2. 気づいたことを書く でも新しくなくていい。 ネットのどこかで既出でもいい。 君自身が気づいたことや、思いついたこと、感じたことがあれば、それを書けばいいと思う。 3. 自分なりに検証する 内容や意味が不安な部分は、一応ググるなりして検証してみる。 これが結構、勉強になったり、また違う発見があったりするよ。 4. 素人にもわかるように書く 専門用語や、難しい言葉を使わずに、 できるだけ、素人とかオカンとか、ぼくにもわかるように書く。 5. 勇気をもって省く 省いた箇所は、必ずつっこまれる。 そのツッコミを恐れて
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Apacheのデバッグの方法は多く紹介されていて、例えばgdbを使ってみましょうと紹介されている記事も多いです。しかし、操作の仕方が多岐に渡っていて、なんとなく敷居が高く感じて使わないという人も多いかもしれません。 例えば、Apache周りのエンジニアが一番気になるのは、Segmentation faultだと思います。そこで、今回は自分がSegmentation faultの原因を特定する時の一番手っ取り早い、gdbを使った方法を紹介しようと思います。gdbを使っていない人にとって、gdbって少し敷居が高いんじゃないかなぁ、と思っている人も多いかもしれませんが、今回の方法であればだれでも気軽にできると思います。 まずはバグを作る 今回は、自
KVMの上でKVMを起動する方法。 何が嬉しいかというと、OpenStackやWakameのような仮想マシンを管理するIaaSソフトウェアのテストが捗る。 少し前まではAMD CPUでないと出来なかったりとか、カーネルにパッチを当てないとダメだったが、Kernel3.2以降はIntel CPUでも利用できるようになっており、標準機能としても取り込まれている。 以下ではSL6(guest) on SL6(nested kvm guest) on Fedora16(kvm host)を稼働させている。 今回テストした環境は以下 # cat /etc/redhat-release Fedora release 16 (Verne) # uname -a Linux f16-x121e.sol-net.jp 3.2.5-3.fc16.x86_64 #1 SMP Thu Feb 9 01:24:38
Using virtio_net For The Guest NIC The following is done using Debian Lenny, with the 2.6.25 kernel installed from Sid. install the guest OS as per normal, using rtl8139 or e1000 for the guest NIC boot into the guest as per normal edit /etc/apt/sources.list to add a sid repo install the 2.6.25 kernel boot into the guest using the 2.6.25 kernel edit /etc/initramfs-tools/modules and add virtio, virt
Your all-in-one operating system for marketing Optimizely powers the entire marketing lifecycle, unlocking your team to create content with speed, launch experiments with confidence, and deliver experiences of the highest quality. Get started More about Optimizely One Content and digital teams have the same mission: delivering impactful, converting content to the right audience at the right time a
※遅延証明書は、その路線で発生した最大の遅延時分を証明するものであり、個々の列車の遅延時分を証明するものではありません。また、お客さまがご乗車されたことを証明するものではありません。 ※湘南新宿ラインをご利用のお客さまは、宇都宮線、高崎線、埼京線・川越線、横須賀線・総武快速線、東海道線のいずれかの証明書のなかから、ご乗車いただいた区間にあわせてお選びください。 ※上野東京ラインをご利用のお客さまは、宇都宮線、高崎線、東海道線、常磐快速線、常磐線のいずれかの証明書のなかから、ご乗車いただいた区間にあわせてお選びください。 ※相鉄線直通列車をご利用のお客さまは、埼京線・川越線、横須賀線のいずれかの証明書のなかから、ご乗車いただいた区間にあわせてお選びください。 ※高崎線(東京~大宮)をご利用のお客さまは、宇都宮線の証明書をお選びください。
Latency numbers every programmer should know — Gist L1キャッシュ参照 0.5ナノ秒 分岐予測失敗 5ナノ秒 L2キャッシュ参照 7ナノ秒 Mutexのロックとアンロック 25ナノ秒 メインメモリー参照 100ナノ秒 Zippy[Snappy]による1KBの圧縮 3,000ナノ秒 1Gbpsネットワーク越しに2KBを送信 20,000ナノ秒 メモリーから連続した1MBの領域の読み出し 250,000ナノ秒 同一データセンター内におけるラウンドトリップ 500,000ナノ秒 ディスクシーク 10,000,000ナノ秒 ディスクから連続した1MBの領域の読み出し 20,000,000ナノ秒 パケットを、カリフォルニア→オランダ→カリフォルニアと送る 150,000,000ナノ秒 Jeff Dean著(http://research.googl
Compatible: works cross-platform with hundreds of millions of already deployed devices Fast: 95% of matches are displayed to the user in less than one second from time of bump. Secure: TLS encryption end-to-end Persistent: Connections established through Bump can persist as long as you'd like, including across sessions, with no need to hold phones together. Intuitive: Connections are established w
私は,AndroidもJavaも初心者なので,間違っていること,非効率なこと,筋悪なことが以下に書いてある可能性が大です.御容赦下さい. あと,Android 2.3.3を前提に書いてます.2.3ではパッチを当てたり,非公開APIをたたいたり,先人の皆様が御苦労されてましたが,2.3.3からは,ちょー楽です(笑) 動機・目的 Nexus S タグ(FeliCa Lite)で遊んでみよう FeliCaのIDmを読んでみよう FeliCaのコマンドを送ってみよう トルカを送ってみよう 動機・目的 純粋に遊んで見たかったんです(笑) Nexus S 本当は,Galaxy S IIが欲しかったんですが,納期がかかりそうなので,てっとり早くNexus Sを買ってしまいました.いまさら感があったんですが... amazon.co.jpの中のとあるショップで買いました.もうそのショップでは在庫してないみ
開発環境を構築したら、アンドロイドアプリの開発にとりかかりましょう! Android SDK にはエミュレータが含まれているので、 実際のアンドロイド端末を持っていなくても、すぐに開発を始めることができます。 "SDK" というのは一般的にソフトウェア開発キット (Software Development Kit) の略で、特定のプラットフォーム上で動作するソフトウェア開発するために必要なツールやライブラリ等をまとめたものを指します。 はじめての Android プログラム - プロジェクトの作成 開発環境を構築したら、さっそくアンドロイドプログラムを実行してみましょう。そのためには、Android プロジェクトを作成するのが第一ステップです。 アンドロイド仮想デバイス (AVD) の作成 AVDとは何でしょうか?そして、AVDは何のために、どのように作成すれば良いか、ここで簡単に説明しま
ポインタの裏話 岡﨑 直観 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg ポインタの裏話 プログラミング演習A 1 このような説明を 覚えていますか? 知らなくても全く問題ありません ポインタの裏話 プログラミング演習A 2 int x = 0; &xは変数xの「アドレス」 「番地」「住所」を返す 変数x 0 &x メモリ空間, 記憶空間 変数xのアド レス(住所) ポインタの裏話 プログラミング演習A 3 ____ / \ 何言ってたんだこいつ? / ⌒ ⌒\ 番地 アドレス ぬるぽ / (●) (●) \ \ / | 、“ ゙)(__人__)" ) __________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | || / , \n||
$ dmesg|grep CPU: CPU: Intel(R) Pentium(R) CPU G6950 @ 2.80GHz (2793.04-MHz K8-class CPU) CPU: Intel(R) Pentium(R) CPU G6950 @ 2.80GHz (2793.05-MHz K8-class CPU) CPU: Intel(R) Pentium(R) CPU G6950 @ 2.80GHz (2793.04-MHz K8-class CPU) Intelのi3/5/7クラスのCPUっぽかったらまずは可能性があります。 古いIntelやAMDだったらダメです。 こっから先はhttp://ark.intel.com/で調べてもいいんですが、dmesgで調べてみましょう。 $ dmesg|grep Features Features=0xbfebfbff<FPU,VME,DE
See related links to what you are looking for.
iOS Security May 2012 2 Page 3 Introduction Page 4 System Architecture Secure Boot Chain System Software Personalization App Code Signing Runtime Process Security Page 7 Encryption and Data Protection Hardware Security Features File Data Protection Passcodes Classes Keychain Data Protection Keybags Page 13 Network Security SSL, TLS VPN Wi-Fi Bluetooth Page 15 Device Access Passcode Protection Con
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 自分がLinuxエンジニアになりたくて、入社一年目にやってよかった事をまとめておこうと思う。一年目にどれだけやるかが、勝負の別れめといっても過言ではない。それは技術を学ぶだけではない。いっぱいあるんだけど、最低限やって良かったなと思う項目を列挙する。 それがぼくには楽しかったからを読む Amazonとかで買う。出来れば原著がいいけど無理しなくて良い。 Just for Fun. Linuxがどうやってできたか、なぜそれをしようと思ったのかが分かり、今後自分がLinuxのエンジニアとしてどういう動機で仕事をしていきたいかを考えさせてくれる本。この本を読めば、自分が仕事でオープンソースを扱っていることに自信を持てると思う。 「なんでその仕事してる
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.
以前は有料ソフトであり、ロードテストを実行した結果を数値・グラフ化してまとめて保存でき、サイトへのアクセス順番を固定したりランダムにしたり、アクセスする時間間隔・接続時間・アクセスする人数の設定が可能で、さまざまなテストを自由に設定して実行できるフリーソフトが「JBlitz Professional」です。ダウンロードから機能と操作の説明までは以下から。 Website load test - JBlitz Professional http://www.cartesian.net.nz/jblitz/ ◆ダウンロード 「JBlitz Professional」を使うにはJavaをインストールしておく必要があります。 上記サイトの「Download」をクリック。 ダウンロードしたZIPファイルをExplzhなどで解凍して、Windowsを使って操作をするので「run-jblitz.bat」
Androidアプリのテストに関する課題 Android端末の普及は世界規模で増加の一途をたどっています。2011年秋冬モデルが発表され、発売予定のものを含むと日本で発売中のAndroidの携帯端末は100機種に迫ろうとしています。読者の皆さんの周囲を見渡しても、電車や街角でAndroidを採用したスマートフォンなど携帯端末を使用する人をよく見かけるのではないでしょうか。 そして、スマートフォンに留まらずタブレットやミュージックプレイヤー、電子ブックリーダー、POSレジ、テレビなど、さまざまなデバイスがAndroidを搭載し始めています。Androidの採用が増えるにつれ、Androidアプリの種類が増えるので、アプリの開発案件も増えることになります。実際、本稿を読んでいる開発者の方の中にも、すでにAndroidアプリの開発に取り組んでいる方も多いのではないでしょうか。 筆者も普段の業務の
Android 2.3.3のNFCがだいたいわかったので、を使う方法まとめる。 てかNFC関連だって言ったら、勤務時間中に堂々と調査できたw AndroidManifest.xml 結局、これの設定が一番肝心。 許可のタブで ○Uses Permission android.permission.NFC を追加します。 これでNfcAdapterの利用が許可される。 で、Intentフィルターの設定 Android 2.3.3のNFC APIには2種類の使い方がありのですが、まず一つ目。 ●NFC TAG(FeliCaカード)がかざされた際発生するIntentで、対応アプリを起動する方法。 まず、対応するタグをXMLファイルで定義します。(カードの種別設定) res/xml/nfc_techs.xml (ファイル名は何でも良い) <?xml version="1.0" encoding="
はじめに Androidをはじめとするスマートフォンが盛り上がりをみせています。2011年上半期の携帯電話販売ランキングの上位はスマートフォンがほぼ独占、爆発的な増加となっています。 スマートフォンのシェアが急激に拡大する中、開発の現場にも変化が起こっています。スマートフォン案件の増加です。iPhone用のアプリをAndroidに対応する案件や、業務端末としてAndroidやiPadを使いたいといった案件が増えてきました。スマートフォンへの開発ニーズの高まりを感じます。 本稿はサンプルアプリの作成を通じてAndroid開発について解説していきます。 電卓アプリをサンプルとして使用しますが、よくある機能が限定されたようなサンプルではありません。実用に耐えうる電卓アプリの基盤を作成していきます。 本稿を読み終えた後は、電卓アプリにさらに機能追加が可能となりあなただけのカスタマイズ電卓が作成でき
大変な時期ですが、今日からブログは再開したいと思います。 本日はiPhoneで位置情報を取得する、もう一つの方法を記載したいと思います。 普通、位置情報を取得する際には、CLLocationManagerクラスの「startUpdatingLocation」メソッドを用います。使い方の詳細は『XCODE-iPhone 位置情報を取得するには』を見てみてください。 今回は、「Sgnificant-Change Location Service」というサービスを利用します。 Sgnificant-Change Location Serviceとは iOS4.0以降で利用できる位置情報取得サービスです。このサービスは通常の位置情報取得サービスに比べ、電池消費量を抑えながら多くのアプリケーションに必要な精度の位置情報を提供してくれます。このサービスはデバイスが利用する電話の基地局を利用して位置情報
電話番号・SIM・デバイスID・サービス・通信強度・基地局・電話コールを取得するプログラムを作成する。 ソースコード TelephonyEx.java package net.npaka.telephonyex; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.telephony.CellLocation; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import
今日は現場の勉強会で位置情報について発表しました。 資料作る時間がなかったのでいろんなサイトの内容を紹介する形だったけど、思ったより整理できたのでこちらでもご紹介。以下の内容を一通り読めば、 測地系とは 位置を特定する方法には何があるのか キャリア別の位置情報取得方法 iPhone、Android端末での位置情報取得方法 JavaScriptでの位置情報取得方法 位置情報の応用技術 なんかが理解できるかと。 2010/11/02 追記 JavaScriptでの位置情報取得方法について追加。 測地系とは 位置情報を取得する仕組み − @IT 地球上での位置を表すための基準となる座標系および地球の形状を表す楕円体を総称して「測地基準系」(測地系)と呼びます。 日本では日本測地系と世界測地系がある。Google Mapsは2005年ぐらいに世界測地系になったけど、Yahoo!地図は日本測地系なの
Ruby(on Rails)使い始めて半年、まだ自分自身探り探りという状態なのですが幸いにもお手本になる先生のお陰でなんとかやれているという感じです。 個人で勉強してる範囲でいろいろ見てきたものや読んだもの、参考にしている本などをざっとまとめておきます。 id:ukstudioによる勉強会の資料 まずざっくり概要を得るためにこれ読むとよさそう 特異メソッドあたりの解説は一旦スルーしていいかも Ruby&Rails勉強会 認証周りについてid:udzuraによる資料 自分で主催したRuby勉強会で(邪悪な顔で)発表してくれた資料 渋谷で勉強会してきました。(邪悪な顔で)発表もしました。 « blog.udzura.jp テスト周りについて @takaiさんのブログエントリ RSpecによるユニットテストの書き方 - tech.recompile.net またid:ukstudio先生の資料じ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
There are copious amounts of extra data associated with images (metadata), beyond the actual image pixels. This metadata can be useful, either for display, or for various calculations, or in modifying the behavior of later image processing operations. You can utilize percent escapes in a number of options, for example in -format or in montage -label, to print various properties and other settings
連載インデックス 「Androidで動くJavaアプリ開発入門」 初心者のための入門連載です。「Androidアプリとは何か」の基礎知識から開発環境の構築(Android Studio、SDK ToolsとEclipse ADT、NDK、エミュレーターなどのインストールや使い方)、Java言語で書くアプリ開発の基本的なところから、最新版5の新機能までまとめて解説します。Activity、Intent、サービス、WebView、ゲーム開発、センサー、カメラ、位置情報/GPS、Bluetooth通信、NFC、Android Wearなど ※本連載のアップデート版連載は「実業務でちゃんと使えるAndroidアプリ開発入門」として連載中です。 Javaでの常識が通用しないAndroidにおけるメモリ管理の注意点 実業務でちゃんと使えるAndroidアプリ開発入門(3) Androidアプリのメモリ
nixCraft → Howto → CentOS → KVM virt-install: Install FreeBSD / CentOS As Guest Operating System virt-manager requires GUI locally and it is slow. On other hand virt-install is a command line tool for provisioning new virtual machines using the “libvirt” hypervisor management library. The tool supports both text based & graphical installations, using serial console, SDL graphics or a VNC client/se
CentOSをインストール CentOS5.5をインストール。 インストール段階では仮想化のチェックは外し、 仮想化関係のパッケージをインストールせず。 KVMパッケージをインストール # yum groupinstall kvm モジュールのロード カーネルにモジュールのロードを行う。 # modprobe kvm_amdAMDのCPUを使っているので、kvm_amd Intelの場合は、kvm_intel モジュールがロードされていることを確認する。 # lsmod | grep kvm kvm_amd 69544 0 kvm 226336 2 ksm,kvm_amd ブリッジ接続の設定を行う。 /etc/sysconfig/network-scripts/ifcfg-eth0は以下の通り。 DEVICE=eth0 BOOTPROTO=none TYPE=Ethernet HWADDR
追記 2005年10月 このドキュメントを最初に書いたのが2003年8月頃で, 当時設定したブリッジをそろそろ置き換えようと思い, ちょっと見直してみた. 2.6.x系のカーネルならば, patchをあてる必要はないらしいが, 何となく, いまだに「2.4.x系で困らないなら2.4.xで」な人なので, ebtables-brnf-11-2_vs_2.4.31.diff.gzを使うことにした. patchをあてる手順等は, 以前と同じ. kernelのコンフィグレーションで は、以下の部分を設定。機能が随分増えたのかも。 %egrep -i bridge /usr/src/linux-2.4.31/.config CONFIG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT
「Mandriva Linux 2010.1上の幾つかのメモ(ページ2/3)」の続き。 KDE4上のOpenOffice.orgのGUIツールキット dracut(mkinitrdの代替) KDE4上のOpenOffice.orgのGUIツールキットバージョン3.2系の時点ではKDE4上ではQt4のテーマが自動的に用いられるようになっている。他の環境で強制的にQt4を指定するには $ OOO_FORCE_DESKTOP=kde4 ooffice3.2とする(「kde」ではダメ)。一方でKDE4上のOpenOffice.orgでGTK+ 2を用いたい場合、KDE4上のQt4のテーマ設定(KDE システム設定(systemsettings)の「一般 - 外観」の「スタイル - アプリケーション - ウィジェットのスタイル」)を「GTK+」にしてもよいが、テーマによっては(Qt4を用いた)Ope
Network Manager と仲良くなれないやら modprobe.conf がなくなったやら諸々の悩みを解決するお手伝いをいたします。(この記事は、不定期にアップデートする予定です。) Red Hat 公式ガイドはこちらを参照 RHEL6 移行計画ガイド RHEL6 Migration Planning Guide ※ RHEL5もまだまだ現役という貴兄には、プロのためのLinuxシステム構築・運用技術もよろしくお願いします。 システムコンソールの切り替え Ctrl + Alt + F1 が X Window になってます。コンソールでテキストログインしたい時は、Ctrl + Alt + F2 〜 F6 を使います。 NetworkManager デフォルトで NetworkManager サービスが起動するため /etc/sysconfig/network-scripts/ifcf
iOS5から Storyboards が導入され、それと同時にStaticCellsが登場しました。「試しに」StaticCellsを利用することはありましたが、分からない事も多く、本気で使うのはためらっていました。この記事ではStaticCellsを本気で使うために必要なものなどを紹介したいと思います。 What's StaticCells ? 多くの方はiOSの開発を始めたばかりの頃に「InterfaceBuilder上で全てのセルの設定を行いたいのに、セルはコードからしか作れない!」と思われたことがあるでしょう。StoryboardsのStaticCellsが、この願望への答えになります。次に挙げるような特性を持ちます。 StaticCellsを使うメリット IB上でほぼ全てのセル設定を行うことができる 書くコードの量は少なくなる(ことが多い) StaticCellsでできないこと/
書評のはずが、なぜか物欲吐露と化したブログ。 親ページは http://serio.silk.to/ (どちらもリンクフリー) サーバのHDDがいっぱいなので、HDDの入れ替えを行うことにした。 LVMのHDD交換になるのだけれど、色々ハマったのでメモ。 買ってきたのはWestern DigitalのWD30EZRS。 【Ubuntu 10.04と3TB-HDD】 ・64bit版の場合、OSとしては対応している。32bitは調べてない。 ・ただし、パーティションテーブルは旧来のMBRではなく、GPT使用する必要がある。 ・fdiskはGPTが扱えない。結果として2.2TBぐらいまでしか確保されなかった ・gpartedならGPTで確保できるが、なんとLVMが設定できない! ・コマンドラインのpartedならLVMが設定できる 素直にpartedを使えばいいのだけれど、 シリンダの設定とかG
partedコマンドでパーティッションを作成してLVMを構築した時の備忘録です。 ■説明 昨今では、3TBのHDDが出てきており簡単に手に入る時代になってきました。 ただ、従来のMBR(fdiskで作成するパーティッション)では2TBHDDまでしか認識できないという仕様がありましたが、GPTを用いれば2TB以上8ZBの容量が扱えるようになります。 そのGPTを使用できるのが、「parted」コマンドです。 ここでは、「parted」コマンドを使用してパーティッションを作成しLVMを構築する簡単な手順を書いておきます。 ■使用OS CentOS 5.6 64bit ■追加ディスク /dev/sdb 8GB /dev/sdc 8GB この追加ディスクをLVMの対象とします。 # 3TBのディスク2つは用意できなかった・・・orz ■作成するLVM Group名 VolGroup01 ■作成する
ブートパラメータとして「initrd=」を与えると、 ブートローダがイメージをメモリ上に読み込んでカーネルに渡す。 するとカーネルはそのイメージがファイルシステムなのか、 cpio アーカイブなのか調べる。 もしファイルの magic number が cpio であれば、 ramfs としてマウントする。 そして /init が実行可能ならば、 initramfs として扱い、 /init を起動する。 以上の条件が一つでも成立しない場合、 すなわち cpio アーカイブでない場合や、 /init が実行できない (/init が存在しない) 場合は、 initrd 扱いになるので注意が必要である。 すなわち RAM ディスクとしてマウントしようとするので、 カーネルに RAM ディスクドライバが組み込まれていなかったり、 「root=/dev/ram0」カーネルパラメータを指定していな
※Flash PICを動かしているスクリプトのバグや当サイトの内容を利用したことが原因で発生した、金銭上の損害や逸失利益及び、第三者からのいかなる請求についても、一切その責任を負いませんのであらかじめご了承ください。 このページの内容は必要な時に随時変更が加えられております。変更部分は【補足】となっています。 <img src="http://www.h5.dion.ne.jp/~f-kazan/shoho/img/pic.jpg" alt="各種PIC" align="right" Hspace=20" Vspace="20" > PICを使って何かを作る・・・。漠然としていて初心者の方にはいきなり高いハードルが立ちはだかっているように思えます。インターネットを利用すればマイクロチップテクノロジー社からはPICの開発ツールであるMPLAB IDEが無料でダウンロードできたり、PICプロ
ATF(ARM Trusted Firmware)は、ARMv8では重要なソフトウェア。 全体を利用するのではなく、その一部を利用可能。 この資料では、BL31(EL3 Runtime Firmware)を単体で使う場合、どうすればいいのかを、Xilinx社のZynq UltraScale+ MPSoCを例に説明しています。 ATF (ARM Trusted Firmware) is an important software in ARMv8. Instead of using the whole, part of it is available. This document explains how to do when using BL31 (EL3 Runtime Firmware) alone, for example, with Xilinx's Zynq UltraScale
PICシミュレーター Flash PICの世界へようこそ。 Flash PICとは、仮想のPICデバイス(FPIC16F999という型番です。以下CPUと書きます)を搭載したトレーニングボードをFlashプレーヤーを使ってインターネットのブラウザ上で実現しようというものです。(FlashタイプのPICのことではありません) プログラムを入れてRUNボタンを押すとそのプログラムに沿ってトレーニングボードに載っている部品がコントロールできます。 プログラムの入力は実際のPICに使用する命令と同じものをソースウインドウにキーボードで入力します。そして��Build�<{タンを押すと、アセンブルされて基板上のCPUへ転送されます。 トレーニングボードは3種類準備しました。ツールボックスの��ボードの変更ボタン�≠�押して選んでください 詳しい使い方やプログラムを記序する場合のルール、基板
フラッシュメモリデバイスなディスクに Linux をインストールしたい ⇒ 書き換え限度回数が心配だよ ⇒ CDROM bootable な OS にすればいいよ ⇒ システムの変更やアップデートのときが面倒だよ ⇒ read only filesystem の上にかぶせることができる UnionFS を使えばいいよ ⇒ UnionFS より aufs のほうがおすすめだよ ということで,CentOS 5.2 に aufs をいれてみました。ちなみに「やってみた」レベルのお話です。 aufs とは aufs とは,スタッカブルな「単一化」ファイルシステムです。まぁーつまり,単一ファイルツリーに複数の「ブランチ」を透過的に重ね合わせることができます。 KNOPPIX 5.1 以降で使われています。 ビルドする 残念ながら RPM パッケージは用意されてないので,CVS で最新版をダウンロード
ディスクレス (diskless) サーバを多数運用しようとしたときネックとなるのが、 NAS (Network Attached Storage) サーバの性能。 多数のディスクレスサーバを賄え、かつ高信頼な NAS サーバとなると、 どうしても高価なものになりがちであり、 NAS サーバ本体の価格もさることながら、 ディスクが壊れたときの交換体制などの保守運用費用も高くつく。 それでも、多数のハードディスク内蔵サーバ (つまり一般的なサーバ) を 運用して各サーバのディスクを日々交換し続ける (運用台数が多くなると、 毎週のようにどこかのディスクが壊れると言っても過言ではない) よりは、 ディスクを一ヶ所の NAS にまとめたほうがまだ安い、 というわけで NAS/SAN へのシフトは今後も進むだろう。 そもそも CPU やメモリなどとハードディスクとでは、 故障率のケタが違うのだから
export LIFE=HAPPY! Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. Linuxをインストールしたルートファイルシステムをリードオンリーでマウントし一切ファイルに変更を加えず、しかも再起動すれば変更した設定をクリアできる。。そんな環境を作ることになりました。条件として、ファイルに変更をしなくても通常のサーバと同様に設定変更できるようにする必要がある為、aufsを使いルートファイルシステムをマウントすることによって実現させてみたいと思います。 なお、ここではルートファイルシステムをNFSで提供する環境を
2016年2月20日(金)のZynq Ultrasclae+ MPSoC 勉強会で使った資料です。 追記) 2016.05.08 公式ARM Trusted Firmwareのサイトに、Zynq UltraScale+ MPSoCの実装が追加されていていることを明記した This is the material I used at Zynq Ultrasclae + MPSoC SIG on 20th February (Friday). Addendum) 2016.05.08 We stated that the implementation of Zynq UltraScale + MPSoC was added to the official ARM Trusted Firmware site.
Full Developer API The Instapaper API allows third-party applications to add URLs to Instapaper. If you only need to add URLs from your application to an Instapaper customer's account, consider using the Simple API. Use of the API constitutes agreement to the API Terms of Use. Please read it, really. It's short and contains important implementation rules. If you find a bug, or a minor change in th
SBMというものがはやっているらしい。delicuousにアカウント取ったらOAuthでないとポストできない様子。面倒なのではてブにする。WebService::Hatena::Bookmark::Lite モジュールを使えばすぐに出来る。 WebService::Hatena::Bookmark::Liteをインストールしておく # cpan -i WebService::Hatena::Bookmark::Lite あとは、本家に載っているサンプルスクリプトを踏襲。これで、標準入力からURLを受けてポスト出来る。addメソッドは成功すれば文字列が帰ってくるけど、失敗するとundefが帰ってくる。 $ perl hatenabookmark.pl http://search.cpan.org/~masartz/WebService-Hatena-Bookmark-Lite-0.03/li
hatena, perl | 02:11 | | とりあえず動く程度の能力。 #!/usr/bin/perl use utf8; use strict; use warnings; use CGI qw/-utf8 :standard/; use WWW::Instapaper::Client; # はてなブックマーク Web Hook から URL を取得する my $req = CGI->new(); if ($req->param('key') ne 'hogefuga') { # API Key が一致しなかった場合エラー終了 die "Authentication failed"; } my $url = $req->param('url'); my $title = $req->param('title'); my $comment = $req->param('comment
今回はOAuthのお話です。 なんとなく、世の中に出回っているライブラリを使わず、OAuthの機能を独自で1から作りこむ人もけっこういるような気がします。 今回はPHPのOAuthライブラリを用いて、HMAC-SHA1のSignatureを作成するときのロジックを見てみます。 仕様 : OAuth Core 1.0 Revision A ■ 前提条件 今回は2legged OAuth Request(3leggedでも一緒) GETでhttp://r-weblife.sakura.ne.jp/SignedRequest/example.phpにアクセス 下記のようなパラメータを付加する $params = array( "opensocial_app_url" => 'http://r-weblife.sakura.ne.jp/SignedRequest/SignedRequest.xml
日本最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. Apache HTTP ServerのBufferedLogsディレクティブは、マニュアルでexperimentalとされていたので今まで試していませんでした。BufferedLogsディレクティブを有効にすると、リクエストごとにログを出力せずに、いったんバッファに蓄えてまとめて出力するようになります。 マニュアルにはBufferedLogsディレクティブによってディスクアクセスが効率的になると書かれていますが、これが効いてくるのはむしろパイプ経由のログ出力です。ログがパイプに出力されて、パイプの反対側のプログラムが実行可能になる頻度が下がるからです。このところCP
Python中心に、日々発生する疑問点や解決策を記録していきます。 内容が間違っていたらゴメンね。 ( このブログは目次を用意しています。記事をお探しの際は、ご利用ください。 ) 今回、virtualenv について簡単に触れてみようと思います。 virtualenv については、既にサイトやブログで紹介しているところが多い。私も幾つかの記事を読んでみたが、「どうもイマイチわからない」 という状態だった。 しかし実際に使ってみると、かなり便利だということがわかってきた。このため、『メモ書き+α』 レベルで virtualenv について書いてみる。 virtualenv の機能 virtualenv は Python の仮想環境を提供する。こう書くと、 「あれ、Python の環境自体が仮想ではないの?」 と思う人がいるかもしれない。実は私もそう思いました・・・。 もう少し付け足して書くと
These are the boot options that are useful when starting Anaconda. For more information on using Anaconda options, refer to "Appendix A. Boot Options" in the Fedora Installation Guide. Anaconda bootup is handled by dracut, so most of the kernel arguments handled by dracut are also valid. See dracut.kernel(7) for details on those options. Throughout this guide, installer-specific options are prefix
Re: 停止中のvm(kvm)のネットワーク設定を書き換える習作 id:lamanotramaがこんなエントリを書いていたので、勉強がてらpythonで書きなおしてみました。 virt-cloneした後のネットワーク設定をスクリプト一発でなんとかするヤツ。 試した環境はCentOS5.6です。 libvirtとlibguestfs使ってるので入ってない時はインストール sudo yum --enablerepo=epel install libvirt-python python-libguestfs lxml使ってるので入ってない時はインストール sudo yum install python-lxml やってることは domain(vm)が停止してるか確認 ((動いてるVMを直接libguestfsでいじると起動しなくなるみたいなので注意)) domainのxml定義からイメージファイ
5月14 シンプルなソースコードからdebパッケージを作成する方法 カテゴリ:Ubuntu 12.04OpenGL これまでシンプルなソースコードは、端末で個別にコンパイルしていましたが、それだと通常のパッケージと同じような管理ができません。そこで、Ubuntuの場合、これをdebパッケージにしておけば、APTの管理下に置くことで、ソフトウェアセンターでのインストールや削除が可能になります。 今回は、ずっと以前に作ったOpenGLのサンプルプログラム(C言語で書かれた単体のソースコード)を使ってdebパッケージを作成してみました。 なお、32bit版のUbuntu 12.04(Precise)のみに対応しています。 自作のパッケージをインストールした後に、ソフトウェア・センターでパッケージ情報を表示させたところ。 今回作成したプログラムの実行場面。 ちなみに、debパッケージ化に伴って準備
« 最近の GNU CoreUtils を使っている限り rm -rf / は --no-preserve-root 付けないと / は消せない | Main | Learn Vim Progressively » 昨日は rm を読みました。今日は、ずいぶん前に「GNU textutilsに入ってるsort(1)にはコア数によって動的にスレッドを生成してソートする処理が入ってるのでそういうの興味ある人はコード読むといいと思います。」と言ってた部分を読もうと思います。 ソースは昨日と同様に CoreUtils の src/sort.c です。 ソートのメイン処理は main の一番下の方にあって if (mergeonly) { struct sortfile *sortfiles = xcalloc (nfiles, sizeof *sortfiles); size_t i; for (
cles::blog 平常心是道 blogs: cles::blog NP_cles() « cles::blog 7周年 :: セキュリティ担当者のための脆弱性対応ガイド » 2011/02/28 bash の $(( )) と expr はどこが違う? sh 83 2へぇ bashでちょっとした数値の演算をするときは $(( )) か、 expr を使うのが定石と思うのですが、今日までこの2つに挙動の違いがあるということを知りませんでした。 前者は0で始まる数値を受け取ると、8進数リテラルと解釈してしまうようで、値が基数よりも大きいという「value too great for base」というエラーを吐きますが、後者にはこのような機能がないようで、0から始まる数値であっても10進数で解釈されています。もしやと思って実験してみましたが、16進数もいけるようです。例えばこんな感じ。 $
qemu-nbdはqemuで用いられる特殊なVMディスク(qcow2フォーマット,例えば差分形式であったり暗号化されていたりする)をループバックマウントするためのツールです.KVMの場合kvm-70から同梱されています. qemu-nbdはNBDサーバとして振る舞い,その特殊なVMディスクを単純なブロックデバイスとしてnbd-clientに見せます.nbd-clientはそのブロックデバイスをブロックデバイスファイル(ex. /dev/nbd0)と結びつけます. あとは,/dev/nbd0をマウントするだけですが,そのまま単純にマウントできるわけではありません./dev/nbd0はディスクそのものなのでパーティションを指定しなければマウントできません.(/dev/nbd0p1でアクセスする方法がある?)またVMディスクでLVMを使っている場合も追加の処理が必要です(エントリ末の参考ページ参
Webアプリケーションのパフォーマンスをトラッキングするために、app serverの処理にかかった時間を記録したい。 方法を、以下のように分類できる。 1. reverse proxy側で、proxy先のapp serverがレスポンスを返してくるのにかかった時間をログに記録する場合 1.1 nginx 1.2 apache 2. app serverでリクエスト処理にかかった時間を出して、ログに記録する場合 2.1 reverse proxyで記録する場合 2.2 app serverでログに記録する場合 1と2とでは出てくる数字が違うだろうけど、本件に必要なのはパフォーマンス改善を示す一貫した指標なので、どっちでもいいと思う。 1. reverse proxy側で取る場合 1.1 nginx log_formatディレクティブに$upstream_response_timeという変数
みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、本稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、
単体テストというのは、本来、あるコンポーネントの依存先に影響されないように、対象をテストします。が、これまでは比較的てきとーで、依存先のテストが通っていれば、依存先を完全に分離せずにやってきました。 これには2つ問題があって、(1) そもそもそれは単体テストではない、(2) 依存先が外部だったらどうするんだ、と。例えば、Twitter からタイムラインをとってくる、とかですね。 def get_user_timeline(user) """タイムラインをとってきて、辞書で返す""" twitter = Twitter() response = twitter.get_timeline(user.id, user.access_token) timeline = [{'text': tweet.text} for tweet in response['tweets']] return tim
最近、Mockライブラリ http://www.voidspace.org.uk/python/mock/ を使ってみたのでメモ。 このライブラリは、その性質上、動的にメソッドや属性を作成するケースが多く、普通のPythonライブラリのようにイントロスペクションに頼って使い方を調べるのは難しい。本気で使うならまじめにドキュメントを読み込む必要がある。 関数の置き換え テスト中に呼び出される関数をMockで置き換える例。ここでは、関数 myapp.utils.func1() を置き換える。 from mock import Mock import myapp.utils # myapp.utils.func1 を、常に100を返す関数に置き換える myapp.utils.func1 = Mock(return_value=100) 戻り値が定数でない場合は、Mock()にside_effec
はじめに nose の基本的な使い方その2です。 setup/teardown の動作についてです。 役割 テストを行う上で、あらかじめデータを用意しておく必要あったり、 テスト後に作成したデータを削除するときに利用します。 詳しくは、他のブログなどをみましょう。 書き方 nose では、パッケージレベル、モジュールレベル、関数レベルで定義することができます。 パッケージレベルでは、 __init__.py に setup/teardown を定義します。 モジュールレベルでは、テスト用モジュールに setup/teardown を定義します。 関数レベルでは、 nose.tools.with_setup に関数ごとに呼び出したい、setup/teardown をデコレータに渡します。 呼び出し順 テストパッケージ内に上の3つのレベルで、 setup/teardown が定義されていると呼
SSHの認証方式を、パスワード認証を禁止して公開鍵認証にすれば、SSHのポートからクラックされるリスクはかなり減る。しかし、外部からポートスキャンをされるたびにCPU負荷がかかるとのことなので、攻撃の対象になりやすいSSHはポート番号を変更しておくのが定番のようだ。 今日は以下のことを試してみる。サーバーはさくらインターネットのVPS(CentOS)。 デフォルトのSSHポート(22番)へのアクセス状況を調べる SSHのポート番号を変更する 1. デフォルトのSSHポート(22番)へのアクセス状況を調べる Linuxのセキュリティ関連のログは、/var/log/secureに記録される。lessコマンドでファイルを開いてみる。ちなみに、lessコマンドを終了するには「q」をタイプする。「/キーワード」をタイプすればファイル内の文字列検索もできる。 $ sudo -i # rootになる #
Python のテストツールに pytest があります。ここ最近、徐々にテストを書くのに慣れてきて、さらにテスト設計や知見を高めようという思いが強くなってきました。 pytest は、wikipedia:設定より規約 を設計原則とするツールです。Python は明示する文化なのでやや違和感を感じる人もいるかもしれません。さらに xUnit スタイルではない funcarg という関数の引数をフックしてリソースインジェクションを行う仕組みを提供するなど、私にとっては新たな概念を学ぶのにおもしろそうな題材に見えました。 Holger Krekel 氏と出会い 先日 PyCon US 2012 に参加して、pytest の作者 Holger Krekel 氏と出会い、話すことができました。 最初に会ったのはカンファレンスが始まる前日のチュートリアルデーで、手持ち無沙汰な様子に見えたので、ランダ
はじめに こんにちは、Python界の情弱です。最近は色々とPythonの開発環境も変化してきていて、ようやくPython2.xとPython3.xを行き来しながら開発する体制が整ってきたという印象を受けています。ここしばらくは色々と試していたのですが、ようやく鉄板っぽい方法にたどり着いたのでメモしておきます。 なお、後半はPythonに限らない内容なので、他のLLを使っていても使えそうかなと思っています。この環境を設定すると何ができるのかというと、以下のことすべてが、無料で、自鯖を立てることなく行えます。 開発環境の整理(virtualenv) ローカルでの複数環境のテスト容易化(tox+pytest) CIによるテスト(Travis-CI) ドキュメントの自動ビルドおよびドキュメントの公開(ReadTheDocs) 概要 とりあえず全体像を先に共有しておきます。ちょっとでかいですがご了
1. リストを操作する関数で重要なのはどれ? リスト内包表記は慣れたら使いやすい Python のリスト内包表記に出会って 4 ヶ月が経った。 「Python のリスト内包表記」を読みなおしてみると、 … 同じく数値のリストから、特定の条件に合う要素を抽出する。 print [x for x in [1,2,3,4,5] if x > 3] これまた読みにくい。 (@_@;) と書いていたけれど、今では「シンプルで読みやすく、また書きやすい」と思える。慣れとは恐ろしい。 ^^; (リスト内包表記がネストしてたりすると、すぐに理解出来ないけれど。) Ruby の Enumerable モジュールにはたくさんのメソッドが定義されている Java しか知らなかった頃、Ruby の 配列に定義されているメソッドを見て、「便利なメソッドがたくさんあるなぁ」と思った。Ruby の配列は、Enumera
↓に便乗してPython版も書いてみました。 Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 Ruby基礎文法最速マスター - Route 477 PHP基礎文法最速マスター - Shin x blog ほとんど上記の記事と同じような内容で書いたのでPython入門記事としては色々抜けていたりしますがご了承ください。 Pythonは現在3.x系がリリースされていますが本記事では基本的にPython2.6について書きます。 参考文献: 初めてのPython (asin:4873113938) Python Documentation Index http://www.python.org/doc/ Python 和訳Document http://docs.python.jp/2/ 0. 対話環境として使う 対話環境 pythonはそのまま実行すると対話環
Python は簡単に習得でき、それでいて強力な言語の一つです。 Python は高レベルなデータ構造を効率的に実装していて、オブジェクト指向プログラミングに対しても、単純ながら効果的なアプローチをとっています。洗練された文法とデータ型を動的に決定する機能、そしてインタプリタであるという特徴から、 Python はほとんどのプラットフォームの幅広い対象領域において、スクリプティングや迅速なアプリケーション開発のための理想的な言語になっています。 Pythonインタプリタ自体と膨大な標準ライブラリは、ソースコード形式や、主要なプラットフォーム向けのバイナリ形式で、Python Web サイト http://www.python.org/ から無料で入手でき、かつ無料で再配布できます。また、Python Webサイトでは、無料で手に入るたくさんのサードパーティ製 Python モジュールから、
© Copyright Doug Hellmann. | | Last updated on Feb 17, 2013. | Created using Sphinx. | Design based on "Leaves" by SmallPark
pythonのモックとしてminimockというライブラリがある。 日本語のドキュメント・ブログが見当たらないので使い方をここに書いておく。 minimockを構成するモジュール mock関数 -- モックを当てる。 restore関数 -- 当てたモックを解除する。 Mockクラス -- mockより詳細にモックを当てるために使うオブジェクト。 mock関数とrestore関数でモックを当てる・解除するというのはわかりやすい。 しかし、複雑なケースではMockオブジェクトを使う必要があるのでここで説明する。 あと、minimockを使う上ではまりやすい点を書く。 基本的な使い方 minimockの基本は モックに差し替えるモジュールをインポートする。 mock関数を呼ぶ。或いはMockインスタンスを代入する。 使い終わったらrestoreで戻す。 である。 例えば、以下のphilosop
Does a wandering wolf dreams of a wondering, sometimes programming sheep? 前回投下したエントリを受けて、今回はPythonでテスト駆動開発(TDD)をやっていこうと思います。 タイトルをご覧になっていただければ分かりますが、今回作りたいのはFizzBuzzプログラムです。 「FizzBuzzって何?」と思われた方は、以前上げたエントリを読んでいただけるといいかもしれません。 ところで、テスト駆動開発をするに辺り、オススメの教科書をご紹介しておきます。 テスト駆動開発入門 著者:ケント ベック 販売元:ピアソンエデュケーション (2003-09) 販売元:Amazon.co.jp クチコミを見る 実は、まだ私はこれを読んでいませんw ですが、TDDに精通する多くの方が本書を推しており、私も今年中には読みたいと思っていま
復習がてらまとめてみた。今さら感たっぷりでたぶん100番煎じぐらいだけど。きっかけは単語単位でカーソルを移動させる(M-f,M-b)方法が知りたかっただけなんだけど。せっかくなのでどこで、どういう風にキーバインドが割り当てられているかを調べた。 versionはdebian4のbash 3.1.17。 readlineとbind(組み込みコマンド) man bashのreadlineとbindの項目参照。readlineはシェルの入力を処理するライブラリ。bashは組み込みのコマンドでreadlineの割り当て設定確認/設定変更が出来る。 端末ラインのキーバインド さて、さっそくbashのキーバインド…の前に、シェルとは別の端末のキーバインドもまとめておく。bashとは直接関係ないけど、端末をCLIの操作をキーバインドで行うという意味では、ほぼ同じなので。 有名なのはプロセスを割り込むC-
hiro_yさんからこんな質問を受けたので @xcir VarnishからS3の認証突破する方法とかご存知ないですか…と思いまして — 山岡広幸さん (@hiro_y) 7月 2, 2012 AWSの勉強がてら作ってみました。 S3のREST-APIのAuthorizationヘッダは、日付やリソースの場所などを改行で結合して HMAC-SHA1でハッシュ化して、BASE64エンコードする必要があります。 HMAC-SHA1については、Varnish公式が公開しているvmod-digestを使うことでできるのですが 出力をBASE64にすることができないので、コードを拝借して今回のVMODを作ってみました。 ちなみに改行を扱うことについても、インラインCかVMODを使う必要があります。 使い方 import awsrest; backend default { .host = "s3.am
空前の MySQL binlog API ブームですが、みなさん libreplication の examples/basic-[12] を実行するだけで満足してしまっているようです。しかし、libreplication のおもしろいのは examples/mysql2lucene の方なんです。 3つのロギングモード普段はあまり意識しないかもしれないですが mysql の binlog には statement based, row based, mixed の3種類があります。 statement based は、実際に実行された SQL が記録されます。一部の関数でちょっと危険です。 row based では、実際に変更された行のデータが記録されます。 mixed では、危険な関数をつかった場合などには row based で記録し、そうでなければ statement based
Composer の使い方を調べたメモ。 Ryuzee.comの記事で分からなかった部分を実際に使って試してみました。 以下、内容はほぼ推測なので、間違いがあれば指摘していただけると嬉しいです。 composer.json 上記の定義で "php composer.phar install" した結果、symfony/class-loader のソースがPackagist経由で https://github.com/symfony/ClassLoader から取得され、/vendor/symfony/class-loader/Symfony/Component/ClassLoader 以下にインストールされる。 composerによって生成された /vendor/autoload.php を読み込むことでcomposerのオートローダが利用できる。 composerのオートローダではライブ
みなさんこんにちは。@ryuzeeです。 ComposerはRubyでいうところのBundlerのようなもので、アプリケーションが必要とする外部ライブラリを、そのアプリケーション固有の状態で一元的に管理してくれるツールです。 PHPではPearのようなコマンドを使ってライブラリをインストールすることが一般的ですが、アプリケーションによって必要とするバージョンが違う、といったケースでは問題が起こりやすくなります。 例えば手動でインストールをしていた場合、将来的にライブラリの配布が終わってしまったり、特定のバージョンが配布されなくなると困ってしまいます(したがって、インストールしたバージョンは構成管理の対象とするべきで、常に環境を再現可能にしなければいけません)。 Composerを使うことで、そのような問題からは簡単に解放されます。 なお、ComposerはPHP5.3.2以降で利用可能です
PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n
このURLのページは表示することが出来ませんでした。 IQサーバー
っていう話なんですが、前提として、 phpenv + php-build は他にも多くの方が語ってるので、そちらを参考に。いやむしろ僕も参考にさせていただきました、ありがとうございます、いくら安いとはいえこれで PHP 5.4 のためにVPS1台借りるとかってことがなくなってよかったです。というか @yuya_takeyama さんのおかげですありがとうございます。 php-build で PHP 5.4.0 beta1 をビルドする - Born Too Late phpenv で複数の PHP 環境を管理する - Born Too Late なんですが、えーっと、作るのはだいたいWebアプリで、cli の php が複数バージョンいれられるのは大変嬉しいけどそれだけだと PHP 5.4 なら built-in server があるからいいけど PHP 5.3 の開発とか困るねってことで
composerとはなんぞや? composerはPHPのパッケージの依存関係やバージョン管理を行う仕組みで多くのライブラリがPackagistを通して利用可能です。 詳しいcomposerの記事は以下を参照していただくとして... PHPの外部ライブラリの管理にComposerを使う | Ryuzee.com Composerの使い方を調べたメモ(1) - k-holyのPHPとか諸々メモ Composerの使い方を調べたメモ(2) GitHubのリポジトリをPackagistに登録してcomposerでインストール - k-holyのPHPとか諸々メモ composerのautoloadを利用する composerはパッケージ管理なので、別に公開することが前提ではありません。プライベートなプロジェクトでも普通に使うことができます。 composerを使えば、PSR-0に準拠した名前空間
2012-07-11 PHP5.4+フレームワーク BEAR.Sundayを理解するためにRay.Diを触ってみるの巻 其の壱 ラベル: BEAR, PHP, PHP5.4, Ray ツイート こんばんは。そろそろ健康診断なのでダイエットしようかと思ってる@madapajaです。 特にSymfony界隈などで話題になっている、PHP5.4+向けに開発が行われているリソース指向フレームワークBEAR.Sundayは皆さんチェックされてますか? このフレームワークはPHP5.2+向けのリソース指向フレームワークBEAR.Saturdayの新バージョンにあたるもので、設計の全てを見直して@koriym氏によって開発が進められています。 リソース指向や、開発思想などについてはとってもここでは書き切れないので BEAR Blogなどをチェックしていただければと。 さて、そんなBEAR.Sundayで
3つのツールをためす helloworld.c はこちら。 #include <stdio.h> int main( ) { printf("Hello World!\n"); }llvmアセンブリを生成! $ llvm-gcc -S -emit-llvm helloworld.c helloworld.s ができてた。 ; ModuleID = 'helloworld.c' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin11.4" @.str
総合的なスピードを見ると、リストアでXtraBackupがかなりの差をつけました。 Mydumperはスレッド数4で試しましたが、CPUコア数の多いサーバでスレッド数を上げたらもっとよい結果になりそうです。 以下、テストデータの準備とそれぞれツールのインストール方法を記述しています。 参考になれば幸いです。 使用したサーバ サーバ さくらのクラウド プラン7-HC CPU仮想5コア メモリ12GB HDD250GB OS CentOS 5.7 64bit MySQL 5.5のインストール remiレポジトリから検証用のMySQLをyumからインストールします。 # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # yum --enablerepo=remi install mysql.x86_64
必要なパッケージ(yumで依存関係を追ってインストールされる奴は除く) ・MySQL-server(CentOSのリポジトリ使うなら、mysql-server) ・MySQL-devel(CentOSのリポジトリ使うなら、mysql-devel) ・MySQL-shred(CentOSのリポジトリ使うなら、mysql-libs) ・bzr ・make ・gcc MySQL-serverが入ってない状態だと、 コンパイルは出来たけど実行しようとするとSegmentation Faultした。 ソースの入手&コンパイル $ bzr branch lp:~percona-dev/perconatools/tpcc-mysql カレントディレクトリのにtpcc-mysqlディレクトリを持ってきてくれる。 $ cd tpcc-mysql/src $ make パッケージが全部揃っていればmake一発
※2014年8月2日、表を縦に修正。 ※2011年11月6日、続き。 ※2011年6月14日、ちょっとだけ修正。 copybenchはUNIX系OS用のファイルコピー速度ベンチマークツールのようなもの(read・write・mmapなどのシステムコールの速度を計れる)。ついでにcpコマンドとsnowcpの速度も調べて、ベンチマークツールと実用ツールの速度差を比較してみた。 測定はC言語: UNIX最速ファイルコピーを参考にして、以下のように行った。 ddコマンドでHDD1にテストファイルを作成。 それらのテストファイルを、各ツールでHDD1からHDD2にコピー(計3回ずつ)し、最も良い結果を計測。 一回コピーする毎に sync を5回以上実行した上で sudo sysctl -w vm.drop_caches=1 を実行してページキャッシュを破棄。 HDDのファイルシステムはext4。 c
Jeremy founded Tag1 Consulting in 2007. He has been a contributing core Drupal developer since 2002, and helped establish Drupal as a successful CMS through the early popularity of his personal blog, KernelTrap.org. Over the years, he authored and maintained the core statistics module and throttle module, as well as the pager logic and the initial Drupal 5 installer. He continues to contribute to
ふとしたきっかけで、UNIX上における「最速cp」をやってみようと思い、いくつかの方法を実装してみた。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> mmap -> memcpy -> munmap mmap -> mmap -> memcpy -> munmap with madvise mmap -> write mmap -> write with madvise ソース ソース 環境 Linux ubuntu 2.6.12-10-686 #1 Sat Mar 11 16:22:51 UTC 2006 i686 GNU/Linux glibc 2.3.5-1ubuntu
「Software Foundations(和訳: ソフトウェアの基礎)」はBenjamin Pierce氏らによって書かれたドキュメントであり、Coqによりプログラミングやプログラミング言語の理論が解説されています。基本的な部分から丁寧に解説されているため、Coqの入門書としてもプログラミング言語理論の入門書としても、非常に優れた内容となっています。 今回は、その「ソフトウェアの基礎」のePub版を公開しました。 対応したリーダを用いることで、iPhoneやiPad、Androidで本ドキュメントを読むことができます。 ダウンロード http://proofcafe.org/sf-beta/ からダウンロードできます。 またmobi版もありますが、Kindleを持ってないので、動作確認はしていません。 バグ報告 http://github.com/sfja/sfja へのissues登録
muninはサーバのさまざまな情報をグラフ化して表示するソフトです。 つい”ムーニン”と言ってしまいますが、”ムニン”がいいようです。 サーバ監視ツールということですが、例えて言うなら、自動車のメーター類のような働きをします。Ganglia、CactiやCloudForecastが同分類のソフトになります。 具体的にどのような場面で重宝するかと言いますと、サーバを増やす際のスペックを検討するときも、失敗する可能性が減らせます。 メモリをいくら搭載するものを用意すればいいのか、CPUはもう少し安いものでも問題無いのかなど、見積もることが簡単になります。 例)メモリを48GB搭載したサーバの利用状況 また以前は、何か障害が起きたときに、人間が手動でデータをかき集めてくるということをよくやっていましたが、Muninを入れてからはその手間は減り、より詳しい情報を参照して原因の特定・対策を講じること
前回の設定ではPATH_INFOが取得できず、404になってしまっていたので、修正を行いました。 その他、DOCUMENT_ROOTの値も変だったりしたので色々と見直しをしています。 正規表現を使って、「hoge.php/fuga」の様なURLが呼び出されたとき、スラッシュの前と後とを切り分けて、SCRIPT_NAMEと、PATH_INFOそれぞれの値に割り当てています。 location ~ \.php($|/) { set $script $uri; set $path_info ""; if ($uri ~ "^(.+\.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php; fast
munin いじってると、たまに動かなくなったり、プラグイン追加したかったのに、なんかできなかったり、いろいろ予想外の事態にはまることがあったりします... まあ、munin とっても便利なんですが... で、いろいろ調べてみると munin-node-configure なんてものあったんですね。 これが、かなり便利そうなツールなのでメモ。 まずは、--suggest プラグインが動かない、どのプラグインが使えるのかわからない、とか言った時は、これを実行すれば解決するかも。 手動ですでにプラグインをロードさせた状態 (/etc/munin/plugins に symlink がある状態) だとだめなので、一度消しましょう。 # munin-node-configure -suggest Plugin | Used | Suggestions ------ | ---- | -----
モニタリングツールMuninのプラグインの作り方を簡単に紹介します。ざっくり紹介しているので、説明を省いているところもあります。というのも、次の話の準備のための説明だからです。 Muninはネットワークのモニタリングに用いられることが多く、監視対象の各ホストに情報収集デーモン(munin-node)を配置し、そのデーモンがネットワークの情報などを収集します。監視ホストは定期的に情報収集デーモンにアクセスし、監視対象のホストの情報をグラフにします。グラフはHTMLで出力されます。PHPなどを導入しなくてもよいため、導入が楽ですし、リソース消費も少ないです。 監視対象ホスト上でどの情報を収集するかはインストール後に追加・削除できます。情報を収集する部分がプラグイン化されているためです。情報収集デーモンmunin-nodeにプラグインをインストールすればそのプラグインが収集する情報がモニタリング
munin-node-configureコマンドで便利な使い方 結構/usr/share/munin/plugins/*の中のプラグインで使えるやつって意外と少ないですよね。 例えばapache関連だとserver_statusが有効になってなかったりとか 私も昔よく引っかかってました。 いろいろいじってそのプラグインが使えるかどうかを シェルやperlで実行してちゃんと出力があるか確認して/etc/munin/pluginsに置いて グラフが生成されるか確認という手間のかかることをしていました それをmunin-node-configureがすべて解決してくれます。 /usr/share/munin/plugins/*にあるスクリプトが動くかどうか確認する方法は以下の通りにやってください # munin-node-configure -suggest Plugin | Used | Su
2012年6月のエントリの続きです。前回は同期レプリケーションによるネットワーク遅延のある環境において、MySQLの性能がどの程度低下するのかということを確認しました。その中でも特にsync_binlogが1に設定されている場合、性能が大きく低下するということが分かりました。参考としてAmazon RDSのマルチAZデプロイメントにおいては、性能と信頼性のトレードオフを考慮した結果、sync_binlogがデフォルトで0に設定されているということを調査しました。 タイトルでネタバレしていますが、MySQLの次期バージョン、MySQL 5.6でこのsync_binlog=1の性能が大きく改善します。前回と同じ負荷テストをMySQL 5.5.25からMySQL 5.6.6-labsに差し替えて行った結果を、以下に示します。 前回のMySQL 5.5.25と異なり、sync_binlog=1にお
さよならぐーぐるせんせい! 同じことを何度もぐーぐる先生に質問しないための備忘録wiki トップページページ一覧メンバー編集 Windows7/資格認証情報を削除する 最終更新: toro_note 2010年05月26日(水) 16:19:06履歴 Tweet WindowsでActiveDirectory情報を入力しようとした際にユーザ名をうっかり間違ったりして、しかも「資格情報を記憶する」とかにチェックが入っていたりすると、次回入力時に「パスワードを入力してください」としか出ずにユーザ名を修正させてもらえない。 そういう時は黙ってレジストリ漁るかフリーソフトに頼るか諦めるかしか手がなく、二言目には「{僕|私}はPCの操作は得意じゃないんですぅ、よくわかんなぁい」としか言えないユーザにとても優しいと言えなかったわけだが、Windows7 から便利なんだかセキュリティ的にどうなんだか紙一
はじめに こんにちは、グリーでエンジニアをやっている梶原と申します。 今日は、以前PHPについて気になって調べたことについて、紹介したいと思います。 敬遠されがちなPHPですが、中身を知ると自然と愛着が湧いてきます。 empty()について empty()と言えば、PHPが誇る7不思議関数のひとつです。 http://www.php.net/manual/ja/types.comparisons.php こちらにある通り、どうしてtrueになるのかfalseになるのか不明な点が多い関数です。 empty()が呼ばれる箇所を見てみたいと思います。 php-5.3.2/Zend/zend_vm_execute.h 22701 static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_A
3つのツールをためすhelloworld.c はこちら。 #include <stdio.h> int main( ) { printf("Hello World!\n"); }llvmアセンブリを生成! $ llvm-gcc -S -emit-llvm helloworld.c helloworld.s ができてた。 ; ModuleID = 'helloworld.c' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin11.4" @.str
Python なサービス みんな大好き Dropbox のスケールとかメモ。以下のページ辺りからピックアップ。Parted? みたいなので、続編がでたら追記するかも。 Scaling lessons learned at Dropbox, part 1 (comment) Dropbox - Startup Lessons Learned (slideshare) Dropbox -Yコンビネーターが生んだスタートアップの軌跡と未来 - スケール関係ないですが、2006 年当時はオンラインストレージサービスがいっぱいあったようで、VC から資金調達したときのやり取りがおもしろい VC "クラウドストレージサービスなんて腐るほどある" Drew "なにか使ってるのありますか?" VC "NO" Drew "..." 完璧で、スケーラブルで、クロスプラットフォームなクラウドストレージ!当時、プ
Using this tool --------------- This page lets you create HTML by entering text in a simple format that's easy to read and write. - Type Markdown text in the left window - See the HTML in the right Markdown is a lightweight markup language based on the formatting conventions that people naturally use in email. As [John Gruber] writes on the [Markdown site] [1]: > The overriding design goal for Mar
システム起動時に、以下のようなメッセージが表示されて起動しない場合がある。これは、ファイルシステムチェックで何らかの問題が発見されたことを意味する。ここでは、この現象が発生した場合の復旧方法について紹介する。 Checking filesystems /12: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) *** An error occurred during the file system check. *** Dropping you to a shell; the system will reboot *** when you leave the shell. Give root password for maintenance (or type Control-D to
TDD及びペアプロを通じてプログラミングスキルを上げるべく、ネットで公開されている『お題』について色々情報収集してみました。 お題やテーマについては、見つけ次第随時追加していきます。 Stackユーティリティ from 『車窓からのTDD』 - 車窓からのTDD こちらについては自分でも試しに写経してみました。以下エントリ。 『車窓からのTDD』を写経してみた ( JDK7 / Eclipse4.2 / Quick JUnit / Mercurial / Bitbucket ) - Shinya’s Daily Report FizzBuzz問題 from TDDBC TDDBC お題 うるう年問題 from TDDBC TDDBC お題 LRU Cache from TDDBC TDDBC お題 ワードフィルタ from TDDBC TDDBC お題 以上、ここまでの4つのお題は和田卓人
はじめに 第一回カーネル/VM探検隊@関西、第二回日本Vyattaユーザ会ミーティングで行った発表のダイジェスト版です。 詳しく知りたい人はこちらの内容ではなく、第二回日本Vyattaユーザ会ミーティングの動画、資料をみる事をお勧めします。 あと、最新って書いてあるけど割と古い話題です。すんません。 発表資料 従来型のNICとネットワークスタックの組み合わせでは、マルチコア環境においても1つのNICの受信処理は1つのCPUでしか行えません。 これは、NIC上に受信のキューと受信を通知する割り込みが1つしか存在せず、ハードウェアからデバイスドライバまでのレイヤーでは受信処理を並列に行う事が本質的に出来ない事が原因でした。 これが原因で、通信量が多い時にパケット処理の負荷が特定のCPUへ偏ってしまい、CPU数を増やしても性能がスケールしないという問題が発生します。 この問題を解決する為に、1つ
Linux 3.5 has been released on 21 Jul 2012. Summary: This release includes support for metadata checksums in ext4, userspace probes for performance profiling with tools like Systemtap or perf, a sandboxing mechanism that allows to filters syscalls, a new network queue management algorithm designed to fight bufferbloat, support for checkpointing and restoring TCP connections, support for TCP Early
On 05/19/2010 01:49 AM, Huang, Zhiteng wrote: Hi gurus on the list,I'm trying to bring up a Linux with virtio vhost backend. My system is running on kernel 2.6.34-rc7, libvirt 0.8.0. Two questions regarding to vhost: 1) XML format for vhost I didn't find any documents on libvirt.org description the XML or QMU argument format for vhost. If you're using virtio networking, and vhost-net support is av
1. 関数の中の関数 Python では、関数の中に、関数を定義することができる。 例えば、ITmedia エンタープライズ:2.4への機能強化で広がるPythonの世界 (3/4) には、以下のような例が書かれている。 def declareArgs(*argTypes): def checkArguments(func): assert func.func_code.co_argcount == len(argTypes) def wrapper(*args, **kwargs): ... ネストした関数を呼び出すには、関数の呼び出しで、順に引数を与えれば良い。 7.5 関数定義 に、呼び出し方の例が書かれている。 func = f1(arg)(f2(func)) 2. 関数のネストと、スコープ E. 用語集 によると、 ネストされたスコープ (nested scope) ある文が何ら
KVMのインストール 基本的にはKVM Installation - Community Ubuntu Documentationに従って実行しました。 $ sudo apt-get install kvm libvirt-bin python-vm-builder qemu bridge-utils $ sudo adduser $USER libvirtd ゲストOS環境作成 以下のページを参考にしました。 KVM Create Guests - Community Ubuntu Documentation Installing KVM Guests With virt-install On Ubuntu 8.10 Server | HowtoForge - Linux Howtos and Tutorials うまく行かなかった手順 $ sudo aptitude install p
シンボリック・リンクを含む全てのファイルを%installまででインストールして、 %filesに加えるべきである。 これは特に重要です。よく、%post で、シンボリック・リンクをはって、 %preun でそのリンクを削除するようなSPECファイルがあります。 これを行うと、アップデート時に問題が生じることがあります。以前、 libcのパッケージでこういう記述が入ってるものがあって、 深刻な問題が生じたこともありました。 その理由は、rpm -U <new-rpm> としたときに、 rpm -e <old-rpm> rpm -i <new-rpm> ではなく、 rpm -i <new-rpm> rpm -e <old-rpm> とはたらくためです。 つまり、%post で、シンボリック・リンクをはって、 %preun でそれを削除するような rpm のバージョンアップをしようと、 rpm
第15回 信頼性のある通信を実現するTCPプロトコル(2):基礎から学ぶWindowsネットワーク(3/3 ページ) さてそれでは、実際のTCP接続の詳細について見てみよう。TCP接続の概要についてはすでに前回述べているので繰り返さないが、簡単に復習しておくと、「データを送信したら、それに対する応答(ACK)を必ず確認する」ということである。一見複雑そうに見えるTCP通信の内容も、この原則さえ分かっていれば容易に理解できる。そしてこの原則は、コネクションのオープンやクローズ時にも徹底されているのが分かるだろう。 TCP接続のオープン UDPによる通信と違って、TCPでは実際の通信に先立って、いろいろな準備が必要である。この準備のことをオープンといい、逆に通信が終了するための処理のことをクローズという。 TCPによる通信ではシーケンス番号に基づいた送受信確認が大事な役割を担っているが、オープ
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Apacheの高速化の手法というのは、多くのサイトで紹介されています。そのうちの一つとして、.htaccessを無効にするという話がありますが、実はこれは場合によっては非常にパフォーマンスが向上します。それが一体どの程度なのかという実験を簡単にしてみました。 まずはApacheの設定 実験で使用するprefork版の設定ファイルはこのようにしています。プロセスの生成破棄が生じないような設定をしているので、パフォーマンス計測等、色々な実験に汎用的に使えておすすめです。 ServerTokens Prod ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 100 KeepAlive On
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
何やら mattn さんがプラグインを書いたみたい。 Big Sky :: vimrcのどこが重いのかを調べられるプラグイン書いた。 どうやらvimrcの各行にreltimeで時間差を取るコードを埋め込んで実行することで計測している模様。 ところでVimには+profileって機能がある。これを使うとVim scriptの各行が何回実行されてどれくらい時間がかかったのか調べられる。+profileはHuge版Vimでのみ使える。 早速やってみる vimrc を計測したいのならコマンドラインから以下のようにする。 $ vim --cmd "profile start profile.txt" --cmd "profile file $HOME/.vimrc" +q && vim profile.txtprofile.txt に結果を吐き出すように設定してプロファイリングを開始し、.vimrc
流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 - Perlプログラミングの基礎から応用まで Route 477(2010-01-25) PHP基礎文法最速マスター - Shin x blog Python基礎文法最速マスター - LazyLife@Diary VBA基礎文法最速マスター - いろいろ解析日記 Java基礎文法最速マスター - いろいろ解析日記 Bash基礎文法最速マスター - いろいろ解析日記 Haskell基礎文法最速マスター - think and error Brainf*ck基礎文法最速マスター - このブログは証明できない。 VBScript 基礎文法最速マスター - CX's VBScript Diary - VBScript グループ JavaScript基礎文法最速マス
調べたので以下、メモ。 runVimTestsはテストを実行するためのフレームワーク runVimTests単体でもテストは実行できるけど、CppUnitのようなユニットテストライブラリにある CPPUNIT_ASSERT()のような評価用マクロ(というか関数)をrunVimTests自身は持っていない。 runVimTestsはこれらの機能のためにVimTAPを利用している。 VimTAPはユニットテストのための関数群 テストを実行するには テストを実行するためのシェル(バッチ)スクリプトが用意されている。 *NIX向けにshスクリプト、 Windows向けにバッチファイルが用意されているので、環境問わず利用することができる。 (とはいってもWindows環境でしか試してないけど) runVimTests [オプション] <テスト対象><テスト対象>にはディレクトリ,テスト対象.vimフ
これApigee | Google Cloud Blogを勝手訳してみる。InfoQの紹介記事Web API Design - 開発者が愛するインターフェイスを作るで十分かも知れませんが、まあ。 導入 これを読んでいるということは、開発者に愛されるようなWeb API をデザインすることを気にかけているのでしょう。そして、実証済のデザインの原則とベストプラクティスとをWeb APIに適用することに関心があるのでしょう。 私たちがデザインを考えるのためのソースのひとつに、RESTがあります。なぜなら、RESTは厳格な標準ではなくアキーテクチュア・スタイルであり、かなりの柔軟さを認めているからです。構造が柔軟かつ自由であるからこそ、デザインのベスト・プラクティスを貪欲に追い求めるのです。 このe-bookはデザインのプラクティスを集めたものです。収録したプラクティスは、私たちがいくつかの世界中
久々にハマった・・・ ただ単にfuseのインストールを忘れて作業してただけなんですが(´・ω・`) # yum install fuse fuse-libs パッケージは以下から http://download.gluster.org/pub/gluster/glusterfs/ パッケージバージョンは最新版を確認して読み替えが必要。 ■RHEL yum install -y \ http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.0/RHEL/glusterfs-3.3.0-1.el6.x86_64.rpm \ http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.0/RHEL/glusterfs-fuse-3.3.0-1.el6.x86_64.rpm \ htt
さて、 前回は、iPXEを利用してサーバの機種情報等から動的にパラメータを生成してLinuxを起動する方法を簡単に紹介しました。 今回は、syslinuxのmenu.c32を利用した起動メニューの利用と機種情報によって動的にメニュー設定を変更する方法を紹介していきたいと思います。 (タイトルはそれらしいのにかえてみました(^^;;) 起動メニューを利用するには DSASでは、PXELINUX+menu.c32を利用して起動時に使用するカーネルやイメージを選択できるようにしており、OSの起動中や起動後に使用する変数などをカーネルパラメータに記述したりしています。 状況によっては、起動時にパラメータを追加したり変更して起動したいケースがあるのですが、前回も書いたように、iPXEに用意されているメニューコマンドを使って作成したメニューでは、起動時にメニューを手動で変更することは現時点では難しいよ
7月28日〜29日に埼玉県内某所にてBHyVeハッカソンが開催されました。BHyVeとはFreeBSD向けの全く新しい仮想マシンモニタです。 BHyVeについて簡単に紹介しておきましょう。2006年にXen 3.0がVT-xを使って完全仮想化を実現し、その後にLinux KVMが続きました。これらの仮想マシンモニタの設計上の大きな相違点は、ハイパーバイザーとして必要となるスケジューラなどの機能を新たに実装したか、 それともホストOSにある機能をうまく再利用したか、という点が第一に挙げられるでしょう。 もうすこし細かく解説しておくと、Xenの場合は何もなくてもXen自体が複数のOSを実行できます(管理のためにdomain-0が必要なのはここでは考慮しません)。それに対してLinux KVMはユーザプロセスのひとつという位置づけで仮想マシンを実行するためのカーネルモジュールで、それ自体はスケジ
読書感想文は大嫌いだった@HIROCASTERでございませう。 代表的な夏休みの宿題として読書感想文がありますが、最近は読書感想文を宿題として出すことによって無理矢理読書を促すことによって、読書離れを助長するという考えもあるようです。 読書感想文のコピペサイトもあるようです。 個人的には読書感想文が大嫌いというか、課題図書にされている本に全く興味が無かったため、興味の無い本を読まなければならないことが苦痛でしかありませんでした。 おかげで文芸図書は一切読まない大人になってしまいました。 コンピュータやプログラミングに興味があった僕が学生時代に、こんな本を夏休みに読んでいたら、もうちょっと人生変わったんじゃないかなと思うような書籍を集めてみました。 全体的にソフトウェアに関する歴史や思想や文化が垣間見れるものをあつめ、無料で閲覧できる書籍をピックアップしてみたので、お金のない学生の皆さまも、
もともと、Appleが主にDashboardウィジェットの描画のためにWebKitに導入したCanvas API。サンプルコードと見比べながら、効率良く学習しよう Canvas APIの基礎 本連載では、Webブラウザ上で利用できるグラフィック技術を分かりやすく紹介しています。今回はHTML5のcanvas要素で使える2次元描画コンテキスト、俗にいう「Canvas API」を取り上げます。 Canvas APIは、もともとAppleが主にDashboardウィジェットの描画のためにWebKitに導入したものです。それがFirefoxやOpera、Internet Explorer(9以降)に実装され、現在はW3Cによって標準化が進められています。JavaScriptのメソッドで直接図形を描画するのが特徴で、ビットマップ画像の加工や、ゲームのようなインタラクティブ性の高いアプリケーションに向
MacでTeXをやろうと思ったときに、いろいろと手間取ってしまったのでメモを残しておきます。 TeXまわりはごちゃごちゃしていて分かりづらいのですが、homebrewerのための2012年2月時点のお勧めの構成は以下です。 MacTex 2011 (の中のTeX Live 2011) MacTexはTeX LiveというTeXまわりのアレコレをまとめたものに、MacのGUIアプリ等をバンドルしたもの。 日本語まわりが充実してきているので、あえて国内で有名なあのパッケージやあのパッケージを使わなくても大抵は事足りる 世界的にはこちらが定番 GUIアプリを個別にインストール(MacTeXにバンドルされるGUIアプリは使わない) GUIアプリの中には使わないものがあったりする 例:文献管理は付属のBibDeskじゃなくてMendeleyを使いたい、とか MacTeXに付属するTeXShopのバー
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s
a side-by-side reference sheet sheet one: version | grammar and execution | variables and expressions | arithmetic and logic | strings | regexes | dates and time | arrays | dictionaries | functions | execution control | exceptions | threads sheet two: streams | asynchronous events | files | file formats | directories | processes and environment | option parsing | libraries and namespaces | objects
MySQLを運用していて特定の時間帯だけ更新クエリが増えているのを見つけたときにバイナリログを探ったりすることはまぁまぁあると思います。最近はmysqlbinlogとperlのワンライナーをつかって調べています mysqlbinlogをつかって特定の時間帯のログを調べるのは $ mysqlbinlog --start-datetime="2012-07-31 09:41:00" --stop-datetime="2012-07-31 09:45:00" mysql-bin.941 こんな感じですね。ちなみにMySQL 4.0.x のmysqlbinlogにはstart-datetime、stop-datetimeのオプションがないので新しいバージョンが入っているサーバに転送するなりして実行しています。 この出力は #120731 09:41:48 server id 9316 end_lo
以前(2010年)に「アプリケーションがマルチスレッドでもマルチコアCPUを活かせない件」というエントリにてCPUのコアが増えても割り込み処理が分散されないのでスケールされないと書いたけど、その後Linux KernelにRPS/RFSなる機能が追加され、割り込み処理が分散できるようになり、CentOS 6.2 でも使えるらしいので試してみました。 RPS/RFSについての紹介は VIOPS06で「RPS・RFS等最新Linux Kernel事例」と題してお話してきました http://d.hatena.ne.jp/syuu1228/20110722/1311322653 Linux内核 RPS/RFS功能详细测试分析 http://www.igigo.net/archives/204 が詳しい。2番目のはほぼ読めないけど、性能比較のグラフが分かりやすい。 今回試したサーバは、 OS: C
githubのNeoBundleのtest/vimrcにこんな記述があった。 NeoBundle 'Shougo/vimproc', { \ 'build' : { \ 'windows' : 'echo "Sorry, cannot update vimproc binary file in Windows."', \ 'cygwin' : 'make -f make_cygwin.mak', \ 'mac' : 'make -f make_mac.mak', \ 'unix' : 'make -f make_unix.mak', \ }, \ } vimprocを自動でビルド出来るっぽい。 すごすぎるNeoBundle
1. 引数の前につけるアスタリスク Python で可変引数を利用するには、引数の前にアスタリスクを書く。 最初に可変引数を見たのは、ITmedia エンタープライズ:2.4への機能強化で広がるPythonの世界 (3/4) の「リスト3 関数の引数の型をチェックするデコレータの例」。 def wrapper(*args, **kwargs): 関数の引数に前に、アスタリスクが1つの引数と2つの引数が書かれている。 リストと辞書 アスタリスク1つは、4.7.3. 任意引数リスト によると、 … 関数が任意の個数の引数で呼び出せるよう指定する方法があります。これらの引数はタプル (タプルとシーケンス を参照) に格納されます。可変個の引数の前に、ゼロ個かそれ以上の引数があっても構いません。… アスタリスク2つは、4.7.4. 引数リストのアンパック によると、 同じやりかたで、 ** オペレ
時代が MRTG から RRDtool へ移行していっているようなので便乗して(嘘) 例によって、snmp を使わずに(いい加減に使おうぜ…)、RRDtool でサーバのリソース統計情報を管理してみます。 MRTG と比較しても「高速」「グラフが自由」というのがカナリ大きいです。設定は「かなり面倒」という記述は多いけど、覚えてしまえば HotSaNIC などの FE を使わずとも自由にグラフ作れます。というか、MRTG 同様、なんでもグラフ化できます^-^ でもって、ログに記録している値に対して、再計算を行ってプロットとかもできるし、負の数も扱えるのがナイスです。 また、MRTG が(設定によって変更はできるが)「5分に1回、そのときの値を記録」だったのに対し、rrdtool は「5分に1回、その間(5min)の15秒毎の値を記録」なんてことも可能です。(言い換えれば、5分に1度の実行で、
RRDtoolを使う 久保田 拓朗 takuo@bonz.squares.net 1.1版 2005.02.26 目次 1. RRDtoolについて 2. RRDtoolのコマンドの使い方 3. パイプモード 4. Perlから利用する 5. チューニングについて 6. その他 7. 最後に 2. RRDtoolのコマンドの使い方 3. パイプモード 4. Perlから利用する 5. チューニングについて 6. その他 7. 最後に 1. RRDtoolについて RRDtoolとは • 各種時系列のデータを格納し描画します。 • データはRound Robin Databaseに格納します。 • 作者はMRTGの作者でもある Tobi Oetikerさんです。 • ライセンスはGPL(GNU General Public License)です。 本家 http://people.ee.e
一年くらい前から git を使い始め、ここ半年くらいは毎日の開発に git を使っています。昨日 git stash という機能を使っている時に失敗してしまい、何人かの方にアドバイスいただくことによって無事回復することが出来たので、感謝の印として、そして運悪く同じ問題に遭遇してしまった人たち(私もまたやるかも)へのメモとして記しておきます。 御託はいいから、早く回復法を知りたい人のためのまとめ $ git fsck | awk '/dangling commit/ {print $3}' 候補の sha1 がいくつか出てくる(長く開発していると、結構多く候補が出てきます) $ git show --summary 候補のsha1 一つ一つの sha1 の内容を確認 $ git cherry-pick -n -m1 見つけたsha1 いきさつ 私の作業のやりかたでは、 タスク毎にブランチを切
Git Advent Calendar / Jun. 最終日(30日目)の記事です.29日目は「いざという時のためのgit reflog」でした. Git Advent Calendar最後なので,git操作でやりがちなミスからどう回復するかをまとめます.他にもあればコメントもらえるとマージしていきます. ブランチを切り忘れてmasterでコミットしてしまった その時点でブランチを切る&reset --hardで間違ったコミットたちをmasterから消す $ git checkout -b new-branch # masterの最新コミットを消す $ git checkout master && git reset --hard HEAD~
もし図の表示がおかしかったら、このページの SVGでないバージョンを試して下さい。 SVG の画像処理を中止しています。 (SVG の画像処理を再開) このページのオリジナルは、Mark Lodato さんが執筆した A Visual Git Referenceです。 このページでは、よく使われる git のコマンドを簡潔に図を用いて説明します。 git について少し知識があるなら、このページはその知識を整理するのに役立つかもしれません。このページがどのようにして作られたのか興味があるなら、私のGitHub リポジトリを見て下さい。(日本語訳の GitHub リポジトリ) 内容 基本的な使い方 凡例 コマンドの詳細 Diff Commit Checkout 分離HEADでの commit Reset Merge Cherry Pick Rebase 技術メモ 基本的な使い方 上記4つのコマ
git-fsck(1) コマンドはリポジトリに対してたくさんの自己一貫性チェックを 実行し、あらゆる問題を報告します。この作業にはいくらかの時間が かかります。最も多い警告は "dangling" オブジェクトに関するものです: $ git fsck dangling commit 7281251ddd2a61e38657c827739c57015671a6b3 dangling commit 2706a059f258c6b245f298dc4ff2ccd30ec21a63 dangling commit 13472b7c4b80851a1bc551779171dcb03655e9b5 dangling blob 218761f9d90712d37a9c5e36f406f92202db07eb dangling commit bf093535a34a4d35731aa2bd90fe6b17
2010年1月の記事SystemTapでMySQLのDisk I/Oを分析するの続きです。以前作成したSystemTapスクリプトは、実はMySQL 5.5のDisk I/Oを分析することができませんでした。というのも、MySQL 5.5からInnoDBが非同期I/Oを行うようになったのですが、以前のスクリプトは非同期I/Oに対応していなかったためです。本日はMySQL 5.5におけるInnoDBの非同期I/Oについて、確認していきたいと思います。 非同期I/Oとは 非同期I/Oとは、I/O処理をブロックされることなしに行う方式のことです。通常のI/O処理はそれが完了するまで待たされてしまうのですが、非同期I/Oを用いることでI/O処理の完了を待つことなしに他の処理を進めることができます。以下のウェブサイトでとても詳しく解説されています。 バッファキャッシュとAIO(1) - O'Reil
Nodeunit Simple syntax, powerful tools. Nodeunit provides easy async unit testing for node.js and the browser. DEPRECATED PROJECT The project is very stale. We've kept it working on new versions of node, and sometimes merged small PRs that help teams relying on nodeunit. Nodeunit was the arguably first testing framework developed for node. It was very useful at the time, but there's an overwhelmin
Not supported Sorry, to keep it simple and prevent exceptions, this demonstration uses the vendor-specific window.webkitNotifications, which of all the Webkit-browsers is currently only supported by Google Chrome. For information on the use of window.mozNotifications, check Mozilla's wiki. It's very similar to Webkit's implementation, but lacks HTML notifications. Blocked Sorry, you've blocked not
How to add Notification Center support to your website or app Originally introduced last year in iOS 5, Notification Center is one of the more useful new features in OS X Mountain Lion. What’s really nice is that the ability to show notification banners isn’t limited to native applications; both Safari and Chrome allow websites to show alerts in Notification Center as well. This is a quick and str
SSL アクセラレータの価格に胃を痛めている貴兄、それが買えず SSL のためだけにサーバの台数をニョキニョキ増やしている貴兄、そうでなくとも SSL のパフォーマンスでお嘆きの貴兄のために、いろいろまとめてみましたよ。 SSLセッションキャッシュのタイムアウト設定を長くしよう SSL の負荷のほとんどはセッションの生成によるものなので、当然のようにサーバ側の SSL セッションキャッシュを有効にしておられると思いますが、そのタイムアウトの設定がデフォルトのままという方が多いのではないでしょうか。 たとえばApacheでしたら、設定サンプルのまま SSLSessionCache shm:/usr/local/apache/logs/ssl_gcache_data(512000) SSLSessionCacheTimeout 300 としている方が多いのではないでしょうか。 各サーバのデフォ
基本的すぎることしかやってないのであまり参考にはなりません。 ただ触ってみたよレベルです。それよりはなぜ LXC を検討しているのかなどの目的を書き出し中です。 なんで LXC ? Xen 大好きですが、Solaris コンテナを使ってた身としてはコンテナ系を使わないわけにはいきません。 コンテナ系はオーバヘッドがほとんど無いので負荷試験とかに便利です。あと clone が出来る。 ただネットワーク周りが面倒なイメージはあったりします。あとセキュリティが怪しいらしいですね LXC 。 基本的には社内で動かすビルドやテストサーバ向けに使おうと考えています。 それも常時起動している系での使用を考え中。 いったんビルド環境をぽこぽこ増やしたいなと思ったときに既存環境を clone してさくっと建てられるっぽいので。 なんで Ubuntu ? RHEL に LXC が入ったのは 6.3 からです。
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日のエントリに続いて、そのまま勢いでcgroupsを使ってデバイスI/Oを制御するツールをPerlで書いてみました。 プロセス単位でCPUコアを割り当てたりもできるけど、そんなニーズあるのかなぁと思ったのでそっちはとりあえずPending。このシリーズで後やるとしたら、プロセス単位でトラフィックの制御とメモリぐらいを考えていますが、cgroupやCFSをもう少し勉強すると、もっとやりたいことが出てくるかもしれません。 昨日公開したCPU制御のレポジトリ名をresources-managed-toolsにリネームして、そこにツールをどんどん入れていくことにしました。引数で色々やれるツールでも良いのですが、この手のツールはツール自体が別の方が運
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 LinuxのCFSのBandwidth Controlを使って簡単にプロセス単位でのCPU消費量を制御できるツールをPerlで書いてみました。Linux Kernel 3.4.7で動作確認済みです。kernelのコンパイルオプションで「CONFIG_CFS_BANDWIDTH」を有効にしましょう。 CFSのBandwidth ControlはLinux3.2からの新しい機能のようです。本エントリではその詳しい話は割愛して、作ったツールの使い方を見て行きましょう。例の如くGithubにソースをあげています。 run-cpu-rate – コマンド実行時からCPU消費量を任意の値で制御しながら実行 run-cpu-rateコマンドは、実行時から任
[CEDEC 2012]「ドラゴンクエストX」における開発進捗管理法とは? セッション「大規模開発のプロジェクト管理 〜ドラゴンクエストXにおけるマネージメント事例〜」レポート ライター:大陸新秩序 2012年8月20日から22日にかけて,神奈川県内のパシフィコ横浜にてCEDEC 2012が開催されている。本稿では,開催初日に行われたセッションから「大規模開発のプロジェクト管理 〜ドラゴンクエストXにおけるマネージメント事例〜」の模様をレポートしよう。 「ドラゴンクエストX 目覚めし五つの種族 オンライン」公式サイト スクウェア・エニックス 開発部 ドラゴンクエストX デザインセクションマネージャー 荒木竜馬氏 本セッションの講師を務めたのは,スクウェア・エニックス 開発部 ドラゴンクエストX デザインセクションマネージャー 荒木竜馬氏だ。荒木氏は,「ドラゴンクエスト」シリーズや「FINA
2012/09/16 追記 本記事で紹介しているツール「virt-construct.py」は、本記事の公開後にもろもろアップデートしています。最新バージョンについては、こちらの記事を参照してください。 師宣わく 「環境管理の鍵は環境構築を完全に自動化されたプロセスで行うことにある。環境を新しく作るほうが古い環境を直すよりも常に安上がりであるべきなのだ。」 ---『継続的デリバリー』 Jez Humble, David Farley. すばらしい。本当にこれが実現できれば、作りに作りこんだ仮想マシンの巨大なディスクイメージファイルを後生大事に貯めこむ必要はもうなくなります。誰かが勝手に設定変更して動かなくなったサーバを前に呪いの言葉を吐き続けることもなくなります。 IaaSが普及して、OS環境は5分で用意できるようになりましたが、その上のアプケーション環境を今までどおりに手作業で構築、メン
git push/pullは何気なく使ってるけど実はよくわかってなかった。ことのきっかけはこういう質問。 hogeというリモートブランチをローカルのhogeブランチにもってきたい hogeをローカルのmasterにはマージしたくない pullでなんかこんな感じでいけそう? $ git pull origin hoge:hogeでもこれは間違えで、なぜか今いるブランチ(master)にhogeがmergeされるし、期待してる動作じゃない。正解はこう。 $ git branch hoge origin/hogeもしくはチェックアウトも同時にするなら $ git checkout -b hoge origin/hogeこう。自分は普段後者のやり方でやってたけど、なんで上のはダメで下のが正解なのか説明できなかったのでちゃんと調べてみた。 入門Gitと実用Git、あとhelpを参考にした。 ブランチ
GMOさんのところで、ioDrive+MySQLの発表をしてまいりました。 前回のFluentdから中4日で登壇という恐ロシアなスケジュールに真っ白な灰となっております。 1番手だったので基本を抑えつつ尖り気味のところまで入れてしまったせいで、40分のところを53分使い、さらに質疑応答で1時間以上になり、他の発表者や参加者にご迷惑を、そしてピザを冷えさせて申し訳ありませんでした。が、資料自体はぼちぼちな出来になったと思いますのでサクッと公開しておきます。 事前にページを削りとってしまったり、早送りで説明してしまった部分があるので補足したいところなのですが、燃え尽き症候群中なのでMySQL関連は後で少しずつ書いていけたらと思います。 戦利品 Fusion-IO社のサンタクロースと言われる例の方が、登壇者にプレゼントをしてくれました。 ゴルフシャツですが Mサイズ Woman用で、微妙に形が女
ご来店いただきますと、まず、店主が厳選いたしましたお肉のセットをお出しいたします。お肉のセットは3種類ございます。 「上等:7,000円(税込)」「飛び切り:10,000円(税込)」「別格:15,000円(税込)」よりお選びいただき、ご予約のお電話の時にお伝えください。 (※「おまかせ」の詳細はこちら)
2024.05.10 【数名限定】“継承者”を募集します。 ↑タップして詳細を見る↑ 皆さまに日本一の焼肉を、 召し上がっていただくために スタミナ苑から7つのお願い ①スタミナ苑は[予約]を一切承っておりません。 ②[人数]が揃わないとお席にご案内できません。 ③当店のお支払い方法は[現金のみ]になります。 (クレジットカードや電子マネーの利用不可) ④生で食べられるほど新鮮ですがお焼きください。 ⑤近隣のご迷惑にならぬよう[ご配慮]願います。 (大声で会話、騒音、路上駐車、ポイ捨て等) ⑥お客様や従業員以外の[写真撮影は可能]です。 ⑦当店の情報は[ホームページ]をご参照ください。 (他サイトやSNS情報には誤りがございます) 店舗情報 鹿浜 スタミナ苑 東京都足立区鹿浜3-13-4 Google map 営業日 平日: 16時〜22時 まで 土日祝祭: 15時〜22時 まで ラストオ
カテゴリー DX (2) 一般 (58) 研究会 (6) 働き方 (4) 技術 (349) Edge AI (2) Edge Computing (12) Erlang (1) FIWARE (2) Fog Computing (9) Infiniband (31) Internet of Things (32) Key Value Store (17) Linux (3) Linux KVM (10) Machine Learning (2) RealTime Web (14) Webサービス (42) インフラ (7) コンテナ (3) ストレージ (92) データセンター (7) データベース (47) データ流通 (6) テレプレゼンス (2) ネットワーク (214) 仮想化 (110) 災害コミュニケーション (26) 空間情報 (30) 量子コンピューティング (3) 教育
IPv6対応のbind9で名前解決をしよう。 Packet Filter(ip6tables) やはりフィルタは必要と思うので設定。 ルータとなるマシンでの設定(とりえあずの設定)。 # # ethx = device of subnetwork # #<<<<<<<<< FILTER >>>>>>>>>># *filter :INPUT DROP :FORWARD DROP :OUTPUT DROP # ##### INPUT ############## ### LOOPBACK -A INPUT -i lo -j ACCEPT -A INPUT -s ::1/128 -d ::1/128 -j ACCEPT ### SESSION CONNECTED(if support state) #-A INPUT -m state --state RELATED,ESTABLISHED -j
〜 コマンドで覚えておくと重宝しますよ〜 GUI、いやいや勇者はやっぱりコマンドライン(爆) Linux のネットワーク設定は、GUI で行うこともできます。しかし、ネットワーク設定の誤りから、X が起動不能に陥る場合があること、ネットワーク越しに設定変更が必要となるために X をあげられないこと、などから、CUI での設定方法を習得しておくことは重要です。特に、リモート操作のためだけに、X をあげるのは、非常にもったいないことですから、CUI での設定を覚えましょう。 ssh や telnet といった端末からの操作を行う場合に、CUI を使えることは、大変重要です。X をリモートから使用することも十分に可能ですが、ネットワークの帯域を非常に圧迫するため、帯域を確保できない公衆回線経由の遠隔保守を行う場合などには、非常にストレスと経費がのしかかってきます。 ネットワーク設定に使用するコマ
更新履歴 2012-08-28: URL 公開 2012-08-29: futex、hrtimer、MySQL の発生条件、NTP SLEW モードに関する @odhrfm さんからの情報、キーワード更新、その他いろいろ細かい修正 2012-08-30: 参考リンク追加 2012-09-01: LKML まとめシートの thread#50 を追加 2012-09-03: SLES カーネルの更新情報、per-cpu についての記述、blockdiag によるブロック図を追加 2012-09-11: LKML まとめシートの thread#52, #53 を追加 2012-09-12: LKML まとめシートの thread#54 〜 #58 を追加 はじめに 日本時間 2012 年 7 月 1 日 9:00 にうるう秒が挿入されましたが、その際 Linux カーネルに起因する不具合により、
カーネルスレッドにkhungtaskdというものがあるが、何者か、何ができるか少し実験。 確認環境 CentOS 5.6 実験 機能の確認 日本語での情報は見当たらず。英語だが以下のサイトを発見。 Detecting hung tasks in Linux 超訳だが、「ブロックされハングアップしたプロセスを定期巡回から発見し、プロセスのスタックダンプを取る機能」 らしい。(間違い指摘歓迎) 姿の確認 [owner@localhost ~]$ ps -ef | grep hung root 156 7 0 Jun05 ? 00:00:00 [khungtaskd] owner 17774 17750 0 21:27 pts/0 00:00:00 grep hung [owner@localhost ~]$ カーネルパラメータの確認 [root@localhost ~]# sysctl -a
HHKB Professional Type-Sが欲しいインフラ兼ソフトウェアエンジニアのbokkoです。 普段はHHKB Proの日本語配列キーボードを愛用しています。英語配列は苦手です。このことを同僚のエンジニアに言うとジト目で見つめられ・・・睨みつけられること請け合いです。 本連載の最後となる今回はpixivのデータストア/キャッシュ戦略を支える周辺ミドルウェアについて解説していきます。 memcachedからKyotoTycoonへ移行した際に発生した問題 前回の記事の最後にもあったようにpixivではAPの数だけあったmemcachedへのリクエストを少数のKyotoTycoonにまとめたことで一部のKyotoTycoonサーバへのTCPコネクション数が爆発してKyotoTycoonサーバのCPUやメモリリソースには余裕があるのにネットワークで詰まるという問題が起こりました。 元
DNSトラブルシューティング IIJ 山口崇徳 DNSの関係者(1) ユーザ レジストラ 参照サーバ ルートサーバ レジストリの 権威サーバ 権威サーバ ドメイン 所有者 委譲 委譲 DNS問い合わせ DNS問い合わせ ゾーン 設置 登録 登録 2 DNSの関係者(2) • なんかいっぱいいる… – それぞれ役割が異なる – それぞれの場所で固有のトラブルが発生しうる – どこでトラブルが起きているのか見極めるのが重要 • 自分はその中のごく一部にしか関われない – トラブルの原因は特定できても、それが自分では手の出せないところ にあることも多い • 原因となっているところが直してくれるまで、何もできずに眺めているしか できない – そんなわけで、問題の解決に至らず、原因の特定までで終わってしま うケースも多々あり • むしろその方がはるかに多いような気も… • このセッションの「DNSト
プログラムをGDB配下で実行するには、 コンパイル時にデバッグ情報を生成する必要があります。 ユーザが選択した環境で、 必要に応じて引数を指定して、 GDBを起動することができます。 ネイティブ環境でデバッグを行っているのであれば、 プログラムの入力元と出力先をリダイレクトすること、 既に実行中のプロセスをデバッグすること、 子プロセスを終了させることもできます。 デバッグのためのコンパイル プログラムを効率的にデバッグするためには、 そのプログラムのコンパイル時にデバッグ情報を生成する必要があります。 このデバッグ情報はオブジェクト・ファイルに格納されます。 この情報は、 個々の変数や関数の型、 ソース・コード内の行番号と実行形式コードのアドレスとの対応などを含みます。 デバッグ情報の生成を要求するには、 コンパイラの実行時に`-g'オプションを指定します。 多くのCコンパイラでは、 `
2010/08/25 トップページ 2010/07/29 fluxbox 2010/07/16 tips 2010/07/09 tcp パケットの再送の変更 2010/07/08 samba で共有ディレクトリを作成する 2010/06/29 未整理 2010/06/25 アプリケーションデバッグ技法 2010/06/19 iscsi イニシエータの作成 2010/06/12 WINS サーバの構築 AD サーバを構築する DHCPv6 環境を構築する 2010/06/11 LDAP 認証とアプリケーションとの関係 2010/06/09 Fedora 11 x86_64 で Quake を遊べるようにする方法 Samba の二つのドメイン 移動プロファイルとフォルダリダイレクト ARP に関する情報 2010/06/08 英語文例集 2010/06/07 メニュー WIKI構文サンプル 編
以前 (2.6.31 まで?) は以下の挙動*1。 最初のペイロードを受信するまで SYN_RECV ステート クライアントの ACK (TCP ハンドシェイクの最後のパケット) を受信していたとしても、SYN-ACK を送り続ける 190 秒たったら、サーバ側は TCP 接続確立失敗と認識 クライアントは SYN-ACK を送ってるから接続できてるつもり TCP の仕様的にどうなの、って話はわかる。ただ、IP 層はパケットロスの可能性があるわけで、インターネットを使っていて、この挙動で問題があるとしたら、それはアプリケーションのバグだと思うけど。一方で、 LAN 上でパケットロスが (ほぼ) 起こらない前提で作ってたら困ることがあるのかなー。Ubuntu の BTS で話が出てるのは、そういうケース (特定のハードウェアロードバランサと TCP_DEFER_ACCEPT を使う Apac
問題 プログラムにせよ何にせよ、 ( と )[ と ]{ と }' と '" と " 等々、対応する文字を入力することはよくあります。 入力それ自体は難しいことではありませんが、 ペアで入力しなければ意味がないため、 場合によっては入力を忘れてしまうこともあります。 特にプログラムを書いているとこの手の入力漏れで構文エラーになることは多々あります。 例えば以下のような感じです: ZapZapZap(Convert.ToInt32(e.Item.Cells[0].Text); まあ何度も ( や [ を入力していれば一個くらい対応する ] や ) を入力し損ねるのは仕方がありません。 しかし入力し損ねる度にしょうもない構文エラーでコンパイルが失敗したりテストが失敗するのは士気に響きます。 もう2012年なのですから、どうにかして対応する括弧くらい自動で入力してもらえないものでしょうか。 解答
今回はGoogle Chromeのショートカットキーの紹介です。ここでは、アドレスバーに文字列を入力するだけで「Amazon.co.jp」や「Flickr.com」のサイト内検索ができるようになる方法など、アドレスバーのショートカットキーを設定する方法も扱います。どれも便利なワザですので、ぜひマスターしてください。■Windows編 1. 「Ctrl+H」...履歴ページを開く。 2. 「Ctrl+D」...現在のウェブページをブックマークとして保存。 3. 「Ctrl+Shift+D」...開いているすべてのページを新しい1つのフォルダにブックマークとして保存する。 4. 「Ctrl+J」...ダウンロードページを開く。 5. 「Shift+Esc」...タスクマネージャを開く。 6. 「Ctrl+Shift+Del」...「閲覧履歴の消去」(履歴やキャッシュを消去できるページ)を開く。
Posted on May 8, 2011 by cotaro node.jsのユニットテスト用ツールにnodeunitがある。 処理結果の判定を行う部分にはnodeunitが使えるが、そもそも非同期処理の処理結果を適切に受けとるワークフローが不明だった。 ざっと調べたところでは、トルコのKedir Pekelさんの「Testing NodeJS Powered Web Applications」というポストが秀逸だった。 要点は以下のとおり。 ベースのワークフローとして、nodeunit付属のhttputilを使う 処理結果はhttputilのclient.fetch()のコールバックの中で判定する 複数の非同期リクエストの複合ワークフローは” async“を用いて構築する(npm install可能) 上記の記事では、httpリクエストを関数にマップする手順のほか、Webフレームワーク
node.jsでテストの書き方について共有します。 nodeunitをインストール アプリがあるフォルダで以下のコマンドを実行。 $ npm install nodeunit テストコードの作成 nodeunitでは、テスト方法として2種類用意されている。 まず基本的な記法は、以下の通りです。 exports.【テスト名1】 = function(test){ // テストプログラム1 }; exports.【テスト名2】 = function(test){ // テストプログラム2 }; もう一つの方法がテストをグループ化する方法で、以下の記法となる。 exports.【グループ名】 = function(test){ 【テスト名1】: function(test){ // テストプログラム1 test.done(); }; 【テスト名2】: function(test){ // テスト
1億総スマホが近づいたこの頃に、JavaScriptのMVCフレームワークに何を使うか? node.jsと使ってみたいウェブアプリのフレームワークの候補を14選んでみました。 MVCフレームワークといっても、純粋なMVCだけではなく、MVVM、MVC2、MVPなど広義のMVCフレームワークを含みます。成熟したフレームワーク backbone.jsのように一定の歴史のあるものや、express.jsのようにnode.jsでのデファクト・スタンダードになっているようなものを含め、今すぐプロダクション環境で使用できる成熟度があると思われるフレームワークをまとめます。 Backbone.js http://documentcloud.github.com/backbone/ 古参のフロントエンド向けMVCフレームワーク。 node.jsに限らず、Rails等のフレームワークでもフロントエンド側の
nvmでnodeを入れると同時にnpmも同じところに入る。 つまりnodeのバージョンごとに入る。 npmにはグローバルインストールとローカルインストールがある。 グローバルインストールはnode コマンドがある場所と同じ階層にnode_modulesディレクトリが作成され そこにインストールされる。(nvmがパスも通すのでコマンドから利用可能) nvmにて入ったnpmの場合は以下の場所 MyMac:~ hogehoge$ npm root -g /home/hogehoge/.nvm/v0.6.8/lib/node_modules (npm root -gでどこにインストールされるか見れる。コマンドはnpm bin -g) ローカルインストールは現在のカレントディレクトリにインストールされます。 グローバルインストールしたモジュールのアップデート MyMac:~ hogehoge$ np
Node.js 6連投. 第1弾! npm と Node.js 上で require を使ったモジュール読み込みの仕組みについてメモ <- いまここ Node.js 用に作った自作モジュール『merger』を npm で公開してみた Node.js 用の自作モジュールの作り方メモ Node.js 用に作った自作モジュールを npm に登録して公開する方法 JavaScript テストフレームワーク『Mocha』の使い方メモ JavaScript テストフレームワーク『Mocha』をブラウザ上で使う方法 Node.js で require でモジュールを読み込む際に引っかかった箇所があったのでメモしておきます. インストール済の hoge(仮)というモジュールを下記のようなコードで var hoge = require('hoge'); 読み込もうとしても Cannot find modul
このエントリは、「東京Node学園 4時限目」の資料その2です。 最初にexpressをインストールをしましょう。 $ npm install -g express Nodeの場合、必要なパッケージのインストールは npm を用いて行います。-gはグローバルオプションで、これがあるとパッケージは node コマンドがある場所と同じ階層にインストールされます。これがない場合は、現在のディレクトリに node_modules というディレクトリを作成し、その中にインストールされます。 Expressの場合、ひな形を作成する express コマンドが提供されるため、パスの通った場所にそのコマンドを配置する必要があるため、上記のように -g をつけてインストールしています。また、この際、Macでインストーラを使ってインストールした人は sudo を付ける必要があるでしょう。 それでは実際に ex
Easy to Install Simply download a CSS file and replace the one in Bootstrap. No messing around with hex values. Customizable Changes are contained in just two SASS files, enabling further customization and ensuring forward compatibility. Tuned for 5.3.2 Themes are built for the latest version of Bootstrap. Version 4, version 3, version 2, and other releases are also available to download.
作成日:2012.04.28 更新日:2014.05.14 更新履歴 (2012.4.28) 2010年10月2日の日記と2011年2月2日の日記から作成。 (2014.2.20) Fedora 20 (kernel-3.12.8) で hole punch を確認。 (2014.5.14) 2.3 SEEK_DATA & SEEK_HOLE をつけて lseek の節を追加。 はじめに UNIX には疎なファイル(sparse file)とか穴(hole)のあるファイルと呼ばれるが機構がある。 以下疎なファイルと呼ぶ。 疎なファイルは、ファイルの途中にディスクに割り付けられていない「穴」の領域があるファイルだ。 この領域は read() すると 0 で埋められているように見える。 ファイルの穴の部分に write をした場合に初めて、ディスクのブロックが割り付けられる。 疎なファイルはコ
Ubuntu Linux+Xenを試してみる過程でsparse fileの存在を知ったので、少し調べてみました。結論としては、VMwareのようにVM側で圧縮したディスクイメージを扱える場合は別として、現状のcoLinuxやXenではディスクスペースの節約手段としてsparse fileの利用が有効そうです (coLinuxの場合は「圧縮ファイル」の方が良いかも)。 Sparse fileについての情報源 UNIXの部屋 検索:穴あきファイル: sparse file全般の説明と落し穴、Perlのseek()によるsparse file作成方法 TRPG: memo - sparse file: ddコマンド、RubyのFile#trancateによるsparse fileの作成 Did you ever wonder how some files got bigger when copi
各バックアッププログラムの基本操作 バックアップを取るためのツールは多数存在します。ここではtar、dd、dumpという、タイプが異なる3つのツールを紹介します。 tar tarはアーカイブを作成するツールとして、広く普及しています。そのため、Windowsなどの異なるOSにデータを渡したい場合でも利用できます。 バックアップする場合は、どこまでをバックアップデータとするのかを考えましょう。例えば、/home/user1ディレクトリ以下のファイルをtarを利用してバックアップする場合、「user1」というディレクトリを含めるのか、そのディレクトリ内にあるファイルだけをバックアップするのかによって操作が変わります。 ●tarを利用したバックアップ user1ディレクトリ内のファイルのみをバックアップする場合は、以下のように実行します。
http://en.wikipedia.org/wiki/Sparse_file http://x68000.q-e-d.net/~68user/unix/pickup?%B7%EA%A4%A2%A4%AD%A5%D5%A5%A1%A5%A4%A5%EB 経験的に、こういうファイルが存在することは知っていたけど、file systemがサポートする一種のファイル構造だということを初めて知った。 Sparse File a sparse file is a type of computer file that attempts to use file system space more efficiently when blocks allocated to the file are mostly empty. This ファイルシステムがサポートする場合、データのない(空の)連続している領
FIB OFFLOADING NIC , {sora, macchan} @sfc.wide.ad.jp http://netfpga.org/ http://www.latticesemi.com/ 1 • PC • pps(packet per second) • • • Ethernet PCI Express • • L L L • PC • PC NIC L2/L3 ASIC FPGA • 2 PPS Frame Size 64 Frame Size 64 Frame Size 64 Frame 1518 packet per second time/packet CPU clock/pkt ※ @4GHz pps 100M 148,809 pps 6,905 ns 27,600 clock 8,127 pps Giga 1,488,095 pps 690 ns 2,760 cl
Pythonの知名度もそこそこ出てきたので、今更「Pythonには多分岐構文(switch文)が無い」とか言う人は居ないとは思うけど……居ないよね? もし、そんな人が居たのなら、教えてやろうPythonの底力(笑) とりあえず、0〜6の数値を入力してもらって、それを曜日(SUN MON TUE WED THU FRI SAT)のどれかを画面に出力する方法(出力でないと面白く無いので) >>> def weekPrint1(): ... n = input("0-6?:") ... if n == "0": print("SUN") ... elif n == "1": print("MON") ... elif n == "2": print("TUE") ... elif n == "3": print("WED") ... elif n == "4": print("THU") ...
Win32 API から印刷をするためには、プリンタデバイスコンテキスト (Printer DC) を利用します。具体的には以下のような順序で印刷します。 プリンタドライバからハンドルを取得する プリンタドライバのステータス API から印刷可能か同かを取得する プリンタデバイスコンテキストを作成する ドキュメントを開始する 必要であればフォント等を設定し、印字、改ページ処理などをする ドキュメントを終了する (この時点でプリンタスプールサービスに登録されるようです) プリンタデバイスコンテキストを開放する プリンタドライバのステータス API を監視し、印刷が正常に終了したかを取得する プリンタドライバのハンドルを解放する 太字の手順 (3 - 7) は Win32 API で共通ですが、それ以外の手順 (1, 2, 8, 9) はプリンタドライバに依存しているため、Python から制
118:ハッシュの要素を挿入した順に取り出す Ruby のハッシュの役割をする Python の型は dict(辞書) です。 Python の辞書型には順序という概念はありません。そのため挿入した順に要素を取り出すことはできません。このため、標準の辞書型とは別の、順序を保持できる辞書型として、 collections.OrderedDict? が用意されています。 >>> from collections import OrderedDict >>> d = OrderedDict() >>> d['a'] = 1 >>> d['b'] = 2 >>> d['c'] = 3 >>> d OrderedDict([('a', 1), ('b', 2), ('c', 3)]) >>> >>> for k in d: ... print k, ... a b c OrderedDict? の
etckeeper で多数のホストの /etc を集約・共有する etckeeper を使うと /etc の内容と変更履歴を git などのバージョン管理システム (VCS) で手軽に管理できますが、素の etckeeper には /etc の変更をローカルのリポジトリにコミットする機能しかなく、git のような分散 VCS の特徴を生かすことができません。 しかしながら etckeeper と git の組み合わせで、リモートリポジトリとブランチをうまく設定し一工夫を加えることで、多数のホストの /etc の変更をひとつのリポジトリに集約し共有することが簡単にできるようになります。 準備 まずは etckeepr を git で動かしてください。 Debian squeeze では apt-get install etckeeper とするだけで git と etckeeper がインス
-- MEMBER_SEA は MEMBER の 1:n の子テーブル delete from MEMBER_SEA where MEMBER_ID = 3 insert into MEMBER_SEA ...(MEMBER_ID は 3) ん? 最初のdeleteが互いに「0件削除」だとデッドロック。別トランザクションのMEMBER_IDが別ID(例えば4)でもデッドロック。(とにかく両方のトランザクションでdeleteが0件であれば) これは... ネクストキーロックって? MySQLのInnoDBには「ネクストキーロック」という機構があります。 詳しくは、ぐぐってくれればOKですが、ひとまず参考になるオフィシャルサイトのページを。 => ネクスト キー ロック:ファントムの問題を防ぐ 難しいこと書いてありますねぇ。 「ギャップ」って何!? ここでいうインデックスレコードって!? とに
注意 現在X(旧Twitter)でのソーシャルログインができない事象を確認しています。事前にX(旧Twitter)側で再ログインした上でconnpassのソーシャルログインを行うか、 「ユーザー名(またはメールアドレス)」と「パスワード」の組み合わせでのログインをお試しください。合わせてFAQもご確認ください。 お知らせ 2024年9月1日よりconnpassサービスサイトへのスクレイピングを禁止とし、利用規約に禁止事項として明記します。 9月1日以降のconnpassの情報取得につきましては イベントサーチAPI の利用をご検討ください。 お知らせ connpassではさらなる価値のあるデータを提供するため、イベントサーチAPIの提供方法の見直しを決定しました。2024年5月23日(木)より 「企業・法人」「コミュニティ及び個人」向けの2プランを提供開始いたします。ご利用にあたっては利用
By default RStudio Server runs on port 8787 and accepts connections from all remote clients. After installation you should therefore be able to navigate a web browser to the following address to access the server: http://<server-ip>:8787 RStudio will prompt for a username and password, and will authenticate the user by checking the server's username and password database. A couple of notes related
mirahを最初にインストールした時に、 git://github.com/headius/mirah.git の方から持ってきてて、あとから git://github.com/mirah/mirah.git の方が最新なことに気づいて、別にそのまま新たにcloneしてくればいいんですが、 originを変えれないのかな?と思ったのでメモ。 **追記** @murachue さんより教えていただきまして、 % git remote set-url origin <新しいリポジトリURL> が普通とのこと。明らかにこっちのほうが自然なかんじですね! @murachue さんありがとうございます!! 使用した感じは以下のとおりです。 regina% git remote -v origin git://github.com/headius/mirah.git (fetch) origin gi
概要 git remote add origin 〜でタイポして間違ったURLを登録してしまったり、中央リポジトリが引っ越してしまった場合に、リモートリポジトリのURLを変更する方法です。 構成 git-core @1.7.6.1_1+doc+pcre+python27 git-flow @0.4.1_0 URLの変更方法 $ git remote set-url <リポジトリの名前> <新しいリポジトリのURL> 作業ログ 変更前のリモートリポジトリの確認 リモートリポジトリのURLはgit remote -vで確認できます。 $ git remote -v origin git+ssh://repos.tetsuyai.com/var/git/buzzbuzz.git (fetch) origin git+ssh://repos.tetsuyai.com/var/git/buzzbuz
Linux で物理メモリに割り当てられた共有メモリは cahced に計上される - ablog という備忘録を先日書いたが、 Linux の共有メモリにはPOSIX共有メモリとSystem V共有メモリがあり、どちらも tmpfs を使っている。 tmpfs はページキャッシュを使うから /proc/meminfo/cached に計上され、当然 vmstat や free でも cached に計上される。 ということのようだ。 Tmpfs is a file system which keeps all files in virtual memory. Everything in tmpfs is temporary in the sense that no files will be created on your hard drive. If you unmount a tmpf
Linux の top コマンドや free コマンドで表示される cached は、勝手にどんどん増えていきます。free がなくなるとこの cached が少しずつ解放されて使われます。 cached も buffers も空きメモリの一部ですので、これらが溜まっているからといって無理やり解放させる必要は通常はありません。cached を溜めているのはパフォーマンスのためなので、解放させると通常使用時のパフォーマンスが落ちます。逆にこれを解放しておかないと、パフォーマンスの測定などで、正しい計測ができません。 kernel の 2.6.16 以降では、解放をコマンドから解放できるようになりました。root で # echo 1 > /proc/sys/vm/drop_caches のように /proc/sys/vm/drop_caches に1~3の値を書き込みます。値によって解放され
最前線UNIXのカーネル 作者: ユーレッシュヴァハリア,Uresh Vahalia,徳田英幸,戸辺義人,中村明,津田悦幸出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行本購入: 4人 クリック: 37回この商品を含むブログ (8件) を見るP.540 UNIX System V では、プロセス間通信(IPC)機構の一部として共有メモリ機構が提供されている(第6.3.4項参照)。 (中略) ただし、匿名オブジェクトは、それを構成するページに対してバッキング・ストアを提供していない。このため各ページは初回変更時に匿名ページに変更され、スワップ・デバイスにバックアップされるようになる。 Oracle8i&UNIXパフォーマンスチューニング―Oracle8i+UNIXのための最適化技法 (Database developer’s guide) 作者: アハメド
SystemTapで真犯人を捕まえろ!:Linuxトラブルシューティング探偵団 番外編(3)(1/4 ページ) NTTグループの各社で鳴らした俺たちLinuxトラブルシューティング探偵団は、各社で培ったOSS関連技術を手に、NTT OSSセンタに集められた。普段は基本的にNTTグループのみを相手に活動しているが、それだけで終わる俺たちじゃあない。 ソースコードさえあればどんなトラブルでも解決する命知らず、不可能を可能にし、多くのバグを粉砕する、俺たちLinuxトラブルシューティング探偵団! 助けを借りたいときは、いつでもいってくれ! OS:高田哲生 俺はリーダー、高田哲生。Linuxの達人。俺のようにソースコードレベルでOSを理解している人間でなければ、百戦錬磨のLinuxトラブルシューティング探偵団のリーダーは務まらん。 Web:福山義仁 俺は、福山義仁。Web技術の達人さ。Apache
Device mapper (kernel part of LVM2 volume management) Milan Brož mbroz@redhat.com Device mapper ... modular Linux 2.6 kernel driver framework for constructing new block devices and mapping them to existing block devices managed through API (IOCTL interface) libdevmapper, dmsetup command utility DM knows nothing about ● LVM (logical volumes, volume groups) ► managed by userspace tools (LVM2
Known issues : Update your config file : selector = "round-robin 0" (since 0.3.9) If you relied on the '-D' multipath command flag, please adapt (since 0.4.0). The kernel feature "queue_if_no_path" is known to have bugs (up to 2.6.10rc?-udm2). The EMC checker has a known bug, fixed in the next release (up to 0.4.1). The tools exits if /sys/fc_transport/target$h:$b:$t does not exists : not fair, fi
1. Overview The connection from the server through the HBA to the storage controller is referred as a path. When multiple paths exists to a storage device(LUN) on a storage subsystem, it is referred as multipath connectivity. It is a enterprise level storage capability. Main purpose of multipath connectivity is to provide redundant access to the storage devices, i.e to have access to the storage d
なんだろう、この「乗馬の馬から落馬する」みたいな感じは… tuneoさんの日記から。 と思っていたのですが、LVMは挟んでいなかったそうです。本当だ。LVMはXFS側にしか書いてないや。失礼しました _o_ でも、いかの議論は残しておく。 . Raid5はスループットは早いけど Latency が大きくなる。複数のHDDにデータをくれ、と言う必要があり、Parity計算をしてからでないと、データが正しいことが確認できないからだ。だから連続したストライプをガンガン持ってくるような、DBMSとか動画再生とかの場合は効率が良いけれど、NASのように「小さな単位でIOする」場合には効率が悪い。この効率の悪い分を回収するには、RAID5のコントローラーに大量のメモリキャッシュが必要になる。というか、商用の高級品RAIDってようするにメモリキャッシュの大きさと、管理効率の良さ/先読み戦略の良さと、緊急
Linuxシステムプログラミング 作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型本購入: 5人 クリック: 181回この商品を含むブログ (29件) を見る 結合 Unix/Linuxの標準コマンドで2つのファイルの共通keyで連結することができます。共通keyでの結合にはjoinコマンドを利用します。joinによりSQLのinner joinに近いことがコマンドだけで出来てしまいます。今までテキスト処理をコマンドで行う事が少なかったのでjoinの活用方法を知りませんでしたが、今回調べた内容を記録します。似たコマンドとしてpasteというものもあり、こちらは同じ行数の内容を単純に結合します。そちらについても簡単に紹介します。 join join前にsort joinコマンドを利用する場合は2つのファ
netperfで負荷かけている時にカーネルのstatistics情報取って色々とグラフ作るツールがあったらいいなぁ、と思ったので作った。 今のところperf statで取れるようなCPUのキャッシュの情報とかが取れてないが…とりあえず netperfとかやってる間にログに数値を記録 各CPUの値/合計値/CPU毎の偏り の3パターンで集計 グラフ化 まで出来る。完全自動ではなくてツールが分かれてるが。 取得先はいまのところ/proc化にある以下のファイル: /proc/interrupts /proc/stat /proc/net/netstat /proc/*/sched おまけに、netperfをnプロセス並列で立ち上げるツールもついている。 しかしながら、未だ一切のマニュアルを書いていない… C++とRubyの勉強という面もあって、コードはかなりアレ。 測れるものは増やしていけるとい
2013年8月28日 Webサイト制作 オンラインショップで最も使われている決済方法がクレジットカード決済。しかし、過去にオンラインショップを制作したことのあるWeb屋さんは、決済時の動作テスト方法にとまどった事はありませんか?動作確認に自分のクレジットカードを使っていたという人が多いかと思います。私もそうやってテストしていました…が、実は各種メジャークレジットカードではオンライン決算時用のテスト番号があるのです!便利ですよね! ↑私が10年以上利用している会計ソフト! 以下のクレジットカード番号を使えば、実際に決済が完了した時と同じ動作をします。もちろんテスト番号なので実際に入金などはありません。有効期限は現在の年月より先のものならなんでもOKです。 広く使われているこのテスト番号ですが、対応していないサービスもあります。番号自体のチェックは「【PHP】クレジットカードチェックサンプル」
Linuxでシリアルコンソールを利用するのは、モデムを利用することと似ている。実際、利用されている技術は同一のものである。違う点は、モデムを用いてリモートのシステムにダイアルする代わりに、ヌルモデムケーブルという特殊なシリアルケーブルを用いて2台のコンピュータのシリアルポートを接続するということだけだ。現在、多くのデスクトップやラップトップのマシンにはシリアルポートは付属していない。しかし、サーバ向けのシステムでは事実上すべてのコンピュータにシリアルポートが付属しているので、この手法を利用することは可能だ。 シリアルコンソールを利用する場合のしくみはこうだ。一方のシステムは、ケーブルの一端で待ち受けを行うようにセットアップする。そして、もう一方のシステムは、クライアントとしてケーブルの反対側からログインを行うために利用する。ただし、ヌルモデムケーブルは左右対称であるので、この関係を逆転させ
PRIMERGYのマニュアルにBIOSの入出力をシリアルコンソールに切り替えるための記述がありますのでそちらを参照ください.通信パラメータをLinuxのコンソール設定と合わせておくことを忘れないで下さい.また,使用する端末エミュレーションに合わせてターミナルのモードを指定してください(VT100など). PRIMERGYの機種によっては,IPMIとコンソールがCOM1を共有している場合があります.その場合は,BIOSの設定で,Share(キーシーケンスによる切り替え)かSystem(シリアルコンソール専用)を選択します.BIOSのコンソールリダイレクションはEnhancedにしない(OSが起動したらCOMポートは開放する)に設定します.Enhancedにすると grub メニューを表示することができず,grubが停止する(Linuxがブートしない)ことがあります. シリアルコンソールを11
GitHub Flow Scott Chacon on the Interwebs 31 Aug 2011 git-flowの問題点 (Issues with git-flow) 私は人々にGitを教えるためにあちこちを飛び回っているが、最近のほぼすべてのクラスやワークショップで git-flow についてどう思うかを尋ねられた。私はいつも、git-flowは素晴らしいと思うと答えている。何百万ものワークフローを持ったシステム(Git)を提供し、ドキュメントもあるし、よくテストされている。フレキシブルなワークフローは、実に容易なやり方で多くの開発者の役に立つ。標準的なものになりつつあり、開発者はプロジェクトや企業の間を移動しつつこの標準的なワークフローに馴染むことができる。 しかしながら、それ故の問題も抱えている。新しいフィーチャーブランチを master ではなく develop から開
OpenStack MLで教えてもらったのでメモ。 この手順で仮想マシン上のRHEL5にディスクをホットプラグできる。 ** RHEL6系は標準カーネルで対応しているのでこの手順は必要無し。 RHEL6系はホストマシンから host# virsh attach-disk rhel6-vm /disk-file.img vdb として仮想ディスクを追加すると、 guest# udevadm monitor KERNEL[1347495382.970520] remove /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/device:0b (acpi) KERNEL[1347495382.970594] add /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/device:22 (acpi) UDEV [13474
はじめに こんにちは、Python界の情弱です。情弱ながらPyCon JP 2012で1セッション持たせてもらえることになりました。予め資料を公開しておきますので、当日は色々と質問・意見して頂ければと思います。 各トピックは各トピックでの総論になっていますので、細かい部分は本文最後の参照にあるリンクを見るとより理解が深まります。 「なおここに書いてある内容は所属する団体とは関係のない、私個人の見解ですので、予めご了承下さい。」テンプレ終わり。 イベント PyCon JP 2012 発表日時 2012-09-16 11:00-11:45 作者 @ymotongpoo URL http://2012.pycon.jp/program/sessions.html#session-16-1100-room357-ja スライド (追記: 2012/09/16 23:50:00) 発表の24:00頃
I learned a lot. たくさんのことを学びました、がよく使われる表現です。 簡単なので覚えておくと便利です。 同時に良い経験になった、という表現も覚えておくと良いでしょう。 I had a good experience. この表現も簡単で使えます。
1. クラッシュログファイルを探す iOSアプリがデバイス上でクラッシュしたとき、デバイス上に自動でクラッシュログが生成されています。これを使えば、デバッガで接続していない状態でクラッシュした時でも、クラッシュの原因を調べることができます。 クラッシュログは、アプリがクラッシュしたデバイスを一度iTunesでMacかPCに接続して同期すると、デバイスから次の場所にコピーされます。 Macの場合: ~/Library/Logs/CrashReporter/MobileDevice Windows Vista/7の場合: C:\Users\<user_name>\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice Windows XPの場合: C:\Documents and Settings\<user_name>\A
RHEL6でのcron/anacronについて。 少々変わった部分があるので注意が必要。 Table of Contents ================= 1 RHEL5の設定ファイル 2 RHEL6の設定ファイル 3 RHEL5と6の違い 4 何が起きるか? 5 そもそもanacronとは 6 RHEL6のanacrontab 7 RHEL6のcron/anacron の関係図解 8 なんでこんな設定になっているか? 9 RHEL6 cron/anacron 注意事項まとめ 1 RHEL5の設定ファイル ^^^^^^^^^^^^^^^^^^^^^^ [root@station1 ~]# ps -ef |grep cron root 1962 1 0 19:15 ? 00:00:00 crond root 2008 1 0 19:15 ? 00:00:00 anacron -s [r
12ステップで作る組込みOS自作入門 出版社 : カットシステム (2010/05) 発行日 : 2010/05 前回の初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵は汎用OSでしたが今度は組込みOSです。参考書は『12ステップで作る組込みOS自作入門 』です。こいつぁすげえや。丁寧に仕上げられた良書でした。 「組込み」とタイトルがついているので興味を示す層が狭そうですが、プログラムを書く多くの人にとって役立つ内容だったと思います。 前回は必死にわかんないーわかんないーを連呼しつつ頭を抱えて苦行みたいな感覚でやっちゃいましたけど、今回はそんな苦労もあったからか余裕を持って楽しめました。 本書ではWindowsだけではなくLinuxでも開発できるよう解説されているのでどんな環境でも問題ありません。Linux入れるのがめんどくさかった私は例によって
環境が新しくなったので、これを機に設定ファイル類の管理を見直してみました。 調べてみると大抵は以下のように管理されているようなので、合わせてやってみます。 dotfilesをgithubで管理する(今回は.zshrcと.vimrcです) vimプラグインをvundleで管理する dotfilesをgithubで管理する 毎回設定ファイル等をコピーしたりするのが煩わしいので、githubで管理するようにします。 手順は以下の通りです。 # dotfilesディレクトリを作成 mkdir ~/dotfiles cd ~/dotfiles # dotfilesをgit管理する git init # 「.」ファイルをdotfilesに移動 mv ~/.zshrc ~/dotfiles/ mv ~/.vimrc ~/dotfiles/ mv ~/.vim ~/dotfiles/ ここまでで、dotf
休みになったらプログラムとかブログのエントリ書こうと思っていたのに、結局日中ゴロゴロしているうちに休日が終わってしまった・・・ そんな中で、一応再帰的にmakeを行うMakefileの書き方が分かったので、その書き方とメモ。 基本的には、次の形。 subdirs := ここにサブディレクトリの列挙。スペースで区切る .PHONY: all $(subdirs) all: $(subdirs) $(subdirs): $(MAKE) -C $@ ... このMakefileを各ディレクトリに配置することで、各ディレクトリを再帰的にmakeしてくれるようです。 まず、サブディレクトリを何度も書くのは面倒なので、サブディレクトリのリストをsubdirsという変数に代入しておきます。 このとき、書き方として
前回 git diff を図に書いてみたところ、自分の中で意外と整理できたので、これまたなんとなく使っていた git reset についてもまとめてみた。 とりあえず結論を先にまとめよう。 git reset とは? HEAD の位置を変更するコマンド。 オプションによってインデックス、ワーキングツリーの内容も変更できる。 git reset のオプションは? --soft、--mixed(オプションなしと同等)、--hard オプションがあり、影響度の小さい順に以下のようになる。 --soft HEAD の位置のみを変更する。インデックス、ワーキングツリーには影響なし。 --mixed (またはオプションなし) HEAD の位置とインデックスを変更する。ワーキングツリーには影響なし。 --hard HEADの位置、インデックス、ワーキングツリーをすべて変更する。 さて、git reset
git にはコミットした内容を取り消す方法がいくつかありますが、いったんリリースしたコンテンツの公開期間が終了してその内容を取り下げたいような場合は、git revert でリリース時のコミットを打ち消すコミットを作るのがお作法です。 今回まさにそういう状況になったんですが、リリース時のコミットが複数回にまたがっており、それも 先のエントリ で書いたように他の対応と入り交じってコミットされてしまっています。 こういう場合にどう revert すればいいかという話です。 revert の基本的なところ 例えば 3a0e871f というコミットを打ち消したい場合は、 git revert 3a0e871fを実行すれば、 Revert "xxx 対応" This reverts commit 3a0e871ff60411ca89fa07c7f2b4d426fa04285d.のようなメッセージがみ
環境 RHEL5 ( ntp-4.2.2p1 ) RHEL6 ( ntp-4.2.4p8 ) NTPは結構微妙な修正を入れてくるのでバージョンが異なる場合は注意が必要。 manが当該バージョンの情報源としてはまず優先。 最近の変更 RHEL6ではRHEL5で /etc/init.d/ntpd のみで行っていたことを /etc/init.d/ntpdate と /etc/init.d/ntpd に分離している。 ntpd起動前のntpdate実行について分離している。ntpdを使うのであればntpdateも同時に有効にするべき(ntpdate実行を避けたい場合以外)。 設計 何もよりも先に 『参考』にあげた富士通の『Linuxユーザーズマニュアル RHEL6編』がNTPの説明として詳しい・わかりやすい。まずはこれを読む。 NTPサーバの階層設計 NTPを使う目的は『正しい時刻の維持』と『時刻
最初のステップ¶ Django やプログラミングは初めてですか? それなら、ここから始めましょう! 何もないところから始めるなら: 概要 | インストール チュートリアルはこちら: その 1: リクエストとレスポンス | その 2: モデルと管理サイト | その 3: ビューとテンプレート | その 4: フォームと汎用ビュー | その 5: テスト | その 6: 静的ファイル | その 7: 管理サイトのカスタマイズ 高度なチュートリアル: 再利用可能なアプリケーションの書き方 | Django へのパッチを初めて書くには 助けを求める¶ 困り事ですか?手を貸しましょう! FAQ を探してみましょう。よくある質問への答えなら、ここで見つかります。 特定のトピックに関する情報を探していますか? それなら、 genindex や modindex 、そして ドキュメントの詳しい目次 を見て
Perlでコマンドラインオプションをparseしようと思うと組込みモジュールとしては Getopt::Std と Getopt::Long がある。が、long style option *1 つまり --option-name のようなオプションを解釈してくれるのは Getopt::Long だけだ。なので普通はこちらを使おう。 ただし 絶対にデフォルト、つまり以下のようにして使ってはいけない。 use Getopt::Long; my (@primary, @secondary, $silent); GetOptions( "server-primary|p=s" => \@primary, "server-secondary|s=s" => \@secondary, "silent|S" => \$silent ); これダメ! 絶対ダメ! 死ぬ! 最初に結論を書く 必ず以下のように
Today I read a post on HN called Want to learn Rails? Start Here and it seemed like a great idea so I decided to do the same for Django. This is my collection of web resources for folks who are just getting started with Django. The list contains what I believe is the absolute essential for the total n00b. I added a link to more than 170 videos on various Django topics as a bonus just to give newco
オリジナル[Varnish Configuration Language - VCL] Varnishは優れた設定システムを持っています。 多くの他のシステムでは基本的に多くの設定項目をon/offすることで実現されています。 しかしVarnishの場合はドメイン固有言語のVarnish Configuration Language(略してVCL)を持っています。 VarnishはVCL設定をリクエストを処理する際に実行されるバイナリコードに変換して利用します。 VCLは複数のサブルーチンでわかれており、それぞれ別のタイミングで実行されます。 例えばリクエストを受け取ったときに実行されるものやバックエンドサーバからフェッチした際に実行されるサブルーチンもあります。 Varnishは様々なステージでサブルーチン内のコードを実行します。 コードは一行ずつ実行され、優先順位に関係ありません。 ま
mod_deflate設定で躓く之事コンテンツをgzip圧縮するmod_deflateを設定しようと思い、色々見てみたのだが、犬の本の影響かネット上に設定がごろごろしている割には、難易度が高いことが分かり、苦戦。 mod_deflateとは 要するにYSlow絡みの転送量削減テクの一つなのだけど、HTML等のコンテンツを送信する際にWebサーバが勝手に圧縮して送り、ブラウザ側で勝手に伸長して表示するという、http1.1で追加された企画モノ。 で、とりあえず動かすだけなら簡単なのだが、画像は圧縮かからないから、省かないとCPU無駄に使うとか、IE6でFlashからXML読み込む際に圧縮が掛かってるとバグで動かなくなるとか、IE6でPDFとか落とす際にPDFに圧縮が掛かってると動かなくなるとか、IE7もどうも実装が怪しいらしいとか、その他Netscapeの昔のやつでtext/html以外を圧
まず結論から。タイトル通り mod_gzip で Vary: * が http-header として送信されると SSL 通信中の場合に限って IE(Internet Explorer) は Cache-Control とかの内容に関わらずコンテンツをキャッシュしないようです(※特に IE7 全般と IE6 特定の version が変)。本来 Vary ヘッダは proxy の挙動を決定するためのヘッダのはずなのに IE(Internet Explorer) は Vary ヘッダの内容によって挙動が変わってしまうようです。 別の言い方をすると、SSL なページでブラウザの戻るボタン押したときに「ページを表示できません」(※ie6)とか「Webページの有効期限が切れています」(※ie7)とか表示されてしまう場合は proxy を使っていて Vary: * が send されているのが原因と
すべて Microsoft 製品 Microsoft 365 Office Windows Surface Xbox セール サポート ソフトウェア Windows アプリ OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画とテレビ番組 法人向け Microsoft Azure Microsoft Dynamics 365 Microsoft 365 Microsoft Industry データ プラットフォーム Power Platform 法人向けを購入する Developer & IT .NET Visual Studio
各ブロックの役割続き 前回に続き、残りのブロックにつき見ていきます。 vcl_pipe : Varnishを通過させる際の処理 vcl_pass : Varnishでキャッシュさせない時の処理 vcl_hit : キャッシュにヒットした時の処理 vcl_miss : キャッシュにヒットしなかった時の処理 vcl_error : 各種エラーの時の処理 vcl_deliver : コンテンツを送信する際の処理 vcl_pass キャッシュを行わない通常のプロキシとして動作します。 リクエストヘッダおよびレスポンスヘッダの操作が可能です。 vcl_pipe 何らかの理由でvcl_passが上手く動作しない場合やRFC2616で定義されているMETHOD以外を取り扱う場合に利用します。 pipeを行った場合、バックエンドへの初回リクエスト時にはX-Forwarded-Forが付与されますが、パイ
クラスタシステムでの運用を行う場合は、“クラスタ導入運用ガイド”を参照し、環境変数の設定を行ってください。 環境変数LANGに、以下のSymfoware/RDBのロケール(OSのデフォルトロケール)を設定します。 ja ja_JP.PCK ja_JP.UTF-8 C OSのデフォルトロケールと異なるロケールをLANGに指定した場合、RDBコマンドはエラーになります。なお、Symfoware/RDBやRDBコマンドが出力するqdgメッセージを英語で出力するには、環境変数LANGにCを指定してください。 ロケールを指定する環境変数には、LANGのほかに、LC_ALL、LC_MESSAGES があります。これらの環境変数が複数設定されている場合、LC_ALL、LC_MESSAGES、LANGの順で有効となります。 環境変数PATHに/opt/FSUNrdb2b/binを追加します。 環境変数LD
KVMの仮想サーバーの仮想CPU設定を行ってみました。 環境 物理サーバーは8コア(4コア8スレッド)CPUを使用しました。 「guest01」という名前の仮想サーバーの仮想CPUの設定を行った例です。 仮想CPUの割当て状態の確認 現在の仮想CPU設定状態を確認してみます。 virsh vcpuinfo guest01 結果 VCPU: 0 CPU: 2 State: running CPU time: 6844.8s CPU Affinity: yyyyyyyy VCPU: 1 CPU: 4 State: running CPU time: 22192.9s CPU Affinity: yyyyyyyy上記の見方は、 仮想CPU0は物理CPU2に割当てられていて、 仮想CPU1は物理CPU4に割当てられている。 という意味です。 どの物理CPUコアに割当てられてるかは CPU Affi
デブサミ関西2012懇親会を開催するにあたって、懇親会集客・決済サイトをどこにするか検討したのでその際の検討したサイトを纏めておく。 勉強会や懇親会などで先に集金を行いたい場合の参考にしていただければ幸いです。 また、極力誤りの無いように調べたつもりではありますが、実際にすべてのサイトを使用して比較しているわけではないので、ここ間違ってるよ!などがありましたら、お教えいただけると幸いです。 なるべく早く修正します。 今回比較したサイト イベントアテンド Zusaar connpass PeaTIX everevo EventRegist Tixee Doorkeeper(2012/09/25 17:20追記) 他にもたくさん集金サイトなどがあるのは知っていますが、IT勉強会カレンダーで補足している勉強会などが告知されているサイトのみを比較しました。 また、今回確認した項目は、以下の通りです
Ogata Yasuhiko @yogata みてる: oza_x86 「仮想マシン上におけるメモリの仮想化について for x86」1/4 - YouTube - https://t.co/6JRNHweN! 2012-09-27 16:18:22
(多分)一般的なWebサーバーであるApacheは複雑な設定も可能で便利なのですが、その分重いのです。 どう重いのかというと、Apacheは一つのプロセスが一つのHTTPリクエストを同期処理で裁いてるのでその間は他の処理をしません。なので、同時アクセス数が増えるとApacheはプロセスをどんどん生成します。(あるいは後からきたリクエストを待たせる) なので、アクセス数が増えると急激にパフォーマンスが落ちるという問題を抱えてます。(ほかにもプロセスIDが足りなくなってどんなにリソースがあっても最大プロセスIDで制限されてしまう) で、最近話題のハイパフォーマンスWebサーバーがnginx(えんじんえっくす)です。 nginxは一つのプロセスで複数のリクエストを非同期で同時に処理します。なので、アクセス数が増えてもパフォーマンスが落ちにくいという特性があります。特に静的ファイルの場合は処理のほ
「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ
TWITTER ENGINEERING PRESENTS bower THE BROWSER PACKAGE MANAGER Introduction Bower is a package manager for the web. Bower lets you easily install assets such as images, CSS and JavaScript, and manages dependencies for you. For example, to install a package, run: bower install jquery This will download jQuery to ./components/jquery. That's it. The idea is that Bower does package management and pack
無料で遊べるオンラインゲームがいっぱい!電子マネー「GASH」の決済サービスはコチラ
世間的に「Gitはコミットログを書き換えられてキモい」と言われ、肩身が狭いので git-rebase の説明を書いてみた。 git help から引用 まずは基本に忠実に、ヘルプを読みましょう。 git help rebase SYNOPSIS git rebase [-i | --interactive] [options] [--onto <newbase>] <upstream> [<branch>] git rebase [-i | --interactive] [options] --onto <newbase> --root [<branch>] git rebase --continue | --skip | --abort DESCRIPTION If <branch> is specified, git rebase will perform an automatic g
Facebook は Login with Facebook という機能を提供してくれてて 手元のウェブサービスに Facebook を使ってログインすることができますね。 日本語表示だと「Facebook でログイン」というやつ。 本家から便利なツールも提供されていて かなり簡単に使えるようになってるんだけど、 最初は少し戸惑うかもしれないので使い方をまとめておきます。 やり方もできることもいっぱいあると思いますが 簡単だと思われるやり方と、最も基本的な機能を中心に。 やりたいこと ウェブサービスのページ上にこういうボタンか 専用のボタンまたはリンクが表示されていて ユーザーがこれをクリックするといったん Facebook に飛び そこで承認ボタンを押したら元のページに帰ってきて その時点でウェブサービスがユーザーの ID や名前などを取得できるというの。 以下、手順です。 Facebo
InnoDB Pluginの面白い機能の一つに、データ圧縮機能があります。今回はその仕組みと効果について見ていきたいと思います。まずはグラフをご覧ください。 これはWikipedia日本語版のデータベースをダウンロードし、記事本文の格納されているtextテーブルをMySQL 5.1+InnoDB Plugin 1.0の環境にロードしたものです。 元テキスト:今回利用したデータは2009/06/21版のものです(jawiki-20090621-pages-articles.xml.bz2)。元テキストはここからXml2sqlを用いてタブ区切りテキストを取り出したものを用いています。このファイルには1,167,411件の記事が格納されており、容量は3,436MBとなっています。 元テキスト gzip:元テキストをgzipコマンドで圧縮したものです。 MyISAM:記事をMyISAMのテーブルに
Performance Tuning Guide 1. Overview Expand section "1. Overview" Collapse section "1. Overview" 1.1. How to read this book Expand section "1.1. How to read this book" Collapse section "1.1. How to read this book" 1.1.1. Audience 1.2. Release overview Expand section "1.2. Release overview" Collapse section "1.2. Release overview" 1.2.1. New features in Red Hat Enterprise Linux 6 1.2.2. Horizontal
最もJavaScriptに近いJavaScriptコンパイラ 先日MicrosoftからTypeScriptというJavaScriptコンパイラが公開されました。ファーストインプレッションとしては今までのJavaScriptコンパイラと比べると若干敷居が低く感じます。まず驚いたのはドキュメントがWordファイルだったこと。早速ダウンロードしてみたら一部文字化けしていました。さすが。PDFも用意されていたのでかろうじてドキュメントを読めました。Webページで用意して欲しい。 JavaScriptの記法そのままに型付けができる TypeScriptでまず好印象なのがJavaScriptのコードをそのまま書いてもコンパイルされるところ。又、「Type」ScriptというだけあってさらにJavaScriptの記法に型を付けられる。例えばstringと指定すればstringのプロパティをシンタックス
Kippt is a bookmarking service founded in 2011 which has helped hundreds of thousands of people store and share knowledge, ideas and inspiration from around the web. Since 2014 we have moved work on other projects and decided to keep Kippt running for people still using it. You can read more from our blog post. As time has gone by, our energy towards maintaining Kippt has gone down and the cost of
Sublime Text 2がプログラミング人生を変えるかも知れない programming sublime editor はじめに 最近話題のエディタ,SublimeText2,ボクもかなり気に入っています. なんといってもその豊富なプラグイン(vim,emacsには劣るが),そしてそれらの導入コストの低さなどが優れてSublimeTextの優れた点ではないでしょうか. 今回はボクがSublimeを使い始めてから入れたプラグイン,設定,よく使うキーバインドなどをまとめて行こうと思います. インストール,初期設定 SublimeTextは本家のサイトからダウンロードできます. http://www.sublimetext.com/ headerのdownloadから自分の環境にあったものをダウンロードしてください. 今回,記事中ではボクの環境がmacなのでmacのキーバインド,操作方法で紹
カーネル2.6.13からファイルの状態やイベントを監視するinotifyという機能が使えるようになっています。 (カーネルの機能の一部として実装されている) 詳細は下記が参考になると思います。 inotify を使ってファイルシステムのアクティビティーを監視する @ IBM で、使ってみたら結構これが面白い。 応用すれば、あるファイルを削除されたり変更されたらアラートを発砲するとか、ディレクトリ内にどのような操作が行われたのかを見ることができます。 予断ですが、ファイル監視といえばFAM(file alteration monitor)というツールもあります。 使ったことないのですが、ファイル監視をしてくれるというものらしく、初めはファイルを監視したいという要件を満たすために、FAMを使ってみようかなと思っていたのですが、日本語の情報が乏しいのと、RedHat系OSでは提供されなくなった(
「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ
例えば,ディレクトリ /tmp/hoge に print.ps というファイルが作成されたら,それを自動的に印刷するようにしたい場合,ファイル作成イベントを監視する必要がある. inotifywait というコマンドを使えばそれが簡単にできるので,紹介する. 次のbashスクリプトは, /pstmp というディレクトリにファイルが作成されたら,そのファイルを別ユーザアカウントで kghostview で開く,というものだ*1. #!/bin/bash # required package: inotify-tools psout_dir=/pstmp m_account=aki-yam events=(-e CREATE -e MODIFY -e MOVED_TO) while inotifywait ${events[@]} $psout_dir; do psfile=$psout_di
プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで本格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや
JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ
本書について 本書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、本書のいわゆる最終版となります。 つまり本書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 本書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 本書は、Ruby、Python、PHP、Javaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ
ツイート 2024-2025シーズンのスキー場オープン情報をエリアごとに一覧で紹介しています。例年10月に人工雪でスキー場がオープンし、北海道や信州の標高の高いスキー場では11月より天然雪で滑ることができるようになります。 オープン日は最新の情報に更新していますが、積雪により変更となる可能性がございます。必ずお出かけ前に各スキー場の公式サイト等でご確認ください。
node.js v0.8.0が出た。すぐにv0.8.1になった v0.8.0の特徴 すげぇ速くなったよ より安定したよ 子プロセス起動時の引数指定が変わったよ クラスターモジュールが最高っす ドメインモジュールが追加されたよ REPL(対話型node)が良くなったよ ビルドシステムがwafからgypになったよ いろいろ変わったな v0.8.1の特徴 V8エンジンを上げたよ。 v3.11.10.12 npmを上げたよ。 v1.1.33 いろいろ修正したよ セットアップ node.js v0.8.1のインストール手順です。 $ . .nvm/nvm.sh $ nvm install v0.8.1 $ nvm use v0.8.1 v0.8.1 $ npm -v 1.1.33 $ npm update クラスターモジュールを試す v0.8.0の目玉であるクラスターモジュールを試してみたいと思いま
node.js の負荷分散について考えてみました (フェイルオーバは考慮できていません).個人レベルなので 1 台のハード上に仮想マシンを 5〜6 個立ち上げて実験しています. 見出し はじめに cluster で負荷分散 寄り道:cluster の仕組み 例えばこんな全体構成 おわりに はじめに node.js は設計上,大量のコネクションを省リソース (プロセス・スレッドをバカスカ生成しない) でさばきます.おそらく想定されているのは I/O バウンドな処理であり,この場合は基本的に非同期で処理されるため,I/O 待ちで他のリクエスト処理がブロックすることはまずありません. node.js は「サービスをつなぎ・組み合わせるためのハブ」的な位置づけが一番しっくりくるように感じます *1. ただ, 大量のリクエストをさばかなければならない ロジックが重くてコールバック処理に負荷がかかって
Node.js v0.6 から新規標準モジュールとして導入された Cluster のベンチマークを取ってみました。 測定環境 Server CPU: AMD PhenomII X6 1090T (6コア) MEM: DDR3 16GB (4GB*4) Client MacBook Pro 15 (Early 2011) CPU: Intel Core i7 2.0GHz (4コア) MEM: DDR3 8GB (4GB*2) Network 1GigabitEther (同一セグメント) テスト方法 テストスクリプト cluster-bench.js var cluster = require('cluster'); var http = require('http'); var numCPUs = parseInt(process.argv[2], 10); if (cluster.is
(この記事は Node.js アドベントカレンダー不参加記事です) チャットサーバー的な使い方とか意外とみんな興味なくて、普通のウェブアプリケーションなどをかく、という用途にちょっと node.js がつかえたらいいのにな、とおもっている人がおおいようにかんじています。Node.js が人気なのは、v8 をうまくパッケージングしているのが node.js ぐらいで、そして v8 をうまくパッケージングするのが結構めんどくさいから、というところが大きいのです。ぶっちゃけ node.js が〜 とさわいでる人のうち8割は I/O multiplexing だからとかそういう理由で支持しているわけではなかったりするのです(偏見)。 さて、普通の web application のようなものを書こうとしたときに Node.js って基本シングルスレッドだし、なんかうっかり重い処理したときにどうした
Node.jsでエラー発生時に適当に console.log とかを埋めて、しかもそれが複数箇所になってくると、エラーメッセージは分かるがそれがどこで発生したエラーなのかが分からなくて困ったりする。キャッチしたエラーオブジェクトが普通にthrowされたErrorオブジェクトならerr.stackでコールスタックが取得できるからまだしも、只の文字列や独自Errorをcallback(new Error("オレオレメッセージ"))とかで渡されるとコールスタックが取れないのでどうしようとした足跡。 試行錯誤 で、以下の様な関数を作ってみた。仕組みは簡単で、throwしないと行番号取得できないならダミーで例外発生させちゃえば良いじゃないって感じ。*1 function getCallStack() { try { throw new Error("DUMMY"); } catch(e) { ret
Debian でシリアルコンソールを使う † ↑kermitを使う † debianの場合、パッケージで簡単にkermitをインストールができる。 apt-get install ckermit gkermit というのがあるが、別物である。 インストールが終わったら、kermit と入力し、実行。 次にシリアルのポート設定を行う。 set line /dev/ttyS0 set speed 9600 set stop-bits 1 set flow-control none set parity none set carrier-watch off 使う速度等が固定ならば ~/.kermrc に上記の内容をそのまま書いても良い。 connect ctrl - \ + C ↑ブレークキーシーケンス [break key sequence] † contorol - ] でコントロールモード
Captcha security check dollpaper.com is for sale Please prove you're not a robot View Price Processing
バッチのまとめTOPへ Linux上で,スケジュールされたタスクを実行するためには,cronが必要。 そのcronタスク設定操作を自動化するには,どうしたらよいか? 本記事では,以下の点を扱う。 crondのインストール(手動) crondのインストール(自動) cronにジョブ登録(手動) cronにジョブ登録(自動) 補足:cronのログのローテーション (1)crontab設定ファイル (2)/etc/cron.dailyフォルダ (3)/etc/logrotate.confファイル (4)/etc/logrotate.dフォルダ crondのインストール(手動) crontabが入ってても,crondが無かったりする。 crondのインストール状況の確認方法: /etc/init.d/crond status ※または /sbin/service crond status もし無効
エラーの対応をしたメモです。 KVMのホスト機を立ち上げたのですが、いくつかの仮想サーバーが起動していませんでした。 仕方ないので、手動で起動しようとしたところ、以下のようなエラーが出て起動せず。 # virsh start web1 エラー: ドメイン web1 の起動に失敗しました エラー: cannot send monitor command '{"execute":"qmp_capabilities"}': Connection reset by peer 調べたところ、何が原因かは不明なのですが、「managed save」されたファイルが存在していました。 どうやらこれが、起動時に読み込めない状態になっていたことが原因の模様。 # cd /var/lib/libvirt/qemu/save web1.save web2.save # ls -la 合計 679948 drwx
package.json { "name": "http-server", "preferGlobal": "true", "version": "0.3.0", "author": "Nodejitsu <support@nodejitsu.com>", "description": "a simple zero-configuration command-line http server", "bin": { "http-server": "./bin/http-server" }, "scripts": { "start": "node ./bin/http-server", "test": "vows --spec --isolate" }, "main": "./lib/http-server", "repository": { "type": "git", "url": "ht
How npm handles the "scripts" field DESCRIPTION npm supports the "scripts" member of the package.json script, for the following scripts: prepublish: Run BEFORE the package is published. (Also run on local npm install without any arguments.)publish, postpublish: Run AFTER the package is published.preinstall: Run BEFORE the package is installedinstall, postinstall: Run AFTER the package is installed
Mahoutシリーズ目次(随時更新) 非分散レコメンデーション Apache Mahoutで機械学習してみるべ - 都元ダイスケ IT-PRESS (これ) レコメンデーションの簡単な原理を視覚的に把握してから実際に計算してみる - 都元ダイスケ IT-PRESS 機械学習における重大な"仮定"と、アルゴリズムの評価 - 都元ダイスケ IT-PRESS 分散レコメンデーション Mahoutで分散レコメンド(1) - 都元ダイスケ IT-PRESS Mahoutで分散レコメンド(2) - 都元ダイスケ IT-PRESS Mahoutで分散レコメンド(3) - 都元ダイスケ IT-PRESS クラスタリング 今度はMahoutでクラスタリング - 都元ダイスケ IT-PRESS 今度はMahoutでクラスタリング(ソース編) - 都元ダイスケ IT-PRESS では、本文いきます。 Apach
マクロ Nagiosで利用可能な特徴のうちのひとつにコマンド定義でマクロを使えるという能力があります。 コマンドの実行直前にNagiosはコマンド内のそれらに対応するすべてのマクロを置き換えます。 いくつかの一般的なコマンドに必要なものをハンドルして定義することを可能にします。 マクロの代替Macro Substitution いかなるコマンド(ホストとサービスチェック、通知、イベントハンドラなど)が実行される前に、Nagiosはコマンド定義に対応する ものを見つけていかなるマクロにも置き換えます。 コマンド定義でホストとサービスのマクロを使う際、これらはコマンドが実行されているホストかサービスの値を参照します。 例を示しましょう。我々はホスト定義を用いてcheck_pingコマンドを以下のように定義しているとします。: define host{ host_name linuxbox ad
調べてみた。動作確認用のサーバは plackup で立てている。 app.psgi の中身は一番最後に。 --data (-d, --data-ascii) application/x-www-form-urlencoded 形式で POST する。 @/path/to/file のように value の先頭が @ ではじまっているとファイルを読み込んで改行文字を取り除く。パラメータや @ つきで指定したファイルの中身はすべて URL エンコードされていることが期待される。つまり curl(1) は URL エンコードしてくれない。 -d を複数回指定するとすべてのパラメータが & で連結される。 @ でファイルを指定する場合、 -d 'file=@sale.txt' のようにすると中身が展開されないので注意 (file=@sale.txt という文字列が渡される) $ curl -d '
Libvirt allows you to access hypervisors running on remote machines through authenticated and encrypted connections. Basic usage¶ On the remote machine, libvirtd should be running in general. See libvirtd configuration file section on how to configure libvirtd. Not all hypervisors supported by libvirt require a running libvirtd. If you want to connect to a VMware ESX/ESXi or GSX server then libvir
リモートからvirt-manager等でlibvirtdに接続しようとするとsshを使うのが一番手っ取り早いのですが、 うちの環境だと頻繁にトラフィックが詰まって(?)sshがゾンビ化してしまうので、TLS接続に切り替えてみた。 環境はサーバー、クライアント共にFedora16。 独自CAはWindowsの証明書サービスを使っているので、そこは割愛。 それぞれ必要なものは、 libvirt(サーバ)側 Path 説明 /etc/pki/CA/cacert.pem 独自CAのCA証明書 /etc/pki/libvirt/private/serverkey.pem 秘密鍵 /etc/pki/libvirt/servercert.pem 独自CAで発行したサーバ証明書 virt-manager(クライアント)側 Path 説明 /etc/pki/CA/cacert.pem 独自CAのCA証明書
Custom event scripts¶ Beginning with libvirt 0.8.0, specific events on a host system will trigger custom scripts. These custom hook scripts are executed when any of the following actions occur: The libvirt daemon starts, stops, or reloads its configuration ( since 0.8.0 ) A QEMU guest is started or stopped ( since 0.8.0 ) An LXC guest is started or stopped ( since 0.8.0 ) A libxl-handled Xen guest
RPM provides a rich set of macros to make package maintenance simpler and consistent across packages. For example, it includes a list of default path definitions which are used by the build system macros, and definitions for RPM package build specific directories. They usually should be used instead of hard-coded directories. It also provides the default set of compiler flags as macros, which shou
The concept of a version is central to the RubyGems packaging scheme. Every gem package is assigned a version string consisting of digits and periods (e.g. “1.3.122“). The gem command line program and the gem Ruby command both take version constraint arguments. These arguments restrict the range of versions that are acceptable to the commands. For example, if you want in install verion 0.4.14 of t
ライブラリやツールをコマンド一発でインストール出来るRubyGemsはとっても便利です。自作ソフトをRubyGems.orgに登録すれば世界中でインストールして使ってもらえます。便利なRubyGemsですが内部ではどのような仕組みで動いているのでしょうか? インストールしたgemはどこへいくのか? 試しに適当なgemをインストールしてみましょう。 $ gem install rubywho Successfully installed rubywho-0.4.0 1 gem installed Installing ri documentation for rubywho-0.4.0... Installing RDoc documentation for rubywho-0.4.0...OSXのMacPorts経由でインストールした場合は、以下にインストールされます。 /opt/loca
tcpdumpやwiresharkでTCP制御フラグを指定してパケットを収集する方法を忘れることが多いのでメモ。 SYNフラグが設定されたパケットの収集 "tcp[13] & 2 != 0" SYNフラグが設定されていないパケットの収集 "tcp[13] & 2 == 0" SYNフラグのみ設定されたパケットの収集 "tcp[13] & 255 == 2" ACKフラグが設定されたパケットの収集 "tcp[13] & 16 != 0" ACKフラグが設定されていないパケットの収集 "tcp[13] & 16 == 0" ACKフラグのみ設定されたパケットの収集 "tcp[13] & 255 == 16" ACKフラグとSYNフラグが設定されたパケットの収集 "tcp[13] & 18 == 18" ACKフラグとSYNフラグのみ設定されたパケットの収集 "tcp[13] & 255 ==
Simulating dropped packets (aka crappy internets) with iptables Disclaimer #1 I am not an iptables expert. This tip will work best on your local linux development box where you probably have no iptables rules setup. Do not play around with this shit on production machines, unless you know what you are doing. Speak with your friendly sysadmins before doing this on any machine for which they feel re
Chef検証再開。 Chefを設計・運用するうえで、どうしても理解しなければいけないのが、CookbookとRecipeとRole`の関係。 とりあえず、それを理解するためにこのスライドを見てみた。 Resouceは設定の最小単位 Resouceは各種設定の最小単位と解釈しました。 ファイルを配置する、ソフトウェアをインストールする、ユーザを作る、等など。 これらの設定はOSによってコマンドはまちまちですが、それぞれのコマンドの違いはPlatformやらProviderやらで吸収されて、ResouceではそれらのOSの違いを意識せずに設定を指定できるところが良いところです。 RecipeはResourceのリスト スライドに Recipes are lists of Resources と書いてありました。 僕は、「Recipeは一つの操作をするために必要なこと(Resource)がまと
■ [JavaScript][Node][Memo] モジュールのロードについて。(nvmを使用している場合) モジュール検索について マニュアルについてはこちらを参照してください。 nodeのコードにデバッグ文を入れて動作確認をしてみたのでログとして残そうかと。 モジュールのサーチパス サーチパスの追加方法 フォルダ検索順序 ファイル検索順序 モジュールのサーチパス モジュールのサーチパスの調べ方 > require.paths [ '/home/ryuone/.node_modules', '/home/ryuone/.node_libraries', '/home/ryuone/.nvm/v0.4.4/lib/node' ] サーチパスの追加方法 環境変数NODE_PATHに追加 %> export NODE_PATH=/tmp %> node > require.paths [ '
node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha
とりあえず雛形 http://nodejs.jp/nodejs.org_ja/api/addons.html に書いてあるとおり。 wscriptを作る srcdir = '.' blddir = 'build' VERSION = '0.0.1' def set_options(opt): opt.tool_options('compiler_cxx') def configure(conf): conf.check_tool('compiler_cxx') conf.check_tool('node_addon') def build(bld): obj = bld.new_task_gen('cxx', 'shlib', 'node_addon') obj.target = 'cstr' # とりあえずcstrという名のモジュールを作ることにした。 obj.source = 'cst
ISUCON5 予選にチーム「じゅげむおじさん」で参加しました。 特に何の準備も出来なかったので今回は参加を見送ろうかとも思ったのですが、前回も同じ理由で見送っていたのでまずは何事も経験、という思いで参加しました。 結果は微妙な改善に終始して最後は FAIL、という感じで惨敗でした。 良い結果が出なかったこと以上にいつも通りやることが出来なかったのが悔いが残ってます。 急造チームでバタバタしがちだったり細かい反省は色々あるんですが、まずは自分が、コードレビューして、MySQL のクエリをみて、メンバーと話し合って、改善してみる、という普段仕事であたり前にやっている流れを全然作れなかったのが問題だったなあと感じています。 kataribe や pt-query-digest といった ISUCON で常連の分析ツール類も使いましたが、そういった道具の使いこなし以上に普段通りにやってみてわから
Scala で作る Android ゲームアプリ Posted on 2015-03-14 by yamauchi Scala で Android ゲームを開発する方法を紹介します。 クロスプラットフォーム環境ではないため弊社製品では使っていませんが、 Android のみでアプリ開発をしたい人には役に立つと思います。 開発環境の構築 Scala で Android アプリを開発するには以下のものが必要です。 JDK (Java Development Kit) 7 Oracleのサイト からインストーラをダウンロードします。 JDK8だと動かないので注意。 SBT (Simple Build Tool... Read more... Unity 4.6 UI Tip: UI Animation Posted on 2014-11-07 by marconius The single mo
TweetPocket Node.js パフォーマンス高速化の為の10個のヒント nodejs-logo Node.js を最近始めました。レスポンスが凄く早くてサクサク気持ちいいです! リアルタイムが求められるWebアプリケーションには適していると思います。 そんなNode.js を更に高速化する為の10個のヒントを紹介します。 1. 同期コードを避ける 例えば、多くのファイルシステム操作は、非同期やWriteFileおよびwriteFileSyncなどの同期バージョンの両方を持っている。 あなた自身のコード内で同期メソッドを避ける場合であっても、それは誤ってブロッキング呼び出しを持っている外部ライブラリを使用することも可能です。 この操作を行うと、パフォーマンスへの影響は劇的です。 // Good: ファイルを非同期で書き込む fs.writeFile('message.txt', '
みなさん、こんにちは。 2010年9月入社のUDAGAWAです。 今回は、reverse proxyのvarnishに関して記事を 書かせていただきます。 ■varnishとは 高性能HTTPアクセラレータです。 同じような機能を持ったsquidより10~20倍高速だということが 売りのひとつだそうです。 ■背景 Amebaの画像配信システムは、reverse proxyとして squid2.7 STABLEのCOSSを使ったシステムを利用しています。 squid2.7自体が古いバージョンなので、できればバージョンアップしたいところ なのですが、現状 squid3系からはcossが使用できないこともあり varnishを検証しておこうと考えたのがきっかけです。 ■テスト環境 CentOS5.5 Kernel 2.6.18-194.3.1.el5 Varnish 2.1.3 ■インストール
kickstartのpostscript処理ですがリアルなマシンだと 検閲Tech: Anaconda Kickstartの%postスクリプトの動作を観察する TipsAndTricks/KickStart - CentOS Wiki にあるように、chvt すればいんだけど、KVMに仮想マシンにインストールするときはこれでは動作しない。 シリアルコンソールに出力しているので、結局、上記を参考にキックスタートファイルに %post exec < /dev/tty3 > /dev/ttyS0 yum -y update のようにしたらできた。 これでいいのかよくわからない。 正しい方法あればコメントいただけるとうれしいです。
LWNのSupporting KVM on the ARM architectureの記事にHYPモードのページテーブルに関して、以下のような説明がありました。 for the SVC and USR modes, the hardware has two separate page table base registers, which are used to provide the familiar address space split between user space and kernel. HYP mode only uses a single page table base register and therefore does not allow the address space split between user mode and kernel. これを読むと、AR
>>前回 次に、メモリーのアクセス性能を調べる。メモリーアクセスのベンチマークツールである「lmbench3.0-a9」を使用して、メモリーのアクセス時間(レイテンシー)を、1回にアクセスするサイズを変えながら計測した。すると、24Mバイト以下のサイズでアクセスした場合には、ホスト環境とゲスト環境で性能に差が生じなかった。CPUに24Mバイトのキャッシュメモリーが搭載されているためである。 そこで、広範囲のメモリーにアクセスをした場合の性能を見る目的で、オープンソースのインメモリーDBである「Redis 2.2.2」を使って、getコマンドによるデータ読み出しとsetコマンドによる書き込みの性能を検証!)として調べた。Redisはデータをメモリー上だけではなくディスクに置く機能も備えるが、この検証ではメモリーにのみデータを置いた。実施したベンチマークは、Redisに付属の「redis -b
LKNTが仮想マシンにメモリをどのように割り当てているのか調べました. 流れとしては,ゲスト作成時にメモリを確保,KVMに確保したメモリを伝える,ゲストが終了する際に確保していたメモリを開放という手順です. 今回はユーザ側のコードですが,いずれはKVMの内部でメモリがどのように扱われているのかも調べてみたいです. ユーザインタフェース $ ./kvm run -m 256 ユーザがゲストに割り当てるメモリのサイズを指定するにはコマンドライン引数を用います. メモリ確保 static u64 ram_size; 指定した値は,グローバル変数のram_sizeに格納されます. build-run.c/int kvm_cmd_run if (!ram_size) ram_size = get_ram_size(nrcpus); コマンドライン引数で指定しなかった場合どうなるのでしょうか? bui
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 3. ハードウェアリソースのオーバーコミット 仮想化技術では、複数のゲストOSを統合することで効率性を向上させるとともに、仮想マシンの集約度をできる限り高めて優れたパフォーマンスを維持できることが理想です。これらの実現度は、仮想化技術が提供するハードウェアリソースをオーバーコミットする能力によるところが大きいのです。 オーバーコミットとは、システム上に存在する物理的リソース以上に仮想的リソースを割り当てることです。例えば、物理メモリは32MBしか存在しないが、仮想メモリは64MBを割り当てることをいいます。KVMでは、CPUとメモリのオーバーコミットが可能です。 ゲストOSもメモリオーバーコミット技術を採用している 現在、ゲストOSにな
はじめに メモリ管理周りで勘違いしていた部分をコードを追いながら説明してみます。 概要 Q1: qemuはゲストメモリ領域をmmap(2)してるんだよね? A1: してますがコードには呼び出し箇所はありません*1。mmapはposix_memalign(3)内で呼び出されます。 Q2: ゲストより先に(qemuメモリ空間内の)ゲストメモリ領域にqemuがアクセスした場合どうなる? A2: qemuのページフォールトが起きますが、SPTEは割当てられません。そのため、ゲストが当該ページにアクセスすると再度ページフォールトが起きます。SPTEが設定されるのはこのときです。 調査対象バージョン x86_64 (Intel EPTあり) シャドウページテーブルはさすがに今さらなので(^^; linux-2.6.37.6 2.6.38はasynchronous page faultを実装していて読み
Asynchronous page faults Aix did it Red Hat Author Gleb Natapov August 10, 2010 Abstract Host memory overcommit may cause guest memory to be swapped. When guest vcpu access memory swapped out by a host its execution is suspended until memory is swapped back. Asynchronous page fault is a way to try and use guest vcpu more efficiently by allowing it to execute other tasks while page is brought back i
For customersCustomer supportSubscription managementSupport casesRed Hat Ecosystem CatalogFind a partnerFor partnersPartner portalPartner supportBecome a partner Try, buy, & sellRed Hat MarketplaceRed Hat StoreContact salesStart a trialLearning resourcesDocumentationTraining and certification Hybrid cloud learning hubInteractive labsLearning communityRed Hat TVOpen source communitiesAnsibleGlobal
DBサーバでとある日を境にswapが発生していることに気がつきました。 サーバはメモリ32GB搭載していて、そのうちの24GBをinnodb_buffer_pool_sizeに割り当てています。 他のthread毎のメモリ設定値を見てもおかしそうな点はなかったのでググってみました。 MySQL と NUMA アーキテクチャと Swap Insanity MySQL InnoDBストレージエンジンのチューニング(後編) なるほど…。 それぞれのCPUがローカルでメモリを管理しているので、 2CPU積んでいるサーバだと、AというCPUで実行されているスレッドが、BというCPUが確保しているメモリ領域にアクセスするには、AのCPUを経由しないといけないわけですね。 このメモリアクセスが不均一になる方式をNUMAアーキテクチャというみたいです。 NUMAアーキテクチャのメモリ管理が、ノードという単
2009年09月21日19:35 カテゴリ気象学Linux 並列計算のチューニング − NUMA − A. NUMAの概要 NUMAとはNon-Uniform Memory Accessの略でヌマと読みます。 1ホストマシンの中に複数の演算コアやメモリバンクが搭載されている場合に、それらの利用方法を指定できるシステムです。 ここではNUMAの概念と利用方法を説明します。 *説明の中ではQuad-Opteronを4ソケット、メモリを64GB搭載したマシンが2台接続されている環境を想定しています。またそれぞれのホスト名をtest1、test2としています。 MPIを利用して4並列で単一ドメインのWRFを実行する場合を想定してみましょう。 WRFのドメインはMPIによって4等分に分割され、4つの演算コアに処理が渡されます。このときの渡し方は通常、図1の様になります。 各ノードの1つのコアを使用し
ImageMagick v6 Examples -- Resize or Scaling (General Techniques) Resizing Images Ignore Aspect Ratio ('!') Only Shrink Larger ('>') Only Enlarge Smaller ('<') Fill Given Area ('^') Percentage Resize ('%') Pixel Count Limit ('@') During Image Reading Other Specialised Resize Operators Geometry - Resize just the last image Thumbnail - Resize with profile stripping Resample - Changing an images reso
そういえばこれをこっちにアップしてなかったのと 試しにPDF上げてみたかったので 一応3.0.1対応 冬コミでも出すのでよろしくお願いします><
小崎 資広 2008/5/22 VM(仮想メモリ)の改善 昔からのLinuxユーザーの方は、カーネル2.4の時代に、一時期VM(仮想メモリ)が不安定で悩まされていたことを覚えている方もいるかもしれません。 現在のVMは、Andrea Arcangeliの作成した割とシンプルな設計なVMに、Rik van Rielの作成したページフレームからページテーブルエントリを逆引きするためのreverse mappingという機能を追加したものが基本となっています。 これは、コードの複雑さと性能の間でバランスの取れた、なかなか評判のいいものだったのですが、カーネル2.6の登場から約5年がたち、だんだんアラが目立つようになってきました。 というのも、当時は一般的なパソコンのメモリ量は256M~512Mbytes程度で、サーバでも4Gbytesの壁を超えるようなマシンはまれでした。しかし、DRAMの急激な
メモリ管理の動向 富士通 小崎資広 <kosaki.motohiro@jp.fujitsu.com> Who am I? 2008年にLKMLデビュー 2008年以降について集計するとvmscan.cを一番いじった 人 Linuxのメモリ管理界隈でSplit-LRU VMの共同開発者とし て有名(ようするに無名) @ITでKernel watchというLinuxの解説記事を連載してい る。LKMLのメールを全部読んでいる数少ない日本人の中 の一人 2008年のLKMLでのコミットレート Signed-off-by数がTOP10%にぎりぎり入るぐらい mm/ ディレクトリ以下に限定すると10位 Reviewed-by 数はLKML全体で7位 言葉の壁? ... once again demonstrating that Aussies a sense of h
EPT を使用すると、通常物理アドレスとして使用されていたものが、ゲスト物理アドレスとして扱われる。そして、ゲスト物理アドレスは、EPT Pageing structure を使用して物理アドレスに変換される。 - EPT を使用しないときのアドレス変換 +------------+ リニア | Paging | 物理 アドレス → | Structures | → アドレス +------------+ - EPT を使用したときのアドレス変換 +------------+ +------------+ | Extended | リニア → | Paging | → ゲスト → | Paging | → 物理アドレス アドレス | Structures | 物理アドレス | Structures | +------------+ +------------+ 上記図からわかる通り、ようは
Lately we've been seeing issues with zone reclaim mode on large memory multi processor NUMA linux systems. What's NUMA? It's just an acronym for Non-Uniform Memory Access. This means that some memory in your system is more expensive for a particular CPU to access than its "local" memory. You can see how much more distant the kernel considers the different zones by using the numactl command like
仮想化の根本的な部分を更に勉強し直したので、その覚書の大幅改定。 □仮想化支援機能 □ホスト型とハイパーバイザ型 □完全仮想化(Full virtualization)と準仮想化(Para Virtualization) の3つについて。 上記3つの説明の前に、まず仮想化によるオーバヘッドの原因についてのまとめ。 【仮想化によるオーバヘッド】 完全仮想環境でホスト型仮想化ソフトを利用した場合の、性能上オーバヘッドになる部分をまとめてみた。一応、自分なりに4つにまとめてみた。まあ、これ以外にも細かい点ではいっぱいあるだろうがw 赤字は、その問題を解決する下記で紹介されている技術。ちなみに、この中で今一番の仮想化の問題は ③IOデバイス(ディスク、ネットワーク、グラフィック)のドライバ二重介在による処理変換のオーバヘッド だろうなー。ハイパーバイザ型の仮想化ソフトでもこの問題は顕在化しているし
JavaScript is disabled on your browser. Please enable JavaScript to use correctly mesosadmin frontend Please login Login Password Forgot your personal password ? We can remind you
1. 概要 空きメモリが少なくなってくると、ディスクキャッシュ等のページを解放して空きメモリを増やす。 2. 処理の流れ キャッシュの解放は主にshrink_*の関数で行われる。各関数の関連は図1のようになっている。 (注) zone_reclaim()については、NUMAアーキテクチャでなければ(CONFIG_NUMA未定義)なら何もしない。よって、get_page_from_freelist()でフリーリストからページが取れなくてもzone_reclaim()によってページの回収処理は動かない。一般的なアーキテクチャではget_page_from_freelist()が失敗した後、try_to_free_pages()でページの回収が行なわれる。 3. shrink処理の開始契機 図1にもあるようにshrink処理の開始契機となるのは以下の関数。 kswapd() alloc_page
次のページ 前のページ 目次へ 4. メモリ管理 メモリ管理サブシステムは、オペレーティングシステムの最も重要な部分 のひとつである。コンピュータの黎明期以来、システム上にある物理メモリだけでは 足りない状況がずっと続いてきた。この限界を克服するために様々な戦略が立てられ たが、それらのうちで最も成功したのが、仮想メモリ(virtual memory)である。 仮想メモリとは、システムに実際以上のメモリがあるかのように見せる仕組みであり、 メモリ争奪関係にあるプロセス間で、必要に応じてそれらを協調して使用することに より実現されている。 仮想メモリは、コンピュータのメモリを大きく見せること以外にも様々な機能を 提供している。メモリ管理サブシステムが提供する機能には、次のようなものがあ る。 巨大なアドレス空間オペレーティングシステムは、システム上に実際以上のメモリがあるかのように 振る舞う
Tuning the initial congestion window parameter (initcwnd) on the server can have a significant improvement in TCP performance, resulting in faster downloads and faster webpages. In this article, I will start with an introduction to how TCP/IP connections work with regards to HTTP. Then I will go into TCP slow start and show how tuning the initcwnd setting on the (Linux) server can greatly improve
Extending KVM with new Intel® Virtualization technology 2008. 06. 12 Sheng Yang sheng.yang@intel.com KVM Forum 2008 2 Agenda • Accelerating MMU with Intel® Extended Page Table • Managing TLB with Intel® Virtual Processor Identification • Boosting Windows performance with Intel® FlexPriority 3 Intel® Extended Page Table • Guest can have full control over Intel® 64 page tables / events – CR3, INVLP
Copyright © 2008-2009 VMware, Inc. All rights reserved. 1 Performance Evaluation of Intel EPT Hardware Assist Performance Evaluation of Intel EPT Hardware Assist VMware ESX builds 140815 & 136362 (internal builds) Introduction For the majority of common workloads, performance in a virtualized environment is close to that in a native environment. Virtualization does create some overheads, however.
2010年02月02日 情報科学類 オペレーティングシステム II 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp> このページは、次の URL にあります。 http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2009/2010-02-02 あるいは、次のページから手繰っていくこともできます。 http://www.coins.tsukuba.ac.jp/~yas/ http://www.cs.tsukuba.ac.jp/~yas/ ■連絡事項 卒業予定の4年生に対する特別措置として、2月9日火曜日6時間目 (16:45-18:00)に試験をすることを検討しています。 対象者は、授業終了後、前に集まって下さい。 ■今日の大事な話 アドレス空間 ページテ
何らかの原因でシェルからの入力が一切行えなくなった場合は、PCのリセットボタンを押してリブートするしかない。しかし、ハードディスクがクラッシュする可能性もあるので、可能な限り安全な方法でリセットしたい。そのようなときには、マジックSysRqキーを使う。 マジックSysRqキーを使うには、/proc/sys/kernel/sysrqが「1」になっていなければならない。「0」になっている場合は、rootで、 としておく。 コンソールからの入力を一切受け付けないような事態に陥ったら、[Alt]+[SysRq]キーを押しながら、[s]→[u]→[b]キーの順にキーを押す。すると、システムが再起動する。電源オフするときは、[Alt]+[SysRq]キーを押しながら、[s]→[u]→[o]キーの順にキーを押す。 主なマジックSysRqキーは、以下のとおりだ。それ以外のキーについては、/usr/src/
「詳解 Linuxカーネル 第3版」や「Linuxカーネル2.6解読室」などのLinuxカーネル本では、Linuxカーネルの時刻管理について、超絶に要約すると次のように説明されています。 一定の時間間隔(1000Hz)でタイマ割り込みが入る。 タイマ割り込みごとにjiffies変数を1増やす(つまり、jiffiesは、システム起動後にタイマ割り込みが入った回数を表す。) jiffiesの増加分に合わせて、システム時刻(変数xtime)をアップデートする。 しかしながら、RHEL6では、定期的なタイマ割り込みを行わない「Ticklessカーネル」が採用されており、jiffiesやxtimeが変更される仕組みがごっそり変わっています。 ※ Ticklessカーネルの何が嬉しいのかというと。。。。 これまでのカーネルでは、定期的にタイマ割り込み処理を行う必要があったので、実行するプロセスが無いア
published at 2012-02-13 前回、手動でタイムゾーンの設定とシステムクロックをUTCにする方法を調べてみましたが、数点疑問点があったので更に調べてみました。 /etc/sysconfig/clockファイルは何者? タイムゾーンを設定する方法を調べていると、/etc/localtimeを修正すると共に/etc/sysconfig/clockを修正すると書かれている記事が多い。だけど、色々試してみると、どうもclockファイルはタイムゾーンそのものには影響を与えていないんじゃないか?って気がする。実際clockファイルを削除しても特に動作に支障は無い。(少なくともパッと見支障は無いように思う) The Clock Mini-HOWTO – 3.1. clock(8)とhwclock(8)に以下の記述がある。 RTC の時間調整用の数値は、/etc/adjtime に保存さ
CentOS5 をVMWare Fusionで動かしていると、VMが常時10-20%程度のCPU負荷を与えているのが気になっていたが、CentOS6ではその現象が見られない。アイドル時の割り込みがほとんど発生しなくなった事による改善と思われる。 CentOS6.0 (カーネル:2.6.32, x86-64) について調べた。 tickless (NOHZ)時の動作概要図 わかった事(ticklessとは関係無し) /etc/sysconfig/clockの UTC の設定はCMOS RTCの値をOSがどう解釈するかを指定する。 UTC=true: CMOSに保持しているRTCをUTC(ほぼグリニッジ標準時と考えて問題ない)として扱う。ZONE="Asia/Tokyo" であれば、UTC+09:00でJSTを求める。 UTC=false: CMOSに保持しているRTCをローカルタイム(日本時
The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.
Linuxのページング機構は移植性を考慮して、制御レジスタ(cr3)->ページグルーバルディレクトリ(pgd)->ページアッパディレクトリ(pud)->ページミドルディレクトリ(pmd)->ページテーブル(pte)の4段構えでアドレッシングを行っている。X86-32では2段構成のアーキテクチャで、与えられたテーブルディレクトリをそのまま返すことで実装している。 #define pud_offset(pgd, start) (pgd) static inline pmd_t *pmd_offset(pgd_t * dir, unsigned long address) { return (pmd_t *) dir; } ユーザプロセスのメモリはそれぞれに上記のページテーブルを有していて、実際使っている空間をtask_struct->mm_struct->vm_area_structで管理して
ひとつ前のエントリ id:naoya:20070924:1190653790 では Linux のコンテキストスイッチにおける、主にハードウェアコンテキストの退避/復帰の処理を追ってみました。その中で カーネルスタック (switch_to() 内で pushl %ebp とかして値が積まれるスタック)とはそのときの実行コンテキストに紐づくカーネルプロセススタックという理解でよいか。 という疑問がもやもや湧いて出てきました。ここ数日 はじめて読む486―32ビットコンピュータをやさしく語る を読んでいたのですが、その中にこの疑問への答えへの入り口が載っていまして、そこを糸口に調べてみました。で、結果としては 答え: 良い でした。 x86 は特権レベルの移行と連動してスタックポインタを切り替える仕組みを持っています。Linux の場合モードはカーネルモード(特権レベル0) とユーザーモード
本書は、Linux KVMのshadow pagingの実装について解説します。読者の前提条件として、仮想化及びx86アーキテクチャにおけるアドレス変換機構(MMU)に関する基礎知識を有している方を対象としておりますので、あらかじめご了承ください。 KVMは米国Qumranet社により開発されている仮想マシンで、完全仮想化をサポートします。当初は仮想化拡張機能(Intel VT-x、 AMD SVM)をもつx86アーキテクチャを対象に開発されてきましたが、現在ではその他のCPUアーキテクチャにも移植されています。本書内では特に記載がある部分を除き、x86アーキテクチャのみを対象といたします。 実装の特徴としては次のようなものが挙げられます。
Documentation for Resources included in the Chef library. Each description is broken in to several categories:
LWN.net needs you!Without subscribers, LWN would simply not exist. Please consider signing up for a subscription and helping to keep LWN publishing Much of today's Internet traffic takes the form of short TCP data flows that consist of just a few round trips exchanging data segments before the connection is terminated. The prototypical example of this kind of short TCP conversation is the transfer
Linux 3.7 has been released on 10 Dec 2012. Summary: This Linux release includes support for the ARM 64-bit architecture, ARM support to boot into different systems using the same kernel, signed kernel modules, Btrfs support for disabling copy-on-write on a per-file basis using chattr and faster fsync(), a new "perf trace" tool modeled after strace, support for the TCP Fast Open feature in the ser
Upgrade path of chef packages is broken in debian/wheezy The following packages in apt.opscode.com/wheezy conflicts with debian.net/wheezy packages: libyajl-ruby with ruby-yajl libpolyglot-ruby with ruby-polyglot libtreetop-ruby with ruby-treetop libmixlib-log-ruby with ruby-mixlib-log They did conflict at File level and conflict is not specified, then the only fix if you happen to be in this case
@tokuhirom です。Perlを書き始めて8年ほど経ち、Perlで何か作る際の効率化の手法がそれなりに確立してきたので、それを思いつくままに紹介しようと思います。主に多言語から来てPerlにほどんど慣れてない方などを想定しています。 僕の秘伝のタレ的な .vimrc の中から perl に関係ある部分だけをぬきだしてお教えしましょう。すべて設定すればだいぶ快適になりそうです。とかかいてると教えるのもったいない気分になってきた。 ぼくの環境 僕は vim の環境として以下のようなものを指定しています。mattn さんからは DIS られがちです。 neosnippet unite.vim pathogen vim-perl プロジェクトの成果物をつかう https://github.com/vim-perl/vim-perl なんか最近、perl-vim から vim-perl にかわ
One of my favorite performance improvements in 5.6 is "faster non-persistent connections". I couldn't find this information from release notes, but non-persistent connection is really faster in 5.6. Here are sysbench micro-benchmark results. I tested from 100 concurrent clients, running remotely. Clients simply connected and disconnected repeatedly. versionconnections per second 5.1.6520712 5.5.28
A recommendation engine using Likes and Dislikes for your Ruby/Redis application. View the Project on GitHub davidcelis/recommendable Download ZIP File Download TAR Ball View On GitHub Recommendable is a gem that allows you to quickly add a recommendation engine for Likes and Dislikes to your Ruby application using my version of Jaccardian similarity and memory-based collaborative filtering. Requi
以前KVMで仮想環境を作るというエントリーを書いたのですが、 ゲストイメージをLVMで管理してlvextendでゲストマシンを拡張したいと思ったので仮想環境を再度構築しなおしました。 だいぶ長くなるので、エントリーを分けてます。 KVMとLVMで仮想環境を構築(改) 【ホストの準備編】←今回KVMとLVMで仮想環境を構築(改)【ゲストインストール編】KVMとLVMで仮想環境を構築(改)【ゲスト操作編】KVMとLVMで仮想環境を構築(改)【ゲストクローン編】KVMとLVMで仮想環境を構築(改)【ゲストマシン拡張編】2012/3/5 「KVMに必要なライブラリのインストールとネットワークの設定」を追記しました。 新規HDD追加ゲストイメージ管理用に新たにパーティション作ろうかと思ったんですが、 使わないPCがあったのでHDDぶっこぬいて、 このHDDをゲストイメージ専用のストレージにしました。
MySQL5.0以前のバージョンでは、スロークエリログの閾値に1秒未満の値を設定できない。 設定しようとすると、エラーログを吐き、1秒にアジャストされてしまう。 mysql> set global long_query_time = 0; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> Bye [satoshi@studio3104 ~]$ tail -1 /var/log/mysql/mysqld.log 121002 13:56:14 [Warning] option 'long_query_time': unsigned value 0 adjusted to 1 調査目的で、"一時的にlong_query_timeを0に設定してすべてのクエリをスロークエリログに吐くようにして、mysqldumpslowでサマリーを取る"
varnish cache リバースプロキシ専用サーバ。キャッシュルールを細かく設定できるので、色々使えそうだし勉強がてら遊んでみた。 http://varnish-cache.org/wiki/Introduction http://varnish-cache.org/docs/ http://d.hatena.ne.jp/keita_yamaguchi/20080107/1199697651 http://dann.g.hatena.ne.jp/dann/20090628/p1 プロダクト環境で使ってなくて、backendはテスト用のapacheなので詳細なことはわかってないけど、まぁまぁ面白げ。 install ubuntuとかならaptで入る。テストサーバが古いfedora coreだったし、せっかくなのでsourceで入れてみた。 $ wget http://sourceforg
少女:数学はどうやって勉強してるの? 少年:得意じゃないから、語学とほとんど同じ。というか第二言語のつもりでやってる(Mathematics as a Second Language)。 ・読書猿Classic 数学にはネイティブはいない:「語学としての数学」完全攻略=風景+写経アプローチ 少女:まえに、200ページくらいのテキストを用意して、目次を見て、全体をざっと見て…といってた、あれ? ・図書館となら、できること番外編/マイナー言語のBookishな学び方 読書猿Classic: between / beyond readers テキストは〈分かる〉系より〈解ける〉系 少年:そう。最初はなるべくコンパクトな本を使う。一冊で分からないところが他の本を見ると分かることがあるから、手に入るだけは確保するのも…… 少女:語学のときと同じ? 少年:うん。ただマイナー言語とは違って数学関係の書籍
2012年9月にAmazon RDSでProvisioned IOPSというサービスが利用できるようになりました。本日はこれを題材にして、IOPSを保証するということについて勉強していきたいと思います。このエントリは、JPOUG Advent Calendar 2012の17日目となります。16日目は@maroon1stさんでした。 Amazon RDSについては、@horiuchiさんが15日目のエントリでまとめ記事を書いていらっしゃいます。Provisioned IOPSについては記事の反響で第3位ということで、なかなか注目度が高かったことが分かりますね。 Amazon RDS 2012年 サービスアップデートまとめ - Amazon Web Services ブログ 【AWS発表】Amazon RDS でハイパフォーマンスなプロビジョンドIOPSストレージを利用可能に(東京リージョン
macvlan/macvtap MacVTap - Linux Virtualization Wiki Macvtap is a new device driver meant to simplify virtualized bridged networking. It replaces the combination of the tun/tap and bridge drivers with a single module based on the macvlan device driver. Virtualized bridged networking with MacVTap - Seravo 図入りで解説 macvlanを使ってみる - 驟雨のカーネル探検隊(只今遭難中w eth0をpromiscuousモードに切り替える事で、「fe:7b:40:b0:fc:f8」宛のパケ
virtio-netとvhost-net 参考:CentOS 6 - KVM - Enable vhost-net : Server World modprobe vhost_net VM起動時までにvhost_netがロードされているとvhost-netで、ロードされていないとvirtio-netで起動する模様。 ps ax|grep vhost とかやると、vhost-netが有効なKVMプロセスは引数にvhost=onが入っているので見分けられる。 tap 参考:libvirt: Domain XML format typeがbridgeかnetworkになっている。 標準的な構成。 <interface type='bridge'> <mac address='52:54:00:94:9a:a0'/> <source bridge='br0'/> <model type='virt
この項目はまだ作成されていません。もし、文書作成の権限がある場合は、文書の作成をクリックして最初の文書を作成することができます。
先日、 UCOM光 マンション全戸一括タイプが導入されているマンションに引っ越した。 各部屋に LAN コンセントがあり、 UTPケーブルをつなぐだけでインターネットに接続できる。 USENのスピードテストで測定したところ、 50Mbps 以上の通信が可能であるようだ。 個人ユースであれば充分な帯域。 UCOM │ │ ┌───┴───┐ │ マンションの│ │ ルータ │ └┬┬┬┬┬┬┬┘ ┌───┘│││││└───┐ │ ┌──┘│││└──┐ │ │ │ ┌─┘│└─┐ │ │ : : : │ : : : 各戸へ │ 各戸へ │ ┌──┴──┐ |各戸のハブ| /29 └┬─┬─┬┘ ┌─┘ │ └─┐ │ │ │ ↓ ↓ ↓ 各部屋の LAN コンセント 各戸に半固定な /29 グローバル IP アドレス空間 (つまり 8個の IP アドレス)
RSpec の入門とその一歩先へ がとてもよい記事だったので、 Python で写経させてもらいました。 https://github.com/methane/pytest-tut Ruby コミュニティと Python コミュニティの考え方の違いも見えて面白いと思います。 環境は Python 3.3 で、実行には py.test コマンドを使いましたが、 py.test の機能は特に使っていないので nose でもなんでも大丈夫です。 ファイルの作成 まずは空の実装とテストを作ります。 message_filter.py class MessageFilter: pass message_filter_test.py 最初のテストを書く py.test は .should といったメソッドを勝手に生やしたりはしません。普通に assert 文を書きましょう。 --- a/messege
[RWT] Intel's Sandy Bridge Microarchitecture http://www.realworldtech.com/page.cfm?ArticleID=RWT091810191937 Real World TechのIntel's Sandy Bridge Microarchitectureという記事を適当に要約しました(今回から試験的にkindle(.azw)形式も用意しました)。 IFB002_いまさらSandy_Bridge.pdf IFB002_いまさらSandy_Bridge.azw また、以下に、主にRWTの解説でしか書かれていない部分ついて、少し私的な補足と感想を書きました。 導入 まず、Sandy BridgeというcodenameはP6, Pentium 4, GMAの橋渡しの暗喩になっているとDK氏は言っています。この解釈は無理があるよ
このエントリーはGit Advent Calendar / Juneの十四日目です。十三日目は Cside_ さんの「ブランチ名 + 作業状態 + stash数 をzshのプロンプトに表示」でした。 vim-fugitive便利ですよね。いい機会だったのでGitのVim-wrapperのひとつvim-fugitiveを復習してみました。 vim-fugitiveの便利なところと言えば、2画面で前後のコードも含めてdiffが見られるところとか、blameが見やすくて楽しいってところだけだと思ってたんですが、調べてみるともっと便利なことがわかりました。 今回は以下について書いてます。 :Gread :Gedit :Ggrep 補完 3-way diff いままで いままでのボクはと言えば、ただ:GstatusでVimエディタ上にステータス画面を開いて-(add/reset)したり、D(diff
maatkitを一通り使ってみたメモ - ククラフト で紹介したMaatkitのMySQLのクエリ統計ツールmk-query-digest. mk-query-digest /var/lib/mysql/db.slow.logという風にして,MySQLのスローログを食べて # Query 73: 0.00 QPS, 0.00x concurrency, ID 0x2256C8F4C0666085 at byte 322977024 # This item is included in the report because it matches --outliers. # pct total min max avg 95% stddev median # Count 0 10 # Exec time 0 20s 2s 2s 2s 2s 0 2s # Lock time 0 0 0 0 0 0
Maatkitのmk-query-digestで定期的なMySQLのクエリ解析をやってみたのでメモ ※今はPERCONA Toolkitになっちゃったみたいですがそっちはまだ試してません! 参考にしたサイト 同じような記事はいっぱいあるので細かいところは書きません。 Maatkitについてはこのあたり インフラ系エンジニア勉強会 "hbstudy"でMaatKitについて発表してきました maatkitを一通り使ってみたメモ Maatkitでslow logを解析 tcpdumpとmk-query-digestの組合せについてはこのあたり Maatkitはtcpdumpを食べられる上,memcachedも咀嚼出来る tcpdump & xtrabackup @ MySQL Casual Talks #1 あとはperldoc mk-query-digest 解析結果のこと DBに結果を突っ
作成日:2012.05.02 UNIX 系 OS のファイルシステムの計測を行うベンチマーク。 x86-64/Linux で動作することを検証している。 更新履歴 (2012.05.02) 作成 プリミティブ計測型のベンチマーク IOZone Flexible IO Tester (fio) Bonnie++ AIO-Stress Threaded I/O Tester ワークロード計測型のベンチマーク Filebench FS-Mark PostMark DBENCH SysBench Flexible Filesystem Benchmark (FFSB) Iometer SPECsfs2008 一般的なテクニック ディスクキャッシュの開放 マウントオプション SSD の初期化 CPU のバインド ファイルベンチマークがまとめられているサイト コメント プリミティブ計測型のベンチマーク
John Hughes, Institutionen för Datavetenskap, Chalmers Tekniska Högskola, 41296 Göteborg, SWEDEN. rjmh@cs.chalmers.se この日本語訳は原著者の承諾を得て山下がここに公開するものです。 この訳文についての、御指摘などは山下伸夫(nobsun .at. sampou.org)までおねがい いたします。 翻訳最終更新日 : 2011-09-17 原文 "Why Functional Programming Matters" 日本語訳PostScript この論文は1984年以来何年ものあいだChalmers大学のメモとして回覧された。 1989年と1990年に幾分か改訂をしたのが[Hug89]と [Hug90]である。この版はもとのChalmer大学のメモ のnroff原稿をもとに
モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基本的
Passbook とはPassbook は iOS 6 から標準搭載アプリとなったチケット発行管理アプリです。 より分かりやすく説明するとライブのチケット、お店のクーポン、スーパーのポイントカード(他にもこんなものが管理できます)などを一つのアプリで管理できるというものです。 ※Passbook ではこのアプリで管理できるチケットやクーポン、ポイントカードのことを Pass と呼びます。 この Pass には画像データとテキストデータが含まれており、テキストデータには位置情報が付記できます。 この位置情報を利用して、ライブ会場やファストフード店など近くを通ったときに、通知してくれるのです。 Pass はアプリ内にあるので、財布から取り出し忘れることも、探す必要もなくなります。 (新たな問題として Pass から通知を受けたにも関わらずレジで見せ忘れる、何てことが発生しそうですねw) 更に、
iOS6でサポートされたPassbook用にオリジナルクーポンを作ってみました。実際につかえるよw iPhoneのSafariでこのページを開いて、下のボタンをクリックするとクーポンがゲットできます。 Mac(山獅子)のSafariでも開けます。 ここをクリックしてクーポンをゲット バーコードはダミーです iOSのDeveloper登録が必要です iOSのDeveloper PortalからPassbook作成のテンプレートファイルを落としてくる Provisioning PortalでPass Type IDを登録 テンプレートファイルを編集してオリジナルクーポンを作成 付属のツールでパッケージ化 .pkpassというファイルができる。 できたファイルをサイトにアップロードする。mimetypeは application/vnd.apple.pkpass にしておく。
今回は色々なサーバーのベンチマークを取るために、ベンチマーク技術をまとめます。 <<randombench>> こちらのサイトを参考にしました。 Kazuho at Work このサイト内に公開されている、randombench.ccを実行することで、ディスクのIO性能を<r評価できます。 ---------------------------------------------------- 【追記】このまま、上のCファイルを実行しても、usr/bin/Cが無いと怒られます。 kazuho目指せバイナリアン ここで、C-0.06.tar.gzをダウンロードして、tar xvzf ~して ./configure して make して make instal してください。 -----------------------------------------------------------
はじめに 当文書では、i386 アーキテクチャ機における、Linux のカーネル本体(start_kernel())が開始されるまでのブートアップシーケンスを順に追って説明する。 当文書は主に 2.4 系のカーネル(特に 2.4.29 前後)について言及したものである。多くの記述は、そのまま 2.6 系のカーネルへも適用できるであろう。同じ 2.4 系でも、カーネルのバージョン間で若干状況が異なる場合があるかもしれない。 ブートアップシーケンスの理解を深めることは、カーネルビルドの手順を逆向きに追っていく作業に近い。Linux 2.4 カーネルビルド も合わせて参考にして欲しい。 当文書では、以下のような条件を満たす計算機環境を「i386アーキテクチャ」と呼ぶものとする。 IBM の発表したパーソナルコンピュータ「PC/AT」の互換機である。 一般に IA-32 アーキテクチ
MSR(Model Specific Register)を読み書きするための命令 どちらも実行できるのは特権モード(ring 0)のみ これらを C の中で使うには gcc インラインアセンブラを用いればOK #ちなみにこのへんの記述は perfctr では /usr/include/asm-x86/msr.h にありますね ●インラインアセンブラ表記法 asm volatile ("アセンブラテンプレート" : "出力オペランド" : "入力オペランド" : "アセンブラの実行で変更されてしまうもの"); 出力オペランドは "=a" (出力先変数), 入力オペランドは "a" (入力) のように表記する. ここで,各レジスタは以下のように表記する. "a" eax "b" ebx "c" ecx "d" edx "A" edx:eax(上位bitにedx,下位bitにeax) "g" g
An Opscode Chef knife plugin to manage Chef Servers Download .zip Download .tar.gz View on GitHub An Opscode Chef knife plugin to manage Chef Servers. Bootstrap a new Chef Server on Amazon's EC2, Linode or a standalone server. Backup and restore your Chef Server or Hosted Chef's node, role, data bag, and environment JSON data. Usage Follow the installation instructions, then you are ready to creat
Announcing Amazon Managed Service for Apache Flink Renamed from Amazon Kinesis Data Analytics Today we are announcing the rename of Amazon Kinesis Data Analytics to Amazon Managed Service for Apache Flink, a fully managed and serverless service for you to build and run real-time streaming applications using Apache Flink. We continue to deliver the same experience in your Flink applications without
この記事は、 Vim Advent Calendar 2012 の83日目(!)の記事です。 昨日の記事は ujihisa さんの「unite.vimのfile_recで無視リストを追加する」。 — こんばんは。 目に優しい黒背景が大好きなcocoponです。 エディタの配色って大事ですよね。 見やすさは、コーディングの速度に直結します。 黒背景のvimを全画面表示にすれば、自然とテンションも上がってきますね。 一生ついていくと決めていた「jellybeans」黒背景のカラースキームといえば、迷うことなく「jellybeans」をオススメしてきました。 クールながらも落ち着いた、絶妙な配色。 はじめて出会ったときは、その完成度に圧倒されたまま「一生ついていく」と心に決めたスキームでありました。 しかし、気になる点もいくつかありました。 例えば、JavaScriptの正規表現。 黒背景に濃い
斎藤です。 今日は、RRDToolを使って、今後かかる負荷を手軽に予測する方法をご紹介します。あわせて、プログラムと連携して性能限界を越えそうなサーバがあるかを判定してみます。人手ではまかないきれない数のサーバに対して、一台ずつ問題の予兆を調べるときなどにお試しください。 ※CentOS 6.3 (64bit) + RRDTool の2013/2/20頃の最新ソースを用いて試しています 「限界」を早く知りたい! ITインフラを運用している方の多くは、Cacti, Munin等で負荷を日々モニタリングされているかと思います。モニタリングしたデータを用いて今後を予測する際、どのようにされていらっしゃいますでしょうか?描かれたチャートの動きをもとに、経験と勘を駆使して「ヨイショ!」っとされている方も、いらっしゃるのではないでしょうか。 特に、ディスク容量やネットワークトラフィック等、根本的な対策
公私共にchefを使っていて、テストにchefspecを使っていますが、RSpec系になじみがないからか、なかなか覚えられないのでチートシートにまとめます。 詳細や正確な情報は本家で確認してください。 本家:https://github.com/acrmp/chefspec specを書く上での準備 nodeの設定 cookbook, role, node等でattributesを定義していて、レシピの動作結果がこれに依存している場合は、convergeより先にnodeに値をセットする必要があります。 let( :chef_run ) do chef_run = ChefSpec::ChefRunner.new do |node| node.set['my_attribute'] = 'bar' node.set['my_other_attribute'] = {'hoge' => 'ba
はじめに In-A-Gist — Why Erlang? 最近はErlang関連のWeb書籍の翻訳をしてまして*1、Erlang関連のニュースなどを収集して読んでいます。そこでたまたま見つけた面白そうなエントリがあって、翻訳しようかなと思っていたら@voluntasの兄貴ご推薦ということなので、日常生活を取り戻すべく翻訳してみました。 このエントリはinagistというサービスの公式ブログで、ErlangでWebサービスを作ることの利点を説明したエントリです。多少補足や外部リンクが必要な部分は僕がリンクを貼ったりしているので、わからない場合はご参照ください。あと翻訳が怪しいところがあるのでツッコミ歓迎。 なぜErlangなのか よく私がinagistはErlangで書かれていると言うとおかしな目で見られることがあります。なので、ここでErlangが適している重要な点をいくつかあげようと思い
この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-Oriented Programming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。本文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を
JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう
What Every Programmer Should Know About Memory Ulrich Drepper Red Hat, Inc. drepper@redhat.com November 21, 2007 Abstract As CPU cores become both faster and more numerous, the limiting factor for most programs is now, and will be for some time, memory access. Hardware designers have come up with ever more sophisticated memory handling and acceleration techniques–such as CPU caches–but these canno
ApacheにはコンテンツのMIME-typeに応じてフィルターをかけるAddOutputFilterByTypeディレクティブがありますが、Apache 2.1 以降で非推奨になり、代わりにmod_filterでフィルターをかけることが勧められているようです。 しかしながら、mod_filterの実例があまりにも少ないため、どう使っていいか分からないのが現状です。なので、AddOutputFilterByType DEFLATE text/htmlを書き換えてみることにしました。 mod_deflateのドキュメントには、実例として画像以外をすべて圧縮する方法が以下のように書かれています。 <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems... BrowserMatc
Sidekiq とは Sidekiq とは Rails アプリで非同期処理を行うためのライブラリです。複数のジョブを同時に実行することができ、メモリを節約することができます。 ということで今回は Sidekiq の基本と使いかたをざっくりと学んでいきたいと思います。 Sidekiq を使ってみる インストール まず前提条件として Redis が必要なのでインストールしましょう。Redis はジョブの管理に使われています。 brew install redis インストールは Gemfile に追加して bundle install するだけです! vim Gemfile # gem 'sidekiq' を追加 bundle install Worker を実装する 非同期処理を行うクラスは Sidekiq::Worker を include してつくります。あとは perform メソッド
I have long been fascinated with iPhone apps and held up those who can make them as gods amongst men, as I do with plumbers, mechanics and just about anyone who possesses knowledge of things that to me seem unknowable. I like to think of myself as a dabbler in code, but really my strengths lie in design. I reasonably successfully taught myself PHP, Ruby (with the ongoing aid of Rik Lomas & Dan How
この記事は RubyMotion Advent Calendar 2012 の一日目の記事です。 RubyMotion を買ってみたけれどもまだ具体的なアプリ作りまでは進んでいない方向けに、RubyMotion で手っ取り早くアプリ開発を始める手順をまとめてみます。 API リファレンスを準備する RubyMotion での開発は Cocoa Touch フレームワークを直接使いますので、Cocoa Touch の API リファレンスを常に引けるようにしておいて下さい。 RubyMotion API Reference を見るか、iOS アプリの開発を既に経験されている方は Cocoa Touch のドキュメントを見るのが良いと思います。 RubyMotion 勉強会や RubyMotion もくもく会などで聞いてみたところ、Dash を使っている人が大多数でした。 Dash用の Rub
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
以前に作成した StopWatch アプリのテストケースを書いてみました。アクションメソッドを呼び出したりして、インスタンス変数で保持しているオブジェクトが、思い通り生成されているかテストしたくらいですが。 $ rake spec Build ./build/iPhoneSimulator-5.1-Development Compile ./spec/main_spec.rb Link ./build/iPhoneSimulator-5.1-Development/StopWatch_spec.app/StopWatch Create ./build/iPhoneSimulator-5.1-Development/StopWatch_spec.dSYM Simulate ./build/iPhoneSimulator-5.1-Development/StopWatch_spec.app A
ちょっと前に RubyMotion を触ってみてこれは面白いなと思いブログにでも書こうかと思った矢先にドラゴンクエスト10が発売してしまい、あれよあれよといううちに一ヶ月経ってしまいました。 それはさておき「るびも」こと RubyMotion ─ いや、るびもと呼んでいるのは自分だけですけど。Ruby で iOS のネイティブアプリが書けるというツールチェイン。コンパイラ、テストスイート、プロジェクト作成用スクリプトその他を含みます。主に CUI はターミナルでのコンパイルを想定していて、Xcode で開発するのに比べるとだいぶ *nix してるわーという気分になれる代物です。iOS アプリなのに Ruby! iOS アプリなのに CUI! ・・・ これだけでワクテカな方も多いかなと思います。 以下そんなるびもちゃんRubyMotion 様をざっと紹介していきたいと思います。なお、あらかじ
RubyMotion TutorialRuby で iOS アプリを作ろう by Clay Allsopp Follow @clayallsopp 日本語訳: RubyMotion JP RubyMotion を使うと Ruby で iOS のアプリを開発することができます。これまで Apple のプラットフォームにおけるソフトウェアは Objective-C という、素晴らしいがその一方でニッチな言語しか使用できないよう制限されてきました。RubyMotion は完全にネイティブで、効率の良い他の言語による開発を可能にします。その言語とは Ruby です。 RubyMotion Tutorial では iOS SDK をできる限り Ruby らしく使うために必要不可欠なトピックを学ぶことができます。すべてを網羅はしていませんが、洗練されたアプリケーションを最大限素早く開発するための道しる
Vagrant 1.1 がリリースされました。 Vagrant は仮想サーバーのフロントエンドのツール、詳しくは Vagrant - naoyaのはてなダイアリー あたりを。 で、この 1.1 が 1.0 → 1.1 という割に結構大きなアップデートで新しく VM に VirtualBox 以外のものが選択できるようになった。すなわち「VirtualBox のフロントエンド = Vagrant」から「各種仮想マシンのフロントエンド = Vagrant」という風にアップデートされた。 今回の 1.1 からVMを操作するproviderがプラグイン構造となり、VirtualBoxだけならず、公式で操作できる対象が増えました。 VirtualBox VMware Fusion Amazon EC2 + VPC Rackspace Cloud VMware Fusion以外はオープンソースで公開さ
深津さんの記事で取り上げられていて、Google Mapsアプリで使われているという、iOSのNimbusフレームワークをざっくり調べた。ソースコードを眺めて、何やってるのかなぁ?!使えるのかなぁ?!という日本語メモを書いています。ソースコードとオフィシャルドキュメントの構造に対応しています。 文章の中身は個人的なものなので適当ですいません。 テーブル生成を簡単にしてくれたり、外部アプリ連携コードを楽できたり、画像ビューワー機能の下地を提供してくれたりします。特定ユースケースに依存してる感があって、若干クセがありますが、うまくハマったら良いと思います。 Attributed Label 【特徴】 UILabelのサブクラス 【何に使うと美味しいの?】 自動リンク対応のリッチテキストViewが実現できる 【評価ポイント、雑感】 英語向けかもしれないので日本語で役に立つか Badge 【特徴】
概要主なパッケージiptables psad主な設定ファイル・ディレクトリ/etc/network/if-pre-up.d/iptables.sh (ファイル名は任意) /etc/psad/psad.conf /etc/rsyslog.conf主な要件ルーターマシンにおける設定をおこなう。 Internet側からのアクセスには制限をかけ、LAN側からのアクセスは許可する。 IPマスカレードを行い、パケット転送を行う。 PSADによりポートスキャンを検出する。参考$ man interfaces $ man iptables $ man psad http://www.cyberciti.biz/faq/linux-detect-port-scan-attacks/基本方針iptablesはコマンドによりルールを設定していくが、通常はスクリプトファイルとして作成し、一度に実行する。 スクリプ
Java for OS X 2014-001:Apple 提供の Java SE 6 Web プラグインと Web Start 機能を再び有効にする方法 Apple 提供の Java SE 6 Web プラグインと Web Start 機能を OS X Lion 以降で再び有効にする方法を説明します。 Java for OS X 2014-001 および最新バージョンの Oracle Java 7 をインストールした後に、Java 7 を無効にして、Apple 提供の Java SE 6 Web プラグインと Web Start 機能を再び有効にしたい場合は、以下の手順を実行します。 注意:必ず管理者としてログインする必要があります。コマンドの後に管理者パスワードを求めるプロンプトが表示される場合は、パスワードを入力して、「return」または「Enter」キーを押してください。 ターミナ
(2014/6/3 追記) MailCatcher がおすすめです。 MailCatcher (追記おわり) メールをどこにも送らずHTMLで保存するSMTPサーバ mocksmtpd.rb - こせきの技術日記 が評判よかったので、気をよくしてgithubでgemを作ってみました。 http://github.com/koseki/mocksmtpd/ インストール方法 $ gem sources -a http://gems.github.com $ sudo gem install koseki-mocksmtpdgem本体を最新版にしといたほうがいいかもしれません。 使い方 一番簡単な使い方。 # 設定ファイル、ディレクトリを作成。 $ mocksmtpd init # コンソールモードで起動。 $ cd ./mocksmtpd $ sudo mocksmtpdinitで設定ファイ
開発メモその5です。表題どおり EC2 インスタンスの Amazon Linux で knife-solo を使う話。 開発メモ#4 : EC2スナップショットとの差分は chef-solo で解決 - naoyaのはてなダイアリー で、chef-solo を使って EC2 の環境管理をしていると書きました。うち chef-solo の実行は capistrano like な perl のデプロイツール Cinnamon に任せている、という旨を述べました。 が、件のデプロイツール任せだと chef-solo 実行の度にレポジトリ経由でレシピをサーバー側に転送する必要がある。自分は github を使っているので github に push してサーバー側で fetchc される。デプロイツールがこの辺をやってくれるとは言え、レシピの動作確認のためにちゃんと動くことが保証されていないレシ
前の記事「HTML5でモダンブラウザのCSS3バグを回避するためのハック方法」に関連して、jQuery で HTML5 データ属性にユーザーエジェント文字列を格納する方法を調べていました。その結果、ちょっと整理をしておいた方が良いかなと思う点を共有したいと思います。 ご存知の方も多いと思いますが、jQuery には .data() や jQuery.data() という、DOM 要素に データ を紐付けて記憶しておく仕組みが元々ありました。jQuery 1.4.3 からは、 API レベルでの 親和性 が考慮された形で HTML5 data-* 属性を取り込む仕様が導入されました。 HTML5 時代では、クライアント・サイドで実行されるコード量も増え、データ属性を扱う機会もちょくちょく出てくるのではないでしょうか。そこで今回は、 HTML5 data-* 属性のおさらい jQuery Da
弁当生活始めました。agoです。 以前のjavascriptの開発はサーバサイドと同じPGが開発することが多く、機能をファイル単位で分割してそのページで必要なファイルのみを読み込むと言うことが行われていました。 ただ、最近はサーバサイドとクライアントサイドの分業が進んだことや表示速度の兼ね合いもあり、単一ファイルに全体を記述しサーバサイドでは全ページでその一ファイルのみを読み込むような形になることが多いです。 単一ファイルの利点としてはサーバサイドの実装に依存せずに任意の機能を追加できることがありますが、欠点として機能毎の切り分けが難しくなると言う点があります。 jQueryを使用して$('.selector')で切り出す方法もありますが、マークアップの全体像を正確に把握できていないと不要なページで間違って実行されてしまう危険性もあります。 そこで、以下のようなJSを先に読み込み、各URL
今日は以前の「Ubuntuのvimを快適にする」の続きとして、今日は文字コードの自動判別の設定を紹介します。 最近のディストリビューションでは、デフォルトのロケールが UTF-8 になっているので、CJKフォント(China, Japan, Korea……要はアジア系文字のフォント)さえ入っていれば、いちいちロケールを切り替えなくても、日本語でも韓国語でも表示できてしまいます。なので、コマンドの出力などでは、特に意識しなくとも、文字化けすることは殆どありません。 vimも標準で文字コードの自動判別や変換に対応していますので、どのような文字コードで書かれたファイルでもきちんと読み書きできるのですが、自動判別を上手く効かせるためには、多少設定してやる必要があります。 .vimrc の設定 私が使っている自動判別の設定は以下の通りです。~/.vimrc ファイルの末尾に追加してみてください。 :
この記事は最終更新から1年以上経過しています。 気をつけてね。 Chef,Puppetに代表される自動構築・構成管理ツールを使うと開発したサーバを検証用などの目的で簡単に再現可能になります。 ただ、漠然としたサーバ構築をしていると何をサービス提供しているのかという定義が曖昧になるため、Cucumber等を使ったテストを軸にテスト駆動でのサーバ構築をしてみましょう。 応用すれば既存のサーバをCucumberによってモデリングし、Chefによって繰り返し再現可能な状態に持っていけます。 このコンテンツで使ったコードはGithubの https://github.com/higanworks/test_driven_infrastructure_example で公開しています、参考にしてみたりフィードバックしてもらえると助かります。 ツール Cucumber: "ふるまい"を自然言語のように記
Foodcritic has two goals: To make it easier to flag problems in your Chef cookbooks that will cause Chef to blow up when you attempt to converge. This is about faster feedback. If you automate checks for common problems you can save a lot of time. To encourage discussion within the Chef community on the more subjective stuff - what does a good cookbook look like? Opscode have avoided being overly
こんにちわ。債務者ことゆろよろです。家買いました。 さて、最近こんなまとめが話題になりました。自分もコメントしましたが、すごい情報量になってます。 これ知らないプログラマって損してんなって思う汎用的なツール #JavaScript #PHP #Ruby #Python #HTML - Qiita 【まとめ】これ知らないプログラマって損してんなって思う汎用的なツール 100超 #PHP #JavaScript #Python #Ruby #HTML - Qiita で、自分のコメントにも書いたのだけど、基本的に仕事はターミナルでssh接続して、Vimでコード書いてるので、この辺の環境構築についてまとめてみた。最近Terminal.appからiTerm2に移行して、screenからtmuxに乗り換えたので、その辺も含めて導入方法を書いておく。 手元の端末はMBPでOSX Lionだけど、ほぼ同
タイトルは↓の記事へのオマージュです。 Mac で GNU screen を使う時にやるべきたった一行の設定 - #生存戦略 、それは - subtech ここで紹介されてる termcapinfo xterm* ti@:te@ について調べました。ここの FAQ に詳しく書いてありますが、ちょっと分かりにくいので順を追って説明します。 普通のターミナルで、less などのフルスクリーンプログラムを開いて、 ここで終了すると、 こうなりますよね? ところが、GNU screen の中だと、デフォルトではこうなってしまいます。 これは、普通のターミナルの alternate screen という機能を使って「別画面で」フルスクリーンプログラムを実行しているからです。screen の中では alternate screen が有効ではないので、普段の感覚と違っていつもムキーってなります。このせ
Git Advent Calendar / Jun. 21日目の記事の転載です。 今回の記事では、gitのfilter-branchを紹介します。 filter-branchとはこれは、大量のコミットの書き換えを機械的に行うオプションです。 (filter-branch自体はシェルスクリプトで書かれています。) これを使うとレポジトリの歴史上からコミットされたファイルを完全に抹消することができます! 今回、ファイルを抹消するためにfilter-branchの–index-filterオプションを使います。 使うシチュエーションこんな怖いオプションどこで使うのかというと、例えば下記のようなシチュエーションが考えられます。 パスワードファイルを間違ってcommitしてしまった or やんごとなき事情により削除したい巨大なファイルを間違ってcommitしてしまった1コミットだけなら良いのですが、
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
UNIX V5, OpenBSD, Plan 9, FreeBSD, and GNU coreutils implementations of echo.c UNIX Fifth Editionのecho.cは、以下のような実装になっている。 main(argc, argv) int argc; char *argv[]; { int i; argc--; for(i=1; i<=argc; i++) printf("%s%c", argv[i], i==argc? '\n': ' '); } いかにも昔のC言語らしいコードだ。ヘッダーの#includeはなく、関数の戻り値の型も指定されない。仮引数の型も、今となっては物珍しいだろうが後書きだ。 OpenBSDのコードは以下の通り。 /* $OpenBSD: echo.c,v 1.7 2009/10/27 23:59:21 deraadt
Nginxとnode.jsをHAProxy+stunnelでまとめる方法についてまとめています。 サーバーの構成は以下のようになります。 前回の記事はHAProxyのインストールまで紹介しました。 http://d.hatena.ne.jp/hrendoh/20120328/1332917793 今回は、HAProxyでNginxとnode.jsのサーバーに振り分ける設定方法と、各種パラメータについて実際の設定例を基にまとめてみます。 設定のリファレンスは、公式サイトのDocumentページにリンクがあるテキストのものと、Google codeにも同じ内容のものがまとまっています。 http://haproxy.1wt.eu/download/1.4/doc/configuration.txt http://code.google.com/p/haproxy-docs/ Google co
A slide for the hands-on session at Scala Kansai Summit 2018, originally presented by Kitora-san in 2017. 15.7.11 HiRoshima.R #4 Lightning Talks @imyuaotiの発表資料です。 ※注意※(2015.7.19追記) Rでは処理速度が遅いという理由で for関数の使用は避けるべきと考えられています。 本来は,処理を高速化をしたい場合,以下をうまく活用してください。 ・apply関数 ・foreachパッケージ,pforeachパッケージ 【参考資料】 「勝手に添削:for関数を使った繰り返し処理によるヒストグラムの一括出力 #rstatsj」 http://qiita.com/hoxo_m/items/5127c31f3eafd6be7428 (h
Facebook社は「Meta」に生まれ変わりました。2022年2月8日にプラットフォーム利用規約を更新し、新社名を反映させました。社名は変わりましたが、Metaは、Facebookアプリなどの同じ製品を引き続き提供していきます。弊社のデータに関するポリシーと利用規約は引き続き有効であり、この社名変更によって弊社によるデータの利用・共有方法に影響が及ぶことはありません。Metaおよびメタバースに関する弊社のビジョンについて詳しくはこちら。 以下のMetaプラットフォーム利用規約および開発者ポリシーは当初、2020年8月31日付けで有効になりました。これらによって、従来のFacebookプラットフォームポリシー、従来のInstagramプラットフォームポリシー、拡張プラットフォーム製品に関する補足規約、および前記補足規約の技術提供者修正条項が差し替えられました。詳しくはこちら。
はじめに以下の規定、ならびにプライバシーポリシー、コミュニティ規定および利用規約は、ページ、グループおよびイベントの作成者と管理者に適用されます。弊社のサービスの利用方法によっては、開発者ポリシーを含むその他の利用規約とポリシーも適用される可能性があることに注意してください。 ページ、グループおよびイベントは、共通の趣味・関心を持つコミュニティを構築する上で役に立ちます。管理者は、コミュニティのリーダー、代表者およびまとめ役を務めます。管理者には、自分の主張を本心に偽りなく表現し、コミュニティの安全と心身の健康を守ることが求められます。 管理者がポリシーに違反するコンテンツを作成した(または、グループの管理者またはモデレーターが、その他の人による違反コンテンツを承認した)場合、弊社は、当該コンテンツが表示されているページ、グループまたはイベントに対して措置を講じる場合があります。 コミュニ
Throughout my internship at CustomInk, I've put a significant focus on Chef cookbook testing. At the time of this writing, there are a few solutions for testing cookbooks - ChefSpec, cucumber-chef, minitest-chef-handler, and rspec-chef – and they each have their own distinct advantages. At the very least, you should run knife cookbook test and foodcritic against all your cookbooks. Nathen Harvey c
1–1 of 1 previous next Robert Berger, CTO at Runa Inc. This was a GREAT presentation. Its not so much (almost nothing :-) on the Berkshelf program, but EXCELLENT meta guide to using Opscode Chef. I wish I had this when I started using Chef. And as someone who has been using Chef since 0.8.x I learnt several things from this presentation that will make my future use of Chef much better. 13 minutes
UNIX系のOSで利用できるWebサーバの性能測定ツールといえば、Apache Benchやhttperfを思い浮かべる人が多いのではないでしょうか。これらの計測ツールは、残念ながら最近の高速なWebサーバを計測するには非力です。この記事では、高速なWebサーバにも負けないweighttpの使い方を紹介します。 weighttpとは何か weighttpは、Webサーバlighttpdの開発者が実装したWebサーバの性能測定ツールです。以下のような特徴を持ちます。 Webサーバのスループット(リクエスト毎秒)を測定できる ネイティブスレッドを複数起動し測定性能を向上できる libevを利用することで、モダンなポール・システムコールを利用する Apache Benchによく似たコマンドラインオプションを持つ 2.は Apache Benchやhttperfにはない機能です。ここが決定的に異な
私のneocomplcacheの設定を公開します。たまにIDEに浮気しますが、基本的にはVimでPHPを書いています。 ある程度ノウハウが溜まってきたのでこのあたりで私の設定を公開してみます。neocomplcacheはその機能の豊富さゆえに使いこなすのがとても難しいと感じています。 この設定にたどり着くまでにずいぶん試行錯誤を繰り返しました。マニュアルもたくさん読みました。補完が重い状況が改善されず、1日中設定を調節していたこともあります。「ここはこうしてみてはどうか」「その設定は機能していないよ」といったご意見がございましたらコメントいただければ幸いです。 動作確認環境 Vim7.3neocomplcache6.1vimproc5.3 目次 neocomplcacheのインストール vimprocのインストール vimrc シンタックス補完を無効に ディクショナリ補完の利用 インクルー
googleカレンダーが,iCalには委任アドレスを含め同期できるが,iPhone, iCloudと同期できない iPhone4を使っています。iOSは,最新のiOS 5.0.1にアップデートしました。 Macは,Macbook Pro15インチ,OSはLionを使っています。 これまでは(iOSが以前のもので,MacのOSはSnowleopard),googleカレンダーに自分アドレスのものを2つ,そして家族と共有したいカレンダーを4つ,同期させてiCal,iPhone4ともgoogleカレンダーのとおりに反映できていました。 しかし,iCloudを設定してから,iPhone4上では自分のアドレスが一つだけ同期され,それ以外は同期できません。 iCalはあまり使っていなかったのですが,Lion上でiCalを起動し,環境設定で,自分のgoogleアドレスと,家族と共有カレンダーを委任で表示
2013-04-25 vol.14 渋谷で篠田麻里子系ショート美女をナンパしてみる。 本日のお相手 ◆篠田麻里子系ショート美女 ◆20歳半ば ◆サバサバしてそう ナンパの際のトークは基本使い回しで問題ありません。 なぜなら、一度ナンパした子を再びナンパしてしまうことはほぼ確実にないからです。あったとしても相手は覚えていません。 「前もその話し方でナンパしてきたよね」という恥ずかしい展開になることはまずないので、第一声や話の組み立て方はある程度マニュアル化できるのです。今回は、モデル系美女に声をかけるときのパターンをシュミレーションしてみましょう。 シチュエーション 宮益坂から駅に向かう、しのまり系ショート美女をナンパしてみましょう。 実践 こんばんはー ・・・はい? お姉さん今からどちらへ!? あーもう帰ります。 やはり!どうりで駅に向かってらっしゃるはずです!でもお姉さん!ここは明日の
When using chef, I have often faced the problem of having to insert a line into an existing file. The way I solved this before, was to use bash. bash "insert_line" do user "root" code <<-EOS echo "172.22.0.47 www.example.com" >> /etc/hosts EOS not_if "grep -q www.example.com /etc/hosts" end The Chef (or better the Ruby) way to do this is the following: ruby_block "insert_line" do block do file
Zabbix study - SSSSLIDE で紹介されていた手法を使っています。ありがとうございます。 zabbix agentからUserParameterで外部スクリプトを起動し、そこからzabbix_senderで複数の値を登録するという手法です。 まず、mysqlをモニタリングするユーザの作成と権限付与を行います。PROCESS権限が必要です。 5.3.1. Creating a MySQL User Account for the Monitor Agent grant process on *.* to '${Your_mysql_user_here}'@'${Your_mysql_server_here}' identified by '${Your_mysql_password_here}';
postfixの続き 今まで何となく使っていましたが、大分理解できました。 結局の所、 main.cfはpostfixの全体の設定で、 master.cfは各デーモン毎の設定となり、-oオプションでmain.cfの設定を上書きする。 後は各デーモン毎に個別の設定となる。 携帯への配送について 携帯への配送について検索で適当に調べたメモ(未確認、要検証)。 確実に配送したいなら下記の設定にする。 smtp_destination_concurrency_limit = 1 smtp_destination_recipient_limit = 1smtp_destination_concurrency_limitが配送先毎のプロセス数で、smtp_destination_concurrency_limitが受信者に対する並列数の設定。 高速配送するならsmtp_destination_reci
docomoのアドレスにメールを送っても、しばらくすると「Undelivered Mail Returned to Sender」または「Mail System Error – Returned Mail」といったエラーメールが返ってきて、メールが届かないことが多く発生しています。携帯からは遅れる正しいドコモのメールアドレスなのに、PCから送った時だけ送れない場合の、原因の調べ方と対処法について説明します。 550 Unknown userの意味reason:550 Unknown userの意味は、1.アドレスが間違っている 2.アドレスが存在していない 事を意味します。ただし、ドコモやauやソフトバンクなどのキャリアでは、迷惑メール対策として reason:550 Unknown user エラーを返すことがあります。 ドコモのメールに送信して550 Unknown user が返って
携帯電話宛バウンスの見分け 日本の携帯電話、例えばNTT docomo(ドコモ)にメールを送ってバウンスしてくる場合、 その多くが宛先不明かドメイン指定拒否によるものです。 宛先不明もドメイン指定拒否も、どちらのバウンスメールも内容は Unknown User と書かれていて、一見しただけでは判別しにくいのですが、よく観察すると僅かな違いがあります。 戻ってきたバウンスメールが、どのMTA(メールサーバ)で作られたものであるかは 文面や構造をよく見ないと判別できませんので、より詳細な解析結果が必要な場合は Sisimaiによる解析をお試しください。 Sisimaiは携帯電話宛バウンスメールの宛先不明を userunknownと、 ドメイン指定拒否をfiltered として自動で区別して検出しますが、ここでは目視による簡単な判別方法を紹介します。 初出: bouncehammer.jp/..
jwboyer: Fedora and Ubuntu Kernel Config Comparison Red HatのJosh BoyerがFedoraとUbuntuのLinuxカーネル設定を比較している。 たまに、私は洞穴の中、つまりbugzillaから這い出てあたりを見回し、他のディストロのカーネルスペースがどうなっているのか調べる。今日、私はFedoraとUbuntuのカーネル設定の違いについて興味を持った。私は常々、カーネルは注目されるものの、ディストロの中では最も退屈なパッケージであると考えている。カーネルは動くべきであるし、良く動くべきであるし、それだけだ。ディストロを差別化するために存在するのではない。ディストロを動かすために存在するのだ。さて、私の説は正しいのか、あるいは設定の中に、あるディストロを別のディストロと差別化するための何かが含まれているのだろうか。さて、調べて
普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す Linux などの多くの Unix 的なOS には ptrace というシステムコールがあります。 ptrace を使うと実行中のプロセスに対して、レジスタの書き換えやメモリ上のデータの書き換えといったさまざまな操作を行うことができます。 普通のやつらの下を行けの第6回として、今回は ptrace を使って実行中のプロセスにちょっかいを出す方法を取り上げたいと思います。 ptrace とは デバッガの理論と実装 に次のような記述があります。 Unix の ptrace() は本物のデバッガ API (アプリケーションプログラムインターフェイス) の一例であり、商品に相応しい品質を持ったデバッガをサポートするために設計された、最初の専用 API の1つである。 ptrace はデバッガ用に作られた API のようで
Linuxにroot ユーザーのログインをロックします。 sudo usermod -L root shadowで止めるだけ。 sudo vipw -s で確認 (パス無効化状態) ロックをするとか書いたけれど、パスワードを無効にした。 単純にパスワードを絶対に通らないパスワードにしたということである。 元の状態 元の状態に戻すには。 usermod -U root(093e1b4f773068c4467d1c19721dccdc) 元通りです。 man usermod によると -L ユーザのパスワードをロックする。 これは暗号化されたパスワードの前に '!' を追加し、 実質的にパスワードを無効にする。 このオプションを -p や -U と同時に用いることはできない。 -U ユーザのパスワードをアンロックする。 これは暗号化されたパスワードの先頭の '!' を取り除く。 このオプション
Postfix Rate Controls 上のレベルへ | 基本設定 | UCE 制御 | 速度制御 | リソース 制御 | アドレス操作 イントロダクション ハイパフォーマンスなメール配送システムを作るのと、他のシステムを 倒さないハイパフォーマンスなメール配送システムを作るのは違うことです。 大群(thundering herd) シンドロームに病んでいるメーラが あります: 文字通りメールで他のシステムを氾濫させます。 Postfix は高速なメーラであると同時に、よき隣人であろうとします。 内向きに関しては、Postfix SMTP サーバ は悪意があったり混乱したクライアントに対して適切に防御します。 インフラストラクチャに対する激しい Denial of Service 攻撃に対する 保護はしませんが、これにはプラグを抜く以外の対処法はないでしょう。 特に指示がなければ、ここ
Postfix でメールの送信量を制限するやり方です。/etc/postfix/main.cf を編集します。 まず1クライアントからの単位時間当たりの送信数を制限する方法です。単位時間のデフォルトは 60 秒で、送信数は無制限です。 # 単位時間は記述しなければデフォルトが60s anvil_rate_time_unit = 60s # 単位時間あたりの送信数を 100 通に制限 smtpd_client_message_rate_limit = 100 単位時間あたりの受信者数の制限もできます。単位時間あたりにこの数の宛先に達するまでメールを送信できます。人間の感覚で10通とか少なめにしすぎてしまうと、CGI やデーモンなどからのメール、メーリングリストなどで使っている場合に制限に簡単に引っかかりますので注意しましょう。 # 単位時間あたりの受信アドレスを 200 通に制限 smtpd
Kodama's home / tips. postfix の負荷の調査とチューニング 事例の紹介 postfix の負荷の調査 postfix の構成 ネットワークポートの利用状況 UNIX ソケットの利用状況 プロセスの起動状況 送信キューの状況 メモリー使用量 同時オープンファイル数 調査手順のまとめ 負荷への対応をチューニングするポイント プロセスの同時起動数 ファイルの同時オープン数 キューの滞留時間 受信の制限 syslogd の動作 事例の紹介 調査スクリプト( 調査手順のまとめ 参照) を cron で1時間毎に起動して, メールとして保管しておいた. メールの利用には mew を用いているので, 収集したメールは個別のファイルになって, ファイル名に番号を振って保存されている. まず, mailq の滞留数の部分を取り出す. ls|sort -n|xargs -l gre
You are here » Home Page » Articles » Different SMTP relays in postfix based on regular expressions Use Case: Choosing SMTP routes based on the email subject So I had this particular situation where a site sends lots of emails to its registered users, and some of those emails go directly to the Spam folder of hotmail, yahoo, or gmail, for various reasons. This was acceptable for the majority
Note The IUS Community Project is aimed at providing up to date and regularly maintained RPM packages for the latest upstream versions of PHP, Python, MySQL and other common software specifically for Redhat Enterprise Linux. IUS can be thought of as a better way to upgrade RHEL, when you need to. History¶ The IUS Community Project is a brain child of the RPM Development Team at Rackspace Hosting.
# ohai-6.16.0/lib/ohai/plugins/ec2.rb def has_ec2_mac? network[:interfaces].values.each do |iface| unless iface[:arp].nil? if iface[:arp].value?("fe:ff:ff:ff:ff:ff") Ohai::Log.debug("has_ec2_mac? == true") return true end end end Ohai::Log.debug("has_ec2_mac? == false") false end しかし、VPC 内ではこのメソッドは false を返すため、EC2 であると判定されない。/etc/chef/ohai/hints/ec2.json があれば、このメソッドを使うことなく、EC2 であると判定するようになる ちなみに /
とあるサーバから、あるサーバに接続したとき、あるサーバに残るアクセスログの接続元 IP アドレスをラウンドロビン的に変更することが必要になったので調査してみた。そうすると、iptables を使うとできるというまさにぴったりの記事を発見した。 さっそく、CentOS で試してみると、iptables の libipt_statistic モジュールがないというエラーになってしまった。次に RedHat のページを調べていると、Bug 215361 – iptables is missing /lib/iptables/libipt_statistic.so というまさにぴったりな情報が見つかった。その情報では、iptables バージョン 1.3.6 から追加されたとあったので、さっそく netfilter iptables バージョン 1.3.6 のページの変更点を調べてみると、たしかに
command1 > out1 command2 > out2 diff out1 out2 rm -f out1 out2 これは Process Substitution という名前の機能です。 ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。
はじめに 最近話題の(?)Chefの環境をCentOS 6.3上に構築し、レシピの書き方の基本的な事を説明する。 Chef Solo環境構築に関する公式ドキュメントはこちら そこにOS別のインストールドキュメントがあるが、CentOSなどのRed Hat系はこちら。基本はこれに沿ってやっていくが、本記事では一部これとは違う内容もあるので注意。 Chefのインストール RBELレポジトリというのを有効にする。 $ sudo rpm -Uvh http://rbel.frameos.org/rbel6次にRuby関連のパッケージをインストール。 $ sudo yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecodeドキュメントだとRuby
AmazonEC2のサーバのCPUは、ECUという単位の処理能力で表現されます。標準的なインスタンスである、m1.small, m1.large, m1.xlargeでは、それぞれ、1ECU*1コア, 2ECU*2コア, 2ECU*4コアという風に表されています。ここで気になるのは、m1.smallだけ、1コア当たりの処理能力が低いという事実です。m1.small以外のインスタンスではCPUコア当たりの処理能力は2ECUなのですが、m1.smallだけは1ECUです。m1.smallだけ異なるCPUが割り当てられているとは考えづらいので、おそらく時分割で共有しているのでしょう。Amazonのサイトで具体的な記述を見つけることが出来なかったので、実際に検証してみました。 スモール インスタンス – デフォルト* 1.7 GB メモリ 1 ECU(1 ECU × 1仮想コア) 160 GB イ
子供のころからできるだけ手抜きして成果を挙げることだけは長けている山本です。 今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグは gdb などでソース追いながらデバッグできますが、運用中ですと strip していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。 Step1. スタックトレースを出力する こんな関数を用意しましょう。Linux 以外の人はそれなりに実装してください。 #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,
ZABBIX 2.0 の新機能、ローレベルディスカバリ(Low Level Discovery、以下 LLD)は、自動的にアイテム・トリガ・グラフを生成してくれるもの。サーバ内の状況に応じ、動的に監視対象を変化させる事ができます。 本記事は、LLD の概要と、実際に設定を行うチュートリアルで構成しました。既に公式ドキュメントを読まれた方には、不要かと思います。自分が理解に時間がかかってしまったので、、これから LLD を始める方が迷わないようにと、チュートリアル形式で記事をまとめてみました(SNMP の効率的な OID データ収集に関しては、途中記事を飛ばして読んでいただいて構いません。) 本記事の概要 Zabbix 2.0 からローレベルディスカバリ機能(LLD)が使えるようになった。 検出用の標準キーは3種類(vfs.fs.discovery=ファイルシステム検出、net.if.di
調べる気になった事の発端は、Cinder+Cephのボリュームに対してMySQLのtpccベンチマークを取ってみた時に、vCPU=1 でVM内では CPU : 100% なのに、KVMプロセスのCPUが 300% を超えているのを見つけたことでした。 KVMは仮想環境なので当然オーバーヘッドが存在するのは覚悟済みですが、想像以上にホストOS上でCPUを食っていたために、良い子の私は地道に調べ始めるのでした。 検証環境 CPUとメモリ ホストOSのcpuinfoの表示ですが Intel(R) Xeon(R) CPU E5-2630L 0 @ 2.00GHz VMだとこう Intel Xeon E312xx (Sandy Bridge) まぁほどほどに最近の、お値打ち価格になってきた低電力版なナイスCPUです。 VMへは 1~4vCPU 割り当てて検証しています。 VMに割り当てたメモリは全て
Page: 1 MySQLのプロトコル解説 とみたまさひろ 日本MySQLユーザ会 MyNA会 2013/07/29 MySQLのプロトコル解説 Powered by Rabbit 2.1.1 Page: 2 自己紹介 とみた まさひろ MySQLユーザ会 (名ばかり代表) 長野県北部在住 プログラマー (Ruby & C) http://tmtms.hatenablog.com http://twitter.com/tmtms https://github.com/tmtm/ruby-mysql MySQLのプロトコル解説 Powered by Rabbit 2.1.1 Page: 3 趣味 誰も使わないRubyライブラリを作ったり MySQL の yacc ファイル読んだり マンガ読んだり 聖悠紀 / 佐々木淳子 / 岡崎二郎 / 星野之宣 / 長谷川裕一 / 島本和彦 / 桑田乃梨子
DNSの逆引き設定 今まで逆引き設定していなかったメールサーバから送ったメールには Received: from sv.domain.com (sv.domain.com [127.0.0.1]) by mail.domain.com (Postfix) with SMTP id… のようなヘッダとなっていて、localhost(127.0.0.1)から送られたものだとされていた。 これが迷惑メールとされる一因なので、mail.domain.com はちゃんとしたサーバですよー、と知らせるためにグローバルなIPアドレスをあててあげる。 DNSの逆引きはドメインの管理とは関係ないので、回線業者が提供するサイトなりツールから設定。メールサーバのドメインが mail.domain.com、IPアドレスが111.222.33.4 の場合。 111.222.33.4にmail.domain.comを
あくまでも、ファイル名から拡張子を判断するだけ。 以下に、$filenameとして与えられたファイルが拡張子.gzを持つかどうかを確認するシェルスクリプトのサンプルを示す。 Caseを使うケース。 非常に素直。 #!/bin/sh case "$filename" in *\.gz) echo "Found .gz suffix" ;; *) echo "Not a .gz suffix" ;; esac basenameを使うケース。 #!/bin/sh # `basename $filename .gz` returns `basename $filename` # *unless* it has a .gz suffix. [ `basename $filename .gz` = `basename $filename` ] || { echo $filename has a .gz
How to use Apdex The Apdex score is a ratio value of the number of satisfied and tolerating requests to the total requests made. Each satisfied request counts as one request, while each tolerating request counts as half a satisfied request. An Apdex score varies from 0 to 1, with 0 as the worst possible score (100% of response times were Frustrated), and 1 as the best possible score (100% of respo
Index 一言 Terminalログアウト後もプロセスを残す プロセスの2重起動防止 簡単に不要なプロセスをkillする tmuxの薦め 一言 はてなって不思議なコミュニティーで具体的な実装や調査分析よりも便利なコマンドとかを紹介するネタが何故か重宝されるようなので、良く使うプロセス管理系コマンドの初歩テクニックを書いてみます。( コマンドの学習をより必要とする人が多く一般的な話だからでしょうか? ) Terminalログアウト後もプロセスを残す 単一の処理で長時間かかってしまうようなプログラムを実行後にログアウトするとプロセスが消えて悲惨な目に遭います。tmuxやscreenを使って再起動可能な設定をしている人は特に気にする必要はありませんが、これらを使っていない場合はnohupでログアウト後もプロセスを残しましょう。 $ vi nohuptest.sh #!/bin/sh sleep
Linuxは世界中の数十にも及ぶ言語で使われている。Linuxのソースコードはフリーかつオープンなので、例え大企業が少数言語の利用者向け市場を価値あるものと認めなかったとしても、少数言語の話者は自分たちの言語サポートを追加することができる。複数の言語、または英語以外の言語を使う場合は、各種言語をサポートするためにLinuxがロケールをどのように用いるのかを知っておく必要がある。実際、ロケールを理解しておくことは、英語しか使わない場合でも役に立つことがある。 ロケールの選択は、環境変数の設定によって行う。各種の環境変数によってさまざまな設定が行える。LC_MESSAGESは、言語と、メッセージのエンコーディングを指定する。また、GUIコンポーネントがGNUのgettextまたはその類のものを使って翻訳結果を取得する場合は、そのラベルに対するエンコーディングもLC_MESSAGESによって決ま
ツチノコブログのWEBサーバベンチマークツール比較の記事で紹介されていた。WebサーバのG-WAN。この記事によると凄く速いようです。 Intel Xeon E5-2640 (6コア/12スレッド 2.50GHz) を2つというサーバで gwan 334944 req/s nginx 111842 req/s と、速いと言われているnginxの3倍の速度を出しています。 このベンチマーク結果がとても気になったので、なぜG-WANが速いのか、自分でも検証してみました。 結論から言うと以下の2つ。 1) G-WANはデフォルトで物理CPUに合わせた数のスレッドを起動する 2) HTMLファイルも一度読み込んでキャッシュする という事です。 今回はAWSのcc2.8xlarge(E5-2670 8コア/16スレッド 2.60GHz *2)を使ってベンチマークを行いました。OSはAmazon L
日本アニメ初の快挙!海外アニメ賞を受賞した『スキップとローファー』海外ライセンス部長&プロデューサーが語る、奮闘の舞台裏
This article is part 2 of a series about building a high-performance web cluster powerful enough to handle 3 million requests per second. For this part of the project, you can use any web server you like. I decided to use Nginx, because it’s lightweight, reliable, and fast. Generally, a properly tuned Nginx server on Linux can handle 500,000 – 600,000 requests per second. My Nginx servers consiste
nginxにはworker_processesというパラメータがあります。 NginxのWiki の Coreモジュールのページには、次のような説明があります。 A worker process is a single-threaded process. If Nginx is doing CPU-intensive work such as SSL or gzipping and you have 2 or more CPUs/cores, then you may set worker_processes to be equal to the number of CPUs or cores. If you are serving a lot of static files and the total size of the files is bigger than the availa
VPSの構築の際に書いたnginxのconfファイルですが、どうもマルチサイトだとアーカイブなどが正しく動いていないみたい。設定ファイル自体もその前に構築した際に検索しまくってつぎはぎで作ったものだったので、これを機にいろいろ修正しました。 前回の記事を参考にしていただいた方は申し訳ありません。 ※VPSの記事から来ていただいた方もこちらの手順と合わせて進めてもらえるよう、nginxの設定部分について全て書いてあります。 この記事の内容 nginx.confファイルを編集する 共通confファイルを作成する サイト毎のconfファイルを作成する(リバースプロキシ部分) サイト毎のconfファイルを作成する(バックエンド部分) Nginx Cache Controller でモバイル用のキャッシュも削除する 終わりに nginx.confファイルを編集する まず worker_proces
↓モチベーション維持のため1日1ポチをお願いします。m(_ _ )m にほんブログ村 2014/10/24追記 最新のモバイルsuicaアプリにアップデートした場合、新しいチェックが追加されたようです。 その要件について検証を行いましたので、下記記事をご参照ください。 ↓検証記事はこちら。 ★ 解約したスマホでモバイルSuicaを使う際の注意。simカードの正当性を確認の仕様変更 2014/10/11追記 最新のモバイルsuicaアプリにアップデートを行ったところ、下記方法でモバイルsuicaアプリにアクセスすることができなくなりました。 どうやら、simカードの正当性を確認するように仕様が変更されたようです。 ですので、2014/10/11現在、アプリをつかってクレジットカードチャージはできなくなっております。 ご注意ください。 さて、昨日の「【解約後のスマホで使える?】モバイルsuic
何度目かのクリーンインストールをした時にログインシェルを変更するのを忘れていたのでメモ。 homebrew でインストールした zsh はそのままではログインシェルとして使うことができない。 なので、シェルの PATH を通す必要がある。 homebrew で zsh のインストール Mac の zsh は起動時に PATH をリセットしてしまう。 対応方法としては brew info zsh に記述されているので、それに沿ってインストールを行う。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 % brew info zsh ==> Options --disable-etcdir Disable the reading of Zsh rc files in /etc ==> Caveats To use this build of Zsh as your log
Amazon SNS Mobile Push 以下の画像をご覧ください。キタコレ! がしかし、諏訪くんに先を超されてしまいしたw。こちらでは、Amazon SNSを使ってApple iOS端末にプッシュ通知したいと思います。Androidな方は以下の記事をご覧ください。 [AWS] Amazon SNS の新機能「Mobile Push」を Android で使ってみた Apple Push Notification Services(APNS) APNSは、Appleが管理するiOS端末宛のプッシュ通知サービスです。今まで、このプッシュ通知を使うためには、BaaSや自前での構築が必要でしたが、今回の新機能によってAWSがやってくれるんですね!本記事では、Amazon SNSからMobile Pushを使ってAPNS経由でiOS端末に通知をすることができることをご紹介したいと思います。 プ
AWSの様々な通知に使用されているSNSというサービスがありますが、メーリングリストなどで受信した誰かが通知のリンクをうっかり踏んでしまうと、 みたいな画面が表示されてしまったが最後、その後の通知は全く来なくなってしまって、障害アラートに気付かないなんて事が起こります。 こんな悲劇を繰り返さないために、SNSの通知を簡単にはunsubscribe出来なくする方法をご紹介します。 用意するもの AWS CLI 何をどうするか SNSのAPIには、ConfirmSubscriptionアクションがあり、任意指定オプションにAuthenticateOnUnsubscribeという項目があります。 AuthenticateOnUnsubscribe Disallows unauthenticated unsubscribes of the subscription. If the value of
https://help.ubuntu.com/community/PostfixBasicSetupHowto virtual domainを使わないシンプルなメールサーバ https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto virtual domainを用いて基本的なメールサーバを構築する際の手順 (postfix-jp:02156) 全メールのバックアップ (postfix-jp:01388) 再送のタイミングはどうやって決めるのでしょうか? http://www.asi.co.jp/techinfo/unix/postfix.html (postfix-jp: 425) Virtual環境での .forward が有効になりません virtual(8) This delivery ag
えきねっと限定割引きっぷ「トクだ値」は乗車券+指定席特急券がセット。東北・上越・長野新幹線のほか、中央・常磐・東海道線の特急がおトクになります。駅レンタカーとのセットでボーナスポイントももらえます。
こんにちは。斎藤です。 ITインフラの障害は、多くの場合「予期せぬ」タイミングで発生します。特に、CPUリソースを多量に消費したり、Disk I/Oが輻輳している場合、その切り分けは困難な状況に陥りやすいものです。 そこで、本日はITインフラ、特にOS・ミドルウェアを支えるにあたって、問題解決を助けてくれるであろう12個のコマンドを取り上げてみます。「必ず押さえておきたい」5つのものと「更に覚えると便利なコマンド」7つの2節に分けてお話しします。 ※CentOS 6.4 (64bit)を前提に取り上げます 必ず押さえておきたいコマンド もしITインフラ管理者になりたてな方はぜひ サーバサイドのプログラマをやっていたのだけれど、ある日突然「君、サーバ管理担当ね!」と、バトンを渡される方っていらっしゃると思います。私も以前はそのクチでした...。そうなってしまったとき、まずは覚えておきたい5つ
こんにちは。リコーの井上です。今回から私もこのブログを書かせていただくことになりました。よろしくお願いします。 今回はMySQL Proxyについて書きたいと思います。MySQLを利用していると、WebアプリケーションなどのMySQLクライアントからサーバに送られるクエリを解析したい場合があります。あるいは、複数のMySQLサーバに処理を振り分けたいということがあります。 MySQL Proxyはその名の通り、MySQLクライアントとMySQLサーバの間に入って、接続やクエリで取り交わされるデータを参照・加工して、いろいろと役立つことをさせようというものです。動作内容は軽量スクリプト言語Luaにより柔軟に記述できますが、機能的制限もあります。 このエントリではMySQL Proxyとはどういうものか、どういうことができそうなのか、できないのかということを感じ取っていただければと思っています
ちょっと前から groonga を使うとプロセスサイズが肥大化するのが気になっていて、メモリ関係を色々調べていたのですが、そこでわかったことなどを書いときます。 malloc() しただけではOSのメモリは使用されない メモリを1GB獲得するだけのこんなプログラムを作って実行してみます。 #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char *p; char buf[1024]; int i; p = malloc(1024*1024*1024); gets(buf); for (i=0; i<1024*1024; i++) memcpy(p+i*1024, buf, sizeof(buf)); pause(
この記事はPHP5.4 Advent Calendar 2011の23日分です。 trait自体はすでに10日目の@tpyamamotoさんによるTRAITでデザインパターン再考でも取り上げられていますが、目玉機能なのでもう一回ネタにしちゃいます>< おさらい:traitとは 相変わらず公式マニュアルが充実しまくっているのでそちらを見た方がいいのですが、抜粋するとこんな感じ。 PHP5.4の目玉機能 多重継承を安全に行えるよう導入された概念 traitはプロパティ・メソッドを持てる traitは定数を持てない trait自体はインスタンス化できない classを継承してtraitを作ることはできない interfaceを実装してtraitを作ることはできない traitを継承してtraitを作ることが可能 classは複数のtraitを継承して実装を再利用できる traitはclassでは
New! アルバイトさんの年末調整についても書きました スポンサーリンク 【最新版!】平成28年分の書き方についてはこちら 見落としやすいポイントをまとめてます こんにちは、給与計算教室です。 今年もあの季節がやってきました、そう年末調整の季節です。今年は特に法改正もないので*1、年末調整書類の書き方・記入例は去年の記事(その1・その2)を見てもらっても十分なのですが、いちおう中身を見直し、かつ図々しいタイトルをつけてみました。しかしあくまで個人の趣味ブログですので責任はもてませんご注意を! おさらい まずざっと、年末調整の目的・仕組みについて振り返っておきましょう。 ・なんらかの所得(給料をもらっていれば給与所得)を得ている人はみな、所得税を納めなければならない ・本当はそれぞれ個人が確定申告して所得税を納めるべきだが、会社勤めをしている人は会社がやってくれる ・でも年末にいきなり、所得
Ubuntuに日本語localeを設定する 2008-11-04T17:00:00+0000 Ubuntu Serverを入れてでもいない限り英語環境を構築することなんてないと思うが,Ubuntuの最小限インストールだと日本語ロケールがない.ので,”export LANG=ja_JP.UTF-8”しても英語表示のままになってしまう.ここらへんは”dpkg-reconfigure locales”で簡単にlocaleの追加ができるDebianと大きく違うところ. Q. ja_JP.UTF-8を使うには? A. language-pack-jaをインストールする # apt-get install language-pack-ja すると,/var/lib/locales/supported.d/jaが追加されて,locale -aの結果に ja_JP.UTF-8が含まれるようになる. あとは
実践LWRP、HTTP認証用ファイル(htpasswd,htdigest)をChefのリソースとして管理する part.1 of 3Rubycheflwrp この記事は最終更新から1年以上経過しています。 気をつけてね。 実践Opscode Chefシリーズ。 LWRPを使うと任意のリソースをプリセットのChefリソース群と同じようにレシピに記述することができます。 それにより、他のリソースと同じようにChefによる収束管理がしやすくなります。つまりは冪等性・バックアップ・ログ出力、そしてWhy-Runに対応できると。 最初に補足しておくと、何でもかんでもChefでやれば良いというものではありません、ただ使うならChefらしく。そうでなければSSHでコマンド叩いて来たほうがよほど手堅く安全です。 記事中のCookbookとChefSolo設定一式はこちらに公開しています。 https://
Fluentd というソフトウェアがある。日本国内ではそこそこ話題になってきたが、何ができるのか、何に使うと嬉しいのか、何に使えるのか、という点について詳細をよく知らないという人もおそらくまだ多いことでしょう。 なので、簡単にまとめる。 http://fluentd.org/ なお以下の個別項目ごとに書いていくが、その手前にまとめを置いておくので忙しい人はそれだけ読むとよい。インストールや設定については導入部分については日本語の記事はもう多くあるので、触れない。 概要 できること ログの収集 センサデータ等の収集 汎用データ処理プロセッサとして 頻出ユースケース ログの収集 データの集約 簡単なリアルタイム集計 ソフトウェアとしての特徴 コア プラグイン 安定性 性能 開発体制 コミュニティ ぶっちゃけどうなの? まとめ 現時点で、複数の場所に分散したデータや常に増え続けるデータの安全な転
docker 0.7のリリースでKernel(aufs)への直接的な依存が減ったdocker。 従来はUbuntuが主要な動作プラットフォームでしたが、使い慣れてるDebianで動かしてみた。(既にDebianで動かされている方は何名かいるがapt-getのパッケージ管理を利用できる点が今回の方法のメリットです) $ sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -" $ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list" $ sudo apt-get update $ sudo apt-get install lxc-docker次にネットワーク周りの設定を行う。
EC2では従来のAMIから作成したインスタンスでyum updateなどをおこなってkernelをアップデートしOSを再起動してもkernelはアップデートされませんでした。これは従来のAMIがkernelをマシンイメージ内で管理していないためです。kernelは外部にあるものをaki-ホゲホゲというKernel IDをインスタンス属性で指定することによって管理されており、マシンイメージ内にあるkernelは無視されることになります。 とはいえユーザがkernelをマシンイメージ内で普通に管理したい、というような要望に応えるため(だと思う)にUser Provided Kernelという構成がいつからサポートされるようになったようです。名前は難しいですが、要は他の一般的な環境と同じようにマシンイメージ内のkernelを使えるようになったよ、ということです。 今回は先日から採用しているOra
対象プラットフォーム: FreeBSD 8.x (下記手順を2014/05/01にFreeBSD 8.4-RELEASEで確認済み) はじめに シェルスクリプトを書いていると、ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出したいケースによく遭遇します。 このページでは、これらの文字列の抽出方法について説明します。 早速サンプルのシェルスクリプト ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出するのは、かなり容易です。 早速サンプルをご紹介します。 #!/bin/sh test_path="/usr/local/etc/apache/httpd.conf" string_filename=${test_path##*/} string_filename_without_extension=${string_filen
C言語でのプログラミングに入る前に、本章では、シェルスクリプトを用いたプログラミングについて説明します。 GUIを前提としたWindowsとは異なり、Linuxを含むUNIXシステムでは、基本的にすべての操作をコマンドラインインターフェースから行うことができます。 シェルは、コマンドラインプロンプトから入力されたコマンドを、Linuxシステムに受け渡す機能を持ったプログラムです。シェルは、ユーザーから入力されたコマンドを一つ一つ実行するだけでなく、ファイルに記述されたコマンドを逐次実行するインタープリタとしての機能も有しています。 シェルが解釈できる形式で記述されたプログラムを、シェルスクリプトと呼びます。 シェルは構造化プログラミングが可能で、その機能は非常に強力です。Linuxの豊富なコマンドと合わせることで、アプリケーションプログラムのプロトタイプをシェルスクリプトで記述することもで
Windows Windows TerminalWindows Terminal/環境変数でターミナルを判別Windows Terminal/画面分割Windows Terminal/設定 - Profiles.jsonWindows UpdateWindows Update/トラブルシューティングWindowsストアイベントログイベントログ/イベントログにメッセージを出力するイベントログ/カスタムビューのフィルターサウンドサウンド/Beep音を止めるスクリプトスクリプト/VBScriptネットワークネットワーク/プロファイル切り替え(パブリック・プライベート)ネットワーク/メディア共有を無効にするフォントフォント/Clear Type Tunerで表示を調整するフォント/システムフォントの入れ替えフォント/システムフォントサイズをレジストリ修正して変更するフォント/フォントリンクプロセス
様々なコマンドを叩くスクリプトを作る場合、シェルスクリプトで書くのは最も直接的で速い方法だと思いますが、 どうしてもPython等のLLを使いたくなってしまう理由として hashなどのデータ構造がない サブコマンドを作る仕組みがない オプションのパースが面倒 unit testができない という問題があります。 オプションのパースについてはgetoptなどを使う方法もありますが、 結局while, case文を使ったhttps://code.google.com/p/sqt/source/browse/bin/sqt-bwaにあるような方法が シンプルで良い気がしています。 一方サブコマンドを実現するシンプルなやり方は #!/bin/bash some_task() { local sample="${1?:need sample name}" local out="${2?:need o
>や>>、>&といったひんぱんに使われるリダイレクトに対し、ほとんど使われることのないリダイレクトが>|と<>だ。実際には興味深い機能である、これら「知られざる」リダイレクトについて説明しよう。(編集部) あなたの知らないリダイレクト、>|と<> シェルが提供する機能はカーネルが提供している機能をダイレクトに利用するものが多い。つまり、シェルの記述がダイレクトにシステムコールに結び付くような機能が多いということだ。コマンドの実行、パイプ、リダイレクトなどは、そっくりそのままシステムコールに置き換わる。 リダイレクトであれば、ほとんどのケースで>ないしは>>で事足りるはずだ。2>&1という記述はこれで1つの機能に思えるが、これは>&というリダイレクトの典型的な使い方の1つであり、つまりはリダイレクトだ。 >、>>、>&はよく使われるリダイレクトといえる。しかし、sh(1)のマニュアルには次の
OSレベルで sys のCPU使用率が高い場合に perf*1 を使って、何の処理の割合が高いか調べる方法です。 perf は 特定のプロセスだけでなくOS全体の統計を見れる カーネル(sys)とユーザー(user)の両方を見れる ところが非常に便利だと思う*2。 準備 ひたすら write システムコールを発行し続けるプログラムを作成する $ cat write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイルする $ gcc write_loop.c -o write_loop 実行権限を付与する $ chmod u+x write_loop 検証 ひたすらwriteシステムコールを発行するプログラムを実行する $ ./write_loop > /dev/null
掲題のMySQL5.6の新機能で遊んでみたメモ。 InnoDBバッファプールの内容をファイルに書き出しておくことが出来る機能が追加された。 書き出すタイミングは正常終了時(SET GLOBALまたはmy.cnfでinnodb_buffer_pool_dump_at_shutdown = 1を設定)または 任意のタイミングで即時書き出し(SET GLOBAL innodb_buffer_pool_dump_now = 1;) 読み出すタイミングは起動時(my.cnfにinnodb_buffer_pool_load_at_startup = 1)または 任意のタイミングで即時読み込み(SET GLOBAL innodb_buffer_pool_load_now = 1;) これで、mysqldを再起動してバッファプールが空っぽになっても 素早くウォームアップできるぞ、ということらしい。 特に何
方法 # apt-get install connect-proxy $ vi ~/.ssh/config Host remote.host.name ProxyCommand connect-proxy -H your.http.proxy:8080 %h %p $ ssh remote.host.name 経緯 「ssh ポートフォ」で検索 「DSAS開発者の部屋:OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh」を経由して, 「http://zippo.taiyo.co.jp/~gotoh/ssh/connect.html」にたどり着いた. debian で $ apt-cache search ssh | grep connectを実行した. その他 proxychains パッケージを調べてみよ. Mac OS X の場合 (2010.4.25追
Webサーバーがレスポンスを発行する際に、HTTPレスポンスヘッダーに付けるとセキュリティレベルの向上につながるヘッダーフィールドを紹介します。 囲み内は推奨する設定の一例です。ブラウザによっては対応していないヘッダーフィールドやオプションなどもありますので、クライアントの環境によっては機能しないこともあります。 X-Frame-Options ブラウザが frame または iframe で指定したフレーム内にページを表示することを制御するためのヘッダーフィールドです。主にクリックジャッキングという攻撃を防ぐために用いられます。 X-Frame-Options: SAMEORIGIN DENY フレーム内にページを表示することを禁止(同じサイト内であっても禁止です) SAMEORIGIN 自分自身と生成元が同じフレームの場合にページを表示することを許可(他のサイトに禁止したい場合は主にこ
シェルスクリプトで2次元配列を扱った時の備忘録です。 シェルスクリプトで2次元(それ以上)配列を使う場合は、evalを使えば可能らしい。(参考文献1より) と、言うことでさっそく参考文献を見ながらやってみました。 ■2次元配列スクリプト [root@example ~]# vi array.sh #!/bin/sh for (( x = 0; x <= 2; x++ )) { for (( y = 0; y <= 2; y++ )) { eval ARRAY${x}${y}=\$RANDOM } } これで、完成! 上記スクリプトは、ARRAYxy配列に乱数を代入していく。 実際に数値が代入されているか以下を追加して確認してみる。 #!/bin/sh for (( x = 0; x <= 2; x++ )) { for (( y = 0; y <= 2; y++ )) { eval ARR
シェルスクリプトでは二次元配列が用意されていないらしい。 けれど、必要になるケースはあるだろう。ということで調べてみると、様々な実現方法が出ていた。 だが、お手本を真似してみるも、手元の環境では実現できないものもあったりと、なかなか悪戦苦闘した。 結果 最初にスクリプトを実行した結果を書く。 これは期待した結果だ。 $ sh t_sh_array2.sh --- mode : f target: /hoge/foo --- mode : d target: /hoge/bar したいこと すでにシェルスクリプトがあるとする。 これには、処理の対象となるディレクトリが配列を使って定義されていて、逐次取り出し、何らかの処理を行うようにスクリプトが組まれているとする。 ある時、ディレクトリによって処理を分岐したい立ったとすれば、PHPやPerlなら二次元配列にするなり連想配列を使うなり、適当
Monitoring Casual Talk in Kyoto on Zusaar 先週のことだけど、モニカジ京都に参加した。 というか、主催者のid:shoichimasuharaさんとかいう人に雑に主催者に入れられた。 といってもなにもしてなくて、ただインターネットで暇そうな人間を勧誘しただけだった。 @moznion http://t.co/ssAvvYgjD1— ゆううき (@y_uuk1) 2013, 11月 2 当日のだいたいの雰囲気は モニカジin京都を開催しました #monitoringcasual - 桝原翔市的博客 に書いている通り。 shoichiさんが無限に営業活動して、人が集まってきてた。 フルスタックっぽいなと思った。 おつかれさまでした。 次回もよろしくおねがいいたします。 自分の発表 当日僕は、SensuとGraphiteの話をしつつ、ひたすら異常な努力をし
この記事はMySQL Casual Advent Calendar 2013 3日目の記事です。 はじめに 以前にSELECT ... FOR UPDATEとロックの挙動 - walf443's blogの記事にTwitterで少し言及したんですが、それの補足というか、InnoDBのロックの範囲について僕はこう理解していますよという話です。 MySQLといえば、InnoDBをネットワークサーバとして使うためのフレームワークであり、SQLはInnoDBのインデックスにアクセスするためのDSLといっても過言ではないでしょう。 InnoDBのロックとはつまるところインデックス行のロックなので、InnoDBのロックの範囲を理解するためにInnoDBのインデックスについて少し前置きしておきます(だいぶ端折ったけど長くなった…)。 クラスタインデックスとセカンダリインデックス すでにInnoDBのイン
Textual is the world's most popular application for interacting with Internet Relay Chat (IRC) chatrooms on macOS. Download Textual Requires macOS Sierra (10.12) or later Download Older Version of Textual or Purchase Textual Notice: As of May 2024, Textual is no longer available for sale in the Mac App Store. Those that already own Textual in the App Store can download it again at any time in the
There are many wordy articles on configuring your web server’s TLS ciphers. This is not one of them. Instead, I will share a configuration that scores a straight “A” on Qualys’s SSL Server Test in 2023. Disclaimer: I’m updating this post continually to represent what I consider the best practice at the moment – there are way too many dangerously outdated articles about TLS-deployment out there alr
FrontPage† このページは、ページを指定しない時に表示されます。 あなたのサイトに合わせ、自由に編集してください *1 ↑
This domain has expired. Is this your domain? Renew Now! arukansoft.net 2019 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois
Official Debian Amazon Machine Images (AMIs) Bookworm AWS Marketplace (amd64 and arm64) Debian published AMIs Bullseye AWS Marketplace (amd64 and arm64) Debian published AMIs Buster AWS Marketplace Debian published AMIs Historical releases of Debian for Amazon EC2 Debian 9 (stretch) AMIs Debian 8 (jessie) AMIs Debian 7 (wheezy) AMIs Debian 6 (squeeze) AMIs Further information Debian's Amazon EC2 A
All about secure apt Debian uses strong cryptography to validate downloaded packages. This is commonly called "secure apt" (or "apt-secure") and was implemented in Apt version 0.6 in 2003, which Debian migrated to in 2005. Since the documentation (here and here) is fairly slim on how this all works from an administrator's point of view, this document will try to explain in detail how secure apt wo
こんにちは。@jedipunkz です。 以前、こんな記事をブログに記しました。2012/06 の記事です。 http://jedipunkz.github.io/blog/2012/06/13/vyatta-vpn/ その後、PPTP で保護されたネットワークの VPN パスワードを奪取出来るツールが公開 されました。2012/07 のことです。よって今では VPN に PPTP を用いることが推奨さ れていません。 ということで L2TP over IPsec による VPN 構築を Vyatta で行う方法を記します。 fig.1 : home lan と vyatta のアドレス +--------+ +-----+ home lan ---| vyatta | --- the internet --- | CPE | +--------+ +-----+ X.X.X.X/X(NA
VPCにクライアントPCからリモート接続(PPTP)してみた。 VPCのVPN connectionは、拠点間接続のための機能なので、出先のPCから接続したい、などといった目的には使えない(使いづらい*1 )。そういった場合には、VPC内にVPNリモートアクセスサーバを用意する事になる。今回はVyattaで構成してみた。 準備 VPC内にVyatta AMIを起動する(10.0.0.254/24で起動した) Vyatta用のSecurityGroupでGRE(Custom Protocol 47)と1723/tcpを空けておく サーバ側設定 Vyattaのドキュメント Vyatta_VPN_R6.3_v01.pdfの 240ページあたり "Remote Access VPN Configuration Examples / PPTP VPN Example" を参照しつつ作業。 vyatt
Amazon AWSで提供されている、VPCというサービスがあります。VPCは公開用のPublic SubnetとPrivate Subnetの2つを作成することが出来、VPN接続もサポートしているため、AWS上に簡易的なDCの様なものを作成でき、VPNを使って会社やDCと繋ぐことが可能になっています。実際には、VPCには4つの種類があり、Private Subnetだけ、VPN接続点無しなどが選べます。VPNの接続には1時間毎に課金されます。 今回は、VPC with Public and Private Subnetsを使って、VPC上にVyattaでVPNサーバとNATインスタンスを作成しました。NATインスタンスはAmazonから提供されているのですが、NATしか出来ないので、Vyattaを使うことで様々な機能を実現することができます。また、VPN接続点を使用しないので、VPN接続
はじめに JenkinsでJVM上で動かない言語(PythonやRubyなど*1)を使っていると、ジョブごとに環境が分離されていないことが問題になる場合があります。 Pythonにおける virtualenv やRubyにおける Bundler を使えば、ジョブごとに利用するライブラリを分離することができます。しかし、C拡張ライブラリをインストールするためには、ジョブが実行されるノードに開発用のファイルが存在している必要があります。例えば、Pythonモジュールの lxml のインストールにはlibxml2やlibxsltの開発用ファイルが必要です。 *2 このようなファイルが必要になるたびにJenkinsのノードにインストールするのはスマートじゃないですし、実行に必要な環境はコードの形で明文化されているべきです。 ジョブでaptやyumを使ってインストールするのもセキュアじゃないですし、
UNIX のコマンドインタプリタである Bourne shell を知っておかないといろいろ困るので基本的なことをメモしておく。ここでは、コマンドをバッチ処理するための シェルスクリプトについて記述しています。 #!/bin/sh UNIXでスクリプトを記述する場合、一番初めの行は #!(shebang)ではじめます。さらに、シェルスクリプトであることを明確にするためにコマンドをフルパスで記述します。シェルスクリプトでは、#!/bin/sh となります。Bourne shell の場合、初めの行が : (コロン)のみでもよいが、現在あまりこの記述は使われていない。また、#! /bin/sh というように #! の後に半角スペースを入れても動作する UNIX システムもあるが、互換性を考えると半角スペースは入れないほうがよい。 コメント行と改行 # 以降コメントとなり、\ を利用して複数行を
Home Travels Country List 動画(YouTube) 編集前旅行記(Blogger) Photo All Page List Country List 利用許諾条件 Software Software Main Page Subversion GitHub Google Code Links (Linux) シェルスクリプトの使い方メモ 一つ前のメニューに戻る GitHubに移動しました 「http://oasis.halfmoon.jp/mw/index.php?title=Linux-ShellScript-Tips&oldid=1330」より作成 最終更新 2023年8月21日 (月) 16:34 Powered by MediaWiki 1.18.1 Copyright (C) INOUE Hirokazu. For commercial usage ? Se
chefを使っていて地味に困るのはCHEF-3694、同一リソースを複数回いじったときのこの警告です。 もちろん、同じリソースを何の考えもなしに複数回いじるのは問題がありますが、意図的に複数回いじる必要があることもあります。そんなときには、この警告は邪魔者以外の何物でも無い。 というわけで、自分がやっているCHEF-3694対策についてまとめます 2度目だとわかってて実行するとき 途中までの設定を反映するためにサービス再起動が必要だったりとか、意図的に2回実行したい事があります。こういう時のやりかた。 service "httpd" do action :restart end # いろいろ処理して… log "httpd-restart-again" do level :info notifies :restart, "service[httpd]", :immediately # no
ローカル環境で ssl の動作環境を構築する際のメモ。 オレオレ証明書の作成 openssl genrsa -out SERVER_NAME.key 2048 openssl req -new -key SERVER_NAME.key -out SERVER_NAME.csr openssl rsa -in SERVER_NAME.key -out SERVER_NAME.key openssl x509 -req -days 3650 -in SERVER_NAME.csr -signkey SERVER_NAME.key -out SERVER_NAME.crt 上から順にコマンドの説明を書くと、 秘密鍵の作成 公開鍵の作成 パスフレーズなしにする 証明書作成(3650 は有効期間(日)) となる。 nginx に ssl 設定 server { listen 443 ssl; ssl
開発合宿でDevOps界隈やモニタリング界隈で流行りのツールを組み合わせてBlue Green Deploymentできる何かを作りました。 同じチームで開発したid:shiba_yu36 先生やid:wtatsuru 先生が既にブログを書いてますが、自分の視点で書いてみます。(13/12/24追記: より詳細な内容が新規に書かれたのでリンク先を入れ替えました) Docker, Mesos, Sensu等を利用したBlue-Green Deploymentの仕組み - $shibayu36->blog; Docker コンテナにアプリケーションを立てて Graphite でいい感じに可視化するまで - wtatsuru's blog 僕は主に、各ツールから得られる情報をまとめて管理し、デプロイを実行するデプロイ管理ツールを作成していましたので、それについて書きます。 普段は運用の修行をして
情シス担当者なんていない 現在、nanapiは社員数30名弱くらいの会社規模です。アルバイトさんを含めると70名くらいになりますが、そのうちエンジニアは私を含めて8名。このくらいの会社の規模だと、まだ情シス的な仕事を専門的にやるような人はいません。 当然、ネットワークの専門家もまだ弊社にはいないので必然的にエンジニアの誰かがこのあたりを担当することになります。ベンチャーにおいてだいたいの場合、こういった技術的な行き場の分からない仕事ってのはCTOがやるもんです。 しかし、情シス的な仕事って本当に難儀な仕事。動いてて当たり前、高速で当たり前、ちょっとでもネットワークが遅くなるものならその時点ですでに障害です。 外注するという選択肢もありますが、何かしら社内でネットワークのトラブルがあれば少なくともその瞬間はたぶん僕が対応するなり調査するなりすることになります。どうせそうなるのであれば、自分で
2012/12/07 "Apt-Pinning for Biginners"を訳してみた 非常にいいかげん。 主に自分用メモとしてなので、少しくどいかもしれない。 さらには超訳しているところも多々なので、原文と突き合わせないように。 -------- 初めての「ピン」 ピンをする理由 この文書を読んでいるということは、あなたはDebianを使っているのだろうか。もしそうだとしたら、安定版のアプリケーションが古いバージョンのものばかりであることで困っていたりはしないだろうか。 この文書には、安定版とテスト版、不安定版を組合わせながら、aptでのパッケージ管理も上手くできる方法が書いてある。つまり、システムのほとんどの部分は安定版のままで、あなたが最新で多機能なバージョンを本当に求めているパッケージについては安定版では無いものを使う方法を、だ。 安定版で十分だと思う人もいるかも
[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 次のページ ] APT HOWTO (Obsolete Documentation) 第 3 章 - パッケージの管理 3.1 利用可能なパッケージの一覧を更新する どのパッケージがインストール済で、どれが未インストールか、どのパッケージが インストール可能かについての記録用に、パッケージシステムはプライベートな データベースを使用します。apt-get プログラムは、ユーザが インストールを要求したパッケージを見つけたり、そのパッケージが適切に動作 するために必要な追加パッケージを見つけるのに、このデータベースを使います。 このデータベースを更新するには、apt-get update というコマンド を使います。このコマンドは /
aptの基本的な使い方は、apt-get updateして、apt-get -u dist-upgradeとしますが、時々testingやunstableに入っているパッケージを使用したい場合があります。 そんな時に使うと便利な機能がpin機能です。 具体的には、apt-get install package名/testingなんていう風にリリース名を指定してインストールが出来るんです。 それでは設定です。 デフォルトリリースの設定 優先度(priority)が高いとアップグレード対象に自動選択されます。 インストール済みのパッケージの優先度が100なので、デフォルトリリース以外の各リリースの全パッケージの優先度を100未満に固定(pin)してしまう(pin-priority)ことで、勝手にアップグレードされてしまうことを防ぎます。 詳しくはAPT-HOWTOを読んでみてください。 # v
・4月以降入会の場合も有効期限2021年3月31日に変更はございません。 ・定員700名に達し次第、募集期間内でも受付は終了いたします。
I am using AFURLSessionManager to create a new download task: AFURLSessionManager* manager = ... NSProgress* p = nil; NSURLSessionDownloadTask* downloadTask = [manager downloadTaskWithRequest:request progress:&p destination:^NSURL*(NSURL* targetPath, NSURLResponse* response) {...} completionHandler:^(NSURLResponse* response, NSURL* filePath, NSError* error) {...} ]; [downloadTask resume]; The file
追記: 良い子のみんなはこんなマクロを自分で定義する前にUIKit Function - String ConversionsとかCocoaLumberjackとか使うんだよ!!!!! ログは出したいけどリリースビルド時には出したくないという時に使う各種ログマクロです。 個人的に使っているもののまとめです。(オープンソース見ているといろいろな種類見かけますね) プロジェクトを作るとテンプレで出来る「アプリ名-Prefix.pch」というヘッダに書くとどのソースでも使えるようになるので便利です。 #ifdef DEBUG #define LOG(...) NSLog(__VA_ARGS__) #define LOG_PRINTF(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF
毎度のことなんだけども、testflightに配信しようとすると Xcodeでアーカイブして Organizerからipaファイル吐かせて testflightにアップして リリースノート書いて いつものメンバーに配信する みたいなフローが必要だったので、面倒になってスクリプトにまとめてしまった。 やってること 流れとしては、 アーカイブする ipaファイル作る リリースノート書く testflightのUpload APIに配信する と言った感じ。 ちなみに大抵Cocoapods使ってるのでxcworkspaceのある環境が対象です。そうでない人は適当にxcodebuild部分だけ書き換えてください。 #!/bin/sh # applicationの名前 APP="hoge" # SDK SDK="iphoneos7.0" # ビルド時の設定 CONFIGURATION="Release
Objective-C のプロパティの属性を指定するとき従うべきガイドラインをまとめた。 できる限り nonatomic を指定する atomic にしてもパフォーマンスが悪化するだけでほとんどメリットがない(参考:StackOverflow - Atomic vs nonatomic properties)。 nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に
I am loading an image from a URL provided by a third-party. There is no file extension (or filename for that matter) on the URL (as it is an obscured URL). I can take the data from this (in the form of NSData) and load it into a UIImage and display it fine. I want to persist this data to a file. However, I don't know what format the data is in (PNG, JPG, BMP)? I assume it is JPG (since it's an ima
大きく分けて、BITMAPFILEHEADER 構造体が先頭にあって、 先頭から sizeof(BITMAPFILEHEADER) バイトだけ後ろに BITMAPINFO 構造体、 先頭から BITMAPFILEHEADER構造体bfOffBitsメンバ バイトだけ後ろにピクセル列があります。 カラーテーブルの有無や長さは不定なので、 ピクセル列のアドレスは固定ではない事に注意して下さい。 また、カラーテーブルの有無によって、 BITMAPINFO構造体であるか、BITMAPINFOHEADER構造体であるかの違いもあります。 ファイルには極力無駄な情報は書き込まないようになっているので、 カラーテーブル無しの形式ではBITMAPINFO構造体ではなく、 そのメンバであるBITMAPINFOHEADER構造体だけがが書き込まれています。 ■BITMAPFILEHEADER構造体 typed
本サイトでは、ラーニング・パターンの考え方や個々のラーニング・パターンについて紹介します。 ラーニング・パターンは、自律的で創造的な学び方のコツをパターン・ランゲージという形式でまとめたものです。どのような状況でどのような問題が生じやすく、それをどのように解決すればよいのかの発想がまとめられています。このようなコツを「言語」として共有することで、個人の自律的で創造的な学びの支援と、学びのコミュニティの活性化を目指しています。 ラーニング・パターンは、2009年4月から毎年、慶應義塾大学総合政策学部・環境情報学部の全学生(一学年約900人)に配布されているほか、本ウェブサイトやtwitter等で、幅広い世代の方に広まりつつあります。ぜひご活用ください。 ラーニング・パターン(Learning Patterns)のtwitter配信をしています! よりよい学びのコツを記述した「ラーニング・パタ
UIWebViewやASIHTTPRequestではNSHTTPCookieStorageが管理しているクッキーを共有して使うことができる(逆に使わない設定も可能)ので、 起動中はセッションの設定などでクッキーのやり取りを気にしなくてもいいので便利なのですが、さすがに永続化は自動ではやりません そのため、アプリを再起動してもUIWebVIewで表示するサイトのログイン状態を継続したい場合等はNSHTTPCookieStorageからクッキーを取り出して保存して置く必要があります。 NSUserDefaultsを使い単純にファイルとして保存することを考えた場合、クッキーが変化するごとに(iOSだとそもそもキャッチできなさそう)保存するのはI/Oが足を引っ張りそうなので、 起動時と終了時にそれぞれ読み込み、保存処理を行うようにします。 AppDelegateクラスのdelagateメソッドを使
UIWebView の表示内容を UIImage にして、表示する方法です。UIWebView を表示させずに、指定した URL のページ内容をレンダリングして UIImage を生成して、UIImageViw に表示します。スクリーンショットだけを取りたいときに使えます。 UIWebView はインスタンスを生成しただけでは、URL をロードしてもレンダリングされません。レンダリングするには UIWindow 内になければダメです。そのために実際には表示しない UIWindow を作成して、その中に addSubview します。 UIWebView のデリゲートメソッド webViewDidFinishLoad: でロード終了の通知を受けてから、UIWebView のレイヤーの内容を UIImage に書きだします。 - (void)viewDidLoad { [super viewD
プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMacやiPhoneなどの話題が中心のブログ 前回の記事「iOSでカスタムURLスキームを利用してアプリケーションを起動する方法について」では、カスタムURLスキームを利用して他のアプリケーションを起動する方法について紹介しました。今回は自分のアプリケーションに独自のカスタムURLスキームを設定して、他のアプリケーションから利用可能にする方法について紹介します。 Info.plistへのエントリ作成 今回はカスタムURLスキームmySampleApp:を受け入れるサンプルアプリケーションとして、新規プロジェクトを作成します。プロジェクト名をCostomURLSchemeSampleとしてテンプレートはView-Based Applicationにします。 独自のカスタムURLスキームを設定するために、ア
みなさんは、.gitignoreどのようなのを使われていますか? 僕のやつを公開するので、みなさんも教えて下さい! CocoaPodも使うので、Pods/*も入れています。(このフォルダ以下は pod installするとPodfileやPodfile.lockを参考に、installされ、自動的Fetchされ、つくられるので、共有する必要ありません) PodFileは.gitignoreしないとして、Podfile.lockも.gitignoreに入れないほうが良いと思います。(理由は以下追記) これが現状の.gitignoreです。 # Mac .DS_Store # Xcode build/* *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3
MySQL Performance Blogの翻訳。複数のカラムを指定したマルチカラムインデックスを使うべきか、カラムごとに別々にインデックスを作るべきかは悩ましい問題だ。しかし、MySQL 5.6で導入されたIndex condition pushdownの仕組みを理解すれば、マルチカラムインデックスを効率的に使うことができるようになる。 インデックスに関する話をしている時によく出てくる質問と言えば…マルチカラムインデックスを使うべきか、カラムそれぞれにインデックスを張るべきか、ということだ。Peter Zaitevがこれについて2008年に書いていて、その時の結論としては、マルチカラムインデックスが多くの場合においてベストな解決策だ、というこだった。しかし、最近のオプティマイザの進化によって、MySQL 5.6では事情は違ってきてはいないだろうか? 準備 テストのため、以下のような2つ
Bash の 変数展開には結構種類があります。 よく使うのは次の「文字列の末尾から最短マッチさせて削除」で 「ファイルの拡張子」の削除です。 $ ls *.txt | while read FILE > do > echo ${FILE%.txt} > done "${FILE%.txt}" の部分が変数展開です。 これで ls コマンドで .txt のファイルだけを取得して ファイル名から .txt を削除した部分を出力することができます。 変数展開には次のようなものがあります。 ${変数:+文字列}
Bashのパラメータ展開はすぐに忘れてしまうのでメモ。 変数の文字数 ${#parameter}で変数の文字数を調べることができます。 name=/var/log/boot.log echo ${#name} 17 wcやawkコマンドを使う方法がありますがスマートではありません。*1 $ n=`echo $name | wc -c`; echo $(($n-1)) 17 $ echo $name | awk '{ print length($0)}' 17 配列も同じように配列数を調べることができます。 $ array=(a b c d e) $ echo ${array[0]} a $ echo ${#array[@]} 5 変数パラメータ展開 変数を切り出せます。ファイル名やディレクトリ名を簡単に切り出すことができます。 $ name=/var/log/boot.log $ echo
AdHoc用ビルド設定 証明書とかProvisioningProfileとか 省略。ググってね。 Build Configurations PROJECTのInfoタブから設定する。 左下の+マークを押してDuplicate "Release" Configurationを選択。 NameにAdHocと入力する。 Code Signing PROJECTのBuild Settingタブから設定する。 先ほど作ったConfigurationのCode signing IdentityをDistribution用にする。 Scheme メニューのProduct -> Scheme -> Edit Scheme…を選択。 ArchiveのBuild ConfigurationをAdHocに変更する。 CocoaPods $ pod installしなおしてXcodeを再起動。 Archiveして
Take Off こんな感じの関数を用意しておくAppStoreに提出するときは#define USE_TESTFLIGHT_SDK 0にしてコードに含めないようにしている。 #if USE_TESTFLIGHT_SDK #import <TestFlightSDK/TestFlight.h> #endif /* My Apps Custom uncaught exception catcher, we do special stuff here, and TestFlight takes care of the rest */ void HandleExceptions(NSException *exception) { NSLog(@"This is where we save the application data during a exception"); // Save app
こんにちは。斎藤です。 最近、新しいスキー板が欲しいなと思っています。現在使っているOGASAKAの板は5年目に入り、メーカーからこれ以上はチューンナップ(メンテナンス)はできないよ、と言われてしまいました。もし、次に買うなら、スノーボーダーの人と一緒にパウダーに飛び込みやすいセミファットタイプが良いのかなと考えています。皆さんのオススメ、ぜひ教えてください。 さて、今日はLinux Kernel上でのメモリ管理、特にページ回収(Page Reclaim)とスワップに絞り、「スワップの理由」「ページを回収する仕組み」そして「スワップの様子を観察する」の3点に分けてお話しします。「スワップするのが気持ち悪い」と考えている方は少なくないと思いますし、私もそう考えていた時期がありました。しかし、それは本当に悪い事なのか、今回掘り下げて行きます。 ※主な対象Kernelは2.6.32(Red Ha
必要メモリ量=グローバルバッファのサイズ+(各スレッドのバッファサイズの合計 × 最大接続数(max_connections)) 各スレッドのバッファサイズの合計とは、以下の値の合計値です。 sort_buffer_size myisam_sort_buffer_size read_buffer_size join_buffer_size read_rnd_buffer_size グローバルバッファのサイズは、以下の値の合計値です。 key_buffer_size innodb_buffer_pool_size innodb_log_buffer_size innodb_additional_mem_pool_size net_buffer_length ※実践ハイパフォーマンスMySQL による とあるのだが、一般的にいわれてる計算式はさらにそれに+query_cache_sizeがプラ
みなさん新しいプログラミング言語を習得しようとした際に、どんな形で勉強を始めますか?私はとりあえずチュートリアルをやってみて外観をつかんでからリファレンスなどを漁っていくタイプのようです。ということで、iOSアプリ開発を勉強するためにウェブから無料でできるiOS7のチュートリアルをいくつかピックアップしてきました。これで最新のiOSの開発事情を知りつつアプリ作れるようになりましょう! iPhoneアプリ開発入門 (全14回) Dotinstall:iPhoneアプリ開発入門 (全14回) まずはDotinstallのチュートリアル。とりあえず触って動かしてみていろいろなUIパーツを使って見るまで。日本語+動画で理解するアプリ開発入門。 iOS 7 Best Practices; A Weather App Case Study iOS 7 Best Practices; A Weather
2日目の続き。 コンセプトはこちらをご参照下さい。 3日目の目標 ユーザ管理(data bag) ユーザ作成 bash_profile管理 sudo ここの段階で ec2-userのsudo権限を剥奪し、新ユーザにsudo権限を付与 security_limit 3日目を始める前に:data bag ユーザ情報など、クックブックを跨るグローバルな値を cookbookにいちいち書くのは得策ではありません。 さらに生で置いておくのも気が引けますね。 そんなご要望にお答えするために「data bag」という仕組みがあります。 databagを作成しておくと、複数のクックブックにまたがっている共通の変数などを保存しておくことができます。 シークレットキーを作成する まずはdata bagを暗号/複合するためのシークレットキーを作成しましょう。 以下のコマンドでdata bag用の鍵ファイルを作っ
Someone asked on a mailing list how to redirect output from a running process. They had a program which had been running for a long period of time without having stdout redirected to a file. They wanted to logout (to move the laptop that was used for the ssh session) but not kill the process (or lose output). Most responses were of the form “you should have used screen or nohup” which is all very
プロセスをバックグラウンド実行させてログアウトしたら、制御端末がなくなるので、write 先がなくてエラーになる リダイレクトするのを忘れた というようなケースを想定。 screen を使ってるとか、リダイレクト先をちゃんと指定していればいいのだけど、うっかりはあるので。 stackoverflow に解決案があったのでメモ。 Redirect STDERR / STDOUT of a process AFTER it’s been started, using command line? http://stackoverflow.com/questions/593724/redirect-stderr-stdout-of-a-process-after-its-been-started-using-command-lin 起動済みプロセスのリダイレクト先を設定する アイデアは GDB で
http://serverfault.com/questions/396768/ext4-file-system-max-inode-limit-can-anyone-please-explain # cat /etc/mke2fs.conf [defaults] base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr default_mntopts = acl,user_xattr enable_periodic_fsck = 0 blocksize = 4096 inode_size = 256 inode_ratio = 16384 (後略)めも badblockを避けつつフォーマット # time mkfs.ext4 -c -c -i 4096 /dev/sdc1 mke2fs 1.42.5 (29
AWS を初めて利用される方や、ベストプラクティスをブラッシュアップしたい方は、これらのリソースを始めてみてください。
特定の技術分野における役割ベースの認定と Specialty 認定をご覧ください。試験を選択して詳細を確認する。 選択 AWS Certified Cloud Practitioner AWS Certified Solutions Architect - Associate AWS Certified SysOps Administrator - Associate AWS Certified Developer - Associate AWS Certified Data Engineer - Associate AWS Certified Solutions Architect - Professional AWS Certified DevOps Engineer - Professional AWS Certified Advanced Networking - Specialt
「負×負は正」は証明できることでしょうか?『高校数学+α:基礎と論理の物語』は基礎を重視し,論理的能力を鍛える学習参考書です.
この記事は Warming Up an IP Address の抄訳です。本記事中に紹介した海外サービスは日本語に対応していない場合がございます。ご了承ください。 「IPアドレスのウォームアップ」をご存知でしょうか? まずは以下の動画をご覧下さい。 それではSendGridユーザの皆様にも、そしてご利用を検討されている方にも役立つIPウォームアップについて、FAQ形式でご説明します! IPアドレスを「ウォームアップ」するって、具体的にはどういうことですか? 新規、あるいはコールドな(最近利用されていなかった)IPアドレスからメールを受け取ると、ISP(インターネット接続業者)はそのIPアドレスが正当な送信元かどうかを確認しようとします。ISPから正当なメールの送信元としてのレピュテーション(注1)を得るための取り組みが”IPウォームアップ”です。 IPウォームアップで最も重視される要素のひ
イベント通知や新商品の宣伝など、皆さんは様々なマーケティングメールを日々送っていることと思います。 メールマーケティングの目標を達成するには、送ったメールのパフォーマンスをしっかり分析することが大切です。開封率やクリック率、迷惑メール報告率などを把握せずに施策の方向性や改善点を明らかにすることはできないからです。 今回のブログでは、Twilio SendGridで確認できる、メールマーケティングに欠かせない統計データについてご紹介します。 どのようなデータがあるのか、その指標が何を意味しているのか見ていきましょう。 SendGridで確認できるマーケティングメールの統計データ Marketing Campaigns機能では様々な統計データを提供しており、送信したマーケティングメールのパフォーマンスを把握することができます。確認方法はこちらをご覧ください。 Campaign Statisti
AppStore経由でリリースされているアプリは、Appleによって定められたガイドラインを守ることが義務付けられていることは、みなさん周知の事実です。マルチタスキング環境となったといっても、「バックグラウンドに常駐させて好きなように振舞う」ということは許されていません。開発者の方であれば、知っていることですが、バックグラウンド処理は、以下のような目的に限定して許可されています。 オーディオコンテンツの再生 位置情報のトラッキング VoIPアプリケーション(電話等)のインターネット接続維持 例えば、SysStats Monitorのようなアプリが、常駐プロセスとして動作し、メモリ使用状況を定期的に記録するなんてことはできません。 また、そもそも通信機能が制限されているので、アプリ間で通信してリアルタイムに連携することもできません。 以上、「できないこと」ばかりを挙げて、ネガティブな感じにな
『インターネットマガジン』の創刊は、日本でインターネットが本格商用化された1994年で、月刊誌の形態として1994年10月号から2006年5月号まで136号を発刊してまいりました。これらに収録された記事は、日本のインターネットの1つの歴史として、資料性の高いコンテンツであると考えています。 TIMEMAPとは TIMEMAPは、時間軸に着目した新方式の検索エンジンです。情報の新しい探し方や見方を提供します。 アーカイブ内の記事が時系列に整理された年表が作成でき、また連想検索による関連記事の閲覧も可能です。 詳しくはこちら→ 『インターネットマガジン』の創刊は、日本でインターネットが本格商用化された1994年で、月刊誌の形態として1994年10月号から2006年5月号まで136号を発刊してまいりました。これらに収録された記事は、日本のインターネットの1つの歴史として、資料性の高いコンテンツで
プラグインに設定オプションが多すぎて、設定の違いにより思い通りに動いたり動かなかったりしたので自分なりにまとめた。 基本的にはまず以下のリンクを参考にしてセットアップしてください。 JenkinsプラグインのGitHub pull request builder pluginを使ってみる -> ビルドの結果のキャプチャあり(参考にしたソース、内容はほぼ同じ) Jenkins wiki - GitHub pull request builder plugin GitHub - ghprb-plugin 説明通りセットアップしたものの、自分のところではうまく動作しなかった部分を以降にまとめました。 GitHubの設定 個人とか少数で使う場合は必ずしも必要ない -> Jenkinsプラグインのジョブの設定でAdmin listに設定すれば良い Jenkinsプラグインのジョブの設定でList o
This plugin allows the user to execute a shell/batch task depending on the build log output.Java regular expression are allowed. This feature allows user to associate shell or a batch scripts that perform some tasks on Hudson depending on the build log output.If the log text has a match some where in the build log file, the script will execute and the post build log will append to the project buil
Medusa123 : Slot Online Resmi Ilmu Tanam Ratu Medusa 123 Mudah Jackpot Sikat Mennn Medusa123 adalah penyedia slot online paling jumawa dan pastinya gampang maxwinnya mennnn. Terkenal sejak jaman nenek moyang kita, menjadikan Medusa 123 mempunyai reputasi dan tingkat kemenangan yang sangat tinggi mencapai langit ke tujuh. Medusa123 Slot memberikan kemenangan tinggi secara cuma cuma tanpa syarat tan
Don't ask how projects are going. Watch how they're going in real time. Log in with Google Apps to get started What is your team working on? Keeping everyone on your team up-to-date is important. With Sprint.ly's Dashboard, you can see what's been started, and what's completed, in real-time. You'll never have to ask what someone's doing, you can just see for yourself! Try out Kanban “I tell everyo
About authentication Many REST API endpoints require authentication or return additional information if you are authenticated. Additionally, you can make more requests per hour when you are authenticated. To authenticate your request, you will need to provide an authentication token with the required scopes or permissions. There a few different ways to get a token: You can create a personal access
わりと長い間悩んでいたんだけど、最近解決したのでメモ。 サービスで利用しているsmalllightの画像変換サーバが、Apacheが使っているメモリ以上のメモリを使用し、Swapしたりメモリ枯渇でサーバがダウンするなどのことが何度かありました。 ↑メモリの動きはこんな感じ いろいろ調べた結果「dentry cache」なるものがメモリ多くを占めていることがわかりました。dentry cacheはディレクトリやファイル名とinodeとを結びつけに使われるキャッシュです。smalllightでは画像を変換する際に一時ファイルを作成するので、その情報が残るようです。 手元で再現させる 本番で使っているサーバはCentOS5系ですが、手元のVagrant上のCentOS6(ファイルシステムはext4)で、再現させてみました。 use Parallel::Prefork; use File::Tem
kazeburo さんの 一時ファイルとdentry cacheとメモリ を読んでからしばらくファイルシステム周りを調べていたのでした。 先のエントリで /tmp のファイル作成/削除を繰り返して dentry キャッシュ がもりもり溜まっていくのは negative dentry であることが理解できました。 negative dentry とは negative dentry とは 存在しない inode に対応する dentry です。 dentry キャッシュの役割は RAM より低速な HDD や SSD などの二次記憶装置からのディレクトリエントリの読み取りをメモリにキャッシュしておき高速化するためですが、negative dentry をキャッシュすることで存在しないディレクトリエントリの読み取りもキャッシュされます。 「存在しないのにキャッシュ?」がしばらくイミフだったので
最近うぇぶ業界では、開発効率や構築効率を求める動きが活発のように見受けられますが、ここで改善効率について手を伸ばしてみましょう。 改善効率とは、開発後期やサービス開始後の運用フェーズにおいて、クソコードやクソクエリ、データの蓄積によるレスポンスの悪化などを、自動的に検知し、開発者にオラオラ改修をプッシュするための仕組みのことでございます。 はじめに ここで紹介する内容はドリコムで実際に運用しているものですが、別にドヤ顔するようなものではなく、中規模以上の企業ならば似たようなことやそれ以上のことをやっているであろう、至極当然な内容です。それでも、それなりに種類が増えてきたことと、それなりの効果を得られていることが実感できているため、いったんまとめてみようと思った次第です。 ウチのサービスのサーバーサイドは Ruby on Rails + MySQL が基本なので、その対策手法になります。WE
All Microsoft Global Microsoft 365 Teams Copilot Windows Surface Xbox Deals Small Business Support Software Windows Apps AI Outlook OneDrive Microsoft Teams OneNote Microsoft Edge Skype PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Certified Refurbished Trade-in for cash Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC and Windows games Movies & TV Business Micro
Conversations Conversational messaging on multiple channels: web chat, WhatsApp, and SMS
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
※このセッション内でのツイートが翌日 Fireside chat の開演前にデカデカと表示されていたそうです。 2日目のセッションはセキュリティ関連を中心に受けてみました。このうち、Security IN the AWS Cloud が実践的な内容だったので復習のため記載しておきます。※なお内容の正確性については保証しませんのであしからず。 Security IN the AWS Cloud (slideshare) このセッションでは、CSISのセキュリティガイダンスにおける20の Critical Security Control(クリティカルセキュリティ管理)の各項目について、AWSでどう実装すればよいかが説明されました。セキュリティガイダンスは以下で読めます。 CSIS: 20 Critical Security Controls Version 4.0 先にまとめ 自動化せよ(A
Snort は、侵入検知というたった1つのタスクにすばらしい能力を発揮する。侵入検知以外の機能の実装はユーザにゆだねられている。追加すると特に便利な機能が、リアルタイム警告だ。 この記事は、Jack Koziolの新著『 Intrusion Detection with Snort 』 からの一部抜粋である。 リアルタイム警告は、侵入検知システム(IDS)を始めとする監視アプリケーションに実装される機能で、何らかのイベントが起きた際に、それをすばやくユーザに通知する。「すばやく」というのがどの程度の時間を指すのかは状況によって異なる。監視対象のシステムの重要性や、担当するユーザの職務などの要素が、何をもって「リアルタイム」とするかを決定するのだ。 Snortのリアルタイム警告はカスタマイズの自由度が非常に高い。個別のルールや、ルールのカテゴリに優先度を割り当てることで、どの警告をリアルタイ
クラウドコンピューティングに乗り出す際の最大のセキュリティ上の懸念は、顧客情報・書きためたポエム・マル秘画像などを誰かに預けるところにある。「財布などの貴重品は肌身離さず、自分の近いところに置いておく」という今までの常識に反する行動を迫られるのである。クラウド恐ろしや。まして預ける相手がAmazonという140億円の追徴課税を命じられような事業者であればなおさらである。 この誰しも感じる不安を払拭するためにAmazon Web Services (AWS) は自社のセキュリティ対策をまとめた文章を公開している。 Amazon Web Services Security ホワイトペーパー (PDF注意) 要は「Amazonはこんなに頑張って皆さんのデータのセキュリティを確保していますよ」という販売促進の一環である。しかしよくまとまっていて、Amazonのサービス利用を検討している人だけでなく
CC2 (Sandy Bridge) の後継 C3 (Ivy Bridge)が追加された。 詳しくはこちらを参考のこと。 Amazon Web Services ブログ: 【AWS発表】 新世代の数値計算向けEC2インスタンス HPCの観点から見ると、CC2.8xlarge の後継に当たるのは C3.8xlarge となる。 スベック比較は以下の通り c3.8xlarge cc2.8xlarge cc1.4xlarge vCPU数 32 32 16 総ECU 108 88 33.5 RAM(GiB) 60 60.5 23 インスタンス ストレージ 2 x 320(SSD) 4 x 840 2 x 840 CPU Xeon E5-2680v2 (Ivy Bridge) Xeon E5-2670 (Sandy Bridge) Xeon X5570 (Nehalem) NIC High 10Gb
RDSは、起動時および停止中にストレージサイズを変更可能。 ストレージの空き状況も、CloudWatchのFreeStorageSpaceで確認可能。 では、Storageには何がはいっているのか? https://forums.aws.amazon.com/thread.jspa?threadID=75508 The storage space used by your instance does not include the MySQL or Oracle binaries, but does include the databases, innodb log files, binlogs, and the InnoDB tablespace (ibdata1, which grows automatically) and log files which are usually sm
お申し込み前の確認事項 お申し込み前に「リポジトリ」ページにて『グローバルサイン電子証明書サービス利用約款』をご確認ください。 ワイルドカードとは ワイルドカードは、同じドメイン内であれば複数のサブドメインサイトを1枚の証明書でSSL暗号化通信を実現いたします。 お問い合わせや資料請求などのフォームを、サブドメインを分けて運営している 商品詳細ページと決済画面とをサブドメイン別に分けて運営している 提供サービス別にサブドメインを分けて運営している ※IIS5.0では証明書ご利用にあたり、サイトごとに異なるグローバルIPアドレスを設定する必要がございます。ポートを変更することでも対応できますが、環境によってはアクセスできなくなることもございますのでご注意ください。 ※携帯電話には対応していません。 ※証明書が「*.example.com」に発行されている場合、「https://example
言語処理学会第20回年次大会(2014/3)のチュートリアル講義資料です。 - 要旨 - 文法圧縮とは,入力テキストをよりコンパクトな文脈自由文法(CFG)に変換する圧縮法の総称である. 文法圧縮の強みは圧縮テキストを展開すること無く,検索等のテキスト処理を効率よく行える点にある. 驚くべきことにその処理速度は,元テキスト上での同じ処理を理論的に,時には実際にも凌駕する. また近年,ウェブアーカイブやログ,ゲノム配列等の大規模実データを高効率に圧縮できることで注目を集めている. しかしながら,文法圧縮についての初学者向けの解説資料はまだまだ少ない. そこで本チュートリアルでは,文法圧縮の歴史的背景から最新動向までを幅広く紹介する. 具体的には文法変換アルゴリズム,圧縮テキスト上での文字列パターン検索,文法圧縮に基づく省メモリデータ構造等の解説を行う.Read less
ども、大瀧です。 最近、お客さまからの問い合わせからElastic Load Balancing(ELB)の負荷分散について調べ社内資料としてまとめる機会がありました。せっかくなので、ブログ記事として公開してみます。内容は随時アップデートしますので、ツッコミ・ご指摘があればぜひお願いします! 負荷分散の仕組み ELBは、クライアントのリクエストを受け付けEC2インスタンスにトラフィックを転送するために、2種類の負荷分散を組み合わせて動作します。 スケーラビリティと冗長性のために、ELBはロードバランサの機能を提供するノードを複数動作させるはたらきがあり、クライアントから複数のノードへアクセスを分散させるためにDNSラウンドロビン、ノードからEC2インスタンスへのトラフィック転送を分散させるためにLeast Connsという手法を用いています。 DNSラウンドロビン DNSラウンドロビンはそ
皆さんお元気ですか?LINEサーバー開発室でサーバ開発を担当している崔珉秀と申します。 この記事ではLINEのサーバーの開発とリリースプロセスについて述べたいと思います。 LINEの開発者はどんな形で開発しているのか、サービスに変更事項をどのように適用しているのか、お互い協力してより良い開発環境を得るためにどんな努力をしているのかをお伝えする機会になったらいいなと思います。 ここで述べるリリースプロセスは、LINEのサーバ開発の流れとソース管理システムの運用方法、そして本番環境に変更事項を適用するまでの過程です。 LINEのServer Applicationはその役割とシステムの構成によって複数のServer Applicationに分かれて構成されています。 例えばNetwork通信及びProtocolなどを担当するApplication、messagingやsocial graph
http://nodeup.com/fiftyfour 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 Trelloのアーキテクチャについてのアップデートです。2012年1月にブログで紹介されたものと、昨年11月の最新状況をまとめてみます。 まずは、当初のアーキテクチャ: UIをクライアントサイドで生成し、プッシュでの更新を受け入れるシングルページアプリ。Client/ServerともにJavaScript、2011年5月以降はCoffeeScriptで書いている。 1) The Client TrelloのサーバはHTML、クライアント側のコードをほぼ扱っていない。Trelloのページは2Kのシェルで、一つの圧縮されたJavaScriptファイル(サードパーティのライブラリと圧縮したCoffeeSc
Thorをご存知の方は多いと思いますが、Retterを作るにあたってとても便利に使えたので、手短に紹介したいと思います。 といってもだいたいはWikiに書いてあることしか書けないんですが、何しろ英語ですし、さわりだけでも伝えられたらなと思います。 Thor(トール、ソアー?)は便利なコマンドラインツールで、これを使うとコマンドラインオプションのパーズやサブコマンドごとのhelpをつくるなどの面倒な作業を簡単にこなせ、手早くビルドツールや実行可能なコマンドを作成できます。 特殊なDSLを使わずメソッドを定義することで処理を記述するため、テストしやすいという特徴もあります。 より便利なRakeとして使う 便利なRakeというのは主に引数とオプションの扱い方のことです。 Rakeは今も現役で便利に使っているんですが、例えば引数を渡したいときは環境変数として渡さないといけなくて、 これが割と面倒な
コマンドラインツール作成支援のライブラリThorについて調べました。基本的な使い方について情報をまとめました。といっても、ほとんどホームページの基本情報を日本語訳しただけのようなものですが。 Thorの概要 Thorは、コマンドラインツールの作成を支援するライブラリです。 gitやbundlerのようにサブコマンドを含むコマンドラインツールを簡単に作成することができます。 基本的な使い方 Thorを継承したクラスのパブリックメソッドがコマンドになります。 MyCLI.start(ARGV)でコマンドラインの処理をスタートします。一般的にはbinフォルダの実行形式ファイル内でstart(ARGV)を実行します。
Welcome! I assume that you came to this website looking for information on how to implement Continuous Integration (CI) and Continuous Delivery (CD) pipelines for PHP projects with Jenkins. Back in 2010, I created an Open Source template for Jenkins jobs for PHP projects and this website used to be the home of that project. I have neither used Jenkins nor updated the aforementioned template in qui
■目的 PHP figが策定したPHPの規約であるPSRがある。 ・PHP fig ・PHPのコーディング規約、PSRについての発表をしました : candycane development blog この規約でPHPのコードを記述するために必要なことを以下に示す。 ■PHP Coding Standards Fixer による修正 PHP Coding Standards Fixer を使用することにより、指定のコードを可能な限りPSRの規約にそったコードに修正してくれる。 使い方としてはphp-cs-fixer.pharをダウンロードして下記のように実行すればいい。 このコマンドで指定のディレクトリ以下を全てチェックして修正する。 php php-cs-fixer.phar fix /path/to/dir ただし、すべての項目にたいして対応しているわけではない。 対応しているのは下記
厳密には無関係ということはないのですが、僕は直接的に広告に関連のある事業をやっているわけではありません。しかし、最近アドテクの世界が面白くて、基本的なことから勉強しています。 インターネット広告はテクノロジーのかたまり インターネットはテクノロジーの世界です。そして、この世界でとても大きなお金を生んでいるのが広告です。 今をときめくGoogleもFacebookも広告で収益を上げている企業です。日本でも同様にインターネット広告の市場規模はとても巨大で、1兆円程度とのことです。 必然的に、広告という世界には、インターネットの業界のテクノロジーが結集します。だから、技術的にも、とてもおもしろいです。 広告はどこからやってくるのか? 広告とは、これのことですよね。 そもそもは、これがどうして表示されるのか、というを調べていました。調べてみると、裏側にはとんでもない世界が広がっていました。 純広告
2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。本件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 本件に関する詳細は、プレスリリースをご確認ください。
fluentdはログの転送・集約を簡単に行うためのツール fluentd ログの転送・集約を行うためのツール。複数台のサーバーを運用している時にそれぞれのサーバーにたまるログを、簡単な記述で特定の場所に集約できる。 今までは同じことをどうやって実現していたの? バッチでコピーしたり、似たようなことをやるScribeというツールを使っていた。この方法だと、設定が複雑になりがちだし、バッチだとリアルタイムに処理することができなかった。 fluentdの利点は? 設定が簡単、かつリアルタイムに処理できること。fluentdを使うとバッチではなくリアルタイムなストリーミング処理ができる。 fluentとfluentdのどっちの読み方が正しいの? 一応、fluentdが正しいっぽいです。 fluentdのインストール方法 簡単なのは、GemやRPMを使ったインストール。yumでのインストールも自分で
Go言語でコマンドラインオプションを扱う¶ Go言語でコマンドラインオプションの扱い方について調べました。 基礎¶ osパッケージのArgsを使うのが一番基礎的な関数です。 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } % go run main.go [/tmp/go-build146822252/command-line-arguments/_obj/a.out] %go run main.go hoge [/tmp/go-build842086855/command-line-arguments/_obj/a.out hoge] %go run main.go hoge hige [/tmp/go-build161156361/command-line-arguments/_obj/a.
ども、大瀧です。 先日、AWSのコマンドラインツールであるAWS CLIバージョン1.3がリリースされました。AWS Data Pipeline対応が目立ちますが、--queryオプションの強化が個人的にはインパクトが大きかったので、なにができるようになったのかと具体的な用例をご紹介します。 バージョン1.3で追加された--queryオプションの機能 では、まずは追加された機能を確認しておきましょう。以下の2点です。 フィルタ 組み込み関数 フィルタは従来AWS CLIの--filterオプションやjqと組み合わせて行っていた処理に代わるもの、組み込み関数はjqの関数(Builtin functions)に追随するものです。つまるところ、AWS CLIの出力結果の抽出・加工を--queryオプションに一本化することができるようになりました。 ...えーと、地味とか言わないでくださいw 従来
AWSなど様々な環境でサーバを管理してくると、すべて同一の監視ツールを使うのがなかなか難しくなってきます。そんなこともあり、私も定期的にいろいろな監視ツールを試しています。 http://nanapi.co.jp/blog/2013/09/11/monitor_nanapi_servers/ nagiosとクラウドの相性が悪い! 監視するには様々なツールがありますが、その中でも特に有名なツールはnagiosでしょう。古くから使われているツールで、プラグインも数多くあり様々な監視を行うことができます。 クライアント側にnrpeをインストールすることで、各ホストの詳細の状態まで監視することができますし、うまく活用すればかなり細かい監視までできます。 しかし、AWSのようなクラウド環境で使うには非常に使いづらいです。というのも、nagiosはサーバ側にどのホストを監視するのかという情報を持たなけ
普段はサーバのメトリクス可視化のためにcloudforecastを使っていますが、某案件用に数秒単位で数十台のサーバのメトリクスを表示したいので、記事タイトルのような構成を作ってみた。 dstatでとった各種値の他に、nginxとmemcachedの情報も合わせて表示させています。 セットアップ もろもろのセットアップのメモ 監視サーバ まず、監視サーバにElasticsearchとkibanaをいれる。環境はCentOS6 $ sudo yum install java-1.7.0-openjdk $ sudo rpm -Uvh https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.x.x.noarch.rpm Elasticsearchは特に設定なく起動 $ sudo service
InnoDBのテーブルから、プライマリキーを取得するクエリを書いたのに、なぜかセカンダリインデックスが使われることがある。この仕組みを、InnoDBのインデックスの格納方法から解説する。 今日、EXPLAINの結果を色々と試してみている時に、興味深い問題にぶち当たったので、ドキュメントには載っていないこの現象をここで共有しておこう。 とても単純なInnoDBのテーブルを考えるところから始めよう。2つのINT型のカラムを持ち、最初のカラムがプライマリキーで、2番目のカラムに普通のインデックスが張ってある。 CREATE TABLE `t1` ( `id1` int(10) unsigned NOT NULL, `id2` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id1`), KEY `id2` (`id2`) ) ENGINE=InnoDB;
InnoDBにはデータの圧縮機能がありますが、パフォーマンスが低いことからあまり使われていません。ただ今年の Percona Live で Oracle MySQL, MariaDB, そして Percona Server が新しい InnoDB Compression を出してきました。これはFusion-ioの R&D チームがフラッシュストレージ向けの MySQL 高速化の一環で開発したパッチが元になっています。ちなみに私は Fusion-io の社員ですのでこの発表をワクテカして待っていたのですが、折角コードが一般にリリースされたので、ソースコードを眺めて動作を調べることにしました。 参考にしたのは MySQL Server Snapshots (labs.mysql.com) にある MySQL with InnoDB PageIO Compression のソースコード、および
また1年振りの更新となりかけました。 Andres Raba氏により2011年から開発が続けられている、非公式PDF版SICPを全訳しました。 ファイル 恒例のgithubです。 https://github.com/minghai/sicp-pdf jsicp.pdfが日本語版の本体です。 ejsicp.pdfはデバッグ用の日本語・英語併記となります。 ライセンスはCC BY-NC-SA 3.0です。商業使用は認められないことにご注意下さい。 SICPとは何か? SICPとはMITが作成した何も知らない新入生向けのプログラミングの教科書です。 プログラミングと強調したことには理由があります。この本は良くあるプログラミング言語の教科書ではなく、あくまでもプログラミングを勉強するための教科書だからです。このことはこの本の中でも、最初の前書き、序文にて何度でも繰り返し強調されています。筆者達が
なんか自分で docs.fluentd.org へのpatchを書いてて混乱してきたのでまとめる。コードを読んでも関係する設定値がいくつものモジュールに分散しており、完全に把握することが困難である。具体的には、この組合せを記憶だけで答えられる fluentd コミッタはおそらく一人もいない。 概要 対象は BufferedOutput および TimeSlicedOutput を継承している output plugin の全て*1。out_forward, out_exec や out_exec_filter も含まれる。 基本的にはいくつかの設定により flush をするタイミングを制御するパラメータ一式、およびflush対象となるデータのチャンクを溜めておく量の上限を決めることとなる。fluentd をうっかり試したときに「アイエエエ、fluent-cat してみたんだけど、設定したと
limits.conf に書いても ulimit に効いていない、というのはよくある話です。 ulimit が少なくて困ったことはあっても、多くし過ぎて困ったことはほとんどないでしょうから、ドーンと全条件下でulimit設定を効かせる方法を紹介します。 ulimitが効かない問題 だいたいこんな内容だと思います。 SSHログインだと効かない su すると効かない OS起動時に自動起動したデーモンに効かない 普通はデーモンに効けばよいので、本当に困ったら起動スクリプトに直接書いたりしますが、方法としてはイマイチなのでちょっと工夫をします。 その前に・・・ PAMについて PAMというユーザー認証システムについてはググっていただくとして、よく出てくる /etc/security/limits.conf という設定ファイルは、PAMを通る条件下でしか有効になりません。 ではPAMを通るとはどうい
sysdig とは? Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry on top. http://www.sysdig.org/ 上に書いてある通り、一言で言うと strace + tcpdump + lsof + α。tcpdumpのように-wで書き出して-rで読み込めるのがありがたい。 高機能過ぎてまだ全然使いこなせてないけど、ぱっと触った感じ使えそうだなと思ったものを紹介。 1. プロ
[カテゴリ:others] 秘密鍵の内容を確認 openssl rsa -in key.pem -text CSRの内容を確認 openssl req -inform der -in req.der -text openssl req -in req.pem -text 証明書の内容を確認 openssl x509 -inform der -in cer.der -text openssl x509 -in cer.pem -text CRLの内容を確認 openssl crl -inform der -in crl.der -text openssl crl -in crl.pem -text
原文へのリンクはこちらです。 ここ数か月の間、Linux カーネル サブシステムの cgroup、および cgroup と関連しているが独立しているシステム / サービス マネジャー systemd の大幅な変更が進行中です。しかし開発者たちは真新しい機能を作っているわけでも、cgroup (コントロール グループ) を根本的に見直して、問題のあるカーネル領域に諸々の仕組みを押し付けようとしているわけでもありません。 cgroup は同一マシンで実行されている競合プロセス間でリソースをきめ細かく分割します。技術的にはカーネルのサブシステムですが、ドライバーやアーキテクチャ固有システム (PCI や USB など) のような典型的な分離型サブシステムとはかなり違います。cgroup は他のサブシステムがカーネル リソース (CPU 使用時間、メモリ使用量、プロセス グループなど) を管理した
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。これまで、JavaScriptで非同期処理を書く上での問題として、コールバック地獄やエラー処理に例外が使えないことなどを解説してきました。 これらの問題に対処するライブラリの1つであるjQuery.Deferredに関して、もう少し丁寧に解説いたします。なお、jQueryのバージョンは記事執筆時点の最新である、1.9.1を想定しています。 jQuery.Deferredとは jQuery.DeferredとはjQueryのバージョン1.5から導入された、非同期処理をうまく扱うための標準モジュールです。使いこなすことで、以下のような効果が見込めます。 非同期処理を連結
jQuery 1.6 が既にリリース されていますが、1.5 で追加された Deferred を勉強する意味で、Script Junkie から Creating Responsive Applications Using jQuery Deferred and Promises を翻訳してみましたので、共有したいと思います。著者の Julian Aubourg は、jQuery のコアチーム・メンバーとして、Ajax モジュールの書き換えと Deferred 導入を指揮した方だそうです。 記事の途中、各メソッドの説明部分は、jQuery ドキュメントの翻訳に差し替えていますので、リファレンスとして使ってもらうのも良いかと思います。 Deferred や Promise は、概念や用語が少々分かりにくいところがあるかと思いますので、読んでくださった方の、少しでも理解の助けになれば幸いです
Nginxチューニング nginx最大限にスピードを出すために、設定パラメーターをチュニングしました。 nginx設定例 user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 100000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; events { worker_connections 2048; multi_accept on; use epoll; } http { server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; access_log o
なかなかSICPに手を付けれずなので、仕事で始めて触ったGPGのコマンドライン上での暗号化復号化についてメモっておこうと思う。 GPGとは、Wikipediaによると GNU Privacy Guard (GnuPG) とは、Pretty Good Privacy (PGP) の別実装として、GPL に基づいた暗号化ソフトである。 OpenPGP 規格 (RFC4880) に完全準拠しているが、古い PGP との互換性は完全ではない。 ということらしい。 認識では、公開鍵暗号方式でファイルを暗号化するものと思ってる。 通信系にも使われてるのかな? 今回使うバージョンはこんな感じ。 $ gpg --version gpg (GnuPG) 1.4.11 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU G
思い込み多々あり。 http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html <再送まわり> minimal_backoff_time maximal_backoff_time maximal_queue_lifetime bounce_queue_lifetime queue_run_delay ここらへんの設定がいる模様。 たとえば、 minimal_backoff_time = 60s maximal_backoff_time = 600s maximal_queue_lifetime = 1800s bounce_queue_lifetime = 1800s queue_run_delay = 60s ※「s」は秒 した場合、 最初再送に失敗したら、defferedキューに入って、queue_run_delayごとにdef
コレをちゃんと覚えていなくてはまったので、ちょっと自分メモ 確認環境はこんな感じです。Ubuntu 12.04 LST 64bitです。 [ LOCAL(l) ] masasuzu@henry% zsh --version zsh 4.3.17 (x86_64-unknown-linux-gnu) [ LOCAL(l) ] masasuzu@henry% uname -a Linux henry 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 読み込まれるファイルと順番 本当は/etc/zsh/以下の設定ファイルも読み込まれるのですが、そこは基本的にデフォルトのままなので、今回は気にしていないです。 ログインシェルでzshを起動した時 ~/.zshenv
「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」公開ページ こちらのページはSoftware Design誌 2009年12月号の記事「Linuxのしくみを学ぶ - プロセス管理とスケジューリング」の公開ページです。 「ハイパーバイザの作り方」も公開中ですので、こちらも是非ご覧ください。 公開中の記事 HTML PDF ePub mobi Kindle 原稿データ 全ての原稿データはgithub上で公開されています。 Pull RequestやIssuesを通じて文章の誤り訂正や解説の追記、各フォーマットの表示の改善などのコントリビューションを受け付けています。 改善された記事は随時このページにアップロードしていきます。 記事に関するご質問 記事を読んで何かわからなかった点があったり、疑問に思ったことがあれば以下の連絡先に問い合わせてください。 Twitter: @syuu
All-In-One binary Kocha can create a standalone binary that includes Go codes, configurations, templates, and even static files. No own syntax Configuration, routing, and all other settings are in Go's syntax. You don't have to learn own syntax. Batteries included Kocha provides many useful features for your web app development. layouting, templating, routing, session, ORM, and more.
HTTPS通信は複数のプロトコル、手法が組み合わされて実現されている。そのため、暗号化手法それぞれのリスク、ブラウザの対応等様々な用件があり、全てを理解するにはちょっと時間とリソースが足りない。結局のところ、我々はどのようにして安全なHTTPS通信を提供できるのか。色々調べていたところ、MozillaがMozilla Web siteに使用する、HTTPSの推奨設定を公開している。 Security/Server Side TLS - MozillaWiki このドキュメントはMozillaのサーバ運用チームが、Mozillaのサイトをより安全にするために公開しているもので、他のサイトにそのまま適用できるかは十分に注意する必要がある。例えばガラケー向けサイトとか。そのまま使えないとしても、HTTPS通信の設定をどうすれば良いか、理解の一助になるはずだ。 この記事は上記MozillaWiki
Fluentdを触るようになって、いろんなログをfluentdに 渡すように試行錯誤している最中。 td-agent.conf、fluent.confを用意するときに任意のjson形式にするために 正規表現を用いてformatを書く必要があるんですが、formatの作り方というかデバック方法について どういう手順に作ると良いのか情報がネット上に見当たらず試行錯誤中。 もっと良い方法を教えてもらいたいので、今やっている方法を晒してみる。 そもそもの疑問、どうやってformatを作るのか たとえばfluentd関連の情報を調べてると、 #fluentd で maillog を読み込んで MongoDB に投入 - 酒日記 はてな支店 format /^(?<date>[^ ]+) (?<host>[^ ]+) (?<process>[^:]+): (?<message>((?<key>[^ :
NUMA(Non-Uniform Memory Access)とは Non-uniform memory access - Wikipedia, the free encyclopedia NUMA - Wikipedia NUMA(Non-Uniform Memory Access、ヌマ)とは、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャのひとつで、複数プロセッサが共有するメインメモリへのアクセスコストが、メモリ領域とプロセッサに依存して均一でないアーキテクチャである。 複数CPUがある場合、近いメモリと遠いメモリが構成上存在し、データが置かれる場所によって、性能に差が出てしまうアーキテクチャである。 ネットワーク性能を測定する場合も、NUMA構成上不利な状態で性能測定をしてしまうと、思うような性能が出ない場合があるため、注意が必要である。本稿では、NUMA及びCPU
$ ./coreup --help Usage of coreup: -cred-cache="/home/ma2/.coreup/cred-cache.json": location to store credential tokens -project="coreup-ma2": name for the group of servers in the same project -provider="ec2": cloud or provider to launch instance in -region="": region of the cloud to run these commands in coreup with GCE せっかくなので GCE にデプロイしてみましょう。 コンソールのセットアップ プロジェクト作成 まずGoogle API Console にログインします
2018/7/5に第2回Burp Suite Japan LT Carnivalで登壇した時の資料です。
Welcome to Swift Swift is a new object-oriented programming language for iOS and OS X development. Swift is modern, powerful, and easy to use. let people = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25] for (name, age) in people { println("\(name) is \(age) years old.") } Safe Swift pairs increased type safety with type inference, restricts direct access to pointers, and automatically manages memo
CyberZ 公式エンジニアブログ アドテクや最新のテクノロジーについて情報発信していきます ブログトップ 記事一覧 画像一覧 怠惰のすゝめ。Do・・・ » Appleの新言語「Swift」を使ったテスト駆動開発と、機能の紹介 2014-06-05 14:20:52NEW ! テーマ:ブログ 新言語「Swift」とは新プログラミング「Swift」は、先日のWWDCで突如として発表された、Appleの作った新プログラミング言語です。Objective-Cに比べてモダンな文法が盛り込まれていたり(どことなくScalaやC#に似ていたり)、速度が早くなっている特徴があります。 Xcodeとの親和性の高い連携も示唆されており、今後広まっていく可能性が十分にあると思います。FizzBuzzとはFizzBuzzとは、プログラミングの課題などでよく出される問題で、1から順番に数字のループを行い、3の倍数
ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで
Swiftが発表されてから、数日経過しましたがすでにたくさんのコードがGithubに上がっています。Swiftを始めたいエンジニアが参考になるサンプルをピックアップしてみました。 自分も今週末に珈琲を片手にコードを読んでみようと思います。 Githubの検索結果URL FlappySwift 4,700★ 半日くらいで作られたFlappy Birdのクローンです。 SpriteKitを利用していて、メインのゲームロジックは200行弱ほどで書かれています。 Swiftでシンプルなゲームを作成するのに参考になります。 GameScene.swift 一部抜粋 // // GameScene.swift // FlappyBird // // Created by Nate Murray on 6/2/14. // Copyright (c) 2014 Fullstack.io. All rig
Build apps using a powerful open language.
あいかわらずphpでやんなくていいじゃんな話、なのかな。そうでもないかも。 php.net の proc_open の例にあるように、 proc_open() で子プロセスを起動してstream_get_contents() すると、場合によっては固まったまま動かなくなったりします。「デッドロックを避けるため…」という件がコメントに入ってますが、こういう話が得意でない人にとってはそんなとこ以上にハマりどころがありました。 stdoutとstderrに交互に出力 たとえば次のようなシェルスクリプト test.sh を考えます。 #!/bin/sh for i in `seq 1 10000`; do echo "stdout: $i" >&1 echo "stderr: $i" >&2 done 単に標準出力と標準エラーに交互に数字を吐き出すだけです。 これをphpから実行するときに、php
全国1億2000万人の監視マニアのみなさん、こんにちは。 Sensuは、非常にシンプルなアーキテクチャーで、さまざまなカスタムスクリプトを使っていろいろな監視を行ったり、メトリクスデータを取得することができます。メトリクスデータはさらにGraphiteなんかに送信してあげれば、どんどんグラフ化できます。このあたりの話が前提になっていますので、Sensuってなにそれ?な方は先に「Sensuを使って自由度の高い監視システムの構築を行う方法」をご覧ください。 チェックスクリプトを書くのは非常に簡単ですが、SensuではCommunity Pluginという形で非常にたくさんのプラグインが既に公開されていますので、今日はそれを紹介します。 Community Pluginの入手なにも考えず、git clone https://github.com/sensu/sensu-community-plu
概要 Serf と Consul の情報を整理しました。どちらも一般的な単語なので、ネットで検索しようにも、ノイズが多く、情報が埋もれがち。そこで整理したのがこちらです。 もし抜けがあったり、追加がありましたら、コメントなりリクエストいただければと思います。 (なお、順番は時系列にしようかと思いましたが、あまり整理されていません。このあたりもどうしようかな・・・。ひとまず日本語中心です。) Serf http://www.serfdom.io/ 週末雨だったのでSerfをさわってみた - ni-blog http://orihubon.com/blog/2014/06/29/serf/ Serf を使ってみた - jedipunkz' blog http://jedipunkz.github.io/blog/2013/11/10/serf/ Serf+HAProxyで作るAutomatic
Javaプログラマやソフトウェア開発者として、私は「プログラマが知っておくべき…」というタイトルが付く記事から、多くのことを学びました。そういった記事は、特定のトピックに関する有益かつ詳細な情報を数多く与えてくれましたが、探し出すのが非常に困難でもあったのです。知識を探求する中でとても役に立つ記事を見つけたら、参考として何度も読み返せるようにブックマークしてきました。こういった記事を読むことは、どのプログラマにとっても有益になると思うので、私が集めた「 すべてのプログラマが知っておくべきこと 」を皆さんと共有する為にこれを書きました。 ここで紹介する記事は私が個人的にブックマークしたものです。「メモリ」、「Unicode」、「浮動小数点演算」、「ネットワーキング」、「オブジェクト指向設計」、「時刻」、「URLエンコード」、「文字列」などといった代表的なトピックについて載っています。このリス
男子たるもの一度は自分でCPUを作ってみたいものだけど、ICでLEDをピカピカさせた程度の経験しかないハード素人な俺だったので、CPUを自作してる東大生などを遠くから見て憧れてるだけだった。しかしおよそ一年前のこと、「MIPSなんて簡単に作れますよ!」とKさん(←FPGAでLispマシンを自作するような人)に言われて、お、おぅ。。そりゃKさんはそうでしょうよ。。あれ、もしかして俺にもできるかな。。? と思った。この一言がなければ32bitのCPUを自作しようなんて考えなかっただろう。 それから一年ちょい、とくに今年の正月休みやFPGA温泉でがっつりがんばって、なんとかMIPS Iサブセットの自作CPUが動いた。これはフィボナッチを計算してるところ。 ちなみに、これはこんな感じのフィボナッチのコードをCで書いて、 void main() { int i, *r = (int *)0x7f00
自分がプログラマから起業して沢山失敗したので、同じミスをプログラマ、エンジニアの方にして欲しくないという想いから、よくある失敗をまとめました。(常に追加中) プログラマでなくても、フリーランスや起業する方に役立つでしょう。 特に技術分野の経験だけしかない人は、気をつけましょう。 技術以外の大量の会社関連の知識、実行能力、実行する時間、経験が必要になります。 従業員との最も大きな違いはリスクかと思います。 従業員は金銭的なマイナスリスクは非常に少ないですが、フリーランスや取締役は数百万円以上のリスク負うことが非常に多いので、リスクヘッジをするための知識と経験が(嫌でも)多く必要になります。 技術も持っているのでプロダクトを作りたい方も多いと思いますが、会社の場合プロダクトを作るだけではなく、市場で勝てるプロダクトを作る会社組織も同時に作らなくてはなりません。どのような人材をどの順番でどのよう
こんにちは。@jedipunkz です。 皆さん CoreOS は利用されたことありますか?CoreOS は軽量な docker との相性の良 い OS です。下記が公式サイト。 http://coreos.com/ 特徴としては下記の3つがあります。 etcd systemd docker ここではこの中の etcd について注目していきたいと思います。etcd はクラスタエイ ブルな KVS データベースです。コンフィギュレーションをクラスタ間で共有すること がなので、オーケストレーションの分野でも期待出来るのでは?と個人的に感じていま す。今回は etcd のクラスタ構成構築の手順とその基本動作の確認、またどう応用出来 るのか?について記していきたいと思います。 参考 URL http://coreos.com/using-coreos/etcd/ https://github.co
etcd って何と聞かれた場合、一言で言ってしまえば zookeeper なんだけど Documentation · CoreOS etcd etcd is a highly-available key value store for shared configuration and service discovery. http://coreos.com/docs/etcd/ coreos/etcd - GitHub https://github.com/coreos/etcd etcd の良い所は curl で使える様な簡単な API SSL Cert 認証もオプションとして使える ベンチマークで 1000s of writes/s per instance を出せるくらい速い Raft を使って正確に、確実に分散する という感じらしい。作ってるのは CoreOS。 etcd はキーを
はじめに BounscaleというオートスケールするHeroku Addonを作っています。 Bounscaleは現在はHerokuに対応していますが、元々Herokuに関わらず主要なクラウドのリソースをオートスケールさせたいと考えています。なので今後数年のトレンドを持って行きそうなDockerの動向はもちろん注視しています。 そんな中、DockerのクラスタツールKubernetesがGoogleから発表されたので、概要をつかむために少しドキュメントを読んだので所感を含めてまとめておきます。 注意 公式のGithubのWikiのデザインドキュメントなどを読んで自分なりに理解した内容をまとめています。私見メモであり推測も多分に含まれているいい加減な文書です。翻訳ではありません。また、理解に誤りが含まれていると思います。原文読んでください。 Kubernetes? これはなんて読むんでしょう
Gossip-based Membership Serf relies on an efficient and lightweight gossip protocol to communicate with nodes. The Serf agents periodically exchange messages with each other in much the same way that a zombie apocalypse would occur: it starts with one zombie but soon infects everyone. In practice, the gossip is very fast and extremely efficient. Failure Detection Serf is able to quickly detect fai
Linuxのブロックデバイスレベルで実現するrsyncより高速な差分バックアップについて - ゆううきブログの続きとして、Facebook の memcached 運用に関する論文を読んだ。 タイトルなどは以下の通り。 NSDI はネットワークシステムに関するトップレベルのカンファレンス。 Scaling Memcache at Facebook Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, Venkateshwaran Venkataramani NSDI'13 In Proceedings of the
複数のクライアントから一つのサーバーにログを集める事をしていたのですが、hostnameを入れておかないと後で『どこの鯖のログだこれ?(^q^』となってしまうので。 なお、今回初めてfluentd(というかtd-agentを)触りましたw とりあえず、初心者らしく td-agentはバージョン 1.1.19を利用しています。 なお、この項はhostnameを入れる件とは関係ないので、hostnameを入れる部分を読みたい方は、ページ中段の「hostnameを入れる」の項を参照してください。 インストール等々、以下のサイトが分かりやすかったです。 fluentd(td-agent) の導入 td-agent? Fluentdは拡張しやすいようRubyで実装され、一部の性能に直結する部分はC言語で実装されています。 しかしライトユーザーにとってRubyのデーモンをインストールし運用することは難
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
暫く Vim の設定をいじっていなかったので、設定(Vim 7.4 へのアップグレードも含めて)を見直しました。 以前の記事はこちら。 Go 付属の vim プラグインを使うのをやめて vim-go にした $GOROOT/libexec/misc/vim に Vim プラグインが付属していますが、使うのをやめました。 理由としては付属 Vim プラグインと gocode の Vim プラグインを使うより、vim-go を使うほうが管理が楽だと考えたためです。 Go 関連の設定は以下のようにしました。 if !exists('g:neocomplete#omni_patterns') let g:neocomplete#omni_patterns = {} endif let g:neocomplete#omni_patterns.go = '\h\w*\.\?' let g:quickr
http://googleresearch.blogspot.com/2014/07/simple-is-better-making-your-web-forms.html 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 今回、Googleのチームが、アイトラッキングシステムの利用やユーザインタビューを通じて、入力フォームのユーザビリティについて実験しています。参照しているのは、2010年にスイスのUniversity of Baselのチームがまとめた "20 guidelines to optimize web forms" です。2000年代のアカデミックな研究成果をもとにまとめられたものですが、現在もまだ当てはまるものと、ここ5-10年で変わってきているものがあり、興味深いです。最近は、スマホ
この記事は Vim Advent Calendar 2012 101日目の記事になります。 お陰様で100日目を迎えることが出来ました。 Vim Girl ちゃんかわいいよ Vim Girl ちゃん。 参加者はまだまだ募集中なのでとっておきのネタやプラグインなんかを紹介してみるといいと思います。 また、既に参加していて2回目もやりたい!って方はこの記事へコメントして頂けばスケジュールに追加するのでぜひ! [quickrun.vim について] quickrun.vim とはバッファ上のソースコードを実行して、その実行結果を Vim へ出力する為のプラグインです。 quickrun.vim を使用する事で、素早くソースコードを実行することができ、また Vim との連携を高めることが出来ます。 [導入方法] quickrun.vim は github で公開されておりそこから取得する事が出来ま
スワップがなぜ起きるか、どのようにスワップの状態を確認するべきかの平易な解説。Quoraの質問に対する、Robert Love氏の回答。 質問に対するストレートな回答は、調べるのは不可能、だ。どうしてそうなのかを説明してから、君の知りたい情報を含んでいるであろう、5つの関連する質問に答えよう。 Linuxのような、モダンなOSにおいては、スワップはシステム全体における現象だ。ある1つのプロセスがスワップに関する責任を持っているわけではない。システムがスワップしているかどうかは、メモリプレッシャの機能による。物理メモリを大量に使おうとすれば、スワップしてしまう。何をスワップアウトするかは、一番少ないページを要求しているのが何かによる。何をスワップインするかは、一番ページを必要としているのが何かによる。プロセスがRAM上に存在しないページを要求した時、そのページはディスク上にあるので、スワップ
シェルスクリプトでGo言語のツールをクロスコンパイルしてGithubにリリースする [@motemen]()さんの“Wercker で Go のプロジェクトをクロスコンパイルし,GitHub にリリースする - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)”を手元からやる. Werckerからリリース良いと思うけど,自分はリリースは手元で管理したい.その辺は毎回同じスクリプトでやってるのでまとめておく.なお,コードは全てtcnksm/go-distribution-scriptsにある. クロスコンパイル 基本はHashicorpのやり方を真似してる. まず,クロスコンパイルはmitchellh/goxを使う.goxは複数プラットフォームの並列コンパイルと出力先の設定の自由度が気に入ってずっと使ってる.何よりシンプルで良い.以下のようなスク
それほどDBに詳しくないアプリエンジニアが何かトラブった時にすぐさま行動して問題把握できるようになる情報を列挙しておきます。 開発時、障害時の対処療法やちょっとした定期監視方法などを対象にしています。 抜本的な対策などはインフラエンジニアさんにお任せしたほうがいいと思います。 DBはいろんな意味でこわいんでできれば触りたくないです>< 事前確認 MySQLサーバーのシステム設定値を確認しておく 以下のようにサーバーのシステム設定値を確認できます。 mysql> SHOW GLOBAL VARIABLES; # ワイルドカード(%)を用いた絞り込み mysql> SHOW GLOBAL VARIABLES LIKE 'performance_schema%'
Go言語での構造体実装は、埋込や独自コンセプトのインターフェースといったGo言語独自の機能を理解して行う必要があります。 今年からGo言語を始めましたが理解が曖昧なままだと実装に迷うことが何度かありました。今回よい機会なので、Go言語での構造体実装パターンとしてまとめてみることにしました。 構造体実装パターン 実装パターンの洗い出しとして、GoFデザインパターンをGo言語で実装する手法をとりました。 その中で繰り返し現れる実装をGo言語での構造体実装パターンとしてまとめてみました。 コンストラクタ関数 エクスポートによるアクセス許可 インターフェースによるポリモフィズム 構造体によるポリモフィズム 構造体によるサブクラス・レスポンシビリティ 構造体による移譲 関数による移譲 以下、それぞれのパターンを解説していきます。 コンストラクタ関数 Go言語には構造体のコンストラクタがないため、構造
Red Hat legal and privacy links About Red Hat Jobs Events Locations Contact Red Hat Red Hat Blog Diversity, equity, and inclusion Cool Stuff Store Red Hat Summit Copyright © 2024 Red Hat, Inc. Red Hat legal and privacy links Privacy statement Terms of use All policies and guidelines Digital accessibility
構造体 Go言語には、クラスがない。そのため、代わりに構造体(struct)を使い、その型にメソッドを設けることで似たような振る舞いをさせる。 package main import "fmt" type Person struct { FirstName string LastName string } func (p *Person) Name() string { return p.FirstName + " " + p.LastName } func main() { person := &Person{"Taro", "Yamada"} fmt.Println(person.Name()) }
Deiban Wheezy(x86またはamd64)で Go を使おうと思ったら標準とパッケージ golang を入れることになるが、これは go 1.0になってしまう。Debian testingとかだと1.2があるんだけど。 これは古すぎて困るなーと思ったら In-flight deb packages of Go で godeb というものが公開されていた。 32bitなら上記エントリ本文中にある x86 32-bit binary のリンクにあるファイルを、64bitなら x86 64-bit binary を取得して展開すると godeb というバイナリが現れる。 godeb は、自動的に golang の公式リポジトリの配布tarballを取得して go という名前の deb にしてさらにインストールしてくれる。しかもその取得するリポジトリは各種バージョンが選べるっていう。 ま
ども、大瀧です。 VagrantやPacker、Serfを開発するHashiCorpが手がける新オーケストレーションツール、Terraformが発表されました。zembutsuさんが神速で日本語チュートリアル記事を既に公開しているので、terraformコマンドの使い方はそちらを参照ください。 Terraformとは Terraformは、あらかじめインフラ構成をテンプレートファイルに記述し、terraformコマンドでクラウド環境に適用・管理するツールです。一見するとAWS CloudFormationと非常に良く似た作りですが、以下の特徴があります。 複数のクラウドサービスに対応し、高レイヤーのアプリケーション構成に特化 現時点でTerraformが対応するサービス/プロダクトは以下です。 AWS CloudFlare Consul DigitalOcean DNSimple Hero
概要 TerraformのAWSを使って、CLIを通してインスタンスの起動→変更→停止を行うためのチュートリアル。Terraform の基本概念である plan apply show のサイクルを理解するためのもの。 追記 Terraformのblog投稿、参考訳 - Qiita http://qiita.com/zembutsu/items/402e02950ce9d59fa0e6 Terraform入門 日本語訳 - Qiita http://qiita.com/zembutsu/items/84f5478701c5391df537 Terraform とは Hashicorp (Vagrant, Packer, Serf, Consul を作っている会社) によって 7/28 に公開された新しいオープンソースのプロダクト。 Terraform http://www.terraform
はじめに ダニーです。2年ぶりの登場です。 今回はHubotについて書きます。 Hubotとは 絵はisshie作です。 githubが作ってるbotフレームワークです。 http://hubot.github.com 何ができるのか HipChat, Skype, IRC, その他チャット系のツールでbot用のユーザーを作成して、Hubotがそのユーザーとしてチャットにログインします。 そのユーザーにコマンドを話しかけると、Hubotがそのコマンドに応じた処理をして結果をbot用のユーザーがチャットで発言することで返してくれます。botなので定期的になにか発言したり、呼びかけに対してなにか自動で答えるというようなことができます。 何が嬉しいのか 普段の開発で定期的にやることなどをコマンドとして作成しておくと、そのコマンドをチャットで話しかけることでHubotが自動で処理してくれるようにな
SR-IOV enabledな c3/i2 インスタンス使うときのNICドライバのパラメータをどうしたらいいかわからなかったので軽く検証してみた。 NICのドライバパラメータ(InterruptThrottleRate)をチューニングすることで、例えばHAProxyを使ってるような高pps環境でCPUの割り込み負荷を削減できる。 ELBの代わりにHAProxy使ってる噂は結構聞いたりする。 - クックパッドでのVPC移行について - Cookpad's deployment and auto scaling // Speaker Deck みんなELBからhaproxyに移行してる #jawsdays— kenjiskywalker (@kenjiskywalker) March 15, 2014 前提 c3インスタンス 2013年の11月くらいにでた新しいインスタンスタイプ SSD Xe
こちらでは、おすすめの当日のセッションの動画、プレゼンテーション資料をご覧いただけます。(順次アップデート中) トラック別のセッション紹介はこちら ≫
https://www.youtube.com/watch?v=1-3Ahy7Fxsc 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約2時間前 GoogleのJeff Dean(Senior Fellow, システム & インフラグループ)による、Velocity Conference 2014のキーノートスピーチです。 Jeffは、オブジェクト指向言語によるプログラムの最適化で博士号を取得。DEC/Compaqの研究所の勤務をへて、1999年にGoogleに入社。以降、BigTable / MapReduce / Spanner / Google Translate / Google Brainなど、同社の大規模分散システムの構築に一貫して携わってきています。 例えば、検索結果のレスポンスを向上させるには、そ
https://www.youtube.com/watch?v=VV7b7fs4VI8 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 パッケージ(apt, yum, gem等)レポジトリのホスティングサービスであるPackageCloudを開発している、James Golickの講演です。 パフォーマンスの高いハイクオリティなソフトウェアをデプロイしたければ、あらゆるレベルでバグ修正ができるようになること。 まず、エピソードとして紹介しているのが、友人の会社のサイトが落ちて、あいにく、その会社のエンジニアが出払ってしまっていて、どうにかしてほしいと助けを求められたときのこと。 ソースコードを見たことない。 システムの構成を知らない。 phpは詳しくない。 SSHでアクセスできる情報だけはある。 とい
概要 最近,consul,etcd,ZooKeeper といった,いわゆる Coordination Service(この名前は ZooKeeper の論文から拝借した)の実装が頻繁に行われている.本記事では,開発が盛んな背景を踏まえた上で,オープンソース実装の Coordination Service の比較を行う. Chubby から現在まで Paxos が Google の手によって Chubby という形で実用化された後,故障検出+分散合意アルゴリズムを用いた高可用KVSという組み合わせによる Coordination Service のオープンソース実装がいくつが出てきた.そのはしりが ZooKeeper である.ZooKeeper は Hadoop ファミリではデファクトスタンダードの Coordination Service であり,Hadoop を初めとして HBase,M
7. アプリケーションのコーディング、ビルド、デバッグ 7.1 コーディング 開発環境が整ったところで、組み込みシステムの定番であるLEDの点滅を行う単純なアプリケーションプログラム(リスト1)を作成してみましょう。このプログラムは、H8/3069Fプロセッサの4番目のポートの6ビット目、7ビット目に接続されているマザーボード上の赤と緑のLEDを交互に点灯するプログラムです。プログラムの流れは、以下の通りです。 ポート4の6ビット目、7ビット目を出力ポートとして設定 7ビット目に1を出力 点灯を保持 6ビット目に1を出力 点灯を保持 2.に戻る リスト1. LEDの点滅を行う単純なアプリケーションプログラム #define P4DDR (*(volatile unsigned char *)0xfee003) #define P4DR (*(volatile unsigned char *
original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,
先程のエントリーでExampleとgo docの関係がいまいちはっきりしなかったので少し調べてみました。 今回はGOPATH以下このようなのようなディレクトリ構成を想定しています。 src/ sample.com/mylib1/sample.go sample_test.go ※mylib1ディレクトリ以外は省略 またそれぞれのソースコードの内容は以下のとおりです。 sample.com/mylib1/sample.go package mylib1 // x / y の計算を行います。 func Div(x int, y int) float64 { return float64(x) / float64(y) } sample.com/mylib1/sample_test.go package mylib1 import ( "testing" "fmt" ) func TestDiv
The book is also known as RE4B and "Understanding Assembly Language". Written by Dennis Yurichev. News: Demographics of reverse engineering. How to start learning reverse engineering in 2023. Download PDF files English Russian French German Japanese Italian Polish Chinese (published by PTPress, 2017) vol1, vol2, more info. There is also partial translation: as a single HTML file; epub file. Korean
MySQL テーブルの複製(コピー)を作成する 2011.04.28 MySQL テーブルデータを大量に変更したり、削除するとき、テスト用にテーブルの複製(コピー)が欲しいときがある。 コピーしたテーブルに対して、 SQLを発行してうまくいったら、本番用のテーブルに対して作業を行えば良い。 作業は2ステップ、作業時間は3分もかからない。気軽にテスト用のテーブルを作って色々なSQLにチャレンジできるのが嬉しい。 ■空テーブルを作成する 元テーブルと同じフィールドを持つ空テーブルを作成する。 mysql> create table books2 like books; ■データをコピーする INSERT文を実行する。 mysql> insert into books2 select * from books; Query OK, 8765 rows affected (0.26 sec) Re
C と Go 言語 (Mac OS X) 2012-12-14 (鈴) 1. はじめに 2. C からのコールバック 3. main 関数を主スレッドに 4. 簡単なフライト・シミュレータ 5. 謝辞 qsort.go: Go から C の qsort を呼び出す (§2) qsort2.go: 両言語で int 型が同じであることに依存して Go から C の qsort を呼び出す (§2) glut1.go: OpenGL の GLUT を使うため Go の main 関数を主スレッドに固定させる (§3) skyfly.go: OpenGL のフライト・シミュレータを Go から駆動する (§4) go_bridge.c: フライト・シミュレータのための補助コード (§4) Makefile: フライト・シミュレータのための Makefile (§4) skyfly-with-go
ちょっと時間に対して話したいことが多すぎて、各分野での掘り下げが足りなかったとは思いますが、一通り下のほうまで盛りこみました。 電子工学について:自分は学校で電子工学を体系的に学んだことはありません。 YAPC 会期中はそこらへん歩いてます。
(環境変数GODEBUGは、 ランタイム パッケージで提供されています) この環境変数を指定してプログラムを起動すると、標準出力に以下の追加出力が出力されます(少し簡略化されています)。 % env GODEBUG=gctrace=1 godoc -http=:6060 ... gc76(1): 2+1+1390+1 us, 1 -> 3 MB, 16397 (1015746-999349) objects, 1436/1/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields gc77(1): 2+0+1582+1 us, 2 -> 4 MB, 14623 (1016248-1001625) objects, 1436/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields scvg0: inuse:
弊社のホームページにCSP(Content Security Policy)を導入しました。CSPについては、はせがわようすけ氏のスライド「5分でわかるCSP」がわかりやすいと思います。以下にスライドの一部を引用します。 具体的には、以下のように指定して使います。 Content-Security-Policy: default-src 'self' この結果、以下のようにJavaScriptの記述が制限されます。 外部のJavaScriptの読み込みは禁止 HTMLソースに記述した<script>...</script>のJavaScriptは禁止 イベント属性(onload="xxxx"など)は禁止 何も書けなくなるじゃないかと思われるかもしれませんが、JavaScriptは全て*.jsファイルに記述すればよい、ということです。 CSPは、JavaScriptのコードとデータを分離して
Localization がより簡単に! Xcode 6 では Localization (多言語化) に関する機能が増強され、より簡単に管理できるようになりました。どのような点に変更があったか確認していきましょう。 XLIFF のインポートとエクスポート Xcode 6 では新たに XLIFF (XML Localization Interchange File Format) 形式によるローカライズデータのインポート/エクスポートがサポートされました。XLIFF はソフトウェアや文書の国際化・翻訳のために開発された XML ベースの規格です。Storyboard や InfoPlist、Localizable.string などのようなローカライズの対象となるファイルの各種設定値を言語毎に XLIFF 形式で書き出すことができます。 書き出す方法は非常に簡単で、プロジェクトを選択した状
Overview These tools are meant to help you deploy SPF records for your domain. They use an actual RFC 7208 compliant library (pyspf) for tests and will dynamically test for processing limit errors (no other testers I'm aware of do this). This site uses a caching DNS resolver, so for tests that use live DNS, results will be cached for the Time To Live of the DNS record. For most basic uses, these t
AWS アカウントを複数人で使ってシステムを作っていく時に、 セキュリティの面からやるべきことについて。 主に Web アプリケーションを想定した内容ですが、特に書いてあることは特殊ではないと思います。 各所の Blog にも記事書かれてますが思っていることをつらつらと書いてみます。 なんか変なこと言ってたらご指摘ください。 参考: AWSのセキュリティが気になるなら読んでおくべきAWSセキュリティのベストプラクティス - yoshidashingo はじめに (AWS アカウントと IAM ユーザ) 前提というか用語の話。 AWS アカウント アカウント作成時のメールアドレス、パスワードでログインして使うユーザ IAM ユーザ AWS アカウントから発行できる、ユーザ名とパスワードでログインして使うユーザ AWS アカウント周り AWS アカウント (ルートユーザ) で作業できないように
Help us understand the problem. What is going on with this article? 仕事で Golang を使ってウェブアプリを作ることになりそうなので、どんな構成がいいのか考えてみる。あくまで前提ありきの選択なので、何でもかんでも適用できるわけではない。 JS や静的ファイル部分は今のところ考慮していない。単によく知らないので。 突っ込み大歓迎です。これいいよ!とか教えてください 前提 多機能なフレームワークよりシンプルなフレームワークに色々組み合わせる方法をとりたい。 開発者は数名程度。Golang に精通している開発者が 1 名いる。残りはこれから。 開発者は Django での開発経験が豊富な人が多い 全員ウェブ開発経験はそれなりに積んでいる。 HTML と JSON 両方のパターンが存在するのでテンプレートエンジンは重要。 JS
ニュースレター インターネット10分講座 JPNIC Newsletterの1コーナーである「インターネット10分講座」だけをまとめました。 こちらのコーナーは、No.20からの企画です。 ここに出ていない用語については、用語集もご覧ください。 タイトル PDF 掲載号
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く