投稿

SwiftUIでカスタム地図を表示する(その2)

イメージ
 その1ではカスタムタイルを表示しました。今度は手元で生成した情報を重ねてみます。 前回(その1) (予備知識) SwiftでPNG画像を作成する //カンバスを作る UIGraphicsBeginImageContext ( CGSize )  let context = UIGraphicsGetCurrentContext () //お絵描きをする(ぬりつぶす) context. setFillColor (fill) context. fill ( CGRect (x: 0 , y: 0 , width: 256 ,height: 256 )) //イメージオブジェクトに変換する         let tileImage = UIGraphicsGetImageFromCurrentImageContext () UIGraphicsEndImageContext () //PNGに変換する tileImage?. pngData () @Ushio, "UIGraphicsBeginImageContextの無駄",Qiita SwiftでのErrorの返し方 SwiftならErrorをEnumで定義すると明確なうえ、NSErrorにもそれらしくCASTされるようだ。 中安佑一,"[Swift] Swiftのエラー処理についてざっくりとまとめてみた", DevelopersIO, Classmethod reo0612, "swiftのErrorとNSErrorの違いがよく分からないので自分なりにまとめてみた", Qiita カスタムTileOverlayを作る PUNIO, "Xamarin.iOSで地図にTileを追加したりしてみる", プログラムの事とか,Hatena Blog (実際) PUNIOさんのコードをSwiftUIに移植しただけですが import UIKit import MapKit class CustomTileOverlay : MKTileOverlay { enum TileError:Error{ case getCurrentContext } override func load...

SwiftUIでカスタム地図を表示する(その1)

 観光地図やらクライムマップやらもっと便利に表示したいなと。 (予備知識)  SwiftUIでiOSアプリを書くには SwiftUIになって大きく変わったところがGUIの作り方。従来はstoryboardを使ってGUI部品を配置し、そのGUIを制御するUIViewをゴリゴリ書く感じでしたが、SwiftUIになって、GUI部品にレイアウトやら制御やらをまとめた感じ。  SwiftUIで地図を表示するには SwiftUIにはWKWebViewに相当するViewがないので、UIKitのWKWebViewをSwiftUI用にラップして使用する必要があります。これにはUIViewRepresentableプロトコルを使います。詳しくは 公式チュートリアル のとおり。 @k_awoki, "UIViewRepresentableを使ってSwiftUIでちょっとリッチなWebviewを表示してみる", Qiita @m37335, "【SwiftUI】Mapkitを使った位置情報の取得とピンの表示",Qiita  MapKitの基本 前述のようにMapKitはUIKitで、地図上にGUI部品を載せることができる。地図上の地点に関するGUI部品のアノテーション、画像や図形のGUI部品のオーバレイが用意されている。ここでややこしいことに、GUI部品のオブジェクトと、GUI部品を表示する部品を別々に用意してやらないといけない。 中安佑一, "[Swift][iOS] 京都御所に近ければ偉いだと?! せやったらそんな”はんなり”した地図アプリ作ったろやないか! – MKMapView使い方まとめ", DeveloversIO, Classmethod タイルデータを表示するには カスタムタイルをmapViewにオーバレイする。それには、 (1) タイルオーバーレイを供給するオブジェクトを登録する。 具体的には、MKTileOverlay()を用いて、地図に重ねるタイルデータ供給オブジェクトをつくり、mapViewオブジェクトにセットする。 (2) タイルオーバーレイをレンダリングするオブジェクトをmapViewオブジェクトにセットする。 具体的には 、mapViewのdelegateオブジェクトに、mapView(_ mapVi...

夏空の似合う道

イメージ
環状2号(C2)から川口線に分岐する江北JCT。ここから川口までの区間は遮るもののない見晴らしのよい道。晴れた夏空がぴったり。 新宿から江北JCTまでトンネルと高架下が続くのですが、ここからずっとオープンスカイが続く天空の道。ほんと気持ち良い道です。 https://www.instagram.com/p/CSlmhg2Jz0E/ 環状2号ができてからは新宿・板橋JCT経由でこれるのでほんとラクになりました。それまでは三宅坂で渋滞してC1に合流し、神田橋で渋滞、両国で一息ついたとおもったら小菅JCTのハラハラ分岐を抜けて、やっと川口線に入るという感じで結構大変でした。  

イメージ
8月15日というのに肌寒い。夜中にフリース生地のタオルケットをかけて凌ぎました。つい先日まではエアコンをかけないと寝られないほどだったのに。 中国地方や中部では水害となっているようです。早くおさまるとよいのですが。 実家は江戸時代に新田開発されたところで家の前から3キロ先まで田んぼです。八月半ばから十月くらいの時期に大雨が降ると、田んぼが冠水して道路も水没ということがたまにありました。道を選べば冠水箇所をさけられるのですが、油断して近道すると沼地だったあたりでは、道路が10から20cm冠水していることがよくありました。自転車で通過するときペダルを下まで踏み込むと濡れてしまうので、上半分だけでしのごうとしましたが、最後はあきらめてえいやで水中まで踏み込んで脱出しました。 写真は調布駅から程近くにある大正寺の山門からのぞいた境内です。緑が映えます。  

syslogサーバーを立てる(途中)

 ルータのログを取ろうとラズパイにsyslog サーバを設定したのですが、手元のルータはrlogに対応していないことが判明。テストまでいっていないので後日更新しよう。 Ram diskを作る ラズパイではファイルシステムをフラッシュメモリにつくっている。フラッシュメモリは書き込む度に寿命が縮むことから、ログファイルはram diskを作ってそこに書き込むことにする(リブートで記録が失われてしまうが)。ramdiskを作るため/etc/fstabに次の行を追加する。 tmpfs /ramtmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 設定が正しいか、手動でマウントしてチェックする $ mkdir /ramtmp $ mount /ramtmp $ df #チェック syslogを受信する設定 $ vi /etc/rsyslogd.conf # provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") /etc/rsyslog.d/remote-syslog.conf ファイル内容 # receive from remote syslog :fromhost-ip, isequal, "192.168.xxx.yyy" -/var/log/remote-syslog & ~ syslogをリスタートする # /etc/init.d/rsyslog restart ここで、ルータからlogをなげようとしたら、手元のルータは投げられないことがわかったので、とりあえずここまで。 logrotateもセットする必要があるとおもう。これをファイルシステムの取り直せばよいような。 参考  @SachielCurio さんの berrr pi lab Raspberry Pi/各種設定/log,tmpのオンメモリ(tmpfs)化 aspberry Pi/syslog転送

カーメン君のガーデンチャンネル「萌木の村」

 カーメン君のガーデンチャンネル、カーメン君いいですね。 テンガロンハットのカーメン君が、季節季節の園芸の楽しさを伝えてくれるYoutubeのチャンネル。ほんと園芸の知識が豊富で話題が豊富、苗の選び方から肥料や農薬・剪定などわかりやすくて、ずぼらな自分でもついついやってみようかなと思ってしまう。 今日、清里の「萌木の村」特集を見て衝撃を受けました。ポール・スミザーのガーデニングの哲学と技術、反発しながらも受け入れて育ててきた謙虚な村長さんによる無農薬・無肥料の庭を紹介していました。 【嘘か本当か】園芸超人が聖地「萌木の村」を検証します 清里といえばコテコテのペンション建築とアイスクリームやジャムと清泉寮という中学女子的イメージの観光地。特に萌木の村といえば、オルゴール博物館やらドール、ガラス細工、ジャム、ミルク製品など、コテコテの高原観光施設を集めたロードサイドのドライブインと思っていました。 ガーデン散策の途中ででてきた”スーパーマンのTシャツをきた田舎のおじさん”。めちゃダサい田舎親父、萌木の村の村長さんだとか。容姿や振る舞いがまるっきり田舎の土建屋の社長でないかい。萌木の村って、オルゴールやら何やらキラキラした観光施設やっているから、成金趣味の変なスーツ着たオジサンがでてくるかと思いきや、真逆すぎてびっくり、嫌いじゃないタイプかも。 この村長さん、スミザーさんに庭造りを任せたところ、それまでの自分たちの常識がことごとく否定され、反発しまくったとか。結局ねばり負けして、スミザーさん監修のこの庭ができたとか。面白おかしく話をしていますが、よき理解者となったようです。なんだかんだ自慢のガーデンなんだなぁ。 スミザーさんに庭づくりをまかせるまでの、萌木の村の歴史がよかった。 50年喫茶店からはじめてホテルを作った、デザインも統一してある程度のレベルで綺麗なものができた。それで環境づくりをとなったところで、なかなかうまくいかない。10年前スミザーさんに出会い「こんな庭をつくれば未来にもつづく本物の庭ができるよ」といわれてまかせた。これまでの常識とまったく異なるやりかたに反発しながらも続けてきた。10年たって「やってよかった」というものができた。 このビデオで最も印象に残ったのが「フィールドバレェをはじめたきっかけ」。 田舎で芸術とかお酒とか、 欲望の質の高いもの...

お言葉の重み

「え、そんなこといっちゃうの?」「あんまりじゃない!」 記者会見や年頭あいさつなどで、ときどきハッとする言葉が飛び出してくることがありますよね。リーダともなると、いろいろとお考えやご事情がおありなのでしょうが。 安倍首相「これまでのお約束とは異なる、新しい判断」 2016年6月1日 消費税の引き上げ時期を17年4月に延期したときに、「再び延期することはない」と断言していたものを、19年10月に再延期すると記者会見したときの発言。(https://www.j-cast.com/2016/06/01268515.html) 「絶対にないと発言しても、あっさり前言撤回できるものなんだ」、臆面もなく、ご都合主義を認めちゃうんだ、総理が。約束を守らない・守れないときは、相手にも多大な迷惑がかかる。だから、お詫びをした上で、対応について協議を求めるものかと。 国の舵取りをする上では、約束したものであっても判断を変えなければならないこともあるのだとは思います。その場合は、新たな判断が必要となった事情を、言葉を尽くして説明していただく、野党はその事情を検証することで、新たなコンセンサスを作ってもらいたいもの。 安倍さんにしても、菅さんににしても、モヤモヤするのはココかな。 「我が社は自前主義をやめます」 古い話ですが、ある企業幹部が年頭挨拶で「弊社は自前主義をやめます」と発言。これからは、自前主義をやめ他社と協力しスピード感をもって開発を進めると高らかに宣言されたという話を聞いた。 自前主義をやめることは、自社で全ての技術を賄うのではなく他社の技術やサービスを使い協業を進めること。短時間でサービスを開発し、運用コストと新サービス失敗のリスクを軽減するとともに、組織や設備の肥大化を防ぐなどのメリットが。 たしかに、新製品や新サービスをすべて自社技術で賄おうとすると、開発コストや時間が膨大となる上、運用コストも失敗リスクも大きくなるなどの問題がある。 この話、他社に負けじとコア技術開発を進めていた時に聞いたので、あんまりだなぁと。協業がうまくいくには、核となるインフラや人材・技術、資産を自社で抑えているのが前提かと。その部分を(まる投げでなく)しっかり抑えられなければ、やがて相手にヘゲモニーを握られてしまう危うい話じゃないのかなと。その人は投資家向けに話していたのかな。 トップは方向を...

tokyo2020デコレーション

イメージ
青山一丁目のデコレーション好み おまけ  

盛夏

イメージ
  行くぞ 飛び立ったばかりの飛行機と八月の空