mike_neckのブックマーク (304)

  • Project LoomでJavaでの継続(Continuation)を試す - きしだのHatena

    Project Loomは、Javaで継続(Continuation)やFiber(軽量スレッド)、末尾呼び出し最適化なんかを実現するプロジェクトです。 OpenJDK: Loom そのLoom、ながいことどうやって動かすかもよくわからない感じだったのが、先日のJVMLSにあわせてプロトタイプが公開されてました。 http://mail.openjdk.java.net/pipermail/loom-dev/2018-July/000061.html ビルド方法はこんな感じです。 $ hg clone http://hg.openjdk.java.net/loom/loom $ cd loom $ hg update -r fibers $ sh configure $ make imagesたりないパッケージはconfigureのときに教えてくれるので、それに従って入れていけばいいです。

    Project LoomでJavaでの継続(Continuation)を試す - きしだのHatena
    mike_neck
    mike_neck 2019/02/12
  • Practical Scheme

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐

    Practical Scheme
    mike_neck
    mike_neck 2019/02/11
  • Elastic Stackで簡単!Dockerコンテナ監視ダッシュボード作成 - Taste of Tech Topics

    こんにちは、CI/CDツールなどを活用し、DevOps推進活動などに携わっている横山です。 記事は、Docker Advent Calendar 2018 - Qiitaの20日目です。 はじめに Elastic Stackを使うと、簡単にDockerコンテナの監視ダッシュボードが作成できるので、今回はその紹介をしたいと思います。 きっかけとしては、「開発環境で立ち上げている複数コンテナの問題調査を楽にしたい」というのがあります。最近、開発環境に複数のコンテナを立ち上げて開発メンバーに提供していますが、開発メンバーから「重たいので環境を確認してほしい」といった声が上がってきます。その際、どのサーバのどのコンテナに問題が発生しているのか確認したいですが、その都度サーバに入って、docker statsなどのコマンドで確認するのはやや面倒です。 そこで、コンテナの監視ダッシュボードを作って、

    Elastic Stackで簡単!Dockerコンテナ監視ダッシュボード作成 - Taste of Tech Topics
    mike_neck
    mike_neck 2018/12/22
  • API Gatewayから、AWS Lambdaを使わずにDynamoDBにアクセスする - Taste of Tech Topics

    こんにちは、ツカノ(@snuffkin)です。 クラウド上にアプリケーションを構築することがアドバンテージとなり、AWSを利用したサーバレスな事例を多く目にするようになりました。 例えば、DBアクセスする場合などは、EC2のようにサーバ管理が必要なサービスを使わずに構築できるようになりました。 DynamoDBにアクセスする例は、様々な方がWeb上に掲載していますが、 API GatewayAWS Lambda → DynamoDB という流れで呼び出している例を多く目にします。 こういった例の中には、AWS Lambdaでは特に他の処理をせず、単にDynamoDBAPIを呼び出しているだけのものもあります。 実はAPI Gatewayにはマッピングテンプレートという機能があり、httpボディのjsonフォーマットを変換して、AWSの様々なサービスと連携できます。 docs.aws

    mike_neck
    mike_neck 2018/11/03
  • GroovyでFizzBuzzやってみた

    mike_neck
    mike_neck 2018/10/22
  • 開発中の機能を小分けにして本番環境にどんどん出すためには - hitode909の日記

    ふだんの開発では,稼働中のシステムに影響を与えないように開発中の新機能や新システムを共存させながらちょっとずつデプロイして進めている.どんな事を考えてやっているか記しておきます. フィーチャートグルを使う すべてのコードが番環境に入っているけど無効化されている状態で開発を進める ブランチをたくさん作るのに対する考え方で,フラグを有効にすると開発中の機能を使える スタッフなら有効にしたり,フィーチャーのオンオフを選べる画面を作ってたこともある フィーチャーブランチを利用した開発はチームを継続的インテグレーションから遠ざける – ゆびてく FeatureToggle 完成したらフィーチャートグルに関係なく全員に有効状態にして完成 フロントエンドの施策で,実際のデータやインフラ構成でどれくらいスピードが出るかわからないときに,ひとまずフラグをオンにすると動く形でデプロイしたりとか レイヤの下の

    開発中の機能を小分けにして本番環境にどんどん出すためには - hitode909の日記
    mike_neck
    mike_neck 2018/09/25
  • Gonzo's Quest Slot Oyna | Nasıl Oynanır? | Taktikleri Nelerdir?

    Gonzo’s Quest Slot Oyna | Nasıl Oynanır? | Taktikleri Nelerdir? Netent slot seçeneklerine girdiğimizde bir dizi güzel oyun bizi karşılıyor. Bunlar içinde ise en iyi türlerden birinin Gonzo’s oyunu olduğu bilinir. Gonzo’s Quest slot 5 makaraya sahip ve bunu 20 ödeme hattıyla iyi bir kazanç seviyesinde tutar. Çığ özelliği sayesinde oyun bonus içerisinde 3x’ten başlattığı çarpanla 37.500x kazanca kad

    Gonzo's Quest Slot Oyna | Nasıl Oynanır? | Taktikleri Nelerdir?
    mike_neck
    mike_neck 2018/08/23
  • Why we chose Kafka for the Trello socket architecture - Atlassian Engineering

    Trello has been using RabbitMQ for the last three years. Prior to RabbitMQ, we were relying on a Redis Pub-Sub implementation. Recently, due to RabbitMQ's questionable behavior when network partitions occur, we've made the switch over to Kafka. This blog post goes into depth on our RabbitMQ implementation, why we chose Kafka, and the Kafka-based architecture we ended up with. Current state of the

    mike_neck
    mike_neck 2018/08/22
  • 見積もりについて勉強したことを色々スライドにしてみた - だいたいよくわからないブログ

    見積もりについて思ってることとかをまとめてみました。 マネージメントの実戦経験というよりソフトウェア開発手法について学んだ結果のアウトプットみたいなノリでみていただければ幸いです。 社内勉強会で話したので会社のスライド使ってますが、会社が今こうというわけではなく一般的な話にとどめています。(あとstudy_lean_agileっていう名前の勉強会なんですが、このスライドはリーンもアジャイルもあまり意識していません) 前半は自分なりの考え方、後半は具体的にはこうしたらいいんじゃないかと思っていることという風に分けています。 誰のための見積もり・何のための見積もり part1 from matsu_chara Matsubayashi www.slideshare.net 誰のための見積もり・何のための見積もり part2 from matsu_chara Matsubayashi www.s

    見積もりについて勉強したことを色々スライドにしてみた - だいたいよくわからないブログ
    mike_neck
    mike_neck 2018/08/14
  • イベント ソーシング パターン - Azure Architecture Center

    ドメインに、データの現在の状態だけを格納する代わりに、追加専用ストアを使用して、そのデータに対して実行された一連のすべてのアクションを記録します。 ストアは、レコードのシステムとして機能し、ドメイン オブジェクトを具体化するために使用できます。 これにより、データ モデルとビジネス ドメインの同期の必要性を避けることで、パフォーマンス、スケーラビリティ、および応答性を向上させながら、複合ドメインでのタスクを簡略化できます。 さらに、トランザクション データの整合性を提供し、補正アクションを有効にできる完全な監査証跡と履歴を保持することもできます。 コンテキストと問題 ほとんどのアプリケーションはデータを操作します。またアプリケーションの一般的なアプローチは、ユーザーがデータを操作したら、データを更新して、データの最新の状態を維持することです。 たとえば、従来の作成、読み取り、更新、および削

    イベント ソーシング パターン - Azure Architecture Center
    mike_neck
    mike_neck 2018/07/13
  • JVM Internals

    This article explains the internal architecture of the Java Virtual Machine (JVM). The following diagram show the key internal components of a typical JVM that conforms to The Java Virtual Machine Specification Java SE 7 Edition. The components shown on this diagram are each explained below in two sections. First section covers the components that are created for each thread and the second section

    JVM Internals
    mike_neck
    mike_neck 2018/07/04
  • 安価なGKE(k8s)クラスタを作って趣味開発に活用する - えいのうにっき

    tl;dr GKEでk8s(kubernetes)クラスタを作成すると、各ノードはGCEインスタンスとして起動する GCEインスタンスには preemptible モードが指定でき、これはGKEクラスタとして起動するノードに対しても指定可能 GCEのf1-micro無料枠の適用と合わせて、この運用費用は約 $7.68/month 動機 GKEクラスタを維持する最安料金ていくらだろー— a-know | Daisuke Inoue (@a_know) 2018年6月11日 趣味開発用途として手軽にあれこれ試すことができて、それでいてできるだけ安くあがるコンテナオーケストレーション環境(k8s環境)がほしい。 k8sそのものを運用したい・そのノウハウを学びたいというわけではないのでマネージドサービスがいい 「k8s上でアプリケーション・サービスを運用する経験」がしたい その上で、できるだけ安く

    安価なGKE(k8s)クラスタを作って趣味開発に活用する - えいのうにっき
    mike_neck
    mike_neck 2018/06/18
  • Learn & Master ⚔️ the Basics of RxSwift in 10 Minutes

    Every programmer should have heard of Rx. Whether it happened at the last developer conference or while reading a fresh blog article like this one 😎. It is almost impossible not to have heard of it, but what exactly is Reactive Programming? Let’s take a look on the Internet: In computing, reactive programming is a programming paradigm oriented around data flows and the propagation of change. This

    Learn & Master ⚔️ the Basics of RxSwift in 10 Minutes
    mike_neck
    mike_neck 2018/06/03
  • Java9 新元号(年号)を追加

    こんにちは。開発ブログ運営担当のktです。 前回の更新からかなり空いてしまいました。 2019年の4月30日で平成が終わって、5月1日から新しい元号に変わりますね。 官公庁のシステムや帳票があるシステムでは、元号付きの和暦を表示するシステムも多いんじゃないでしょうか。 JavaではJava6から元号に対応したクラスが追加されていますし、 Java8ではJapaneseDateクラスを利用しての元号表示も出来るようになっています。 そういった機能を利用しているシステムでは、新元号に対応したアップデートを適用すればOKです。 ただし、Javaのリリースサイクルも変更されましたし、アップデートが新元号の開始日に間に合うかどうかはまだ不明です。 そこで今回は自前で新元号に対応する方法を紹介します。 前提 今回試しているのはJava9です。 ネットで検索するとcalendars.properties

    Java9 新元号(年号)を追加
    mike_neck
    mike_neck 2018/05/31
  • 詳説GraalVM(1) イントロダクション - Fight the Future

    GraalVMが1.0.0 RC1を出し、公式サイトを公開しました! http://www.graalvm.org/ 日技術ブログメディアPublickeyさんも取り上げておられます。 www.publickey1.jp そのこともあって、Graalで検索しこのブログへたどり着いた方も多かったです。私は1年ほど前、0.23の頃からGraalVMとGraal(両者の違いは後述)を触ってきました(単に触っているだけの1ファンです)。おそらく熱狂的なファンの方で、JavaOneではGraalとあるものは全セッション入りましたし、YouTubeにある世界の技術カンファレンス動画でGraalに関するものはおそらくすべて見ています。 なので自己満足がてらGraalVMについて書いていきます。 GraalVMって何なの? 端的に言うと"Polyglot VM"です。Polyglotとは多言語を意味し

    詳説GraalVM(1) イントロダクション - Fight the Future
    mike_neck
    mike_neck 2018/05/28
  • Javaのスレッドで発生したキャッチされてない例外をログに出力する - 水まんじゅう2

    概要 Thread#setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler) を呼び出すことでアプリケーション全体のログ設定を変更することができる。 上の設定をThreadGroupで上書きすることができる。ただし、ThreadGroup自体がUncaughtExceptionHandlerを継承しているため、ThreadGroupのサブクラスを自前で作成する必要がある。 上の設定をThread#setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler)を呼び出すことで上書きすることができる。 説明 Javaのスレッドの実行では、通常、エラーハンドリングは自前で行うのですが、キャッチされないRuntimeExceptionの処理を忘れてしまったりするこ

    Javaのスレッドで発生したキャッチされてない例外をログに出力する - 水まんじゅう2
    mike_neck
    mike_neck 2018/05/28
  • JJUG CCC 2018: Spring Cloud -> Docker -> Kubernetes

    We (@daisuke_yoshimo and myself) presented our lessons learned about Spring Cloud, Docker and Kubernetes while designing, implementing and testing Activiti Cloud. [gallery ids="4320,4321,4322,4323,4324,4325" type="rectangular" orderby="rand"] <pictures coming soon> Here are the slides and the source code repositories to run the demo that we showed during the presentation which included Jenkins X a

    JJUG CCC 2018: Spring Cloud -> Docker -> Kubernetes
    mike_neck
    mike_neck 2018/05/27
  • Quasar

    Overview Quasar is a library that provides high-performance lightweight threads, Go-like channels, Erlang-like actors, and other asynchronous programming tools for Java and Kotlin. A good introduction to Quasar can be found in the blog post Erlang (and Go) in Clojure (and Java), Lightweight Threads, Channels and Actors for the JVM. Quasar is developed by Parallel Universe and released as free soft

    Quasar
    mike_neck
    mike_neck 2018/05/18
  • デスマーチが起きる理由 - 3つの指標

    鳥のさえずり声を聞いて、私は悪態を吐いた。今日の早朝に予定されていたミーティングのことをすっかり忘れていたのだ。 まったく、最悪の朝だ。着替えている間に、電話も鳴った。「高い金を払ってコンサルタントを雇った極めて重要なミーティングだ」と念を押されていたというのに。 それもこれも昨日のバグのせいだ。睡眠時間も、開発スキルも、人員も、私の現場には何もかもが足りていない。 それにも関らず、理解の足りない上司は「テスト工程を削ってでも早く納品しろ」とプレッシャーを与えてくる。 あの馬鹿どもめ。一体何を考えているんだ? スーツに着替え終わった私は、冷蔵庫の缶コーヒーで空腹を誤魔化すと、バイクに跨った。通勤時間が5分なのが、せめてもの救いだ。 「遅れてすまない」 そう言って会議室に入ると、奇妙なことに気がついた。教室のように整然と並んでいたはずの机が、即席の半円形に並べ替えられていた。 何より、ホワイ

    デスマーチが起きる理由 - 3つの指標
    mike_neck
    mike_neck 2018/05/08
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
    mike_neck
    mike_neck 2018/04/28