« 2013年12月 | トップページ | 2014年2月 »

2014年1月

2014/01/30

ドコモメールが意外と使えていい感じ

遅ればせながら、sp モードメールをドコモメールに変更したのですが、これが意外といい感じです。

ドコモも本気を出せば、結構できる子だったようです。

sp モードメールの悲劇の日々は何だったのか(笑)。

メールが消滅するは、使い勝手が悪いは、障害はよく起こすはで、散々だった sp モードメールでしたが、ドコモメールで生まれ変わったと言ってもいいでしょう。

そのドコモメールのどの辺がよいのか、軽くご紹介しましょう。

続きを読む "ドコモメールが意外と使えていい感じ" »

2014/01/25

CentOS でネットワークに関するファイル4つ

CentOS でネットワークがらみで問題になったとき、毎回調べているのでメモ。

1)/etc/sysconfig/network-scripts/ifcfg-eth0

ネットワークデバイス eth0 の設定を行う。

MAC アドレス、プロトコル、IPアドレスなど。

DEVICE="eth0"
HWADDR="08:00:27:24:B9:D1"
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO="none"
TYPE="Ethernet"
IPADDR="192.168.11.11"

2)/etc/resolv.conf

DNS サーバーの設定を行う。

nameserver 192.168.11.1

3)/etc/sysconfig/network

ゲートウェイアドレスの設定を行う。

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.11.1

4)/etc/udev/rules.d/70-persistent-net.rules

ネットワークデバイスの設定を行う。VM のコピーなどで、MAC アドレスが変わると eth1 が追加されて通信できなくなるので、その時に対処する(eth0 を削除して eth1 を eth0 にする)。

# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:24:b9:d1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

なお、1)~3)はネットワークサービスの再起動で有効になるが、4)は OS の再起動が必要。

2014/01/21

Visual Studio Express 2013 から GitHub を利用する

はじめに

Visual Studio Express 2013 では、無料版にもかかわらず、バージョン管理ツールとして Git を使用することができます。しかも、リモートリポジトリも利用可能です。

折角ですので、GitHub を Git のリモートリポジトリとして利用してみましょう。

続きを読む "Visual Studio Express 2013 から GitHub を利用する" »

GitHub アカウントの作成方法

GitHub と言えば、オープンソースプロジェクトでなら無料でいくらでも Git のリモートリポジトリを作成できる人気の Web サービスですね。

でも、意外と、最初のアカウントの作成で、Web サービスの使用を諦めてしまう人がいそうなので、GitHub のアカウント作成方法を載せておきます。英語サービスですし。

続きを読む "GitHub アカウントの作成方法" »

2014/01/16

ブログ論が流行っているようですね。

なにやらブログ論とやらが、流行っている模様。

このビッグウェーブに乗らねばならぬ!

というのは冗談で、いい機会なのでブログについて思うことを簡単に書いておこうかと思います。

続きを読む "ブログ論が流行っているようですね。" »

2014/01/13

自宅のネットワークで IPv6 を使えるようにするのが思いの外大変だった

こちらの記事で、さくら VPS の CentOS を IPv6 環境にしたので、動作確認をしようとしたのですが思いの外大変でした。

最初は、自分のネットワーク環境を変更することなく、単純に以下のように ping を打てば IPv6 で接続できるかと思っていたのですが、いつまでたってもできないw(今にすれば当たり前ですが)

> ping -6 hostname

何度やっても失敗するので、さすがにこれはおかしいと思い調べてみると、ネットワーク環境が IPv6 になっていないと IPv6 のサービスは利用できない模様。OS がサポートしていればよいと思っていたし、今まで縁がなかったので、寡聞にして知らなかったです。

そこで、契約している J:COM のサイトで確認してみると、IPv6 サービスが 160Mbps プランを契約していれば無料で追加契約できるとのこと。

この辺が分かるまで、ネットを調べたり、J:COM のサイトを読んだり、J:COM に問い合わせなどを行っているので時間が大分かかっています。半日くらいでしょうか。

続きを読む "自宅のネットワークで IPv6 を使えるようにするのが思いの外大変だった" »

2014/01/12

Linux セキュリティ標準教科書を読んでみた

Linuxセキュリティ標準教科書

Linux セキュリティの教科書と言われている LPIC 発行の『Linux セキュリティ標準教科書』を読んでみました。

上記リンクからアクセスすると無償の PDF 版が入手できるのです。ですが、個人情報を入力する必要がありセールスレターが送られてくるのが嫌なので、私は 200 円の Kindle 版を購入し読んでみました。

前半は、なんというか物足りない内容でしたが、後半に入ると、具体的な対策とツールの解説が増えてきてなかなかよかったです。

Linux セキュリティの基本の見直しとして、一度読んでみるのはいい本だと思います。

 

Linuxセキュリティ標準教科書 Linuxセキュリティ標準教科書
伊本貴士,面和毅,藤森健,小石川雅紀,安田恭行,嶋中賢佑,松田神一,木村真之介,山根ゆりえ

LPI-Japan
売り上げランキング : 12369

Amazonで詳しく見る by AZlink

2014/01/11

さくら VPS の CentOS を IPv6 対応してみた

以前の記事で、さくら VPS に CentOS のサーバーを立ち上げたときの iptables の設定を載せましたが、その時は、IPv6 を無効にしたんですよね。

最近は、さくら VPS も IPv6 に対応したし、IPv6 も普及してきたであろうということで、IPv6 対応してみました。

続きを読む "さくら VPS の CentOS を IPv6 対応してみた" »

2014/01/10

Warning: never matched protocol: 51. use extension match instead. 警告対処方法

CentOS 6.5 の ip6tables で、51 ポートを許可して ip6tables を再起動すると、以下の警告がでることがあります。51 ポートのプロトコルはないよという感じですね。

-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

Warning: never matched protocol: 51. use extension match instead.

/etc/sysconfig/ip6tables の 51 番ポートの記述を以下のようにすることで回避できました。

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 51 -j ACCEPT

-A RH-Firewall-1-INPUT -p udp -m udp --dport 51 -j ACCEPT

続きを読む "Warning: never matched protocol: 51. use extension match instead. 警告対処方法" »

Skitch と Excel 2010 は相性が悪いらしい

Skitch は大変便利なツールですが、どうも Excel 2010 と相性が悪いようです。

Excel 2010 がインストールされている環境に、Skitch をインストールすると、以下のような現象が発生します。

  • Excel のシートを全選択してコピーしようとすると、 「リソース不足のため、このタスクを完了することができません。選択するデータを少なくするか、ほかのアプリケーションを終了して再度試してください。」というエラーメッセージが表示される。
  • Excel アドインのショートカットキーが効かなくなる

これらの現象は、Skitch をアンインストールすることで解消しました。

なお、環境は、Windows 7 + Office 2010 です。

続きを読む "Skitch と Excel 2010 は相性が悪いらしい" »

2014/01/07

IE10 から IE11 へのアップデートを簡単に無効にする方法

※注意
2016年1月12日から、各Windows の最新バージョンの Internet Explorer しかサポートされなくなります。この方法は通用しなくなり、強制アップデートされるということですね。詳しくは以下の記事をご参照ください。

---

こちらの記事 にあるように、Internet Explorer 11 の自動更新(アップデート)が、2014 年 1 月の第 2 週から始まる予定です。

Internet Explorer 11 は、後方互換という過去の Internet Explorer との互換性を保証しないので、アップデートされてしまうと使えなくなる Web サービスが出てくることが予想されます。 

いろんな問題が起こる前に、Internet Explorer 10 から Internet Explorer 11 へのアップデートを無効にする方法を紹介いたします。

続きを読む "IE10 から IE11 へのアップデートを簡単に無効にする方法" »

2014/01/05

Entity Framework のお役立ち記事まとめ

この年末年始は、ほとんど Entity Framework の技術調査とブログ記事の作成についやしました。おかげで、Entity Framework の技術調査が進みブログ記事が増えたので、ここでまとめておきます。

基本的に、この記事に載っている情報を利用すれば、だいたいのプロジェクトで Entity Framework を活用できるようになるのではないかと妄想。

Entity Framework は、Entity Framework 5 以降、かなり魅力的なフレームワークになっていると思いますが(現在の最新は、Entity Framework 6.0.2)、日本語情報がほとんどないですね。

概要ならあるのですが、実際にコーディングしようと思うと、そこまで踏み込んだ情報がないです。掲載している記事のほとんどは英語サイトからの情報を元に作成してますし。

この記事が Entity Framework の普及に役立てば幸いです。

なお、サンプルコードは、以下の環境・内容で作成されています。

  • Visual Studio Express 2013 for Windows Desktop
  • .NET Framework 4.5
  • Entity Framework 6.0.(2)
  • 使用言語は全て C#
  • コンソールアプリケーション
  • SQL Server 2012 Express
  • [一部] MySQL 5.1 + Entity Framework 5.0

続きを読む "Entity Framework のお役立ち記事まとめ" »

[Entity Framework] SQL を直接実行する

Entity Framework は概念モデルがベースになっているので、基本は概念モデルに対して操作を行うべきなのですが、処理が複雑すぎて直接 SQL を実行せざるを得ない場合もあるかと思います。

このエントリーでは、Entity Framework で SQL を直接実行する方法をご紹介します。

続きを読む "[Entity Framework] SQL を直接実行する" »

2014/01/04

[Entity Framework] LINQ で サブクエリ(副問い合わせ)を使用してデータを取得する

Entity Framework で、サブクエリ(副問い合わせ)を LINQ で使用してデータを取得する方法をご紹介します。

続きを読む "[Entity Framework] LINQ で サブクエリ(副問い合わせ)を使用してデータを取得する" »

[Entity Framework] LINQ で「この Command に関連付けられている DataReader が既に開かれています。このコマンドを最初に閉じる必要があります。」エラーが出たときの対処方法

Entity Framework で LINQ を使用していると、タイトルのようなエラーが表示されどうしようもなくなってしまいました。Visual Studio と SQL Server の再インストールをしてもだめでした。

現象は、データベースを作成するときは正常終了し、2回目以降の LINQ によるデータ取得の時に起きます。

エラーが発生する場所は、ICollection<> で宣言している子エンティティのコレクションの取得時です。

原因がさっぱり分からず、Visual Studio と SQL Server を再インストールしてもだめでしたが、ようやく原因を特定することができました。

続きを読む "[Entity Framework] LINQ で「この Command に関連付けられている DataReader が既に開かれています。このコマンドを最初に閉じる必要があります。」エラーが出たときの対処方法" »

[Entity Framework] LINQ で遅延評価のプロパティを先読みしてパフォーマンスを上げる

こちらのエントリー で、JOIN を使わないで複数のテーブルからデータを取得する方法をご紹介しました。

しかし、この方法だと、遅延評価にしているプロパティ(子テーブル)にアクセスする際に、ループの回数分データベースにアクセスに行ってしまうのでパフォーマンスが悪化してしまいます。

この問題を回避する方法が分かりましたので、ご紹介します。

続きを読む "[Entity Framework] LINQ で遅延評価のプロパティを先読みしてパフォーマンスを上げる" »

[Entity Framework] LINQ で Group by および Having を使用してデータを取得する

Entity Framework は、Group by、および Having を使用した集計を行うことができます。

正確には、Having は実際の SQL では使用されず、Having を使用したのと同等の SQL を使用します。具体的には、Group by による集計を行った後に、where でデータの絞り込みを行います。

なかなか高度な SQL を Entity Framework は作成してくれますね。

続きを読む "[Entity Framework] LINQ で Group by および Having を使用してデータを取得する" »

[Entity Framework] LINQ で LEFT JOIN 句を使用して複数テーブルからデータを取得する

前回のエントリー では、(INNER) JOIN 句を使用して複数テーブルからデータを取得しましたが、今回は、LEFT JOIN 句を使用する方法をご紹介します。

データベース定義などは前回の通りですが、念のため掲載しておきます。

続きを読む "[Entity Framework] LINQ で LEFT JOIN 句を使用して複数テーブルからデータを取得する" »

[Entity Framework] LINQ で JOIN 句を使用して複数テーブルからデータを取得する

前回のエントリー では、JOIN 句を使用しないで複数テーブルからデータを取得する方法をご紹介しました。

しかし、この方法はデータを 1 回で取得せず、1:N の N のテーブルは必要になったときに取得する(遅延評価)ことと、全てのフィールドのデータを取得するのでパフォーマンスが若干よろしくないという部分があります。

今回は、JOIN 句を使用して複数テーブルから 1 回でデータを取得し、必要なフィールドのみ取得するようにします。

続きを読む "[Entity Framework] LINQ で JOIN 句を使用して複数テーブルからデータを取得する" »

2014/01/03

[Entity Framework] LINQ で JOIN 等を使わずに複数テーブルからデータを取得する

Entity Framework では、複数のエンティティが 1:N の関係の場合、親エンティティに子エンティティのコレクションを持ち、子エンティティに親エンティティのキーと親エンティティを持つことにより、SQL で行う JOIN などの処理を行わず複数のエンティティからデータを取得することができます。

続きを読む "[Entity Framework] LINQ で JOIN 等を使わずに複数テーブルからデータを取得する" »

[Entity Framework] ObjectContext.SaveChanges メソッドは内部でトランザクション制御を行っている

Entity Framework の ObjectContext.SaveChages メソッドは内部でトランザクション制御をしているので、データの更新に失敗すると自動的にロールバックされ例外をスローします。

ですので、特別にトランザクション処理を行う必要はありません。

SaveChanges がトランザクション内で動作します。 ダーティな ObjectStateEntry オブジェクトのいずれかを永続化できない場合、SaveChanges はそのトランザクションをロールバックし、例外をスローします。

ObjectContext.SaveChanges メソッド (System.Data.Objects)

続きを読む "[Entity Framework] ObjectContext.SaveChanges メソッドは内部でトランザクション制御を行っている" »

[Entity Framework] ObjectContext の Refresh メソッドなどが表示されない・使えない場合の対処方法

Entity Framework ネタが続きますが・・・。

System.Data.Objects.ObjectContext で、Refresh メソッドなどのメソッドが Visual Studio のコードアシストで表示されず、非常に困っていました。

でも、MSDN ライブラリやネット上のサンプルでは使用しているんですよね。

使用できない原因は分かりませんが、対処方法は分かりましたので記載しておきます。

続きを読む "[Entity Framework] ObjectContext の Refresh メソッドなどが表示されない・使えない場合の対処方法" »

Entity Framework で楽観的同時実行制御を行う【コードファースト編】

Entity Framework を使用してデータの更新を行う際、他のユーザーが既にデータを更新していた場合、「楽観的同時実行制御」という制御を行います。

「楽観的同時実行制御」とは、データ参照時に排他ロックをかけず、データの更新時に他のユーザーによってデータが更新されていた場合にエラーする制御方法です。

このエントリーでは、Entity Framework の「コードファースト」で楽観的同時実行制御を行う方法を紹介します。

続きを読む "Entity Framework で楽観的同時実行制御を行う【コードファースト編】" »

Entity Framework で楽観的同時実行制御を行う【モデルファースト編】

Entity Framework を使用してデータの更新を行う際、他のユーザーが既にデータを更新していた場合、「楽観的同時実行制御」という制御を行います。

「楽観的同時実行制御」とは、データ参照時に排他ロックをかけず、データの更新時に他のユーザーによってデータが更新されていた場合にエラーする制御方法です。

このエントリーでは、Entity Framework の「モデルファースト」で楽観的同時実行制御を行う方法を紹介します。

続きを読む "Entity Framework で楽観的同時実行制御を行う【モデルファースト編】" »

2014/01/02

Entity Framework で実行した SQL ログを出力する方法

Entity Framework 6.0 から、実行した SQL ログを出力する機能が追加されたので、その使用方法をご紹介します。

この方法で、SQL のログを確認すれば、適切なインデックスのチューニングができるようになるので、かなり有用な機能だと思います。

LINQ to SQL では、最初からこの機能が付いていたのに、LINQ to Entities では Entity Framework 6.0 までこの機能が追加されなかったのは技術的な問題でもあったのでしょうか。

続きを読む "Entity Framework で実行した SQL ログを出力する方法" »

2014/01/01

Mac のブログエディタは MarsEdit にしました

Mac で使用するブログエディタは MarsEdit にすること決め、年の初めの今日、 4,000 円で購入しました。

Pic01

続きを読む "Mac のブログエディタは MarsEdit にしました" »

[コードファースト]Visual Studio Express 2013 でも、MySQL を Entity Framework で操作可能

以下のエントリーで、Visual Studio Express 2013 (for Web/Windows Desktop) では、MySQL を Entity Framework で操作できないと書きましたが、できないのは「モデルファースト」の場合で、「コードファースト」でなら操作可能でした。

Entity Framework の「モデルファースト」は、Entity Framework の最初からサポートされている機能で、エンティティの概念モデルをダイアログ図で表示し、そのモデルからデータベースを作成し、またモデルに対してプログラミングを行うというものです。

一方の「コードファースト」は、Entity Framework 4.1 から登場した比較的新しい手法で、POCO (Plain Old CLR Object) と呼ばれるクラスに対して操作をすると、自動的にデータベースのデータが更新されるというものです。

実際に、Visual Studio Express 2013 を使用して、コードファーストで MySQL を操作する方法をご紹介します。

続きを読む "[コードファースト]Visual Studio Express 2013 でも、MySQL を Entity Framework で操作可能" »

« 2013年12月 | トップページ | 2014年2月 »



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    現在、Enty で支援を受け付けています。もしよければご支援ください。



    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから