タグ

ブックマーク / ymotongpoo.hatenablog.com (10)

  • or-done-channelでコードの可読性を上げる - YAMAGUCHI::weblog

    はじめに こんにちは、キーボード自作おじさんです。このエントリはGo Advent Calendar 2017の4日目の記事です。 今年のエントリーは大作が並ぶアドベントカレンダーの休憩用のエントリーと思っていただければ幸いです。 Advent Calendar、小ネタでいいのよ。頑張り過ぎてネタ思い浮かばなくて穴開けるくらいなら575でもいいのよ。— mattn (@mattn_jp) 2017年11月29日 Goの並列処理のパターン Goが公開されてからもう8年になり、Goが得意とする並列処理にもGo特有のパターンなどがコミュニティ内で蓄積されてきました。 その中でもよく聞くものとしては for-select loop or-channel or-done-channel tee-channel fan-in, fan-out などがあります。今日はその中でも or-done-chan

    or-done-channelでコードの可読性を上げる - YAMAGUCHI::weblog
    hikazoh
    hikazoh 2017/12/04
  • 画面外にあるダウンロードボタンを押してファイルを取得する - YAMAGUCHI::weblog

    はじめに 日常的にやってる作業を自動化するためにSeleniumを使っているわけだけど、どうでもいいことで無駄なハマり方をしたのでメモしておく。基的にChrome Driverしか使ってないので他のブラウザの挙動は知らない。 画面外にあるボタンをクリックする 「要素がクリックできる状態になったらクリックする」というコードを最初適当に書いていたけれど、それだとエラーが出てクリックできなかったので、なぜかなーと思っていた。 たとえばこういう感じでコードを書いて実行すると button_path = '//path/to/xpath' WebDriverWait(driver, 10).until( expected_conditions.elements_to_be_clickable( (By.XPATH, button_path) ) ) button = driver.find_ele

    画面外にあるダウンロードボタンを押してファイルを取得する - YAMAGUCHI::weblog
  • macOSでパスワード付きzipを作成する - YAMAGUCHI::weblog

    はじめに いつから行われているのかわからないけれど、IT業界では「パスワード ハ オッテ ゴレンラクイタシマス」という呪文を唱え、パスワード付きzipとそのパスワードを2通のメールで送る慣習がある。普段は自分からそういうzipファイルを送ることはないのだけれども、今日たまたまどうしてもそうする必要があった。 zipcloak で、調べてみたら、macOSでもzipcloakコマンドというのがあって、それを使えばパスワード付きzipを作れるということを今日知った。情弱乙。 $ zip -r path-to-dir/ archive.zip $ zipcloak archive.zip Enter password: Verify password: zipコマンドでまず普通のzipファイルを作成して、zipcloakコマンドでそれをキーフレーズで暗号化するという流れ。地味に便利だった。 zi

    macOSでパスワード付きzipを作成する - YAMAGUCHI::weblog
  • Visual Studio CodeでOSSライセンス用の拡張を書いた感想 - YAMAGUCHI::weblog

    はじめに こんにちは、Visual Studio Code界のホエイプロテイン(WPI)です。これはVisual Studio Code Advent Calendar 2016の21日目の記事です。昨日はEbXpJ6bpさんでした。 Visual Studio Codeのリリース以後、ライトユーザーとして便利に使っています。今日は1ユーザーとして便利に使っていたものの、欲しい機能がなかったので拡張を作った話とその感想を書こうと思います。 作ったもの Visual Studio CodeでOSSライセンス用のLICENSEファイルの作成、およびライセンスヘッダの挿入を簡単に行う拡張である "licenser" という拡張を作りました。 GitHub - ymotongpoo/vsc-licenser: License handler extension for Visual Studio

    Visual Studio CodeでOSSライセンス用の拡張を書いた感想 - YAMAGUCHI::weblog
  • GoのASTを使ってパッケージのメンテナンスを考える - YAMAGUCHI::weblog

    はじめに こんにちは、Go界の骨盤職人です。buildersconにmattnさんがいらしていたということで生mattnさんに謁見したかったのですが、諸事情でこの日程はどうしても都合がつかず、参加できなかったことが非常に残念でいまでも悔やんでいます。 さて、Goは安定して開発が進んでおり、いまは安定バージョンが1.8にもなろうというところです。セルフホスティングも1.5で達成し、GCの高速化も順調に進んでいる中、いまだにGoの問題として挙げられるものとして「パッケージバージョンの管理」があります。今日はその辺の話をしようと思います。 TL;DR go パッケージを使って、自分たちが書いたコードが依存してるパッケージを明らかにし、依存先パッケージの更新に追従していこう。 前置き 以下の話はGoをプロダクションで中規模〜大規模に利用している環境を想定しており、細かな閉じられたパッケージのみを開

    GoのASTを使ってパッケージのメンテナンスを考える - YAMAGUCHI::weblog
  • TypeScript 2.0.0とVisual Studio Code 1.4でChrome拡張を書く - YAMAGUCHI::weblog

    はじめに こんにちは。ナルゲンボトル愛好家です。ふと思い立ってChrome拡張作ろうかなと思ったんですが、どうせならTypeScriptでやるのがいいじゃねえかってことでやりました。で、最近ブログ書いてないし、なんかまとめたらいい感じかなと思ったのでまとめます。 構成 . ├── dist // 生成された拡張 │   ├── context-menu.js │   ├── icons │   │   └── icon48.png │   └── manifest.json ├── gulpfile.js ├── .eslintrc.json ├── package.json ├── static │   ├── icons │   │   └── icon48.png │   └── manifest.json ├── ts │   └── src │   └── context-men

    TypeScript 2.0.0とVisual Studio Code 1.4でChrome拡張を書く - YAMAGUCHI::weblog
  • CIサービスだけでErgoDoxのファームウェアをビルドして公開する - YAMAGUCHI::weblog

    はじめに こんにちは、Go界のalva notoです。ErgoDoxを買ってから1ヶ月が経ちますが、毎日快適にデスクワークをしております。そして日々ErgoDoxを使いながら常に新しいキー配列を模索しています。ErgoDoxの良い点は単純にセパレート型で肩が開く点だけでなく、自より指(腱)に負担がかからない配列に自由に直せるという点もあります。ただ、自分でキー配列を変えたファームウェアをビルドするのはちょっと面倒。 これまでは単一キーのみのアサインだったのでMassdropのコンフィギュレーターを使っていましたが、さらなる最適化を求めてファームウェアを自前でビルドし始めました。しかしながら、毎度毎度VagrantやDockerで環境を立ち上げてビルドするのは面倒なので、CIでビルド出来るようにしましたので、その情報を共有します。 ビルドプロセスの設定 普通に手元で動くTeensy用ファーム

    CIサービスだけでErgoDoxのファームウェアをビルドして公開する - YAMAGUCHI::weblog
  • Goで良い感じに日時をパースするライブラリdatemakiの話とGo 1.6 - YAMAGUCHI::weblog

    はじめに こんにちは、Go界の京成舎人ライナーです。このエントリは Go Advent Calendar 2015 の22日目の記事です。 今回のアドベントカレンダーに向けて、タイトルとは別のことをいろいろとやってみてたんですが、OS X 10.11 (El Capitan) でのみ発生する謎事象の原因をいろいろ調べてたらどうもGoと全然関係ないことのようで、まったくGo Advent Calendarに関係ない記事になりそうなのでやめました。 というわけで、今回はGoでの日時のパースについてです。 Goにおける日付のパース処理 いうまでもないおさらいなのですが、念の為に。Goでは日付の処理は timeパッケージ で行っています。他のプログラミング言語とは異なるフォーマットなので、初めて使うときは少々戸惑いますが、慣れてくると「2006年1月2日3時4分5秒」という決まった時刻のどの数字が

    Goで良い感じに日時をパースするライブラリdatemakiの話とGo 1.6 - YAMAGUCHI::weblog
  • Goオールスターズでpackage managementについて話してきました - YAMAGUCHI::weblog

    はじめに こんにちは。Gopherファンクラブ会員番号3番です。去る、10月11日にdots.さん主催の「Goオールスターズ」で登壇してGoでのpackage managementについて話してきました。 Goオールスターズ - dots. [ドッツ] ツイートのまとめや他の登壇者の方の資料はこちらです。 Goオールスターズ - Togetterまとめ Goだけでモバイルアプリを作ろう Goオールスターズ - 考える人、コードを書く人 過去に自作したGoプロダクトの紹介 - Goオールスターズ Goオールスターズで登壇してきました | おそらくはそれさえも平凡な日々 資料 資料はこちらです。 大体の流れはこんな感じです。 当面はGo体では当面は「ソースコードの明示性」「下位互換性」を保つためにgoツールでパッケージのバージョン管理をすることはしない 代わりにGo1.5ではven

    Goオールスターズでpackage managementについて話してきました - YAMAGUCHI::weblog
  • 「逆引きGolang」で気になったところ - YAMAGUCHI::weblog

    はじめに こんにちは、タゾチャイティーラテです。最近急に蒸し暑くなったり、寒かったり中途半端な天気が多いですね。逆引きGolang というサイトが公開されてて面白いなあと思って見てたんですが、僕だったらこう書くなというものがいくつかあったので覚書きです。 文字列 部分文字列を置き換える 元のコード これは無理に strings 使わないほうが楽なんじゃないかと思いますがどうでしょう。自分で関数定義するのは面倒かもしれませんが。 http://play.golang.org/p/5x6UXdMYeO package main import "fmt" func main() { s := "Apple Banana Orange" r1 := replace(0, 5, []rune(s), []rune("Vine")) fmt.Println(string(r1)) r2 := repl

    「逆引きGolang」で気になったところ - YAMAGUCHI::weblog
  • 1