投稿

1月, 2021の投稿を表示しています

誤差が許されない小数点を扱う方法

イメージ
坂田です。 インプラスの主力製品"PROKAN"シリーズでは、"生産管理"のコンピューターシステム化を提供します。 その中には当然、あるものを生産するのに必要な原価とか、対価などの"金額"を扱う場面が多く存在します。 その"金額"というものは、計算結果に1円のズレもあってはなりません。 そこで、この記事では"金額"などの誤差が許されない小数点を扱う方法を紹介します。 コンピューターは"0.1"を正確に表現できない! 実は、通常コンピューターが小数を扱う方法では"0.1"という数値を正確に表現できません。 コンピューターは2進数であらゆるデータを表現するということは知ってのとおりであると思いますが、小数も例外ではありません。 "0.1"という数値は、2進数だと無限小数になってしまいます。 では、どうしようもないのか? コンピューターがこのように小数を扱う限り、10進数の有限小数でも正確に表現できない…… しかし、小数を表現できないのでは金額計算ができない……どうしようもないのか? 否、そんなことはありません。 一部の言語では、まさに"金額"のような小数を正確に表現するための型を提供します。 ①Currency型(VB6)など、小数点以下の桁数を決め打ちする型 コンピューターは整数であれば、数値を必ず正確に表現することができます。 この性質を利用し、ある桁数より下の値は小数点以下の値として扱うことで、小数を正確に表現する方法があります。 これを、"固定小数点型"といいます。 ②Decimal型(VB.NET、C#など) こちらは①を拡張したような概念で、小数点以下の桁数に応じて小数点より上、つまり整数部の桁数を減らしていく方法を使います。 こちらも内部的には整数ですから、小数点以下の値を正確に表現することができます。 あとがき コンピューターで正確に表現できない10進数の有限小数がある……という問題はいつも"金額"を扱うアプリの開発者を悩ませてきました。 近年はそれを解決する方法が多く出てきましたが、それでもまだこの"小数がうまく扱えない&qu

JavaScript豆知識2 window.loadイベントとDOM

イメージ
JavaScriptは読み込まれた時点で上から順に関数を実行していきますが、ページのロードが完了してから実行させたい、という場合は多いかと思います。 特にデザインを調整する関数などは、ページの描写が完了してから実行しないとうまく動かないことも多いです。 そこでよく使われるのが、以下の書き方です。このイベントはDOM、画像、スタイルシートなどのすべての依存するリソースを含めて読み込まれた時に発生します。 window.addEventListener('load',function); 書いてある通りなのですが、これを初めて見た時、僕は「DOM?ジェットストリームアタックをかけるアレか?」と思ってしまいました。DOMの詳細な説明は他を見て頂くとして、この「DOM」について初心者にも分かりやすく解説してみようと思います。 これがエディタで見る「htmlドキュメント」。ブラウザで解釈しなければただの文字列の塊です。 <div class='impClass' onclick='impFunction' style='display: block;'> テキスト </div> そして、DOM要素というのは地の文で表示されているテキスト...「htmlドキュメント」をブラウザが解釈して、人間が読みやすいように整えたオブジェクトです。JavaScriptで言うと、下のコードで取得してくるオブジェクトです。 document.getElementById('impHtmlElement'); つまり、このイベントは、ブラウザがhtmlコードを解釈して、DOMを生成して、他のコンテンツのロードも終わって、デザインを構成し終えた時に発生するのです。なので、html要素の座標や文字色などの情報をJavaScriptで正しく取得することができるのです。 window.addEventListener('load',function);

Pythonを勉強中です(Google Colaboratoryの利用)

イメージ
前回 、「Pythonの開発環境としてWSLを使用している」という話を書いたのですが、現状、WSL環境ではGeForce等のGPUパワーを扱うことができません。 これでは機械学習の速度が上がりませんし、プログラムによってはそもそも動作しない、ということがあります。 (WSL2では可能なようですが、導入がそれほど簡単ではありません) そこで、Googleが提供している「Google Colaboratory」を使うことが考えられます。 「定期的に環境がリセットされてしまう」「データベースが用意されていない」等、使いにくい点もありますが、「ブラウザ上で開発が可能である」という手軽さ、「手軽にGoogleの『強い』マシンを利用できる」点など、利点も多いです。 ある程度形になるまで自前のPC上でプログラムを書き、GPUの処理速度が必要な時にColaboratoryを使用するなど使い分けによって、より効率的な学習ができるのではないかと思います。

"ジャンプスケア"的ダイアログの考察

イメージ
坂田です。 インプラスの一部のプロジェクトでは、データに重大な変更をしそうな時の確認に"ジャンプスケア"的なダイアログを出して本当にその変更をしてもよいのかというダイアログを出します。 この記事では、この"ジャンプスケア"的なダイアログのメリット・デメリットについて考察してみようと思います。 "ジャンプスケア"とは? 主に映画やゲームなどのエンターテイメントにおいて、いきなり驚かすような演出のことを指します。 例示すると、相手の死角に隠れて通りそうな時にいきなり出てくる。これも"ジャンプスケア"の一種と言えます。 一部のプロジェクトでは、このようなダイアログで重大な変更をしようとしていることを知らせます: メリット アプリを初めて使う人は当然どこをどう触ればいいのかわからないものです。 そうなれば、知らないうちに重大な変更をしてしまう可能性もなきにしもあらずです。 重大な変更をしてしまいそうになった時、この"ジャンプスケア"的なダイアログを出すことで、その人はその変更が重大な変更であることを知ります。 それは、重大な変更をする前に慎重にその変更が必要かどうかを考えさせるようになることにつながります。 デメリット いくら重大な変更をするのであっても"ジャンプスケア"ですから、当然アプリを使う人にとっては恐怖を煽るものになります。 そのような恐怖に"耐性"を持つ人であれば問題ないのかもしれませんが、それでも初見だったり、また恐怖に"耐性"を持たない人にとっては最悪の場合、その"ジャンプスケア"をトラウマにアプリ自体を使うことを忌避してしまう可能性があります。 一方、恐怖に"耐性"のある人は重大な変更をする前に"ジャンプスケア"で驚きませんから、軽い気持ちで重大な変更をされてしまう可能性があります。 どういう時に有効か? 重大な変更を主にしている人が恐怖に"耐性"があり、重大な変更をあまりしてほしくない人が恐怖に"耐性"がない時にこの"ジャンプスケア"的なダイアログが有効といえます。 あとがき 私

四日市でもやっています。

イメージ
 こんにちは。 四日市サテライトの野村です。 私たちは、地域清掃を定期的に行っていますが、四日市サテライトオフィスでもやっています。 やたらと際限なくはできないので、オフィスのある地域に限定してゴミを拾っています。 自分たちのいる場所がゴミだらけより良いと思うし、気分もすっきりしますね。

第199回 良くする会

イメージ
今日の良くする会はオンライン会議です。 2020年の仕事を1つずつを振り返り、成功、失敗要因を洗い出しました。 要因を洗出し分析をするのは、成功を活かし、失敗から改善点を学ぶため! まだまだより良くできる材料はあり、実践できることは沢山ありそうです^^)b

今週のクレド

イメージ
 インプラスには、行動指針のクレドがあります。 そして、強化して意識する内容を2週間毎にローテーションして実践しています。 今週は、「私たちは、誰よりも仕事を楽しみます。」になります。 開発や導入に資料作成など、人それぞれ楽しみは異なりますが、日々の仕事を誰よりも楽しむことを意識して実践してまいります。

Pythonを勉強中です

イメージ
業務に直接関係することではないのですが、Pythonの勉強をしています。 条件分岐や関数の定義などに括弧をつける必要がない、ループを扱いやすいなどとても書きやすく、プログラミングを始めた頃の楽しさが蘇ってくるような良い言語です。近年ではディープラーニング・強化学習といった分野でもよく名前を目にします。 Windows環境ではコマンドラインやPowerShellから実行するのが一般的だと思いますが、この方法だと日本語を扱う際に文字コードで問題が起きることがあります。 そのため、私はWindows10にWSL(Windows Subsystem for Linux)を導入し、Linux上でPythonを実行しています。豊富なUNIX系コマンドも使用できるため、とても使いやすい開発環境です。

古紙と禁忌品

イメージ
持続可能な社会をつくるため、『廃棄物ゼロ化』に向けて、1度使われた紙(古紙)を資源として有効利用できるように分別を始めました。 紙の原料は木材です。古紙を可燃ごみとして捨てしまうのは資源を消費していることであり、大げさな言い方かもしれませんが森林資源を浪費していると言い換えることができないでしょうか。 見方を変えれば、古紙をリサイクルすることは、浪費される木材を削減することにつながり、森林資源の持続可能な利用の貢献活動であるとも言えます。 資源として分別する際に、この紙はリサイクルできるものか調べてみると、リサイクル原料にできない異物(禁忌品)が多々あることを知りました。 例えば「臭いのついた紙」「圧着はがき」「感熱紙」「新聞折込チラシ、雑誌、カタログに付随したサンプル類」など、これらものもは禁忌品であり、リサイクルできません。 せっかく分別した労力を無駄にしないためにも『資源化できる紙』だけでなく、『禁忌品』に何があるか知識をつけることも大切です。

やがて食卓へ

イメージ
地域清掃活動として、月曜の朝は会社の周りを清掃しています。 ポイ捨てされているごみはタバコの吸い殻が特に多く、歩道や植え込みなど、人の導線に沿って捨てられているのですが、その中でも特に側溝付近はあからさまに多いです。 側溝に落ちた吸い殻は、見えているのに拾えないとモヤモヤした気持ちさせられます。 そして、今日見かけたところでは、こんなにも吸い殻が!! この拾えなかったゴミは、どうなるのでしょうか... 側溝に捨てられたタバコの吸い殻は下水管を通り、下水処理場へは行かず、雨水管を通って、河川からやがて海へたどり着きます。 ということは、最終的に行き着く先は海ですが、そこに暮らす魚介類などの生物は、タバコの吸い殻を餌と勘違いして飲み込み、食物連鎖を巡り巡って、最終的には人間の食卓へ並べられるのです。 今日も寒い朝でしたが、ゴミを少しでも減らし、気持ち良い1週間の始まりの日となりました。

代表井上が障害者雇用のパネルディスカッションに登壇しました。

イメージ
インプラス代表井上が、昨年末にパネリスト登壇させて頂いた、独立行政法人 高齢・障害・求職者雇用支援機構の「第28回職業リハビリテーション研究・実践発表会」です。 東京ビッグサイトの広い国際会議場で、無観客の録画でした。 影山先生の特別講演とパネルディスカッションの映像、研究資料などはこちらからご覧いただけます。  https://www.nivr.jeed.go.jp/vr/news/28kaisai.html  影山先生の講演…「 2 特別講演 」より  代表井上の登壇…「 4 パネルディスカッションⅡ 」より 「なぜ障がい者を雇う中小企業は業績を上げ続けるのか?―経営戦略としての障がい者雇用とCSR」 の著者でもある障害者雇用の専門家、影山先生の講演は必聴です。 ぜひ御覧ください! 代表井上が登壇したパネルディスカッションのテーマは「障害のある社員の活躍のためのICT活用」です…こちらもぜひ!

JavaScript豆知識1 Java?JavaScript?

イメージ
 プログラミング言語の中に、JavaとJavaScriptというものがあります。 「JavaScriptって、頭にJavaがついてるからJavaの派生言語なんでしょ?」と僕も思っていましたが、触ってみたらどこかで見かけた「メロンとメロンパン」という比喩がまさにピッタリでした。 どちらも食べ物(プログラミング言語)ではありますが、果物とパンくらいかけ離れたものです。味(用途)もお値段(難易度)もぜんぜん違います。そのあたりの詳しい内容は検索するとたくさん出てくるので、気になった方は調べてみてください。結構面白いですよ。 ちなみに僕はメロンとメロンパンならメロンパンが好きです。メロンを食べると喉が痛くなっちゃいますので…。

只今鋭意勉強中。

イメージ
 こんにちは、インプラス四日市サテライトの野村です。 僕はプログラミングには直接携わっていませんが、出来ることを増やすためにSQLを勉強してみようかなと思いました。毎朝コツコツやっています。目標は問題集で80点以上取ることです。少しづつ長く続けて、身に着けたいと思っています。

地域清掃で使用するゴミ拾い袋問題

イメージ
地域清掃で使用するゴミ拾い袋は、今まではコンビニやスーパーなどでもらっていた買い物袋を使っていましたが、ストックがなくなってきました。 プラゴミを減らすために使用量を減らす意識をしてきましたので、ゴミ袋を買うのもなあと。 必要なものならきちんと選んで購入すればよいのですが何かないかと頭をひねった結果・・・ 郵便でいただいた大きめの書類封筒をゴミ拾い袋に使うことになりました。 封筒を開けたらそのままゴミ箱に捨てずに、ありがたく再利用です。

お年賀キャンディ

イメージ
 明けましておめでとうございます。 年始の打合せで訪問させて頂いたり、ご来社頂いたお客様には、毎年恒例のお年賀キャンディをプレゼントしています。 原材料に気使い選定したお年賀は、健全な食を大切にしているインプラスのこだわりでもあります。 お年賀キャンディの箱の中には『ご縁がありますように・・』との願いが込められた五円玉(五縁玉)が入っています。 この五円玉は鎌倉五名水のひとつ、銭洗弁天宇賀福神社の「銭洗水」で清めたご縁玉です。 持っているとお金が戻ってくると言ったご利益が言い伝えられています。 昨年に引き続き、今年も様々な変化に対応すべき年となります。 IT化のご相談等ありましたら是非お声掛けください。 本年も宜しくお願い致します。 インプラスホームページはこちら(  https://implus.co.jp/  )

社鍋の裏話

イメージ
 インプラスのオフライン良くする会で恒例となっている社鍋ですが、毎回キッチリ食べきれるとは限りません。お昼に作った味噌汁やご飯も食べきれないことはあります。 では、残ってしまったらどうするのか?捨てる? いいえ、それを捨てるなんてとんでもない!冷蔵しておいて、次の日に出社した人が頂きます。 ――ごちそうさまでした! ごめんなさい、食べる前に写真を撮り忘れてしまったので片付け終わった後の写真です。 一晩寝かせて、少し味付けを変えた鍋を楽しめるのは処理班の特権です!

2021健康目標

イメージ
  インプラスでは、毎年業務目標、自己成長目標、健康目標の各目標を決めます。 今年も健康目標を体重を80kgまで落とすことにしました。 ここ6年ほど、同じ目標です(滝汗) 一時は、80kg目前まで落とすことができましたが、一度も達成できずとうとう3桁の大台に乗りました。 今年は少しでも落とすように食と運動を考えて行動していきます。 まずは昨年継続できなかったジョギングを帰宅したら30分は走ることと決めて実践していきます。

毎年恒例のうなぎ

イメージ
新年あけましておめでとうございます。 昨日は発会で、毎年恒例のうなぎを食べに行きました。 初めは4人でのスタートでしたが、今年は8人となりました。 会社の成長と発展に向かっての縁起物です。 今年も始まったなと、気が引き締まります。 インプラスホームページはこちら( https://implus.co.jp/ )

新年のご挨拶

イメージ
 謹んで新春のお慶を申し上げます 旧年中はひとかたならぬご愛顧を賜わり、厚くお礼申しあげます。 新型コロナウイルスの影響が拡大し続けており、 「新しい生活様式」での新年をお迎えのことと存じます。 事態が一日も早く収束することを祈るとともに、 より良い未来を目指して一層貢献できるよう取り組んでまいります。 本年も変わらぬご愛顧のほど、ひとえにお願い申し上げます。 令和三年 元旦 インプラス株式会社