2014年4月25日金曜日

Excelで「テーブル」の設定を変更・削除する方法

Excelのテーブル機能はOffice2007よりついた便利な機能ですが、
たまに、意図しない動作をしたりして、同じテーブル内に行を追加
したにも関わらずテーブルの行として認識されなかったり、
テーブルの前に列を追加すると認識されなかったりと、
困ることがあります。

そんなとき、テーブルの作り直し、編集をすれば良い。という発想になるのですが
メニューを見てもなかなか見つけられなかったので、纏めておきます。


やりたいこと

Excelのテーブルを編集、削除したい

実現方法

1) テーブル内のセルを選択
 2) 「デザイン」タブを選択
 3-1) サイズを変えたい場合、「テーブルのサイズ変更」
 3-2) テーブルを削除したい場合、「範囲に変換」


これで、使える機能である「テーブル」が、さらに使えるものになりそうです。

2014年4月23日水曜日

Outlook2010で添付ファイルのプレビューをしないようにする方法

Outlookの添付ファイルを操作している時、開けるファイルだったりすると
自動的にプレビューが表示されてしまいます。

セキュリティ上よろしくないという理由もありますが、
ファイルサイズが大きいと動作上もたつくため、オフにすることにしました。

手順

1) Outlookを開く
2) 「ファイル」→「オプション」を選択
3) 「セキュリティセンター」タブを選択し、「セキュリティセンターの設定」ボタンを押す
4) 「添付ファイルの取り扱い」タブを選択し、「添付ファイルのプレビューをオフにする」にチェック

Outlookを再起動すると設定が反映されます。


2014年4月18日金曜日

Webサイトへの不正アクセスを抜粋してみました

Webアプリを運営しているのですが、ふと気になったので、
不正アクセスのログを抜粋してみてみました。

私自身もOSSを使う事が多いのですが、OSSに対する不正アクセスの多さが目立ちますね。

○phpMyAdmin

圧倒的に多いですね。特に、setup.phpへのアクセス。

/myadmin/scripts/setup.php: 6 Time(s)
/phpMyAdmin/scripts/setup.php: 6 Time(s)
/phpTest/zologize/axa.php: 6 Time(s)
/pma/scripts/setup.php: 6 Time(s)
/MySQLAdmin/: 1 Time(s)
/SQL/: 1 Time(s)
/db/: 1 Time(s)
/dbadmin/: 1 Time(s)

○ColdFusion

管理画面へのアクセスのようです。何かできるのでしょうか?

 /CFIDE/administrator/enter.cfm: 1 Time(s)

○zimlet

調べてみたところ、Zimbraというアプリケーションの付帯ツールのようです。
 /zimlet/com_zimbra_email_dns/xd.jsp: 1 Time(s)

○horde

webメールアプリケーション
 /horde/login.php: 1 Time(s)

○Tomcat

APサーバですね。
 /docs/funcspecs/3.jsp: 1 Time(s)
 /manager/html: 1 Time(s)

○epgrec

こんなツールもあるんですね。
 /epgrec/do-record.sh: 1 Time(s)

○foltia

録画ツール

○Wordpress

プラグインを狙ってきました
 /wp-content/plugins/easy-comment-uploads/upload-form.php: 1 Time(s)


他にもありましたがこの辺で。

ツールを使う時には不正アクセスへの対策も十分したうえで使う必要がありますね。

2014年4月16日水曜日

Windows Live Writerを試してみました(Bloggerの編集)

以前、Bloggerを簡単に編集したいと思いツールを探していた時に、MSの製品を見つけたので
その製品を使ってみた感じをまとめます。(この記事はWindowsLiveWriterで書いています。)


結論

結論的には、楽かも。
個人的には画像の挿入作業が一番厄介だったので、ドラッグアンドドロップ一発で貼り付け可能。
これで、たくさん画像があっても、苦労しません。
※ただ、操作できてもBlogに上がらないという現象があるので追加調査要。



使い方ですが、まずは、MSサイトよりダウンロード。
http://www.microsoft.com/ja-jp/download/details.aspx?id=8621

ダウンロードしたSetupを起動します。


MSの総合製品なので、色々入れられますが、Writerのみを選びました。

色々と入っています。

オプション入れる?と聞かれますので任意で。

インストールされたようです。

今回はbloggerです。見当たらないので、「その他」

たぶんこうだろう的なノリで、アカウント情報を入力

 

bloggerを選択したら、リモート接続URLが自動セットされます。

勝手に色々と動いています。おそらくアプリの設定かと。


インストールが完了し、編集画面が開きました。
期待していた画像のドラッグアンドドロップもできて、ばっちりです。
と思ったら、記事保存してもblogに上がらない。追跡調査が必要そうです。


【他気になったこと】
・Ctrl+Z(元に戻す)が若干挙動不審なようです。
・タグが選べないのが残念。ま、これはWebからでもいいかな。(訂正:カテゴリの間違いでした。画面下部で可能でした)
・画像添付して記事を作ってもアップされない。(そもそもでファイルアップと記事アップは別処理か)

2014年4月15日火曜日

SugarCRMでメールを活用する

ひとまずやりたいことは、以下

1) SugarCRMから、メールを送受信したい。
2) メール送受信には、テンプレートを使いたい
3) メールの送受信は、取引先と関連付けたい

というわけで、ひとつずつ進めてみようと思います。

長くなりそうなので記事分けます。ひとまずメールの送受信から。


1) メールの送受信

きちんとドキュメントを読みたい方は、以下にあります。

基本的な設定は、おそらく、「管理」→「メール設定」です。
おそらくってのは、この記事書いてるときにはすでに実現できてしまっていて、
今更変えると怖いので検証していないから。ってのが理由です。
自分は、メール送信エージェントに、管理用のメールアカウントのID、パス、ポート等を設定しています。

その後、自分の設定として、「活動」→「電子メール」を開き、
「設定」から、「メールアカウント」タブを開き、
よくあるメールクライアントの設定要領で必要情報を設定します。
この際、「送信メールサーバー」に、先ほど「管理」で設定したメールサーバーが
出てきますので、選びます。


これだけで、送受信は可能になりました。

が、メールヘッダが化ける。
というか一時は本文も化けてました。
本文は、メールの設定でHTMLを使わないようにすれば回避できました。
・電子メール -> 設定 -> 一般 -> 「電子メールをテキストで送信」にチェックOn 、文字コードセットをISO-2022-JP
で、「保存」を押す。間違っても「完了」を押して保存した気にならないようにしてください!

この辺でタイムアウトとなってしまったので、時間ができたら、
件名、および添付ファイル名の文字化けを直していきたいと思います。

2014年4月14日月曜日

メジャーどころのRDBで利用する主要ツールまとめ。

メジャーどころのRDBで利用する主要ツール覚え書き


  CUI Import Export データ操作GUI Tools
(無償・公式)
Oracle SQLPlus imp exp SQL Developer
SQLServer OSQL Bcp Bcp SQLServer Management Studio
MySQL mysql mysqlimport mysqldump MySQL GUI Tools


MYSQLでフルダンプ

mysqldump -R -uusername -ppassword -hhostname databasename > exportfilename.sql

Oracleでフルダンプ

exp user/pass@connectionname file=fullpath

SQLServerで該当テーブルのデータをCSV(カンマ)で出力

bcp databasename.owner.tablename out dat.dat -U sa -P password -S .\SQLEXPRESS -r \n -c -t, -T


その他1行Tips

○Oracleでデータを一括登録
 SQLLoaderか、SQLPlusで作り込み

○OracleでCSV出力
 SQLPLUSで、パラメータを色々いじくるとできる

○MySQLでCSV出力
 SQLの構文に、LOAD FILE ~とやると取込、OUTFILE~とやると出力

2014年4月11日金曜日

GoogleChromeを起動する際の起動オプションを指定する

Chromeには、起動に関するオプションが用意されています。

ショートカットにオプションをプラスする事により、起動オプションを付与した形で
Chromeを起動することができます。

やりかた

・ショートカットを右クリックして、プロパティを選択
・「リンク先」の、末尾に、起動オプションを付与して「OK」にて保存
・ショートカットから起動

実施例

・指定したページだけを開く
 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-startup-window "http://www/"

・マルチアカウントの際、プロファイルを指定して起動
 --profile-directory="Default"
 ※プロファイル名は、chromeより、chrome://versionと入力すると表示されます。
 ※プロファイルのデータは、「 %USERPROFILE%\AppData\Local\Google\Chrome\User Data\ 」に保管されています。(Win8.1で確認)

・ユーザーエージェントをスマートフォンとして起動
 --user-agent="Mozilla/5.0 (Linux; Android 4.0.3; ISW12HT Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36"
 ※サイトにより、スマートフォン認識されない場合もありますので、完全ではありません。

2014年4月10日木曜日

全文検索システム[fess]を試してみる

会社で試験導入が開始されたので、それならばと、自分のPCにも構築しようと思い
試しに動かしてみました。

公式サイト

http://fess.sourceforge.jp/ja/

インストール概要

・JAVAのインストール
・バイナリの取得および配置

インストール手順は公式サイトに紹介されており、非常に親切です。

2014年4月9日水曜日

Oracle 10.2.0.3 Client(32bit)でインストールしたODACのバージョン

Oracle 10.2.0.3 Client(32bit)でインストールしたODACのバージョンが、

1.102.3.0だったんです。

このサイトに検索エンジンなどでたどりついた方は、同じ状況に遭遇しているのかもしれません。


お客様先でシステムのインストール作業を行って、さあ動作検証!って時に
システムでエラーが出てしまい、調べたところ、原因がコレでした。

お客様環境ではPSRをあててるので、最終的なバージョンは1.102.5.0

使いたいODACは、2.102.5.0

ODACの2.102.5.0は、OracleClientではなく、ODACのインストーラを
使ってインストールしないといけない(注:検証していないので正しくはわかりません
らしく、今回はそんな予定はなかったので、仕方なく1.102.5.0への対応を行いました。
※.netアプリだったので、対応としてはBindingRedirectにて読み替え。

BindingRedirectの記事については過去に書いてました。


2014年4月8日火曜日

エラー発生時のトラブルシューティング

私は業務システムに関わっているため、システムの停止=業務の停止であり
システム停止ともなると、何の仕事もさておいて対応。という事になってきます。

そのような特性上、最短で解決できる手段が大事です。
最短で原因を突き止めるためには、いかに正しく
現象を把握するかにかかってきます。


解決への道標とするためのポイントを纏めておきます。


※ソフトウェア寄りのトラブルシューティングになってしまったので、どこかの機会で
 ハード、インフラ系についてもまとめたいと思います。



ユーザーから細かい情報をできるだけ聞き出す

ユーザーは「エラーが起きました」と伝えてくるだけのことがほとんどです
それだけでは、さすがに現象はわかりません。

第一報を受けた後、できる限り、たくさんの情報を聞き出す必要があります。

・「画面にどのような内容が出ていますか?」
・「どのような事をしましたか?」

 発生元、および発生元が出しているエラーの情報を掴む必要があります。
 OSなのか、アプリケーションなのか、ミドルウェアなのか、
 それを掴まないと進みません。
 状況により、ブルーバックなんてこともあるので、
 その時にはどのような事をしたらどうなったかを聞く必要も出てきます。

エラーコード、メッセージを適切につかむ

ユーザーはさらっと流してしまいそうですが、こちらにとっては
 その情報が命。
 再現しないような現象の場合、解決が不可能にすらなってきます。
 どのソフトがどのエラーを出しているかはそのエラーコード、
 エラーメッセージが示しているのです。

 英語だから、長いから。と言って、中途半端に聞いてもいけません。
 MS製品は0x800******というような魔法のようなエラーコードですが
 それも、無視してはいけません。
 今はネットの時代、検索窓に入れると即答で答えが出てるかもしれないです。
 ※メッセージ内容も然りです。

 大事なのは、手を抜かず、確実に情報を取得すること。
 画面のハードコピーを取ってもらい、メールやFAXで頂くなんてのも有りです。


エラーログを見る

エラーログはあちこちに散らばっています。
 このあたりまで来ると、ユーザーの技術習得度やその時の手順によっては
 「難しいからもう無理」と白旗を上げているかもしれません。が、
 こちらはそうは言えませんので、そこからさらに掘り下げます。

 ・Windowsログ
  ⇒管理ツールから見れます。エラーは「×」が出ているので
   利用者でも見ればわかるかもしれません。
 ・ソフトが出しているログ
  ファイル全走査して、更新日が直近のテキストファイルを片っ端から
  見ていきます。
 ・その他、原因が分かっていれば、そのソフトが出しているログ


エラーの詳細が分かれば、あとはその詳細情報を元に
情報をまとめ上げ、適切な処置へと移します。

自分で解決できない事も、発生元および現象さえ分かっていれば
サポート等へ問合せ、対応頂く事も可能になってきます。

今回は解決へ導く手順の要点のみを纏めましたが、
知っておくだけでも、自分で解決できる幅が大幅に広がります。


2014年4月7日月曜日

SugarCRMで任意の項目を追加する

使えば使うほど、使えそうなSugarCRMですが、
リードと取引先に情報の追加がしたくなったのでやってみました。

結果としては、相当簡単でした。

項目を追加する場合の手順

管理 -> スタジオ -> モジュール より、該当のデータを選択

1) 「フィールド」→「フィールドの追加」→ 必要事項を入力して保存
  ※urlの場合、Linkを選択
  ※先に選択しないと入力内容がクリアされるので注意
2) 「レイアウト」→「編集ビュー」→追加した項目をドラッグアンドドロップ
  行を追加したい場合には「ツールボックス」より「新規の行」で追加した後、
  必要な項目をドラッグアンドドロップ
3) 必要に応じ、「詳細ビュー」「一覧ビュー」も修正

ビューを修正したら、「保存して配置」とやると、反映されます。


追加ができるってことは、変更も並び替えも、削除もできます。


このスタジオって機能、使えば使うほどすごそうですね。
検索ウインドウですらカスタマイズ可能。



よし。この仕組みを業務システムへ持っていこう。

2014年4月4日金曜日

ClickOnceでオンライン配置されたアプリケーションのアンインストール

ClickOnceでオンラインのみとしてインストールされたアプリは
「プログラムの追加と削除」に表示されず、アンインストールができません。

開発では、アンインストールする必要があることも出てくると思いますが、
その場合、ツールを利用する事で対処できます。

実行方法


Mage.exe -cc

Mage.exeは、Windows SDKに付属しているツールです。
開発環境をインストールしていれば、プログラムフォルダなどに
存在すると思いますので、ファイル検索などして見つけてください。

開発環境ではない場合、プログラムロジックを実装する事により
同等の処理を行えるようです。

ロジック


using System;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
 class Program
 {
  static void Main(string[] args)
  {
   CleanOnlineAppCache();
  }
  [DllImport("Dfshim.dll")]
  private extern static void CleanOnlineAppCache();
 }
}


それでも消えない場合

ファイルを直接削除するという荒技もあるようです。

ClickOnceアプリケーションのインストール先は、利用環境によって
異なりますが、Windows8.1の場合、以下となります。


C:\Users\username\AppData\Local\Apps\2.0


ClickOnceは、使い方のポイントさえ押さえれば、使えるツールだと思いますので
うまく付き合っていくと、業務効率化に役立つのではないかと思います。

2014年4月3日木曜日

dnsサーバーの設定状況を確認する

DNSサーバの切替時は、何かしら起きる(もの)と思っていますが、
今回、ドメインの移管先切替に伴い、お客様より「うまくいかないんだけど~」と
聞かれてしまったので実態調査。

その時のメモです。

以下、Windowsクライアント編

サーバーを指定して、domain.co.jpの設定を確認する

>[nslookup] [-type=soa] [ドメイン名] [DNSサーバ]
>nslookup -type=soa domain.co.jp 01.dnsserver.jp
サーバー:  UnKnown
Address:  xxx.xxx.xxx.xxx

domain.co.jp
    primary name server = 01.dnsserver.jp
    responsible mail addr = hostmaster.dnsserver.jp
    serial  = 1395794157
    refresh = 3600 (1 hour)
    retry  = 900 (15 mins)
    expire  = 604800 (7 days)
    default TTL = 300 (5 mins)
domain.co.jp    nameserver = 01.dnsserver.jp
domain.co.jp    nameserver = 02.dnsserver.jp
domain.co.jp    nameserver = 03.dnsserver.jp
domain.co.jp    nameserver = 04.dnsserver.jp

サーバーを指定して、ホストの情報を確認する

>[nslookup] [サーバ名] [DNSサーバ]
>nslookup mail.domain.co.jp 01.dnsserver.jp

サーバー:  UnKnown
Address:  xxx.xxx.xxx.xxx

名前:   mail.domain.co.jp
Address:  xxx.xxx.xxx.xxx

メールレコード(MX)を確認する

>[nslookup] [type=MX] [ドメイン名] [DNSサーバ]
>nslookup type=MX domain.co.jp 01.dnsserver.jp
サーバー:  UnKnown
Address:  xxx.xxx.xxx.xxx

domain.co.jp    MX preference = 10, mail exchanger = main.domain.co.jp
domain.co.jp    nameserver = 01.dnsserver.jp
domain.co.jp    nameserver = 02.dnsserver.jp
domain.co.jp    nameserver = 03.dnsserver.jp
domain.co.jp    nameserver = 04.dnsserver.jp
bizmw.domain.co.jp     internet address = xxx.xxx.xxx.xxx

-----------------------------------------------------------
以下、linux編

サーバーを指定して、domain.co.jpの設定を確認する

[root@]# dig domain.co.jp SOA

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> domain.co.jp SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46534
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.co.jp.       IN    SOA

;; ANSWER SECTION:
domain.co.jp.   86400  IN    SOA   01.dnsserver.jp. hostmaster.dnsserver.jp. 1395794157 3600 900 604800 300

;; Query time: 10 msec
;; SERVER: 210.224.163.4#53(210.224.163.4)
;; WHEN: Fri Mar 28 12:03:28 2014
;; MSG SIZE  rcvd: 91

[root@]#


結局、問い合わせを受けたにもかかわらず、その後の応答が何もないので
おそらくDNSが浸透したのでしょう・・・。と。


2014年4月2日水曜日

Windowsでプロセスを終了させる(TaskKill)

TaskKillコマンドを使うと、Windowsで、コマンドラインからプロセスを終了させることができます。
LinuxのKillと同じですね。

使い方例

プロセスIDを指定して終了させる

TaskKill /PID プロセスID

イメージ名 (Exe名など)を指定して終了させる

taskkill /FI "imagename eq AcroRd32*"


プロセス情報を表示するTaskListコマンドと組み合わせて、
繰り返しで監視して該当アプリが起動していたら終了させるバッチを
作ってみました。


:LOOP
for /f "usebackq tokens=1,2 delims=," %%a in (`tasklist /FI "imagename eq AcroRd32*" /FO CSV /NH`) do (taskkill /PID %%~b)
REM 一定時間待機のダミーPING
ping 127.0.0.1 -n 10
goto LOOP

バッチファイルとして保存すると実行されます。

2014年4月1日火曜日

20代で差がつくと言われている件で自分なりに考えてみた5つの理由

4月です。今年も新社会人が元気に会社勤めを始めています。



社会に出るとよく耳にするキーワードの一つに「20代のうちに」というのがあります。

「若いうちにこそ頑張る」とか
「20代で頑張っておかないと後で大変になる」とか
「社会人3年までにこれこれはやっておきなさい」

言い方言い回しこそたくさんあるものの、20代向けをターゲットとした教えは多いです。

そこで、自分なりに、なぜかを考えてみました。

1.年を取ると経験が邪魔をする

言い換えると、「頭が固くなる」ってやつですね。

 人間は経験で生きる生き物だと思います。
 危機管理や効率化、趣味など、いろんな事を経験をすることにより
 様々な面で幅が広い人間性が出来上がってきます。

 一方、経験が増えるという事は、取捨選択の幅にもつながります。
 楽な仕事というのは基本ないはずですが、楽な仕事が選択肢、経験として
 ある場合には、当然、楽なほうに行きたい気持ちも出てきます。

 そうやって、楽なほうの仕事に流れていくと、ある日突然難しい仕事が
 きたときに、対応力に差が出てきてしたりします。

 若いうちに楽な仕事を覚えない=楽が選択肢に入らない=日々努力し成長
 という、ある種気が遠くなるスパイラルかもしれませんが、
 30代に入った時の差は大きなものになっているのではと思います。

2.新しいことに挑戦することが習慣化できる

学生生活は、毎日が新しいことだらけです。
 放っておいても、新しい授業はあるし、毎年クラス替えや、学校が変わったり、
 イベントがあったりと、自分が何もしなくても変化があります。

 社会人になっても、数年くらいは新しいことだらけで今まで通りですが、
 ある一定期間を超えると、仕事環境にも慣れてきます。
 そこで、新しいことをしなくなっていくと、結果、新しいことを考える必要がなくなり、
 成長がストップしてしまいます。

 実際、ストップするわけではないはずですが、成長曲線が鈍るのは明らかです。
 若いうちから「仕事=新しいことにチャレンジ」を意識づけし習慣化しておくことで
 30代あたりの仕事の仕方が大きく変わってくるのではないかと思います。

3.チャレンジできる

30代を過ぎると、チャレンジできる環境はだんだんと減っていきます。
 若いからと許されていたものも、そうも言ってられなくなってきます。
 言えなくなってから気づくのでは遅いので、早めにやっておきましょう。という事ですね。

 転職機会も、30代に入るとガクンと落ちます。
 それだけを見ても「チャレンジが許される」年頃なのでしょうね。

4.「仕事=学び」の習慣を作れる

「学校=学ぶ」というのは誰もが知っているところ。
 では、「会社=学ぶ」はどうか。大半は「そりゃ違うよ」と言いそうです。
 会社は、勉強をするために対価を払うのではなく、利益に対して対価を出すものです。


 では、「仕事=学ぶ」はどうか。


 個人的には合っていると思ってます。

 なぜか。幾つか観点があると思いますが、
 仕事とは、だれかの役に立って対価をもらう事であり、
 仕事をする以上、自分の仕事の意味、置かれている環境、
 周りの環境、社会情勢など、知らないといけません。

 知るためには勉強。つまり、「人生常勉強」みたいな言葉こそ、
 仕事にも当てはまり、その重要性に早く気付いて習慣化することが、
 将来にわたって仕事を続けていける事につながります。

 年を取ってから「勉強」ってなると、学生時代の勉強を
 思い出してしまい、いや~な気になってしまうのは想像に難くないです。

 勉強をするのではなく、仕事の為に勉強。
 気の持ちよう一つですが、習慣化するかどうかでものすごい差が出ます。

5.若いっていいよね!

何でも楽しいですね。
 楽しいうちに、仕事の苦労も知っておくのが重要かと思います。

 自分のモチベーション = 楽しいこと - つらいこと

 楽しいことが多い時期にこそ、つらいこともたくさん知っておくことが
 後々の資産になるのではないかな。と思います。



個人的に5つほど挙げましたが、やって損はないことばかりと思ってます。

若いうちに楽な仕事に配属されてしまって数年たち、成長曲線が見えない
中堅どころも見て、「20代のうちに関わってあげられればな~」と思ったりもします。

少なくとも、3年以内の若手には、十分に気づかせてあげたい

そう思うこの頃です。

Oracle カラム一覧・テーブル一覧を取得

昔から使うのに、身につかないので記事にしてみようと思います。

当然ながら、他のRDBMSでも実現機能はあります。
アプローチが違うだけです。

以下、手抜きSQLです。

実装例

SELECT col.* , com.comments from
(
select * from user_tab_columns
where table_name in (select table_name from user_tables)
) col
,
(
SELECT * FROM USER_COL_COMMENTS
where table_name in (select table_name from user_tables)
) com
where
col.table_name = com.table_name(+)
and col.column_name = com.column_name(+)



カラム一覧を抜き出して、そこにコメントを結合しています。
テーブル名で絞っているのは、ビューなどほかのオブジェクトが出てきてしまったからです。


関連してですが、ファンクションなどの情報は、USER_OBJECTSに入ってます。