タグ

ブックマーク / takezoe.hatenablog.com (57)

  • イマドキのIDE事情 第174回 Microsoftのプログラミング向けエディタ「Visual Studio Code」に注目! - たけぞう瀕死ブログ

    こちらも少し前のものになりますが、IDE連載の第174回です。Microsoftがオープンソースで開発しているVisual Studio Codeを紹介してみました。 news.mynavi.jp Electronを使っているということもありAtomによく似ていますが、Atomと比べると標準でJavaScriptTypeScriptの開発支援機能が充実していたり、Gitがサポートされていたりとかなり高機能です。フロントエンドの開発ならこれで決まりなのでは…と思ってしまうほどです(宗教上の理由で特定のテキストエディタを使っている場合は除く)。 このブログでは過去に以下のエントリで取り上げています。Microsoft製ということもあってか、まだベータにも関わらずドキュメントも比較的充実しています。 takezoe.hatenablog.com takezoe.hatenablog.com V

    イマドキのIDE事情 第174回 Microsoftのプログラミング向けエディタ「Visual Studio Code」に注目! - たけぞう瀕死ブログ
  • Visual Studio Codeをコマンドラインから起動する - たけぞう瀕死ブログ

    ターミナルから起動できないと不便なのでどうやるのがいいのかな〜と思ってたらちゃんとドキュメントに書いてありました。Visual Studio CodeはMicrosoft製ということもあってかベータ版なのにドキュメントも比較的充実していますね。 Windowsの場合 インストールするとcodeコマンドが入ってPATHも通るので何もしなくてもコマンドラインからcode .みたいにして起動できる模様。 Macの場合 open -n -b "com.microsoft.VSCode"で起動できるので.bash_profileにこんなのを入れておくと同じようにcode .で起動できるようになります。 code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;} Linuxの場合 Visual Studio Co

    Visual Studio Codeをコマンドラインから起動する - たけぞう瀕死ブログ
  • marked.jsをJavaに移植してみた - たけぞう瀕死ブログ

    GitBucketではMarkdownの処理にpegdownを使っています。pegdownはJavaで使えるMarkdownプロセッサの中では最もまともなものだと思うのですが、GitHub Flavored Markdownとの互換性という面ではやや微妙なところがあります。 他の言語ではJavaScript用のmarked.js、Rubyのredcarpetなどがよさそうです。marked.jsをNashornで動かすという選択肢もなくはないのですが、ソースを見た感じそれほど巨大なものでもなさそうだったのでこれをJavaに移植してみました。*1 github.com 以下のような感じでとても簡単に使うことができます。引数にOptionsを渡すことでオプションを指定可能ですが、markded.jsがサポートしているすべてのオプションを実装しているわけではありません。 import io.gi

    marked.jsをJavaに移植してみた - たけぞう瀕死ブログ
  • GitBucket 3.7をリリースしました - たけぞう瀕死ブログ

    Scalaで実装されたオープンソースのGitHubクローン、GitBucket 3.7をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/3.7 Markdownプロセッサの変更 Markdownプロセッサをこれまで使用していたpegdownから独自実装のmarkedjに変更しました。 markedjはJavaScriptで実装されたmarked.jsをJavaにポーティングしたもので、GitHub Flavored Markdownのより良いサポートを提供します。これによってこれまで問題となっていたGitHubとGitBucketのMarkdown記法の違いはかなり解決されています。 また、markedjはGitBucketで使うためにポーティングされたものではありますが、単なるJavaライブラリなので他のアプリケーシ

    GitBucket 3.7をリリースしました - たけぞう瀕死ブログ
  • gitbucket community plugins始まりました - たけぞう瀕死ブログ

    以前からGitBucketのプラグイン開発に積極的に取り組んでくれている@McFoggyがgitbucket community pluginsというサイトを立ち上げてくれました。その名の通り、GitBucketプラグインのコミュニティサイトとのことです。 現時点では以下の3つのプラグインがリストアップされています。 gitbucket-announce-plugin gitbucket-h2-backup-plugin gitbucket-desktopnotify-plugin リストにプラグインを追加したい場合はIssuesにリクエストしてね!とのことです。 GitBucketは作り始めた当初から「将来的にはプラグイン機構を作ってユーザが自由に拡張できるようにしたい」と考えていたのですが、プラグインシステムについてはいろいろと試行錯誤があり、なかなか実用化できていませんでした。ここに

    gitbucket community plugins始まりました - たけぞう瀕死ブログ
  • gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ

    gottyはターミナルで実行したコマンドの出力をWebブラウザで参照できるようにするツールで、オプションを付けるとブラウザからのキー入力も可能になります。つまりgottyでtmuxを起動することで、Webブラウザから複数セッションや画面分割可能なターミナルを利用でき、さらにvimEmacsなども利用することが可能になります。 特にWebアプリケーションを開発している場合、ターミナルでvimEmacsでコーディングしていると、動作を確認するたびにブラウザに切り替える必要があり、非常に面倒です。gotty + tmuxを使えばブラウザの1つのタブでターミナルを使うことができるので、ブラウザのタブを切り替えるだけでアプリケーションの動作を確認したり、調べ物をしたりすることができるのです。これを最強のWeb開発環境と呼ばずしてなんと呼ぶのでしょうか。Atomなんかいらなかったんや!! gott

    gotty + tmux = 最強のWeb開発環境 - たけぞう瀕死ブログ
  • イマドキのIDE事情 第172回 GitHub Desktopとは? - たけぞう瀕死ブログ

    スーパー不定期ですが、IDE連載の第172回です(少し前に公開されていたのですが、ブログで紹介するのをわすれていました)。 news.mynavi.jp ちょうどGitクライアントをあれこれ試していた時期にGitHub Desktopが一般公開されたので一通りいじってみたという記事です。このブログでも書きましたが、以前のGitHub for Windows/Macと同様フル機能のGitクライアントではなく、日常的な作業を簡単にこなすということに特化しています。正直Gitをある程度使いこなしている人にとっては逆にわかりにくいのではと感じる部分もありますが、非エンジニアの人にGitを使ってもらうには良いツールなのかもしれません。*1 さて、書けるときに原稿をお送りさせていただくというスーパー不定期な連載となってしまっていますが、このIDE連載はなんとか200回までは続けたいなと思っています。先

    イマドキのIDE事情 第172回 GitHub Desktopとは? - たけぞう瀕死ブログ
  • tmuxのセッションを保存・復元する - たけぞう瀕死ブログ

    以前からサーバでの作業にはtmuxを使っているのですが、最近訳あってローカルでも使い始めたので*1プラグインなども活用してみようということで試してみました。 まずはMacBookにtmuxをインストールします。 $ brew install tmux tpm (Tmux Plugin Manager)でプラグインを管理できるようにします。 $ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm ここではtmuxのウィンドウの状態などを保存しておけるtmux-resurrectというプラグインを入れてみることにします。~/.tmux.confを以下の内容で作成。 set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-resurrec

    tmuxのセッションを保存・復元する - たけぞう瀕死ブログ
  • Octotree - GitHubでソースをツリー表示するブラウザ拡張 - たけぞう瀕死ブログ

    GitHubでブラウザ拡張の特集をやっていたのですが、その中でOctotreeというGitHubのソースをツリー表示できるブラウザ拡張を見つけました。 github.com Chrome、Firefox、Safari、Operaで使えるようですが、普段メインで使っているChromeにインストールしてみました。こんな感じ。 ブラウザでの表示とツリーのノード選択も同期していますし、動作も思っていたよりかなり高速です。また、アクセストークンを設定すればプライベートリポジトリでも使えますし、GitHub Enterpriseにも対応しているようです。 GitHub上でちょっとソースを読みたいというケースも多いので、そういった場合にはかなり便利な拡張だと思います。

    Octotree - GitHubでソースをツリー表示するブラウザ拡張 - たけぞう瀕死ブログ
  • 2015年のEmacs - たけぞう瀕死ブログ

    その昔、自宅PCLinuxをインストールして頑張っていた頃はEmacsを使っていたり、その延長で職場でもMeadowやxyzzyなどを活用していたものですが、Eclipseを使い始めてからめっきりEmacsから離れてしまっていました。 ところがここ最近、MacBookを使い始めたり、仕事柄サーバのメンテナンス等でターミナルを使う機会が圧倒的に増えたり、周囲の影響もあったりして久しぶりにEmacsに復帰してみることにしました。Emacsをちゃんと使うのは10年ぶりくらいですが、同僚のEmacserに教えてもらいながら環境を整備してみました。 パッケージをインストールするための準備 最近のEmacsはmeplaというリポジトリからパッケージをインストールできるようです。~/.emacs.d/init.elに以下を書いておきます。 (require 'package) (add-to-list

    2015年のEmacs - たけぞう瀕死ブログ
  • GFMを完璧にプレビュー可能なIntelliJのMarkdownプラグイン - たけぞう瀕死ブログ

    GitHubで開発しているとMarkdownを書く機会が多いですが、IntelliJにもいくつかのMarkdownプラグインがあり、中にはJetBrains謹製のものもあるのですがGitHub Flavored Markdownで書いているとプレビューがいまいちなケースが多く、結局プラグインを使わずに書いたり、Atomで書いたりしました。 ところが、最近GFMという新しいMarkdownプラグインが登場したようです。 なんとRubyのRedcarpet(のネイティブライブラリ)をJNA経由で呼び出し、さらにそれをJxBrowser(ChromiumをSwingやJavaFXに組み込めるコンポーネント)で表示するという荒技を使っているようです。 このような作りになっているのでサイズが大きくダウンロードがなかなか終わらずビックリしましたが、なんといってもGitHub Flavored Mark

    GFMを完璧にプレビュー可能なIntelliJのMarkdownプラグイン - たけぞう瀕死ブログ
  • GitBucket 3.4をリリースしました - たけぞう瀕死ブログ

    Scalaで実装されたオープンソースのGitHubクローン、GitBucket 3.4をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/3.4 プラグインAPIの改善 プラグインクラスで宣言的なプラグイン定義ができるようになりました。 class Plugin extends gitbucket.core.plugin.Plugin { override val pluginId: String = "gist" override val pluginName: String = "Gist Plugin" override val description: String = "Provides Gist feature on GitBucket." override val versions: List[Versio

    GitBucket 3.4をリリースしました - たけぞう瀕死ブログ
  • Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ

    Scalaをどうやって学ぶのがいいのか?ということはScalaを使い始めた数年前からずっと考えています。よく「Scalaは難しい」と言われますが、 どこが難しいのか? なぜ難しいのか? ということを、これまで書籍や雑誌記事、ハンズオンなど入門用のコンテンツを作ってきた経験を踏まえて整理してみました。 まず、Scalaが難しいといわれる理由のひとつに学ばなくてはならないものが多すぎるという点があげられます。Scalaはオブジェクト指向言語ですが、関数型言語の特徴的な機能を取り入れているため、きちんと理解するには両方の言語のイディオムを学ぶ必要があるためです。 ただ、Scala自体は必ずしも関数型言語の知識がなくても使えるように設計されています。最初はBetter Javaとして一般的な手続き型オブジェクト指向言語の延長として使い始めることができ、Scalaの特徴的な機能に触れていくことで少し

    Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ
  • GitBucket 3.3をリリースしました - たけぞう瀕死ブログ

    Scalaで実装されたオープンソースのGitHubクローン、GitBucket 3.3をリリースしました。 https://github.com/takezoe/gitbucket/releases/tag/3.3 今回はリポジトリビューアに様々な新機能が追加されています。これらのほとんどは@nazokingさんにプルリクエストしていただいたものです。いつもありがとうございます。 画像の差分表示 画像ファルに対してリッチな差分表示を行えるようになりました。 ファイル検索 リポジトリビューアでファイルのインクリメンタル検索を行えるようになりました。GitHub同様、tでのキーボードショートカットも有効です。 Blameの表示 ソースビューアでBlameを表示できるようになりました。 この他にも、バグ修正に加え、以下のような改善を行っています。 ユーザの削除時にユーザのデータやリポジトリを削除

    GitBucket 3.3をリリースしました - たけぞう瀕死ブログ
  • これだけは覚えておきたいIntelliJのショートカット - たけぞう瀕死ブログ

    Scalaのコードを書くのにIntelliJを使っています。もともとEclipseユーザだったので最初はEclipseマップをカスタマイズしたキーバインドを使っていたのですが、Macへの移行を機に限界を感じ、デフォルトのショートカットを覚えることにしました。 とはいえ、control+space(補完)や、alt+enter(Eclipseのクイックフィックスみたいなもの)を除くと日常的に使っているショートカットは以下のように10個にも満たないですw ショートカット説明 command + B宣言を開く command + Oクラスを開く command + shift + Oファイルを開く command + shift + Fファイル検索 alt + F7使用箇所を検索 alt + command + B実装を検索 F1クイックドキュメント command + F12クイックアウトライ

    これだけは覚えておきたいIntelliJのショートカット - たけぞう瀕死ブログ
  • Elasticsearchへの接続方式 - たけぞう瀕死ブログ

    Elasticsearchへのアクセスにはいくつかの方式があり、それぞれにメリット・デメリットがあるようです。Elasticsearchのドキュメントを参考にJavaプログラムからの接続方法とそれぞれの特徴を調べてみました。 Transport Client いわゆる通常のクライアント方式で、同時接続数が多い場合、接続・切断を繰り返す場合はこちらが有利。Elasticsearchを使って検索を行うアプリケーションなど、一般的な用途であればNode Clientよりこちらのほうがよさそうです。 // on startup Client client = new TransportClient() .addTransportAddress(new InetSocketTransportAddress("host1", 9300)) .addTransportAddress(new InetSo

    Elasticsearchへの接続方式 - たけぞう瀕死ブログ
  • Reactive Streamsとは? - たけぞう瀕死ブログ

    Reactive Streamsというのはノンブロッキングなback pressure可能な非同期ストリーム処理の標準的な仕様を提供しようというもので、実装としてはAkka Streams、RxJavaReactor Composable、Ratpackなどがあります。 Reactive StreamsについてはAkkaのコミッタであるKonrad Malawskiさんの以下のスライドがとてもわかりやすいです。 2014 akka-streams-tokyo-japanese from Konrad Malawski ストリーム処理(というか非同期メッセージング全般に言えることですが)では受信側の処理能力を超えるデータを送信し続けるといずれキャパシティを超えてオーバーフローが発生してしまうため、送信側に比べて受信側の処理能力が低い場合は送信側が手加減してデータを送信する必要があります。な

    Reactive Streamsとは? - たけぞう瀕死ブログ
  • イマドキのIDE事情 第169回 Github製の次世代テキストエディタAtomをチェック!(1) - たけぞう瀕死ブログ

    10ヶ月ぶりにマイナビニュースさんでのIDE連載を再開しました。今回はGithub製の次世代テキストエディタAtomを紹介してみました。 http://news.mynavi.jp/column/ide/169/ Windows/Mac両方で使えるグラフィカルなテキストエディタというとSublime Text2が人気を集めていましたが、最近は仕事でもプライベートでもAtomを使っています。 標準状態でもそこそこ普通に使え(日語の折り返しが微妙という問題点はありますが)、プラグインの導入も容易という点がSublime Text2との大きな違いかなと思います。また、オープンソースであるという点もSublime Text2にはないメリットですし、パッケージ(プラグイン)も簡単なものであればサクッと作ることができますし、このあたりの敷居もSublime Text2と比べると低いのではないでしょう

    イマドキのIDE事情 第169回 Github製の次世代テキストエディタAtomをチェック!(1) - たけぞう瀕死ブログ
  • サーバ/インフラエンジニア養成読本 ログ収集〜可視化編 - たけぞう瀕死ブログ

    なんでかわかりませんが技術評論社さんから送っていただきました。ありがとうございます。 サーバ/インフラエンジニア養成読 ログ収集~可視化編 [現場主導のデータ分析環境を構築!] (Software Design plus) 作者: 鈴木健太,吉田健太郎,大谷純,道井俊介出版社/メーカー: 技術評論社発売日: 2014/08/08メディア: 大型この商品を含むブログ (1件) を見る 今、日のログ収集〜可視化業界で最も熱いFluentd、Elasticsearch、Kibanaのゴールデントリオが一冊で押えられるお得な一冊だと思います。どのプロダクトについても導入からある程度実践的なところまでカバーされていて、名前は聞いたことあるけど実際に触ったことはない、もしくは多少触ったことがある程度の方にピッタリの内容だと思います。 かくいう自分もElasticsearchはそこそこ触っています

  • Githubでカンバンが使えるようになるZenHubが素晴らしすぎる - たけぞう瀕死ブログ

    GithubのIssueはワークフロー制御ができない、優先度順でソートできないなど、仕事で使うにはやや機能が貧弱なところです(個人的にはそのシンプルなところがOSSプロジェクトで使うのにはあっていると思いますが)。特にIssueだけを見ているとプロジェクト全体の状況がわかりにくいというのはよく言われるところです。そこで同僚に教えてもらったのがZenHubというサービスです。 日語の記事もありました。この記事を読めばZenHubがどんなものかは大体わかると思います。 http://blog.isao.co.jp/post/87265630773/github-issue-zenhub 今までもGithubのIssueをカンバン化するツールやサービスはあったのですが、ZenHubが面白いのはChromeエクステンションとして提供することで、あたかもGithubの1機能であるかのようにカンバン

    Githubでカンバンが使えるようになるZenHubが素晴らしすぎる - たけぞう瀕死ブログ