Linux のパッケージ管理システムの例
社内勉強会で Dependency hell - Wikipedia を読んでいます。
Linux のパッケージ管理システムの例として挙がっているものに知っているものも知らないものもあったのでメモ。
apt
Chapter 2. Debian package management
Debian のパッケージ管理システム。
dpkg の上のレイヤで、aptitude の下のレイヤだと思います。
YUM
Chapter 14. YUM (Yellowdog Updater Modified) - Red Hat Customer Portal
Redhat のパッケージ管理システム。
RPM の上のレイヤ。
Urpmi
mandriva.com
Mandrivia Linux のパッケージ管理システム。
RPM の上のレイヤ。
ZYpp
Portal:Zypper - openSUSE
OpenSUSE のパッケージ管理システム。
RPM の上のレイヤ。
Portage
http://www.gentoo.org/doc/ja/portage-user.xml
Gentoo Linux のパッケージ管理システム。
ひたすらにビルドする系。
Packman
pacman - ArchWiki
Arch Linux のパッケージ管理システム。
自分用のお題的な何か
自分用。
これだけならn分以内に作れる、ということにしたい。
ネットワーク使うしDB使うしでいいかなって思ったので。
- 種類
- Webアプリケーション
- 内容
- 個人用オンラインブックマーク
- 機能
- ログインできる
- ログインすると、公開可否を問わず登録済のブックマークを閲覧できる
- ログインしなくても、公開可として登録済のブックマークを閲覧できる
- ログインすると、oauth 認証可能な外部サービスを登録できる
- ログインすると、外部サービスへの投稿履歴を見ることが出来る
- 外部サービスへの投稿ができる
- 外部サービスへの投稿はサーバサイドで行う
- 非同期に行なってもよい
- 投稿時は、投稿先のサービスと、投稿日時を記録する
- ブックマークを登録できる
- URL、タイトル、コメント、イメージ、タグ、公開可否を指定できる
- ブックマークを編集できる
- URL、タイトル、コメント、イメージ、タグ、公開可否を編集できる
- ログインできる
TDDBC 横浜 Second Season でした
TDD Boot Camp(TDDBC) - TDDBC横浜 Second Season
「二回目だからSecond Season」は分かる人には分かるネタだったけど誰も気づかなかったという残念な事実を聞きました。
というわけで去年に引き続き二回目の TDDBC 横浜でしたので雑感をメモ。
会場
- 株式会社アットウェアさんでした
- ありがとうございます!
- アジャイルサムライ横浜道場経由のつながりだったんかな?
遅刻
- 面目ねぇ、面目ねぇ
ネットワーク
- 「今回もか!」と言われてしまいそうですが「去年よりマシなんだよ!」と言い返します
基調講演
- 川西さん
- 叙述的っていうんですかね。とても面白かったです
ライブコーディング
- 見てる人を置いてけぼりにしてしまっていてすみません
- tomykaira さんのスペックを引き出せずすまぬ…
- 頭の回転が良くない自分にはちょっくら荷が重かったかも…
- フィッシュボウルは視界がスクリーンに専有されてたのでよかったですがですが
侘び寂びごと
- 隠れ個人テーマ
- せっかくスクリーン空いてたので面白いもの写せばよかった
- クロージングの時はワークショップ中の写真スライドショーしようと思ってたのに忘れてた
質問コーナーお答え
- id:absj31 さんがまとめてくれたので実例(『質問コーナー』に寄せられた質問一覧)
@RunWith(Enclosed.class) public class ネストするテストクラスTest { public static class ある状況を { @Before public void 準備します() throws Exception { } @Test public void テストします() throws Exception { } } public static class 別の状況を { @Before public void 準備します() throws Exception { } @Test public void テストします() throws Exception { } } }
Quick JUnit からは実行できない。
JUnit を実行するとこんなダイアログが出る。
外側のテストクラスを選んで実行すると、こんな風に全部実行される。
ただ、テストランナーの都合で、Jenkins での結果収集時に重複カウントの問題があるとのこと。
id:irof さんの日記に何か書いてあった気がするので、きっと見つかるでしょう。
懇親会
- Jenkins が便利なせいでみんな Jenkins に夢中になり仕事が増えている
- TA はただ歩き回るのが好きな人です
- おっぱいネタとか下品です
- 横浜賞を新設しました
- こちらの本(index at XUnitPatterns.com)をプレゼント
- 10人くらいいたのにじゃんけん1ターンで一人勝ちとかすげぇ
- 皆で後片付け
- 参加者の方々、ボーイスカウト精神根付いてますね!
後日
スタッフによる反省会(慰労会)があるそうです。
賃貸住宅の契約に必要な書類
メモ。
- 収入とかの証明できるもの
- 給与明細とか
- 身分の証明できるもの
- 社員証とか社会保険証とか
bundle install で SSL verify error
雑学。いずれ埋もれるメモ。
budle init してできる Gemfile には次の記述がある。
source "https://rubygems.org"
この状態で bundle install すると、SSL の検証が失敗してしまう。
$ bundle install --path .bundle Fetching gem metadata from https://rubygems.org/........ Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/gems/builder-3.0.0.gem) An error occured while installing builder (3.0.0), and Bundler cannot continue. Make sure that `gem install builder -v '3.0.0'` succeeds before bundling.
ググれば山ほど出てくるのが「エラーになったけど http に替えたらいいよ」という事例。
原因とか経緯を知るには github の issue を読んでから、大本営発表を読むことなんでしょうか。
2012年8月現在においてこんなエラーに出くわしてるのは環境が古いから、という感じ。
それぞれアップデートしましょうね、という結論らしい。
Windows では Resque 動かなかった
gem install はできてしまったので動くのかなと思ったんだけど。
もっとアピールしてもいいじゃないかと思ったり、分からないくらい抽象度が高いのかとも思ったり。
D:\dev>resque-web [2012-08-26 23:43:59 +0900] Running with Windows Settings [2012-08-26 23:43:59 +0900] Starting 'resque-web'... [2012-08-26 23:43:59 +0900] trying port 5678... d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/vegas-0.1.11/lib/vegas/runner.rb:197:in `daemon': daemon() function is unimplemented on this machine (NotImplementedError) from d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/vegas-0.1.11/lib/vegas/runner.rb:197:in `daemonize!' from d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/vegas-0.1.11/lib/vegas/runner.rb:112:in `start' from d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/vegas-0.1.11/lib/vegas/runner.rb:77:in `initialize' from d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/resque-1.22.0/bin/resque-web:13:in `new' from d:/dev/Ruby193/lib/ruby/gems/1.9.1/gems/resque-1.22.0/bin/resque-web:13:in `<top (required)>' from d:/dev/Ruby193/bin/resque-web:23:in `load' from d:/dev/Ruby193/bin/resque-web:23:in `<main>'
windows にはプロセスを daemon 化する API なかったっけ…
ShellExecute するとかないわーって感じだけど。
第85回 JavaEE 読書会に参加してきました
第85回 JavaEE 読書会に参加してきました。
Enterprise Integration Patternsという本の読書会です。
進め方
- 全体をざっくり
- 詳細を議論
- 詳細議論までいけると better
トピック
- 長い眠りから覚醒めた GOOS が9月に出版されます
- 「サービスデザインパターン」が出版されます
- 福岡で G*ワークショップ(9月1日 G*ワークショップ in 福岡 #jggug)があります
JBoss ESB (SwitchYard)のデモ
解説
- JBoss は高速化しています!
- 並列化が効いてます
- quickstart にいろいろはいってます
- camel-jms-binding をデモします
- シンプルなパイプ・フィルターパターンの例です
- Queue からコンポーネントに渡す、という定義になっている
- コンポーネントを実装している Bean の method binding はどうやっている?
- Bean にメソッドが1つしか無ければそれが適用されるが、2つ以上あるなら設定が必要
- 型安全とか考えないのが ESB なので ClassCastException が出たり
- 静的チェックが出来ないので runtime でのテストが重要
- コンポーネントを実装している Bean の method binding はどうやっている?
- デプロイ
- テスト
- JMS セッションからコンポーネントを呼び出すようになってる
質疑とか
-
- AP サーバから Web Service へのリクエストをキューイングするとかに使えるのかなと
- ActiveMQ 使えないですかね
- メッセージのバリデーションとかはクライアントはやらないものですか?
- クライアント側でもやればいいですし
- switchyard は宣言的なバリデーションをするとかの仕組みがある
- ESB 的には検証サービスをルーティングするとかも
- キューイングサービス自体には検証する責務を置くべきじゃないのかなとか
- JMS の考え方としてはとりあえず放り込んじゃえ、というものですが、途中に Web サービス挟んだりすることは可能ですね
- EIP には「DB はデータを置いておく仕組み、キューやチャンネルはコミュニケーションをするための仕組み」とあるので
- 個人的にはキューの冗長性を確保する仕組みに興味があります
- 製品によって考え方とか癖とかがあるので面白い
- 1台構成で超高性能みたいなのよく見るけど耐障害性とかスケールアウトするような仕組みってあまり聞かないですね
- MOM と ESB どっちがいいのか?
- AP サーバから Web Service へのリクエストをキューイングするとかに使えるのかなと
休憩
-
- kobo 可愛いよ kobo
- フルカラーで漫画読めるやつ、すごい
- JoJo 的なチョククランチ!
- http://www.pierreherme.co.jp/item/glaces_et_sorbets/(゚д゚)ウマー
二章から
Introduction
-
- 星取表になってる、わけじゃないけど、できそう
- X がつかなければいいんじゃないか、みたいな
- Application Integration Option を選択するふわっとした観点
- 星取表になってる、わけじゃないけど、できそう
Shared Database
- index 問題
- パフォーマンス的に矛盾してしまうということがある
- スケールしない問題
- 統合データベースが適してるユースケースはあるのか?
- RPC で同じデータベースを参照するような統合、というのはあった
- MDM(Master Data Management) という考え方
- 6つくらいの戦略的なパターン
- 優劣ではなく条件に合ったパターンを
- マスターデータを持たせる、という話になると困ってしまうのだけど、更新データだけを持たせるなどの考え方は無いのかしら
- 登録、更新といったイベントのインターフェースを設けるというのはありますね
- それ、MOM で出来るよ
- アプリケーションに組まれる仕組みとか
- メッセージングの枠組みでトランザクション情報をまとめて、というような使い方ってあるんですかね
センターカット処理 というものがあります- 勘定系システムの伝統的な処理方式のようでした
- コンピュータシステム>バッチ(一括処理)型システム>オンラインバッチ(オンバッチ)
Remote Procedure Invocation
- 使います?
- Web サービスも RPC と考えることができますよね。であれば使います。
RESTFull じゃなくてREST風
- 呼び出し元で発生したタイムアウトをサーバ側がキャンセルできるんでしたっけ?
- クライアントが完了できなかったトランザクションをサーバ側でコミットしてしまう問題
- 普通はトランザクションを開始するとかの情報を RMI に渡すよね
- Web サービスにも Ws-Transaction とかありますし
- なにそれ派、懐かしい派、CORBA でいいじゃん派
- 某巨大システムで使われていたとかの情報
- 注文系の Web サービスは取り消しできないのつらい…
Messaging
- メッセージングの特性に合わせた改修がどんなシステムにも適用できるかというとそうでもなさそう
- ルーティング
- 非同期
- ヘテロジニアスなシステムにおいてメッセージングを導入すること自体が問題になる
- Web サービスはみなさんよくお使いですよね?
- Ws-XXX とか面倒くさいのに
- メッセージングを全面的に採用システムってあるんですかね?
- 某社の某システムでは独自実装だったり
- 学習コストとかよりはプロダクト自体が高価だったとかの問題の方が比重が高かったかと
- アーキテクチャがイメージできない問題
- 後半読めばヒントが掴めるのかも…
- 慣れの問題?
- File Transfer、Shared Database、Remote Procedure Invocation あたりなら「まぁ、やりましょう」で済みそう
- メッセージングはちゃんとした設計が必要になりそうで敷居が高い感