有限会社ダブルクォーテーション公式ブログ
弊社は東京にて業務システム、アプリケーションの開発業務、新人研修、社員研修、ITスクール等での講師業務を行っています。
各種プログラミング言語、各種サーバ構築、データベース、Web開発、MS Office VBA等を取り扱っています。
https://doublequotation.com

解散総選挙も終わり、台風も熱帯低気圧に変わった週明け、すっかり秋っぽくなってきましたな。
さて、今日は国内ではなかなか情報が乏しい「Qt」インストール手順について簡単にまとめてみました。
はじめての人は戸惑ってしまいますよね。

【Qt(Windows版/オープンソース版)インストールの手順】
(2017年10月時)

1、Qtのダウンロードサイトの「Download Now」をクリックして「qt-unified-windows-x86-3.0.1-online.exe」を入手します。

2、「qt-unified-windows-x86-3.0.1-online.exe」を実行します。インストールにはインターネット接続が必要です。

3、「Welcome to the Qt online installer」の画面。「Next」をクリックします。

4、「Qt Account」の画面。Qtのアカウントが無い場合は「Skip」をクリックします。

5、「セットアップ -Qt」の画面(なぜかここから日本語になる)。「次へ」をクリックします。

6、情報のダウンロードが行われるので待機します。

7、インストール先を指定して「次へ」をクリックします。

8、コンポーネントの選択をします。
「Tools」の「Qt Creator 4.4.1」は必須です。
必要最小限の構成であれば、使用しているC++コンパイラによって「Qt」→「Qt 5.9.2」の「MinGW 5.3.0 32bit」か「msvc2017 64-bit」(使用しているVisualStudioに合わせて)にチェックを入れて、「次へ」をクリックします。

9、「ライセンス条項の同意」の画面。ライセンス条項は2通りあるので、お好きな方に同意してください。

10、スタートメニューのショートカットを作るか指定して、「次へ」をクリックします。

11、インストールの準備完了です。「インストール」をクリックします。

12、Qtのインストールが行われる。

以上、C++による楽しいGUIライフをお楽しみください。

今回は、WebサイトをPDF化するツール「wkhtmltopdf」を紹介します。
コマンドで使用できるので、プログラムから呼び出すことも簡単に行えます。

入手はwkhtmltopdfの公式サイトの、上部の「Downloads」から。
Windows用の場合、Stable下の「Windows (MinGW)」の32bitもしくは64bitからEXEファイルをダウンロード、インストールしてください。
インストール先のbinフォルダ内にある「wkhtmltopdf.exe」を使用します。

コマンドプロンプトから下記のコマンドでWebサイトをPDF化することができます。(カレントディレクトリにwkhtmltopdf.exeがある場合)
wkhtmltopdf オプション WebサイトのURL PDFのファイルパス
例:wkhtmltopdf --print-media-type http://blog.livedoor.jp/dq_school test.pdf

オプションについてはコチラを参照にしてください。
私としてはJavaScriptが実行できる「--run-script」オプションが便利で重宝しています。
JavaScriptが実行できるということはDOMが使用できるので、HTMLやCSSを書き換えることができますから。

プログラムと連携する場合は、プログラムからコマンドを実行すればいいだけです。
C言語ではsystem関数、Javaではjava.lang.Runtimeクラス、.NETではSystem.Diagnostics.ProcessStartInfoクラス、PHPではexec関数かsystem関数、VBAではWScript.Shellクラスを使用してください。

wkhtmltopdfはオープンソースソフトウェアで「LGP Lv3」ライセンスになっています。
wkhtmltopdf.exeを使用したプログラムを作っても、ソースコードの公開義務はありません。

1日に何ページものWebサイトを手動でPDF化するのは面倒なので自動化したい。
なんて場合に使用してみてはいかがでしょうか?

約6ヶ月ぶりの講義です。
皆様、おひさしぶりです。A太郎です。
このままだと閉鎖されたブログだと思われるので、講義を再開いたします。
この6ヶ月間、3ヵ所の新人研修、書籍の執筆、毎年恒例の大阪出張、プログラムの作成と色々ありましたが、今回は新刊のCMをさせてください。

今月、秀和システムより「小さな会社ではじめてIT担当になった人のネットワーク超入門」が発売されました!!

小さな会社ではじめてIT担当になった人のネットワーク超入門

前作の「小さな会社ではじめてIT担当になった人のセキュリティ入門」に続き、「小さな会社ではじめてIT担当になった人シリーズ」の第2弾となります。
パソコン初心者を対象に、LANの構築、ファイルサーバ、Webサーバの構築の仕方を記した本となっています。
小さな会社でも大きな会社でも、IT担当の人もそうでない人も、ネットワークやサーバの基礎が学べるので、是非ともお読みください。

前作にもネットワークやサーバの基礎が掲載しており、前作と今作で内容が重複する章もあるので、2冊買われた方は「内容が同じじゃないか」となってしまいますが、ご了承ください。
前作はネットワークやサーバの基礎を学習して、そこからセキュリティに繋がる構成になっており、今作はLAN、ファイルサーバ、Webサーバの構築に繋がる構成になっています。

光回線の種別、LANの規格、ツイストペアケーブルの種類、カスケードの仕方・注意点、無線LANの規格、周波数について、Windows10による各種設定、ファイルサーバの作り方、IISによるWebサーバの作り方と、色々詰め込んでおりますので、お買い得ですよ。

次回作も皆様の役に立つ物を作りたいので、リクエストがあればどうぞ。

あいかわらず日本人は方眼紙好き、グリッド大好き、Excel激好きのようです。
時にはワープロ、時には帳票、時にはデータベースと、その使い方は千差万別です。
VBAを組み込んで、もはや基幹システムとなっているものもありますね。

近年ではグリッドデータを場所問わず使用したい、どのOSでも使用したいと言うことで、ExcelからGoogleスプレッドシートに移行するトコが増えてきています。
それに伴ってVBAもGAS(Google Apps Script)に移行するのですが、「両者似ているから簡単」と甘く見て、痛い目見る人も増えてきているとか。

当然ながらVBAで使用される「旧VB」と、GASで使用される「JavaScript(ECMAScript)」は異なる言語です。似て非なるものです。
今回の講義で取り扱うのは旧VBの「For Each」と、JavaScriptの「for in」についてです。これもまた「似て非なるもの」です。

そもそも、JavaScriptの「for in」は、対象オブジェクトの列挙可能な「プロパティ」を取得する文法です。
var Personal = function(){
  this.name = "A太郎";
  this.age = 20;
};

function Test01(){
  var object = new Personal();
  for(var property in object){
    Browser.msgBox(property);          //「name」「age」と出力
    Browser.msgBox(object[property]);  //「A太郎」「20」と出力
  }
}
連想配列(ハッシュ)もObjectオブジェクトでできています。
連想配列の場合は、いわゆる「キー」を取得することができます。
function Test02(){
  var hash = {key1:10, key2:20, key3:30};
  for(var key in hash){
    Browser.msgBox(key);        //「key1」「key2」「key3」と出力
    Browser.msgBox(hash[key]);  //「10」「20」「30」と出力
  }
}
配列もArrayオブジェクトでできています。
配列の場合は、いわゆる「インデックス」を取得することができます。
function Test03(){
  var array = [10, 20, 30];
  for(var index in array){
    Browser.msgBox(index);         //「0」「1」「2」と出力
    Browser.msgBox(array[index]);  //「10」「20」「30」と出力
  }
}
連想配列(ハッシュ)にはlengthプロパティが無いので、各要素の取得に「for in」を使用することがありますが、配列に「for in」を使用する場合は、旧VBの「For Each」と同様に考えてはいけません。

注意点を3つ紹介。

1、プロパティの追加に注意
プロパティを追加した場合、当然そのプロパティも取得対象になります。
function Test04(){
  var array = [10, 20, 30];
  array.newProperty = "適当";
  for(var index in array){
    Browser.msgBox(index);  //「0」「1」「2」「newProperty」と出力
  }
}
2、多次元配列に注意
旧VBの「For Each」は多次元配列の全要素を取得します。シートを読み込む際に便利ですね。
JavaScriptの「for in」は、1次元目のインデックスしか取得しないので、全要素を取得したい場合は、さらに「for in」をネストすることになります。
function Test05(){
  var array = [[10, 20, 30], [40, 50, 60]];
  for(var index in array){
    Browser.msgBox(index);  //「0」「1」と出力
  }
}
3、順不同に注意
「for in」で取得されるプロパティ(キー、インデックス)は順不同です。
必ずしも、定義した順に、名前順に、番号順にはならないので注意です。

なお、GASはJavaScript1.6に基づいており「for each in」「for of」は実装されていません。
配列の全要素を順番に読むには、昔ながらのforとlengthを使用するのが良策です。

VBAでも旧VBの基本文法の重要性は「これでもか!!」ってぐらい説いてきました。
同様にGASを使用するなら、ちゃんとJavaScript(ECMAScript)の基本文法を学習しましょう。

今年も新人研修の季節がやってきました。
今年は3案件程担当させていただきます。ご依頼ありがとうございます。

基本情報処理、ネットワーク、データベース、プログラミング、システム開発演習等、講義内容は色々ありまして、近年ではJava、.NET、PHP、Rubyによる「Webアプリ開発」によるシステム開発演習が主流になっています。
やっぱ時代はWeb、クラウドの全盛期ですな。

今年は3案件ともJavaとServletを担当することになり、教材を見直し、手直ししているところ。
Servletの教材「Tomcatのインストール(Windows版)」を改定したので、当校にも掲載します。

Servlet1/Tomcatのインストール(PDF)

この手の研修では、必ずと言っていいぐらい、ServletコンテナーにはTomcat、IDEにEclipseが使用されます。
Eclipseが便利なせいか、Tomcatのインストールはできても、デプロイができない人も多いのでは?
面倒かもしれないけど、まずは手動でデプロイしてみましょう。

新入社員もそうでない人も頑張れ!!

↑このページのトップヘ