タグ

Programmingに関するlindenのブックマーク (178)

  • 個人情報保護するWebBluetoothでCOCOA信号チェッカー作った話 | BLOG - DeNA Engineering

    こんにちは。COO室の野上と申します。 普段は、全社改革テーマ事務局などの、各種の全社課題への取り組みをしているビジネス職ですが、その一環としてDeNAの新型コロナウイルス感染症対策部の業務にも取り組む中で、 新型コロナウイルス接触確認アプリ(COCOA) の普及促進の一環として、Web Bluetooth技術を使った知見をお伝えしたく、Blog記事を執筆させていただきました。 なお、ビジネス職ではありますが、もともとはビッグデータ分析系に取り組んでおり、分析用データの基礎集計を仕込むなどのエンジニア的な業務もしていましたので、「初心者がコードを動かしてみた」よりは深めの内容をお話しできていると思います。 今回の記事でお話しすること 今回の記事では、接触確認アプリ 「COCOA」動作チェッカー ( githubレポジトリ )の リリース にあわせて、 COCOA動作チェッカーのバックエン

    個人情報保護するWebBluetoothでCOCOA信号チェッカー作った話 | BLOG - DeNA Engineering
    linden
    linden 2022/02/03
    あとで読む
  • OpenCV3.1.0のビルド方法(GUI編) | きんたろうのIT日記

    はじめに 以前はWindows環境ではコンパイル済みのバイナリが準備されていたが、最近はソースからビルドして使用することが前提となっている。 基はソースを準備して、CMakeを使って開発環境に合わせたプロジェクトを生成し、開発環境でビルドを行うという手順であるが、操作が複雑であり、設定できるオプションが多岐にわたるため、一連のビルド方法をまとめてみた。 OpenCVのソースの準備 OpenCV公式配布ページからopencv-3.1.0.exeをダウンロードする。 opencv-3.1.0.exeファイルを実行する。 Extract toにopencv-3.1.0.exeが保管されているフォルダが表示されている。ファイルの展開場所を変更する場合は[…]ボタンを押して展開先のフォルダを指定した後、[Extract]ボタンを押すとファイルの展開が始まる。展開が終わると展開先に指定した(Extr

    OpenCV3.1.0のビルド方法(GUI編) | きんたろうのIT日記
  • Bit Bang Test

    FTDI社の FT232BM / 245BM 以降の FT232R / 245R 、FT2232H などの USB–UART、USB–FIFO デバイスには、Bit Bang モード が備わっています。 この BitBang モード とは、パソコンから USBケーブルを介して、これらのデバイスの I/Oポートを直接操作できるものです。つまり、特別なファームウェアやマイコンの助けを借りなくても、少ない部品でポートに接続した LED を点灯させたり、リレーを操作したり、スイッチの状態を取得することが可能になります。 BitBang モードを利用するためには、D2XX.DLL という、ダイレクトドライバー ソフト が必要になりますが、このドライバー ソフト は FTDI社のサイトから無料でダウンロードし、使用することができますし、現在では、Windows Update サイトから最新版を自動

    Bit Bang Test
  • CSV形式のファイルをDataTableや配列等として取得する

    CSV形式のファイルをDataTableや配列等として取得するCSV(Comma Separated Value)形式のファイルをDataTableや配列として読み込む方法を幾つか紹介します。ここでは3つの方法を紹介しますが、その前にCSVとはなにかについて確認しておきます。 CSV形式とは?CSV形式について、絶対的な決まりは存在していないようです。ただし、一般的なアプリケーションで使われている決まりについては、「CSV Comma Separated Value File Format (How To)」で説明されています。 要約しますと、次のようになります。 レコードは、LFまたはCRLFで区切られる。フィールドは、カンマ(,)で区切られる。区切りのカンマの前後のスペース(タブを含む)は無視される。フィールドにカンマが含まれる場合、フィールドをダブルクォート(")で囲まなければならな

    CSV形式のファイルをDataTableや配列等として取得する
  • HiBARA Software Blog

    今日は「アタッシェケース」でも使っているインストーラの話です。 現在、カレントバージョン(ver.2.75以前)では、EXEpress CXというツールを使っています。 配布したいファイル群をcab圧縮しておけば(※圧縮ツールも添付されています)、そのままインストーラとマージして簡単に作成されます。 EXEpress CX http://www.webtech.co.jp/onlinesoft/exepress/index.html 商用でないならフリーで使えますし、高機能です。何より安定感があり、好んで使っていました。 しかし、ちょっと難しいことをしようと思うと、とたんに行き詰まってしまいました。。。 「アタッシェケース」を最終的な配布状態にするには、自己実行形式ファイルのマージと、ヘルプファイルのコンパイル、UPXでの体圧縮など、一連の流れをバッチファイルで処理します。 その中で、最

    HiBARA Software Blog
  • Inno Setup : 上書きインストールかどうかを確認する

    インストーラーを作成するのに、いろいろ便利なので最近は Inno Setup http://www.jrsoftware.org/isinfo.php というのを使っているのだけど、 ちょいとその小ネタを。 Inno Setupには、前回インストールしたものに対して バージョンアップしたものを上書きインストールしたい場合に、 前回インストールしたときのフォルダを検出して 自動的にそこにインストールしたりしてくれるような 機能が用意されていたりはするのだけど、 「旧バージョンがインストールされてるけどアップデートする?」 的なメッセージを表示させるような機能は用意されていないので、 それを作ってみた。 ・・・作ってみたのだが、 これがまた簡単そうで意外と面倒くさかった。 [Code] セクションで自前でスクリプトを書かなければならず、 全く書いたことのなかったよくわかんらんPascal言語の

  • イベントのnullチェック回避 - yohhoyの日記

    イベントに予め “空の匿名メソッド” を登録しておくことで、イベント呼び出し時にnullチェックを逐一記述する必要がなくなる。Null Objectパターン*1。 public delegate void SomeHandler(object sender, SomeEventArgs e); public event SomeHandler SomeEvent = delegate {}; // ★ protected virtual void OnRaiseSomeEvent(SomeEventArgs e) { SomeEvent(this, e); } このパターンを利用しない場合、イベント呼び出し処理は下記のようになる。*2 protected virtual void OnRaiseSomeEvent(SomeEventArgs e) { SomeHandler handler

    イベントのnullチェック回避 - yohhoyの日記
    linden
    linden 2016/04/26
    コロンブスの卵的な
  • シリアライズの基本 - smdn.jp

    シリアライズ(serialize、永続化、シリアル化)とは実行中のアプリケーションにおけるオブジェクトの値(状態)を、バイナリ形式やXML形式などに変換して保存することを言います。 シリアライズすることによって、オブジェクトをファイルとして永続的に保存したり、ネットワーク経由で送信して別の場所で復元したりするといったことが出来るようになります。 シリアライズしたものをオブジェクトの形に復元することをデシリアライズ(deserialize、逆シリアル化)と言います。 .NET FrameworkのSystem.Runtime.Serialization名前空間およびSystem.Xml.Serialization名前空間には数種類のシリアライザと、その動作を制御するインターフェイス・属性が用意されています。 ここではシリアライズ・デシリアライズという用語を用いて、.NET Framework

    シリアライズの基本 - smdn.jp
  • どんなオブジェクトでもコピーできる汎用のディープコピー処理(ICloneable, MemberWiseClone, Serializable, BinaryFormatter, MemoryStream) - tekkの日記 C#,VB.NET

    シリアライズを利用した汎用のオブジェクトのディープコピー処理について整理しました。BinaryFormatterを使用してMemoryStreamに対してシリアライズ/デシリアライズを行いオブジェクトのメモリイメージのコピーを作成するテクニックです。理論上、Serializable属性を付与したすべてのオブジェクトに対してディープコピーが可能になります。 ICloneableインタフェース、MemberWiseCloneメソッドを使用したシャローコピーについては以下の記事を参考にしてください。 ■オブジェクトのコピー。ICloneableインタフェース、MemberWiseClone、シリアライズを利用したインスタンスのコピー。 http://d.hatena.ne.jp/tekk/20091012/1255362429 C# ジェネリック版と拡張メソッド版の2種を用意してみました。 us

    どんなオブジェクトでもコピーできる汎用のディープコピー処理(ICloneable, MemberWiseClone, Serializable, BinaryFormatter, MemoryStream) - tekkの日記 C#,VB.NET
  • 2010-05-16

    2010-05-16 はじめての Steam for Mac game Mac 版の開始は 12 日だと聞いていたけど、それは現地時間での日付であったらしく、日時間でいうところの 13 日だった。 前回 Windows 版で Portal の試用版 (Portal: The First Slice) を試したので、同じのを Mac 版で試すつもりだったけど、Mac 版リリ… 2010-05-16 はじめての RRoD game Xbox 360 の前面にあるリングライトは、電源を投入すると緑色に光る。また、故障を検知すると赤く光って教えてくれる。 購入してから 3 年半、ついにうちの Xbox 360 でもこの赤いリング (いわゆる RRoD) を見ることになった。金曜日の帰宅後に電源を投入し… 2010-05-16 .NET: はじめての MEF prog Managed Extens

    2010-05-16
  • MVVM:コードビハインドに記述しても良いと思う:Gushwell's Dev Notes

    Messengerを理解するために自作してみた(1)-(3) Messenger+Behaviorを理解するために自作してみた(1)-(3) でとりあえず、コードビハインドにコードを記述せずに、ViewModelからViewを操作する 方法については理解したつもりだけれど、 それでも、今の僕の経験と知識では、コードビハインドに次のようなコードを書いても、 良いんじゃないかなーと思ってます。 private void button1_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("実行しますか", "確認", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { vieewModel.Execute(); } } こう主張すると、 「コードビハインドにView以外のロ

  • ViewのコードビハインドからViewModelの型や実装をを気にせずメソッド&プロパティにアクセスする - Qiita

    public partial class View : Window { public View() { InitializeComponent(); } private void View_Drop(object sender, DragEventArgs e) { var dropFileList = (e.Data.GetData(DataFormats.FileDrop) as string[]).ToList(); // ここから先はViewModelの処理としたい } } ドラッグ&ドロップで渡されたファイル(パス)の処理はViewModelの責務じゃないかなと思うんですよ。 Modelに渡したりとかするわけですし。 ViewModelクラスにはその為の処理としてpublic void AddDragAndDropsFiles(List<string> fileList)ってメ

    ViewのコードビハインドからViewModelの型や実装をを気にせずメソッド&プロパティにアクセスする - Qiita
  • GUIアーキテクチャパターンの基礎からMVVMパターンへ

    Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.

    linden
    linden 2015/02/02
    わかりやすい
  • MVVMのModelにまつわる誤解 - the sea of fertility

    こちらに移転してきて初めての記事です。 最近たまに話題になるので書いておきます。MVVMのModelについて誤解されやすい部分のお話です。最近よく議論してるasync/awaitの話とは関係がありません。なおこの話は以下のスライドを理解している事が前提となります。 共有したい理解(ゴール) ViewModelはModelの影 ModelについてViewModelが行うことは、イベントに対する反応と戻り値のないメソッドの呼び出ししかない事 これについての理解を共有できるよう説明していきます。 VIewModelはModelの影 スライドにもしつこく書きましたが、MV○(MVVMやMVC/MVP)のModelは大変分厚くなるし、アプリケーション間で使いまわすことなんてできません。ModelはUIを意識しない??いや、何度も言っていますが、意識はする必要があるんです。ただUI実装の知識が必要ない

    MVVMのModelにまつわる誤解 - the sea of fertility
  • C++等で、for 文を unsigned int のカウンタで N から 0 までループをするときに for( unsigned int i=10; i>=0; i-- ) と書くと、i=0 の次は正の最大値になって…

    C++等で、for 文を unsigned int のカウンタで N から 0 までループをするときに for( unsigned int i=10; i>=0; i-- ) と書くと、i=0 の次は正の最大値になってループが終わりません。 皆さんはこういう場合(たとえばvectorを逆順にアクセスし、インデクスの値もループ内で使いたい場合)どうしますか? 非常に主観的かつ興味位ですが、int を使う以上に「気持ちいい」解決策があれば見てみたいと思い質問しました。

    linden
    linden 2014/08/29
    なるほど
  • MVVMパターンとは?

    Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.

    linden
    linden 2014/08/29
    なるほど
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    linden
    linden 2014/05/26
    『コードを書く→中略→リロードする→エラー画面が出力される→すぐにコードの画面に戻る』…なんか呼ばれた気がする
  • 些末なコードレビュー - naoyaのはてなダイアリー

    朝起きて布団から出るのがつらいので、HBFav をつらつらと眺めていた。 あるサービスの JavaScript が重いとか、そのコードが難読化されてないとか、担当者とおぼしき人間が書いたコメントがそのまま残ってるから消しましょうよとか、そんなことが書かれていた。JavaScript が重い、という話は結局そのサービスの JavaScript が重かったのではなく、ユーザーが自分で導入した広告が重いというだけの話だった。 コードが難読化されていない、趣味の製品ではなく会社の製品なのでコメントそのまま残ってるから消しましょう・・・実にくだらない。 ところで話は変わってコードレビューについて。 コードレビューに慣れないチームが、何の考えもナシにコードレビューを始めるととにかく気になったこと大小様々な指摘が行われることになる。一見、いろいろな指摘が出て議論が活発になっているように見えるが、だいたい

    些末なコードレビュー - naoyaのはてなダイアリー
  • .net Framework4 MEF 超入門 其の一

    MEFについて、お話をば。 MEFとは?.net Framework4 からの新機能の1つです。M (Managed) E (Extensibility) F (FrameWork)の略で、MEFです。 簡単に言ってしまって、容易にプラグイン実装ができてしまう機能がMEFです。今回の記事では、MEFの流れについて書きたいと思います。 MEFの流れ

  • WPFアプリケーションの国際化対応 - かずきのBlog@hatena

    リソースファイルを使う方法が簡単そうなので、試してみました。参考にしたのは以下のサイトというか、ほぼそのままですね。自分用メモという意味合いが強いです。 WPFの国際化対応 デフォルトで用意されてるResources.resxに加えてResources.ja-JP.resxを作成します。 中身はこんなかんじ。アクセス修飾子をPublicにしておくのがポイントです。 Resources.ja-JP.resxの中身はこんなかんじです。同じキーに対して違う文字列を割り当ててます。こちらはコード生成なしになってるのがポイントですね。(自動でなしになってるはず) そして、このクラスをApp.xamlのResourcesとして登録します。 <Application x:Class="WpfResource.App" xmlns="http://schemas.microsoft.com/winfx/2

    WPFアプリケーションの国際化対応 - かずきのBlog@hatena