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" />

とすれば良いようです。

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