基本コマンドメモ
日々の習慣
■ローカルブランチが何だったのか最初に把握
git branch
■まずは何がどうなっているのか現状把握
git status
■まずはリモートをローカルに同期しておく
git fetch
■ローカルにプル
git pull origin <<リモートのブランチ>>
■ぜんぶプル
git pull
■習慣としての現状把握
git status
変更を与える作業
手元の変更を全て破棄
■習慣としての現状把握
git status
■実際に手元の変更を破棄
git checkout .
git clean -f
■改めての 習慣としての現状把握
git status
いつも忘れる diff 引数。「diff -urN」
本当によく忘れるので引数をメモ。
diff -urN dira dirb
open vm tools
Java で JSON 戻しサンプル (GET)
Jersey および Jackson ベースによるシンプルサンプル。
import java.net.URI; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriBuilder; import org.glassfish.jersey.jdkhttp.JdkHttpServerFactory; import org.glassfish.jersey.server.ResourceConfig; import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(final String[] args) { final URI uri = UriBuilder.fromUri("http://localhost/").port(8080).build(); final ResourceConfig config = new ResourceConfig(); config.register(Hello.class); JdkHttpServerFactory.createHttpServer(uri, config); for (;;) { System.out.print('.'); try { Thread.sleep(10000); } catch (InterruptedException e) { } } } @Path("/") public static class Hello { // http://localhost:8080/person?name=Taro&age=54 @Path("person") @GET @Produces(MediaType.APPLICATION_JSON) public Response person(@QueryParam("name") @DefaultValue("TaroYamada") String name, @QueryParam("age") @DefaultValue("17") int age) { Person person = new Person(); { person.age = age; person.name = name; Job job = new Job(); job.title = "leader"; person.jobs.add(job); } try { return Response.ok(new ObjectMapper().writeValueAsString(person), MediaType.APPLICATION_JSON).build(); } catch (Exception ex) { ex.printStackTrace(); } catch (Error ex) { ex.printStackTrace(); } return Response.status(Status.BAD_REQUEST).build(); } } }
色々調べてみましたが、結局のところは自力で Response をハンドリングするのが最も安全で応用力も高いことがわかりました。
フルコード
これを HTML に組み込む際の方法もメモ。無名関数で即時関数する方法も書き方をよく忘れるのでこれも備忘を兼ねます。
<html> <head> <title>Simple innerHTML sample.</title> </head> <body> <h1>Simple innerHTML sample</h1> <div id="targetnode" /> <script type="text/javascript"> (function(){ var newdiv = document.createElement("div"); newdiv.innerHTML = "<p>Hello innerHTML world.</p>"; document.getElementById("targetnode").appendChild(newdiv.firstChild); })(); </script> </body> </html>