IT系フリーランスの技術備忘録

日々の業務で学んだ事の覚書やフィードバックなど。たまに関係ない記事も。

実現したい事業

実現したい事業

 

1.仕様書の体裁整え事業

仕様書を納品する際、印刷フォーマットや、ページ振り、誤字脱字などを直すサービス。

 

仕様書納品する際、メンバーごとに仕様書の粒度が違ってやり直すなんて事はありませんか?

 

客先にも、「仕様書の体制整えサービスに依頼する」と言えば、後は納品までこちらで引き受けます。

 

2.新人マンツーマン指導教育サービス

新人の質問や疑問を解決するだけでなく、プロジェクト進行の遅れも手助けします。

 

Oracle 12c ClientのダウンロードURL

仕事でOracle 12c Clientのインストールする機会があったのですが、ダウンロード方法がわかりずらく、かなり手こづってしまったので、サクッとインストールしたい方の為に備忘録を残します。

まずはここにアクセス

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Oracle 12c clientのダウンロードは上記のURLにアクセスする必要があるのですが、でも、ちょっと待って下さい💦

アクセスした先でどのようにインストールしたらいいのかわからなくて悩む方ってでてくるのではないかと思うんですよね。
(Oracle client 12cのダウンロードURLはなかなか見つけづらいです。少なくとも私はそうでした)

見つけ方を記載いたしますので、焦らずにこの先もしっかり読んで下さいね。
(それがこの記事の存在意義です!)

上記のURLにアクセスしたら、インストールしたいOSに該当する「See All」をクリックします。


f:id:microsoftcream87:20180415102334p:plain

表示されたページの「Accept License Agreement」へのチェックをしてから、「winx64_12201_database.zip」をクリックすると、zipで圧縮されたインストーラーがダウンロードされます。
※この名称はWIn64版の場合ですが、他のOS用でもだいたい手順は一緒です。


f:id:microsoftcream87:20180415103114p:plain

あ!あとひとつ大事な事。

ダウンロードをする為には、このサイト(Oracle社のホームページ)へのサインインが必要です。
サインインをしていない場合は、サインインが求められます。


f:id:microsoftcream87:20180415104238p:plain

サインインには事前の会員登録(無料)が必要です。

会員登録は、メルアドさえあれば誰でも可能で、さして時間もかかりません。

無事にダウンロード出来たら、ダウンローしたファイルを解凍し、中にあるインストーラーをクリックすればインストールが開始されます。


f:id:microsoftcream87:20180415172325p:plain

Windowsの場合は"Setup.exe"です。




インストールにあたって参考にしたサイト

Oracle® Database Clientインストレーション・ガイド 12cリリース1 (12.1) for Microsoft Windows

↑このサイトは何かというと、Oracle社が提供しているインストールガイドです。
Oracle社が提供しているものなので、通常は一番正しいし、お仕事などでOracleについて調べる場合は、多分一番先に見た方がいいだろうサイトです。

この、Oracle社の提供するガイドだけでどうにかなったらいいのですが、実際はこれだけでは不十分な場合や、まだ初心者で理解が難しい場合、または、必要な事だけをサクッと知りたい場合の為に、各種書籍や、この記事のようなブログ記事が存在していると思います。

で、この記事は、「とにかくOracel12cのClientをサクッとインストールしたい!」「インストールガイドを呼んでいる暇もないし、近くに聞ける人もいない!」という方の為に、ダウンロード方法をサクッと書きました。

お役に立ちましたら幸いです。

【ブロガー必見!】PCのキャプチャ画像をサクサクとブログ記事に張り付けながら記事を書く方法

ブログの記事を書く際に、PCの操作手順など、画像キャプチャを張り付けたい時ってありませんか?

 

そんな時私は、PCの画像をプリントスクリーンで張り付け、それを一旦保存し、それをブログの画像アップロード機能でアップロードしてから張り付けるというう手順を踏んでいました。

 

もし、同じような方法をされているのであれば、Windows標準の「Snipping Tool」を使えば簡単です。

 

f:id:microsoftcream87:20170731061702p:plain

 

一度操作を覚えてしまえば、操作は非常に簡単で、Snipping Toolでキャプチャした画像を、ブログ記事中でCtrl + Vを押せば、そのまま画像が張り付きます。

 

どうぞ、一度お試しあれ!

Oracleで作成されているデータベースを調べるにはDBCAを使う

Oracleで作成されたデータベースが何かを調べるには、DBCAを使用します。

 

DBCAのコマンドプロンプトで、dbcaと入力すると起動します。

 

f:id:microsoftcream87:20170731060713p:plain

 

しばらくすると、DBCAが起動します。

 

f:id:microsoftcream87:20170731060816p:plain

 

SQL整形(SQL崩し)の方法調査備忘録

システム開発をしていると、ロジックに埋め込まれた複雑なSQLを読み解くのに、見やすく整形したい時ってありませんか?
私は以前、そんな時は、ちまちまと改行とタブを駆使し、毎回自力で整形していましたが、ある時、いろいろな方法で「SQL整形」という機能が存在し、それを使えばSQL整形はサクッと出来ることに気が付きました。

けれども、いざSQL整形をしようと思うと、SQL整形を行う手段はあまりにも多く、また、方法によっては、いまいち綺麗に整形してくれない場合も多く、あれこれと試すのに時間を使ってしまった為、筆者が悩んだ挙句にたどり着いた結論とでもいうべきお勧めの整形方法をご紹介させて頂きます。

サクッとすぐにWeb上でSQL整形をしたい方

SQL 整形 For WEB
atl2.net


使い方は非常に簡単で、上記のリンクを開いたら、整形したいSQLを入力して、「整形」ボタンを押すだけです。
設定等は特に変える必要はないかなぁという気がします。
一度「整形」ボタンを押してみて、細かい点が気に入らなければいろいろといじってみましょう。

サクラエディタでのSQL整形

SQLの整形 ~サクラエディタ マクロ版~
http://d.hatena.ne.jp/izoc/20090724/1248397863d.hatena.ne.jp


筆者が開発しているときは、初めはWebが使える環境だったんですが、途中で使えない環境に移ってしまった時があるんです。
その時に、サクラエディタでのマクロは無いかと探し、たくさん見つかったのですが、一番使いやすかったのはこれかなぁと。

サクラエディタのマクロでSQL整形をしたい場合は、上記のリンク先にサクラエディタマクロ用のソースコードをコピペして使うのが便利です。

>>サクラエディタでのマクロの使い方

データベース開発環境でのSQL整形

最近はデータベースを使う場合は、GUIの開発環境を使う場合も多いかと思います。
主要なデータベース開発環境には、たいていはSQLの整形機能はついています。
なので、データベース開発環境が使える方は、お使いのソフトのSQL整形機能を使ってみて、整形方法としてそれで問題が無いのであれば、それを使うのが手っ取り早くていいでしょうね。

【主要なデータベース開発環境】
A5:SQL Mk-2
SQL DeveloperOracle社の提供するデータベース開発環境。Oracle限定だったかなぁ。

など。

お勧めはA5:SQL Mk-2かなぁ。
SQL整形だけでなくて、データベースの値をEXCELに出力する際は一番見やすく表示してくれるかなぁと。


>>A5:SQL Mk-2でSQL整形の方法

SQL整形機能の実力を試すのに使えるサンプルSQL

select distinct a . *  -- 1行コメント
,func1(a . aaa+1*2*3/4),"a"."aaa"||'aaa'+1,func2(func3
( 123 )),( 1+( 2*3 ) ),@@SQLSERVER_ENV as"aaa",case a  . bbb when '1' then 
'一' when '2' then '二' else '' end ,   case when a. fff = 'ccc' then 'O' else 
'X' end,case a  .fff when '1' then case when a. ggg = 'ccc' then 'O' else 'X' 
end when '2' then (case when a. hhh = 'ccc' then 'O' else 'X' end) else '' end
from TB_NAME a inner join (select カラム1,カラム2,カラム3 from テーブル名 where
カラム1   != カラム2) テ on a.aaa=テ.カラム1 where a . aaa=@aaa and テ . カラム2 = 
:bbb and a.ccc >= 3 and    a.ddd <= 4 and a.eee != 5 and `a` . `MySQL Identifier  `=333 
and [a] . [SQLServer Identifier  ]=2.2 and(1=1 or (2=2)) union select * from (select * 
from TB_NAME4)

SQL整形でどのように整形されるのか、手元に手ごろなSQLが無い場合は、上記のサンプルSQLを実験サンプル用にお使いください。
見るのも嫌になってくる複雑なSQLSQL整形でどのように整形されるのか?
参考に出来ると思います。

LINEの匿名チャットBOTを「Messaging API」で作成したよ!

以前、LINEで匿名チャットBOTを作成しようと思い、Qiitaのこの記事のソースをコピペしたらうまく動作しなかったという記事を書きました。

microsoftcream87.hateblo.jp


結局のところ動作しなかった原因は、Qiitaのmasuhajimeさんの記事にかかれていたソースは、「BOT API Trial Account」という既に終了したサービス用のソースで、現在(この記事を書いているのは2017年6月24日)LINEBOTを作るためのサービス「Messaging API」では動作しないという事だった訳ですが、このたび、その動作しなかった匿名チャットBOTのソースを、Amazonで購入した、

という本で勉強して、改造しましたので、ご紹介致します。
Message APIで操作する匿名チャットBOTのソースはこちらです!

<?php

// Composerでインストールしたライブラリを一括読み込み
require_once __DIR__ . '/vendor/autoload.php';

// アクセストークンを使いCurlHTTPClientをインスタンス化
$httpClient = new \LINE\LINEBot\HTTPClient\CurlHTTPClient(getenv('CHANNEL_ACCESS_TOKEN'));
// CurlHTTPClientとシークレットを使いLINEBotをインスタンス化
$bot = new \LINE\LINEBot($httpClient, ['channelSecret' => getenv('CHANNEL_SECRET')]);
// LINE Messaging APIがリクエストに付与した署名を取得
$signature = $_SERVER['HTTP_' . \LINE\LINEBot\Constant\HTTPHeader::LINE_SIGNATURE];

// 署名が正当かチェック。正当であればリクエストをパースし配列へ
// 不正であれば例外の内容を出力
try {
  $events = $bot->parseEventRequest(file_get_contents('php://input'), $signature);
} catch(\LINE\LINEBot\Exception\InvalidSignatureException $e) {
  error_log('parseEventRequest failed. InvalidSignatureException => '.var_export($e, true));
} catch(\LINE\LINEBot\Exception\UnknownEventTypeException $e) {
  error_log('parseEventRequest failed. UnknownEventTypeException => '.var_export($e, true));
} catch(\LINE\LINEBot\Exception\UnknownMessageTypeException $e) {
  error_log('parseEventRequest failed. UnknownMessageTypeException => '.var_export($e, true));
} catch(\LINE\LINEBot\Exception\InvalidEventRequestException $e) {
  error_log('parseEventRequest failed. InvalidEventRequestException => '.var_export($e, true));
}

$midFile = __DIR__ . "/files/mids";

// midsの中身を読み込み
$mids = explode(PHP_EOL, trim(file_get_contents($midFile)));


// 配列に格納された各イベントをループで処理
foreach ($events as $event) {

  //  テキストメッセージでなければ処理をスキップ
  if (!($event instanceof \LINE\LINEBot\Event\MessageEvent)) {
    error_log('Non message event has come');
    continue;
  }

  // メッセージを送ってきたユーザーを取得
  $newMids = array();
  $newMids[] = $event->getUserId();

 // 新規のユーザーの場合は追加
  $mids = array_merge($newMids, $mids);
  $mids = array_unique($mids);

  file_put_contents($midFile, implode(",", $mids));

  // メッセージを全登録ユーザーID宛にプッシュ
  foreach ($mids as $mid) {
    $response = $bot->pushMessage($mid, new \LINE\LINEBot\MessageBuilder\TextMessageBuilder($event->getText()));
    if (!$response->isSucceeded()) {
      error_log('Failed!'. $response->getHTTPStatus . ' ' . $response->getRawBody());
    }
  }

}

このソースを利用できるようになるまでの道のりも、全て、

に書かれていますので、匿名チャットBOTを作って自分も友人などと匿名チャットBOTで遊んでみたいという方で、かつ、上記のソースだけでは動作に至るまでいかないかたは、ご購入下さい。

ブログの記事作成が格段に速くなる!ウインドウのキャプチャを張り付けたいときに圧倒的に早くなる「Snipping Tool」のご紹介

f:id:microsoftcream87:20170624070401j:plain

photo credit: Tom Simpson Lynda Carter as Wonder Woman via photopin (license)

 

ブログの記事を作成するとき、PCの画面キャプチャを記事に張り付けたいときは、どのようにやってますか?

 

私は今まで、PrtScnで画像キャプチャして、それをペイントブラシにコピーして、どこかにいったん保存し。。。という手順を踏んでいました。

 

そんな事をしていたら手間がかかる!

 

で、やっと最近、かなり早く出来る方法がわかりました。

 

方法は、「Snipping Tool」を使います。

 

このツール、画面のキャプチャが出来ることはPrtScnと一緒なんですが、画面をそのまま矩形に切り取ってキャプチャ出来るんです。

 

で、キャプチャした画像は、記事にそのままCtrl + Vで張り付け!

(はてなブログではこの方法でそのまま張り付けられたけど、他のブログサービスではどうなのかな。。。)

 

詳しい使い方は、こちらのokutaniさんの記事がわかりやすくていいかなーと思います。

 

vdeep.net