2011年4月14日

SugarSyncをLinuxで動かして見た

人気急上昇中のファイル同期サービス SugarSyncをLinuxで利用する方法

上のエントリにも書いた通り、Linuxで(強引に)SugarSyncを利用する方法は2つある。

ひとつは、Linux上でWindowsの仮想マシンを動かして、そこにSugarSyncをインストールしておき、仮想化ソフトのフォルダ共有機能を使ってLinux側にあるフォルダを同期させる方法。

2つ目は、Linux上で「Wine」を使ってWindows用のSugarSyncクライアントソフトを動作させてしまう方法。

今回、この2番目の方法を実際にやってみたのでメモしておこう。

Linuxの環境は、Ubuntu 10.10 (32bit)を使用している。

まずはWineをインストール。
sudo apt-get install wine

次に、Windows用SugarSyncクライアント(「SugarSync Manager for Windows」)をダウンロード。
https://www.sugarsync.com/downloads/
ダウンロードしたファイル(SugarSyncSetup.exe)に実行可能属性を付けた後、実行。
chmod +x SugarSyncSetup.exe
./SugarSyncSetup.exe

おもむろにインストーラが立ち上がった。


デフォルト設定のまま続行してインストール完了。

問題無し! と思いきや、日本語が表示されない。

仕方なくアンインストールし、英語を選択してやり直す。


インストール完了。

今度は無事表示された。英語なので当たり前かww。

最初に同期対象のフォルダを選べと言われるが、とりあえず全てチェックを外しておいた。

「SugarSyncファイルマネージャ」のメイン画面

「同期フォルダの管理」

「ファイル転送状態」

この様に問題なくあっさりと動作してしまった。

SugarSyncも素晴らしいけれども、今回は「Wine」のすごさに驚かされた。今までほとんど使った事が無かったが、これからもWindows版しかないソフトをLinuxで動かす必要がある場合にはまずWineを試そうと思う。


今日の結論

Wineって美味しい!





2012/6/8 関連記事を追加:
Windows/Mac/LinuxでSugarSyncの代わりに使えそうな4つのクラウドストレージ

2012/8/7 追記:
 2012年8月7日現在、Ubuntu 11.10上で再度試した限りでは、インストール時にエラーが出て動作させる事が出来なかった。
Ubuntu 11.10+Wineの環境でインストーラを起動するとほぼ最後まで順調に進むものの…

この通り最後にエラーが出てインストール出来なかった。
残念!
なので僕はLinuxでSugarSyncを使うのはほぼ諦める事にして、Wualaに移行した。WualaならLinux(Ubuntu 11.10)上でも全く問題無く動作するし、機能的にもほぼ同等だ。










.


KeePass + SugarSync + KeePassDroidで安全なパスワード管理を

永らくパスワード管理は自分の記憶力に頼る派だったのだが、最近さすがにそれにも限界を感じ始めていた。

そこでぼちぼち何かツールを使ってみようかと、評判の良いパスワード管理ツールを探してみた。
最強のパスワード管理ツール5選! : ライフハッカー[日本版]

ちょっと見た所、KeePassというのが良さそうだ。Windows、Mac、Linux、iOS、Androidで動く。

それにソースコードが公開されているというのも安心感を与えてくれる。
KeePass Password Safe

Android版はこちら
KeePassDroid

インストール方法や大体の使い方はこの辺りで
KeePassでパスワードをより厳重に管理する方法 | nanapi [ナナピ]

『KeePassDroid』~複数のID・パスワードを簡単管理!PCとも連携できる~ | andronavi (アンドロナビ)

Windows版を使って見た感想

Windows版は2.X系と1.X系の2つがあり、両方がアクティブに開発され続けているらしい。その違いはこちらに書かれている。セキュリティ的にはほとんど変わらなさそうだが、2.X系の方が少し機能が多い。今回はVersion 2.15をインストールして見た。


正直、もっと早くから使っていれば良かったと思う。今までしょっちゅう「パスワード忘れました」ボタンをクリックするはめになっていたのが、KeePassさえあればこれからは大丈夫だ。強力なパスワードの自動生成機能やブラウザへの自動入力機能も使い出すと本当に便利で手放せなくなる。

Android版を使って見た感想

Android版(KeePassDroid)の2011年4月13日時点での最新バージョンの1.9.2では残念ながらKeePass 2.X系のデータベースは編集出来ず表示のみ可能との事。

ただ表示オンリーと割りきって使えば決して使い勝手は悪くない。アプリを起動して、エントリの詳細画面を開いた時点でステータス通知領域に「Copy username」と「Copy password」というメニューが表示されるので、これを使えばユーザー名やパスワードを打ち間違える事も無くなる。

SugarSyncでの同期

複数のPC間でKeePassデータベースを同期して使うには、SugarSyncの「同期フォルダの管理」画面からKeePassデータベースの保存されているフォルダを同期対象に指定するだけでOKだ。各PC毎に同期する/しないが設定出来るし、もちろん同期先のフォルダも個別に指定可能だ。

簡単過ぎて拍子抜けしてしまう。素晴らしい!


Androidとの同期もSugarSyncを使えば可能だ。ただ自動で同期する様にはなっていないので、定期的に同期元のPCを指定してデータベースファイルを「ダウンロード」している。



Linux版も試して見た

Linux版はここからダウンロード出来る。
KeePassX – Downloads

Ubuntu 10.10を使っているので、10.04対応バージョンの設定をリポジトリに追加して、後は「システム管理」メニューの「Synapticパッケージマネージャ」でKeePassXを選んでインストールすればOKだった。

ただ現在のバージョンのKeePassXはKeePass 2.Xのデータベースは読み込めない。そこで、Windows PC側で前もってデータベースをKeePass 1.X形式でエクスポートしておく必要がある。エクスポートしたファイルをLinux側へコピーして開けば問題なく読み込む事が出来る。

読み込んだ内容をLinux側で編集する事も出来るが、それをしてしまうと今度はWindows側のデータベース(KeePass2.X)と整合性が取れなくなってしまう。仕方が無いので今はLinux側で編集する事は諦めている。

もちろん、Windows側でもKeePass 1.X系を使うのであれば、上手く同期する事さえ出来ればどちらで編集しても問題なく使う事が出来るだろう。

WindowsとLinuxでデータベースファイルを同期するために、Linux側ではWineを使ってSugarSyncのWindows版クライアントを動かす事にした。
人気急上昇中のファイル同期サービス SugarSyncをLinuxで利用する方法

結果、意外とすんなりと動いたので驚いている。これについては詳しくは別のエントリに書くことにしたい。


今日の結論

パスワード管理は厳重に。KeePassいいね!




2011年8月/23日 追記:

Version 2と1を併用するのであれば下の方法を使うとさらに便利。
KeePass で kdbx と kdb を同時に保存する方法 | ru_426


2011年11月24日 追記:

LinuxでもVersion 2が使えるとの事。今度試そう。
KeePassをバージョンアップ | 電子虚数空間






2011年3月29日

Microsoft SQL Serverに関する些細な4つのTips

===========================================================
マザー・テレサの名言から考える「今、自分にできること。」 : earth in us.
===========================================================


自分の旧ブログからの転載です。


1. MS SQL Serverの@@IDENTITYで正しい値が取得出来ない時は。。。

SQLサーバーで@@IDENTITYを使うと、Insert直後にトリガーが走ってさらにその中で別のInsert文が実行される場合に意図した値が取得出来ないという問題に遭遇しました。
そこで調べて見た所、SCOPE_IDENTITY() という関数があるのを遅ればせながら今日知りました。^^;
これだとトリガーに関係なく自分の直前のInsert文の結果としての最新のIdentity値が取得出来るそうです。

SCOPE_IDENTITY (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms190315.aspx


Alternatives to @@IDENTITY in SQL Server 2000
http://www.sqlteam.com/article/alternatives-to-identity-in-sql-server-2000


Identity Crisis
http://msdn.microsoft.com/en-us/library/aa224821%28SQL.80%29.aspx


Getting the Wrong Identity in Microsoft SQL Server identity Columns?
http://www.databasejournal.com/features/mssql/article.php/10894_3307541_2/Getting-the-Wrong-Identity-in-Microsoft-SQL-Server-identity-Columns.htm


結論:

これからは@@IDENTITYではなく SCOPE_IDENTITY() を使おう!


注)もちろん場合によっては @@IDENTITYの方が望ましい場合もあるかも知れませんので、何でもかんでもという訳ではありません。。。



2. SQLServerのDB内の全テーブルのデータ容量を表示する

下の2つのサイトの情報を参考にして、全テーブルのデータ容量を表示するSQLを作ってみました。
レコード件数だけでなく、データ領域とインデックス領域の使用量も確認出来るので便利かなと。

[SQL]SQLServerのDB内に存際する全テーブルの件数取得(T-SQL)
http://genz0.blogspot.com/2009/04/sqlsqlserverdbt-sql.html


【SQL Server】テーブルの使用量を確認する
http://blog.livedoor.jp/akf0/archives/51427351.html



上記2つの作者様、情報ありがとうござました!

以下、SQLです。

SET NOCOUNT ON

--テーブル変数(結果格納用)
DECLARE @TEMP_TABLE table(
row_id int IDENTITY(1,1) NOT NULL
,T_NAME varchar(128) NULL
,T_CNT bigint
,T_DATA bigint -- KBytes
,T_INDEX bigint -- KBytes
PRIMARY KEY (row_id)
)

DECLARE @NAME nvarchar(128), @SQL nvarchar(256)
DECLARE @CNT bigint, @DATA bigint, @INDEX bigint
declare @row_id int


--カーソルの宣言
DECLARE cs CURSOR FOR
SELECT NAME FROM sysobjects where type='U' ORDER BY NAME

--カーソルのオープン
OPEN cs
FETCH NEXT FROM cs
INTO @NAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = N'EXEC sp_MStablespace [' + @NAME + ']'

INSERT INTO @TEMP_TABLE (T_CNT, T_DATA, T_INDEX)
EXECUTE sp_executesql @SQL

SET @row_id = @@IDENTITY
update @TEMP_TABLE SET T_NAME = @NAME WHERE row_id = @row_id

FETCH NEXT FROM cs
INTO @NAME
END

CLOSE cs
DEALLOCATE cs

--実行結果を表示する
SELECT T_NAME, T_CNT, T_DATA, T_INDEX, (T_DATA+T_INDEX) / 1024 AS TOTAL_MB
FROM @TEMP_TABLE ORDER BY (T_DATA+T_INDEX) / 1024 DESC
SET NOCOUNT OFF



3. MS SQL Serverからメールを送信する

EXEC master.dbo.xp_sendmail
@recipients = @mailto,
@query = @sql,
@subject = @sub,
@message = @msg,
@attach_results = 'True',
@width = 2000

注)使用するにはSQLサーバー側でメールサーバーの設定が必要。



4. ストアド内のSQLのエラー

他社が開発したあるシステムで、データ取り込み処理の途中でSQLエラーが発生してしまいました。「文字列が長すぎるからフィールドに入らないよー」っていうワーニングでした。

諸般の事情で仕方なく無視して続行させたいのですが、デバッグしようにもものすごく長いストアドなので、なかなか厄介なんです。

結局、ストアドの最初に「SET ANSI_WARNINGS OFF」っていう1行を入れて逃げました。^^;
もちろん本当は良くないのですが、最悪の場合こう言う逃げ方もあると言う事で。




===========================================================
マザー・テレサの名言から考える「今、自分にできること。」 : earth in us.
===========================================================







.