nano秒スリープさせたいと思ったわけです。 2021/04/29

 javaです。

nano秒スリープさせたいと思ったわけです。

それで、スレッドのsleepにnanoとあったので、おっと思ったのですが、javadocを読むと「nanos - 0-999999追加でスリープするナノ秒」とあって、追加でなのでした。

 


public static void sleep(long millis,
                         int nanos)
                  throws InterruptedException



sleep - How to suspend a java thread for a small period of time, like 100 nanoseconds? - Stack Overflow
 

アイデアとしてはシンプルで、whileで回して止まったようにするというもの

コード書いて試してみました。cpuとかの仕組みがわかっとらんので、僕もあやういなー

https://github.com/ugonakawaka/pub/blob/master/java/aexample/src/a001_nano_sleep/Test01.java

 

そんなとこ

 

 

 

[blogger]編集(quick edit)ボタンを復活させたい 2021/04/17

 bloggerです。

いろいろ理由はわかってないのですが、いつの頃から、編集(quick edit)ボタンがみえなくなってそれをを復活させたいというのが、動機となります。

 

 いまのところ、ログインしたユーザ(自分)がページを開いたときに編集(quick edit)ボタンがみえることはできていないです。(たぶんできないのかもしれない...)

<b:with value='data:view.isPage ? &quot;page&quot; : &quot;post&quot;' var='type'>
<a expr:href='&quot;https://www.blogger.com/&quot; + data:type + &quot;-edit.g?blogID=&quot; + data:blog.blogId + &quot;&amp;&quot; + data:type + &quot;ID=&quot; + data:post.id + &quot;&amp;from=pencil&quot;' expr:title='data:post.title' rel='nofollow'>XXXXXX</a>
</b:with>

 

参考

[blogger]公開日と更新日が違うときだけ、更新日を表示したいです。 2021/04/04
2021/04/09

 bloggerです。

ようやく記事の更新日付を表示できるようになったので、いろいろ工夫中です。

公開日と更新日が違うときだけ、更新日を表示したいです。


<!-- 公開更新日付 -->
<b style='clear:both;float:right;font-size: 13px;line-height: 13px;'>
   <b:eval expr='format (data:post.date, &quot;YYYY/MM/dd &quot;)'/>
 <br/>
 <b:if cond='data:post.date != data:post.lastUpdated'>
 <b:eval expr='format (data:post.lastUpdated, &quot;YYYY/MM/dd &quot;)'/>
 </b:if>
</b>

参考

https://spoontofork.blogspot.com/2018/06/blogger-show-last-modified-date.html 

https://indoor-days.blogspot.com/2019/08/QooQ.Update-date.html 

ラムダで再帰だって!? 2021/04/04

 java8です。

数年に一回はjavaのラムダで再帰をと思い立ち調べて..あああとなるわけです。

 

モチベーション

ディレクトリにマーカーファイル(目じるしファイル)をおいておきそこの場所をルートまで辿って調べたい。なかったらnullを返す。

 

コード 

再帰のためのお助け定義


public class Recursive<I> {
public I func;
}
  

 

	final Recursive<Function<Path, Path>> recursive = new Recursive<>();
	recursive.func = (p) -> {
		Path path2 = p.resolve(MARKER_FILE);
		if (!Files.exists(path2)) {
			Path parentPath = p.getParent();
			if (parentPath == null)
				return null;
			return recursive.func.apply(parentPath);
		}
		return p;
	};
	final Path fpath = recursive.func.apply(path);

 

 

 参考

https://stackoverflow.com/questions/19429667/implement-recursive-lambda-function-using-java-8

 

パス(java.nio.file.Path)の結合 2021/04/04

 java7です。パス(java.nio.file.Path)の結合です。

この10年勉強してこなかったつけがどーんと押し寄せている感じがしてます。 

モチベーション

ディレクトリを表現しているパスがあり、ファイル名がわかっていて、それらをひとつのパスで表現したいわけです。 

Fileでしたたら、ペアレントのFileと結合という感じにやっていたなーというところですが、

どうするのか

resolveというメソッドを使うのがよいようです。


参考

https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Path.html

https://docs.oracle.com/cd/E26537_01/tutorial/essential/io/pathOps.html#resolve

java.lang.IllegalArgumentException: Can not set com.google.api.services.blogger.model.Post$Author field com.google.api.services.blogger.model.Post.author to com.google.gson.internal.LinkedTreeMap 2021/03/28
2021/04/04

はじまり

blogger api です。javaです。 json→java objectをやっていて、gson使えばよいのかとやっていて エラーになってしまっていました。
java.lang.IllegalArgumentException: Can not set com.google.api.services.blogger.model.Post$Author field com.google.api.services.blogger.model.Post.author to com.google.gson.internal.LinkedTreeMap

方針変更

gsonを直接使う方法ではなく、com.google.api.client.json.JsonObjectParserを使う方法に変更。 以下、コード
final JsonFactory factory = GsonFactory.getDefaultInstance();
final JsonObjectParser parser = new JsonObjectParser(factory);
final InputStream inputStream = TestGson.class.getResourceAsStream("/list.json");
{
final Post[] posts = parser.parseAndClose(new InputStreamReader(inputStream), Post[].class);
Arrays.asList(posts).forEach(a -> {
System.out.println(a);
});
}

bloggerのレイアウトを変更中 2021/03/21
2021/04/29

記事の更新日を表示したいところから、いろいろ試して数日がたってしまった。 

わかったことをメモすると、version='1'だとだめで、それを変更して保存してもだめ。

それでいったんbloggerの新しいテンプレートに変換して、それから、再度自分のテンプレートを適用してもどらなくなった。。。