2013年1月24日木曜日

Linuxでカーネルオプションを探す方法

そのカーネルオプションってどこ? 「そういえばと」思い立ったので、探し方をメモしておきます。 カーネルのオプションがどこで設定するか分からず、探しまくった経験がありますよね?ない?、で例えば「CONFIG_PROC_EVENTS」カーネルオプションがどこで設定できるか分からない時に簡単に探せる方法です。
まず、make menuconfigを実行します
karky7 ~ # cd /usr/src/linux
karky7 linux # make menuconfig
それから「/」キーを押すと検索入力画面になります、そこへ検索オプションを入力しエンターキーで探します。

するとこの様な画面でどこにカーネルオプションがあるか教えてくれます。


Symbol: PROC_EVENTS [=n]
Type  : boolean
Prompt: Report process events to userspace
  Defined at drivers/connector/Kconfig:14
  Depends on: CONNECTOR [=n]=y
    -> Device Drivers
      -> Connector - unified userspace <-> kernelspace linker (CONNECTOR [=n])

こんな感じで、「Device Drive」下の「Connector」だよって教えてくれます。
闇雲に探すのは止めましょう、迷子になるだけです

2013年1月20日日曜日

2013年 伊東オレンジビーチマラソン走りました

老体に鞭打ってマラソンです

今日は理由あって子供と一緒に伊東オレンジビーチマラソンに出場しました。


朝の伊東港です、凄く気持ちのいい朝でした。

自分は子供と同じ、5Kmにエントリし何とか完走することが出来ました。結構厳しかったです。


ビックリしましたが、画像中央にあの有名な赤い彗星の「シャー」がいるではないですか!、ちなみに、ばい菌マンのおじさんもいました。


とにかく疲れました。

走り終わった後の抽選会

伊東オレンジビーチマラソンは走るだけではありません!なんとマラソン終了後に景品の抽選会が行われます。これも案外楽しいです!



そして我が家のエース、もちろん私の息子ですが景品をゲットしました! なんと


ふじいちさんの干物です! 久しぶりに子供を褒めてやろうと思います、ちなみに自分は何もありません。

その他の賞品は、県外の方には「ペア宿泊券」、市内の方には、「お米券」など何気に目白押しです、ぜひみなさん来年は遊びがてらに走りに来てください。

もしやとんかつ「とん喜」あたりでヤッテルお父さんたちもいるとは思いますが、痛風、糖尿っけ、太りすぎなどの、元気なお父さん方、警備が終わって一杯もいいのですが、来年は一緒に走っておいしいお酒を呑みましょう!

では来年、また伊東オレンジビーチマラソンで会いましょう、皆さんお疲れさまでした。

2013年1月19日土曜日

セガール君、お土産 in America

セガールが出張でアメリカへ行ってしまった


私の直下の部下、その名もセガール君が、出張でアメリカへいってしまった。そしたらお土産でHARLEY DAVIDSONのイカしたステッカーを買ってきてくれた。

デザインがかっこいいので、公開します

HARLEY DAVIDSON

結構、袋も格好良くて捨てるのに気が引けます。左のSuperstar缶は社長にいただきました。中には「すぅーっ」っとするラムネみたいなやつ、が入っていて、舐めると筋肉がつくそうです。1日に3粒づつ食べてます。
そのうち、自分のバイクに貼ろうと思います。

話は変わりますが、PHP遣いのセガールが仕事から抜けたぶん、開発が遅れたのは言うまでもありません、私はセガールがいないとSmartyが書けません...

2013年1月15日火曜日

Sabayon Linuxにちょっと惹かれてしまった

Sabayon Linux(サバイヨン・リナックス)


Gentooの派生ディストリビューションを何気に調べていたらSabayonなるものを見つけてしまい、ちょっと気になったので入れてみた。

 詳しいことはSabayon Linux(Wikipedia)を参照してもらうとしてインストールから結構感激した。とにかくインストーラがしっかりしていて、CD入れるだけでGUIな環境まですんなりインストールができる。OSの立ち位置は、DebianのUbuntuのような存在らしいが、詳しいことは分かりません。

でもこれは、CentOS並にイケてる感じ、isoなどの種類は
  • GNOME
  • KDE
  • MATE(まて)
  • CoreCDX(私はよく知らない) 
など各種、本家Gentooバリに柔軟に品揃えを完備している模様。


ロゴもかっこいい


MATEなんかこんな感じ、で気になってインストールしてみた

VMwareへインストール

どんな感じかと気になり、GNOME版をインストールしてみた


画面はアップグレード中、凄い綺麗で、ちょっと感激した、Gentooがこんなに手短になるとは。後で使ってみよう。


2013年1月2日水曜日

新年の山走り行ってきました

新春伊豆山麓ハイキング

また懲りずに山に入ってきました、今日は近場のちょっと前から気になっていたところです。森林を伐採してるらしくユンボが入って道が作られていました。奥に入ると結構な広さで2時間ぐらい走れます、アップダウンが普通じゃないレベルでタマらなかったです。
 
 今日はXR-250で出撃、朝からバッテリーの具合が悪く、軽トラの力を借りなければ走れない有様です、バッテリーを買うか...


隊長はXLR-80で出撃です、こいつのエンジンがかからず大変でした、キャブに腐ったガスが入っていたらしく抜いてあげたら動き出しました 笑... いつもこんな感じで、時間を無駄にします...

現場へ到着

これがスタート地点です、これからずっとヒルクライムが続きます。右上の急坂も登れます、トラクションをかけながら上がっていく感じがたまりません。


軽トラ1台分ぐらいの道がづっと続いていきます。途中溝があったりぬかるみなど試練が絶えません。



油断しているともうチョコレートの上です...出すのに大変でした



奥に行くと下には沢が流れています、下まで50m以上はあります、こちらにコケたら最悪です、笑...



ここがダウンヒルのスタート地点、ここから高低差で100m~150mぐらいは下ります、途中傾斜角が45度ぐらいの場所があり、写真では表現できないくらいダイナミックなコースになってます(コースではありません、工事現場です)、下ったら今度は登ってくるのが一苦労です、登り、下りを10本ぐらいやったでしょうか、癖になりますよ。



休憩です、泥を落としてます。

ちょっと移動しました

それから、そこを離れて、昔走っていた道を久しぶりに行ってきました、大室山が綺麗です、景色は最高です



隊長がどうしても新年の脂を食べたいと... 


うちの隊長がどうしても脂をやってから帰ると言い張るのでしょうがなく最後は「髄」でラーメンを食べてしまいました。


「髄」はこちら 濃厚豚骨醤油味です



すいません、ちょっと混ぜちゃいました、おいしいです、是非伊東に来た際には寄ってみてください。

せっかく消費したカロリーを簡単に取り戻してしまいました、痩せるわけがない...それと体が痛い、相当、筋肉痛になってる、筋肉は無いが... 笑

HaskellのPersistent MySQLを試してみた

Persistent MySQL

自分でpersistent-mysqlのebuildを作っといて放置するのも気が引けたのでテストコードを書いて実際にMySQLに繋いでみた。ほぼYesod本のPersistentのセクションの写経ですが、SQLiteのサンプルがそのままで動かなかったのでチョット修正を加えて試してみました。

自分の環境も問題があると思いますが、その辺はご勘弁を...

イケてるMigration


定義されているデータ型をそのままデータベースにテーブルとして定義(CREATE TABLE)してくれる。ORM的な感じでチョット感動した。作成したテーブルとHaskellのデータ型をマップしてくれる。

サンプルコードはテーブルをMigrationして、そのテーブルへ順次データを挿入していくものです

サンプルコード

{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings, GADTs, FlexibleContexts #-}
import Database.Persist
import Database.Persist.MySQL
import Database.Persist.TH
import Control.Monad.Trans.Resource (runResourceT, ResourceT)

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistUpperCase|
Person
    name String
    age Int Maybe
BlogPost
    title String
    authorId PersonId
|]

main :: IO ()
main = do
  registerData
  putStrLn "OK Complete!"

registerData :: IO ()
registerData = runResourceT $ getConn $ runSqlConn $ do
       runMigration migrateAll
       takeId <- insert $ Person "Take Ishii" $ Just 40
       asaId <- insert $ Person "Kazu Asaka" $ Just 41
       _ <- insert $ BlogPost "今日も酒を飲みすぎました" takeId
       _ <- insert $ BlogPost "今日は法事が入っています" asaId
       return ()

getConn :: (Connection -> ResourceT IO a) -> ResourceT IO a
getConn = withMySQLConn getConnection

getConnection :: ConnectInfo
getConnection = ConnectInfo {
    connectHost = "localhost",
    connectPort = 3306,
    connectUser = "root",
    connectPassword = "",
    connectDatabase = "SAMPLEDB",
    connectOptions = [],
    connectPath = "",
    connectSSL = Nothing
}

実行してみる


実行に先立ってMySQLを起動して、SAMPLEDBを作成してください
cuomo@karky7 ~/Code/yesod/Persistent $ mysqladmin -u root create SAMPLEDB

cuomo@karky7 ~/Code/yesod/Persistent $ runhaskell PersistMySQL.hs
Migrating: CREATE TABLE `Person`(`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` TEXT CHARACTER SET utf8 NOT NULL,`age` BIGINT NULL)
Migrating: CREATE TABLE `BlogPost`(`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,`title` TEXT CHARACTER SET utf8 NOT NULL,`authorId` BIGINT NOT NULL REFERENCES `Person`)
Migrating: ALTER TABLE `BlogPost` ADD CONSTRAINT `BlogPost_authorId_fkey` FOREIGN KEY(`authorId`) REFERENCES `Person`(`id`)
OK Complete!
cuomo@karky7 ~/Code/yesod/Persistent $
cuomo@karky7 ~/Code/yesod/Persistent $ mysql -u root SAMPLEDB
...
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
+--------------------+
| Tables_in_SAMPLEDB |
+--------------------+
| BlogPost           |
| Person             |
+--------------------+
2 rows in set (0.00 sec)

mysql> select * from Person;
+----+------------+------+
| id | name       | age  |
+----+------------+------+
|  1 | Take Ishii |   40 |
|  2 | Kazu Asaka |   41 |
+----+------------+------+
2 rows in set (0.00 sec)

mysql> select * from BlogPost;
+----+------------------------+----------+
| id | title                  | authorId |
+----+------------------------+----------+
|  1 | 今日も酒を飲みすぎました   |        1 |
|  2 | 今日は法事が入っています   |        2 |
+----+------------------------+----------+
2 rows in set (0.00 sec)
こんな感じでデータの挿入が出来る、1テーブル1データ型のマップとなっているのですが、1対多な感じのデータの取得方法や、テーブルJOINなどの場合はどうするのか?

今後の課題です 、では