Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt
OpenSSHには1本のコネクションで複数のSSHセッションを束ねて使える機能があります。例えば、~/.ssh/configに Host example.com ControlMaster auto ControlPath ~/.ssh/mux-%r@%h:%pと設定しておくと、最初に接続したsshセッションのコネクション(マスターコネクション)を使いまわし、複数のSSHセッションをマスターコネクションに束ねることができます*1。 主なメリットは以下のとおり。 TCPセッションは1つなのでTCPの同時接続数が制限されているサーバでも複数sshが可能*2 コネクションを使いまわした場合、接続にかかる時間が短い(ssh経由で複数回に分けてコマンド投入とかで時間短縮) コネクションを使いまわした場合、パスワード入力やパスフレーズ入力が不要*3 ですが、ControlMasterとControlP
cssの小技的なテクニックが便利なので好きなん ですが、cssそのものが嫌いで覚えられないので カンペ的な記事を作ることにしました。便利な小技 は沢山あるんですが、特に自分が良く使いそうな Tipsをメモします。既に出回っている情報ばかりで 特に目新しい手法はありませんので何も期待でき ないです。 というわけで特にテーマも一貫性も無くて、ただ便利ってだけです。推奨されない方法もあるかもしれませんが、僕は細かいこと気にしませんのでそんな感じです。 内容も既出なのでお詳しい方にはお役に立てないですが、僕の個人的なメモなので適当に流して頂けると幸いです。 floatで並べたリストのセンタリング Sample01 コード .centered { position: relative; overflow: hidden; } .centered ul { position: relative; le
Vimテクニックバイブルは既にVimエディタを利用している人向けに、さらなる作業効率の改善を行うための手法やプラグインなどの解説を150のTipsとして紹介する本で384ページ2980円で、技術評論社より9月中旬発売予定です。 「Vimテクニックバイブル〜作業効率をカイゼンする150の技」の概要 Vimテクニックバイブルを執筆しました。 Vimテクニックバイブルは既にVimエディタを利用している人向けに、さらなる作業効率の改善を行うための手法や、 プラグインなどの解説を150のTipsとして紹介する本です。 おおよそ本サイトを見に来て頂いている方ならば、ちょうど良い本になっています。 想定読者 Vimエディタを利用しているけど、さらに色々知りたい方 Vimエディタの基礎の先を知りたい方 Emacsテクニックバイブルを読んで、Vim版Emacsテクニックバイブルが欲しくなった方 ちょっとだけ
目の前にPCがあるのに、パスワードがわからずログインできないという状況ありますよね。合法的な状況なのであれば、パスワードなしでログインする方法を試してみてはいかがでしょうか。 今日現在、最新状態のWindows7で実行可能です。当たり前ですが、自分に権限のないPCなどで試さないようにして下さいね。 方法は以下の通り簡単です。 Ubuntuなどでブートして、Windowsドライブをマウント C:\Windows\System32以下の「Utilman.exe」を「Utilman.old」にリネーム C:\Windows\System32以下の「cmd.exe」を「Utilman.exe」にコピー 再起動して、Windowsの起動画面で「Windowsキー + U」でコマンドプロンプトが起動 あとは、「explorer.exe」などを実行することもできます。 実験 Ubuntu(ここではBac
自動バックアップ処理をさせたいが シェル権限を与えたくないときとかに使える技。 やり方は簡単で $HOME/.ssh/authorized_keys の "コマンドを制限したい公開鍵" の行の先頭に 実行させたいコマンドを記述すればよい。 そのときのフォーマットはだいたい以下のようになる。 command="実行させたいコマンド",sshのオプションをカンマ区切りで書く command=hoge というのを付け足すことによって その公開鍵でアクセスがあったときに 指定したコマンドを実行させることができる。 たとえば、uptime を実行させたいときは、 以下のようにすればよい。 command="uptime",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAABbBFERTWER....
以下はプロトタイプ的継承だけで一通りの機能を実現できる、という一つの例です。もちろん他にも書き方はありますし、newを使うのがよくないと主張しているわけではないです。 (誤解を生みそうな文体が混じっているようなので追記: 2011/5/14) 春ですし、少し初心者向けの記事を書きます。タイトル通り、JavaScriptのオブジェクト指向について。ちょっと長くなるので目次です。 クラス(に相当するオブジェクト)を作る オブジェクトからオブジェクトを作る(インスタンス化) 単一継承 多重継承 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ JavaScript標準のオブジェクト指向といえばnewやらprototypeやらを書く必要がありますが、これらは書くのが面倒臭い上に気をつけないといけない点がたくさんあります。Ja
(。╹ω╹。) ლ(╹◡╹ლ) など、最近でてきたかわいい顔文字を教えてください。
諸事情で、WindowsのPCを使わざるをえない状況だったので・・・。簡易な感じで。 > for /l %i in (1,1,254) do ping -w 50 -n 1 192.168.1.%i && arp -a 192.168.1.%i >> ping.log↑を実行すると、192.168.1.1 〜 192.168.1.254に対して連続してping(ICMP echo)を実行して、ログファイルに結果(応答があったノード)を書き込みます。タイムアウトは念のため50msecにしました。LAN内だったら、もっと小さくても良いと思います。 (対象IPアドレスは"dynamic"とか"動的"とか書かれている行になります。←でgrepしてやるとIPアドレスの一覧が取れます。ちなみに余談ですが、arpの実行結果なので、MACアドレスも記録されます。) # Windowsのコマンドプロンプトな
I know how much you guys love top Linux commands. Lets consider this list a part two of my 25 More – Sick Linux Commands Be sure to check out commandlinefu for more awesome gems. 1) Monitor progress of a command pv access.log | gzip > access.log.gz Pipe viewer is a terminal-based tool for monitoring the progress of data through a pipeline. It can be inserted into any normal pipeline between two pr
日本最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. Sun Fire T2000には最初、2GbpsのFibre Channelに対応したSATAのディスクアレイを2基つないでいました。それぞれ14D+1P+1SのRAID 5にして、2つのvdevでZFSのpoolを1つ作りました。これはRAID 5+0に相当します。 しかし、この構成はまったく性能が出ませんでした。負荷がほぼ100%のときにディスクアレイ1基あたりで約20MB/sしか出ません。1基20MB/sなら2基合わせて40MB/s、ビットにすると320Mbps、ARCの助けを借りても、ftp.jaist.ac.jpの出力帯域は450Mbpsがいいところでした
開発効率を上げるためのプラグインや機能のご紹介。 ■neocomplcache http://github.com/Shougo/neocomplcache 自動で補完候補をポップアップしてくれるプラグインで、Vimで効率的な開発をしようと思うのであれば必須のプラグインです。vimrcに以下の1行を加えればプラグインが有効になります。 let g:neocomplcache_enable_at_startup = 1有効にした上で適当にファイルを編集すれば自動で補完候補が出てきます。候補を選ぶ時はCtrl+Nで次の候補、Ctrl+Pで前の候補が選択できます。 設定項目もたくさんあります。:help neocomplcache@ja とすれば日本語ヘルプが見れるので、参照しながら設定してください。 もしこのプラグインを使ったことがないのであれば、人生の半分は損をしています。 ■テキストオブジ
Ark Advent Calendar で、今回こそPerlデビューをもくろんでいるアルバイトの北原です。 僕は普段エディタにvimを利用しています。巷では高まるvim熱のはずなのですが、社内ではEmacs派の方々が大半で、さらにvimを使っているともてないという話まで出てきています。この悲しい現実を打破すべく普段vimを使っている方にも、使ってない方にも、これから使おうと思っている方にもオススメできる3つのプラグインを紹介したいと思います。 1. quickrun.vim quickrun は編集中のファイルの全体もしくは一部を実行する Vim プラグインです。 実行するためのコマンド |:QuickRun| が提供されます。 quickrun.vim help 概要より引用 quickrun.vimはthinca氏によるプラグインです。同名のプラグインをujihisa氏が以前から公開さ
ファイルを間違って削除してしまったときのショックはよく分かる。誰にでもあり得る失敗だ。だが、失われたファイルを取り戻す簡単な方法はある。しかも、それはどの標準Linuxシステムでも使える方法だから、覚えておいて絶対に損はない。 例えば、あなたが午後いっぱいを費やして製作したオーディオファイルの再生を楽しみながら、「やあ、こいつはすごい音だ! こっちに移動しておくとしよう」と思ったとする。そのとき、潜在意識が違和感を唱えるのだ。「ええと、mvだっけ、rmじゃないのか?」……やっちまった。そのショックはよく分かる。誰にでもあり得る失敗だ。だが、失われたファイルを取り戻す簡単な方法はある。しかも、それはどの標準Linuxシステムでも使える方法だから、覚えておいて絶対に損はない。 簡単に説明すると、Linuxファイルシステム上にあるように見えるファイルは、実際はinodeへのリンクにすぎない。in
This article presents best practices for Linux timekeeping. These recommendations include specifics on the particular kernel command line options to use for the Linux operating system of interest. There is also a description of the recommended settings and usage for NTP time sync, configuration of VMware Tools time synchronization, and Virtual Hardware Clock configuration, to achieve best timekeep
Guides, HowTos and Tips for Technology Geeks - The Geek Stuff 高機能シェルのひとつにbashがある。shの機能を拡張したsh系に分類されるシェルで、インタラクティブシェルとしてもシェルスクリプトとしても利用される。Linux系のディストリビューションではデフォルトでインストールされ、デフォルトのシェルに設定されていることが多い。その場合、システムの/bin/shの実態がbashになっていることもあり、/bin/shスクリプトを書いているつもりでいつの間にかbashの拡張機能を使っていることもある。 The Ultimate Bash Array Tutorial with 15 Examples - The Geek Stuffにおいてbash拡張機能のひとつである配列の機能が紹介されている。15のサンプルにわけて機能を紹介する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く