タグ

ブックマーク / blog.64p.org (5)

  • orelang を Java で実装してみた - tokuhirom's blog

    http://qiita.com/shuetsu@github/items/ac21e597265d6bb906dc わりとよくある JSON ベースの lisp っぽいインタープリタの実装ですが、コードを見ていてもよくわからなかったので自分で実装しなおしてみました。 package com.example; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; import com.fasterxml.jackson.databind.ObjectMapper; public class OreLang { HashMap<String, Object> vars = new HashMap<>(); private

    nobeans
    nobeans 2016/09/30
    宗教上の理由によりGroovyじゃないと理解できないのでGroovy化してみた。なるほど。 https://gist.github.com/nobeans/c16a89a10d0abc30f357b07d8ecbb795
  • Server::Starter から簡単に Java プロセスを起動できるようになった - tokuhirom's blog

    JVM には inetd から起動するときのために、file descriptor 0 をソケットとして開く機能がついている。Jetty 等もこの機能に対応しているので、簡単に利用できる。 file descriptor を 0 に固定出来る機能が Server::Starter にあればよかろうということで、以下のような指定で起動できるように実装した。 $ start_server --port=20000=0 java EchoServer この機能により、Java も LL と同様な形態でアプリケーションを運用することが可能となる。 Java では昔から ClassLoader 機構を利用することによりホットデプロイを行うことが可能だが、リソースの解放が漏れるなど開発時の難しさが指摘されている。 Server::Starter 方式では JVM のプロセスごと死ぬので、綺麗な状態で都

  • Java の AST を解析できる javaparser がアツい!!! - tokuhirom's blog

    https://github.com/javaparser/javaparser javaparser は Java をパースして AST にしてくれるライブラリである。 この手のライブラリは数多あるのだが、ほとんどのものが Java 1.5 ぐらいでメンテナンスが止まっている。 実際このライブラリもメンテナンスが止まっていたのだが、Java 1.8 対応版とし開発が再開されたものだ。 このライブラリはパーサーライブラリであるから、文字列をパースして AST を構築してくれるというものになっている。 実際どのような AST が構築されるのかが気になるところなので、構築された AST をダンプできるツールを groovy で書いた。 #!/usr/bin/env groovy @Grab('com.github.javaparser:javaparser-core:2.1.0') impor

    nobeans
    nobeans 2015/05/21
    javafmtコマンド実現の機運高まる/ s/args[1]/args[0]/
  • gradle で maven central にあげる - tokuhirom's blog

    ちょっと前に gradle で maven central にあげようとしたら極めて困難な印象で挫折していたのだが、最近試したらすんなりといったのでご報告申し上げます。 単に gradle が難しいというよりは、maven central 等の toolchain 的な部分に関する知識がだいたいわかったので、すんなりわかったという点も多いんですが。 まず、gradle に maven central にアップロードする方法は、実は公式サイトにまとめられています。 http://central.sonatype.org/pages/gradle.html的にはこの通りに設定すればいいのだが、このドキュメント、gnupg とかについてはすでに設定済みだ、というような前提に基づいているので注意が必要。 アカウントの取得等についてはモリスさんのエントリを読めばよろしい。 http://tag

    nobeans
    nobeans 2015/04/20
    travisでキャッシュ使うにはこうしたら良いのか。なるほど。
  • なぜmemcachedをセッション管理用に使うのか

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 1