タグ

ブックマーク / torutk.hatenablog.jp (21)

  • Rust事始め(続) - torutkのブログ

    Rustのソースファイル構成 Rust では、標準のビルド&パッケージ管理システム Cargo を使いビルドを行います。 このビルドでは、ソースファイルのディレクトリ及びファイル名にかなり独特の制約があります。 単一のソースファイルから単一の実行ファイルを作成する Cargoパッケージ お馴染みの Hello worldプログラムの構成です。 任意の作業ディレクトリにて、次のcargoコマンドでバイナリクレートを1つ持つパッケージを作成します。 D:\work> cargo new hello_world パッケージとは、クレートをビルド・テスト・共有する単位(ひとまとまりのビルド)です。 クレートとは、実行可能ファイルまたはライブラリファイルを生成する単位です。前者をバイナリクレート、後者をライブラリクレートと呼びます。 cargo newコマンドでパッケージを作成します。パッケージ名を

    Rust事始め(続) - torutkのブログ
    clavier
    clavier 2021/08/22
  • イベントバスとリアクティブプログラミングの違いについて - torutkのブログ

    GUIを持つアプリケーションの設計では、ソフトウェアアーキテクチャパターン*1としてMVCパターンを使用し、MVCパターンを実現する上で、Modelの変更をViewやControllerへ通知する仕組みにデザインパターン*2としてObserverパターンを使用するのが古典的定番です。 ところが、Observerパターンを使ったModelには、Observableのリストを管理し、状態変更の際にリストに登録されるObserbable全てに通知する仕組みを実装する必要があり、結構な作業となります*3。 このModelからの通知をObserverパターンで実現する代わりに、イベントバスを使って実現すると、Modelの実装を簡潔にすることができます。Java SEではあまり事例を見かけませんが、Androidでは割とメジャーに使われているようです。 先日、Androidでイベントバスのライブラリを

    イベントバスとリアクティブプログラミングの違いについて - torutkのブログ
  • 「データ分析勉強会 第3回 Rで紐解くソフトウェアメトリクス」に参加してきました - torutkのブログ

    はじめに ソフトウェア品質技術者の勉強会コミュニティ(と称していいのかな?)による、この5年くらい月1回のペースで継続的に開催されている「(ソフトウェア品質技術者のための)データ分析勉強会」において、この7月に統計ツールRの基操作的な勉強会が開催されると知ったので参加しました。この勉強会には初参加です。 2015/07/11 第3回 Rで紐解くソフトウェアメトリクス - ソフトウェア品質技術者のための「データ分析勉強会」 復習の意味を兼ねて、ツールの操作をたどりながら日記を記述しています。 動機 品質系はちょっと苦手な開発サイドのエンジニアでも、統計をちょっと使いこなすことが必要な場面があります。パフォーマンス改善がその一例です。改善前と改善後のパフォーマンスを計測して改善効果があるのかどうかを判断することがよくあります。改善前と改善後それぞれで、何回計測を実施すればよいでしょうか、計

    「データ分析勉強会 第3回 Rで紐解くソフトウェアメトリクス」に参加してきました - torutkのブログ
  • 「Javaパフォーマンス」を読む会(第1回)に向けて - torutkのブログ

    Java読書会BOF主催のJava読書会では、先月で「APIデザインの極意」が読了となったので、今月から読む課題図書の投票を実施しました。 http://www.javareading.com/bof/ 投票の結果、1位で「Javaパフォーマンス」が選定されました。 4月に日語訳が刊行されたばかりのです。パフォーマンス系のは人気があります。 Javaパフォーマンス 作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型この商品を含むブログ (12件) を見る なお、2位は「Java SE 8実践プログラミング」でした。Java SE 8はJava読書会BOFでも昨年洋書「Java 8 Lambdas」を課題図書として取り上げましたが、ラムダ式(とStream API)だけ

    「Javaパフォーマンス」を読む会(第1回)に向けて - torutkのブログ
    clavier
    clavier 2015/06/21
    「Javaパフォーマンス」を読む会(第1回)に向けて
  • アプリケーション設計のやり方を調べはじめる - torutkのブログ

    Androidアプリケーションは、画面主体で、データはネットワーク越しにあることが多いので、その設計は従来のクライアント/サーバー・アーキテクチャにおけるクライアント側アプリケーションと類似点があるように見えますが、そこからいくつかの発展が必要です。 データの更新(とそれに伴う表示の更新)は、クライアント側からのトリガー(画面で検索や登録操作をしたらサーバーへ要求を送ってその応答をもって画面を更新)だけでなく、メッセージの着信的なサーバー側からのトリガー(サーバー側でデータの更新が発生し、それをクライアントに通知して画面を更新)もあります。 オフラインでもアプリケーションを起動して限定された機能を果たすこともあります。その場合、データをクライアント側に持っておく必要があります。 アプリケーション(プロセス)は、常時実行し続けているのではなく、ActivityやServiceは落ちていること

    アプリケーション設計のやり方を調べはじめる - torutkのブログ
  • 「APIデザインの極意」を読む会(第1回)を実施しました - torutkのブログ

    Java読書会BOF主催の「APIデザインの極意 Java/NetBeansアーキテクト探求ノート」を読む会(第1回)を10/25(土)に実施しました。今回は第1回なので表紙、著者・訳者紹介、前書きから朗読していきました。そのため、原題"Practical API Design: Confessions of a Java Framework Architect"の意味(confessionって何? 教会での懺悔の意味もあるみたいだよ、といった議論)や、邦題ではどうしてNetBeansや探求ノートが入ったんだろう、などといったことも議題に上りました。 今回の読書範囲は表紙からp.37まで、おおよそ60ページ弱でした。 来月は11月29日(土)開催予定です。参加者募集中です。 気になった事柄のメモ 私は、APIを設計する方法を知っていると思い込んでいましたが、他のエンジニアに守ってほしい最も

    「APIデザインの極意」を読む会(第1回)を実施しました - torutkのブログ
  • [CentOS][Redmine]CentOS 6, 7にRedmineとUnicornとNginxをインストール - torutkのブログ

    CentOS 6上にRedmine 2.5.1とUnicornとNginxとをセットアップしたときの記録を次のWikiに書きました。 RedmineをCentOS 6上で動かすーUnicornとNginx編 - ソフトウェアエンジニアリング - Torutk よくRedmineのセットアップ記事にはSELinuxは無効にすると書かれていますが、UnicornとNginxではSELinuxが有効の状態で稼動しました。 そうこうしていたら、CentOS 7のリリースがありました。 KVM仮想ゲストにCentOS 7をインストールしたことを以下に書きました。 CentOS 7のリリースとKVMゲストインストール - torutkの日記 その後に、Redmine 2.5.2とUnicornとNginxをセットアップした記録を次のWikiに書きました。 RedmineをCentOS 7上で動かすーU

    [CentOS][Redmine]CentOS 6, 7にRedmineとUnicornとNginxをインストール - torutkのブログ
  • Redmine、Unicorn、Nginxでの動作安定化(タイムアウトとメモリ関係) - torutkのブログ

    あるプロジェクト用に構築したRedmineがすこぶる不安定となっています。仮想ゲストのCentOS 6.5にUnicornを入れてRedmineを動かし、前段にNginxをリバースプロキシで動かしています。不安定なときはログを見るとNginxでタイムアウトが発生しています。どうやらUnicornの応答がときどきなくなっている感じです。このプロジェクトでは、巨大なファイル(GBオーダー)がばんばん添付としてアップロードされています。ディスクフルも起きています。 他にもUnicornとNginxで動かしているRedmineがありますが、不安定の発生する傾向としてはサイズの大きなファイルを添付したりダウンロードしたあとに発生しているようです。 安定化のためには、UnicornとNginxの設定を見直す必要がありそうです。しかし、今まではインターネット上にある設定をほぼ真似て動かしていただけで、パ

    Redmine、Unicorn、Nginxでの動作安定化(タイムアウトとメモリ関係) - torutkのブログ
  • Redmineのアジャイル開発向けプラグイン - torutkのブログ

    Redmineを使ってチケット駆動開発を管理する際、開発プロセスにアジャイル開発(Scrumなど)を採用すると、開発タスクを「かんばん」で管理し、イテレーション(Scrum用語ではスプリント)の進捗をバーンダウンチャートで可視化するというのが定番です。 Redmine標準機能では、イテレーションをバージョンで定義し、開発タスクのチケットをバージョン毎に一覧化するロードマップで可視化することができますが、「かんばん」の一目瞭然にはかなわないですし、バーンダウンチャートがないのでロードマップとガントチャート(稲ライン)で把握することになります。アジャイル開発するには不満が出るところなので、いくつかアジャイル開発のプラグインが出ています。 アジャイル開発のプラグインで有名なのが「backlogsプラグイン」です。 http://www.redminebacklogs.net/ ただし、Redm

    Redmineのアジャイル開発向けプラグイン - torutkのブログ
  • ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ

    少人数チームでのソフトウェア開発でソースコードを管理するリポジトリにGitを適用して1,2ヶ月ほど経過しました。Gitを開発に使用するのは今回が始めてで、みなSubversionを使っていたメンバーです。 開発環境 OS Linux、たまにWindows 開発言語 Java プログラミングツール NetBeans 7.4 Gitクライアント NetBeans標準搭載のGit機能、たまにコマンドライン、WindowsではたまにTortoiseGit Gitサーバー apacheでgit-http-backend、Redmineと認証統合 現在の使用状況 Gitの共有リポジトリを、開発サーバー上にapache(HTTP)でホストしています。 共有リポジトリはmasterブランチで、各メンバーはローカルにcloneしたあとローカルのmasterで変更作業を実施し、適宜共有リポジトリのmast

    ソースコード管理ツールをSubversionからGitへ変更して感じたこと - torutkのブログ
  • バージョン管理ツールGit - torutkのブログ

    仕事でのソフトウェア開発ではバージョン管理ツールにたいていSubversionを使っています。主な理由は、 マルチプラットフォーム対応 割と安定している 一開発者として必要な操作を覚えるのが簡単 情報(日語)が多い といったところでしょうか。 Subversion以外のツールを使ったのは 一人で、試行錯誤が多い作業をするときにMercurial 開発現場が地理的に離れ、ネットワーク的に切り離されていたときにBazaar です*1。 Mercurialは、リポジトリと作業ディレクトリが同じでよいという1台のPCで作業&管理するときに手軽な点で使いました。このときBazaarの存在は知らず、GitWindowsではまだ使い物にならなかった頃です。 Bazaarは、分散がまさに必要だった環境で、また、WindowsLinuxから日語ファイル名を扱うという状況だったので、その時点ではほぼ一

    バージョン管理ツールGit - torutkのブログ
  • プラグイン作成はそんなに簡単ではない - torutkのブログ

    はてな日記が前回更新から1か月近く経ってしまいました。この間、Redmineのプラグインづくりにチャレンジしていたのですが、じりじりとしか進んでいませんでした。仕事から帰宅後に作業開始し、四苦八苦して睡魔に襲われ中断、また翌晩再開、予定のない休日は数時間ほどまとまって作業ができるのですが、それでもなかなか進まず、頓挫に近い状況が続きました。 Redmineプラグインの作り方のガイド 運よく、Redmine 2.xに対応したRedmineプラグイン作成のチュートリアル記事が公開されています。 「Railsを知らない人のためのRedmineプラグイン開発ガイド」 http://www.r-labs.org/projects/r-labs/wiki/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E3%82%AC%E

    プラグイン作成はそんなに簡単ではない - torutkのブログ
  • JDK8のソースコード(標準API)を見る - torutkのブログ

    今年9月リリース予定のJava SE 8は、現在開発途中のスナップショット版が週1回のペースで公開されています。(開発者向けプレビューの位置づけ) Java SE 8で新たに導入されるDate and Time APIのソースコードを見てみようとこのプレビュー版(3/14付のjdk8 b81)に含まれるsrc.zipを展開してみましたが、java.timeパッケージが含まれていません。そこで、jdk8のソースコードを入手して中を調べてみることにしました。 まず、JDK8のプロジェクトサイト(以下URL)へアクセスし、source のリンクを辿りました。 http://jdk8.java.net/ すると、バージョン管理リポジトリの変更/タグのサマリページに飛んでしまいます。ここにbz2/zip/gzといったリンクがあるので、これをクリックすれば一式ダウンロードできるかと思い、bz2を落とし

    JDK8のソースコード(標準API)を見る - torutkのブログ
  • Redmine 2.1.4から2.2.0へアップデート実施エラー記録(CentOS 6.3) - torutkのブログ

    Redmine 2.2.0がリリースされたので、CentOS 6.3上で動作しているRedmine 2.1.4からのアップデートを実施してみました。今回は、大きな変化がないと予想していたのですんなりアップデートできると思っていましたが、予想は外れていろいろ障害を乗り越える必要が出てしまいました。 bundle install時、xapian-fullでエラー bundle installを実行したときに、xapian-full gemをインストールしようとし、その際にエラーが発生しました。 Installing xapian-full (1.2.3) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. : configure: err

    Redmine 2.1.4から2.2.0へアップデート実施エラー記録(CentOS 6.3) - torutkのブログ
  • 第4回shinagawa.redmine勉強会に参加してきた - torutkのブログ

    Issue Tracking Tool(ITS)のRedmineに関する勉強会です。毎回すぐに定員になってしまう人気の勉強会の1つです。公式ハッシュタグは従来通り#47redmineです。 第4回勉強会内容 実は今日は日Javaユーザーグループ主催のクロスコミュニティカンファレンスが開かれていたのですが、先にRedmineを申し込んでおり、仕事での活用度が高いツールなのでRedmine勉強会に出ることにしました。 shinagawa.redmine勉強会は、セッション(講演)と、グループスタディの2立てで構成されており、単に聞いておしまいという勉強会とは違う特色があります。 セッション 「チケット駆動開発のフレームワーク〜現場の経験知からパターン言語へ」(@akipiiさん) @akipiiさんは、次の2つの書籍の著者の1人である小川さんです。 Redmineによるタスクマネジメント実

    第4回shinagawa.redmine勉強会に参加してきた - torutkのブログ
  • インフラいじり - torutkのブログ

    先週、次のブログでRedmineの応答性能に関する発表スライド(2012-10-20 RxtStudy)を知りました。 http://forza.cocolog-nifty.com/blog/2012/10/redmineits-rxts.html スライドは次のURLです。 http://www.slideshare.net/kakahane/rx-tstudy6 職場からはslideshareがアクセス禁止になっているので、自宅ワークになります・・・。 スライド、Redmineが1.x系列から2.x系列になる(=Ruby on Railsが2.3系から3.2系になる)と、応答性能劣化が発生するけれど、チューニングすればRedmine 1.x系列と同等以上に速くなります、という内容です。 なお、Redmine 2.0から2.1で性能改善が少しあります(スライドp.15)。 このスライドの

    インフラいじり - torutkのブログ
  • JavaOne2006の資料が音声付きで公開 - torutkのブログ

    明後日開催の「Java読書会」の予習がてらEscape analysisについて調べてJavaOne2006のテクニカルセッション資料に行き当たりました。 日サンのSDCのサイト上で、PDF資料と音声付きプレゼンと2種用意されています。 https://sdc.sun.co.jp/java/learning/javaoneonline/2006/index.html

    JavaOne2006の資料が音声付きで公開 - torutkのブログ
  • 2006-11-03

    OpenJDKに、HotSpotの始め方の続きが次々と出てきました。追いかけが間に合わないペースです。2回目は、コマンドライン引数についてです。 http://blogs.sun.com/sundararajan/entry/hotspot_source_command_line_arguments 今日時点では、すでに3回目classloading、4回目ServiceabilityAgentが上がっています。 簡単に内容をメモ。 まず、Java(HotSpot)で有効なコマンドライン引数をまとめたページ"A Collection of JVM Options"を見よ、とあります。(ただしこのページを見てチューニングなぞ試みるな、かえって遅くなるだけだよ) HotSpotに対するコマンドライン制御は以下の2つのファイルにあるそうです。 hotspot/src/share/vm/runti

    2006-11-03
    clavier
    clavier 2006/11/06
    NetBeans
  • HotSpotソースコードの読み方 - torutkのブログ

    Planet JDKに上がっていたBlogで、HotSpotコードの読み方に興味を持ちました。 http://blogs.sun.com/sundararajan/entry/so_you_want_to_read こちらは、まずはHotSpotのソースを読むためのスキル・ツールの説明。 知識としては、C/C++、アセンブラの素養、そしてJava Java仮想マシン仕様(2版)、バイトコードの理解を促進するのにJavaアセンブラを使うとよい(ツールとしてはJasmin) ASMやBCELといったバイトコード操作ライブラリ javap ディスアセンブラ jclasslib Javaクラスファイル可視化ツール DoxygenやOpenGrokなどのソースコードブラウザ http://blogs.sun.com/sundararajan/entry/hotspot_reading_where_d

    HotSpotソースコードの読み方 - torutkのブログ
  • JSR-296 Swing Application Framework - torutkのブログ

    2008年リリース予定の次々期Java Standard EditionであるJDK 7をターゲットに仕様化が進められているGUIフレームワークです。標準搭載のGUIツールキットであるSwingは高機能なのですが複雑で習得が難しいため、簡単に開発ができるお手軽GUIフレームワークとして開発が進められています。 2006年のJavaOneサンフランシスコで概要が紹介されています。JSR-296の方はまだ仕様の公開までは達していないようです。 http://developers.sun.com/learning/javaoneonline/2006/desktop/TS-3399.pdf Swing APIを使ってアプリケーションをいくつも作ってきたベテランの人にはあまりありがたみはないですが、初心者はSwing APIの使用上の注意をフレームワークがカバーしてくれます。 上記資料によると、以

    JSR-296 Swing Application Framework - torutkのブログ