並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 71件

新着順 人気順

itchynyの検索結果1 - 40 件 / 71件

  • HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ

    みなさんはHomebrewをお使いでしょうか。macOSをお使いの多くの開発者が使っていると思います。 HomebrewのインストーラーはRubyで書かれており、次のコマンドでインストールするようになっていました。 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" HomebrewがRubyに依存していることは良いのですが (formulaの書きやすさはRubyならでは)、インストーラーの話になると事情が変わってきます。HomebrewのインストールコマンドはmacOSの工場出荷状態でも動く必要があります。こういうものにRubyを使っているのはリスクがあります。 将来的にmacOSデフォルトにRubyやPythonが含まれなくなる (参考リンク

      HomebrewのインストーラーをRubyからBashに書き直しました! - プログラムモグモグ
    • jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ

      jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク

        jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ
      • jq 1.7をリリースしました - プログラムモグモグ

        jqがjqlang organizationに移譲され、数名の新たなメンテナーを入れた開発体制に移行してから三か月が経ちました。 私にとってこの三か月はとても濃厚で、これまでのOSS活動の中でも特に大変な期間でした。 itchyny.hatenablog.com github.com リポジトリの管理権限をいただいてからまずやったことは、既存のissueやPRの整理でした。 500ほどのissueとPRに目を通し、ラベルをつけて、解決済みのものを閉じて、直近で入れたいものを独断でリリースマイルストーンに入れていきました。 この整理がついた頃には他のメンテナの活動も活発になり、私の作ったマイルストーンのissueやPRを確認してくれました。 そして先日、ようやく1.7をリリースしました。 1.6から実に五年弱、一時は開発が完全に止まってしまいプロジェクトの存続を危ぶむ声も上がるような状況から

          jq 1.7をリリースしました - プログラムモグモグ
        • jq が jqlang organization に移譲されました - プログラムモグモグ

          JSONを操作するコマンドラインツールであるjqは、これまでオリジナル作者であるStephen Dolan氏 (@stedolan)のリポジトリ(github.com/stedolan/jq)で管理されていました。 メンテナンスはNico Williams氏 (@nicowilliams)とWilliam Langford氏 (@wtlangford)の二名が行なっていましたが、近年は活動が減っておりメンテナンスが滞っていることが度々指摘されていました。 最新のリリースは2018年11月に行われた1.6であり、その後に様々なバグ修正やパフォーマンス改善、新機能の実装が行われているのにリリースされておらず、またissueやPRも放置されがちになっていました。 さらにCI (AppVeyor)は常に落ちるので、簡単なドキュメント修正でもCIが通らず苦情が来る、数か月放置されたPRは作った人が諦

            jq が jqlang organization に移譲されました - プログラムモグモグ
          • ファイルをエディターで一括リネームするツールをGo言語で作った! ― 機能を増やさない信念と、OSSとの付き合い方 - プログラムモグモグ

            ファイルを一括でリネームしたいことはありませんか。私はあります。ということで作りました。 インストールはHomebrew brew install itchyny/tap/mmv または以下のコマンドでできます。 go get github.com/itchyny/mmv/cmd/mmv スクリーンショットではvimが起動していますが、 $EDITOR が設定されていればそれを使って編集することができます。 エディターでファイル名を編集して一括でリネームするというのは、新しい発想ではありません。 実際、多くのソフトウェア (特にファイラー) がこの機能を実装しています。 massren vimv qmv Vim plugin vimfiler Defx Vaffle fila.vim Emacs Dired 私はvimfilerの一括リネーム機能をよく使っていました。 特に不満はないのです

              ファイルをエディターで一括リネームするツールをGo言語で作った! ― 機能を増やさない信念と、OSSとの付き合い方 - プログラムモグモグ
            • Vimで本格的にWeb開発したい人の為のステップアップガイド

              想定読者 この記事は「Vimって便利だけど、覚えたてだと局所的にしか使えなかったりして、実際に本格的にWeb開発するのは難しいし、モチベーションも続かないなあ…」という人のために書きました。 工夫した点 TODOサンプルアプリを用意して「Vimの設定適用 → リアルなコードを使って実際にVimを動かす」という感じで少しずつ便利になる体験をしながら実際のWeb開発でも使えるVimを使った操作や設定などを覚えていけるステップアップ構成 特定のプラグインを使うケースは類似プラグインを紹介し、他のプラグインも選択できるように。(これこそVimの楽しいところ。好きなものを好きなように自分で組み合わせて使う。) 注意点 Vimの説明になります(Neovimではありませんのでご注意ください)。 Vimはバージョン8.2を使っています。 Docker上のUbuntuでVimを動かす想定になっています。イン

                Vimで本格的にWeb開発したい人の為のステップアップガイド
              • Mackerelで開発した時系列データベースについての論文がIEEEの国際会議「COMPSAC 2019」で発表されました - Hatena Developer Blog

                Mackerel チームのWebアプリケーションエンジニア id:astj です。 さくらインターネットさんのプレスリリースにある通り、はてなのMackerelチームより、私 id:astjと、同じくWebアプリケーションエンジニアの id:itchynyも執筆に参加した論文「HeteroTSDB: An Extensible Time Series Database for Automatically Tiering on Heterogeneous Key-Value Stores(HeteroTSDB: 異種混合キーバリューストアを用いた自動階層化のための時系列データベースアーキテクチャ)」が、IEEEの国際会議「COMPSAC 2019」に採択されました。 論文は、2019年7月15日~19日(現地時間)にアメリカ合衆国ウィスコンシン州で開催された「COMPSAC 2019」にて、

                  Mackerelで開発した時系列データベースについての論文がIEEEの国際会議「COMPSAC 2019」で発表されました - Hatena Developer Blog
                • 株式会社はてなを退職しました - プログラムモグモグ

                  本日2021年9月30日が最終出社日でした。1か月間のお休みをいただき、11月から新しい職場で働きます。2015年4月に新卒入社して、Mackerelチームとブックマークチームに所属しました。約六年半、お世話になりました。どちらのプロダクトも携わることができて楽しかったです。 入社時はウェブサービスの実装について何も知らない状態でした。しかしMackerelチームの優秀な先輩と理解あるプロダクトオーナーとディレクターに支えられて、様々なことを学びながらサービスと共に成長できました。サーバーやフロントエンドを書いたり、機能を作ったり閉じたり、年の瀬の夜中に障害対応したり、ioドメインが壊れたり、Linuxカーネルのコードを読んだり、時系列DBをクラウド上で実装したり、競合との差別化を考えたり、お客様とサービスの強み弱みについて議論したりしながら、SaaSビジネスをやる上での色々なことを経験で

                    株式会社はてなを退職しました - プログラムモグモグ
                  • Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ

                    PerlにはRegexp::Assembleという便利なライブラリがあります。 複数の正規表現を受け取り、それらのいずれかにマッチする正規表現を構築するためのライブラリです。 my $ra = Regexp::Assemble->new; $ra->add( 'ab+c' ); $ra->add( 'ab+\\d*\\s+c' ); $ra->add( 'a\\w+\\d+' ); $ra->add( 'a\\d+' ); print $ra->re; # prints (?:a(?:b+(?:\d*\s+)?c|(?:\w+)?\d+)) このライブラリのGo実装を金曜日の夜から書き始めて、ようやく形になってきたので公開しました。 package main import ( "fmt" "log" "github.com/itchyny/rassemble-go" ) func main

                      Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ
                    • gojqのパーサーを書き直しました - プログラムモグモグ

                      jqはJSONを絞り込むツールですが、実はれっきとしたプログラミング言語です。 算術演算子、論理演算子、分岐構文、try・catch、そして関数定義があり、ループは再帰関数で実装します。 単に .foo とか .[0] とかでJSONを辿るだけのツールだと思われている方は、builtin関数の定義を見ていただくと良いかと思います。 selectやmapのように、よく使われる関数でさえ内部実装になっていない (Cで書かれていない) のは面白いですね。 jqのクエリを思ったように書けないという経験から、jqをより深く知るためにGo言語で再実装したのがgojqです。 去年の4月から開発を始め、8月にブログ記事を書きました。 jqのほぼすべての機能を実装しており、pure Goで書かれているのでGo言語のツールに簡単に組み込むことができます。 この記事公開以降も開発を続けています。 --arg,

                        gojqのパーサーを書き直しました - プログラムモグモグ
                      • 既存の機能から設計を学び、調査力を向上させて、知見を共有しよう - Hatena Developer Blog

                        はてなブックマークチームの id:itchyny です。 チームのメンバー間で知見を共有することは、とても大事なことです。 特に開発エンジニア同士のコミュニケーションを増やし、お互いに足りていない知見を共有し合うことでチームの生産性を向上することは、プロダクトの成長につながります。 プロダクトの実装や設計の知見を共有するためによく取られる方法として、詳しい人が講義形式で教えるというスタイルがあります。 特に、チームに新しいメンバーが入ったときには、プロダクトの概要やコードのアーキテクチャについて説明することは一般的に行われています。 講義形式で教えるというスタイルはよく行われる方法でありながら、いくつかの課題があると感じています。 まずは説明会に参加するメンバーが、どうしても受け身になってしまいます。 説明された瞬間は分かったような気になっていても、次の週には忘れてしまうことはよくあること

                          既存の機能から設計を学び、調査力を向上させて、知見を共有しよう - Hatena Developer Blog
                        • 開発環境構築スクリプトのCIをGitHub Actionsで回す - プログラムモグモグ

                          小ネタですが、開発環境の構築はスクリプト化して、CIを回そうという話です。 開発環境を構築することは年にそう何回もあるわけではないですが、スクリプトを一発叩いて必要なツールが揃うようにしておくと便利です。私は素朴にシェルスクリプトで書いています。好きな言語で書けばいいと思いますが、macOSは将来的にRubyやPythonといったスクリプト言語を排除しようとしていて、不安ですね。Ansibleみたいなのを使ってもいいと思います。私はちょっと苦手で… あくまで私用のスクリプトなので使わないでください。 このスクリプトを叩いてしまえば、iTerm2やVim、tmux、自分のdotfilesの配置と言語処理系のインストール、Google ChromeやSlackのインストールを行ってくれます。モダンなプロジェクトならdockerさえあればいいんでしょうが、なかなかそういうわけにはいかないですよね

                            開発環境構築スクリプトのCIをGitHub Actionsで回す - プログラムモグモグ
                          • Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ

                            Go言語でstrftime・strptime相当の関数を提供するライブラリを実装しました。 t, _ := timefmt.Parse("2020/07/24 09:07:29", "%Y/%m/%d %H:%M:%S") fmt.Println(t) // 2020-07-24 09:07:29 +0000 UTC str := timefmt.Format(t, "%Y/%m/%d %H:%M:%S") fmt.Println(str) // 2020/07/24 09:07:29 str = timefmt.Format(t, "%a, %d %b %Y %T %z") fmt.Println(str) // Fri, 24 Jul 2020 09:07:29 +0000 なぜ作ったか Go言語の標準ライブラリには日時と文字列を変換する関数がありますが、2006年1月2日の15:04

                              Go言語で日時と文字列を相互変換するライブラリtimefmtを作りました - プログラムモグモグ
                            • Go言語に出したプロポーザルが通った:{bytes,strings}.ContainsFuncの追加 - プログラムモグモグ

                              今年の夏にGo言語に以下のようなプロポーザルを出していたのですが、それが先ほど承認されました。標準パッケージの関数追加になります。 proposal: bytes, strings: add ContainsFunc · Issue #54386 · golang/go · GitHub Go言語のstringsパッケージとbytesパッケージには、文字列から文字や部分文字列を探す関数がいくつかあります。 探す文字の位置を返す関数、最後から探す関数、そういう文字が含まれるかどうかを返す関数を表にまとめると、次のようになります。 Find what? Index* LastIndex* Contains* substr string Index(s, substr string) int LastIndex(s, substr string) int Contains(s, substr s

                                Go言語に出したプロポーザルが通った:{bytes,strings}.ContainsFuncの追加 - プログラムモグモグ
                              • 作って理解する Babel プラグイン - Techtouch Developers Blog

                                エンジニアの伊藤です。 ようやく梅雨が開けたと思ったらすでに立秋。残暑は残るどころか日に日に増している感じさえあります… 🥵 。 この記事では、普段の開発で非常にお世話になっているツール Babel のプラグインを作成する方法と、Babel プラグインの例としての処理時間を計測するプロファイラを紹介します。Babel プラグインに踏み込んでいきたいのですが、理解を助けるためにまず Babel が何をするツールなのかから説明します。 Babelとは Babel の処理の流れ AST (Abstract Syntax Tree) Babel プラグイン Babel プラグイン プロジェクト最小構成 Hello World 「プロファイラ」で何をするのか まとめ Babel プラグイン開発に参考になったサイト おまけ Babelとは フロントエンドの開発を行っている方にはお馴染みな Babel

                                  作って理解する Babel プラグイン - Techtouch Developers Blog
                                • Rustの知見を深めたい! 開発合宿でmackerel-agentを再実装してみた - Hatena Developer Blog

                                  はてなには、開発合宿というイベントがあります。有志で集ったメンバーが普段の開発から離れ、テーマを決めて集中して取り組むイベントです。 今回、私(id:dekokun)、id:Krouton、id:ne-sachirouの3人からなるチームで、はてなが提供するサーバー管理・監視サービスMackerelに必須であるmackerel-agentというプログラムを題材に、Rustでの再実装を試みました。 mackerel-agentは、監視対象のホストにインストールし、ホストの情報(メトリックやメタデータ)を集めてMackerelに送るプログラムで、Go言語で実装されています。なお、今回はあくまでRustの知見を得る材料として選択したもので、今後の実装を置き換えようとしているわけではありません。 Rustでmackerel-agentを再実装する狙い なぜRustなのか なぜmackerel-ag

                                    Rustの知見を深めたい! 開発合宿でmackerel-agentを再実装してみた - Hatena Developer Blog
                                  • Scrapboxのコマンドラインクライアントを作った - 詩と創作・思索のひろば

                                    ちょっとした手元の自動化を行おうとしたときに、Scrapbox のページ一覧を取得したり、プロジェクトの情報を取得したりしたくなる。Scrapbox ではとにかくほぼすべてが わかりやすい JSON API 経由で行われているわけなので、これをしてくれるコマンドラインツールがほしいわけです。 GitHub - motemen/sbx: An unofficial Scrapbox client ちなみに完全に野良だし、API も内部 API とされていて安定はしていないはず。そういうものです。 使い方 API の薄いラッパーなので基本的に JSON を返す。--jq オプションで結果を gojq で編集できる。 % sbx page list help-jp --limit 5 --jq 'map(.title)' [ "Scrapboxの使い方", "ブラケティング", "ページをリンク

                                      Scrapboxのコマンドラインクライアントを作った - 詩と創作・思索のひろば
                                    • Go言語でJSONをYAMLに変換するコマンド json2yaml を作りました! - プログラムモグモグ

                                      JSONをYAMLに変換するコマンド json2yaml を、Go言語で作ってみました。 他の言語も含めると同じようなコマンドラインツールは無数に作られていますが、 Goのライブラリとして組み込みたかったというのが最初のモチベーションです。 また、JSONをストリーミング的にYAMLに変換できるのかという疑問を以前から抱いていて、ここに答えを得たかったというところもありました。 github.com go install github.com/itchyny/json2yaml/cmd/json2yaml@latest Homebrewでもインストールできます。 brew install itchyny/tap/json2yaml JSONファイルを引数にしてYAMLを出力したり、 $ cat sample.json { "Sample": "JSON" } $ json2yaml sam

                                        Go言語でJSONをYAMLに変換するコマンド json2yaml を作りました! - プログラムモグモグ
                                      • OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog

                                        はてなで働くエンジニアにアンケートシリーズ第13回は、ブックマークチームのWebアプリケーションエンジニア、id:itchynyに話を聞きました。 はてなidはかぶらないように適当に付けた Haskellが得意な自分ならScalaも書けるだろうと思って チーム間で協力しながら新しいAPIの仕様を策定 TLとして、チーム横断での依頼の窓口にも 夕方から深夜にかけて頭が冴える より戦略的にOSSへ貢献する体制作りをしたい スプリントごとに常に方法を改善 実装力を活かして良いシステム構成にできた時に手応えが 意思決定の過程を書き残すのは重要なこと 意欲がある人はいくらでも学べる会社 はてなidはかぶらないように適当に付けた ── Q1. はてなidとその由来を教えてください id:itchyny (いちにぃ)です。本名ばれせず、かつかぶらないよう適当に付けたので、由来はありません。 Haskel

                                          OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog
                                        • GitHub ActionsでファイルをS3にキャッシュするアクションを作りました - プログラムモグモグ

                                          GitHub Actionsでは依存パッケージやビルド結果などをうまくキャッシュすることで、テストやビルドの時間を短縮できます。 actions/setup-nodeやactions/setup-javaなどの各言語のオフィシャルアクションは各パッケージマネージャーのためのキャッシュ機構を提供していますし、actions/cacheを使って任意のファイルをキャッシュすることもできます。 これらは内部で@actions/cacheパッケージを使っており、キャッシュの機構はGitHub自身の機能と密に結びついています。 しかし、GitHub Actionsのキャッシュはリポジトリごとに10GBまでという制限があり、開発者の多いリポジトリではsetup-nodeのキャッシュだけでもすぐに上限に達してしまいます。 私の所属するチームのリポジトリはGitHub Enterprise Serverにホ

                                            GitHub ActionsでファイルをS3にキャッシュするアクションを作りました - プログラムモグモグ
                                          • jsondiff: JSONの構造の一部を無視して差分をとれるGoのライブラリを書いた - Sexually Knowing

                                            github.com 背景 仕事でお世話になっているkayac/ecspressoの機能の中にローカルのタスク・サービス定義と現在使われている定義を比較して差分を出力してくれるものがある。 github.com これから加えようとしている差分をプレビューできるだけではなく、たとえばデプロイしようとしているわけでもないのに差分があればローカルの定義が古びていることがわかるのでCIに組み込めると便利。 しかし実際に使おうとすると困る点が見つかった。 たとえばタスク定義にイメージタグを書く際に {{ must_env 'IMAGE_TAG' }} のように環境変数を参照している時に「イメージタグ 以外 に差分がない」ことを確認するのが難しいということ。 理想的には image を無視したJSONの構造を比較して差分が出せると良い。あるいは出力されるdiffをパースして image の差分は無視す

                                              jsondiff: JSONの構造の一部を無視して差分をとれるGoのライブラリを書いた - Sexually Knowing
                                            • 社内イベント: エディタについて語る会で Vim script と ISO8583 の話をしました - カンムテックブログ

                                              エンジニアの佐野です。最近記事を書いていなかったので小ネタです。先日、菅原企画の社内イベント、エディタについて語る会が催されました。職種にもよりますがカンムでは多くの従業員はオンラインで業務を行っています。たまにはオフラインで交流も...ということで来れる人はオフィスに集まってエディタの話をしつつ軽食を楽しむというコンセプトです。 当日は Vim, Emacs, Visual Studio Code, nano... と様々なエディタのゆるい話から熱い話が語られました。私は Vim の Vim script について話したので今日はそれを記事化します。 0. 私とエディタ 私は長らく Vim をエディタとして使っています。「エディタ」というものを意識したのは大学生の頃でしょうか。機械工学系だったのですがソフトウェア工学や C や C++ がカリキュラムにあり自分もそれらを履修しました。それ

                                                社内イベント: エディタについて語る会で Vim script と ISO8583 の話をしました - カンムテックブログ
                                              • dotfilesのこだわりを晒す - エムスリーテックブログ

                                                Unit4の永山です。 dotfiles弄りを趣味にしています。 世にdotfilesを題材とした記事は数多く存在していますがその大半は「dotfilesを作ってみた」「こうやって管理しています」などの表層的な部分の紹介に留まり、その奥にあるべき細部のこだわりや個人の思想にまで踏み込んだ記事は数えるほどしかありません。 そこで、本記事では私のdotfilesを題材にその各構成要素についてオススメ, TIPS, こだわりに分類し、可能な限り詳細に紹介します。 github.com 本記事は筆者の関心の都合上、Zshに関する項目に大きく比重を置いています。ご承知おきください。 dotfilesとは dotfilesを作成することの利点 記事の構成 Zsh編 [オススメ] プラグインの管理にZinitを使う 注釈: Zinitについて [オススメ] Zshプラグインは非同期読み込みする [オスス

                                                  dotfilesのこだわりを晒す - エムスリーテックブログ
                                                • GitHub - itchyny/mmv: rename multiple files with editor

                                                  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

                                                    GitHub - itchyny/mmv: rename multiple files with editor
                                                  • AWS Purpose-Build Database Week で Mackerel の時系列データベース内での ElastiCache について発表しました - Hatena Developer Blog

                                                    こんばんは。 Mackerel 開発チームの id:astj です。 8月24日から8月28日までの期間で、 AWS さんによるオンラインイベント AWS Purpose-Build Database Week が開催されています。その初日である8月24日に Mackerel における Amazon ElastiCache の利用事例について発表させていただきました。 aws.amazon.com 当日の発表資料はこちらです。 speakerdeck.com これまでも Mackerel の時系列データベースに関して Mackerel チームの面々が様々なイベントで発表してきていますが、今回はその中の Redis Cluster に焦点を当てて、 Redis Cluster の利用の意図や EC2 から ElastiCache への移行などをテーマに発表しました。 ElastiCache

                                                      AWS Purpose-Build Database Week で Mackerel の時系列データベース内での ElastiCache について発表しました - Hatena Developer Blog
                                                    • GitHub - itchyny/gojq: Pure Go implementation of jq

                                                      gojq is purely implemented with Go language and is completely portable. jq depends on the C standard library so the availability of math functions depends on the library. jq also depends on the regular expression library and it makes build scripts complex. gojq implements nice error messages for invalid query and JSON input. The error message of jq is sometimes difficult to tell where to fix the q

                                                        GitHub - itchyny/gojq: Pure Go implementation of jq
                                                      • Release jq 1.7 · jqlang/jq

                                                        After a five year hiatus we're back with a GitHub organization, with new admins and new maintainers who have brought a great deal of energy to make a long-awaited and long-needed new release. We're very grateful for all the new owners, admins, and maintainers. Special thanks go to Owen Ou (@owenthereal) for pushing to set up a new GitHub organization for jq, Stephen Dolan (@stedolan) for transferr

                                                          Release jq 1.7 · jqlang/jq
                                                        • はてなインターンシップをリモートで開催する方法─精神と時のステイホーム - Hatena Developer Blog

                                                          こんにちは。 チーフエンジニアのid:cockscombです。 インターンシップでカリキュラムをリードしています。 私自身が2012年のはてなサマーインターンシップ参加者という経験もあり、ここ何年か特に大きくインターンシップに関わっています。 この夏、はてなはインターンシップをリモートで実施しました。 2008年にサマーインターンシップを始めて今年で13年目ですが、その歴史で初めてのオンライン開催になりました。 それには多くの検討が必要でした。 春先にインターンシップの計画を始めてすぐ、新型コロナウイルスの深刻な影響が明らかになりました。 はてなでも2月中旬から許可されていた在宅勤務が、ほどなくして推奨になり、緊急事態宣言下では原則として在宅勤務と、状況も変化していました。 例年通りにインターンシップを開催ができないことは、4月の時点で明らかでした。 こうしてリモート開催に舵を切ったインタ

                                                            はてなインターンシップをリモートで開催する方法─精神と時のステイホーム - Hatena Developer Blog
                                                          • Go 1.14の主なregression

                                                            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

                                                              Go 1.14の主なregression
                                                            • GitHub Enterprise から GitHub への移行ツールをGoで作りました! - プログラムモグモグ

                                                              弊社ではGitHub Enterprise (以下GHE) からGitHubへの移行が進んでいます。今年頭のプラン改変やGitHub Connect、ActionsやAppsの充実などGitHubの機能強化が後押しとなりました。GHEのメンテナンスコストも徐々に重荷になってきていました。 リポジトリを移行するにあたって問題となるのが、これまでの歴史をどこまで新リポジトリに移行するかということです。もちろんgitのログはそのまま移行できますが、以下のようなものも移行したいと言われると色々と考えることが出てきます。 issueやpull requestのコメントやレビュー、ラベル コードコメントからの参照もあるし、リポジトリ間も相互にリンクしている 番号を維持したい projectやmilestone スプリントのフローが依存している 今のカンバンをそのまま移行したい これらをすべて移行するツ

                                                                GitHub Enterprise から GitHub への移行ツールをGoで作りました! - プログラムモグモグ
                                                              • 正規表現でmasawada - hogashi.*

                                                                masawada Advent Calendar 2021 - Adventar 10日目の記事です。昨日の id:Sixeight さんに見事に釘を刺されてしまったので、ありがたく受け取り、whywaita Advent Calendar 2021 - Adventarはこちらに書きました → 秘蔵UserCSS大放出祭 - hogashi.*。大目に見てください! id:masawada / id:whywaita Advent Calendar 七五三おめでとうございます。 7, 5, 3 と素数ですね*1。ゴルゴ13が好きな id:hogashi です。 七五三は 11月 15日にやるそうです。 11 は素数だし、 15 は 3+5+7 ですね。 3×5 でも 15 になります。 能では、 7歳ごろから稽古を始めるので、このあたりを初心というそうで*2、世阿弥曰く、このころに自然に

                                                                  正規表現でmasawada - hogashi.*
                                                                • 今年お世話になった 12 個の Vim (Neovim) プラグインを紹介します

                                                                  この記事は Vim advent calendar 2022 その1 の12日目の記事です。 昨日は@isobe_mochiさんの記事「tataku.vim というプラグインを作っている話」でした。 明日は @hanlio さんの記事が公開される予定です。 はじめに 2022年ももうすぐ終わりそうですね。今年は Vim に関するお仕事がいただけたり、設定ファイルを Vim script から Lua に移行したりと、Vimmer としては非常に充実した一年となりました。これも Vim/Neovim コントリビュータの方々と、数多のプラグイン開発者のおかげです。本当にありがとうございます。 そこで本記事では、私が普段使っている Vim (Neovim) プラグインを主観強めで紹介します。私が普段メインで使っている Neovim には 2022/12/11 現在 91 個のプラグインが入ってい

                                                                    今年お世話になった 12 個の Vim (Neovim) プラグインを紹介します
                                                                  • ghq など、github.com/motemen 下のリポジトリを x-motemen Org に移しています - 詩と創作・思索のひろば

                                                                    もうけっこう前のことになりますが、github.com/motemen 下にあったリポジトリの一部を github.com/x-motemen organization に移管しました。コードやバイナリの配布形式によって、ユーザ側で対処する必要があったりなかったりしますが、それぞれのリポジトリにおける指示(あれば)に従ってもらえればと思います。 https://github.com/x-motemen/ghq https://github.com/x-motemen/blogsync https://github.com/x-motemen/gobump https://github.com/x-motemen/git-pr-release もともとこれらは id:Songmu、id:itchyny、id:onk らにアクティブにメンテされているもので、motemen 個人はほぼ完全にノー

                                                                      ghq など、github.com/motemen 下のリポジトリを x-motemen Org に移しています - 詩と創作・思索のひろば
                                                                    • Vimのパッチ存在確認処理を速くした - プログラムモグモグ

                                                                      昨日Apple Eventを待機しながらVimのコードを眺めていたら、なんだか香ばしい匂いのするコードを見つけてしまいました。 /* * Return TRUE if patch "n" has been included. */ int has_patch(int n) { int i; for (i = 0; included_patches[i] != 0; ++i) if (included_patches[i] == n) return TRUE; return FALSE; } ペロッ… こ、これは、線形探索! Vimは、メインのブランチのすべてのコミットでパッチバージョンが上がっていく方式をとっています。 プラグインが新しい機能を使いたい時に、ユーザーが使っているVimに特定のパッチが入っているかをチェックする必要があります (関数やイベントなど機能が入っているかを直接チェッ

                                                                        Vimのパッチ存在確認処理を速くした - プログラムモグモグ
                                                                      • はてなインターン2020参加記 - peaceiris blog

                                                                        目次 はてなインターン2020に参加しました なぜ応募したか 選考 応募課題 面接 交流会と歓迎会 一日目講義 サービス開発 成果発表会 期間中のツイートとか 最後に 他のインターン生の記事 はてなインターン2020に参加しました hatenacorp.jp 某ウイルスの影響で、なんと初のリモート開催。 例年通りだと、 期間: 4週間 開催地: 京都オフィス 前半2週間: 講義 後半2週間: はてなのサービスに新機能を実装 という構成だったそうですが、今夏は 期間: 1週間 開催地: リモート 1日目: 講義 2~4日目: サンプルサービスに新機能を実装 最終日: 成果発表会 という内容でした。 実際には第一日程と第二日程の2回開催で、自分は第二日程 (2020-09-07 から 2020-09-11) に参加させていただきました。 リモート参加ということで他のインターン生も全国各地から参

                                                                          はてなインターン2020参加記 - peaceiris blog
                                                                        • 組織と技術の両輪で開発を加速させるkintoneチームの取り組み / JJUG CCC 2022 Fall Cybozu kintone

                                                                          kintoneは2011年のリリース以降、開発チームが90名になるまで成長し、コードベースも肥大化を続けてきました。しかし、組織もコードベースもモノリシックなまま成長を続けてきたため、メンバーの認知負荷やコミュニケーションコストの増大などによって、開発体制がスケールしない問題を抱えていました。今後、開発を加速かつスケールさせるために、領域専任のチーム体制への移行に挑戦しています。技術面でも、開発を加速するための改善に取り組むプロジェクトを、エンジニアが起案し、チームを発足して進められるようになりました。JUnit 5へのアップデートや、Joda-TimeからJSR-310 Date and Time APIへの移行、さらにフロントエンドのクラス構文への移行など、多岐に渡る改善プロジェクトが進行しています。組織面と技術面の両輪で開発を加速するための取り組みについてお話しします。

                                                                            組織と技術の両輪で開発を加速させるkintoneチームの取り組み / JJUG CCC 2022 Fall Cybozu kintone
                                                                          • NoOps Meetup Tokyo #8 で Observability と Mackerel の話をしました - 平常運転

                                                                            タイトルの通りです。 9/17 にあった NoOps Meetup Tokyo #8 にて、"Observability: Mackerel による観測と Mackerel の観測"というタイトルで発表してきました。 noops.connpass.com 当日のスライドはこちらです。 speakerdeck.com NoOps という名前は刺激的ですが、 NoOps Japanコミュニティでは以下のように No Uncomfortable Ops という形で表現されています。 NoOps = No "Uncomfortable" Ops NoOps Japanでは 「システム運用保守の"嬉しくないこと"をなくそう!」 をテーマに、 NoOpsを実現するための技術・設計手法・開発運用保守サイクル・ツールや考え方・事例などを共有していきたいと考えています。 NoOps Meetup Tokyo

                                                                              NoOps Meetup Tokyo #8 で Observability と Mackerel の話をしました - 平常運転
                                                                            • 持ち家派? 賃貸派? 現在も話題となる議論が多数あった2015年【特集・2010年代のはてなブログ】 - 週刊はてなブログ

                                                                              はてなブログは、2011年11月にベータ版をリリースし*1、2019年2月にはてなダイアリーと統合しました*2。現在では多くの方にご利用いただき、好きなものに対する熱い想いや、社会に対する意見、日常の記録など、たくさんの方の「人生の物語」が投稿され続けています。本企画では来たる2020年を前に、2010年代のはてなブログ・はてなダイアリーを1年ごとに振り返ります。 フィギュアスケートの羽生結弦選手がグランプリファイナルで男子初のシングル三連覇を収め、又吉直樹さんの小説『火花』がベストセラーとなった2015年。初代Apple Watchが発売されたのもこの年でした。 2015年に公開した「はてなブログの新機能」 スタッフが選ぶ、注目エントリー 暮らし 世の中 政治と経済 学び テクノロジー エンタメ アニメとゲーム おもしろ 2015年のランキング 特集・2010年代のはてなブログ、ほかの記

                                                                                持ち家派? 賃貸派? 現在も話題となる議論が多数あった2015年【特集・2010年代のはてなブログ】 - 週刊はてなブログ
                                                                              • Vimmer が紹介する「いぶし銀」なプラグインまとめ(後編)

                                                                                この記事は Vim 駅伝 の 08/21 の記事です。 前回の記事は kyoh86 さんによる、 08/18 の「ddu.vimの基本設定概観」という記事でした。 次回は 08/23 に投稿される予定です。 はじめに 本記事は、いぶし銀プラグイン企画の結果発表の後編です。 Vimmer が実際に普段の編集を行う上で、なくてはならないと感じるプラグインを紹介していきます。前編は以下の記事を参照してください。 後編では、94件の回答のうち前編で紹介しなかったもの全てを紹介します。 全部で52個もあるため、プラグインの大まかな分類ごとに分けて紹介しています。一度に全て読むのは大変ですから、「目次」から気になるカテゴリを選んで読み進めることをおすすめします。 紹介フォーマット 前編の記事同様、各プラグインには以下の項目を設けています。 プラグイン名 プラグインへのリンク 概要 (一応)紹介記事なの

                                                                                  Vimmer が紹介する「いぶし銀」なプラグインまとめ(後編)
                                                                                • Vimメモ : Neovimで開発環境を段階的に構築する(4)LinterとFormatter - もた日記

                                                                                  多言語パック Linter Formatter まとめ 多言語パック vim-polyglotは各種ファイルタイプ用のプラグインをまとめたもので、標準で対応していないような新しいプログラミング言語や使い慣れていないファイルタイプを編集するときに便利。 対応しているファイルタイプの一覧はこのページで確認可能。 Repository スター数 sheerun/vim-polyglot 2819 Plug 'sheerun/vim-polyglot' 例えばcsvファイルを開いてみると、vim-polyglotインストール前では、 のように通常の表示だが、インストール後では、 のように色付き表示になり、:WhatColumnなどのコマンドが使えるようになっている。 これはcsvファイルタイプのプラグインとしてcsv.vimがインストールされているからである。 このようにさまざまなファイルタイプ用

                                                                                    Vimメモ : Neovimで開発環境を段階的に構築する(4)LinterとFormatter - もた日記