タグ

2015年8月23日のブックマーク (15件)

  • WebExtensionsが正式発表 XUL/XPCOMベースのアドオンは将来的に非推奨へ(追記あり) - Mozilla Flux

    WebExtensionsのコンセプト MozillaがThe Future of Developing Firefox Add-ons | Mozilla Add-ons Blog(和訳)において、新しい拡張機能APIセットのWebExtensionsを正式に発表した。前記事で紹介したとおり、Blink互換のAPIが採用されている。 発表によれば、WebExtensionsの名称には、アドオン開発をWeb開発に近づけたいというMozillaの思いが込められているらしい。挙動が標準仕様化されることで、同じコードが複数のブラウザ上で動作するとともに、複数のベンダーから幅広くドキュメントが提供される状態。Mozillaは、そうしたWeb開発の理想状態をアドオン開発においても実現することを目指す。上記発表によれば、Chrome/Opera向けの拡張機能や、おそらく将来的にはMicrosoft E

    WebExtensionsが正式発表 XUL/XPCOMベースのアドオンは将来的に非推奨へ(追記あり) - Mozilla Flux
  • Werckerの仕組み,独自のboxとstepのつくりかた

    Werckerの仕組み,独自のboxとstepのつくりかた WerckerはTravisCIやDrone.ioのようなCI-as-a-Serviceのひとつ.GitHubへのコードのPushをフックしてアプリケーションのテスト,ビルド,デプロイを行うことができる. Werckerは,TravisCIのように,レポジトリのルートにwercker.ymlを準備し,そこに記述された実行環境と実行コマンドをもとにテスト/ビルドを走らせる. Werckerには,その実行環境をbox,実行コマンド(の集合)をstepとして自作し,あらかじめWercker Directoryに登録しておくことで,様々なテストからそれらを呼び出して使うという仕組みがある.実際,Werkcerで標準とされているboxやstepも同様の仕組みで作成されている(wercker · GitHub). 今回,WerkcerでのGo

  • Build cross-platform desktop apps with JavaScript, HTML, and CSS | Electron

    Web TechnologiesElectron embeds Chromium and Node.js to enable web developers to create desktop applications. Cross PlatformCompatible with macOS, Windows, and Linux, Electron apps run on three platforms across all supported architectures.

  • Consul の情報を Chef / Ohai から使う ohai-plugin-consul を作ったのとその周辺の話 - 酒日記 はてな支店

    先日とあるサービスに Consul を入れました。 内部 DNS と、たとえば nginx からアプリケーションサーバに振り分ける定義をするために service を使用しています。 そこで使うために、ohai-plugin-consul を書きました。Github にあります。 fujiwara/ohai-plugin-consul · GitHub Ohai の version 6 と 7 で plugin の interface が変わっており、ohai-plugin-consul は Ohai 7 向けなので、Chefから使う場合は Chef-11.12.0 以上、または 11.10.4.ohai7.0 が必要です。 【参考】 Ohai, new Ohai plugins! - O'Reilly Radar 使用方法 ohai コマンドから使う場合は -d で plugin (co

    Consul の情報を Chef / Ohai から使う ohai-plugin-consul を作ったのとその周辺の話 - 酒日記 はてな支店
  • FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita

    前回の記事では、ReaderモナドやFreeモナドを使ってDependency Injectionを行うための小さなDSLを組み立てた。今回の記事では、まず前回組み立てたDSLの課題であるExpression Problemと、それを解決するための機能Injectと、さらにはTagless Finalを用いたDSLについて述べる。 この記事は前回の記事の知識を前提としているので、分からない言葉などがある場合はまず前回の記事を参照して欲しい。また、文章について不明なことや意図が分かりにくい部分があれば気軽に指摘して欲しい。 注意: 記事の中にあるコードは読みやすさのためにimportなどを省略しているので、このままでは動かない。動かしたい方はGithubのリポジトリを使うとよい。 Expression Problem Expression Problemとは、こちらのサイトを引用すると次のよ

    FreeモナドとTagless FinalによるDependency InjectionのためのDSL - Qiita
  • Dependency InjectionとDSL

    Dead-Simple Dependency Injection in Scalaという発表で、Dependency Injection(依存の注入)をReaderモナドなどを用いて行うという技術があった。下記がその発表である。 この記事ではまず、Dependency Injectionについての説明と、Readerモナドについての説明を行い、次にReaderモナドを使ったDependency Injectionについて述べて、Freeモナドを用いて小さなDSLを作るアプローチを紹介する。 この記事はモナドやDependency Injectionなどに関する前提知識がなくてもある程度読めるように意図しているが、Scalaの文法的な知識を前提としている。また、もし説明が不足している点や文章の意図が分かりにくい部分があれば、気軽にコメントなどで指摘して欲しい。 注意: 記事の中にあるコードは

    Dependency InjectionとDSL
  • 【Scala】foldとfoldLeftの違いを知る | DevelopersIO

    はじめに こんばんは! 突然ですが、 Scala における fold と foldLeft はほとんど同じものだ!と思っていませんか? また、Scala の Option#fold メソッドを使って、何か不自然に思ったことはありませんか? 先に結論を述べますと、 fold メソッドと foldLeft メソッドは異なります(もちろん foldRight とも違いますよ!)。 「ちょっとだけ挙動に差が…」的な違いではなく、根的に違います。 たまたま、 List#fold と List#foldLeft が(例外的に)似たような定義で、かつ(例外的に)似たような挙動をするため、誤った通説(全てのfold≒foldLeft)があったりなかったりするようです。少なくとも僕は、Scala を書くようになってからある一定の期間、全ての fold と foldLeft は同じものだと考えていました。

    【Scala】foldとfoldLeftの違いを知る | DevelopersIO
  • GitHub - mdedetrich/soda-time: Scala/Scala.js port of JodaTime to Scala/Scala.js

    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 - mdedetrich/soda-time: Scala/Scala.js port of JodaTime to Scala/Scala.js
  • 関数型SCALA型 クラス編 - halcat0x15a

  • Sbt職人のススメ

    The document provides an overview of using sbt (Scala Build Tool) including: - Installing sbt and creating a basic project structure - Common sbt commands like compile, run, and test - Defining settings and tasks in build.sbt - Referencing settings from tasks and getting task results - Using scopes to define values for specific projects or configurations - Plugins that add additional functionality

    Sbt職人のススメ
  • Pants: A fast, scalable build system

    Pants v1 is no longer maintained. See here for the Pants v2 documentation. Getting Started Installing Pants Setting Up Pants Tutorial Common Tasks Pants for Organizations Pants Basics Why Use Pants? Pants Concepts BUILD files Target Addresses Third-Party Dependencies Pants Options Invoking Pants Reporting Server IDE Support JVM Support JVM Projects with Pants JVM Dependency Management Scala Suppor

  • sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt - xuwei-k's blog

    sbtを使ったことがある人なら、たいていSettingKeyやTaskKeyという言葉を聞いたことがあるはずです。もし聞いたことがなくても、1度でもsbtを使ったことがあるなら、すでに知らないうちにそれらに触れているはずでしょう。 それらSettingKeyやTaskKeyを含んだsbtの内部DSLについては、その独特さゆえに、好みが分かれることが多いと思います。 そもそも なぜSettingKeyやTaskKeyという概念が必要なのか? それらは一体何なのか? ということに関して、少し別の視点から考察や解説をしてみることによって、sbt自体の理解の手助けとなることを目的として、このエントリを書いてみます。 なんだか、少しばかり堅苦しい始まり(?)にしてみましたが、つまり 「sbtのKeyは有向非巡回グラフにおけるNodeであり、build.sbtは有向非巡回グラフを組み立てるDSLである

    sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt - xuwei-k's blog
  • Scalaのimplicit - tkawachi Blog

    Scala の implicit のお勉強メモ。 なぜ implicit を使いたくなるか? コード片を見ただけではわからなくなるので、暗黙的な記述はあまり使わない方がいいんじゃないかと個人的に思うのだけど。 それでも便利な使い道があるから使われているみたい。 今自分が知っているところで次のパターンがあるみたい。 他の便利な使い方もきっとあるんじゃなかろうか。 既存のクラスを変更せずにメソッドを追加したいとき (pimp my library pattern)。 implicit な関数, implicit なクラスを使う。 型パラメータ情報を実行時に使いたいとき。implicit パラメータをつかう。 共通のインタフェースを持たないクラス群に、共通のインタフェースをあとづけするとき (CONCEPT pattern)。implicit パラメータをつかう。 pimp my library

  • bullet-scala: N+1クエリ問題を回避する - 貳佰伍拾陸夜日記

    Scala関西 Summit 2015での発表で触れていたN+1クエリ問題をなんとかするためのライブラリを公開した. 発表は以下のもので, ここでは「関係モナド」という名前で紹介していたけれど, これは口頭でも説明したように便宜上てきとーにつけた名前であって, とくにそういう名前のよく知られたモナドがあるというわけでもなければ, そもそもモナドであるかどうかはあまり質的ではない. この発表のあとに, Rails (Active Record)でのbulletのようにN+1問題の検出をScalaでやる方法はないだろうか, と言っている人がいたので, そういうものを探していて辿りつけるとよかろうということで, bullet-scalaという名前にした. もちろんN+1問題の検出のためのライブラリというわけではないし, 動的に検出するのではなく原理的に問題が発生しないようにするものなので, 思

    bullet-scala: N+1クエリ問題を回避する - 貳佰伍拾陸夜日記
  • リアクティブ宣言

    異なる分野で活動する組織が、同じようなソフトウェア構築のパターンを独立に発見している。このようなシステムはより堅牢で、より耐障害性があり、より柔軟で、より最新の要求を反映しやすくなっている。 こうした変化が起きているのは、近年、アプリケーションの要求が著しく変化してきているからだ。ほんの数年前、巨大アプリケーションは数十のサーバから構成され、数秒の応答時間と数時間のオフラインメンテナンスを許容し、データは数ギガバイトだった。今日のアプリケーションは、モバイル機器から数千のマルチコアプロセッサによって動作するクラウドベースのクラスタまで、あらゆる機器上に配備される。ユーザはミリ秒の応答時間と 100% の稼働率を期待する。データはペタバイト単位で測定される。昨日のソフトウェアアーキテクチャは、今日の要求を全く満たしていない。 求められているのは、システムアーキテクチャに対する明快なアプローチ