タグ

ブックマーク / www.nslabs.jp (5)

  • 第1回 IPv6ソケットプログラミング [C++] | Netsphere Laboratories

    (2006.8.5 ページを独立。) C/C++でのIPv6ソケットプログラミングについて。 ソケットについてはすでに掃いて捨てるほど解説サイトがあるが、IPv6に対応した、しかもポータブルな書き方を紹介しているところは見当たらなかった。 目次: サーバを作る クライアントを作る IPv6, IPv4を区別するサーバ @ サーバを作る まず、ソケットでIPv4あるいはIPv6クライアントからの接続を受け付けるプログラムを作ってみる。Fedora Core 5 Linuxで試した。 IPv4 onlyのときの典型的なコードは、次のようになる。※現代ではこのように書いてはいけません。 /** * TCP で listen する. IPv4 only. 実コードで使用不可! * * @param node bind() するホスト名. NULL の場合 INADDR_ANY. * @param

    kuenishi
    kuenishi 2010/09/16
  • Rubyでクロージャ、カリー化 | Netsphere Laboratories

    (2006.1.28の日記を修正、加筆。) (2006.10.8 新規公開。) Rubyの生産性の高さの理由のひとつクロージャ (closure; 閉包) と、関数・クロージャの単位で再利用できるようにするカリー化について。 コールバック関数 Rubyの話のまえに、クロージャのないC/C++で関数を再利用する方法、その問題点を見ていく。 まずは、単純なコールバックについて。コールバックといえばqsort()関数。引数として二つの値を比較する関数を渡す。 #include <stdlib.h> #include <stdio.h> int compare(const void* a, const void* b) { return *(const int*)a - *(const int*)b; } int main() { int a[] = {3, 4, 1, 2}; int i; qs

    kuenishi
    kuenishi 2008/02/13
  • スレッドプログラミング (pthread) | Netsphere Laboratories

    (2007.6.26 新規作成。2007.7.11 更新。) C言語でのpthreadの関数の使い方について簡単に解説します。C++だと boost とかを使ったほうがいいですが、内部でどのように動いているか見るためにprimitiveなライブラリを使います。 Windows でも互換ライブラリがあります。vcpkg package - pthreads まず、わざとデッドロックさせてみます。ここまではすでにいろいろなサイトで解説されています。加えて、どうやってデッドロックを回避するか考えてみます。 以下は、Fedora 7 Linuxでテストしています。 題材 題材ですが、あまりにメジャーな「哲学者たちの事」Dining Philosophers Problem を用います。 哲学者たちの事; 専ら考えることを生業とする5人の哲学者たちがひとつの丸い卓に座っている。中央には大きな皿

  • Ruby on Rails 〜レールの路線図〜

    2006.1.21 に Rubyist九州 Meeting 第1回にて発表した, Ruby on Rails のスライドです。2005年12月に Rails 1.0 が出ました。その前後, 同月に初めて Railsに触ったので、まだほんの初歩的、序の口のところです。http://jp.rubyist.net/?rubyist-kyushu-memo01 リンク切れ [2021.5] ざっと現代の状況に更新。Ruby 3.0 + Ruby on Rails v6.1. サンプルコード netsphere / rails-examples · GitLab このページ. アプリケィションひな形の起動まで。 ページ2 最初のDBアプリケィションづくり。 ページ3 はじめに 21st Jan 2006 堀川 久 https://www.nslabs.jp/ [2021.5] Webアプリケーション

  • ICUを使う | Netsphere Laboratories

    IBMによるUnicodeライブラリ、ICUを使う。 2005.4.29新規公開。2000.6.14の日記に加筆、修正。 2005.5.15 更新。 インストール Unicodeを扱うためのライブラリはいくつかあるが、IBMによるUnicodeライブラリICU "International Components for Unicode" を試してみる。 ICUはC++版とjava版がある。2011年1月現在の最新版はバージョン4.6。CLDR (Unicode Common Locale Date Repository) 1.9, Unicode 6.0に対応している。 次のサイトから入手できる。 ICU - International Components for Unicode あるいは、Fedora Linuxには、パッケージが含まれている (rpm名=libicu-devel)。

    kuenishi
    kuenishi 2006/10/25
    iconvで文字コードを変更/変換できる
  • 1