![http://blog.malzack.com/entry/2015/07/12/194224](https://cdn-ak-scissors.b.st-hatena.com/image/square/d2acd44fa0b69d3c3a609d1317d138cad605998b/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmlzk%2F20151230%2F20151230161358.jpg)
tr:nth-child(even)または、tr:nth-child(2n)で偶数行の背景色を灰色に変えられます。 html <table class="s-tbl"> <tr><th>1</th><th>見出し1</th><th>見出し2</th><th>見出し3</th><th>見出し4</th><th>見出し5</th></tr> <tr><th>2</th><td>データ1</td><td>データ2</td><td>データ3</td><td>データ4</td><td>データ5</td></tr> <tr><th>3</th><td>データ6</td><td>データ7</td><td>データ8</td><td>データ9</td><td>データ10</td></tr> <tr><th>4</th><td>データ11</td><td>データ12</td><td>データ13</td><td
Webページをレスポンシブ対応にする時、悩ましいコンテンツの一つがテーブルではないでしょうか。単にセルの幅を狭くするだけでは、一行に一文字しかない妙に縦長なテーブルになってしまいます。 省略したり、プルダウンを利用したりなどいろいろなアイデアがありますが、もっとシンプルで簡単に、そして実用的な賢い実装アイデアを紹介します。 Responsive table layout レスポンシブ対応のテーブルのデモ レスポンシブ対応のテーブルの実装 レスポンシブ対応のテーブルのデモ デモでは4x5のテーブルで、さまざまなデバイスのスクリーンサイズでコンテンツが最適になるよう実装されています。
表組みはレスポンシブWEBデザインでは難しい ホームページの制作でよく使われる表組み。価格表やお問い合わせフォームなど、表を使って配置したほうが見やすく、わかりやすいレイアウトにできる場面はよくありますよね?私もホームページを作っているときに表組みは便利なのでよく使います。 でも表の横幅をある程度取れないと、一つのブロックが狭くなってしまうので一行が短くなってしまいます。その影響で逆に見づらくなる、なんてことはありませんか? 特に横幅の決まらないスマートフォン専用ページやレスポンシブWEBデザインで作られたページの場合、対応がなかなか難しく、悩まされるポイントです。 でも大丈夫です!CSSを使ってレイアウトを可変させることで、きちんと対応できる場合がほとんどです!! これから表組みの作り方についてご紹介します。 表組みのHTMLはこんな具合に作られますよね。 th・td要素の中身が増えるほ
仕事で kernel のソースが見る機会が度々ありそうなので、MAC上でソースをいつでも追えるように準備しておく。 準備といっても大したものではなく、 kernel ソースのダウンロード tag の作成 vim の設定 ぐらい。tag については、GNU GLOBAL などもあるが、とりあえず ctags で。 kernel source の取得 github ではなく tar ball からの取得。複数のリリースを取得するにはこちらの方が簡単そうだったので。 mkdir -p ~/src/kernel curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.2.4.tar.xz | tar zx -C ~/src/kernel/ tag の作成 linux kernel の Makefile には、tag を作成するターゲットが
20 (火) %1 かようび 朝は整形外科でリハビリテーション。 牽引こんでなかった。 %2 Ryzen General Protection Exception やっと噂の一般保護例外が出た。 例によって cc1 だがとても楽しいことになっている。 GPE flags 00003202 err 00000000 0033:0101356e * RAX 00000001 RCX 00000AED RDX A656C63796320 RBX 012B7050 RSP 7FFE731E3668 RBP 00000000 RSI 00000007 RDI 015B7AED R8 015B7AED R9 0000007F R10 00000005 R11 00000007 R12 7F146FCAB410 R13 7F146FCC0078 R14 015B7AED R15 7F146FC8C248
NOTE1: 2017/8/12に2つ目の問題について更新しました。ついに両方の問題が解決しました。 NOTE2: 2つ目の問題についてはすべての経緯をまとめた書籍があります。 4月にRyzenを積んだデスクトップマシンを買いました。その上で日課であるカーネルビルド&テストをした*1ことをきっかけに、2つの問題が発生しました。先代のCore i5を積んだマシンでは起きなかった現象です。 このエントリは自分用のメモがてら、新しいことがわかれば随時更新していきます。後者については9月に開催されたkernelvm北陸にて、本ブログには書かれていない解析の詳細などについて発表してきました。 Ryzen segv battle from Satoru Takeuchi www.slideshare.net 環境 ハードウェア CPU: Ryzen 1800X Motherboard: ASUS PR
AMDの新CPU「Ryzen」でLinuxカーネルやgccをビルドするとセグメンテーション違反が発生する場合がある問題が確認されている。これはRyzen SEGV Battleと呼ばれて流行中だが、EIRAKU氏によるとSEGVの発生原因はインストラクションポインタから64バイトズレた位置の命令を実行してしまうことだそうだ。 この問題についてはsatoru_takeuchi氏による「Ryzenにまつわる2つの問題」という記事が詳しいが、再現性が低く、また確実な対処方法も判明していないという状況であった。 EIRAKU氏はBitVisorというハイパーバイザで検証を行い、call命令を起点にインストラクションポインタから64バイト手前にある命令を実行してしまう現象を確認したそうだ。この現象の結果、ズレた位置にある命令が不正なアドレスにアクセスしセグメンテーション違反や一般保護違反が起こってい
ソフトウェアにとってメモリは不可欠です。 実行する命令も、メモリにロードしなければ実行できません。 ソースコードに書かれた定数値も、いったんメモリにロードしないと使えません。 関数を呼び出すにも、スタックと呼ばれるメモリ領域が必要です。 スタック以外に、ヒープと呼ばれるメモリ領域が必要なこともあります。 今回は、Go言語のプログラマーが作成するプログラムの下で、どのようにメモリが管理され利用されるかを探ります。 Go言語のメモリ管理というとガベージコレクターの話を思い起こすかもしれませんが、ガベージコレクターについては本連載では取り上げません。 メモリ確保の旅 コンピューターに接続されている物理的なメモリチップが、どのような過程を経てプログラムで使われるのか、順番に見ていきましょう。 (1): カーネル 最近のオペレーティングシステムでは複数のプロセスを同時に実行できます。 それらのプロセ
Goで始める、すこし低レイヤのプログラミング入門。入出力、ネットワーク、メモリなど、現実の世界でプログラムが動くために必要な機能をプログラム言語Goを通して覗いてみよう。OSの機能とは何か、それをプログラミングでどう利用するのか、システムプログラミングの世界をプログラマの視点から眺めていく連載企画。 2017年06月21日 17時00分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第20回 Go言語とコンテナ 本連載の最終回。この連載ではプログラムがコンピュータ上で動くときに何が起きているのかをGo言語のコードを通して覗いてきました。今回はその締めくくりとしてコンテナについて紹介します。 2017年06月07日 21時30分 プログラミング+ Go言語によるプログラマー視点のシステムプログラミング 第19回 Go言語のメモリ管理 ソフトウェアにとってメモリは不
VimからNeovimに移行したので作業記録を晒します。 Home - Neovim ついでにvimのプラグインマネージャもNeoBundleからdein.vimに移行しました。 Neovimとは Neovimとは、より軽量にリファクタされたVimクローンです。luajitでより拡張しやすくもなるようです。 Vimと互換性があり、Vimと全く異なったものではないし、そうしていく予定もない、あくまで既存のVimをベースにより使いやすくしたプロダクトのようです。 About - Neovim dein.vimとは dein.vimとはNeoBundleの後継となる新しいVimのプラグインマネージャで、もちろんNeovimでも使うことが出来ます。 GitHub - Shougo/dein.vim: Dark powered Vim/Neovim plugin manager NeoBundleと
特に日本で人気の高いエディタのひとつに「Vim」がある。20年以上に渡って開発され続けている高機能エディタで特に開発者に好まれる傾向がある。このVimをより現代的なコードへ書き換えていこうという新しいプロジェクト「Neovim」が発足した。「Neovim: vim's rebirth for the 21st century」などにプロジェクトの目的などの詳細情報がまとまっている。Vimよりもプラグインエコシステムなどの開発が加速する可能性があり、今後注目しておきたいプロジェクトといえる。 「Neovim」では現在のVimは20年以上にわたる開発を経てコードの合算行数が30万行を超え、さらに理解できる人が少ないC89のコードが入っており理解が難しい面があると指摘。また、Vimの開発者であるBram Moolenaar氏にパッチマージの負担が集中しており、反映されるまで時間がかかってしまって
1: ビッグブーツ(WiMAX) 2014/02/26(水) 22:31:12.62 ID:dD4SOaom0 BE:4619463269-PLT(12001) ポイント特典 特に日本で人気の高いエディタのひとつに「Vim」がある。20年以上に渡って開発され続けている高機能エディタで特に開発者に好まれる傾向がある。このVimをより現代的なコードへ書き換えていこうという新しいプロジェクト「Neovim」が発足した。 「Neovim: vim's rebirth for the 21st century」などにプロジェクトの目的などの詳細情報がまとまっている。Vimよりもプラグインエコシステムなどの開発が加速する可能性があり、今後注目しておきたいプロジェクトといえる。 「Neovim」では現在のVimは20年以上にわたる開発を経てコードの合算行数が30万行を超え、さらに理解できる人が少ないC8
Install Go compiler binaries for bootstrap The Go toolchain is written in Go. To build it, you need a Go compiler installed. The scripts that do the initial build of the tools look for a "go" command in $PATH, so as long as you have Go installed in your system and configured in your $PATH, you are ready to build Go from source. Or if you prefer you can set $GOROOT_BOOTSTRAP to the root of a Go ins
スクレイピング等を行う場合、スクリプト言語が大きく威力を発揮します。 例えばブログの様にタイトルと本文の組が反復される様なページをスクレイピングする場合 URLからHTMLを得る HTMLからDOMオブジェクトを得る エントリとなるDOMノードを検索する エントリノードでループする エントリノードからタイトルとなるDOMノードを探索しテキストを得る エントリノードから本文となるDOMノードを探索しテキストを得る この様になるかと思います。こういった処理を一般的なコンパイル型言語を使って実行しようとすると エラーチェック 反復処理 検索処理 といったコードをゴリゴリ書かなければいけなかったりします。もちろんそれ専用のライブラリを使えば出来きますが、コンパイル型言語ではなかなか良い物がないのは事実です。javascriptに到っては jQuery を使えば簡単に出来ますが、コンパイル型言語向け
twitter上で、「SSHの秘密鍵って、盗まれて.bash_history見られたらアクセスし放題だから危ないからパスフレーズを付けるべき」という話があった。個人的には、パスフレーズは気休め程度にしかならないと思っているので付けていない。そもそも、SSH秘密鍵のパスフレーズは、ネットワーク越しのパスワードとは違うもので(だから違う名前がついているのだが)、ZIPファイルのパスワードと似たようなものだ。攻撃者がファイルをローカルにコピーしてじっくり解析できる。 よって、パスフレーズが役に立つのは、 秘密鍵(とシェルのログ)を盗まれ、 秘密鍵を盗まれたことに気づき、 素早くすべての接続先ホストにおいて盗まれた秘密鍵を無効にする という場合だ。このシナリオなら、攻撃者によって接続先に不正にアクセスされるのを防ぐことができる。 パスフレーズによって、どれくらいの猶予が生まれるのか? パスフレーズ
きっかけ 仕事で「関連するライブラリのバージョン一覧」を定期的に調べる必要があって最初はgithubをちまちま手動でアクセスして確認してたんですが、対象が15個以上あるとこれがもう途中で切れそうになる… そういうときこそ自動化だ!ということで最初はRubyで、そしてJavaScript(+node.js)で、そして調子に乗ってgo言語で書いてみたのがこいつです。 (2015 12/08追記) ↓コメント欄を。mattnさんがAPIを使ってスクレイピングいらずの方法を教えてくださいました! 参考にした記事 HTML解析 goqueryでお手軽スクレイピング! Go言語で jQuery ライクな操作が出来る goquery を試した。 Go routine お気楽 Go 言語プログラミング入門 やったこと まずはWeb Scrapingから goqueryを使うと割と簡単、というか他の既存HT
golang 開発の松尾です。 「毎年少なくとも一つの言語を学習する― 言語が異なると、同じ問題でも違った解決方法が採用されます。つまり、いくつかの異なったアプローチを学習することにより、幅広い思考ができるようになるわけです」 (達人プログラマー―システム開発の職人から名匠への道) 怠惰により「Language of the Year」といったペースは果たせていませんが、それでも複数の言語を学ぶ効力はそれなりに知っているつもりです。今年はKotlinあたりが楽しそうだなあと思いつつ。 「Go事始め 」の3回目です。 参照型 前回まででgoには値型と構造体型にそれぞれのポインタ型が用意されていることがわかりました。 goにはさらに「参照型」と呼ばれる特殊な組込型が用意されています。 不正確な表現になりますが単純化するとgoの参照型とは主として「make」を使って作成するデータ構造を参照する型
Go言語の特徴として挙げられる機能の1つに、「並列処理を書くのが簡単」というものがあります。 そこで今回は、Goにおける並列処理の機能を紹介してから、そもそも現代のコンピューターでどのようにして並列処理が実現されているのかをとりあげます。 複数の仕事を同時に行うとは? 複数の仕事を行うことを表す言葉には並行と並列の2つがありますが、これらには次のような区別があります。 並行処理(Concurrent) 並行(Concurrent): CPU数・コア数の限界を超えて複数の仕事を同時に行うこと ほんの少し前まで、コンピューターに搭載されているCPUはコア数が1つしかないものが普通でした。 そのような、今ではもう絶滅危惧種になりつつあるシングルコアのコンピューターであっても、インターネットを見ながらWordとExcelを立ち上げてレポートを書けます。 この場合に大事になるのが並行(Concurr
まず直列実行するプログラムを書く 1秒待つコマンド 2秒待つコマンド 3秒待つコマンド 上記を順番に実行していくプログラムを main.go の中身を書く。 つまり、合計で6秒かかってしまう。 package main import ( "log" "time" ) func main() { log.Print("started.") // 1秒かかるコマンド log.Print("sleep1 started.") time.Sleep(1 * time.Second) log.Print("sleep1 finished.") // 2秒かかるコマンド log.Print("sleep2 started.") time.Sleep(2 * time.Second) log.Print("sleep2 finished.") // 3秒かかるコマンド log.Print("sleep3
MacのEl Capitanでは仮名漢字変換が変わっていて、スペースを叩かなくても自動で変換してくれるようになっている。これはこれでなかなか便利なのだけど(今、何ヶ月かぶりにATOKに切り替えてみたら変換を忘れまくるので驚いた)、一つ不満があって、漢字にしすぎること。とは言っても、イマドキの仮名漢字変換はだいたい僕の好みに比べると漢字にしすぎるんだけど、自動でやってくれるというのが問題が大きかった。なにかを入力していて、後で「ときに」とか「ことが」とかを足そうとしたときなんかに酷くて、「時に」とか「事が」とかに自動で変換してしまうので、わざわざ平仮名に変換し直す手間が発生する。これがいやなのでとりあえずはATOKに戻すことにしたのだった。(ちなみに、この挙動は「自動変換を始めるのはある程度の長さが入力されてから」みたいな制約を入れると簡単に改善できる気がするけど、考えてないとは思えないので
はじめに この投稿は、macOSをJISキーボードで使っている時、プログラミングでよく使われるバックスラッシュ(\)を入力するための方法を記しています。 環境 macOS10.13.6で動作確認を行っています。 Google 日本語入力は、2.24.3250.1(2018年9月18日時点のもの)で動作確認を行っています。 やり方(macOS標準の場合) macOSをJISキーボードで使っている場合、バックスラッシュ(\)の入力は optionキーを押しながら、¥キーを押す。(Mac mini 等で Windows用のキーボードを接続している場合は Alt キー) の方法でできます。 毎回、optionキーを押しながら入力するのは面倒くさい人は、macOSについているIME「ことえり」の設定を変えることで対応可能です。 画面右上に、黒地で白文字の「A」が出るように選択 「"キーボード"環境設
Go言語には「実行速度が高速である」というメリットがあります。 Go言語の実行速度とは、どれくらい速いのでしょうか? 今日はそれを確かめるために、Go言語を含めた色々な言語でプログラムを書いて、実行速度を試してみようと思います。 Go言語とは 本題に入る前に、Go言語について説明しようと思います。 Wikipediaの説明 Goはプログラミング言語のひとつ。Googleによって開発されており、設計にロブ・パイク、ケン・トンプソンらが関わっている。 主な特徴として、軽量スレッディングのための機能、Pythonのような動的型付け言語のようなプログラミングの容易性、などがある。Go処理系としてはコンパイラのみが開発されている。 発表当初はLinuxとMac OS Xのみしかサポートしていなかったが、2012年3月にリリースされたバージョン1.0からはWindowsもサポートされている。2014年
Build Your Own Text Editor Welcome! This is an instruction booklet that shows you how to build a text editor in C. The text editor is antirez’s kilo, with some changes. It’s about 1000 lines of C in a single file with no dependencies, and it implements all the basic features you expect in a minimal editor, as well as syntax highlighting and a search feature. This booklet walks you through building
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く