ここでは,メイクファイルの基本的な書き方としてルールの説明をしましょう.ここからは,Makefileといえばmakeが参照するメイクファイルのことを指すものとします. コメントと改行 その前に少しコメントの書き方について解説しておきます.Makefileでは,#から行末までがコメントです.例えば, # # Hello Worldを出力する # all: @echo Hello World! のように使います. また,makeは基本的に行指向です.見やすくするために改行したい場合はバックスラッシュ\を使って改行を無視させることができます.例えば,マクロの定義(後述)で object_files = \ foo.o \ bar.o \ baz.o と書けば,makeは改行を無視して次のように解釈します. object_files = foo.o bar.o baz.o ここで注意することは,f
Mastodon が急に話題になってきた。 しかし、その哲学についてはあまり理解されていないように感じる。 Mastodon や GNU Social は、単なる「ポスト twitter 」ではない。 この記事では、 twitter の根本的な問題や、それに対する Mastodon 等の思想を解説する。 キーワードだけ先に書いておこう。 federation (連合) decentralization (脱中央集権) オープン (オープンソース、オープンな仕様) 長い文章を読みたくない人のためのまとめ でも、できれば本文も読んでほしいです。 Mastodon や GNU Social などでは、どこか信頼できる運営者のインスタンス(サーバ)にひとつアカウントを作って、そこから他のインスタンスのアカウントをフォローすることができます。 (インスタンスはグループのような意味を持つものではなく、
GNU parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU parallel can then split the input and pipe
シェルスクリプトは環境依存が激しいから…… などとよく言われ、敬遠される。それなら共通しているものだけ使えばいいのだが、それについてまとめているところがなかなかないので作ってみることにした。 「どの環境でも使える=POSIXで定義されている」と定義 「どの環境でも使える」とは、なかなか定義が難しい。あまりこだわりすぎると「古いものも含め、既存のUNIX全てで使えるものでなければダメ」ということになってしまう。しかし、私個人としては 今も現役(=メンテナンスされている)のUNIX系OSで使いまわせること にこだわりたい。 とはいっても全てのOSやディストリビューションについて調べられるわけではないので、この記事では基本的に最新のPOSIXで定義されていることをもって、どの環境でも使えると判断するようにした。(飽くまで「基本的に」ということで) 従って、互換性確保のため、シェルの中で使ってよい
CentOS 6.2 に Open vSwitch をインストールする手順について。 rpm 化したほうが入れたり消したりが便利なので、全て rpm でのインストールです。 要点 KVM + libvirtd での仮想化環境のホスト側仮想スイッチとして、デフォルトの Linux bridge の置き換えが目的 すでにbridge構成なネットワークになっている仮想化環境を想定 全部 rpm でインストールする ざっくりとこんな流れ 2.64 以降の autoconf をインストール Open vSwitch のビルドに必要なその他パッケージ(kernel-devel openssl-devel)をインストール Open vSwitch のrpmを作成、インストール Open vSwitch の設定 autoconf 2.68 を rpm でインストール まず Open vSwitch のビル
glibcのgethostbyname系関数に脆弱性の原因となるバグが発見されCVE-2015-0235(GHOST)と命名されたようです。放置した場合は相当多くのアプリケーションがこの脆弱性の影響を受けることが予想されます。 glibcは libcのGNUバージョンです。libcはアプリケーションではなく、事実上全てのアプリケーションが利用しているライブラリです。OSの中ではカーネルに次いで重要な部分と言えます。Linuxシステムでは(ことサーバー用途においては)例外なく glibcが使われています。 この glibcに含まれる gethostbyname系関数の実装に 2000年頃から存在したバグが今になって発見され、CVE-2015-0235 通称 GHOSTと命名されました。ネットワークで何らかの通信を行うアプリケーションは必ず※この関数を使用します。 ※追記: 名前解決をサポート
はじめに 本稿はAWKという言語を用いて、 ごく簡単にデータ分析用の前処理*1をするための解説記事です。 AWKは短いコマンドを記述するだけで多様なデータ処理を可能にします。 特にデータの抽出に関して恐るべき簡易さを提供します。 具体的には、input.txtというファイルの中から "fail"という文字列を含む行を抽出したければ次のように書くだけです。 awk /fail/ input.txt つまり、スラッシュ記号で文字列を指定するだけで その文字列を含む行を抽出できるのです。 大変簡単ですね! また、awkはLinuxやMacには標準で入っており、 Windowsでもawk.exeを一つ用意するだけなので、 面倒なインストール作業や環境構築は不要で誰でも即座に使えるため、 自分で書いた処理を他人に渡したり*2各サーバに仕込むなども簡単に出来ます。 複雑な処理をする場合はPythonや
コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた本.古いが全然色あせてない. コマンドラインツールの作り方を書いた本ではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? SurfacePro3買いました。なかなか面白いデバイスですね。 こころがぴょんぴょんするんじゃ~~ SurfacePro3を機に久しぶりにWindowsを触るという方もいらっしゃるかと思うので、Windowsでの開発環境構築まとめを書いてみます。タイミング的にタイトルにSurfacePro3を入れましたが、SurfacePro3特有の話はありません。 アカウント作成 いきなりですが、アカウント作成のときに注意点があります。ユーザー名に日本語を使ってはいけません。GNUツールの中には日本語パスやスペースを含むパスを考慮していないものが割
だいたい基本的にLinux前提で書かれている ググってよくみつかるのは以下のワンライナー grep -r hoge * | xargs sed -i "s/hoge/hufa/g" ハマってる話をあまり聞かない限りは、たぶんこれで基本的にできるんだろう。 Macだとsedがハマる そもそもMacのsedはBSD経由のsedらしくて、GNU版のsedとは違うらしい。だから -i オプションがつかえなかった。ということでbrewでgnu-sedいれた。port版もちゃんとあるらしい brew install gnu-sedコマンドは gesd になる。あとはgnu-sedなのでいつもどおりなsedが使える。と思う あるプロジェクト以下の文字列を一括変換したかった grep -rl hoge ./ | xargs gsed -e -i "s/hoge/hufa/g"できたし!!!! @xxxxx
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く