Marketにアップロードし、即日公開しました。A500を購入したが、タブレットに合ったIMEが無かったからである。TABがプリインストールされている。Simejiには欠点があった。ランドスケープ時に左右キーが表示されない。日本語入力時には、ほとんどの記号と数字が画面を切り替えないと入力できない。タブレットの画面の大きさを有効利用できない。Androidなので、気に入らないなら入れ換えてしまえばいい。そこで、有料アプリ売り上げNo1を独走しているATOKを試してみた。左右キーも存在し、数字も記号も多くが表示されている。タブレット用に調整しているのだろう。有料アプリである分作り込みが深い。キーの高さを調整できるオプションもあり、とても使いやすい。上下キーが実装されていなかったので、複数行の長文を打つときには不便である。それなら、自分でIMEを作ろう。簡単には作れないので、オープンソースのOpenWnnを改造することにした。ソースをダウンロードし中を見てみたところ、どうしようもないくらいこんがらがっていた。1ヶ月かかっても読めそうにない。改造は諦め、サービス部分とUI部分を1から自作し、日本語変換エンジンのみを借りることにした。それでも色々苦労した。OpenWnnが予測変換重視のエンジンであるため、複雑な仕組みになっていたからだ。(もっとわかりやすい仕組みにしてくれとOpenWnnに言いたい。)日本語変換エンジンをサービスやUIから完全分離した設計にしたので、OpenWnn以外のエンジンにも載せ換えやすいコードになった。今後は、他のエンジンと切り替えられるようにしようと思っている。タブレット」で入力した。自分で作っておいて言うのもなんだが、長文が入力しやすい。2024高校と中学校で時期は違うがここ2~3年で、本格的に学習指導要領にプログラミングの指導が含まれるようになり、教科書にもがっつり記述されるようになった。来年の大学入試共通テストより情報Iが追加され、国公立大学を受けるにはプログラミングは必須となる。それを教える人材である技術・情報の教員の大半は、大学時代にプログラミングを少しやった程度の人が多く、教えなければいけない内容に対して、教えられない人が多数発生している。そのような状態を見越して、ビジネスチャンスと考えた民間会社が様々な教材を作って販売している。多くの教材は、eラーニングスタイルの教材で、Web上でPythonのコードを学べる環境にPythonの実行環境を組み合わせたものが大半である。ライフイズテックレッスンもeラーニングで学べる教材の一つである。ライフイズテックレッスンは、生徒の進捗も簡単に追え、また、理解度チェックワークといった問題も用意されており、実際採用してみると、今後これなしでプログラミングの単元をできないといえるくらい完成度が高い。WEBCAMPなど)なんか存在しない。結局は教材ではなく人が教えているのである。ライフイズテックレッスンを使ってどのように教えるかが重要である。実際に2年ライフイズテックレッスンと使って感じた、効果的な使い方を説明したいと思うが、その前にライフイズテックレッスンの機能を確認しておく。前回の復習や発問等で生徒をレッスンに集中させるための前座コンテンツである。レッスンの終了後にも今日のまとめが入っている。レッスンの進捗は生徒によってさまざまである。レッスン終了後に対して実施し、生徒の理解度を測定する。それぞれの機能の強みを見ていく。生徒全員に話すことになるので、生徒の進捗によっては、まだレッスンが終わっていない場合がある。2020最近、Java(JDK11)環境でHTTP通信しているときに気が付いたのだが、Javaアプリケーションの通信の多くはIPv4で通信している。IPv6対応のサービスに接続してもIPv4通信している。Javaのドキュメントを見ると、IPv6対応をうたっており、通信できないわけではない。実際、IPv6のアドレスを直接打って通信させると問題なくIPv6で通信する。IPv6が使われない理由は、Javaのデフォルト設定だとIPv4とIPv6の両方対応している場合、IPv4を優先して利用するようになっているためである。ここからはJava固有の話ではなく、インターネット通信全般の話になる。そもそも、IPv6とIPv4は全く互換性がなく相互通信できない。IPv4のネットワークとIPv6のネットワークは完全に分離されており別物である。したがって、IPの世界で両方対応するということは不可能である。そのため、両方対応するにはDNSのデュアルスタックという技術が一般的に利用されている。DNSの仕様で、IPv4のアドレス解決はAレコード、IPv6のアドレス解決はAAAAレコードを登録することになっている。IPv4/IPv6デュアルスタックとは、同じホスト名に両方のレコードを登録することである。IPv4ネットワークに接続している端末からは、DNSでAのクエリを発行し、IPv4アドレスに変換する。IPv4アドレスが判明するので、IPv4ネットワークでサーバーに接続しに行く。IPv6の場合も同様で、IPv6ネットワークに接続している端末から、DNSでAAAAのクエリを発行し、IPv6アドレスに変換する。IPv6アドレスが判明するので、IPv6ネットワークでサーバーに接続しに行く。IPv6とIPv4の両方に接続している端末が、最初にAレコードとAAAAレコードのどっちを投げるのかで、IPv4/IPv6のどっちのネットワークに接続するかが決まる。サーバー側は、IPv4とIPv6で別のサーバーを用意してもいいし、1台で両方のネットワークに接続してもよい。両方のネットワークにサーバーを用意して、DNS設定さえすればいい。