You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
mattn.kaoriya.net 多い日も安心のmattnプロダクツ。builderscon tokyo 2016 で会えたらしい。いきたかったッ! Windows で一番つかっているアプリケーションはエクスプローラーなのですが、開発時は参照するパスが決まっているケースも多く、これまでは「クイックアクセス」とよばれるブックマーク機能を使っていたのですが、数が増えてくると探しづらいし、クリックのつもりがドラッグしてたりなんかして、やきもきしていたところ pcdコマンドに出会ったわけです。 結果、すごくいいです。 pecoに渡る文字列にマルチバイト文字を含んだときと、pecoで選択したパスに空白文字を含んだときのケースに対応しました。 nkf32コマンド を使用して文字コードの変換 for 文に "tokens=*" を指定してトークン分割させない
Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. For more information about listing objects, see Listing obje
なんかすごい思い付きで www.adventar.org に参加してみたんですけども。 気づいたらいつの間にか自分の日になっていて面倒くさくなってきて激しく後悔したびっくりしたという。 ぼくはWebディレクターでありデザイナーさんではないし、すてきデザインができるようなビジュアルセンスのようなものは、誠に残念ながら母上から授けられずにこの世に生を受けているものですから、"いわゆる"デザインはやらないんですが、その前の画面設計についてはワイヤーフレームなるものでいっつもやっておりますので、その観点からなんか書きましょうとそういうことですお母様(謎) そんなわけで、うぇぶぎょうかいのむめいでぃれくたーのお時間です。 Webディレクターとしてはえーと、もうすぐ丸12年になります。そうするとまあ、たぶん数千ページは「ワイヤーフレーム」をつくってきたんじゃないかと思います。正確な数字はわかんないです
ソケットの使い方そのものはシンプルです。 繋いでしまったら、書き出し、読み込み、クローズしかありません。 APIリファレンスを読めれば、とりあえず使うことはできるでしょう。 ですが、ソケットまわりのパフォーマンスはユーザの体感に直結します。通信が切れる、タイムアウトなどのエラーが発生する可能性も多々あります。 最大の効率を得るには、ボトルネックを中心に最適化を行うしかありません(これは『ザ・ゴール』というビジネス書で「制約理論」として示されている問題でもあります)。 今回は、前回に引き続き、HTTPの機能を再現しながらソケットの使い方について学んでいきます。 HTTPの歴史を通して、ソケットの実行効率を向上させる方法を具体的に見ていきましょう。 圧縮 HTTPの速度アップ手法としてよく使われているのが圧縮です。 昔よりもインターネットやWifiの性能は向上しましたが、それでもCPUを使って
はじめに SIerで働いてます。周りを見渡すとまだまだオンプレだけのシステムが多いですね。 少し前はクラウドは選択肢にすら入ってきませんでしたが、今はどんなに固いシステムでも必ずクラウドが選択肢に入ってくるようになりました。そして、この1~2年くらいはクラウド、特にAWSを利用したシステムの構築案件が増えてきたなぁと実感しています。 社内の人と話していても、「AWSなにそれ?」とか「AWS安くなるらしいから使おうよ。」という人もさすがに減ってきて、オンプレ脳から徐々にクラウド脳にシフトしていってるのかなと感じます。 この記事は、社内のAWSのイベントでLTで話した内容をベースに書いています。ただSWFについてはマニアックなので避けました。少しでも若手や興味を持っていただいた方の勉強になればと思いまして、その考えに至った背景などをかなり寄り道しながらできるだけやさしく書いてみました。 なぜ自
僭越ながら、脆弱性"&'<<>\ Advent Calendar 2016 の6日目の記事です。 端的に言うと、URLにBasic認証を埋め込む方法があるのですが、これをオープンリダイレクトの攻撃に応用できます。 この手法は昨年に発見し、もう1年以上経っているので、既にご存知の方もいるかと思われますが、Web初出でしょうか。日々の健全な脆弱性診断にご活用ください。 www.adventar.org ●オープンリダイレクトの脆弱性 診断ベンダによっては「オープンリダイレクタ」「外部サイトへ誘導可能」といったタイトルで揺らぎはありますが、本質的には同じです。*1 実はこの脆弱性、OWASP TOP 10(2013)に仲間入りしている悪いヤツです。 Top10-2013-A10: Unvalidated Redirects and Forwards (原文) 日本語版PDFでは、未検証のリダイレ
こんにちは、榊原@rdlaboです。 先日、東京にいったついでに五反田で「フロントエンド 日本酒フェス@五反田」を開催しました。フロントエンドを嗜んでいるメンバーでただ飲むだけのつもりだったのですが、私がCTOをしている会社のオフィスが近くにあったので二次会はなぜかLT+「OnsenUI2とは?」という議論に(参加者にOnsenUI2の開発者もいたので)。 そこで見えてきたOnsenUI2の役割は思った以上に夢があるものでしたのでちゃんとまとめておきます。 この記事はOnsen UI Advent Calendar 2016の25日目の記事です。 本稿の概要 UIフレームワークはWebデザインを変えた UIフレームワークは、CSSフレームワークからはじまりデザインの幅を広げていってる WebComponentsを利用したフレームワークであるOnsenUI2は、UIフレームワークの最先端 だ
Dependency hell is NP-complete. But maybe we can climb out. The package version selection problem is to find a set of dependencies that can be used to build a top-level package P that is complete (all dependencies satisfied) and compatible (no two incompatible packages are selected). There may be no such set, because of the diamond dependency problem: perhaps A needs B and C; B needs D version 1,
はじめに 来年2月に正式リリース予定のGo 1.8にて、新たにpluginパッケージが仲間入りします。これはGoでプラグインの仕組みを実現するものです。 プラグインはGoで作成されたシェアードライブラリー(.so)ファイルであり、中身はmainパッケージでエクスポートされた(=名前が大文字で始まる)変数と関数で構成されます。 このプラグインの実装を12月1日に公開されたGo 1.8 beta 1で試してみた時はLinuxとmacOSのみが対応していましたが、12月16日に公開されたGo 1.8 beta 2からはLinuxのみ対応となっています。(macOSはGo 1.9で対応予定) ここではプラグインのコーディングの仕方をざっくりと紹介させて頂きます。詳細については公式ベータサイトのpluginパッケージのドキュメントをご覧ください。 ファイル目線でのコーディングの流れ ファイル目線での
この記事は Vim 8.0 Advent Calendar の 14 日目の記事です。 新オプション紹介その 1 です。追加されたものの中でも便利なオプションについて解説します。 'breakindent' (真偽値) 'breakindentopt' (カンマ区切り文字列) オンにすると、折り返して表示される行がインデントされて表示されます。 つまり以下のようになります。左が 'breakindent' がオフ、右がオンです。また、'showbreak' オプションの値に > が設定されています。4 行目の折り返しに注目してください。 また、'breakindentopt' オプションで細かい挙動を制御できます。このオプションはカンマ区切りの文字列で、以下の要素を指定できます。 min:{n} 深いインデントが短すぎる幅で折り返されないように、1 行の最小の幅を指定します。未指定の場合は
この記事は、Tech KAYAC Advent Calendar 2016 の13日目の記事です。 社内Slack 弊社では、社内コミュニケーションツールとして、Slackを採用しています。 Slackの便利なところを挙げれば、枚挙に暇がないのですが、 とりわけ素晴らしいのは、emojiによるリアクション機能でしょう。 直接返信を使わず、emojiを使ってリアクションすることで、 以下のようなメリットを享受できます。 文章を書かなくていいので楽 通知を飛ばさないで返信できる(就業時間後とか) リアクションした時間が分からないので、返信遅れたときに誤魔化すのに便利 今回は、エンジニアはじめ、ディレクターやデザイナーなど、 何人かによく使うemojiを見せてもらいました。 僕の場合 応答として汎用性の高い 低姿勢な雰囲気を気軽に出せるがランクインです。 ほかにも、焼肉に行きたいときに使えるが便
The Saga of Go Dependency Management The Go community is on the cusp of some major shifts in the way we handle dependencies. These shifts are a long time coming, and involve the work and effort of dozens, if not hundreds, of people. Six to twelve months from now, the Go dependency management landscape is likely to look very different. For those who haven’t been following closely - or, honestly, ev
こちらは ピクシブ株式会社 Advent Calendar 2016、13日目の記事です。 こんにちは!4月からピクシブに入社したエンジニアの@_ragg_です✨ メンテナンスチーム・pixivFACTORYチーム・pixivFANBOXチームを旅して、デザインをかじったりフロントエンドを触ったりしています、3代目社内旅行エンジニアですね! さて、今回はHTML5 Canvasに実装されつつあるOffscreenCanvasと、Web Workerについてお話しします。まだ日本語文献の少ないアツアツのネタです🔥🔥 OffscreenCanvas #とは OffscreenCanvasは、「画面に表示されないCanvas」です。 かつて CanvasProxy と呼ばれていたのをご存じの方もいると思います、まさにそれです。 「画面に表示されないCanvas」は、「表示前に何段階か画像の加
これはFujitsu Advent Calendar 2016の11日目の記事です。 掲載内容は個人の意見・見解であり、富士通グループを代表するものではありません。なお、内容の正確性には注意を払っていますが無保証です。 はじめに この記事では先月今年発表されたディープラーニング論文(ArXivでの発表時期、発表された国際会議が2016年開催またはジャーナル掲載が2016年のもの)から私が個人的に重要だと思った論文を収集しています。また、2015年末ごろの論文も重要なものは採用しています。 以下の投稿も合わせてご覧ください。 2017年のディープラーニング論文100選 DeepLearning研究 2016年のまとめ 2016年の深層学習を用いた画像認識モデル foobarNet: ディープラーニング関連の○○Netまとめ NIPS2016実装集 ディープラーニングにとっての2016年 20
この記事は freee Engineers Advent Calendar の12日目の記事です。 こんにちは。freeeの17卒内定者でエンジニアインターンをしている @taiyo です。 これまでfreeeではRuby、サークルではPHP、卒論ではPythonと、主にスクリプト言語しか触ったことのない僕ですが、 freeeの中でgoを使った開発に携わる機会を得て触るようになり、3ヶ月前くらいからgo好きになりました。 エンジニア歴もまだ1年と3ヶ月くらいの新米ですが、後述する出来事をきっかけに 「cgoを使っているgo製のアプリケーションでC側のメモリプロファイリングをもっと手軽に出来るようにしたい気持ち」が高まったので、 そう思うまでに至った経緯 やってみたこと やってみて思ったこと の3点について書いてみようと思います。 Go製のAPIサーバでメモリリークを発生させてしまった 事の
6年ぐらい前に、execle, execlp が man では async-signal-safe にリストされてるけど間違ってるよという チケットを切ったんだけど、ずっと放置されてて https://bugzilla.kernel.org/show_bug.cgi?id=25292 6年後に対応してもらえましたよ。実装がなおったんだよね。 glibc 2.24 からexec系 syscall がまともになりました。 https://sourceware.org/bugzilla/show_bug.cgi?id=19534 みんな、Adhemerval Zanella に感謝しよう。 これ結構ひどくて、multi thread で forkした場合は以降は async-signal-safe しか呼んではいけないので exec呼んだらデッドロックリスクがある(かつmanには書いてない)とい
初版 2010/4/5 第2版 2013/5/10 誤解を修正。全面的に書き直し。 第3版 2014/7/13 なるべく分かりやすく全面的に書き直し。 第4版 2015/5/20 さらに分かりやすく全面的に書き直し。 第4.1版 2015/5/27 まだ分かりにくいと不評なので書き直し。 第4.2版 2015/5/27 さらに分かりやすく調整。 Unicode正規化の考え方自体はとてもシンプルです。でも、よく知ろうとしていろいろ調べると、用語がハイコンテキストすぎて、混乱してワケがわからなくなります。日本で一般的に見られる用語を図にしてみましょう。 混乱するのはどこだと思いますか? “合成済み文字” と “合成文字” の2か所です。どちらも言葉として同じ意味です。それなのに、異なった状態を表す用語として無理矢理に使い分けようとしています。ここから、以下のような奇妙な文章ができあがります。
コンピュータ 17 users 講談社 ブルーバックス 16 users プログラム 13 users ブルーバックス 11 users ai 8 users ゲーム 7 users ネットワーク 7 users 囲碁 6 users deep learning 6 users アルゴリズム 6 users ブルーバックス 講談社 5 users 思考 4 users 小野田 博一 4 users 人工知能 3 users 碁 3 users 解析学 2 users データ 2 users チェス 2 users タイ 2 users コンピューター 2 users ヒロイチ 2 users 講談社新書 1 user 思考法 1 user 回帰分析 1 user 深層学習 1 user ai 1 user サミュエル ジョンソン 1 user 続けられる 1 user 勝負 1 user
golang と言えば非同期に特化した言語ですが、慣れない内は簡単な非同期しか使えません。しかし sync パッケージを知る事でもっとカジュアルに、かつ確実な非同期処理を行う事が出来る様になります。 今日はそんな sync パッケージについて説明してみたいと思います。 sync.Mutex ご存じ sync.Mutex です。皆さんが一番使う排他制御だと思います。 package main import ( "fmt" "runtime" "sync" "time" ) func parallel(wg *sync.WaitGroup) { fmt.Println("博") time.Sleep(100 * time.Millisecond) fmt.Println("多") time.Sleep(100 * time.Millisecond) fmt.Println("の") time.
この記事は Go Advent Calendar 2016 - Qiita の2日目の記事です。 Golang については書きたいことがたくさんあるので、Go Advent Calendar 2016 その4が出てきても良いのではと思っている次第です。(空いていればいつでも書きます) さて、今回、この記事では Golang で書かれた Web アプリケーションのリクエストのユニットテストについて解説しようと思います。 github.com 1. Testing HTTP Handler 検証のために、ただ単に "pong" を返却する pingHandler と、URLクエリから値を取得してそのまま返却する echoHandler の2つを定義します。 ー pingHandler // pingHandler returns just "pong" string. func pingHan
▼ 2018 (6) ▼ 06/10 - 06/17 (1) ► 05/13 - 05/20 (1) ► 04/08 - 04/15 (1) ► 02/04 - 02/11 (1) ► 01/21 - 01/28 (1) ► 01/14 - 01/21 (1) ► 2017 (31) ► 12/31 - 01/07 (1) ► 12/10 - 12/17 (2) ► 12/03 - 12/10 (2) ► 11/19 - 11/26 (1) ► 11/05 - 11/12 (1) ► 10/29 - 11/05 (1) ► 09/24 - 10/01 (1) ► 09/10 - 09/17 (1) ► 08/20 - 08/27 (1) ► 07/16 - 07/23 (1) ► 07/09 - 07/16 (1) ► 06/25 - 07/02 (1) ► 06/11 - 06/18 (
速さは正義! やはり「最速」という言葉は胸を熱くするものがあります。 使うWebフレームワークのレスポンスが速ければ速いほど、ユーザービリティはよくなる上に、必要なサーバー台数も減らせるなど、いいことづくめです。 ただ、レスポンスの速さだけを追い求めて機能を削ったものは、開発の速度を遅くします。 Web開発に通常必要な機能は全て用意した上で、なお速い、そんな都合のいいフレームワークが求められます。 そこで、最近知った「revel」という「最速」にして「フルスタック」のWebフレームワークについて、調べたことを記載していきます。 今回は、 速さの計測方法解説 revelの概要 Go言語の概要 revelのインストール・実行までの手順 などについて記載します。 ※ ここで言っている「最速」とは、一秒間に何レスポンス返せるか、というような、ベンチマーク的な意味です。 ※ ここで言っている「フルス
Scheduler job execution is expected but not guaranteed. Scheduler is known to occasionally (but rarely) miss the execution of scheduled jobs. If scheduled jobs are a critical component of your application, it is recommended to run a custom clock process instead for more reliability, control, and visibility. Once you access its interface, a dashboard will allow you to configure jobs to run every 10
はじめに DockerにGolangの環境を閉じ込めたときデバッグどうするの?と思ってなかなか情報を集められなかったのでまとめます。 検証環境 ホスト側 Windows10 + Boot2Docker + VisualStudioCode Sierra + Docker for Mac + VisualStudioCode コンテナ側 golang:onbuildを使用(執筆時点ではgolang 1.7) Golangのデバッガについて VisualStudioCodeではDelveを使うようなので、Delveを使います。 ドキュメントやissuse見てるとリモートデバッグもサポートしていて、もしかしてDockerもいけるかもってところが発端。 Dockerのリモートデバッグについて リモートデバッグが可能なようで、こちらをベースにGolang用に書き換えます。 Live Debuggin
はじめに 皆さんはgoパッケージを使ったことはありますか?私は、Go!Go!言いながら、恥ずかしながら、あまりまともに使ったことがありませんでした。最近は、仕事でもAST(抽象構文木)を弄り倒すことがあるので、今回はgoパッケージに触れたいと思います。 ここでは、簡単な四則演算などを評価し、結果を返すREPLを作ってみます。一見難しそうですが、ほとんどgoパッケージの機能を使うので、非常に簡単です。 ASTへパースする まずは入力された文字列をパースし、ASTを生成してみます。ここでは、式の評価なので式単位でパースします。パースには、parser.ParseExprを用います。 たとえば、以下のように使用できます。 expr, err := parser.ParseExpr("1+1") if err != nil { panic(err) } ast.Inspect(expr, func
nagome-pollyとは? nagome の plugin です。ニコ生のコメントをAWS polly経由で読み上げます。golangで書かれています。 github リポジトリはこちらです 経緯 Rubyで深層学習を使った音声合成Amazon Pollyを使ってWebサイトの読み上げ音声合成してみた こちらのサイトを見て、ニコ生中毒者の私はピンときました。これ、読み上げちゃんの替わりに使えるんじゃね?と。 最近go言語を勉強していることと、ニコ生でnagomeというコメントビューワを作成されている生主さんに出会ったこともあって、nagomeのpluginをgoで書いて、polly使って読み上げちゃんを作ろう!!というアツい思いがこみ上げてきました。 nagomeとは? diginatu さんが開発しておられる 次世代コメントビューワ です。Viqoの後継として作成されており、クロスプ
はじめに Qiita初投稿です。 自分がGo言語で配列操作をするとき、rangeを使ってぐるぐるループを回して処理することが多いのですが、 ふと、rubyで言う map, filter, each などを作って使いたくなっては、 「わざわざ作るのもめんどうだしなぁ」と、すぐ諦めてしまいます。 そこで今回は、Advent Calendarの季節でもあり、よい機会なので、 試しにPlaygroundで作ってみることにしました。 作ったメソッドたち 1. filter package main import ( "fmt" ) func filter(nums []int, funcs ...func(n int) bool) []int { if len(funcs) == 0 { return nums } ret := make([]int, 0, len(nums)) f := func
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
reorx/httpstat ( and followed @davecheney’s golang implementation ) is getting hot recently ( there is also node implementation !) . It’s very useful to see these latency with intuitive way in console when something wrong happens on network. While contributing the project, I thought it’s very useful if I can output the same information on my own golang HTTP client ( or my network connected CLI too
初めまして。マネーフォワードでフロントエンドエンジニアをしている高山です。 Money Forward Advent Calendar 2016と言う事なんですが、 Advent Calendarを書くのが今回初めてでもあり、Qiitaに投稿するのも初めてだったりします。 「え。なに、アウトプットしてないの」と、思われがちですが、Web帳と言う意識の低いゆるいブログをかれこれ6年程書いております。 気になった事とか、メモ程度に不定期に書いていたりします。 また、それとは別に、今年の頭くらいに 新たなCSS Architecture として、APBCSSを提唱させていただきました。 CSS Architectureが、「お。良いなぁ。」と思った方は是非導入して頂ければ幸いです。 と言う訳で、自己紹介はそのぐらいで、今回はタイトルである通り、CSSでもなく、JavaScriptでもなく、Rub
AWS Compute Blog Scripting Languages for AWS Lambda: Running PHP, Ruby, and Go NOTE: As of January 15, 2018 Go is now a natively supported language of AWS Lambda. You can read more here: https://aws.amazon.com/blogs/compute/announcing-go-support-for-aws-lambda/ This post courtesy of Dimitrij Zub, Solutions Architect and Raphael Sack, Technical Trainer In our daily work with partners and customers,
この記事は GetWild Advent Calendar 2016 - Qiita の12日目の記事です。 ~ get wild and tough ~ と言われたらもちろんシティーハンターですね。今回、記事を書くにあたって、AAを探しましたが、シティーハンターのあまりネタとしては使いにくいAAしかなくて「ぐぬぬ…」となりました… 「Get wild 禁断症状」とは 業務中にGETWILD分が切れて禁断症状がでそうになった際に必死に耐えるための方法論~#ghq ないし go getで頑張る go get もしくは ghq get もGETWILDするチャンスかもしれません。出来る時にしておかないと頭の中をエンドレスでGETWILDが流れ、ゾーン状態はどこへやら、いつの間にか1日が終わってしまうかもしれません なるほどなるほど。 go get という文脈にカスタマイズされた Get wil
1. The document discusses RESTful APIs and gRPC, comparing their characteristics and use cases. 2. RESTful APIs typically use HTTP and JSON to access resources via URLs while gRPC uses protocol buffers and HTTP/2 for efficient streaming and RPC. 3. gRPC is better suited for microservices and mobile apps due to its ability to handle streaming and performance, while REST is more widely used due to i
この記事は Go Advent Calendar 2016 の3日目の記事です。 はじめに 今回は gops という Google 製のツールを紹介したいと思います。 gops は ps コマンドの様に動作しますが、golang で書かれたプロセスに限って以下の機能を提供します。 スタックトレースの表示 メモリ状態の表示 ランタイム状態の表示 メモリのプロファイルを取り pprof を起動 CPUのプロファイルを取り pprof を起動 強制GC 以下一つずつ説明していきます。 golang プロセスの一覧 まず引数を何も指定せずに起動します。 $ gops 10224 go (/opt/go/bin/go) 10244* main (/tmp/go-build638808727/command-line-arguments/_obj/exe/main) 10257 gops (/opt/
$ l total 16 drwxr-xr-x 5 kazu staff 170B 12 9 14:35 . drwxr-xr-x 84 kazu staff 2.8K 12 9 14:34 .. drwxr-xr-x 12 kazu staff 408B 12 9 14:44 .git -rw-r--r-- 1 kazu staff 13B 12 9 14:34 README.md -rw-r--r-- 1 kazu staff 312B 12 9 14:43 main.go $ manul -Q github.com/labstack/echo github.com/labstack/gommon github.com/mattn/go-colorable github.com/mattn/go-isatty github.com/valyala/fasttemplate $ manu
手動テスト、バグ発行 テストを実行 Chromeで実行 バグ情報 バグ修正 Test Managerでの実行 手動テスト、バグ発行 テストを実行 昨日作成した、テスト計画のテストケースからテストを実行します。Activeになっているテストを選択して、Run with Optionsを選択します。 Chromeで実行 こんな選択肢が表示されます。 Webブラウザでテストランナーを実行かTest Manager(2015/2017)を使う クライアントのデータ収集する(Test Managerのみ) テスト対象のビルドを選択する テスト対象のビルドはこんな風にFind buildから選択できます。これによって、テスト対象のビルドの品質を計測することができます。自動化を構成していた場合、この辺は自動で行われます。 Webランナーを実行したとき、このような小さいウィンドウが表示されます。テストケー
RubyによるWebスクレイピング(2): Capybaraで対話的ブラウジングCapybaraを利用してウェブを操作・情報を取得する方法を紹介します。 はじめに 前回の記事では、WebのHTMLを取得し、Nokogiriを使ってパースする方法を紹介しました。 今回の記事では、Capybara を利用してウェブを操作・情報を取得する方法を紹介します。 Capybaraとは jnicklas/capybara - GitHub Capybaraはウェブアプリケーションのテストを行うためによく使われるライブラリです。しかしテストのみに留まらず、ドライバ(後述)を切り替えることによって実際のブラウザに近い動きをするためWebのスクレイピングに利用できます。 とりわけ、Nokogiri単体ではやや手に余る、ログインを必要とするWebスクレイピングやJavaScriptの実行を含んだ動作を簡潔な文法
この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ
Vim 8.0 Advent Calendar 11 日目 タイムスタンプで管理されるようになった viminfo ファイルVim この記事は Vim 8.0 Advent Calendar の 11 日目の記事です。 今回は、ユーザーの作業が記録されている viminfo ファイルについてです。 viminfo ファイルの概要 viminfo ファイルは、ユーザーが行った様々な操作を記録しておくファイルです。例えば、レジスタの内容、コマンドラインの履歴、検索文字列の履歴や、ジャンプリストなど、様々な情報が記録されます。これらをファイルに記録することで、次回 Vim を使った際にも、前回の履歴を引き継いで使うことができます。 viminfo ファイルは、基本的には起動時に読み込まれ、終了時にファイルに書き出されます。 viminfo ファイルのマージ 1 つの viminfo ファイルを複
#追記 その後GoConfernce2017で発表させていただき、その内容をまとめた記事を書いたので参考になれば幸いです。 GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang ##はじめに goroutineはGo言語の大きな特徴である並行処理を支える重要な機能です。 しかし、goroutineの仕組みについてしっかり理解しないままコードを書いてしまうと思わぬ挙動をしてしまうことがあるので注意が必要です。 今回はそんなgoroutineのスケジューリングの挙動についてまとめてみました。 僕自身がgoの書き始めの頃に引っかかった部分なので、初心者のgoroutineへの理解の助けになれば幸いです。 ##goroutineの特徴 goroutineは最小で2048byteなので、 Windows だと 1 MB、Linux だと 2 MB であるスレッド
Go (その3) Advent Calendar 2016 11日目の記事です。 Go言語の生みの親、Rob Pikeが2015年のGopherfestのセッションで 言っていた、Go Proverbsを自分の勉強がてら和訳してちょっと解説してみる。 後半に行くに連れて集中力が切れたり、いろいろ調査不足のところや、認識違いの部分もあると思うので、 そういう部分のところがあったら是非指摘してください。自分でも気づいたら修正していきます。 ちなみにタイトルの「Go Proverbs」は、動画の冒頭で囲碁の話をしているとおり「碁の格言」の直訳で、 「Goの格言」にかかっていておしゃれ。 メモリを共有して通信したり、通信してメモリを共有してはならない 原文は"Don't communicate by sharing memory, share memory by communicating." こ
この記事は、Go (その3) Advent Calendar 2016 の12日目の記事です。 radigo radikoの録音用のツールをGoで書きました。 https://github.com/yyoshiki41/radigo Record radiko 📻 radikoのAPIのライブラリも書きました。 https://github.com/yyoshiki41/go-radiko The unofficial radiko.jp APIs Client Library for Go. ※ 現在(2016年12月)、radikoが公式でAPI公開を行っているわけではありません。 radiko とは radiko.jp で、インターネットでラジオが聞けるやつです。 今年(2016年)の10月より、タイムフリーという機能がスタートして、 過去1週間分の放送を遡って聴けるようになりまし
Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想
本稿は Vim Advent Calendar 2016 の12日目の記事です. 今年の9月に Vim 8.0 がリリースされました.これに伴って追加された Vim の新機能は数多くありますが,その中に:smileコマンドというものがあることをご存知でしょうか.私は Yokohama.vim #8 に参加した際に知りました.このコマンドは,実行すると次のような「スマイル」が表示されます. :smileのヘルプを見ると “make the user happy(ユーザを幸せにする)” と解説されています.確かに,これは大変愉快で素晴らしい新機能だと思いました. しかし,惜しいことにこの機能はユーザ(Vimmer)に対する考察がほんのわずかに足りていないようにも思われます.すなわち「ある Vimmer が unhappy なとき,その Vimmer に:smileコマンドを叩く余裕があるだろう
目次 bashがない ターミナルがない ターミナルで文字列をペーストできない brewがない エディタがない Atomがタッチイベントを聞いてくれない gitがない Gitクライアント(GUI)がない CRLFにした覚えはない モバイルのエミュレータがない Xcodeがない 既存テストが通らない Sketchがない 1Passwordがない Markdownエディタがない Spotlightがない 英数キーがない Command + Wがない ファンクションキーをデフォルトにできない アプリケーションを閉じるボタンがない Applicationsフォルダがない ホームディレクトリがない バックスラッシュがない 英語環境がない ヒラギノがない Retinaじゃない 開発に必須ないろいろ bashがない WindowsにはMS-DOSの流れを汲むコマンドプロンプトがありました。PowerShe
WHY 機械学習のモデルはできたけど、サービスインするには何らかの形でweb側から動作できる形にする必要があります。 Railsだと重すぎるし、Go言語使いたい。 そのようなモチベーションから私はGo言語でAPIを作成しました。 Go言語のWEBフレームワークは多々ありますが、今回紹介する記事はrevelを用いています。 コンテナとコードを公開しているのですぐに動作を確認することが可能にしています。 Docker: https://hub.docker.com/r/masayaresearch/go_api/ github: https://github.com/SnowMasaya/go_revel_jwt_mysql revelを採用した理由は下記です。 testのための機能が揃っている deployも簡単 必要なサンプルがある WHAT 何をすることを想定しているか - 簡単な認証
この記事は Mackerel Advent Calendar 2016 の 12/13 日の記事です。 はじめに 皆さんは golang で書かれたプロセスの監視はどの様に行われているでしょうか。builderscon 2016 でも登壇された Dave Cheney 御大の gcvis をお使いでしょうか。 確かに gcvis は便利なのですが一つ悩ましい点があり、gcvis 自信がプロセスを起動しないといけないという点にあります。作り上致しかたないのですが、コマンド引数にて起動するプロセスを指定する仕様になっています。つまり起動には gcvis が必要になるのです。監視の際にアプリケーションを止められるのならばいいのですが、そうでないときは使えない事もあります。 ところで昨日 golang で書かれたプロセスを監視/操作するためのツール「gops」をご紹介しました。 この gops で
この記事は Vim 8.0 Advent Calendar の 13 日目の記事です。 普段はあまり気にしないかもしれませんが、undo の単位は重要です。この undo について、新しい機能が追加されました。 挿入モードでの操作の分割 挿入モードでの操作中に、<Left> などでカーソル位置を動かすと、undo 情報や . でのリピートが壊れてしまいます。 例えば以下のキーマッピングがあった場合、
初めに この記事はGo Advent Calendar13日目の記事です。 コンテストサーバとは 競技プログラミング1のコンテストを開催するためのサーバです。 一般に、問題の公開、ユーザの提出コードを判定、その結果をもとにランキングの作成などの機能が求められます。 UIはWebだったり専用アプリケーションだったりしますが今回は使い勝手の良いWebを採用しました。 製作にあたって直面した課題 Web UI製作経験なし。 C++、CoffeeScript(Node.JS)、Go以外の言語をほぼ触ったことがない。 DataBaseに関しては知識のみ、実際に運用したことはない。 ユーザの提出コードを判定するために実行している際に使うサンドボックスの製作に必要なLinux関連の知識があまりない。 といったかなり致命的な問題が並んでいて厳しい状況でした。 最初はC++での製作を試みていましたがC++に
React.js の syntax ハイライトプラグインを作成した話 はじめに この記事は,Vim (その2) advent calendar の 13日目の記事です. 自分の中で,今年一番がんばったVim活動を振り返り,それについて書き記していく. どちらかと言うと,pluginの紹介ではなく,作って良かった点,苦労した点などに焦点を当てる. 背景 自分は,よく React.js *1 を用いて開発を行っている. React.js で開発するときの多くは,javascript の ソースコード中にHTMLのような マークアップを埋め込む糖化シンタックスである JSX を用いることが多い. (JSXは,マークアップそのものではなく,トランスパイル時にjavascript の 関数呼び出しに展開される) *1 : A javascript library for building user
本記事はVim Advent Calandar 2016の13日目の記事です。 前置き まずはこの動画を見てください(※私の動画ではないです)。 この動画は先日行われたVimConf2016でt9mdさんが発表されたときの動画です。 vim-mode-plus for Atom editor 私はVimConf2016に参加して、リアルタイムに発表を拝見していたのですが、 発表中「すげー」という単語しか出てこないくらいすごかったです。 言葉でうまく表現するのが難しいですが、すごかったところをざっくり言うと、 Vimの、特にtextobjects、operator周りの考察が深い。 AtomをVim風に操作できるvim-modeというpackage(Vimでいうplugin)をforkしてvim-mode-plusで、Vimの機能を移植するのみならず、様々な独自機能を追加され、完全に独自進化
excl ライブラリ なぜそんなもの書いたのか Go言語にはExcel作成用のライブラリ xlsx がすでに存在します。 xlsxライブラリは強力で、普通に使用する場合このライブラリが一番だと思います。 ただ、xlsxライブラリを調査していると今回作成するものの仕様に耐えられない部分がありました。 xlsxライブラリの利点欠点 xlsxライブラリにできること ・Excelファイルの書き込み・読み込み・新規作成 ・セルの書式設定 ・Excelファイルを解凍せずに扱える ・OpenXMLの仕様に基づいた開発 xlsxライブラリの問題 ・既存のExcelファイルを使用するといろいろなものが消える ・チャートが消える ・画像が消える ・図形が消える ・マクロの存在するファイルの場合はマクロも消える ・メモリ使用量が異常に高くなる ・数十メガバイトのデータでも使用メモリがギガを超える exclライブ
テストしやすいGoコードのデザイン golang.tokyo #2 12 December 2016 Taichi Nakashima 言いたいこと 明示的であれ! 2 whoami @deeeet / @tcnksm (GitHub) http://deeeet.com A PaaS Dev&Ops (Using go for CLI tool, API, Batch jobs) 3 OSS Tools gcli - The easy way to build Golang command-line application ghr - Create Github Release and upload artifacts in parallel Packages go-httpstat - Go package for tracing golang HTTP request latency
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く