2016年12月18日日曜日

Ubuntuから印刷する

以前から、Illustratorで作成していた年賀状をUbuntu上でも作成できるように、という野望はあったのですが、結局1年間手付かずでした。
これではいけないと思い、今年こそはチャレンジしてみます。

ということで、Illustratorの代替品やデータコンバート手順についての記事を探っていましたが、ふとした疑問が。

そういえば、そもそも、自宅のプリンターに、Ubuntuから印刷できるのか

これが担保されないと、そもそもの計画が台無しになってしまいます。Illustrator問題解決の前に、まずはこちらに作業を振り替えます。

自宅のプリンターはエプソンですので、UbuntuとEPSONをキーワードに検索してみます。

How to install Epson printer drivers on Ubuntu 16.04?

なんか出来そうです。言われたとおり、リンク先からドライバーをダウンロードしてみることにします。
検索してみると、自分のプリンターの型番はありませんでしたが、前後型番違いは掲載されています。
それを開いて、ダウンロードしてみることにします。

。。。でも、どれをダウンロードしてよいか分かりません。RPM? LSB? DEB?何ですか、それは。
久しぶりにUbuntuを触ることもあり、ギャップが甚だしい。

ここは恥を忍んで、日本語のページで分かりやすいものがないか再度探してみます。そもそも、EPSON自体が日本メーカーだし。

Linux(Ubuntu)でもプリンタドライバはあるよ!

おぉ、なんて親切な。ここを読んでみると、以下の記述が。

Ubuntuであれば、「.deb」で、Ubuntuソフトウェアセンターからインストールできます。

コマンドを叩かなくても、GUIで出来ちゃうらしいです。感激。
言われたとおり、順番にリンクを辿っていきます。

セイコーエプソン株式会社のLinuxドライバーダウンロードについて
ドライバーダウンロード

ありました!!自分のプリンターで、ドライバーがあることを発見。
何種類かあるので、「DEB」でCPUに合うものをダウンロードすると、ソフトウェアセンターが起動し、そのままINSTALLボタンでインストール完了。
あっけないくらい、簡単に出来ました。

後は、System Setting ->Printer ->Addで、私の場合はNetwork Printerで選択して、テスト印刷して動作することを確認。


まずは一歩前進です。

2016年11月28日月曜日

VB.NETで実行モジュールだと動かない

VB.NETでプログラムを作成し、無事、デバッグ環境で確認完了。
次は、いよいよ本番環境です。
で、念のため、実行モジュールを、自分の端末で動かしてみました。

DBに接続できません。

え。
さっきまで、デバッグでは動いていたのに。

頭がついてきません。
そんなときには、いつものグーグル先生です。
.NETで作成したEXEがODBCエラーで動かない。


いや、そこは分っています。やってます。

Part 2. .NET Framework 2.0 アプリケーションの 64 ビット対応


んー、なんかよく分らないけど、コンパイルの問題かもしれないのでコンパイルの設定を確認します。気になる箇所がないか、チェック。

見当たりません。
「詳細コンパイルオプション」があるので、そこも確認。すると、ターゲットCPUがx86です。これでも大丈夫なはずなのにーと思いつつ、PCのCPUと同じのx64に変更し、再度、実行モジュールをビルド。


動きました!!!!!


なんでこんなことで???というのが正直な感想で、まだ頭の整理がついていませんが、備忘がてら、メモしておきます。



2016年11月20日日曜日

iOSがバージョンアップしたらIP電話が動作するようになった件。

先日、予期せずして、iOSのバージョンが10に更新しました。というか、誘導されて更新してしまいました。

いろいろと不具合があったので、非常に迷惑なのですが、1点だけ良くなったことがありました。

IP電話が待ち受け画面に出るようになった 

そうなんです。これまでは、iPhoneでは、SIMカード以外の電話機能は、プッシュ通知しかされませんでした(所謂、普通のアプリと同じ)。なので、

  • 着信が来たら、画面に誰から来たか(画像登録していればその写真が)表示される
  • 着信が来たら、バイブレーションし続ける

なーんてことが、なかった訳です。なので、着信に気づかないことが結構ありました。
これが、OSのバージョンアップによって、SIMカード以外の電話アプリでも、ちゃんと機能するようになりました。

当たり前ですが、やっと電話として正常に機能し始めました。


IP電話にして各位から不評だったので、これは一歩前進です。

2016年11月16日水曜日

VB.NETでADODBの参照設定をする

久しぶりに、VB.NETで開発しようとしています。
まずは、空のソリューションを作成するところから。
続いて、データベース接続クラスを用意します。この前作ったものがあるので、それをコピーしてきます。ここで、いったんビルドして確認します。

エラー。

見てみると、ADODB.Connectionの型定義が見つからないようです。
前はどうやったんだか。ログに残していないので、グーグル先生に聞くところからです。

Microsoft Visual Basic での ADO の使用


はいはい。
ソリューションのプロパティから何かやった覚えがあるのですが、そうではなく、「プロジェクト」⇒「参照の追加」⇒COMのタブから、Microsoft ActiveX Data Objects x.x Libraryで一番最新のやつを選んどく、ということでしたね。

これで無事、ビルド完了。


こんなことも忘れてしまっている今日この頃です。
やっぱり、先日のiPhoneのこともあるし、記録に残しておくようにしよう。

2016年11月12日土曜日

iPhone5sのバッテリーを交換する

先日、iPhone5sのバッテリー交換に行ってきました。
或る日、何気なくiPhoneを触っていて、特に問題なかったのですが、ふと机の上に置いてみると、カバーのラインと本体のラインに微妙な差が。真ん中あたりが盛り上がっている感じです。
そのあたりの画面に触れ、ちょっと押してみると、画面に斜めの線が入るんですね、これが。

バッテリーか。

そう確信した私は、ちょうど次の日が土曜日だったので、Apple Storeに行きました。

「予約は取られていますか?予約がなければ、本日中の対応は厳しい見込みです。」

いきなり、そんな事を言われました。ふーん、Apple Storeって、予約を取るものなんですね。知りませんでした。

そうはいっても、修理しない訳にはいかないので、とりあえず受け付けてもらう列に並び、待つこと15分ほど。

「今日でしたら、13時以降になりますが。。。」

さっきと言っていることが違うじゃないか。まぁ、受け付けてもらえるなら有難いものです。登録をして、SMSで呼んでもらうことになりました。


時間を潰しているうちにSMSに連絡が入ったのでApple Storeに戻りました。
こちらも、15分ほど待つと呼ばれて技術員さんと漸く面談です。

「あ、これは本体の交換ですね。」


あっさりそう言われました。いくら位するんだろう。買った時の値段を考えてげんなりしていると、1万円弱で交換できるといわれました(バッテリー交換による本体交換はお安くなるらしいです)。それだと、出せる値段です。交換してもらうことにしました。

「バックアップは取られていますか?」


そんなもの、取っている訳ないでしょう。バッテリー交換のつもりで来たのに。
が、見てもらうと、朝の7時にiCloudにバックアップがあるようです。それを聞いて安心し、復元するにはWiFi環境が必要だからということで、家に戻ってから復元することにしました。旧いiPhoneは、初期化して技術員さんに手渡してサヨウナラ。


そんなこんなで、家に帰って、復元を始めます。メールアドレスとパスワードを入力し、10分ほど待つと、前の画面がきれいに戻ってきました。やるなぁ、アップル。


その後、アプリのダウンロードが始まったので、終わった頃に動作確認。Facebookとか、そのまま使えます。
が、一部のアプリについては、ユーザーID、パスワードの設定からやり直し。どうも変だと思い、ググってみると、ID/パスワードを含めてバックアップするには、iTunesからバックアップしないといけないようです。そんなことは知らないので、バックアップなんて取っていません。


ということで、バッテリー交換のつもりが、本体交換になり、iTunesでバックアップしていないことから、いろいろと設定しなおす羽目に。SIMフリーなので、APN構成もやり直し。こんなとき、ブログに書いていて良かったです。
(でも、今回は前回と違い、APN構成はApp Storeからのダウンロードで行けました。このあたり、MVNOに対する時代の変化を感じます)


ただ、引っかかったのは、LINE問題。データ通信用SIMを使っているので、LINEは以前の電話番号で登録していました。復元する際は、SMSにメッセージが来て再登録できるようなのですが、電話番号が変わっている場合、事前に変更処理しておく必要があったようです。


現在、LINEさんの回答待ち。復旧できるんだろうか。。。
不安です。

2016年9月24日土曜日

VB.NETからC#への移行

VB6を移行する際、VB.NETではなくC#に移行したい、という輩がいたため、念のため調査。

【VB】「VB.NET←→C#」コード変換ツール
vb.net から c# に書き換えたお話.
Convert VB.NET to C#

要するに、VB6からC#への移行ツールはないんだけれど、VB.NETをかますと、それなりにある程度の変換精度はあるようです。

ということで、VB6からは、マイグレーション・ウィザードを使ってVB.NETに一度変換する方向で対応して、そこから先は予算との兼ね合いで、、、という整理にいったんはしてみます。

Webサービスでサーブレット・マッピングの追加中にエラーが発生

Eclipseで、Webサービスを無事デプロイ。
テストのためにURLを叩くと、コンソールには反応があるのですが、エラーになります。


サーブレット・マッピングの追加中にエラーが発生しました。

いろいろ調べてみると、どうやらこれっぽいです。
WebSphereのデプロイ失敗時のログがわかりにくい。。。。


RESTのWebサービスなんですが、どこかなーと探していたら、web.xmlでした。
Eclipse上はエラーマークが出ていないのですが、ファイルを開くとエラー表示が。。。。


JNDIとかのResource Referenceが、Resource Reference Nameのところが何故がブランクに。。。。
どうやら、プロジェクト変換した際に消えてしまった模様です。


ちなみに、WASへのJNDIとかの設定方法はこれを参照。
Setting up a datasource with WebSphere Liberty Profile 8.5
RAD 8.5 Beta - Web Preview Server

2016年6月14日火曜日

PMP-PBAとIIBA CBAP/CCBAの違い

唐突ですが、BAの資格を取ろうと思い立ちました。

自分の仕事内容として、純粋なPMPだけではない部分を感じていたのですが、先日、PMP Certification更新のためにPMIのページを訪れました。
Certification自身は問題なく終わったのですが、PMPと並んで、いくつかの資格が列挙されています。
もともとはAgile関係に興味があったので、今までは目にしても気にしていなかったそれぞれの資格を一読してみました。

CAPM:PMPの入門者編
PgMP:Program Managementの認定
PMI-ACP:Agile実践者の認定
PMI-RMP:Risk Managementの認定
PMI-SP:スケジュールに特化したPMP
PfMP:Portfolio Managementの認定
PMP-PBA:Business Analysisの認定

PMI-PBAの存在は知りませんでしたので、これなら取れるのでは(自分に合っているのでは)と思った次第です。

他方、BAについては、IIBAがPMBOKならぬBABOKを発行しており、四角認定もしていたはずです。両者の違いは何でしょうか。また、どちらの資格を取ればよいのでしょうか。
The PMI-PBA vs. IIBA CBAP or CCBA
Business Analysis Certification: IIBA’s CBAP Vs PMI’s PBA
PBA Certification vs. CBAP/CCBA: Does the Industry Really Need Both?

1つ目の記事がよく纏まっているように思えたのですが、PMI-PBAは「PMがプロジェクトをコントロールする上でのBA」という役割であるのに対し、IIBAのCBAP/CCBAは、PMがアサインされる前から(より上流工程から)参画もする役割への道が拓けている、ということでしょうか。個人の好みとしてはCBAP/CCBAですが、会社がPMI協賛企業?なので、そのあたりは思案のしどころです。

とりあえず、両者の受験資格や前提をクリアしているか/クリアできるか、アセスしてみようと思います。

2016年5月29日日曜日

UbuntuでTVを観る (2)

前回は、UbuntuでFreetuxTVを視聴しようとして断念したところまででした。
結局、チャンピオンズリーグは、日本電視台で観ることが出来ました。

テレビチューナーがないパソコンで地デジ放送を無料で見る方法

「Readon TV」や「NIJI」もあるようですがLinuxでは観れないようです。

あと、本論ではありませんが、スマホやタブレットで、LiveStreamやUstream等で海外のテレビを観る方法もあるようでした。

世の中、いろいろと進歩していますね。







2016年5月28日土曜日

UbuntuでTVを観る (1)

久しぶりのUbuntuネタです。
チャンピオンズリーグ決勝戦をネットで観戦する、という必要に迫られ、調べてみました。
まずは普通に、Linux縛りなくググってみます。

チューナー不要!パソコンでテレビを視聴することができるフリーソフトまとめ
無料インターネットテレビ視聴ソフト
無料で東京・大阪のテレビなど25チャンネルが見られるという謎のソフト「NIJI」
【生中継】ネットでサッカー観戦 サイト&ツールまとめ 完全版

何気なく探してみましたが、海外のTVが観戦できたりするんですね。知らなかった。TV for Google Chromeというステキなモノもあるようですが、記事を読むと、放送後のモノを流しているだけのようです。リアルタイムのものを探しているので却下。サッカー観戦専門のサイト(方法)もあるようですが、明日観れないと困るので、TV放映しているものに限定します。そうなると、他は何かしら、インストールが必要なようです。

SportLemon.tvとか良さそうな感じでしたが、試しに覗いてみると、ユーザー登録が必要で、しかも何故かクレジットカードの登録まで求められたので途中で撤退しました。
この経験で、何か、違法なモノに手を出しているようなそんな恐怖感が出てきました。ここで素直に諦めても良いのですが、せっかく調べたのでもう少しだけ試してみることに。
でも、やはり怖いので、「壊れても良い環境」で試すことにします。ということでUbuntuの出番です。

Enjoy Internet TV on Your Linux PC With These Apps
List of Software for Watching Live TV Channels on Ubuntu

両方の記事にあるFreetuxTVをファーストチョイス。
1つ目のサイトのリンクからfreetuxtv-0.6.6.tar.gzをダウンロード。READMEを読んで、./configureを実行すると次のエラーが。

./configure: line 12482: intltool-update: command not found
checking for intltool >= 0.35.0...  found

configure: error: Your intltool is too old.  You need intltool 0.35.0 or later.

どうやら、intltoolをアップデートしないといけないようです。
こちらを調べようとしましたが、念のため、2つ目のサイトの記事を見返すと、Ubuntu Software Centerから入手できるとの文言を発見。まずはこちらの手法を試してみます。
検索すると確かに出てきましたので、インストールしてみると無事終了して起動出来ました。チャンネルリストを選ぶような画面が出てくるので英語と日本語のものを登録して画面を閉じます。

日本語のものは、チャンネルそのものが表示されません。仕方がないので、英語でBBCとかを選んでみるのですが、どのチャンネルを選んでみても、以下のエラーが出てしまいます。

An error occurred while playing channel 'bbc news' : rtmp://hd4.lsops.net/live/bbcnews_en_364

If the problem persist, you can report that the link is dead at http://database.freetuxtv.net/

本当に使えなくなっているのかもしれませんが、やはり、先程の手動インストール時のエラーが気になります。ここは地道にやってみることにします。
Ubuntu Software Centerで intltoolを検索すると出てきました。バージョンが0.50となっているのでインストールし、再度手動で実行してみます。

checking which LibVLC version to compile against...

**Error**: Cannot detect LibVLC version.

Do you have installed the libvlc development (libvlc-dev) package?
今度は上記のエラーです。確かにlibvlc-devはインストールされていないようですので、こちらも追加でインストールします。

checking for GTK... no

configure: error: Package requirements (gtk+-2.0 >= 2.22.0) were not met:

No package 'gtk+-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

次はこれです。確かに、GTK+2.0が必要ってどこかに書いてあったような。そうそう、READMEにありました。
で、GTKですが、これがUbuntu Software Centerでは一発で引っかかりません(というか、たくさん出てきてよく分かりません)。

What does GTK stand for?
GTK+

要はコアライブラリーのようです。となると、入っていると考えるのが自然です。

How to know my GTK version?

上記リンクに従ってコマンドを叩いてみると、以下の結果が得られました。

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  libgtk-3-0:i38 3.10.8-0ubun i386         GTK+ graphical user interface lib
ii  libgtk2.0-0:i3 2.24.23-0ubu i386         GTK+ graphical user interface lib

うーん。ちゃんと入っていて、しかもバージョンも満たしているようです。原因は別にあるようです。
エラーメッセージの後半に着目してみると、以下のような記事が見つかりました。

PKG_CONFIG_PATH environment variable

パスが通っていない、ということのようです。
では、何処にパスを通せばよいのでしょうか。

[SOLVED] Glade/GTK very beginners question

こちらの方法でlibgtk2.0-devをインストールすると、次に進みました。次はdbus-glib-1がありませんとのこと。次も同じ要領でlibdbus-glib-1-devをインストールします。次はlibnotify。何か、RPGでどんどんボスキャラを倒していっている気分です。ちなみに、これはliblibnotify-devではなく、libnotify-dev。sqlite3、libcurlと続けてやっと最後まで完了しました。READMEをちゃんと読んでおくべきでした。反省。

この後、make installで無事終了し、期待を込めて、起動。

。。。ですが、症状は変わらず。残念ですが、今回はここまでにします。成功はしませんでしたが、いろいろと勉強になりました。





2016年5月25日水曜日

プログラミングはどこまで減らせるか

先日、jQueryを試してみましたが、ググって調べながらやっていると、プログラマーの記事だけではなく、Webデザイナーの方の記事なんかもよくヒットしていました。そんな中、当然ながら疑問が沸いてくる訳です。

  • プログラマーとWebデザイナーの仕事の境界って何処?
  • WebデザイナーってJavaScriptも書くの?
  • そもそも、プログラムって、(ある程度)自動化できないの?
最後の点は、以前からソフトウェア産業自体に対して抱いている疑問です。なんか、IT業界って、IT土方と揶揄されるように、力技で人月工数注ぎ込んで、という発想から抜け切れていないという、忸怩たる想いがあります。
自身は多少プログラミングでき、そのおかげで仕事が捗る面を感じています。他方、SEの仕事は一番システム化されていない仕事と、新入社員のころから感じてもいるわけです。プログラムできない人がマネージャーとして通用するのも、ある面では理解できるのですが、他方、だからSEの仕事の仕方が変わらないとも思います。

そんな中、Webデザイナーという、本来、IT屋さんでない人までもプログラミングに手を染める状況って、良いのか悪いのか。一般の方のITリテラシーが上がるという意味では歓迎すべきことなのでしょうが、ソフトウェア産業のBCPという観点で見ると、素人がプログラミングすると碌なことがないという危惧も経験上あります(VBの素人資産が、誰も保守する人がいない中、現在も存在するという状況等)。

長くなりましたが、いろんな記事を読む限り、Webデザイナーの方も多少はJavaScriptを書くようです。まあ、だからフレームワークに流行り廃りがあるのかもしれませんね。個人的には、CSSはデザイナーで、それ以外はプログラマーと勝手に思っていたのですが、HTMLが両者の境目というか、協業作業のようです。

とりあえず、以下、検索している中で目についかリンクをいくつかメモがてら貼っておきます。
時間があれば、それぞれ試してみて感想を書くようにします。
(プログラムって、今でもJavaじゃない過去の資産が多いんですけどね)

コーディング不要のHTML5ゲームエンジン「WiMi5」は、課金実装も可能で全部無料!
コーディング不要でWebサイトのテンプレートを作成する為のオープンソースソフトウェア・「GrapesJS」
アプリ製作者は注意!コーディング不要で気軽に作れる時代が到来
コーディング不要! 15分でiOSアプリが開発できる衝撃のサービス「AppMakr」
コーディング不要で美しいWEBサイトを作れる「Wix.com」を使ってみた【スキル・予算不足に】

Webアプリの開発を爆速化する、エクセル感覚のデータベース「Airtable」はJSONの取得も可能!
Magic xpi:コーディング不要のEAIツール、ビジネスプロセスの流れを自動化

コーディングを必要としないデータ変換とビジネス・プロセス統合
Ensemble のビジネスプロセス・マネジメント(BPM)機能
なぜ Java 開発者は BPM を嫌うのか?


2016年5月9日月曜日

jQuery.ajax()で200 OKなのにエラーとなる







今まで利用していたWEBページを、新たなサーバーに移すことになりました。
で、そのまま移せば動くだろうと高を括っていましたが、ログインの時にエラーが出て動きません。


いろいろと調べたところ、エラー内容としては、Cross Domainでエラーになっているようでした。
それまでのものはDojoで、CORSに対応しておらず、今更Dojo,,,というのもあるので、勉強がてらjQueryに移植してみました。


なんとかコーディングできるようになったのですが、RESTを送ると、HTTPのレスポンスは200でOKなのですが、エラーハンドラーが起動されます。
調べてみたところ、以下のようでした。
jquery ajax has a problem getting return value from ashx handler
jquery ajax call return 200, valid json, fires error event


うーん、、、という感じで、jQueryのXHRにusernameとpasswordプロパティを設定したところ、
errorThrown.messageには以下の反応が。


Access to restricted URI denied.


Error: “Access to restricted URI denied”
"Access to restricted URI denied"
Access to restricted URI denied" code: "1012




ちょっとお手上げ感だったのですが、ふと思いついて、デバッグのブラウザをFirefoxからChromeに、更にIEへと変更してみたところ、IEでは成功!!!


本番はIE環境ですが、Dojoバージョンがだめだったのですっかり無視していました。
Cross Domainのマルチブラウザ対応はまだまだこれからですが、まずは少しだけ勉強して、ほんの少しだけ前に進みました。









2016年5月4日水曜日

VB6からVB.NETに移行する(3)

これまで、前回までに書いた方針で進めてきましたが、いくつか実際上は問題があったので、備忘録がてら書いておきます。

1.VB6のOCXが継承される
Visual Studioの自動アップグレードを使いました。標準コントロールとかが、VB.NET用に更新されると思っていましたが、一部?はそうでないようです。
例えば、MSComctl2.dllは、AxInterop.MSCOMctl2.dllという具合に、VB.NETで使用可能なように既存のOCXがラッピングされて提供されます。
Chapter 14: Interop Between Visual Basic 6.0 and Visual Basic .NET
Introduction to COM Interop (Visual Basic)
Converting VB6 application Vb.Net using Interop

ここは盲点でした。
ただ、実際上は継続して使用できるので、順次コントロールを置き換えていけばよい話なので、一から再構築するよりかは遥かに単純作業です。参照を外せば、どこで利用しているかもわかりますし。

2.RDOが使えない
もう1つの盲点はデータベースアクセス関係、特にRDOでした。
こちらには、こんな問題が。
[VB2005]Windows7環境でのRDO接続について
[INFO] You need a runtime license for RDO and for ActiveX controls when running on a computer on which VB6 isn’t installed
VB6.0 のライセンスの問題を修正する VB6CLI.EXE(VB6.0)

要するに、RDO接続は、VSインストールされた端末以外での使用はライセンスの問題があり、かつ、実際に動かない、ということです。これらは全てADO等に置換する必要があります。
これはDBGrid等、従来のOCXでDBアクセスしているものも同様でした。

これって、開発環境では気づかないので、結構厄介で、実際、本番のクライアント環境にて発覚しました。
事前の調査不足を反省しつつ、力仕事で置き換えました。

3.APIの読込み
VB以外の、DLL等で提供されているAPIを読み込む際、VB6ではString型やInteger型で十分でしたが、VB.NETではSystem.Text.StringBuilderやSystem.UIntPtrで定義し直さないとうまく連携しませんでした。つまり、既存のVB6コードはString型なので、どこかで型変換が必要。

Dim oldstr As String

 newstr = New System.Text.StringBuilder(oldstr)


みたいな。

この辺りが今回のLessons Learnedでしょうか。

2016年5月2日月曜日

VB.NETモジュールを管理者権限で動かす

なんとか、VB6からVB.NETへのコンバージョンが何とか完了しました。
いろいろ修正しながらコンパイルと動作を確認。

一方、本番環境で実行したところ、問題が発生。そうです、今までは、開発環境の入った管理者権限での確認でしたが、本番環境は、一般端末でユーザー権限なんですね。
この環境で動作させようとしたところ、『管理者権限で実行』しないといけないことが判明。

昔だと、runasとかで強引に権限付与していたのですが、パスワードのリダイレクトも使えなくなり、簡単にはいかないようです(/savecredという手もありますが、全端末に実行するのは今から遅い状況です)。
バッチファイルでAdministrator権限を付与する
別ユーザの権限でプログラムを実行する
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい


検索してみると、いくつかの方法があるようです。
管理者としてほかのアプリケーションを実行するには?
VBから管理者としてプロセスを起動する
UACが有効の時、アプリケーションを管理者に昇格させて起動する

最後のmanifestファイルを利用する、というのは、今まで耳にしたことはありますが、まだ実際にはやったことがないものでした。

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

とすれば良いようです。

とりあえず、これでチャレンジしてみることにします。

2016年4月13日水曜日

Excelで行から列に変換する

よくありますよね、Excelで行で書いてしまったのを、今度は列で書きたい場合。
私は対応方法を知らずに避けていました。
先日、お客様から依頼されて仕方なく、それに対応したマクロを書いたら同僚から以下を教えて頂きました。

表の編集!行と列の入れ替え
エクセルの基本技 17回行と列を入れ替える


便利な世の中になりました。昔はなかったような。。。
関数もあるようです。
TRANSPOSE関数で行列入替え

2016年3月19日土曜日

USBメモリーがフォーマットできない

仕事で使っていたUSBメモリーが使えなくなりました。
PCに差すと、「フォーマットしますか?」と聞いてくるので「はい」を押すのですが「Windowsはフォーマットを完了できませんでした」のエラーが出て状況改善せず。

廃棄して新しいのを買うしかないかなーと思ったのですが、念のため、Google先生に問い合わせてみることに。

フォーマットできない
 上記のリンクに、丁寧に解説がなされています。メッセージのとおり「Windows OSはフォーマットを完了できませんでした」とあるだけで、他のフォーマッターならフォーマットし直せる可能性があるようです。

試しに、まずはIO-DATAハードディスクフォーマッターを入手。記事に出ていますし、インストールも不要。何よりも対象がIOデータのUSBメモリーだったので。

。。。ですが、結果は改善されず。
諦めかけたのですが、念のため、次の記事を拝見。

Windows からフォーマットができなくなった USB メモリを強制的にフォーマットする

こちらは、バッファローのフォーマッターのようです。神にもすがる思いでダウンロード。こちらはインストール必要だったので、インストールして実行。

。。。やはり、改善されず。もう駄目か、とも思いましたが、画面上、フォーマットオプション指定が出来ることに気が付きました。「不良クラスタのチェック」「物理フォーマットもする(HDD以外)」があるので、両方にチェックをして実行。

なお、不良USBを差すと、フォーマッター画面を操作しようとしても「フォーマットしますか?」の画面が1秒おきくらいにポップアップ表示されてろくに操作できません。
  • まず、USBメモリーを指さない状態で画面を起動
  • 続いてUSBメモリーを差す
  • ポップアップが出ても画面操作できるよう、画面をスクリーン中央からずらす
  • 「情報の更新(R)」でUSBメモリーのドライブを認識させる
  • 矢印キー等を用いて、キーボード操作によりフォーマット対象ドライブを変更
  • フォーマットオプションにチェック
  • 「フォーマット」開始
という手順で実行。

。。。こちらも改善されず。
仕方ないので、最終手段で、最初のリンクにある、Linuxでの修復にトライ。

。。。こちらでも改善されず。

という訳で、今回は本当に物理的に壊れていたようです。

2016年3月4日金曜日

文字コードを変換する

Webサービスから、Unicodeでエラーが返ってきたので1つずつ文字検索&変換。

Unicode対応 文字コード表


。。。していましたが、もっと便利なサイトがありました。
エンコード / デコード


感謝感謝。

2016年3月3日木曜日

もらったVB.NETソースを開くとエラーになる


ライブラリが読めなかったのでパス設定。
ライブラリの使用方法、VisualStudioの設定方法

参照がエラーになりました。
プロパティの参照を設定しようとすると、

ターゲット フレームワーク '.NETFramework,Version=v4.0' の mscorlib を解決できませんでした


とのエラー。
同様のケースは過去多々あるようです。
VB2008→VB2010でエラーが出てまいります


以下を参照して、再度参照設定し直すとOK。
ターゲット フレームワーク '.NETFramework,Version=v4.5' の msc


初歩的な内容ですが、これも備忘録です。

2016年3月2日水曜日

Rationalツールで「サーバーに追加するための有効な親モジュールが見つかりませんでした」

昔からRationalは好きです。はい。

というわけで、EclipseということでRAD(Rational Application Developer)を試用してみました。

。。。が、Eclipse(MARS)では正常にデバッグ用サーバーにデプロイできるプロジェクトが、何故かRADでは

「サーバーに追加するための有効な親モジュールが見つかりませんでした」


というエラーが出てサーバーに追加できません。
要するに、Webアプリがない、と思われている状況です。

ググってみたのですが、全然マッチしません。
諦めかけていたのですが、そういえば英語の記事だったらあるかも。。。ということで、Google翻訳で直訳して出てきた「Valid parent module」というキーワードを元に検索。

Could not find a valid parent module to add to the server


はい、元の英語では上記のエラーのようです。
Rationalツール関連で出る不親切なエラーのよう。
リンク先の記事の対応方法では直りませんでしたが、英語でまた検索することもあるかな、という意味で備忘録です。

EclipseでJSONでエラーが出る

新しいEclipse環境(MARS)をセットアップ。
すると、今までの環境(June)で問題なかった箇所でエラーが出るように。

しかもJSONデータで。意味がわかりません。

Errors running builder 'JavaScript Validator' on project ....

ググってみると、以下がドンピシャでした。
Javascript Validator problem in Eclipse

ValidationのJSON Syntaxで、「Use strict validation for JSON syntax」を外すと問題なくエラー0。

2016年3月1日火曜日

Eclipseで文字列リテラルでエラーになる

新規にEclipse環境を構築して、既存プロジェクトをインポートしたらエラーの嵐。

これがビンゴでした。
文字列リテラルがダブル・クォートによって正しく閉じられていません

設定までは行っていたのですが、エディターとか触っても変化せず。

変更後、クリーンで無事エラー0になりました。

2016年2月18日木曜日

Excel VBAでエラー1004が出る

Excel VBAで、あるフォルダー下のExcelファイル群について、順番にファイルを開いて値を取得する、という処理を書いていました。

そんな中、以下の箇所で、エラー1004が発生。


Workbooks.Open [ファイル名]

何度繰り返しても同じです。
調べてみると、マイクロソフトのサポートに情報がありました。
Excel で、プログラムを介してワークシートをコピーすると「実行時エラー 1004 」が発生する

定期的に保存しなさい、とのことです。
なので、上記処理の前に以下を追加。

Application.ActiveWorkbook.Save

ですが、改善されません。
VBAでのファイル読込エラーの対応方法

On Errorでエラー処理する、と書いていますが、それはとっくにやっています。どうやら、通常にはエラーハンドリングされないケースのようです。

同じように、1000以上のファイルを開く、という処理は別のプログラムでやったことがあり、そのときには何の問題もなく動作しましたので、理由が思い当たりません。
何度も試して諦めかけていましたが、上記リンク先にある以下の一文を念のため追加して実行。

Application.ScreenUpdating = False


。。。上手く行きました!!!

うーん、よく分かりませんが、Excel VBA(特にExcel固有のWorkbookとか)はいろいろと誤動作がまだあるようで、おまじないが必要な状況のようです。

2016年2月11日木曜日

SIMフリーiPhonse5sをiOS9.2.1にアップグレードした結果

iOS9へのアップグレードが可能になってから半年近く経とうとしていますが、今までアップデートを放置してきました。動かなくなったら嫌なのと、いろいろと忙しかったからでしょうか。

という訳で、週の半ばの休日ということもあり、アップデートを敢行。いつの間にか、9.2.1まで進んでいるようです(ということで、アップデートで気づいた点は、9.0、9.1、9.2のいずれから含まれるようになったかは定かではありません)。

いつも通り、OSアップデートには自宅の無線LAN環境で15分程で完了。接続についても、WiFi、LTE共に問題なし。
以下、いくつか気づいた点です。

1. Siriの画面がナイトライダーみたいになっている
Siriを起動すると、待ち受け画面(というか音声認識状態)が横棒になっていました。話すと、音声認識状況が周波数表示みたいな感じで表示されます。なんか、ナイトライダーみたい。

2. ホームボタンをダブルクリックするとメニュー表示が左⇒右ではなく、右⇒左になっている
この変更は結構戸惑いました。ホームボタンをダブルクリックすると起動中のアプリが選択できた(できる)のですが、
・従来は、ホーム画面が一番左だったのが、ホーム画面が一番右になっている
・起動中アプリが並列に表示されたのが、 カードが重なるみたいに順番に表示されている

という感じに変わっています。何なんでしょうね、この変更は。

3. ホーム画面から更に左にスワイプすると、新たな画面が表示される
これも結構煩雑です。間違って操作して表示してしまうのですが、その度にiTunesへのサインアップを求められます。いちいちこれをキャンセルするのが面倒。最初の5回くらいはこの状態が続きました。今は、このサインアップは表示されなくなっています。
よく使うアプリとか、ニュースとかが表示されるようですが、何の画面かはよく分かりません。

4.「Find Friends」と「Find iPhone」のアプリ追加
今回は2つのアプリが追加されていました。
「Find Friends」は、登録すると、同じくアプリに登録した友達の居場所が分かる、というものらしい。自分の居場所を常に知られるのは好きではないので、当然登録しませんでした。
「Find iPhone」は失くしたときの検索用?これも良くわからないので保留。


お約束ですが、言語設定変更時のスピードをチェック。やはり、遅いままのようです。以前よりも多く時間がかかるようになったのは気のせいかな。


とりあえず、気になったところは以上です。

2016年1月26日火曜日

Excelで非表示のシートを表示する

とある、他人が作ったマクロ入りのExcelを修正する作業が舞い込んで来ました。

1つだけシートがあり、そのシート上のボタンを押すと、必要な処理をしてくれる、そんなファイルです。

で、マクロの編集メニューからVBA編集画面に飛んで見てみました。ボタンを押した際の実行関数はモジュールにまとまっていたので、こちらを拝見。

で、ソースコードを読んでいくと、「いろんなシート」をリフレッシュして、最新データを取りこんでいるようです。

いろんなシート???

先に書いたように、ファイルには1シートしかありません。他のシートはどうやって隠されているのか。何かパスワードロックがかかっているのではないか。。。

と疑いましたが、以下の手順で簡単にハッキング成功。
見せたくないシートを非表示にしたい

あまりに簡単な方法でしたが、すっかり騙されたので、備忘のため描いておきます。

2016年1月22日金曜日

NFCの規格

AndroidでNFC通信によりデバイスからデータを読取ることをしていました。
で、結構、

機種同士により、相性がある
という話をよく耳にしました。
1つは、読取り位置というか、機種によりスウィートポイントが異なるようです。これは何となく理解できます。もう1つは、機器により通信できない、というもの。そんなものかな、と思いつつ、気にはしていなかったのですが、自分のやっているケースで見事に発生。
FelicaだとOKだけど、RFIDだと駄目、みたいな。

そんなこんなで、規格自体を調べてみることに。

【国際標準規格】NFCの規格と採用例
NFCについてのまとめ
NFCの定義

要するに、NFCと一口にいっても、IP-1(ISO/IEC 18092)とIP-2(ISO/IEC 21481)という種類があるようです。Felicaとは、デバイス的にはどちらでも通信できるが、RFIDとは、IP-2でないとデバイスレベルですら通信できない。

あと、Felicaのみ対応のNFC、なんてのもあるようで、『NFC』という言葉だけでは、どのISO規格に対応しているのか、分からない状況です。
近距離無線通信
NFC phones: The definitive list

いくつかの製品情報で検索してみたのですが、メーカーのページにも、『NFC対応』とだけ記載しているだけで、IP-1(ISO/IEC 18092)なのかIP-2(ISO/IEC 21481)なのか、はたまたFelica(ISO/IEC 18092)だけなのか、記載はないようでした。


まあ、日本のスマートフォンは、Felica対応(のみ)から始まっているようですが、徐々に、少なくともIP-1(ISO/IEC 18092)、続いてIP-2(ISO/IEC 21481)対応の方向に向かっているような気がします。あくまでも希望的観測ですが。

ちなみに、iPhone6/6sの「NFC」はMIFARE(ISO/IEC 14443)である模様。

2016年1月2日土曜日

Excel VBAで行の挿入に失敗する

年が明けました。
とはいっても、残念ながら、昨年し残した仕事がなくなった訳ではありません。
という訳で、正月早々から、プログラミングをしています。

今回はExcel VBA。Excelの資料を自動作成する、というのに取り組んでいます。
これまで、Excel VBAは結構使ってきましたが、どちらかというとデータ処理結果を残すのにExcelという表形式が適していただけで、主にVisual Basic同様の感覚で使っていました。相違点といえば、WorksheetとCellsを指定するくらい。
ただ、今回は、Excelファイルを雛形からコピーして、セル書式を定義し、データ量に応じて表の行数を制御する、といった、Excel寄りの内容で、正直、あまり経験はありません。

ということで、いつもの如く、先達たちの知見をGoogle先生から学びます。

ファイルコピーとかは難なく正常に動作。が、行の追加で

Application.ActiveWorkbook.Sheets("Sheet1")..Rows.Insert

とすると、1004エラーが発生してしまいました。


エラーメッセージを読んでも訳が分からないため、以下のそれぞれの記事を参照。
エクセルのVBAでの行の挿入について
エクセル VBA で「実行時エラー '1004': Range クラスの Select メソッドが失敗しました。」
Office TANAKA - Excel VBAの実行時エラー
Error message: To prevent possible loss of data, Microsoft Excel cannot shift nonblank cells off the worksheetRuntime error 1004 when inserting rows via VBA


上記を読んでいて分かったのは、1004エラーにはいろいろな種類があるということ、行の追加を行う際にはいろいろと内部的な処理があるということでしょうか。

・行挿入前にファイルを保存する
・xlDownを指定する

等、試みたのですが、いずれも成功せず。

正月早々、これは縁起が悪い、と、ちょっと諦め気味だったのですが、初歩の初歩に戻って1つの実験をしました。それは

『マクロを記録してみて、どんなコードが生成されるか確認する』

です。 これを試してみたところ、こんな感じでコードが生成されることを確認。

    Rows("8:8").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

で、結局、これに倣って修正するとうまく動きました。
一応、今年の初仕事(初内職)は無事完了。