カテゴリー: 未分類

  • Now I’m searching for remote jobs of overseas which can be done while living in Japan

    To engineer readers working in foreign company (not Japan)

    I live in Hokkaido, Japan(GMT+9) and am looking for a full remote software development job of overseas which can be done while living in Japan (I’m not searching for Japanese domestic jobs).
    I have worked over 20 years as a software engineer.
    have bachelor degree of computer science.
    can work from December 1st, 2022.

    I appreciate you letting me know if you have any opportunities for me.
    Please share this post and comment for better reach.

    Though currently I’m interested in Prolog and Constraint Logic Programming,
    I have many experiences of other technologies and will be glad to take charge in those:
    -Mobile apps(Android/iPhone), Google Map API, WebView
    -Web App(PHP, JavaScript[Angular.js, Fabric.js, Leaflet.js, jQuery, and more])
    -Image Processing(OpenCV)
    -databases(MySQL, PostgreSQL, Oracle, Microsoft ACCESS)
    -Embedded Software, Firmware (development of sensor drivers, RTOS)
    -Linear Algebra

    my resume:
    Link

    Stack overflow:
    Link

    Github page(now I’m migrating my blog post’s programs into here):
    Link

    Project Euler
    Project Euler

    My skills
    Language: C, C++, C#, VB.net, PHP, JavaScript(fabric.js, leaflet.js, Angular.js, jQuery, Ajax), Java, Swift, Prolog, HTML, CSS, VB6, VBA, and VB.net
    Database: SQL Server, MS-ACCESS, Oracle, MySQL, PostgreSQL
    Technology and other: web programming, database software, embedded software, RTOS, image processing, OpenCV, linear algebra, android/iPhone application, Linux(Ubuntu, CentOS, Raspberry Pi), Google Map API, MFC

    Please send me email(koyahata@koyahatataku.com) if you have any opportunities.
    Any help will be appreciated.

  • ドローン

    なんか流れでドローンの制御をするソフトに携わることになってドローンの事情など何も知らない状態から苦労しながらどうにかこうにか設計にチャレンジしています。

    今のドローンはGPSと画像処理などを駆使してムチャクチャ頭良い処理ができるようになっていて、例えばコントローラーのタブレットで走る車などにターゲット指定したら移動するターゲットを常時距離を保ったまま追いかけ続け、カメラ(ジンバル)もターゲットに常時固定しながら動画を撮れる。

    素早く動くバイクなどが常時カメラに納まり続けているの動画を見てると、例えばもしこれが人を追いかけている状況だとしたらと考えると恐ろしい技術で、ジンバルに拳銃を固定したとして、遠隔で引き金を引くなんてプログラムは簡単にできるのだから、簡単にターミネーターのような殺人機械ができそうです。

    POIとかいうシステムで仏像とかのターゲットを指定したら、その周りをドローンがくるくる撮影しながらながら回り続けて、リアルな3dのモデリングデータ作成も出来る。

    ドローンは姿勢や位置の制御のために各種のセンサが搭載されているのだが、どうもこれらが安価に手に入るようになったことが安くドローンを作ることができるようになった理由らしくて、これらのセンサが安価につくれるようになった理由はスマホが大量生産されるようになったかららしい。

    確かにドローンに搭載されているGPSセンサ、気圧センサ、加速度センサ、磁気センサなどはどれもスマホに搭載されている。

    シヴィライゼーションというゲームで技術の順番を記述したテクノロジーツリーという考え方があり、例えば「法律」という技術は「アルファベット(文字)」という技術を取得していないと開発できないように順番があるのですが、さしずめ「ドローン」という技術の前提技術として「スマートフォン」が来る感じであろう。ちなみに「アルファベット」の前提技術は「筆記」となっている。

    20年前には自分がドローン制御のプログラムを書くことになるとは思いもしなかった。
    時代の進み方の速さにめまいがしそうだし、自分も末端の人間としてそのような進歩にほんの少しだけ関わっている

    勉強していてもオープンソース系でそのような技術のソフトウェア部分が構成されているのが多い印象で、技術進歩のスピードが無茶苦茶はやいのにはオープンソースコミュニティが1役も2役も買っていると思う

  • 前回から続き リードリレーの実験

    リードリレーの実験してみました。磁石近づけると小さく音がするので本当にただのリレーですね。

    KIMG0650

    KIMG0652

    KIMG0653

  • 中国の安い対局時計の手番スイッチの仕組み

    中国の\2000の安い対局時計を分解して手番のスイッチの仕組みを見ているんだけどボタンの接点がなく、スイッチを押したときに片側の鉄片が近づくことによる静電容量の変化を認識してるっぽい。接点がないから長持ちするのかもしれない。
    (2016/04/12 訂正 3枚目の写真の透明の素子が「リードリレー」とのことで、静電容量の変化を認識しているのではなく、スイッチの片側につけられた磁石が近づくことによりON/OFFになる仕組みのようです)

    自分の作った対局時計で採用しているマイコンPIC1939でも静電容量変化感知機能があってそれを使用するとタッチパネルみたいに指を近づけると反応するようなスイッチが作成できる。

    ただ自分の対局時計では電池を節約するため必要な処理を行った後スリープするようにしていて、これを、

    ・手番ボタンの押下
    ・時計用水晶からの外部タイマ割り込み(0.5sec毎)

    の2種類のイベントで解除するようにして電池を節約しているのですが、

    静電容量が変化したときにスリープ解除するような割り込みは存在しないようだったので静電容量感知スイッチを利用するのをあきらめたのだった。

    静電容量スイッチだけで作成できればスイッチが基板のパターンだけでいけるのでボタン買わずにすみ安くできる。

    KIMG0644

    KIMG0645

    KIMG0646

    KIMG0643

  • 地球の丸さを知覚できるか

    昔mixiで書いた日記なのですが、なかなか面白いと思いますのでブログに転記します。

    よく観光スポットとかで「地球が丸く見える~~岬」というのがあるのですが、 自分の個人的な経験でも、本当にそういう地点に行くと地球が丸く感じられた 経験があります。

    具体的には視野の左右の端の水平線は、視野の中央の水平線より
    若干下がっているように見えるのです。

    しかし、テレビなどで 「それは錯覚、地球が丸いという知識が前提となりそう見えているだけ。  人間の観測地点程度の高度では地球の丸みは感じられない」 ということが言われていた。

    自分的には、地球が丸いという、後から学んだ知識などなくても、本当に、 裸の心で水平線を見て丸く見えたのでこのような自然な感覚が否定されている のが非常にムカついていたのです。

    僕はこの水平線が丸く見えた経験を飛躍させて、 古代の人たちも実は地球が丸いということをおぼろげに気づいていたのではないか とさえ考えていた。

    ただむかついているだけではしょうがないので、うまいこと計算してこの丸み が人間に知覚できるのかがんばってみました。

    具体的には視野の中央と視野の端の水平線の角度(視角?)の差を求めてみました。

    ちょっと説明がめんどくさいのですが大まかに説明すると、

    水平線が作る円と観測地点Poとが作る円錐を考える。
    水平線の任意の点をPgとする。

    人間の視野角?は200度とのことなので、Pgからこの半分の100度回転させた水平線上の 点をPrとする。

    円錐に接し、Po-Pgに接する平面とPoPrとのなす角が求めたい角度

    いい加減にやったので80%くらい計算間違いしてると思うんですが、下記のような結果が出ました。

    答え合わせもあんまりしてなくて本当にいいかげんですので信用しないでください。

    計算メモとロジックをエクセルのマクロに記述したものをはっつけますので 突っ込みをお待ちしております。

    100mの岬で、 0.457624909 度 と計算されました。

    ちなみに「1cmの対象を1m先からみた時の視角が0.57度」ということだそうです。
    海抜100mの場合は、視野の両端では1cmの対象を1m先から見たくらいの大きさよりちょっと少ないくらい水平線が下がって見えてるということかな?人間の感覚で知覚できそうな 気がしますよね。

    地球の半径 半径6367.25km(赤道での直径と極での直径の中間値を採用) 人間の視野角200度として計算

    観測者地点(海抜)[M] 視野の中央と端との水平線の角度の差(ラジアンではなく度)
    0.1 0.014471504
    0.2 0.020465797
    0.3 0.02506538
    0.4 0.028943007
    0.5 0.032359265
    0.6 0.035447799
    0.7 0.038287998
    0.8 0.040931592
    0.9 0.043414509
    1 0.04576291
    1.1 0.047996544
    1.2 0.050130755
    1.3 0.052177744
    1.4 0.054147403
    1.5 0.056047886
    1.6 0.057886008
    1.7 0.05966753
    1.8 0.061397382
    1.9 0.063079813
    2 0.064718522
    3 0.07926367
    4 0.091525794
    5 0.102328939
    6 0.112095726
    7 0.121077211
    8 0.129436971
    9 0.137288628
    10 0.144714907
    11 0.15177826
    12 0.158527208
    13 0.165000334
    14 0.171228923
    15 0.177238758
    16 0.183051385
    17 0.188685031
    18 0.194155278
    19 0.199475567
    20 0.204657594
    50 0.323591172
    100 0.457624909
    150 0.56047117
    200 0.647173371
    250 0.723558481
    300 0.79261494
    350 0.856118026
    400 0.915224438
    450 0.970737622
    500 1.02324257
    550 1.0731809
    600 1.120895712
    650 1.166659854
    700 1.210694552
    750 1.253182127
    800 1.294274953
    850 1.334101918
    900 1.372773203
    950 1.410383873
    1000 1.447016634
    1050 1.482743966
    1100 1.517629819
    1150 1.551730945
    1200 1.585097994
    1250 1.617776388
    1300 1.649807048
    1350 1.681226996
    1400 1.712069857
    1450 1.742366277
    1500 1.772144281
    1550 1.801429579
    1600 1.830245822
    1650 1.858614826
    1700 1.886556769
    1750 1.914090352
    1800 1.941232951

    作成したエクセルのVBAマクロ(モジュールに貼り付けて使ってください)

    CalcSikaku(地球の半径,観測地点の海抜)が角度を求める関数

    Option Explicit
    
    'R: 地球の半径 [m]
    'h: 観測地点の地面からの距離(海抜) [m]
    Public Function CalcSikaku(ByVal R As Double, ByVal h As Double) As Variant
    
    Dim lengthPoPx As Double
    Dim lengthPxPg As Double
    Dim lengthPoPg As Double
    Dim sita As Double
    Dim naiseki As Double
    Dim norm1 As Double
    Dim norm2 As Double
    
    Dim x1 As Double
    Dim y1 As Double
    Dim z1 As Double
    Dim x2 As Double
    Dim y2 As Double
    Dim z2 As Double
    
    sita = CalcSita(R, h)
    
    lengthPoPg = CalcLengthPoPg(R, h)
    
    lengthPoPx = lengthPoPg * Cos(sita)
    lengthPxPg = lengthPoPg * Sin(sita)
    x1 = 0
    y1 = lengthPoPx
    z1 = lengthPxPg
    
    x2 = lengthPxPg * Cos(ToRadian(10))
    y2 = -1 * lengthPxPg * Cos(ToRadian(10))
    z2 = -1 * lengthPoPx
    
    naiseki = CalcNaiseki(x1, y1, z1, x2, y2, z2)
    norm1 = CalcNorm(x1, y1, z1)
    norm2 = CalcNorm(x2, y2, z2)
    
    CalcSikaku = ToDegree(myAcos(naiseki / (norm1 * norm2)))
    
    End Function
    
    Public Function CalcNaiseki(ByVal x1 As Double, ByVal y1 As Double, ByVal z1 As Double, ByVal x2 As
    Double,
    
    ByVal y2 As Double, ByVal z2 As Double) As Variant
    
    CalcNaiseki = x1 * x2 + y1 * y2 + z1 * z2
    
    End Function
    
    Public Function CalcNorm(ByVal X As Double, ByVal y As Double, ByVal z As Double) As Variant
    Dim wk As Double
    wk = X * X + y * y + z * z
    CalcNorm = Sqr(wk)
    End Function
    Public Function CalcLengthPoPg(ByVal R As Double, ByVal h As Variant) As Variant
    CalcLengthPoPg = (R + h) * Cos(CalcSita(R, h))
    End Function
    
    Public Function CalcSita(ByVal R As Double, ByVal h As Variant) As Variant
    CalcSita = myASin(R / (R + h))
    End Function
    
    '度→ラジアン
    Public Function ToRadian(ByVal Degrees As Double) As Double
    ToRadian = (Application.WorksheetFunction.Pi / 180) * Degrees
    
    End Function
    
    'ラジアン→度
    Public Function ToDegree(ByVal Radian As Double) As Double
    ToDegree = (180 / Application.WorksheetFunction.Pi) * Radian
    End Function
    
    Function myASin(X As Double) As Double
    myASin = Atn(X / Sqr(-X * X + 1#))
    End Function
    
    Function myAcos(X As Double) As Double
    myAcos = -Atn(X / Sqr(-X * X + 1#)) + (Application.WorksheetFunction.Pi / 2#)
    End Function
  • ubuntuにopen-cvを入れる

    ubuntuにopen-cvを入れているのですが、なぜにこんなにダウンロード

    遅いんだ…

    常時 123kByte/sec 位しか出てない…

    おそいな~

     

  • MS-ACCESSの新規案件対応中

    MS-ACCESSでの新規案件があり対応中です。

    MS-ACCESSで新規アプリケーション作るのは久しぶりだな。

    既存システムの改修とか修正の比率が多かったからな。

    来週木曜日から来るバイトの子にはこれを手伝ってもらおうかしら…これか記帳かどっちか手伝ってもらおうか。

    事務所間借り(オフィスシェア)しているアイケイシステムズさんに来ていて、インターンからバイトとして来ることになっている若者に手伝ってもらうのはどうだろうとか、アイケイシステムズの菅原社長と雑談しています。

     

  • 不動産プラグイン

    不動産プラグイン関連の見積もりをお願いされたのでためしにこのサーバのWordPressにインストールしようとしたら…

    WordPressマルチサイトは未対応なのね…

    どうしようかな…実験…

  • mod_rewriteが効かない

    WordPressのマルチサイト化(サブディレクトリ型)でエラーとなっていた問題の対応メモ(解決)

    注目点は .htaccess と httpd.conf

    httpd.confではAllowOverride を All にする

    /usr/sbin/httpd -l の実行結果に「mod_so.c」が入っていればモジュール自体は使えるようだ(インストールなどはしなくても良い)

    あとは .htaccess の内容をコメントアウトしながら実験する。

    RewriteLog という命令はバージョンによりつかえないように見える。

    使用OSはCentOS

  • ブログ開始

    小屋畑ソフトウェアサービスのブログページです。

    技術のメモや仕事関連の雑多な内容を投稿したいと思います。