今回はWebの駅を使っていてちょっと不便だなと思った事の解消方法みたいなものです。

 

Webの駅で日記(記事)を書いて、その中に画像を挿入したりする事があると思います。

その場合、画像サイズが大きくてそのまま表示すると枠からはみ出して、

画面レイアウトが崩れてちょっとなんだかなぁ・・・と思う事があります。

 

ネットワークドライブでNASに簡単アクセスで書いた記事がまさにそのようになってますw

 

さて、これを解消するためには画像の縮尺を調整して縮小表示するようにすれば

画面崩れはなくなりますが、今度は画像が小さくて見難くなってしまいますね。

その場合、画像をクリックすると原寸画像を表示するようにリンクを挿入する方法がありますが

Webの駅で普通に画像素材へのリンクを指定したらブラウザで画像が表示されずに

画像ファイルそのものをダウンロードしてしまおうとしてしまいます。

 

IEだとこんな感じのメッセージが出ますね↓動きも同じようになってるので画像をクリックしてみてください・・・

iv0002


パケットキャプチャのツールでHTTP通信の内容を見てみたところ、

HTTPヘッダに

content-disposition: attachment; filename=xxxxx.jpg

という部分を見つけました。

おそらくこれが原因なんじゃないかな~と思います。

Webに関してはあんまり詳しくないのでなんとも言えませんけどね・・・あくまで何となくそう思っただけです。

ちなみにMIMEはimage/jpegと言った感じできちんとイメージ用のMIMEタイプになっていました。

 

とりあえず、MIMEが画像としては返しているようなのでこれをクリックしたらきちんと原寸画像が開くように

ちょっとした工夫をしてみました。

試しに↓の画像をクリックしてみてください。

iv0002

 

ブラウザで拡大画像が開けましたか?

これがやりたかったのです。

 

どうしたかというと、画像表示用の簡単なjavascriptを書いただけです。

 

やり方ですが天草Webの駅で日記を書く時などに、右上に▼その他の操作なるものがあります。

そこに「HTMLコード編集」というものがあると思いますが、そこを開いてみてください。

 

そしたらごちゃごちゃとHTMLのタグが書いてあると思います(記事が空白なら何も書いてない)

そのHTMLの先頭に以下のタグ(緑の部分)を貼り付けてください。

 

<script src="https://amakusa-web.jp/Sozai/Mg/FileAccess.aspx?aplUseNo=12267&amp;angoFolderKey=FQ6vIUqE2H8UAXEKXn%2f5KQ%3d%3d&amp;angoFileKey=MvcjmBnnEhgsmm9fvphn4w%3d%3d" type="text/javascript"></script>

 

これは私が画像表示だけをするHTMLを吐くためのjavascriptを置いているURLです。

単純な関数ひとつなので自分で作って自分で置いても構いません。

 

そして「リンクの作成」でURLは「http://」と初期値があると思いますが、それを消して

以下のように書いてください。

javascript:imageView('Webの駅の素材画像のURL')

 

どうですか?

これで画像をクリックすると原寸画像がブラウザで表示されるようになったと思います。

 

このように不便だと感じた場合も工夫次第で色々と解消できたりします。

みなさんも是非色々と試してみてみてください。


追記2:

ブラウザの別ウィンドウで開くように変更しました。

コメント欄に追記でスマホだとうまく開けると書きましたが、

Android端末だとやはりダウンロードが始まるようです。

うまく開けるのはiOSデバイスの場合のようです。

よくわかりませんが、HTTPヘッダの

content-disposition: attachment; filename=なんとか

の部分がiOSでは意味をなさないのかもしれません。。。

さて、よく使っているWindowsのフォルダの階層ですがどこまで深く作っていますか?

 

実はこのフォルダ階層は容量が空いてる限りずっと掘り下げられる、

というわけではないようです。

 

Windowsではファイル名の最大長は255文字までとなっているようですが

(実際そんな長いファイル名を作って試した事がないからわからないけど)

フォルダーはどこまで掘り下げられるんでしょう?

ここでは現在Windowsで標準的に使われているNTFSというファイルシステムを前提で

話を進めてみたいと思います。

 

フォルダの中にフォルダを作ると

深くなればなるほど○○の中の○○の・・・と、ファイルの場所を指すための情報が増えます。

エクスプローラー等で見るとわかりやすいですが、上の方に今どこのフォルダを開いているか?

という情報が表示されています。↓を見てください。

path001
この例でいくと、Cドライブの中のProgram Filesの中のJavaというフォルダを開いている事がわかります。

 

さらに、そこのバーの中のJavaと書いてある右の空白部分を押してみましょう。

以下のような文字列が表示されます。

path002
C:\Program Files\Javaと表示が変わりました。

カンのいい人は気付いたと思いますが

「:」を「ドライブの」、「\」を「の中の」に置き換えてみます。

C「ドライブ」「の中の」Program Files「の中の」Java

もうそのまんまですね。

 

こういったフォルダやファイルの場所を指したものを「パス」と言ったりします。

「Pass」ではなく「Path」です。

 

さて、このパスですがフォルダを深く掘り下げると当然長くなって行きます。

そして、このパスの長さには限界があります。

 

どのくらいの長さのパスまで有効なのでしょうか?

エクスプローラ等で扱える最大の長さは多分259文字のようです。

つまり、ファイル名を255文字で作ったらドライブの直下にしか置けなくなります。

C:\長いファイル名のファイル.....(255文字)

だと、「C:\」の3文字+ファイル名の255文字で258文字になります。

これより深くフォルダを作ろうとしてもフォルダ名には最低でも1文字は必要です。

これを作ると259文字になりますが、このフォルダの中のという部分も必要になるため

「\」も追加しないといけません。

すると、259文字をオーバーしてしまいます。

なので直下にしか置けなくなってしまいます。

 

Visual C++という開発環境ではMAX_PATHという定数が定義されていて

この値は260となっています。

(259ではない理由は、C言語では文字列の終端にヌル文字という特殊な値を設定する必要があるため)

このあたりはプログラミングの話題を書く場合にでも書きましょうw

 

なぜMAX_PATHが260なのかはググれば色々と出てきますが、

まずドライブを表す2文字(「C:」など)とルートを表す1文字(\)、

そして拡張子とファイル名を区切るドット「.」の1文字

そしてファイル名の最大長である255文字、

最後にヌル終端の1文字、これらを合計すると260文字になるわけです。

 

エクスプローラなどではMAX_PATHの制限を受けてしまうようですが

Unicode版のWindowsAPIは最大32000文字までのパスが扱えます。

(この辺もプログラミングの話題を書く事があれば書きますw)

 

ただし、多くのアプリケーションではMAX_PATHを使っている場合が多く(わたしもですがw)

あまりにも長いパスだとプログラムがうまく動作しないといった事もありえます。

 

substなんかのコマンドを使うと別のドライブ文字に深い階層のフォルダを割り当てて

パスを短くしてアクセスは可能ですけどねw

まぁそれは対症療法みたいなものなので、259文字を超えるような

長いパスを扱う環境を作らない方が変なトラブルに悩まされずに済むかもしれませんw

いきなりですが、タイトルの意味がよくわかりませんよね?

 

PC上にあるファイルですが、これを削除したらどうなるでしょうか?

ゴミ箱にファイルが移動すると思います。

また、Shiftを押したまま削除するとゴミ箱に行かずにダイレクトに消えます。

 

さて、タイトルの意味ですが、同じデータに複数のファイル名・・・

どういうことでしょう?

 

次のように2つのテキストファイルがあります。

hl001
まずこのうち「ファイル1」を開いてみます。

このように書いてあります。

hl002
まぁ、まんまの内容ですね。

 

では、次に「ファイル2」を開いてみます。

hl003
おっと、これも中身は「ファイル1」と同じようになっています。

 

これは「ファイル1」じゃないじゃん!ということで、

このように内容を変更して保存してやりました。

hl004
これで間違いないですね。

 

じゃあ今度はまた「ファイル1」を開いて確認してみましょう。

hl005
!?

あれ???何でこっちも同じになっているの!????

 

何を隠そう、この2つのファイルは同じファイルなのです。

 

同じファイルとは言ってもファイルは別の名前できちんと2つあるのに何で!?

実はハードリンクという機能を使っています。

 

カンのいい人は「あー、ショートカットみたいだな」と思った人もいるかもしれません。

確かにショートカットの拡張子はlnkですし、リンクとも言えますがハードリンクは

どちらもホンモノのファイル名として扱われる点が違います。

 

まずファイルについてですが、ファイルにはファイル名があり、

それが各フォルダに格納されていますね?

目的のファイルを開く場合はそのフォルダを開いてその中にある該当するファイルを

ファイル名で探して開く事ができます。

 

ここで話を削除の場合に戻します。

ファイルを削除した場合、どうなるでしょうか?

削除したファイル名のファイルがそのフォルダから消えてなくなりますね。(当然ですがw)

これはどうなったかというと、そのファイル名が指し示すデータ場所へのリンクを切ります。

つまり上の例でいくと実際に「ファイル1の中身!」と書かれたデータの場所への情報を

削除するため、そのファイルは「消えた」という事になります。

そして、どこからもファイル名でリンクされていないデータの場所は未使用(空き)領域となり、

新しくデータを書き込む場合なんかに空き領域として使われて新しいデータで上書きされます。

 

通常、データの実体は1つ以上のファイル名でリンクされています。

ファイルの削除は、このデータの実体へのリンクを全て切り離します。

 

では、↑で紹介したファイルの場合はどうでしょうか?

データの実体へのリンクは「ファイル1.txt」と「ファイル2.txt」という2つのファイル名(リンク)があります。

この片方を削除したらどうなるでしょう?

実際にはまだ消えません。

何故なら、もう1つのファイル名(リンク)が残っているからです。

2つとも消して、はじめて「削除」されるわけです。

 

普段使う場合、ファイル名はデータの実体に対して1つだけの場合が多いでしょう。

「ファイルを消す」という場合、そのファイル名のファイルを消すだけでいいですからね。

これはリンクがそのファイル名の1つだけなのでそれを消すことによって空き容量が増えます。

 

だから何?って感じですが、

これを使うと誤ってファイルを消してしまうリスクが少しだけ減ると思いませんか?

 

例えば、Dドライブにgazouというフォルダがあり、そこに写真等のファイルが入っていたとします。

その中のファイルのハードリンクをDドライブの別のフォルダ(例:hardgazou)に作っておいた場合、

誤ってgazouのフォルダからファイルを消してしまってもまだ別フォルダから

そのファイルへのリンクが残っているため消える事はありません。

ただし、ファイルが指し示すデータの実体は同じなのでその実体のデータが壊れたら

どちらのリンクからも壊れたデータしか取り出せなくなります。

なのでバックアップにはなりません

 

さて、このハードリンクですが、実はWindows2000ぐらいから作る事はできました。

ただし、ファイルシステムはNTFSで、同じドライブ(パーティション)内にしかハードリンクは作れない

等のいくつかの制約があります。

 

で、作り方なんですが、コマンドプロンプトを開きます(Windows7とかの場合は「管理者として実行」してください)

開いたら次のコマンドで作成します。

fsutil hardlink create 新しいファイル名 既存のファイル名

とりあえず、コマンドプロンプトでfsutil hardlink createと入力して、ッターン!とEnterを押してみてくださいw

使い方が出てきます。

 

ここではWindowsという前提で話を進めましたが、Linuxで使われているext3、ext4なんかのファイルシステムでも

ハードリンクは作れます。

 

まぁ、誤消去を防止するんならファイルをバックアップ取っとけばいいんで

あんまり需要ないかな?

でも、覚えておくと何かと便利な場合があるかもしれませんw

 

似た機能にディレクトリジャンクションとかシンボリックリンクなんかもあります。

シンボリックリンクはハードリンクよりショートカットに近い感じですかね。

 

まぁ、気になった場合はググってみると良いと思いますよw

さて、ネット通販とかした事ある人も多いかと思いますが

その際に「この通信はSSL通信により暗号化されますので安心」とかいう表記を見る事があると思います。

SSL通信ではURLがhttpではなくhttpsとなっています。

 

暗号化して通信すると誰かが通信内容を傍受した場合でも

どんなデータをやりとりしているのか解析するのが困難になります。

特にクレジットカードなんかの番号がバレたら大変ですので

カード番号なんかのやり取り時には暗号化通信だと安心感があります。

 

以前書いた秘密の暗号の記事も参考までに・・・

 

さて、このSSL通信ですが通信内容を暗号化します・・・が、それだけではありません。

通信先の相手が信頼できる相手かどうか?という事も同時にチェックしています。

 

例えばブラウザでこんな感じの内容が表示された事はないでしょうか?

ssl001
これはInternetExplorerですが、他のブラウザでも似たような内容で表示されます。

 

これってどういう意味なんでしょう?

簡単に言ってしまうと

「あーたが接続しようとしとるサイトは何処ん誰が運営しとるとか知らんけんね」

 というような意味です。

通常、http通信では接続先のサイトが正規であるか云々はチェックしません。

しかし、https(SSL通信)では接続先のサイトが正規のサイトであるかをチェックします。

そのため、正規のサイトではないと判断されたらこのようなメッセージが出ます。

(正規のサイトではなくても通信の内容は暗号化されます)

 

無視してサイトにアクセスしたら、いかにも危険と言わんばかりに

アドレスバーが赤くなったりします(ブラウザによる)

ssl002

では、正規のサイトであるかどうかというのはどう判断されているのでしょうか?

実は、そのサイトが正規のサイトであるという証明書を認証局(CA)という機関から

発行してもらう必要があります。(認証局で有名所はベリサインとか)

 

そして、ブラウザには有名どころの認証局のルート証明書というものが登録されていて、

アクセスしようとしているサイトの証明書の正当性をチェックするためのベースとなっています。

証明書には公開鍵暗号やハッシュ技術などが使われていますが、書くと長くなるので

詳細はまた別の機k(ry

 

また、証明書は有効期限がありますので、有効期限が近づいたら認証局に奉納しないと

証明書が期限切れで無効になります。 

証明書を取った事がないのでどういう手続きをするか知りませんがw

そもそも、個人でサーバー立てて運営するサイトにそんなお金かけれませんwww

 

 

話は反れましたが、このようにブラウザさんが怪しいサイトで買いものしようとすると事前に

「怪しいサイトだ!」と教えてくれるわけです。

親切ですね。

 

さて、ここで新たな問題が出てきました・・・

フィッシング等の詐欺サイトを作るために、わざわざお金払ってSSLのサーバー証明書を

認証局に発行してもらって運営する詐欺業者もいるという話があります。

 

そうなったらブラウザさんも正規のサーバーだと思ってしまい、注意してくれません。

どうしたものか・・・

 

それを解決するのがEV SSLというものです。

大手のショッピングサイトやネットバンクなんかで使われています。

多くのブラウザではこのようにアドレスバーが緑になるのですぐにわかります。

ssl003
これは本当に信用できるサイトであることの証です。

 

EV SSLは通常のSSL証明書を発行する場合に比べて審査が非常に厳しいらしいです。

なので、大手有名企業ならば取得は可能でしょうけど、詐欺業者が作った即席の会社なんかでは

発行してもらえません。(何か登記とか公的な書類がいっぱいいるらしい)

 

なのでカードで買い物をする場合はよく確認してみましょう。

通信がhttpsでない→論外

通信がhttpsだけど、証明書が怪しいとブラウザが言う→論外

通信がhttpsになっているがアドレスバーが緑でない→本当に大丈夫か確認しましょう

通信がhttpsになっていてアドレスバーが緑→有名どころなのでとりあえず安心

 

楽天とかネット銀行なんかの大手サイトやセキュリティが重要なサイトではたしかEV SSLだった気がする。

でもAmazonは通常のSSLだったような・・・?

 

とりあえず買い過ぎにご注意を・・・w

記事的にはPCに詳しい?システムエンジニアと被るかもしれませんが。。。

 

よくこんな話を聞きます。

 

「SEならプログラム組んでソフトとか作れるからその辺のパソコンの先生より詳しいよね?」

 

いや、自分が言われたわけじゃなくてこんな話を稀によく聞いたりします。

 

だいたいそういう場合は、ソフトを使いこなしている人よりも

ソフトを作れる人の方が詳しいのは当然でしょ?

という考えらしいです。

 

確かにそう思われるかもしれませんが詳しいというベクトルが違うので

そもそも比較はできないんです。

 

インストラクターもわかり易く教えるためのスキルが必要になります。

また、説明するためには説明する以上の知識も必要です。

知識とは言ってもプログラマー的な知識ではありません。

そのソフトウェアを使いこなすためのスキルです。

 

SEやプログラマーという職種では人に教えるためのスキルではなく

いかにソフトを使いやすく設計するか、効率のいいプログラムを書けるか?

とかそのあたりになってきます。

SE系の職業の人は仕事が出来る人ほど無愛想な人が多い気がします。

(本職の方、ゴメンなさいw)←つっこまないでください

 

わかり易く言えば、ゲーム開発者ってゲームを作ってるから

ゲーマーよりゲーム上手いよね?

と言ってるようなものです。

違いますよね?

 

案外、自分で作ったアプリを自分の想定以上に便利に使う人もいます。

そういう人には関心します。

 

PCインストラクターには憧れます・・・が、

知識のベクトルも違う事はもとより、

口下手を治さないととてもやっていけないでしょう・・・。

前へ  12 13 14 15 16 17 18 19 20  次へ ]      97件中 76-80件