タグ

2020年4月4日のブックマーク (11件)

  • C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog

    はじめに こんにちは、Go界のシャールト・コプリーです。気がついたら最後のエントリから3ヶ月も経ってました。 Goを始めると「なんでこういう書き方になってるんだろう」とか、「そもそもなんでこういう仕様になってるんだろう」とか思うことがちらほらあると思います。これは大いにGoの作者の一人であるRob Pike氏の思想に依るところがあるのが見受けられます。彼のプログラムに対する考え方が25年前に公開され「Pike Style」として知られていますが、いまもその考え方は大きくは変わっていないと思われます。せっかくなので翻訳しました。文はC言語に関する文章ですがその質は言語に依らないものだと思います。 Notes on Programming in C (追記)25年前なのでコンパイラの動作に依存する部分(includeに関する記述)などは古い部分もありますが、プログラミングスタイルに関する部

    C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog
    lufiabb
    lufiabb 2020/04/04
  • Go言語と暗号技術(AESからTLS)

    最近マスタリングTCP/IP SSL/TLS編や暗号技術入門を読んでいた.理解を深めるためにGo言語で標準のcryptoパッケージを触り/実装を読みながら読んだ. cryptoパッケージは他の標準パッケージと同様に素晴らしい.Go言語にはどのような暗号化手法が実装されているのか実例を含めてざっとまとめる.なお文に書ききれなかったものを含め全ての実装例はtcnksm/go-cryptoにある. 共通鍵暗号 まずは共通鍵暗号をみる.共通鍵暗号は暗号化と復号化に同じ鍵を用いる暗号化方式である.共通鍵暗号はブロック暗号とストリーム暗号の2種類に分けることができる.ブロック暗号は特定の長さ単位で暗号化を行う方式であり,ストリーム暗号はデータの流れを順次処理していく方式である. Go言語にはブロック暗号としてDES(Data Encryption Standard),DESを繰り返すtriple-D

  • Brian Kernighanがプログラミング言語Goの組版に使ったのはなんとtroff

    Ramakrishnan Muthukrishnan - Brian Kernighan on the typesetting of "The Go Programming Language" book L&RのKでありAWKのKでもあるBrian KernighanとAlan Donovanの執筆したThe Go Programming Language(邦訳は丸善からプログラミング言語Goとして6月15日に出版される予定)の組版には、Troff(具体的にはgroff)が使われたそうだ。同の組版に感心した人間が、Brian Kernighanに組版について以下のようなメールを送った。 親愛なるKernighan教授へ プログラミング言語Goのとても組版が美しい。個人的な感想では、LaTexでクマれたものより美しいように思われる。 同の執筆手順との組版について詳しい説明を願いたい

    lufiabb
    lufiabb 2020/04/04
  • Goでの文字列の正規化 (Text normalization in Go)

    The Go Blogの日語訳を公開しています。修正は https://github.com/ymotongpoo/goblog-ja/ まで。 Goでの文字列の正規化 Text normalization in Go by By Marcel van Lohuizen はじめに 先の記事では、Goでの文字列、バイト、文字について説明していました。 私は go.text レポジトリ(訳注:現在は golang.org/x/text パッケージ群、以下原文で go.text の部分は置き換える。)で多言語文字列処理向けの様々なパッケージの開発に関わってきました。 これらのパッケージのいくつかは別のブログポストに譲って、この記事では go.text/unicode/norm (訳注:現在は golang.org/x/text/unicode/norm)に焦点を当てたいと思います。 このパッケ

    lufiabb
    lufiabb 2020/04/04
  • HTML5Rocks の日本語記事まとめ

    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

    HTML5Rocks の日本語記事まとめ
    lufiabb
    lufiabb 2020/04/04
  • ブラウザの仕組み: 最新ウェブブラウザの内部構造

    How browsers work Stay organized with collections Save and categorize content based on your preferences. Preface This comprehensive primer on the internal operations of WebKit and Gecko is the result of much research done by Israeli developer Tali Garsiel. Over a few years, she reviewed all the published data about browser internals and spent a lot of time reading web browser source code. She wrot

    ブラウザの仕組み: 最新ウェブブラウザの内部構造
    lufiabb
    lufiabb 2020/04/04
  • 定数 (constants)

    The Go Blogの日語訳を公開しています。修正は https://github.com/ymotongpoo/goblog-ja/ まで。 定数 Constants by Rob Pike はじめに Goは、数値型を混合して操作することを許さない静的型付け言語です。 flaot64 を int に 足せませんし、さらに言えば int32 を int を足すこともできません。しかし、 1e6*time.Second や math.Exp(1) あるいは 1<<('\t'+2.0) と書くことは許されています。Goでは、定数は変数と違って、 通常の数字と同様に振る舞います。この記事では、なぜそうなっているのか、そしてそれが何を意味するのかを 説明します。 背景: C言語 Go言語を考え始めた初期の頃、C言語やその系譜の言語が数値型をまぜこぜに使うことを許していることで起きている多くの問

    lufiabb
    lufiabb 2020/04/04
  • Read This Google Email About Time Management Strategy

    A Google employee teaches his colleagues how to block out interruptions and set aside “make time.” I recently wrote an email to our team that posed a simple challenge in time management. The response I got was unexpected, and I was urged to share it with more people–so here we are. Some of my fellow Googlers went so far as to make a video for those of us who appreciate a good visual aid. Otherwise

    Read This Google Email About Time Management Strategy
  • 仕事において「裁量がない」時の精神的負担は、想像するよりも遥かに大きい。

    このメディアの書き手の一人である高須賀さんから、メッセージを頂いた。 高須賀さんは、月200時間以上の超長時間労働を経験されたということだったが「結構がんばれていた」という。 ただしそれは「指示を出す側」という条件付きの場合だった。 それでも指示出し側だったのもあって、結構みんながんばれてましたね。逆に指示出される側のコメディカルは、勤務時間が僕らよりも少なくてもバンバン消えてってましたし。やっぱり裁量の有無は大きいなぁと 私も同様の記憶が数多くある。 例えば、私が新人の時に一番キツイと感じた仕事が、実は「上司・先輩のコンサルタントへの同行」だった。 「上司や先輩のコンサルタントへの同行なんて、任せてればいいからラクじゃない」 という方もいるが、とんでもない。あれは一番負荷が大きい仕事の1つだ。 仕事に慣れておらず、自分だけでは何一つできない状態で、先輩からの指示だけ飛んで来る。 ・議事録

    仕事において「裁量がない」時の精神的負担は、想像するよりも遥かに大きい。
    lufiabb
    lufiabb 2020/04/04
  • Big Sky :: golang でパフォーマンスチューニングする際に気を付けるべきこと

    golang のテストツールには標準でベンチマークツールが付属しています。例えば、引数 n を貰ってその数分だけメッセージの入ったスライスを返す関数 makeSlice が以下の実装だったとします。 foo.go package foo import "fmt" func makeSlice(n int) []string { var r []string for i := 0; i < n; i++ { r = append(r, fmt.Sprintf("%03d だよーん", i)) } return r } 如何にも遅そうなコードですね。まずはこのコードを単品で計測するベンチマークを書きます。 foo_test.go package foo import "testing" func BenchmarkMakeSlice(b *testing.B) { b.ResetTimer()

    Big Sky :: golang でパフォーマンスチューニングする際に気を付けるべきこと
    lufiabb
    lufiabb 2020/04/04
  • パッケージ名 (Package names)

    The Go Blogの日語訳を公開しています。修正は https://github.com/ymotongpoo/goblog-ja/ まで。 パッケージ名 Package names By Sameer Ajmani 序文 Goのコードはパッケージの形で整理されています。同一パッケージ内では、どのような識別子(名前)も 参照することが可能ですが、そのパッケージを利用する場合は、パッケージが外部に公開している型、関数、 定数、変数しか参照できません。パッケージの参照元は常に接頭辞としてパッケージ名を付ける必要があります。 例えば、 foo.Bar はインポートしている foo というパッケージ内の Bar という公開された名前を 参照しています。 良いパッケージ名はコードをより良いものにします。パッケージ名は、その中身の文脈を教えてくれ、参照元で 利用しているパッケージの目的と使用方法

    lufiabb
    lufiabb 2020/04/04