<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6859093036705177955</id><updated>2025-09-03T02:35:53.634+09:00</updated><category term="bash"/><category term="#bash"/><category term="#android"/><category term="#bash #atom"/><category term="#iscsi"/><category term="#mrtg #nginx"/><category term="aria"/><category term="biblio"/><category term="grub"/><category term="http"/><category term="kernel"/><category term="kindle"/><category term="multipath"/><category term="rpm"/><category term="ruby rails"/><category term="storage"/><category term="touch diamond"/><category term="バックアップ"/><title type='text'>僕の仕事がビジーボックス</title><subtitle type='html'>何かしら使えそうなことをつらつらと</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-3418705727892067062</id><published>2025-01-05T16:02:00.004+09:00</published><updated>2025-01-05T16:02:41.555+09:00</updated><title type='text'>Tidy First?を読んで</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;本書はアジャイル開発を行っているプロジェクトで、より効果のある内容となっていました。&lt;/span&gt;&lt;/p&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;V字開発では、要件→設計→実装と行うことで、整理されたシステムが作られることを副産物として開発が進むことを想定している。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;また開発されたシステムは改修を頻繁に行うことを想定しておらず、追加開発時にはまたV字開発としての工程を進むこととなる。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;その際に、整頓を入れるのは工程上は不可視化されているが、開発工程時に含まれているが、この整頓に関する工数をマネージャが想定していないことが多いため、整頓するプロジェクトが起こるか（バージョンアップなどのプロジェクトで）、システムの寿命として、別のシステムを再構築することで、すべての技術負債が生産される。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;そのため、技術負債の概念が薄く、継続的なサービスの構築と改修によって俗人的で考慮事項が多く、検証範囲が広いシステムとなってしまう。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;本書では、継続的インテグレーションを続けるにあたり、整頓を行うTipsやパターンの説明や、開発時に振る舞いを構築する作業を行うのか、整頓をする作業を行うかの判断やタイミングなど、実装したコードを整頓していくことのノウハウが記述されています。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;アジャイル開発においては、プログラムの定期的な修正を行わない場合は、技術負債として期間が進むにつれて、振る舞いの実装量が低下していき、プログラムからのバグの発生率が上がってしまう問題に直面する。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;そのため、技術負債が増えすぎないために、オブジェクトの構造設計の工夫や、言語での制約による問題の確認（静的型やフレームワークの規約）、読みやすさなど、各種考慮事項を汲み入れて開発をする必要がある。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;整頓というのは、システム上の動作として大きな変更があるわけではない。読みやすさや、影響範囲のコントロール。拡張性などをプログラムの構造や記述の変更を行い実現する行為となり。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;プログラマーが次に開発するときに利便性を上げるための作業になる。&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;まず整頓するのか？&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot; /&gt;&lt;span face=&quot;Roboto, Arial, sans-serif&quot; style=&quot;background-color: white; color: #202124; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space-collapse: preserve;&quot;&gt;この本を読むことで解像度が上がるので、アジャイル開発での開発者やPO、スクラムマスターにお勧めしたい。&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/3418705727892067062/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2025/01/tidy-first.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/3418705727892067062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/3418705727892067062'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2025/01/tidy-first.html' title='Tidy First?を読んで'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-407534494268818046</id><published>2021-01-13T02:52:00.004+09:00</published><updated>2022-09-09T12:26:28.681+09:00</updated><title type='text'> 新入社員向けスクラムゲーム</title><content type='html'>&lt;p&gt;&amp;nbsp;# 新入社員向けスクラムゲーム&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;認定スクラムマスターを取得した2019年に、新入社員（１１人）向けのアジャイル開発の研修をしてほしいと社内で依頼がありました。&lt;/p&gt;&lt;p&gt;11人のメンバーはプログラムを大学で書いていたメンバーが5人であとはIT技術は素人でJavaの研修を受けたくらいです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;研修の内容は業務の内容とは関係なく、登場人物も仮称を利用させていただきます（僕以外は）。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;研修の概要は以下のような感じです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+ 単価マスターと売上情報を掛け合わせるような販売管理システムの構築&lt;/p&gt;&lt;p&gt;+ 社会人の開発者であれば1日か2日あれば作れるような内容&lt;/p&gt;&lt;p&gt;+ 4日間の作業研修で半日（3時間）が１スプリント&lt;/p&gt;&lt;p&gt;+ 1スプリント終了後に30分のスプリントレトロスペクティブを行う&lt;/p&gt;&lt;p&gt;+ 要件書類に不備がある（質問すると正しい答えを教えてもらえる）&lt;/p&gt;&lt;p&gt;+ スプリント中に３０分だけステークホルダ役への質問タイムがある&lt;/p&gt;&lt;p&gt;+ 5回めのスプリントでステークホルダの要望が追加される&lt;/p&gt;&lt;p&gt;+ 開発言語はユニケージ（何でもいいと思います）&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;開発言語が特殊で２日間ほどの研修を、アジャイル開発研修の前に行っていましたが、メンバーの中ではまだ経験が浅く、言語習得はまちまちな状態でした。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;作業前に1日かけてスクラム開発の教育を行いました。&lt;/p&gt;&lt;p&gt;作業前のブリーフィングの様な感じです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;最初に技術力順に自己申告で並んでもらって、チーム編成をしました。&lt;/p&gt;&lt;p&gt;チームは３チームです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Aチーム&lt;/p&gt;&lt;p&gt;一番技術力があるとされるメンバーが所属し、その代わりにメンバーは３人チーム&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Bチーム&lt;/p&gt;&lt;p&gt;特に誰かが突出しているわけじゃない４人チーム&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cチーム&lt;/p&gt;&lt;p&gt;一人目立つメンバーがいるが、それ以外はおとなしい４人チーム&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;開始初日の動向&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+ すべてのチームがチームの要のメンバーを中心に作業を行う&lt;/p&gt;&lt;p&gt;+ PBIをポストイットに記述して貼る作業を行っていない。&lt;/p&gt;&lt;p&gt;+ とにかく実装を行う（調査や情報の整理を行わない）&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;初日の動向を見てのフィードバックとして以下のような助言を行いました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+ メンバー全員が効率的に動けるように業務分担する&lt;/p&gt;&lt;p&gt;+ PBIを必ず記述し調査や質問事項などもPBIで記述してホワイトボードに貼る&lt;/p&gt;&lt;p&gt;+ 初日のブリーフィングで教えたスプリントで必要とされるミーティング（プランニング、レビュー）などの実行を行う&lt;/p&gt;&lt;p&gt;+ PBIの作業コストはぼんやりでもいいので予想しておく&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;翌日の時点でBチームが初日の作業もPBIも捨てて作業し始めました。&lt;/p&gt;&lt;p&gt;勇気のいる行為でしたが、Bチームは誰かがメインで作業を行っていたA,Cと比べても目に見えて作業ができていなかったので、英断だったと思います。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Aチームは完全に技術力のあるメンバーがメインで動いていて、実装をゴリゴリに作成している感じでした。&lt;/p&gt;&lt;p&gt;他の二名は必要そうな設計などを調べていましたが、あまりメインで動いているメンバーと息があっている感じではなかったです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cチームもきっちりできるメンバーに頼り切りの場面が多くなっていました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2日目を終えて折り返しでしたが、この時点で要件を満たしてしまうチームはいませんでした。&lt;/p&gt;&lt;p&gt;弊社に入社してくるレベルだと学生で突出した技術力のあるメンバーが居ることは少ないため今回の結果は妥当でした。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2日目のフィードバックとして&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;+ 作業中のメンバーは作業中のPBIを自分の手元において仲間に作業中のPBIを表示する&lt;/p&gt;&lt;p&gt;+ コミュニケーションを行うタイミングと作業するタイミングにメリハリを付ける&lt;/p&gt;&lt;p&gt;+ 質問時に現在作っているプログラムは動くようにしておいて動いている状態で進捗を報告する&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2日目はじめに作業を全部捨てたBチームは2人ごとの2チームを内部で作り、ペアプログラミングをする形に変更し、スプリントの開始と終わりに必ずミーティングを行うこと、PBIの整理をその際に作り、不足分を協議して実装する場合に必要かの優先度をつけて作業をし始めました。&lt;/p&gt;&lt;p&gt;最初に教えたことを忠実に実践し始めました。&lt;/p&gt;&lt;p&gt;（ペアプログラミングは教えていませんでしたが、前日帰宅後に調べてきたようです）&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3,4日目は時間ギリギリの中で全員が必死になって実装を行っていましたが、最終的に3チームとも実装はできていなかったです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;作業全体を終えて。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Aチーム&lt;/p&gt;&lt;p&gt;作成したプログラムは動作しているものの実装は途中までしかできていませんでした。明らかにメインと他2名で業務の差が大きく、メインのメンバーが間違えて実装していたことを指摘して戻るまでに半日（1スプリント）無駄にしたという報告をもらいました。&lt;/p&gt;&lt;p&gt;レトロスペクティブの時間も実装の話をしていたり、交流がしっかりできていなかったりというのが見受けられました。&lt;/p&gt;&lt;p&gt;チームで業務を行う上で今回の問題の解決策としてどうしたらよいか、ということを最後に話し合ってもらいました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Bチーム&lt;/p&gt;&lt;p&gt;1日目を捨てたチームでしたが、実装がかなり進んでおり、2日目に出された追加要件以外は実装が終わっていました。一部処理の難しい帳票は省略した帳票で実装されており、もっともステークホルダの要望に答えられたチームとなりました。&lt;/p&gt;&lt;p&gt;成功の要因として、使い方のわからないコマンドはペア二人で別々で使い方を模索、そして本番コードは一緒に実装する。そこでわかったことはスプリントレトロスペクティブのミーティングでお互い情報を交換する。&lt;/p&gt;&lt;p&gt;このチームは30分とスプリント時間に比べて非常に長いレトロスペクティブの時間を実装時にどうするべきか、作業に詰まったところ、4人で並列に行う作業と、一緒に行う作業のタイプの分類などをしっかりと時間いっぱいに活用していました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cチーム&lt;/p&gt;&lt;p&gt;最後までバラバラでした。4日目になっても一人は実装していたけどほかのメンバーはそれを眺めているだけで手を動かす雰囲気もなく終わりました。&lt;/p&gt;&lt;p&gt;メンバーの中で自発的にどのように行動をするかなどの仕切るタイプもおらず、各自で分担して作業することもなく、研修を終えていました。&lt;/p&gt;&lt;p&gt;他のチームから比べて遅れてしまった最大の要因は誰かに任せてしまったことというのを口を揃えて発言していました。&lt;/p&gt;&lt;p&gt;今後の業務を行う上で、各自が自律して業務を行うためにどのようにしたらよいかを最後に話し合ってもらいました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;## 研修を通して学んだこと。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;自分自身もスクラムで業務を行う前でしたが、今回一番学んだことは、Aチームのトップメンバーは11人の中では技術力は非常に高く技術的な感もあったためここがダントツで全部こなしていくことより、結果的にはメンバー4人がスクラムの規律の中で、自律して業務を行い、効率的に作業したBチームが最も実装を行えた結果を見れたことです。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;初めて何かを作るという不確定性の高いことに、手探りで挑戦していく上でスクラムの規律に乗っ取り勧めていくことで、効率的に困難に立ち向かえることも学びました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;新入社員だけでなく、僕自身も学べましたので。&lt;/p&gt;&lt;p&gt;みなさまにも、研修の一環としてこのようなミニゲームを実践していくのをおすすめします。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; Written with [StackEdit](https://stackedit.io/).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/407534494268818046/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2021/01/blog-post_13.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/407534494268818046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/407534494268818046'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2021/01/blog-post_13.html' title=' 新入社員向けスクラムゲーム'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-8758409117807972660</id><published>2021-01-10T16:04:00.003+09:00</published><updated>2021-01-10T16:04:17.265+09:00</updated><title type='text'>アジャイル開発歴</title><content type='html'>&lt;p&gt;こちらは僕のアジャイル開発に関する略歴です。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;大学在学時に、学生ベンチャーに所属した際に、インフラ中心の開発技術者として業務を行っていました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;メンバーはサーバ及び、アプリの開発をJavaにて行っており、開発はXP開発を基本として行っていました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;アジャイルマニフェストや、基本的なアジャイル開発をその頃に書籍及び、実践にて学びました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;とはいえインフラエンジニアなので、要件の整理や開発管理などで開発自体は行っていませんでした。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;最初のベンチャーからネット広告会社に転職しました。&lt;/p&gt;&lt;p&gt;その際に、WEBサービス開発として入ったのですが、結果的に、前職の経験からインフラエンジニアに転向しました（サービス企画開発や、新規サービスのPoCは行っていましたので、小規模な開発業務を行っていましたが。）&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;会社の規模の割に、インフラ担当は僕だけなので、&lt;/p&gt;&lt;p&gt;効率的な構築と、サービス停止が起こらないような安定的な作業などが必要で、サーバの規格化、サーバの構築&lt;/p&gt;&lt;p&gt;の自動化、複雑な遠隔監視のための整備、リモートデスクトップやDRACなどのリモートコンソールの整備などを行いました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;トラブルの発生の際や新しい方式の追加ごとに監視や設定や運用を見直し、各種インフラの設定ファイルの管理を集中化し、サーバ構築時のOSインストールの自動化のためのシェル整備、特殊な監視のためのプログラムの追加なども行っていたので、インフラ業務でありましたが、開発作業も結構行っていました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;多分今風の言葉で言うところのSREの業務だったと思います。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;AWSのサービスが始まったか始まっていないかの頃で、これらの業務を行っていたため、クラウドサービスが充実した今となっては、この頃の作業の大部分はクラウドサービスを利用することで、簡易化されるようになりました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;そこから転職して、インフラエンジニアを卒業してWEBアプリケーションエンジニアになりました。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;少人数で開発する、社内外サービスの要件から開発まででアジャイル開発案件を担当しています。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;現在はXP開発だけでなく、スクラムでの開発も行っています。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;デベロッパーやプロダクトオーナー、スクラムマスターなど案件により立場は変わっています。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; Written with [StackEdit](https://stackedit.io/).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/8758409117807972660/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2021/01/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/8758409117807972660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/8758409117807972660'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2021/01/blog-post.html' title='アジャイル開発歴'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-1617269108036944230</id><published>2015-02-20T15:12:00.002+09:00</published><updated>2015-02-20T15:12:15.642+09:00</updated><title type='text'>raspbianでのswapファイルサイズの変更</title><content type='html'>/etc/dphys-swapfileの中の&lt;br /&gt;
以下のパラメータを変更する。&lt;br /&gt;
※MB単位です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONF_SWAPSIZE=100&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/1617269108036944230/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2015/02/raspbianswap.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1617269108036944230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1617269108036944230'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2015/02/raspbianswap.html' title='raspbianでのswapファイルサイズの変更'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-3406537294289230180</id><published>2015-02-20T14:44:00.000+09:00</published><updated>2015-02-20T15:16:00.045+09:00</updated><title type='text'>.vimをdotfilesで管理している時のneobundleのインストールshell</title><content type='html'>dotfilesディレクトリを作成して.bashrcや.rubocop.ymlや.vimを管理している人がいると思いますが。&lt;br /&gt;
.vim以下にgitリポジトリを別で持つと面倒なので(submoduleでできると思うけど)、.vim/bundle/以下をあとからshellでインストールするようにします。&lt;br /&gt;
&lt;br /&gt;
想定している構造はこんな感じ。&lt;br /&gt;
&lt;br /&gt;
/dotfiles/.git/&lt;br /&gt;
/dotfiles/.gitignore&lt;br /&gt;
&lt;div&gt;
/dotfiles/vim/&lt;/div&gt;
&lt;div&gt;
/dotfiles/bashrc&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; :&lt;br /&gt;
&lt;br /&gt;
まずは.gitignoreに/vim/bundle以下を管理しないように記述。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;/vim/bundle&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
以下のシェルファイルをdotfiles以下に記述&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====install_neobundle.sh======&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;i&gt;#!/bin/sh&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;PWD=$(dirname $(readlink -f $0))&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;if ! [ -d ${PWD}/vim/bundle ]&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;then&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&amp;nbsp; mkdir ${PWD}/vim/bundle/&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&amp;nbsp; cd ${PWD}/vim/bundle&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&amp;nbsp; git clone https://github.com/Shougo/neobundle.vim&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;fi&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;exit 0&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
===========&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
新環境で利用する際には、展開後にshellを実行して。&lt;br /&gt;
&lt;br /&gt;
vimで:NeoBundleInstallを実行する。&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/3406537294289230180/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2015/02/vimdotfilesneobundleshell.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/3406537294289230180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/3406537294289230180'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2015/02/vimdotfilesneobundleshell.html' title='.vimをdotfilesで管理している時のneobundleのインストールshell'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-4107737500404695601</id><published>2015-02-08T23:57:00.000+09:00</published><updated>2015-10-27T15:22:53.070+09:00</updated><title type='text'>ActiveRecord Enumとselect boxの連携でrails_configを使う</title><content type='html'>環境は以下になります。&lt;br /&gt;
ruby: 2.2.0&lt;br /&gt;
rails: 4.2&lt;br /&gt;
&lt;br /&gt;
config(旧rails config)をインストールします。&lt;br /&gt;
（settinglsogicでも利用できる方法だと思います）&lt;br /&gt;
Gemfileに以下の記述を追記します。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;gem &#39;config&#39;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
gemをインストールします。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;$ bundle install&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
rails_configをrailsにインストールします。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;$ bundle exec rails g config:install&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
今回はtestdata（モデル）にstatus（カラム）を設定してenumを利用します。&lt;br /&gt;
scaffoldを作成します。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;$ bundle exec rails g scaffold testdata status:integer&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
statusで利用するリストをconfig/settings.ymlに記述します。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;model:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; testdata: &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; admin: 10&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; normal: 20&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guest: 30&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
記述に対してデータを設定します。&lt;br /&gt;
app/model/testdatum.rbに記述します。&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class Testdatum &amp;lt; ActiveRecord::Base&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; enum status: Settings.model.testdata.status&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
設定したデータをviewフォームに適応します。&lt;br /&gt;
app/view/testdata/_form.html.erbでの該当のフォームを以下の記述に変更します。&lt;br /&gt;
selectedも同時に設定します。&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;div class=&quot;field&quot;&gt;
&lt;/div&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&amp;nbsp; &amp;lt;%= f.label :status %&amp;gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; &amp;lt;%= f.select :status, @testdatum.statuses.keys , selected: @testdatum.status %&amp;gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/4107737500404695601/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2015/02/activerecord-enumsselect-boxrailsconfig.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/4107737500404695601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/4107737500404695601'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2015/02/activerecord-enumsselect-boxrailsconfig.html' title='ActiveRecord Enumとselect boxの連携でrails_configを使う'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-7029606235654897646</id><published>2014-08-13T11:16:00.002+09:00</published><updated>2014-08-13T11:16:57.986+09:00</updated><title type='text'>yum group</title><content type='html'>メモ&lt;br /&gt;
&lt;br /&gt;
yum grouplist&lt;br /&gt;
&lt;br /&gt;
-&amp;gt;&lt;br /&gt;
&lt;br /&gt;
yum groupinstall</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/7029606235654897646/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2014/08/yum-group.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7029606235654897646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7029606235654897646'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2014/08/yum-group.html' title='yum group'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-6325852505656005308</id><published>2013-12-13T10:30:00.001+09:00</published><updated>2013-12-13T10:30:19.435+09:00</updated><title type='text'>rails3でのdependentでrestrictを設定した場合の対処法</title><content type='html'>&lt;h4&gt;
モデルでのdependentをrestrict にした場合の&lt;/h4&gt;
&lt;h4&gt;
消去出来なかった場合のエラー対処方法&lt;/h4&gt;
&lt;h4&gt;
&amp;nbsp; &lt;/h4&gt;
&lt;h4&gt;
Model&lt;/h4&gt;
&lt;pre&gt;&lt;span class=&quot;keyword&quot;&gt;class &lt;/span&gt;&lt;span class=&quot;class&quot;&gt;ShareType&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;&lt;a href=&quot;http://apidock.com/rails/ActiveRecord&quot;&gt;ActiveRecord&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;&lt;a href=&quot;http://apidock.com/rails/ActiveRecord/Base&quot;&gt;Base&lt;/a&gt;&lt;/span&gt;
  &lt;span class=&quot;ident&quot;&gt;has_many&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:shares&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:dependent&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:restrict&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;
&lt;/pre&gt;
&lt;h4&gt;
Controller&lt;/h4&gt;
&lt;pre&gt;&lt;span class=&quot;keyword&quot;&gt;class &lt;/span&gt;&lt;span class=&quot;class&quot;&gt;ShareTypesController&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;&lt;a href=&quot;http://apidock.com/rails/ApplicationController&quot;&gt;ApplicationController&lt;/a&gt;&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;def &lt;/span&gt;&lt;span class=&quot;method&quot;&gt;destroy&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;begin&lt;/span&gt;
      &lt;span class=&quot;attribute&quot;&gt;@share_type&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;destroy&lt;/span&gt;
      &lt;span class=&quot;ident&quot;&gt;flash&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:success&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;successfully destroyed.&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&quot;&lt;/span&gt; 
    &lt;span class=&quot;keyword&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;&lt;a href=&quot;http://apidock.com/rails/ActiveRecord&quot;&gt;ActiveRecord&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;&lt;a href=&quot;http://apidock.com/rails/ActiveRecord/DeleteRestrictionError&quot;&gt;DeleteRestrictionError&lt;/a&gt;&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;e&lt;/span&gt;
      &lt;span class=&quot;attribute&quot;&gt;@share_type&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;errors&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:base&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;ident&quot;&gt;flash&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:error&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;&lt;span class=&quot;expr&quot;&gt;#{e}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&quot;&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;ensure&lt;/span&gt;
      &lt;span class=&quot;ident&quot;&gt;redirect_to&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;share_types_url&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;元ネタはこちらから&lt;/pre&gt;
&lt;pre&gt;&lt;a href=&quot;http://apidock.com/rails/ActiveRecord/DeleteRestrictionError&quot;&gt;http://apidock.com/rails/ActiveRecord/DeleteRestrictionError&lt;/a&gt;&amp;nbsp;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/6325852505656005308/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2013/12/rails3dependentrestrict.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/6325852505656005308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/6325852505656005308'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2013/12/rails3dependentrestrict.html' title='rails3でのdependentでrestrictを設定した場合の対処法'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-5337365900160031238</id><published>2013-12-13T10:28:00.001+09:00</published><updated>2013-12-13T10:31:17.001+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#mrtg #nginx"/><title type='text'>centosでmrtgの表示をnginxに変更する</title><content type='html'>mrtgの接続をapacheのデフォルトで設定されているのと同じように、&lt;br /&gt;
http://localhost/mrtg&lt;br /&gt;
にて接続出来るように設定を追加する。 &lt;br /&gt;
&lt;br /&gt;
nginxのdefaultサーバの設定ファイル(/etc/nginx/conf.d/default.conf)に以下の設定を追加する。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; location /mrtg {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allow 127.0.0.1/32;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deny all;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias /var/www/mrtg/;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&lt;br /&gt;
allowを追記する事で接続出来るサーバを追加できる。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/5337365900160031238/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2013/12/centosmrtgnginx.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5337365900160031238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5337365900160031238'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2013/12/centosmrtgnginx.html' title='centosでmrtgの表示をnginxに変更する'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-5574053369286305215</id><published>2012-11-22T10:24:00.001+09:00</published><updated>2012-11-22T10:24:37.076+09:00</updated><title type='text'>NKFでのWindows文書変換</title><content type='html'>NKFでWindowsでのShift-JISをUTF-8に変換する場合は&lt;br /&gt;
WindowsのShift-jisが不正規なためCP932として指定して実行する&lt;br /&gt;
&lt;br /&gt;
nkf -ic=CP932 -oc=UTF-8&lt;br /&gt;
&lt;br /&gt;
みたいな感じかな。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/5574053369286305215/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2012/11/nkfwindows.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5574053369286305215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5574053369286305215'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2012/11/nkfwindows.html' title='NKFでのWindows文書変換'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-7435286845745275776</id><published>2012-01-26T23:07:00.001+09:00</published><updated>2012-01-26T23:07:29.253+09:00</updated><title type='text'>CentOS6で日本語入力</title><content type='html'>remoteXなどでログインして&lt;br /&gt;
&lt;br /&gt;
日本語入力をするための方法。&lt;br /&gt;
&lt;br /&gt;
~/.bashrcとか/etc/bashrcに以下のような設定を追加する。&lt;br /&gt;
&lt;br /&gt;
export GTK_IM_MODULE=ibus&lt;br /&gt;export XMODIFIERS=@im=ibus&lt;br /&gt;export QT_IM_MODULE=ibus&lt;br /&gt;
&lt;br /&gt;
入力の設定を行うときはibus-setupで設定変更画面を表示する。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/7435286845745275776/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2012/01/centos6.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7435286845745275776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7435286845745275776'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2012/01/centos6.html' title='CentOS6で日本語入力'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-7092041251038100133</id><published>2011-11-22T15:19:00.001+09:00</published><updated>2011-11-22T15:24:06.364+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash"/><title type='text'>prefixからnetmaskにshellで変換する方法　その２</title><content type='html'>&lt;a href=&quot;http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html&quot;&gt;http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
ここで紹介したプレフィックスからネットマスクを作る方法よりもさらにスマートな方法見つけたので記載。&lt;br /&gt;
&lt;br /&gt;
prefix=${prefix_num}&lt;br /&gt;
export $(/bin/ipcalc -m 0.0.0.0/${prefix} );echo $NETMASK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
これだけです。&lt;br /&gt;
すごいすっきりした。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/7092041251038100133/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/11/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7092041251038100133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7092041251038100133'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/11/blog-post.html' title='prefixからnetmaskにshellで変換する方法　その２'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-4912443481024047539</id><published>2011-08-26T10:03:00.001+09:00</published><updated>2011-08-26T10:04:52.839+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#iscsi"/><title type='text'>iSCSIの特性</title><content type='html'>iSCSIは遅いというイメージがありがち&lt;br /&gt;
D社のEをいろいろ試験したことがあって、&lt;br /&gt;
やはり最高速度はギガビットイーサの限界で頭打ちになる。&lt;br /&gt;
これはmultipathを使っても同じ結果なのだが、&lt;br /&gt;
本領はここではなく、複数からの同時アクセス時の速度低下率が圧倒的に低い。&lt;br /&gt;
Eのクラスタを増強すればするほど低下率が低くなる傾向にあるように見受けられた。&lt;br /&gt;
仮想化システムのストレージ環境としては理想的な動作形態だと思われる。&lt;br /&gt;
NASとは違って書き込みの排他ロックはかからないので、&lt;br /&gt;
パーテションで分割しての話だが、&lt;br /&gt;
サーバ側で複数のネットワークポートを持ってmultipathを行った場合も&lt;br /&gt;
複数のファイルの同時参照で速度の低下率は軽減される。&lt;br /&gt;
（1つのセッションでは１本分しか使わないが複数の通信になると空いているポートで通信するような挙動になっている。複数のポートで1つの通信を分割して高速化するような動作はしない。）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
我が家のterastation iscsiでは複数のパーテションに分けるのも面倒なのでテストはしていない。&lt;br /&gt;
terastationの場合はポートトランク（Linuxのボンディングモード0だと思われる）を使ってるので&lt;br /&gt;
経路上の通信速度は2本分までマルチバンドしていると思われるが、ディスクの速度が遅いので&lt;br /&gt;
恩恵は受けられない。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/4912443481024047539/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/08/iscsi.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/4912443481024047539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/4912443481024047539'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/08/iscsi.html' title='iSCSIの特性'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-2208625273927293371</id><published>2011-07-19T12:35:00.003+09:00</published><updated>2011-08-25T16:30:28.261+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash #atom"/><title type='text'>Atom 330用のCPU周波数自動変更用のshell</title><content type='html'>CentでAtom330使ってるけど、CPU周波数の自動変更がどうも上手くいかないので&lt;br /&gt;
（p4-clockmodを使っても )&lt;br /&gt;
&lt;br /&gt;
設定を変更できるような簡易的なshellを作成&lt;br /&gt;
&lt;br /&gt;
====== &lt;br /&gt;
#!/bin/sh -x&lt;br /&gt;
&lt;br /&gt;
middle=&quot;800&quot;&lt;br /&gt;
&lt;br /&gt;
under_freq=&quot;199&quot;&lt;br /&gt;
&lt;br /&gt;
top_freq=&quot;1599&quot;&lt;br /&gt;
&lt;br /&gt;
current_freq=$(/usr/bin/cpufreq-info -f)&lt;br /&gt;
current_loadavg=$(cat /proc/loadavg | awk &#39;{print $1}&#39; )&lt;br /&gt;
&lt;br /&gt;
if [ $(/bin/echo &quot;${current_loadavg} &amp;gt; 1.2&quot; | /usr/bin/bc ) = 1 ]&lt;br /&gt;
then&lt;br /&gt;
&amp;nbsp; if [ $current_freq -lt $[$middle * 1000 ] ]&lt;br /&gt;
&amp;nbsp; then&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/bin/cpufreq-set -c 0 -f ${top_freq}MHz&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/bin/cpufreq-set -c 1 -f ${top_freq}MHz&lt;br /&gt;
&amp;nbsp; fi&lt;br /&gt;
elif [ $current_freq -gt $[$middle * 1000 ] ]&lt;br /&gt;
then&lt;br /&gt;
&amp;nbsp; /usr/bin/cpufreq-set -c 0 -f ${under_freq}MHz&lt;br /&gt;
&amp;nbsp; /usr/bin/cpufreq-set -c 1 -f ${under_freq}MHz&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
======&lt;br /&gt;
&lt;br /&gt;
いい加減に作ったんで保証は無いです。&lt;br /&gt;
とりあえずcrontabで定期実行しております。&lt;br /&gt;
&lt;br /&gt;
追記。&lt;br /&gt;
crontabだとなんだかあれなのでdaemonのシェルでラップしてみました。&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
while :&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp; /root/change-cpufreq.sh&lt;br /&gt;
&amp;nbsp; sleep 5&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
こんな感じで。&lt;br /&gt;
&lt;br /&gt;
そして&lt;br /&gt;
# nohup XXXXX.sh &amp;amp;&lt;br /&gt;
で実行させてる。&lt;br /&gt;
必須のシステムじゃないし作りこみはしない方向で。&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/2208625273927293371/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/07/atom-330cpushell.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/2208625273927293371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/2208625273927293371'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/07/atom-330cpushell.html' title='Atom 330用のCPU周波数自動変更用のshell'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-9078132608375886939</id><published>2011-07-19T00:21:00.000+09:00</published><updated>2011-07-19T00:21:50.194+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#android"/><title type='text'>Android+DLNA</title><content type='html'>スマートパッドとDLNAの親和性すごい。&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;我が家の環境では&lt;/div&gt;&lt;div&gt;Linux+mediatombのDLNAサーバに&lt;/div&gt;&lt;div&gt;HoneyComb＋UPnPlay＋VPlayer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;DivXもMP4もこれで見てる。&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/9078132608375886939/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/07/androiddlna.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/9078132608375886939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/9078132608375886939'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/07/androiddlna.html' title='Android+DLNA'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-5080974723726557037</id><published>2011-07-15T10:23:00.001+09:00</published><updated>2011-07-19T10:26:08.512+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash"/><title type='text'>bashでAのファイルからBのファイルにあるラインを消去</title><content type='html'>タイトルのとおり。ファイル同士を比較してラインを消去する。&lt;br /&gt;
消去対象のラインの位置に依存しない。&lt;br /&gt;
&lt;br /&gt;
cat ${filenameA} | while read line ; do if ! $(grep &quot;\^${line}\$&quot; ${filenameB} &amp;gt; /dev/null ) ; then echo ${line} ; fi ; done</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/5080974723726557037/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/07/bashab.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5080974723726557037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5080974723726557037'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/07/bashab.html' title='bashでAのファイルからBのファイルにあるラインを消去'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-993231343275025685</id><published>2011-06-22T09:58:00.000+09:00</published><updated>2011-06-22T09:58:16.330+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash"/><title type='text'>bashで入れ子の入れ子</title><content type='html'>ちょっとホストデータの取得方式を&lt;br /&gt;
いろいろ考えてたんだけど&lt;br /&gt;
&lt;br /&gt;
data=$( host_data=($(dig ${fqdn} a |grep -v &quot;;&quot; | grep -v CNAME | grep A)) ; echo ${host_data[4]} )&lt;br /&gt;
&lt;br /&gt;
こんな感じの変数を入れ子の中で持たせることもできるのね。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/993231343275025685/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/06/bash.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/993231343275025685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/993231343275025685'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/06/bash.html' title='bashで入れ子の入れ子'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-2643583064917958179</id><published>2011-05-24T12:03:00.000+09:00</published><updated>2011-05-24T12:03:22.415+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash"/><title type='text'>while read を使うshell</title><content type='html'>特定のファイルから情報を取り込んで一定の情報を吐き出す場合に&lt;br /&gt;
変数として$1,$2をとるという形式があると思う&lt;br /&gt;
より進化したやり方としてはgetoptを使って引数をより詳細に設定する方法&lt;br /&gt;
&lt;br /&gt;
しかし単純なデータの編集などの場合は&lt;br /&gt;
while read line&lt;br /&gt;
do&lt;br /&gt;
&amp;nbsp;echo $line&lt;br /&gt;
done&lt;br /&gt;
みたいなwhile readを使って標準出力に表示する方法がいい&lt;br /&gt;
shellの想定した使い方として&lt;br /&gt;
&lt;br /&gt;
cat file1 | sh shellex.sh &amp;gt; file2&lt;br /&gt;
&lt;br /&gt;
このようなshellで一般的なパイプとリダイレクトを利用した&lt;br /&gt;
データの受け渡しが出来る。&lt;br /&gt;
単純なデータの受け渡しだけでなく&lt;br /&gt;
&lt;br /&gt;
cat file1 |sed s/aa/AA/ | awk -F; &#39;{print $3}&#39; | sh shellex.sh | grep -v &quot;^#&quot; &amp;gt; file2&lt;br /&gt;
&lt;br /&gt;
みたいな一般的な編集コマンドの間に挟んで利用することも出来る&lt;br /&gt;
作ったときは単体かもしれないけど&lt;br /&gt;
将来的にはいろんな形式の間に入れることが出来て非常に便利になる。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/2643583064917958179/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/05/while-read-shell.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/2643583064917958179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/2643583064917958179'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/05/while-read-shell.html' title='while read を使うshell'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-1580282563939781346</id><published>2011-05-18T19:02:00.002+09:00</published><updated>2011-08-26T10:09:25.073+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#bash"/><title type='text'>plefixからnetmaskに変換するshell</title><content type='html'>&amp;nbsp;plefixからnetmaskを変換するbashスクリプト&lt;br /&gt;
難しいことは考えずにリストを作成して参照する形にした。 &lt;br /&gt;
&lt;br /&gt;
netmask0=&quot;0.0.0.0&quot;&lt;br /&gt;
netmask1=&quot;128.0.0.0&quot;&lt;br /&gt;
netmask2=&quot;192.0.0.0&quot;&lt;br /&gt;
netmask3=&quot;224.0.0.0&quot;&lt;br /&gt;
netmask4=&quot;240.0.0.0&quot;&lt;br /&gt;
netmask5=&quot;248.0.0.0&quot;&lt;br /&gt;
netmask6=&quot;252.0.0.0&quot;&lt;br /&gt;
netmask7=&quot;254.0.0.0&quot;&lt;br /&gt;
netmask8=&quot;255.0.0.0&quot;&lt;br /&gt;
netmask9=&quot;255.128.0.0&quot;&lt;br /&gt;
netmask10=&quot;255.192.0.0&quot;&lt;br /&gt;
netmask11=&quot;255.224.0.0&quot;&lt;br /&gt;
netmask12=&quot;255.240.0.0&quot;&lt;br /&gt;
netmask13=&quot;255.248.0.0&quot;&lt;br /&gt;
netmask14=&quot;255.252.0.0&quot;&lt;br /&gt;
netmask15=&quot;255.254.0.0&quot;&lt;br /&gt;
netmask16=&quot;255.255.0.0&quot;&lt;br /&gt;
netmask17=&quot;255.255.128.0&quot;&lt;br /&gt;
netmask18=&quot;255.255.192.0&quot;&lt;br /&gt;
netmask19=&quot;255.255.224.0&quot;&lt;br /&gt;
netmask20=&quot;255.255.240.0&quot;&lt;br /&gt;
netmask21=&quot;255.255.248.0&quot;&lt;br /&gt;
netmask22=&quot;255.255.252.0&quot;&lt;br /&gt;
netmask23=&quot;255.255.254.0&quot;&lt;br /&gt;
netmask24=&quot;255.255.255.0&quot;&lt;br /&gt;
netmask25=&quot;255.255.255.128&quot;&lt;br /&gt;
netmask26=&quot;255.255.255.192&quot;&lt;br /&gt;
netmask27=&quot;255.255.255.224&quot;&lt;br /&gt;
netmask28=&quot;255.255.255.240&quot;&lt;br /&gt;
netmask29=&quot;255.255.255.248&quot;&lt;br /&gt;
netmask30=&quot;255.255.255.252&quot;&lt;br /&gt;
netmask31=&quot;255.255.255.254&quot;&lt;br /&gt;
netmask32=&quot;255.255.255.255&quot;&lt;br /&gt;
&lt;br /&gt;
prefix=${plefix_num}&lt;br /&gt;
netmask=$(eval &quot;echo \${netmask${plefix}}&quot;)&lt;br /&gt;
&lt;br /&gt;
ちなみにplefixをIPから分割するには&lt;br /&gt;
echo ${ip} | sed s#.*/##&lt;br /&gt;
みたいにすると出来る。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/1580282563939781346/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1580282563939781346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1580282563939781346'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html' title='plefixからnetmaskに変換するshell'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-1434267238241242293</id><published>2011-03-08T12:40:00.000+09:00</published><updated>2011-03-08T12:40:22.203+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="kindle"/><title type='text'>kindleでpdf</title><content type='html'>久々に投稿&lt;br /&gt;
&lt;br /&gt;
kindleでpdf使うのが結構不安定だったのですが、&lt;br /&gt;
最近のファームにしてみると安定して見れることを確認。&lt;br /&gt;
&lt;br /&gt;
ありがとうamazon&lt;br /&gt;
&lt;br /&gt;
というわけで最近はkindleでpdfを閲覧中。</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/1434267238241242293/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2011/03/kindlepdf.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1434267238241242293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/1434267238241242293'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2011/03/kindlepdf.html' title='kindleでpdf'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-6963925373711702706</id><published>2010-12-20T14:05:00.000+09:00</published><updated>2010-12-20T14:05:29.687+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aria"/><title type='text'>HTC ariaで色々</title><content type='html'>wifiテザリングで&lt;br /&gt;
biblioのwifi-winは接続できた&lt;br /&gt;
kindle3は接続できた&lt;br /&gt;
&lt;br /&gt;
bluetoothで&lt;br /&gt;
xtbt01動かない&lt;br /&gt;
RBK-2000BTJ動かない&lt;br /&gt;
&lt;br /&gt;
BTじゃなくてもいいから外部キーボード使える方法ないかな&lt;br /&gt;
SSHの機能を生かせない</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/6963925373711702706/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2010/12/htc-aria.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/6963925373711702706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/6963925373711702706'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2010/12/htc-aria.html' title='HTC ariaで色々'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-7958590477443757902</id><published>2010-08-03T12:26:00.000+09:00</published><updated>2010-08-03T12:26:19.939+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ruby rails"/><title type='text'>railsの多言語化対応</title><content type='html'>他のサイトからの拡散と個人的メモです。&lt;br /&gt;
&lt;br /&gt;
確認はrailsのバージョンが2.3.8&lt;br /&gt;
gettextを使った日本語対応出来ないっぽい&lt;br /&gt;
&lt;br /&gt;
以下を利用&lt;br /&gt;
&lt;br /&gt;
gem sources -a http://gems.github.com&lt;br /&gt;
&lt;br /&gt;
gem install amatsuda-i18n_generators&lt;br /&gt;
&lt;br /&gt;
細かい使い方は…</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/7958590477443757902/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2010/08/rails.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7958590477443757902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/7958590477443757902'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2010/08/rails.html' title='railsの多言語化対応'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-8015967926353445435</id><published>2010-06-14T20:00:00.002+09:00</published><updated>2010-09-07T18:15:47.224+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="multipath"/><title type='text'>device-mapper-multipathのconf</title><content type='html'>[blacklist]&lt;br /&gt;
multipathの検索対象としないデバイスを設定する。&lt;br /&gt;
設定時はdevの名前のみで除外設定を行う。&lt;br /&gt;
対象の記述は正規表現によって解決することができる。&lt;br /&gt;
&lt;br /&gt;
[defaults]&lt;br /&gt;
use_frendly_names（noにするとデバイス名がWWIDになる、yesだとmpath+連番の設定に）&lt;br /&gt;
[devices]&lt;br /&gt;
devicesに設定対象のdeviceを追加する。&lt;br /&gt;
dmesgにより表示される認識時に発生した。&lt;br /&gt;
vendorはvendorに設定&lt;br /&gt;
modelはproductに設定&lt;br /&gt;
path_grouping_policyにはグループする方式。（通常はmultibusだが、以下の場合に例外的に設定を変更）&lt;br /&gt;
multibus（全ての経路が常にアクティブ）&lt;br /&gt;
failover（failover型の経路設計）&lt;br /&gt;
group_by_prio（prioを/sbin/mpath_prio_xxxで参照できる。prio_calloutを指定する。）&lt;br /&gt;
prio_callout（prioを参照するためのコマンドを指定する）&lt;br /&gt;
getuid_callout(scsi_idをとるためのコマンドを指定する)&lt;br /&gt;
path_checker（接続状態をチェックする方式。基本的にはreadsector0,rdacだとrdac等）&lt;br /&gt;
rr_min_io（接続をラウンドロビンする際のスイッチングの時間）&lt;br /&gt;
no_path_retry（接続に失敗した際の再試行回数）&lt;br /&gt;
polling_interval（接続に失敗した際の再試行待ち時間）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
状態の再読み込みは&lt;br /&gt;
# multipath -r&lt;br /&gt;
状態の確認は&lt;br /&gt;
# multipath -ll&lt;br /&gt;
&lt;br /&gt;
ちなみに動作中なら&lt;br /&gt;
[active][ready]&lt;br /&gt;
待機状態なら&lt;br /&gt;
[active][ghost]&lt;br /&gt;
と表示されるようだ</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/8015967926353445435/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2010/06/dm-multipathconf.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/8015967926353445435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/8015967926353445435'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2010/06/dm-multipathconf.html' title='device-mapper-multipathのconf'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-5038517488315310876</id><published>2010-06-14T17:14:00.000+09:00</published><updated>2010-06-14T17:14:40.262+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><title type='text'>dateコマンドの小ネタ</title><content type='html'>dateコマンドで先の日付を出力する。&lt;br /&gt;
&lt;br /&gt;
${number}日後で表示&lt;br /&gt;
&lt;br /&gt;
date --date &quot; -${number} days ago &quot;&lt;br /&gt;
&lt;br /&gt;
ちなみに${number}日前なら&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;date --date &quot; ${number} days ago &quot;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
知ってる人結構居るのかな。&lt;br /&gt;
&lt;br /&gt;
それとも、もっといい方法あるのかな？</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/5038517488315310876/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2010/06/date.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5038517488315310876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/5038517488315310876'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2010/06/date.html' title='dateコマンドの小ネタ'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6859093036705177955.post-9119942631887941355</id><published>2010-06-14T11:25:00.001+09:00</published><updated>2010-06-14T17:04:49.805+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><title type='text'>あるディレクトリから絶対パスとしてディレクトリリストの作成</title><content type='html'>&lt;div&gt;あるディレクトリからそれ以下のディレクトリを相対パスでディレクトリリストを作成する際のコマンド&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;find ${&lt;i&gt;dir_name&lt;/i&gt;}/ -type d |sed s#^${&lt;i&gt;dir_name&lt;/i&gt;}/##g |grep -v &quot;^$&quot; |grep &quot;/&quot;&lt;br /&gt;
sedの分割記号を一般的な/ではなく#を使うことで、複雑なコマンドを利用することなく、&lt;br /&gt;
ディレクトリの情報を修正している。&lt;br /&gt;
&lt;br /&gt;
ちなみに隠しディレクトリを削除する場合は以下のように最初が.と/.を削除すればOK&lt;br /&gt;
&lt;br /&gt;
find ${&lt;i&gt;dir_name&lt;/i&gt;}/ -type d |sed s#^${&lt;i&gt;dir_name&lt;/i&gt;}/##g |grep -v &quot;^\.&quot; |grep -v &quot;\/\.&quot;|grep -v &quot;^$&quot;</content><link rel='replies' type='application/atom+xml' href='http://inpwjp.blogspot.com/feeds/9119942631887941355/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://inpwjp.blogspot.com/2010/06/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/9119942631887941355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6859093036705177955/posts/default/9119942631887941355'/><link rel='alternate' type='text/html' href='http://inpwjp.blogspot.com/2010/06/blog-post.html' title='あるディレクトリから絶対パスとしてディレクトリリストの作成'/><author><name>あぬ</name><uri>http://www.blogger.com/profile/04507000777538888545</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>