Quantcast
Channel: Windowsの記事一覧|TechRacho by BPS株式会社
Viewing all 51 articles
Browse latest View live

Windows Phone 7 のイベントのハイライト

$
0
0
昨夜(月曜日の22時半からでした)Windows Phone 7のイベントがありました。そのイベントのまとめをしてみました。
記事がとても長くなってしまったので、まずキーポイントを挙げます

  • 9機種のWindows Phone 7を米国で11月にリリースします。メーカーはLG, Samsung, HTC, Dell。値段は199.99$(約1万6千円)
  • Windows Phone 7はすごくスムーズに動きます
  • WP7を使ってるスマートフォンは全部ハイスペック(最低限は 1GHzのSnapdragonプロセッサ)です
  • Marketplaceの情報はまだ不明です
  • 日本に発売されるかどうかも不明です
  • コピー&ペーストは2011年に出来るようになります

Windows phone 7はマイクロソフトからの新しいスマートフォンOSです。マイクロソフトの前のスマートフォンOSはあまり人気なかったため、私を含め多くの人はあまり期待してませんでした。しかし、昨夜のイベントを見た今となっては、期待してもいいと私は思います。

windows event

Microsoft CEO Steve Ballmer introduces 9 different phones running Windows Phone 7.

マイクロソフトCEOスティーブ・バルマーは9機種のWindows Phone 7を紹介してます。

windows event - Copy (55)

The various carriers and manufactures that support windows phone 7.

Windows Phone 7をバックアップしてるキャリアーとメーカー。

windows event - Copy (54)

Lock screen offering information that you want to see quickly. Time, date, appointments, mail alerts and call alerts.

ロックスクリーンは今すぐ知りたい情報を一目でわかるように作られています。時間、日付、アポイントメント、メールと電話のお知らせがすぐわかります。

windows event - Copy (53)

The home screen for windows phone 7.

ホームスクリーンです。

windows event - Copy (52)

Easy to customize. Just hold and move.

すぐ自分の好みにカスタマイズ出来ます。タイルを長押ししてそのまま動かせます。

windows event - Copy (51)

Or press the black icon to delete.

黒い丸いボタンを押すと消せます。

windows event - Copy (48)

Quickly and easily take a picture and send it. From sleep screen to camera in seconds. From photo to uploading to SNS services a few seconds more.

スリープ状態から写真を取れる状態になるまで数秒しかかかりません。大事な一瞬をすぐ撮れるように。撮った後簡単にSNSにアップロード出来る機能もついてます。自動的にアップロードする事も可能。

windows event - Copy (47)

Flip through photos as a slide show.

写真フリックしながらサクサク見られます。

windows event - Copy (46)

Full Microsoft exchange integration.  Of course Gmail and other mail services readily usable.

Microsoft exchangeと楽々同期出来ます。Gmailやその他のサービスをサポートしてます。

windows event - Copy (45)

Click on attachments. Like power point presentations.

メールについた添付ファイル(例えばパワーポイントファイル等です。)をそのまますぐに見られます。

windows event - Copy (44)

See it as its meant to be seen. With full effects.

エフェクト付きのパワーポイントファイルをパソコンと同じ風に見れます。プレゼンテーションの時この携帯があるだけでも十分です!

windows event - Copy (43)

Quickly and easily edit a presentation and attach it in an email.

Microsoftのファイルをそのまま編集出来ます。終わった後ファイルをすぐそのまま送る事も出来ます。

windows event - Copy (42)

The layout of a typical mail.

メールの見本です。

windows event - Copy (41)

What writing an email looks like. Advance auto correct keyboard. Red squiggles show if you made a typo.

メールを書く時の見本です。スペルミスを自動的に直してくれます。間違えた言葉はWordのように赤い線が現れます。

windows event - Copy (38)

Advance schedule management. Quickly and easily check your schedule to see if there is a conflict. Directions are automatically linked to Bings map.

メールに書かれたアポイントメントをスケジュールとリンクします。住所はBingの地図とリンクしてます。

windows event - Copy (37)

Calendar shows conflict.

アポイントメントの時間をクリックするともうすでにアポイントメントが入ってると知らせてくれます。

windows event - Copy (36)

Press a button to quickly Accept, Deny, or choose a message like “I’ll be late”.

ボタンをワンタッチするだけでアポイントメントを受けるか受けないか決める事が出来ます。または「到着が遅れます」等、簡単にテンプレートから選ぶ事も出来ます。

windows event - Copy (33)

Map screen of suggested dinner location.

メールに書かれた場所が現れます。

windows event - Copy (32)

Directions to get there.

住所へのルートです。

windows event - Copy (31)

Zooming in gives a bird’s eye view of the area.

ズームすると自動的に航空写真になります。

windows event - Copy (30)

Bing’s search screen.

Bingの検索画面です。

windows event - Copy (29)

Gps based suggested listings for a search for Thai Food.

「thai food」と検索すると、GPSを使って近くにあるタイ料理を知らせてくれます。

windows event - Copy (28)

Swiping the screen shows wikipedia and other internet based information links.

指でフリップするだけでタイ料理についてWikiのページと情報などが現れます。

windows event - Copy (26)

Bing’s voice search.

Bingの音声での検索画面です。

windows event - Copy (25)

Search results for “Alaska Flight 7″.

アラスカのフライト7についての情報がこんな感じに現れます。

windows event - Copy (24)

People hub showing recent people that you have interacted with.

最近関わった知り合いのハブです。

windows event - Copy (23)

Facebook and other up-to-date information about a person you clicked on.

友人の写真をクリックするとSNSサービスからの情報がすぐ見られます。

windows event - Copy (22)

All the people in your contacts. Pictures and information updated automatically through social networking sites.

知り合いの一覧です。写真は全部自動的にSNSからアップデートされます。

windows event - Copy (21)

Quick information about contact.

友人の写真を押すと知りたい情報が簡単に見られます。

windows event - Copy (20)

Automatic backgrounds created from pictures. List all pictures or by date or your favorites.

写真のハブです。バックグラウンドの写真は自動的に設定されます。全て表示、日付から表示、お気に入りを表示等、簡単に見られます。

windows event - Copy (19)

Pictures linked with Facebook quickly and easily add comments to them or see comments about them.

写真はFacebookなどのSNSとリンクしてるため、写真をスマートフォンに入れていなくてもすぐフォルダーごとに見られます。コメントを読む事、また書き込む事もすぐ出来ます。

windows event - Copy (18)

Great OneNote integration. Quickly and easily edit microsoft documents.

パソコンにあるワンノートと統合出来ます。すぐにマイクロソフトのドキュメントを編集出来ます。

windows event - Copy (16)

Cloud updates makes it easier to not worrying about having to upload after changes.

クラウドと簡単に同期出来るサービスがついてます。ファイルをアップデートするのにパソコンと同期する必要はありません。

windows event - Copy (15)

Updating a to-do list automatically updates it on Microsoft’s mobile website.

To-doリストの変更画面です。マイクロソフトのサイトにアクセスすると編集したファイルがすぐに見られます。

windows event - Copy (14)

Quickly and easily hear latest music you’ve just listened to on your phone.

最近聞いた曲の一覧画面です。

windows event - Copy (13)

Get updates automatically about new music or podcasts.

アップデートされたPodcastは自動的に知らせてくれます。

windows event - Copy (12)

Advance search system to quickly and easily listen to music you don’t already own. If you’re subscribed to microsoft’s service you can listen to complete songs.

検索するだけで聞いてみたい音楽がすぐに聞く事が出来ます。マイクロソフトの音楽サービスに入ってれば曲を全部聞くことも可能です。

windows event - Copy (11)

Album listing of songs on your phone.

スマートフォンに入ってる音楽ファイルの一覧画面です。

windows event - Copy (9)

Listening to a song.

音楽を聞いてる時の画面です。

windows event - Copy (8)

Developers already using tools to make hubs for you to use. Example: Ebay, a popular auction site.

デベロッパーはすでにアプリを作っています。ヤフーオークションのようなサービスの例です。

windows event - Copy (6)

IMDb a movie database app demonstration.

IMDbという映画情報サイトの例です。

windows event - Copy (5)

More pictures showing details of movies.

IMDbの映画情報の例です。

windows event - Copy (3)

Showing off At&t’s tv streaming service, U-verse.

At&tはテレビ配信サービスもやってます。

windows event - Copy (2)

Microsoft’s “Xbox Live” game hub app.

Xboxライブのハブです。

windows event - Copy

Highly customizable avatars.

自分のアバターをより自分らしくカスタマイズ出来ます。

game

Various parts you can customize. Head, clothes, accessories, props.

カスタマイズ出来るのは頭、服、アクセサリー、様々な小道具等です。

=====

以上です!すごく長くなってしまい申し訳ありません!いかがでしたでしょうか?

私は今すぐにでも触ってみたいです。プレゼンテーションの時は少しもラグがありませんでした。今まではiPhoneばかりが注目されていましたが、これからはWindows phone 7の時代になる可能性は高いですね。あと記事冒頭のCMも気に入ってます。

そして最後に、Windows Phone 7の様々な動画をここで見られます。ライブイベントはここで見られます。


DLNA対応ネットワークミュージックプレーヤー「LINN Player」を制作しました

$
0
0

DLNA対応ネットワークミュージックプレーヤー

LINN Player

LINN DSシリーズをコントロールする、DLNA対応ネットワークミュージックプレーヤー「LINN Player」を制作しました。スタイリッシュなデザインと、ネットワークエラー診断機能の搭載が魅力です。

alignnone size-full wp-image-8775

スマートフォンの次を行く?!Windowsが動くガラケーF-07Cを買ってみた

$
0
0


今更ながら、Windows 7とSymbian OS(iモード)のデュアルブートできるガラケー「Windows 7ケータイ F-07C」を買ってみました。
MacBook Airでも持ち歩けますが、どうしても鞄が必要。
けどF-07Cなら、ポケットに入れて持ち歩けます。

小型化の都合上、CPUのスペックが低いのが気になりましたが、
使ってみると、そこそこ実用できるスピードで動きました。IS04のAndroidより固まらないし安定してます。
しかも、Symbian側は普通のガラケーなので、
通話やオサイフケータイ、カメラなど、携帯としての機能はサクサクです。
さらにiモード、iアプリ等々にも完全対応。昨年モデル相当のガラケーの機能が普通に使えます。
iモードサイト、PCサイトが1台で両方とも完全に見られる唯一のケータイかもしれません。

一部で、「パケット代が高い」と言われていますが、
Windows側はWi-Fiで使えば、通常の携帯と変わりません。
また、128kbpsの通信であれば、月額定額315円で使用することができます。
Windows起動時&休止モードからの復帰時Wi-Fiが自動的にOFFになる仕様なのですが、
Wi-Fiを自動でONにするツールを作ってくださった方が居るようです。
Wi-Fi運用には便利かもしれません。

Windows側で最大7.2Mbpsの高速通信をする場合のみ、5~6千円前後の料金が別途発生します。
別途WiMAXやXiを契約したほうが安いかつ速いので、
高速通信が必要であれば、WiMAXやXiのモバイルルータを使うのが良いかもしれません。

一点、Windowsモードで使った場合、電池は2時間なので注意する必要があります。
重いですが、Visual Studio、Eclipseなども動くので、スマホではできなかったコーディングも一応できます。
また、Office Personalの2年版がプリインストールされているので、別途買わずともExcel, Word, Outlookも利用できます。

また、ドコモオンラインショップで販売している「クレードルセット」を購入すれば、
外部のUSB機器とディスプレイを接続して、デスクトップPCのように利用することもできます。


Windows Anytime Upgradeパック Home PremiumからProfessional
を利用して、Windows 7をProfessionalにアップグレードすれば、
他のMac/Windows上からRemote Desktop Connectionを使って手軽に接続して操作できます。
※RDCの接続先のIPアドレスがわからない時は、アクセサリのMS-DOSプロンプトで、「ipconfig」と入力することで確認できます。
VNCでも画面共有は可能ですが、VNCの場合、毎フレーム画像の差分を転送する形のため、RDCより重いです。
DVDからソフト、ゲームをインストールする際は、
プリインストールされている「DVDドライブ共有機能 クライアント」を利用できます。
これを使うと、他のWindowsマシンのDVDドライブを共有して、F-07Cで使うことができます。
まず、「DVDドライブ共有機能 クライアント」を起動し、「ホスト用プログラムのインストールファイルをコピーする」を選択します。
指定したフォルダにホスト用プログラムのインストーラーが吐かれるので、Live MeshなどでDVDドライブのあるWindowsマシンにコピー、
DVDドライブのあるWindowsマシンで、ホスト用プログラムをインストール、起動、共有します。
注意する点は、
Windowsのログインパスワードを設定していない場合は、あらかじめ設定した上で、
「DVDドライブ共有機能 ホスト」の共有モード設定を
ファイルの読み込みと実行(R)にすることです。
これを忘れると、一部のインストーラが正しく動きません。
ただ、この共有機能を使っても、インストールできないソフト,ゲームもあります。
試した中では、Rewriteなどは共有機能からはインストールできませんでした。
クレードルがあれば、USB接続のDVDドライブを使ってインストールするのが確実かもしれません。
また、MicroSDにインストールする場合、
3分間MicroSDにアクセスが無い場合アンマウントされてしまう仕様のため、
MP3ファイルなどをMicroSDに置いておき、再生しながらインストールするか、
こちらで紹介されている方法で回避しておくとスムーズです。

今のスマートフォンはiOS, Android, Windows Phoneなどモバイル用のOSが搭載されたものが多いですが、
今後端末の性能が上がれば、スマートフォンもPCも同じOSという日も近いかもしれません。

Windows 8 Enterprise 製品版が登場

$
0
0

完全に見逃していたのですが、Software Assurance契約者限定で、
8月15日に、Windows 8 Enterpriseの製品版が来ていました。

Release Previewと機能的にはあまり変わりないらしいですが、
Release Previewと異なり使用用途に制限が無く、業務での使用も可能になりました。
また、Release Previewでは使用期限があり、使用期限後はOSごと再インストールしない限り使えなくなります。
しかし、今回出た製品版であればその必要は無いため、セーブデータを気にせず安心してつかえます。

Windows 8 Professionalは3〜4000円前後との噂が出てきて、
Software Assuranceのメリット減るなあ、と思っていましたが、
パッケージ版より2ヶ月先に、サポート付の正式版が使えるのはやはり嬉しいです。
また、今回からUltimate版が廃止されるとのことで、
・BitLocker
・DirectAccess
・BranchCache
・リモート・デスクトップ経由でのUSBデバイスの利用
などの機能が使えるのは、Enterprise版のみとなるそうです。
※Enterprise版は、Software Assurance契約者限定エディションです。

今後は、全てのWindowsにSAを付けるのでは無く、
安く済ませたい場合→パッケージ
フル機能を使いたい or 1台で仮想マシンを複数使いたい場合→VL+SA
と、使い分けたほうがよさそうですね。。

eclipseが起動しなくなった

$
0
0

自宅のマシンは未だにWindows 7なので、だんだん調子が悪くなってきました。
早く8にしないといけませんね。

今回は、eclipseが起動しなくなりました。
イベントログにもアプリログにも標準出力にも何も出ず、一瞬ロゴ(スプラッシュ)が出たと思ったら消えます。

VMを指定したら直りました。
exeファイルのショートカットを作って、-vmオプションでjavawのパスを指定します。

ショートカットで-vmオプションを指定

C:\Users\baba\application\eclipse\eclipse.exe -vm “C:\Program Files (x86)\Java\jdk1.7.0_02\bin\javaw.exe”

jreとjdk両方入れると、たまにこうなるんですよね。
環境変数で設定してもなぜかうまくいかないことがあるので、vmオプションは有効です。

Windows 8でcygwinのSSH秘密鍵を使うとPermissions 0660 too openと怒られる

$
0
0

少し古いネタになりますが、Windows 8にcygwinをインストールし、.sshにid_rsaをおいてSSH接続しようとすると

Permissions 0660 for 'id_rsa' are too open.

のエラーが発生することがあります。

普通に考えればchmod 600 ~/.ssh/*とやっておしまいのところですが、Windows 8のcygwinでは、chmodをしてもパーミッションが変更できません(相変わらず660のままです)。

この場合は慌てず騒がず

chgrp -R Users ~/.ssh
chmod 700 .ssh
chmod 600 .ssh/*

でOKです。

Windows PowerShellでSSH Agentが死んでしまったとき

$
0
0

今日もWindows 8で開発するぞ!さっき突然再起動した気がするけどまあ気にしない。

いつも通りPowerShellを起動して、まずはgit pull

C:\Users\baba\workspace\myproject> git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

…(・ω・)

お、落ち着いて、ssh myserver

C:\Users\baba> ssh myserver
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

…(・ω・)

どうやらこういうときはSSHの秘密鍵が認識されていないようなので、ssh-addをすると良いらしい。

C:\Users\baba> ssh-add .ssh/id_rsa
Could not open a connection to your authentication agent.

…(・ω・)

なんかSSH Agentがお亡くなりになってしまったようですね。

解決編

スクリプトをダウンロード
こんな良いgistがありました。
https://gist.github.com/markembling/187305
まずは、これをダウンロードして、適当な場所に置きます。今回はC:\Users\baba\ssh-agent-utils.ps1として配置。

スクリプト実行許可
PowerShellは、デフォルトでスクリプトを実行できないようになっているので、セキュリティ設定を変更します。管理者でPowerShellを起動し、以下のコマンド。

C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned

スクリプト実行を許可

スクリプトを実行
こっちは普通のPowerShellで良いです。最初のドットを忘れずに。

C:\Users\baba> . ssh-agent-utils.ps1
Starting SSH agent...
SSH agent PID: 10028

なんか反応が返ってこないことがありますが、Ctrl+Cで止めてもPIDが出てくればOKでした。

SSH鍵を改めて登録

C:\Users\baba> ssh-add .ssh/id_rsa
Identity added: .\.ssh\id_rsa (.\.ssh\id_rsa)

これで、無事にSSH接続できるようになりました ヘ(^o^)/

lenovo X1 carbonにwindows8.1いれたら日本語が文字化けた

$
0
0

Windows8.1にバージョンアップしてみたら日本語フォントが文字化けしました。英語だけ綺麗に表示されるとかなんか嫌な気持になりますね。ブラウザ(Chrome)では読めるけど美しくない。

chrome windows 文字化け

環境に依存するソフトをいっぱい入れてるのにアップデートやOSバージョンアップなど深く考えずにやっちゃうんですよね。GRCという検索エンジンのキーワード計測ツールでは完全に日本語が文字化けました。

grc windows 文字化け

これがおきたら「フォントキャッシュ」を一旦削除すればたいてい解決します。
1.「ファイルとプログラムの検索」から「fntcache.dat」というファイルを探す
2.「fntcache.dat」を削除する
3.プログラムをを再起動する
で治るはずです。ねんのためセーフモードで起動したりWindowsも再起動、ですかね。

うーん、しょっちゅう文字化けた昔を思い出す。


Google Chrome のUser Agent 偽装機能は今どこに?(Google Chrome 32.0.1700.76)

$
0
0

スマートフォン用のサイトを作成しているともちろん実機で表示や動作の確認をすることが最重要ですが、でも毎回実機を触るのはちょっと面倒だったりしますよね。そういう時にGoogle Chrome のDeveloper Tools は便利です。

Windows ではF12 キーを押すことで表示できるこの機能はその名の通り様々な開発に便利な機能を備えています。その中の1 つにUser Agent を偽装して、しかも画面サイズも変更できる機能があります。オーバーライド機能です。とはいえこの機能は結構ネット上では有名なものかと思います。

chrome_old

しかしこの機能、バージョンが31.0.1650.63 までは定位置にあったのですが、32.0.1700.76 (2014/1/14 リリース)で忽然と姿を消してしまいました。今までのOverrides 項目にあるのはただ「Show ‘Emulation’ view in console drawer」という設定だけ。しかしこのチェックボックスをオンにしても表示されている画面には全く変化がありませんでした。

chrome_new1

でもこの設定を見る限りまだ該当の機能はありそうだったので、我々スタッフ一生懸命探しました。chrome 中探しましたし、ググったりして探しました。そしてね、見つかりましたよ。きちんと公式ページが用意されていました(笑) こちらです。

Mobile emulation – Chrome DevTools — Google Developers

念のためこちらにも方法を記載しておきますと、まず先程の「Show ‘Emulation’ view in console drawer」のチェックボックスをオンにしておきます。続いてDeveloper Tools でConsole タブ以外を表示している時にEsc キーを叩きます。すると下の方にニョキッと別のパネルが現れます。ここのEmulation タブがお目当ての機能です。下の図で赤い四角で囲っているところです。

chrome_new2

パッと見た感じですと用意されているスマートフォンの機種が増えている気がします(記憶違いの可能性もあります)。またこの部分に設定が移ったことによりDeveloper Tools の上のElements タブでHTML やCSS をいじりつつ、下のEmulation タブで偽装する端末を変更したり画面サイズ等を操作出来るようになり、今までより便利になったように思われます。

最初のうちは戸惑うかもしれませんが従来通り便利な機能なので、他の機能共々使っていきたいですね。

エクスプローラにタブを追加しよう

$
0
0

qttabbar

どうも、shibuso です。弊社では周りを見渡すとMac 使いの方が多いですが、そんな中でも私はWindows 一筋で続けてます。別にこだわりがあって使っているわけではないのですが、学習コストを考えると移動するのも微妙だったり、一般的なユーザを考えた時にやはりWindows 使用者は多いわけで、同環境で開発していた方が知らず知らずにデバッグ出来ますよね、多分。それと我慢強いというか鈍感でもあります、過去にWindowsME でメモリリークからのブルースクリーンと格闘しながら4 年間くらい使い続けてたぐらいです。

そんな感じでWindows を使い仕事をしているわけですがどうにも気に入らない点があります。それがエクスプローラ。Windows7 になってファイルの順番を思い通りにカスタマイズ出来なくなったりしましたが、それ以上に「タブ」機能が未だに無いことが本当にいただけない。Internet Explorer には7 から搭載されているのにエクスプローラのこのやる気の無さ…。

という状況ですが、いくつかフリーソフトでエクスプローラにタブ機能を付加してくれるソフトが以前からあります。最近ですとClover が人気みたいですが、なんか余計なIE アドオンが付いてくるという記事も見かけたので、個人的には昔から使っているQTTabBar がお薦めです。

導入方法の説明はスクリーンショットを貼る必要も無いぐらい簡単なものです。ダウンロードしたzip ファイルを展開してQTTabBar.exe ファイルを実行、説明を読んで続行ボタンを押して進めて、最後にWindows を再起動させれば完了です。

設定できるオプションも色々あって、各種タブの挙動やショートカットキーの設定が可能です。一つ個人的にカスタマイズしているのは、ドラッグ&ドロップ項目の「タブをドロップターゲットにする」を解除することです。タブの順番を変更する時に間違って別のタブにドロップするミスの発生を防げます。

なお最新バージョンはWindows7 と8, 8.1 に対応しているようです。開発をしているとよく色々なフォルダを開いていたくなるので、Windows 環境での開発者にはお薦めです。

【速報】Vcpkg: Windowsの公式C++ライブラリ管理ツール

$
0
0

こんにちは、hachi8833です。

昨日のVisual C++ Team Blogで、Vcpkgというライブラリ管理ツールが公開されました。

Linuxのapt-get、yumやMacのHomebrewなどのパッケージ管理ツールを強く意識していますが、マイクロソフトが公式に運営する点が大きいと思います。

GitHubリポジトリも合わせて公開されていますので、そこにあるFAQの概要をご紹介します。いずれ公式のドキュメントが日本語化されると思いますので、詳しくはそちらをどうぞ。私が翻訳してよければやりますがw

VcpkgのFAQより抜粋

Vcpkgとは、C++で書かれたオープンソースライブラリをWindows上で入手・リビルドするツールです。

誰でも貢献できる

ガイドライン(英語)に従って、誰でも自分のライブラリをアップするなどして貢献できるとのことです。たぶん貢献をすっごく期待していると思うので、何かすれば大歓迎してもらえるのかも。

つかここでマイクロソフトがリクエストに対してどれだけいい感じに応答できるかでエコシステムの成長が決まるんではないかと。

バイナリパッケージの配付は?

プレビューリリースの時点では、バイナリパッケージの配付はサポートせず、公式の安定版バイナリフォーマットの指定もまだないようです。このあたりは今後に期待ですね。

ローカルでのライブラリ更新方法

vcpkg updateコマンドで、portfileと同期していないパッケージを確認できます。GitHubのvcpkgディレクトリをcloneしgit pullでportfileのリストを更新するのがおすすめです。

自分のプライベートライブラリのビルド

非公開のライブラリもビルドできるようです。

こちらの例に沿って準備したうえで、作成したプライベートソースのzipファイルを downloads\ フォルダに置いてpre-seedするか、通常の vcpkg_download_distfilevcpkg_extract_source_archiveを自分のソース コードをunpackする関数で置き換えればよいとのこと。

プライベートライブラリは事前ビルドも可能です。その場合は、必要なヘッダファイルやバイナリファイルをダウンロードして ${CURRENT_PACKAGES_DIR}に配置するスクリプトをportfile.cmakeに書きます。

事前ビルド済みバイナリを企業内で配布するのであれば、ライブラリをビルドしてから、Vcpkgのルートディレクトリを社内のプロジェクトメンバー全員に配付または共有するのがおすすめです。

対象プラットフォーム

現時点では、Universal Windows Platform(x86、x64、ARM)と、Windowsデスクトップ(x86、x64)が 対象です。 vcpkg help tripletコマンドで最新のリストをいつでも確認できます。

LinuxやMac OS Xなどでもvcpkg.exeを使ってみたいという要望があればGithubのIssuesで知らせて欲しいとあります。Issueを見てみると、早くもFFMPEGやOGREなどライブラリの追加リクエストが集まっているようです。

サポートされるツールセットはVisual Studio 2015以降のみです。

異なるバージョンのライブラリの共存について

Vcpkgのシングルインスタンス(installed\packages\ports\などのいずれか)内に配置できるライブラリのバージョンは1つだけだそうです。

異なるバージョンのライブラリを共存させるには、Vcpkgの別インスタンスを作成してプロジェクトごとの統合メカニズムを利用するのがおすすめです。ports\内のファイルで各ライブラリのバージョンを指定できるので、Gitなどのバージョンコントロールシステムでバージョンを指定でき、ロールバックも簡単にできるようになります。

ライブラリのバージョン指定が厳しいアプリでは、必要なportfileセットをバージョン管理下に置いて、--vcpkg-rootでvcpkg.exeのワーキングディレクトリにリダイレクトするのがおすすめです。

CMake toolchainファイルとの共存

Vcpkgのtoolchainファイルと、既存のCMake toolchainファイルは共存できます。include(\scripts\buildsystems\vcpkg.cmake)ディレクティブを使うか、既存のCMake toolchainファイルにscripts\buildsystems\vcpkg.cmakeの内容をコピーします。

VcpkgではCMakeをビルドのスクリプト用言語として採用しています。開発者が新しい言語を覚えずに済むよう、C++開発者におなじみのCMakeにしたとのことです。「Go言語のテストはGo言語で書く」というポリシーを連想しますね。

NuGetにしなかった理由

NuGetは.NETライブラリ向けのパッケージマネージャで、MSBuildに強く依存しています。また、コンパイルオプションが複雑になる、小規模のビルド済みライブラリの配付向けに設計されている、マネージドでない言語ではABIが不安定になるといった理由から、NuGetは採用されなかったようです。

Conan.ioにしなかった理由

Conan.ioはPythonベースの新しいC++パッケージマネージャです。運営がオープンである代わりに同じようなライブラリがいくつもアップされていてライブラリの選定に時間がかかりすぎるという理由で、運営がプライベートである分テストやメンテナンスが一元化されていて品質を担保しやすく、ライブラリが競合した場合などのリクエストもしやすいVcpkgの優位性を強調しています。

ただし、Vcpkgは決してオープンソースに敵対するものではなく、aptやhomebrewと並ぶ「もう一つの選択肢」を目指すことも強調されています。

最後に

PowerShellのオープンソース化など、近年オープンソースへの貢献にかなり熱心になってきているマイクロソフトですが、今回のVcpkgも参加への障壁をできるだけ下げたりオープンソース陣営から反感を買わないよう配慮するなど、マイクロソフトの本気度を感じさせる動きであると思えました。エコシステムが成長するかどうかは文字どおり水ものなので先のことはわかりませんが、今後の動向を見守りたいと思います。

個人的には、VBAコードについてもこうしたパッケージ管理のエコシステムを公式にサポートすれば、むしろそっちの方がすごくウケるのではないかと思いますが、いかがでしょうかw オープンソースだと責任取らされるのが怖くてパッケージ取ってこれない官公庁大企業の方とか、公式の消毒済みVBAライブラリが選び放題になったら争ってダウンロードしそうです。

社内の声

160920_1757_7yheas

関連記事

新卒Webエンジニアによるローカル開発環境構築入門&奮闘記

$
0
0

BPS Webチームのebiです。

今回はWeb開発初心者向けにローカルな開発環境構築の話をする、と見せかけて入社から現在までの自分語りをすることで、会社の雰囲気に関する参考記事としても価値を付けていく算段です。

飽くまで今まで得た知識や経験を自分なりにまとめてみた記事であって、必ずしもベストで正しい方法を記したものではありませんのでご了承ください。

開発環境の紹介

PCのお話

BPSでは、入社前に使用するPCと周辺機器の希望を聞いてくれます。
正直なところ「PCの希望だと?よく分からん。好きにしてくれ。」と言う感じだったので、MacよりはWindowsの方がいいな、くらいの返答をしておいたらThinkPadが手配されました。

何を隠そう僕はしばしば流行りものが嫌いになる捻くれ者なので、周りで称賛する人の姿が目に付いていたMacBookやiPhoneをまだ購入したことがないのです。
決してAppleユーザの皆さんに喧嘩を売る記事ではありません。気を悪くしたらごめんなさい。あっ、そうだ。初めてインターネットの世界に飛び込んだ頃に使っていた実家のPCはiMacでしたよ!

時折Windowsであることによってトラブルは起きますが特に不満はないです。せいぜい強制的に始まるWindows10の更新が長いうえに、更新後にVirtualBox使えなくなる事件が起きる程度です。ん?場合によっては致命的では?

スペックのこともよく分からないですが、開発には困らないレベルのものが支給されますし、ディスプレイも2つ使えます。傍から見ると格好良さげですが、自分が使うとなると贅沢過ぎて慣れません。
そう言えば業務用PCを使い出してからは事あるごとに、今度プライベートで新しいPCを買う時にはSSD搭載にしよう……。と思ってます。速いし静かだし。

Gitクライアントツールのお話

無事入社を果たし諸々準備を整える中、Gitってなんぞ??と思いつつも、まずは言われるがままSourceTreeで社内GitLabサーバーが使える環境を整えてみました。

ところが、あるプロジェクトをcloneしてこようとしたら、文字化け(?)とかが起きてclone出来ないよってなって詰みました。仕方なく、こちらも言われるがままにインストールだけしておいたVirtualBox上のUbuntu14.04Gitを取り扱うことにしてみました。

しかしSourceTreeはLinuxに対応していなかったのです。そんな訳で今度はGitKrakenをインストールしてみることになりました。
仮想PC中だからか動きがもっさりしてしまうのですが、見た目はSourceTreeより取っつきやすい気がして個人的には初心者にオススメなのではと思っています。

公式にTutorial動画も少しあったりするので、たまに慣れない操作をやる前に覗いたりします。説明は英語なので聞き流します。

※ただし、先日GitKrakenの商用開発での使用について、有料版のGitKraken Proの使用を求める発表が出ました。基本料金は60ドル/年です。

無料版の配布は継続して行われ、お試し期間中としての使用、スタートアップ企業や、個人開発、非営利企業等の使用は認められるようです。

とりあえずはお試し期間と言う制度に甘えつつも、GitKrakenの有料版に移行する前にもう一度SourceTreeやその他Gitクライアントツールの使用検討をする必要があるなぁ、と思う今日この頃です。

エディタのお話

オススメされたRubyMineを使っています。端的に言うと頭がいいエディタです。多機能な分、有料となってますが。もちろんBPSなら費用は会社持ちです。今のところ宝の持ち腐れ感も若干有。

ローカルのWeb開発環境構築の話していきます

HTML、CSS、JavaScriptだけの超絶単純サイトならファイルとフォルダがあれば、ブラウザで簡単に見れますよね。僕自身、学校や家で遊んでみる分にはそう言った単純なもので「わーい、それっぽいのできてるお。」って満足していた訳です。

ただ当たり前のことですが、開発会社が請け負う仕事ってそんな単純なサイトじゃないわけですね。
いま動いている本番サイトと同じものをローカルで見るために、ApacheでWebサーバを立ち上げてphpを動かしたり、MySQLと連携させたりしないといけません。

まるで経験が無かったので新しいサイトを担当する度にひーひー言いながら試行錯誤してきました。
こうやって自分で色々やってみることで知識や能力は蓄積されるものではありますが、いざ探してみようと思った時にまとまった情報が見つからない。理解できる記事が無い。となるとお手上げ侍。

そんな未来の迷える子羊に手を差し伸べる気で記事を書いているのです。

ステップ1:Apacheの設定

インストールした当時のことは忘れましたが、バージョンを見ると2.4.7でした。変更が必要なファイルの位置や名前はバージョン等によって違うと思いますので悪しからず。

Directoryディレクティブの追加

まず新しいサイトのフォルダを用意してきたら、/etc/apache2/apache2.confの中に

<Directory /home/username/copysite>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

を追記します。これでこのフォルダを参照できるようになります。中に書いてある細かいOptionでその他設定もサイトごとに決められます。

Virtual Hostの追加

続いて、/etc/apache2/sites-available/000-default.confの中に

<VirtualHost *:80>
    ServerName www.copysite.host
    ServerAdmin webmaster@localhost
    DocumentRoot /home/username/copysite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

を追記します。“:80″がポート番号を示しています。ポート番号を使って複数サイトへのアクセスを分けたい場合は、それぞれ別のポート番号を指定しておきます。

ただし、初期設定ではHTTPとHTTPSのウェルノウンポート番号である80443しか使えないので、/etc/apache2/ports.confでListenするポート番号を随時追加します。

さっそくサイトにアクセスしてみる

この時点でApacheを動かしているPC(Ubuntu)のブラウザから、

  • http://localhost
  • http://localhost:80
  • http://127.0.0.1
  • http://127.0.0.1:80

等のURLでサイトにアクセスできるようになるはずです。

127.0.0.1はループバックアドレスですね。テストに出るやつです。localhostも結局は同じIPを表しています。
つまり自分自身を示すIPアドレスを指定することで、自分自身のWebサーバにアクセスできたのです。

ステップ2:VirtualBoxのネットワーク設定: ホストOSのブラウザからゲストOSのサイトにアクセスする

NATの設定でポートフォワーディングを利用する

初期設定だとネットワーク設定の割り当てがNATになっているはずです(違ってたらごめんなさい)。この状態だとポートフォワーディングと言う仕組みでゲストOSとホストOSが繋がります。

ポートフォワーディングの設定を見に行ってみると、ゲストポートホストポートを指定することができます。ゲストポートにステップ1でサイト毎に割り当てたポート番号を、ホストポートに適当なポート番号を設定します。

例えばゲストポートに80、ホストポートに8880を設定しておくと、ゲストOS(Ubuntu)から

  • http://localhost:80

でアクセスしていたサイトにホストOS(Windows)から

  • http://localhost:8880

でサイトにアクセスできるようになります。

ブリッジアダプタの設定を使う

でも「NAT?面倒じゃね?」と言う声もあります。そんな方々がオススメしているのはブリッジアダプタの設定です。
ネットワーク設定をブリッジアダプタの設定にすると、ゲストOSにもIPアドレスが割り当てられます。

ゲストOSでifconfigコマンドを実行してみます。

ifconfig

eth0inetアドレスがゲストOSに割り当てられたIPアドレスです。

ホストOSからこのIPアドレスをURLとして使用してみましょう。例えばこのIPアドレスが10.0.116.32とかだったら、

  • http://10.0.116.32

でサイトにアクセスできるようになります。

  • http://10.0.116.32:81

とすると別のポート番号に割り当てたサイトも見ることができます。

ステップ3:hostsの設定編

ざっと前提知識をまとめる

これまで打ち込んできたアドレスは、IPアドレスとかlocalhostとか何やら怪しいURLだらけでした。
通常のURLでは、

  • http://techracho.bpsinc.jp

のようにサイトの内容が端的に分かるドメイン名が使われていますが、実際にサイトにアクセスする時も、DNSサーバに教えてもらったドメイン名に対応するIPアドレスを使っているわけです。そう考えると結構同じことです。

ただし、DNSサーバに行く前に、自分自身のhostsファイルに登録してあるドメイン名の情報をまずは参照しています。実はlocalhostと言う名前も最初からhostsに登録されていたものを使っていたのです。

Ubuntuなら/etcフォルダ中に、Windows10ならC:\Windows\System32\drivers\etcフォルダ中にあります。

この中にステップ1中のApacheの設定中に書いたServerNameと適切なIPアドレスを追記しておくことで、ブラウザにドメイン名のURLを入力することでローカル環境のサイトを閲覧することができるようになります。

実際にやってみる

先ほどのブリッジアダプタ設定の続きから、ステップ1で追加したサイトをホストOSのブラウザからドメイン名のURLで見れるようにします。

ホストOSのhostsファイルに

10.0.116.32 www.copysite.host

を追記します。

先ほどまで使っていたIPアドレスと使用したいドメイン名を対応させる。たったこれだけです。

これでホストOSのブラウザから

  • http://www.copysite.host

で見れるようになります。

また、この場合ドメイン名でServerNameの情報も引き継いでいるので、同じポート番号に割り当てられた複数のVirtualHostがあったとしても、それぞれのサイトを判別してアクセスすることができます。

まとめ

いちいちホストOS側のhostsを更新するのも面倒なので、新しいVirutalHostをコピペして作るときに、ポート番号で振り分ければいいんじゃないかなと思いますが、それだと困る時がありました(WordPressとか。後日、別記事で書くかも)。

また、今回はローカルのWebサーバ用に追記したhostsでしたが、例えば既に存在しているサイトのサーバを移転する場合に、準備中の新しいサーバ側のサイトを見に行くために使ったりもできます。この場合ドメイン名が同じだと、自分が今どっちのサーバで見ているのかを忘れてしまう落とし穴には注意が必要です。

入社当時の自分にこの内容見せてもチンプンカンプンだと思います。知らないことが多すぎるんですよね。そんなヒヨッコでも闇雲にネットで探してみてヒットするページより、少しでも理解できる記事となるように内容を嚙み砕いて。関連用語もおさえつつ、とりあえず必要な情報が一度に揃うようにと言うコンセプトで今回は書いてみました。

おしまい。

morimorihogeコメント

4月からの新卒で、開発ほぼ未経験だったはずなのにいつの間にか色々調べてなんとかしてしまうebi君は「やるなー」と思って眺めています。
一からやり方教えたり環境作って渡したりというのもできなくはないのですが、環境構築やそれにまつわる試行錯誤は許されるのであれば自分で調べてやってみた方が良い経験になると思います。

僕としてはとりあえず丸投げしてみて「自分の手に負えない時に適切にalertを出す練習」にするつもりだったのですが自力でなんとかされてしまってアテが外れました(汗。
次はもうちょっと負荷をかけてみようと思います :p

関連記事

iPhone 7 がWindowsのエクスプローラーで認識されない

$
0
0

現在、アドベントカレンダーなるものを弊社(BPS)でやってるみたいです。この記事、いろいろ敷居をさげるために書いてみてますよっと。アドベントカレンダーは本来クリスマスのカウントダウンにつかわれますしね。”クリスマスに新しいケータイを購入してPCに接続してみたけど認識されねえクソー”ってときにググって最初にでてくるといいなとおもったり。

iPhone7にのりかえてPCに接続したらエクスプローラーで認識されなくなった

以前、Windowsを買い替えたときも認識されなくなったiPhone。単体だとほぼカスタマイズも手入れ不要で使えるだけに、こういうことがおきるとちょっとビビりますよね。今度はiPhoneが新しくなったということで、以下のようにDriverが認識さているのに、エクスプローラーでは出現しない。
Driverが認識されてるぽいのにうまく認識されない

もー。愛用しているThinkPad CardbonX1のファンが最近ウルサイのでPC買い替えを検討していて、近々またこの手のことをしなきゃいけないようなきがするので一応記録を残しておきます。

Apple Mobile Device USB Driverってやつを右クリックして”ドライバソフトウェアの更新(P)”すればなおる。

  1. ドライバソフトウェアの更新(P)を選択
  2. コンピュータを参照してドライバソフトウェアを検索(R)を選択
  3. MTP USB デバイス を選択
  4. まつ
  5. 認識されたぽい(エクスプローラー&iTunes)

Windows で PDF プレビュー が表示されない

$
0
0

漫画をiPadで読むようになってからiPadが好きになった渡辺です。
今は好きな漫画はすべてAmazonで買って、Kindleで楽しんでます。
でも前から購入してた単行本も電子書籍として管理したいですよね。
というわけで業者に頼んで持ってた漫画をPDFにしてもらいました。

大好きな進撃の巨人もほら、ご覧のとおり。

nopreviewpdf

・・・

別にファイル名に作品名と巻数が書いてあるのでいいんですけどね。
ただ、なんかこう表紙がうつらないともの足りないですよね。

デスクトップにおいても1枚目が表示されない。
昔は写ってた気がするんです。

最新のAdobeAcrobatを購入したらなおるのかな?
でも、AdobeAcrobatXをいれてもダメだったといってる人もいますね。

WindowsのエクスプローラーでPDFの1枚目(表紙)を表示(プレビュー)させる

Windows7の場合

1. PDFがWindowsSearch中に認識されるように索引が付ける
2. PDFの1枚目をPDFサムネイルに設定する

Windows8の場合

1. 不要
2. PDFの1枚目をPDFサムネイルに設定する

といった処理をしないといけないみたいすね。
Windows7ではAdobeReaderが初期インストールされていないことがあるので先にインストール必要です。

Windows7ではAdobeReaderをインストールする方法

1.
最新のAdobeReaderをいれるか、Window8にアップグレードするかで1個目の問題は解決できるみたいです。
手っ取り早いのはこちらのリンクAdobe PDF iFilter 9 for 64-bit Platformsを使うことです。

2.
Adobe Reader x64 Fixes v3 または Adobe Reader x64 Fixes v3がおいてある別サイト 
から修正ファイルをダウンロードしてインストールします。

この修正ファイルの詳しい情報はFixes for 64-bit Adobe Reader preview handler and thumbnailsにまとまってます。

インストールが完了すると、こうなります。

ウィンドウズのExplorerでPDFの1枚目(表紙)が表示(Preview)されるようになってる!

withpreviewpdf

やっぱこっちのほうが見てて気持ちいい。 :D

関連記事

40名:増床の費用対効果改善と社員満足度向上のための個別指導教室
35名:拡大と社員満足度向上を見据えた人事・採用担当の仕事と迎え入れ方
30名:拡大と収益率改善のための大量採用の実現と社内平均値の上げ方
25名:今後の開発体制強化を意図したウィングドア社株式取得
25名:引き受けられる案件難易度向上を実現するバーサタイルウェイ社株式取得
25名:今後の拡大を支える仕組みづくりを開始、まずは社員研修から
20名:拡大に応じて残す外注先とそうでないところの選定基準
20名:経営能力と資源確保のための第三者割当増資を実施
20名:拡大を決意し2015年度振り返り改善点を洗い出す

WordPressをローカル環境等にお引っ越しする方法(XAMPP使いも歓迎)

$
0
0

Webチームのebiです。

以前、EC-CUBEのサイトをローカル環境に持って来たいと言う旨の記事を書きました。

今回はみんな大好き(?)WordPressのサイトをローカル環境に移動させるお話です。
ローカルで作ったものを本番環境に展開させる場合も同じ要領でできます。

加えてただのWordPressのサイトだけではなく、マルチサイト化したWordPressのサイトも扱えるようにすることを目標にします。サーバが動くなら別にXAMPPを使っててもいいですよ。

せっかくなので、あえてVirtualBoxに頼らずWindows上で完結するXAMPPでやってみました。手元のXAMPP(Ver.5.6.21)を用いた時の記録を残しておきます。

ローカル環境の全般的な話はこちらの過去記事も参照してください。

WordPressのマルチサイト化について

先にWordPressのマルチサイトについて簡単に説明をしておきます。
サブドメイン型とサブディレクトリ型の2種類があります。まぁ、どちらも割と言葉通りと言うか、WordPressに限らず使用される話ですね。

どちらの場合もサイト毎に異なるWordPressのテーマを適用させることで、見た目上違うサイトとして運用されていくはずです。しかし、使用するデータベースとディレクトリは同じものを共有することになります。

詳細については、WordPressCodexを見ましょう。

サブディレクトリ型

URLが example.com/site1example.com/site2 のような構成になります。
あたかもディレクトリごとにサイト素材が分かれているように見えるURLになると言うことですね。

サブドメイン型

URLが site1.example.comsite2.example.com のような構成になります。
“site1″、”site2″のようなサブドメイン部分でアクセス先を分けます。”example.com”のようなメインのドメイン部分は共有となります。

URLにポート番号を含む運用はやめましょう

何のことかよく分からない人は、とりあえず読み飛ばして大丈夫です。

マルチサイト化する際に、URLにポート番号を含んでいると怒られます。正確に言うと80番443番以外のポート番号を含むURLが禁止されています。
そのため、ローカル環境でポート番号を使用して複数サイトを管理する(過去記事で紹介)手法はとれません……。

例: http://localhost:2222 、 http://127.0.0.1:2222
みたいなURLでWordPressマルチサイトのローカル環境を管理することはできません。

ローカル環境にマルチサイト化したWordPressサイトを置く場合は、ちゃんとドメイン名を使ったURLでアクセスできるようにしておきましょう。実際のやり方は後ほど解説します。

WordPressをローカル環境に持って来る

まずは本番サーバのファイルとデータベースを持って来ます。

ファイルはとりあえずSFTPで持って来てもいいです。ツールは何でもよいので、手に入れれば勝ちです。

XAMPPだったら、 xampp/htdocs/example.local となるようにWordPress本体のフォルダ(example.local)を置いちゃいましょう。
XAMPPのコントロールパネルから、サイドメニューのExplorerをクリックすると、xamppフォルダを開いてくれますよ(いま知った)。

データベースもphpMyAdminから持って来ちゃいましょう。
下図のように、元のデータベースのphpMyAdminからエクスポートしてきます。

圧縮してなければ、 .sql 形式のファイルでダウンロードできるはずです。
この状態ならエディタで編集できますので、エラー等が出た時に直接編集をすることもあります。とは言え、メモ帳を使うのはやめましょう(改行コードが違うので単純に見辛い)。

XAMPPのコントロールパネルから、MySQLを起動した状態で、MySQLのAdminをクリックすると、ローカル環境のphpMyAdminが開かれます。

今度は逆に、先ほどダウンロードしてきたデータベースをインポートをしましょう。

僕の場合、データベースのサイズが大きすぎてアップロードできずにエラーが出てしまいました……。データベースを圧縮するか、phpの設定を変える必要がありますね。

xampp/php/php.ini を開き、

  • post_max_size
  • upload_max_filesize
  • max_file_uploads

あたりをデータベースのサイズ以上になるように、少し大きくしておきました。編集後は忘れずに、コントロールパネルからApacheを一度Stop⇒Startで再起動します

再チャレンジしたところ、別のエラーが出てしまいました……。

どうやらMySQL側も設定を変更しないといけないようです。

xampp/mysql/bin/my.ini を開き、

  • max_allowed_packet

を少し大きくします(1M⇒8Mにした)。MySQLも設定の変更後に再起動が必要です
リベンジするけど、三度エラーが出ます。既にデータベースの作成までは進んでいたようです。もうデータベースあるよ。って文句を言われました。

正しく再現できているかどうか怪しいので、これは一度消しました。サイドメニューから、そのデータベースを選択し、上のメニューの操作に移動すると、データベースの削除ができます。

度重なる再挑戦を経て、ようやく何もエラーが出ずにデータベースが作成できました。

こんなに苦労するとは……。

ApacheにDirectoryディレクティブとVirtualHostを追加する

必要があれば使用するディレクトリ(≒フォルダ)に使用許可を与えるためにDirectoryディレクティブを追加します。

ドメイン名を使って適切なサイトにアクセスさせるためにVirtualHostを作成します。一般的なローカル環境を作る時と同様にやれば大丈夫です。
サブドメイン型マルチサイトの場合は、各サブドメインにアクセスできるようにVirtualHostを作っておくことがポイントです

XAMPPの場合、 htdocs以下に置いていれば、元の設定のおかげでDirectoryディレクティブを追加する必要はないため、VirtualHostの書き方だけ紹介しておきます。

xampp/apache/conf/extra/httpd-vhosts.conf からVirtualHostを足せます。コメントアウトされている記入例を真似したりして足しました。

  • ServerAdmin は本来管理者のメールアドレスを記すものですが、任意のもので大丈夫です。
  • DocumentRootに、使いたいサイトのディレクトリを指定します。
  • ServerNameには、使用したいドメイン名を記入します。
  • ServerAliasを以下のようにワイルドカード形式で書いておくと、どんなサブドメインも使えるようになります。サブドメインを使って、複数のマルチサイトを管理したい際には、この書き方で十分でしょう。
  • ErrorLog、CustomLogには、ログの出力先を設定します。サイト毎にログファイルを分けることができます。

なお、VirtualHostを新しく作ることによって、今までアクセスできていたXAMPPのダッシュボードや、htdocs以下の各ファイルにアクセスできなくなってしまうので、新しく足すVirtualHostの前に /xampp/htdocs をDocumentRoot に持つVirtualHostを併せて定義しておきます。

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/xampp/htdocs/"
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@example.local
    DocumentRoot "C:/xampp/htdocs/example.local"
    ServerName example.local
    ServerAlias *.example.local
    ErrorLog "logs/example-error.log"
    CustomLog "logs/example-access.log" common
</VirtualHost>

wp-config.phpを変更する

コピーしてきたWordPress本体のファイルのうち、wp-config.phpだけはローカル環境に合わせて変更する必要があります。

// WordPress のためのデータベース名。ローカルに再現したデータベース名にする。そのままならそのまま。
define('DB_NAME', 'exampledb');

// MySQL データベースのユーザー名。root等に変更する。
define('DB_USER', 'root');

// MySQL データベースのパスワード。XAMPPの初期状態だとパスワードは必要ないらしい。
define('DB_PASSWORD', '');

// MySQLのホスト名。localhost等に変更する。
define('DB_HOST', 'localhost');

// メインサイトのドメイン名。ローカル用のドメイン名に変更する。
define('DOMAIN_CURRENT_SITE', 'site1.example.local');

hostsを書き換える

ローカル環境に作ったサイトのドメイン情報は、この世界のどこにも無いので自分で定義する必要があります。
PCに元からあるhostsに追記して、使用するドメインを使ってアクセスするサーバを自分のPC宛て(127.0.0.1)にします

本番と同じドメインのまま、hostsを書いて自分のPC宛てにすることもできますが、今見ているのが本番環境なのかローカル環境なのか分からなくなり、作業中に困惑するのでオススメしません。

Windows10環境では、C:\Windows\System32\drivers\etc\hosts にあります。
一度、デスクトップあたりにコピーして、それを編集します。

127.0.0.1 site1.example.local site2.example.local site3.example.local

のように使いたいドメインを追加しましょう。
そうしたら、編集したファイルをコピーして、元の場所に貼り付けします。警告が出ますが、無視して上書きします。

データベースのドメイン名を書き換える

WordPressのデータベースにはドメイン情報も含まれるため、必要に応じてデータベース中に含まれるドメイン名の情報も変更する必要があります。
SQLを使ったり、dumpファイルを書き換えてもいいですが、秘密兵器としてSearch and Replaceを使うとちょっと楽です。

公式サイトからダウンロードしてきた、Search-Replace-DB-master フォルダを DocumentRoot に置きます。
これまでの例で言うと、 C:/xampp/htdocs/example.local/Search-Replace-DB-master の位置に置けばオッケーです。

アクセスするのに、さっそく先ほどのhostsの書き換えが活きてきます。

http://site1.example.local/Search-Replace-DB-master

のようなURLをブラウザに入力すると、Search and Replace の下図にある画面が表示されます。

記入するのは、一番上の serach/replace 欄です。ここに変更前と後のドメインを記入します。

実行前に置換した時の結果を見るdry runができます。問題なさそうならlive runで実際に置換しましょう。

まとめ

以上の作業でもって引っ越し完了するはずです。
余裕のある人はもちろん、XAMPPじゃなくて仮想環境に普通にApacheを立ち上げればいいですし、sshを繋いでデータベースのdumpファイルを作成して、rsyncで必要なものを一気に取ってきちゃいましょう。
Apacheに設定を追加したり、使用するデータベースの情報を指定するconfigファイルがあったり、使うものが変わってもやることは同じですね。

関連記事


RubyMineを少し日本語化する方法(Windows版)

$
0
0
RubyMineの日本語化後の画面

こんにちは、英語が大の苦手なyoshitakuです。
Ruby on Railsでの開発ではRubyMineを利用している方もいらっしゃるかと思います。
私もまだ利用経験はとても少ないものの、これからもRubyMineを使って行きたいと考えています。

RubyMineとは何だ?という方は、少し古い記事ですがmorimoriさんのこちらの記事もあわせて参考になさってみてください。

RubyMineは全部英語

IDE(統合開発環境)として魅力の多いRubyMineですが、全部英語です。
難しい英文を読むわけではないですが、私のように英語が苦手な人間にとっては英語があふれている光景には及び腰になってしまいます。

そこで、少しでも良いから簡単に日本語化する方法はないかと調べてみました。
RubyMineの画面(デフォルトはすべて英語)

Pleiades日本語化プラグインを使って少し日本語化

Pleiadesプラグインを使えば日本語化できるようです。
Qiitaのこちらの記事を参考にいたしました。

ただ、こちらの記事はMacOS向けの手順で、RubyMineについても触れられていないので、今回Windows版RubyMineでの日本語化方法について解説したいと思います。

WindowsでのRubyMineの少し日本語化手順

今回の手順を実行しても、日本語化されるのは一部にとどまります。その点ご理解ください。

なお、日本語化の解説をするにあたり、今回はWindows 10 Pro 64ビット版の環境下の32ビットアプリケーションを用いました。

Pleiades日本語化プラグインをダウンロードする

Pleiadesのサイトから日本語化プラグイン pleiades.zip をダウンロードします。
Javaを使う開発者ですと、Pleiades All in One eclipseには馴染みのある方々もいらっしゃるのではないでしょうか。
今回はeclipseではなく、プラグインのみをダウンロードします。

Pleiadesのサイトから最新版のプラグインをダウンロード

ダウンロードファイルを解凍し格納する

  • ダウンロードした pleiades.zip を解凍すると、3つのフォルダー「features」「plugins」「readme」が現れます。
  • このうち、pluginsフォルダーをRubyMineインストールフォルダー配下の \jre\jre\bin の中にコピーします。

私の環境では C:\Program Files (x86)\JetBrains\RubyMine 2016.3\jre\jre\bin の配下になります。

※ フォルダー内の「pleiades.jar」だけをコピーしても動作しませんのでご注意ください。

設定ファイルに追記する

  • vmoptionsファイルにPleiadesプラグインの情報を追記します。

vmoptionsファイルは、RubyMineインストールフォルダー配下の \bin の中に、(アプリケーション名).vmoptionsの形で存在します。

私の環境では C:\Program Files (x86)\JetBrains\RubyMine 2016.3\bin\rubymine.exe.vmoptions になります。

vmoptionsファイルをテキストエディタで開き、\jre\jre\bin フォルダーを起点として pleiades.jar ファイルのパスを追記します。

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

vmoptionsファイルの追記例

※C:\Program Files (x86) のファイルを上書き保存できない場合は、テキストエディタを管理者として実行してください。

以下に、メモ帳を管理者として実行する手順を記します。

  • メモ帳を右クリックします。
  • コンテキストメニューから「その他」にカーソルを合わせます。
  • 更に詳細メニューが出てきますので、その中の「管理者として実行」を左クリックします。
  • 管理者として実行したメモ帳ではvmoptionsファイルをドラッグ&ドロップで開けませんので、メニューの「開く」からvmoptionsファイルを開きます。

メモ帳の管理者として実行する方法例

少し日本語化できました

上記手順が完了してからRubyMineを起動すると、RubyMineが日本語化されています。

RubyMineが正常に起動しなくなってしまった場合は、vmoptionsファイルを元に戻してください。

RubyMineの日本語化後の画面

以上、PleiadesプラグインによるRubyMineの日本語化手順でした。

関連記事

Docker入門日誌-その1- Hello World編

$
0
0

ebiです。気付けば社会人2年目になりました。手が空いたので玄人がすなる Docker といふものを我もしてみむとするなり。

Docker環境を整えてみた

情報収集

RPGなら酒場。現代社会ならGoogleです。
僕がWindowsユーザなこともあって、安直に「windows docker」と魔法を唱えてみました。

どうやら割と最近、Docker for Windowsなるものがリリースされていたようです。
さっそく公式サイトからダウンロードしてインストールを試みました。

なんかダイアログが出てきた。

HyperV is not available on Home editions. Please use Docker Toolbox

ん?どういうことだ??

……Windows10のHomeエディションは対象外らしいです(公式FAQ

-完-

……という夢を見たんだ

気を取り直してToolboxをインストールします

公式サイトはこちらです。

Fullでインストールしちゃいます。

全部チェックします。

インストールが終わると、「Docker Quickstart Terminal」って言うファイル入りのフォルダが出てきたはずなので、それを実行する。
ひたすら許可しまくる。

最終的に端末でくじら君が描写されたら完了です。

ここまでの話は、Windowsの代わりに Docker を動かすホストを Docker Machine を使って、VirtualBox上に default と言う名前で作ったよ。ってところです。

スタート時の環境は人それぞれだと思うので、あまり解説は入れてませんが悪しからず。

ついでに

いつも開発環境として使っている、VirtualBox で動かしている Ubuntu 側も Docker の環境を整えておこうとしたら、ネットワーク設定が消し飛んで使えなくなってました。 VirtualBox を再インストールしたら動いたので無問題です。

無事 Ubuntu を起動したら、公式サイトに載ってるコマンドを一通り連打してたら、使えるようになってました。意味はあまり分かってません。

Hello Docker

実行編

Docker にも Hello World があるようです。やってみましょう。

Windows の代わりに Docker を動かしてくれる Docker ホストが用意できたので、コマンドプロンプトを起動すると Windows でも無事 docker のコマンドが打てるようになるのです。先に 動いているDockerホスト の情報を見ます。

docker-machine ls

default という名前で Docker ホストくんが動いていることが確認できます。
停止する時は

docker-machine stop default

起動する時は

docker-machine start default

です。

いよいよ初 docker run をしてみます。ドキドキ……。

docker run hello-world

Post http://127.0.0.1:2375/v1.20/containers/create: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..

(゚Д゚)ハァ?

どうやら環境変数周りのお話のようです。

docker-machine env default

を実行します。

REM Run this command to configure your shell:
REM @FOR /f “tokens=*” %i IN (‘docker-machine env default’) DO @%i

こんな感じで出てくるメッセージの最後の行のコマンドをコピペして実行してから、再度リベンジすると動きました。やったー。

一旦まとめ

公式で用意されている hello-world イメージ(コンテナの元)を利用して、 hello-world 用のメッセージが出てくるコンテナを起動するところまでやってみました。

動き続けている Docker コンテナは

docker ps

で一覧を見ることができるのですが、実行しても hello-world の名前は出てきません。

docker ps -a

をすると、コンテナのリストが出てきます。 docker run はイメージからコンテナを作る作業なので、docker run を繰り返すと、気付けばここにゴミが溜まってきちゃいます。注意してください。

オプションを付けて、色々な起動の仕方をするようですが、そのへんは追々慣れるもんなんですかね。

ちなみに

docker --help

docker run --help

でヘルプを表示できるのです。

長くなりそうなので、実用的な Docker の使い方を試してみるお話は、次回の記事に回そうと思います。

関連記事(Docker)

Docker入門日誌-その2- Webサーバ立ち上げ編

$
0
0

ebiです。相変わらずWindowsを使って、Docker入門の続き(前回)やっていきます。
誰かのDocker入門の助けになるように、すんなり行ってる風に書いていきますけど、実際は色々と手出しては詰まって時間食い潰してました。

httpd イメージを動かしてみる

Code School の Docker講座を覗いてみたら、作るだけで良い感じに Apache が起動してくれるイメージを使ってたので、まずはこいつを実機で動かしてみることにしました(もっと親切なイメージを使う話は後から)。

docker run する

docker run -d -p 9999:80 httpd

-dはデタッチドモードでコンテナを起動する、とのこと。詳しい説明はhelpコマンドやここらへんで。

-p 9999:80はポート番号の指定です。

  • 左側がDockerホスト側のポート番号です。好きな番号を指定すればオッケーです。この後で使います。
  • 右側がコンテナ側のポート番号です。一般的なWebサーバなので80番にします。
docker ps

を実行してみると、今起動したコンテナの情報が足されているはずです。

アクセスしてみる

それでは、実際に起動した Apache が動かしてくれるWebページを見に行きましょう。

ブラウザを起動してURLに

localhost:9999

と。

……あれ?
アクセスできない。なんで??

ここで思い出してほしいんですけど、Windows の場合は Docker を動かしているのは Windows ではなくDocker Machine で作った VirtualBox上のDockerホスト なのです。
つまり、localhost じゃなくて Dockerホストにアクセスしに行かないといけないんですね。

そこで

docker-machine ls

で出てくるURLを再確認します。

ポート番号をさっき指定したやつに付け替えて、

192.168.99.100:9999/

でリベンジ

やりました。

次の課題

Webサーバが立ち上がったのは喜ばしいことですが、開発はどうやって進めればいいのでしょうか……。
とりあえず考えるのはこの二つです。

  • Webサーバを動かしているコンテナにSSH的なので繋ぎたい
  • コンテナとWindows本体の共有フォルダを作りたい

前者は docker exec なるコマンドで手軽にできるっぽいです。

docker ps

をすると出てくる、コンテナの CONTAINER ID か NAMES を dockerコマンドの対象となるコンテナを指定する時に使います。

docker exec -it NAME /bin/bash

NAMEはコンテナを指定する文字に置き換えてください。

あとは普通にSSH繋いでいる時みたいな感じで動かせます。

後者は docker run に -v オプションを付ければいいだけ、と言えばそうなのですが……。Windows側のディレクトリ指定するのにちょっと苦労しました。

docker run -v /c/Users/ebi/Desktop/testdir:/usr/local/apache2/htdocs -p 8888:80 -d httpd

これで成功しました。Windows側で index.html を作ってみて、反映されているかどうか確かめてみてください。
-p オプションでポート番号書いた時のように、-v オプションにWindows側のディレクトリ:Dockerコンテナ側のディレクトリを指定します。

基本中の基本となるDockerコマンドを使って、ローカルでWebサーバを動かすことに成功しました。ちょっと次は別の方法も試してみます。

Kitematic を使ってみる

Kitematic は Docker コンテナの立ち上げや管理をGUIで行うことができるツールです。

実際の画面はこんな感じです。多分最初に開いた時には、イメージ一覧とかが表示されるはずです。
使いたいイメージをGUI上で検索して、ポチっと docker run できちゃうのでお手軽です。

左側にはdocker ps -a した時のようにコンテナ一覧が表示されています。 先ほど立ち上げたコンテナを選択して、Settingを確かめてみるとポート番号(Ports)や共有フォルダ(Volumes)の設定も簡単に確認・変更できます。

ただ、厄介な所があって、Volumesの設定は新規追加ができないようで(?)、基本的にはコマンドプロンプトから -v オプション付きで docker run を試みることになりそうです。

再びHello World

Kitematic 編と言うことで、もう一度コンテナを作っていきます。 hello-world-nginx イメージを CREATE してみましょう。

Kitematic 公式のものだけあって、共有フォルダ設定も勝手にやってくれるのです。強い。
EXECって書いてあるボタン押すと docker exec できます。

Kitematic を開いて5秒でWebサーバ立ち上げが完了してしまいました……。

まとめ

Dockerを使ってローカルで使えるWebサーバを立ち上げてみました。
docker コマンドを地道に打ち込んでみたり、GUIツールのKitematicを使ってみたりしました。
ポートが繋がった、開発用の共有フォルダもできた。と言うところまで確認できたので、後はどうにでもなりそうです。

次回は満を持してDocker環境でRails開発をやってみます。

関連記事(Docker)

Docker入門日誌-その3- Rails開発編

$
0
0

ebiです。前回の内容で終わってもよかったんですけど、せっかくなのでRails編まで書いてみることにしました。

とにかく rails new を目指す

まずは難しい内容を抜きにして最速で rails new を決めていきます。

rails用のイメージを利用する

前回に引き続きKitematicの画面です。何も考えずに rails と検索してみたら、公式イメージがヒットしました。これに決めます。

作成されたコンテナの設定を見ると、RubyとRailsのバージョンが指定してありました。

いや、こんなところ見ずともこのイメージの公式ドキュメントを読めばいいんですけどね。

Kitematicから作った場合は忘れずにポート指定をしておきましょう。

それでは docker exec でコンテナ内に乗り込みます。

あとは rails new するだけ

それっぽいディレクトリに移動して……。はい。rails new

無事完了したので、作ったディレクトリに移動して rails s

ブラウザにURLを打ち込んで……アクセスできました。ね、簡単でしょ?

省略してしまいましたが、実際やるなら前回の手順みたいにちゃんと共有フォルダを指定して、そこで rails new しましょう。なんだか普通にWindowsでRails開発できそうな気がしてきましたね……!!

もうちょっと真面目に環境作り

今までは、ただ用意されていたイメージを引っ張ってきてコンテナ作りをしていたのですが、Dockerでは配布されているイメージを元にオリジナルのイメージを作ったり、コンテナ同士の連携をしたりするのも簡単にできます。

公式のRails環境作りのサンプルにもその内容が含まれていたので、これを参考(そのままやりますけどね)に試していきます。

Dockerfile等を用意する

まずは適当な作業用のディレクトリを用意して、そこに Dockerfile と言う名前でファイルを作ります。拡張子は要りません。

これをエディタで編集して、以下の内容にします。

FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp

FROMで元になるイメージを指定しています。その他の大文字で始まる記述も、初期設定として実行するものを定義しているようだと言うのはなんとなく分かると思います。
ちゃんとDockerfile用の命令一覧をどこかで参照して比較してみるともっと分かるはずです。

同様にGemfileを作成して、

source 'https://rubygems.org'
gem 'rails', '5.0.0.1'

Gemfile.lockは空のファイルとして作成します。
最後に docker-compose.yml を作成します。

version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

今回はdbとwebの2つのコンテナがあって、dbの方はpostgresイメージを、webの方はDockerfileからbuildしたコンテナを使うと書かれているようです。

buildしていく

Windowsのコマンドプロンプトを起動して、Dockerfile等を用意した作業用のディレクトリに移動したら、以下を実行します。

docker-compose run web rails new . --force --database=postgresql --skip-bundle

webの方のコンテナを動かして、rails new しちゃいます。実行完了すると、作業ディレクトリがRails仕様になりました。

続いて rails new で作成された config/database.yml を開いて、developmentの部分を以下に書き換えます。

development: &default
 adapter: postgresql
 encoding: unicode
 database: myapp_development
 pool: 5
 username: postgres
 password:
 host: db

終わったら、いよいよ立ち上げです。

docker-compose up -d

失敗しました。

web_1 | bundler: failed to load command: rails (/usr/local/bundle/bin/rails)
web_1 | Bundler::GemNotFound: Could not find gem ‘pg (~< 0.18)’ in any of the gem sources listed in your Gemfile.

Gemfileが悪そうです。流し読みして必要なさそうだと思って飛ばしてしまった build をしてみます。

docker-compose build

リベンジします。今度は上手くいったのでアクセスしてみます。DBがまだ作られていないので、

はい。db:createをしましょう。

docker-compose run web rake db:create

これでオッケーでしょう。と思ったのですが、上手くいかず。restartしてみるも

C:\Users\ebi\Desktop\rails_docker>docker-compose restart
Restarting railsdocker_web_1 ... done
Restarting railsdocker_db_1 ... done

C:\Users\ebi\Desktop\rails_docker>docker-compose ps
Name Command State Ports
----------------------------------------------------------------------
railsdocker_db_1 docker-entrypoint.sh postgres Up 5432/tcp
railsdocker_web_1 bundle exec rails s -p 300 ... Exit 1

な、なんでだー。お、落ち着いてdocker-compose logsでログを出してみよう……。

web_1 | A server is already running. Check /myapp/tmp/pids/server.pid.
web_1 | =< Booting Puma
web_1 | =< Rails 5.0.0.1 application starting in development on http://0.0.0.0:3000
web_1 | =< Run `rails server -h` for more startup options
web_1 | Exiting

怪しい。pidを消すといいらしいです。こんな感じかな(もちろん直接フォルダからデータ消せばいい気もする)。

docker-compose run web rm tmp/pids/server.pid

リベンジします。

できました。

さてさて、ここまで docker-compose web run を繰り返してたので、そのたびにコンテナが増えていました……。rails new とかのコマンドを実行したいだけだったら--rmオプションを付ける癖を身に付けるべきなのでしょう。

まとめ

Dockerを使ってRails開発をする想定で環境構築をしてみました。
すぐ使える便利なイメージを拾ってきたリ、Dockerfileを使って新しいイメージを作ってみたり、Docker Composeを利用して複数コンテナの連携をしてみたり、と基本的なことは一通り試せました。

Dockerを今すぐ実務に生かせるか、と言うとまだ不安だらけですが最初の一歩を踏み出すいいきっかけにはなりました。
公式のチュートリアルやDockerで~~してみましたみたいな記事も世の中にはたくさんあるようなので、もう少し色々試してみようと思います。

関連記事(Docker)


EPUBビューア「超縦書」Windows版 使い方・TIPS

$
0
0

EPUBビューア「超縦書」について

EPUBビューア『超縦書』は、電子書籍フォーマット「EPUB」(3.0.1)に対応した、EPUB表示・閲覧のためのビューアアプリケーションです。以下のページにてWindows版を無料でご利用いただけます。

「超縦書」Windows版 無料公開ページ

使い方・TIPS

本ページでは、見つけづらい機能や使い方のTIPSなどをご紹介します。

ファイルの開き方

以下の方法でEPUBファイルを開くことができます。

  • EPUBファイルをダブルクリック(インストーラでインストールした場合、自動で関連付けされます)
  • 左上の ボタンからファイルを指定
  • ウィンドウにドラッグ&ドロップ
  • コマンドライン引数にファイルを指定

超画像エンジンのご利用方法

本ビューアには、「超縦書」「超画像」の2つのエンジンが同梱されており、標準の状態では「超縦書」が使用されます。

閲覧するコンテンツが画像ベースFixed Layout EPUB (電書協ガイドラインに従ったもの) であることがわかっている場合は、 超画像エンジンを使うことでより高速に閲覧することができます。
超画像エンジンを使うには、EPUBファイルの拡張子を .comic に変更して開きます。現行バージョンでは、関連付けは行われませんので、ドラッグ&ドロップや「開く」メニューからオープンしてご利用ください。

連番画像ZIPコンテンツのご利用方法

JPEGファイルをZIPでまとめたコンテンツを開くことができます。この際は超画像エンジンが利用されます。

※本機能は試験的な機能と位置づけられており、ページめくり方向や順序などの詳細な設定機能は無効化されています。 またファイル関連付けは行われませんので、ドラッグ&ドロップや「開く」メニューからオープンしてご利用ください。

アップデート通知の取得について

『超縦書』では、起動時にソフトウェアのアップデートがないかを確認する機能があります。この確認は、BPSが用意したアップデート情報配信サーバにHTTPで通信することで行われます。利用するプロキシサーバの設定を設定することで、直接HTTP通信を行えないネットワーク環境でもアップデートのお知らせを受け取ることができます。上部ツールバー、右側領域にある歯車アイコン押下で詳細設定ダイアログが開きます。そこで、詳細設定ボタンを押下するとプロキシサーバーの設定項目がありますので、お使いの環境に合わせて設定してください。

Viewing all 51 articles
Browse latest View live