2015年12月28日月曜日

申し訳ない、御社をつぶしたのは私です。 カレン・フェラン著

こんにちは、山田です。 知り合いのお兄さんにおすすめされて 読んでみた本の紹介です。 小学生並みの感想文になりますが、 ご容赦いただければと思います。 調べて見ると、少し前に流行った本みたいで、 とあるメーカーから実際に請け負った案件の中で、 つぶれていく会社を目の当たりにする体験談でした。 内容を簡単にまとめると ビジネスの問題点は人にあるという内容になります。 ※ネタバレ注意 ・とある赤字部署を、収益がでる形に改善して欲しいと依頼が舞い込むところから始まります。 納期が遅れがちで、当初の生産スケジュールを達成できていない。その原因を調査して欲しいと。 ・実際に、その現場の聞き込みをしてみると現場では、「ひとつの生産ラインで、割り込み作業が入る頻度が多く、作業が滞っており困っている。」と言われる。そしてその意見は、現場の監督で止まってしまっているらしいとわかる 一方、営業は遅れた当月の予算を補うために割り込み案件をかき集めている…。  ...

ページネーションに、並び替えや絞り込みがあった場合を調べてみた②

こんにちは山田です。 年末ですね。今年も一年の締めになりました。 年神様を迎えられるように、身辺を整理しましょう。 (山田家では、そもそも鏡餅は幾年も飾っていませんが気持ちだけ) さて毎度のことながら、グーグルのリファレンスを読んでおり 解読が増えた項目がありました。  ↓↓↓ コンテンツを指定する  https://support.google.com/webmasters/answer/1663744?hl=ja  ①canonicalとページネーションは併用できる、そしてページのコンテンツを変更しないパラメータ(たとえばセッション ID)が含まれている場合、ページネーションに記述する >>rel="next" と rel="prev"  は、rel="canonical" と直接関係する概念です。 >>両方を一緒に宣言することができます。 >>たとえば、http://www.example.com /article?story=abc&page=2&sessionid=123...

2015年12月25日金曜日

404.1、404.2という状態コードとは?

こんにちは山田です。  Webサイトの運用や開発者なら誰でも、 「404 - ファイルが見つかりません」や 「401 - 権限がありません」 などのエラー メッセージを見たことがあると思います。 この時、特定のHTTP状態コードが出たときに、 自分で作成したエラー画面を指定してあげることが出来ます。 ■ざっと404エラーの時の指定方法です。 ①IISを立ち上げて、エラーページをクリック  ②目的の状態コードを選択して「編集」 ③「このサイトでURLを実行」に表示させたいURLを記述する 以上 ■404.1、404.2という状態コードとは? さて、本題。 状態コードの編集画面に「404または404.2」と記載されているのが気になりました。 404エラーは、NotFoundのエラーだけど、(.少数点)とは、、? 少し調べてみると公式ページに答えが乗っていました。  ↓↓ IIS...

2015年12月24日木曜日

ページネーションに、並び替えや絞り込みがあった場合を調べてみた①

こんにちは山田です。 冬至になりましたね。日が短いと観光地が値崩れするので 個人的にはベスト旅行シーズンの到来でウキウキしてしまいます。 さて本日は、 ページネーションについて深堀してみました。 結論からいうとまだよくわかりません。 ■そもそもの目的 SEO対策としてURLの正規化をして、検索順位を上げることです。 URLの正規化で、改ページが必要な場合、ページネーションをするべきと Geogleの推奨があります。 (そもそも、Geogle的には、AllPageViewページを別途用意することを一番推奨しています。) そしてAllPageViewページではなく、改ページをしたい場合用に、 ページネーションタグが使えるようになっています。 ですので、ページの続きページに該当するページの場合 nextタブを振ってあげればよいです。 ■絞り込みや並び替えの時は? そう、ここの問題にぶつかりました。 ここからがはっきりわかりません。 いろいろぐぐってみて一番わかりやすかったのは以下のページかなと思っています。 ↓ rel=“prev”とrel=“next”のページネーションにおける正しい使い方 https://www.suzukikenichi.com/blog/implementing-rel-prev-next-correctly/ ここでは、絞り込みや並び替えの場合は、内容は少し異なるので、 それぞれのパラメータの場合で、ページネーションを入れるべきと言っています。 rel="canonical"...

2015年12月21日月曜日

モーダルウインドウのプラグインを使ってみた

こんにちは山田です。  今回モーダルウィンドウを実装するにあたって プラグインを使用したのでその覚書です。  ■そもそも、モーダルウィンドウとは 何らかのウィンドウの子ウィンドウとして生成され、ユーザーがそれに対して適切に応答しない限り、制御を親ウィンドウに戻さないユーザインタフェース設計  (https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%80%E3%83%AB%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6) モーダルウィンドウでググると、かなりたくさんプラグインが出ていることがわかりました。 びっくりです。 その中でも一番簡単にできそうなものをチョイスしてみました。 ■使用したプラグイン 今回使ったプラグインはこちら http://zurb.c...

2015年12月18日金曜日

DOM読み込み時に動作させる $(document).ready

こんにちは山田です。 DOMという言葉を最近知りました。 ■DOMとは :XMLやHTMLで記述された文書をプログラムやスクリプトから参照あるいは操作するための方法を提供する仕組み(出典|ASCII.jpデジタル用語辞典) というわけで DOMの読み込み完了時のみに処理をいれたい時に使う関数の紹介です。 フロントエンドだと、jQueryがやっぱり便利ですね。 ■関数はこちら JavaScript jQuery(document).ready(function(){  //実行したい関数 }); ■実際に作ったソース 非表示にしたい要素を隠したり、 タブ付きメニューのタブ部分とパネル部分の初期化を行ってみました。 jQuery(document).ready(function(){   //閉じたい要素を閉じたり $("#placeCount").css("display","none"); ...

2015年12月17日木曜日

任意の位置でタブメニューを開いておく

こんにちは山田です。 タブ付きのメニューってありますよね。 それを、初期状態で受け取った数字によって、 開始タブを任意に変えることをやりました。 その備忘録です。 タブとそれに紐づくパネルが同時操作されます。 タブの部分は、クラス名に"tabCurrent"があるもの パネル部分は、目的のdivタブのみ表示をさせています。 HTML   消防車   救急車              赤い       大型車                       白いい       中型車          JavaScript $(function() { var num = "<%=ID %>";//サーバサイドから値渡し var $currentTab = $("#tab" + num); $currentTab.addClass("tabCurrent"); ...

2015年12月16日水曜日

CSSのDisplayプロパティ

こんにちは山田です。 JSの制御で、 データがない時は、丸ごと消しときたい時ってありますよね その時の実装例です。 件数件 $(function() { $('button').click(function(){ $('div').css('display', 'none'); }); }); ちなみにjQueryの .hide()はこれと同様にdisplayプロパティのblock→noneの動作をさせることが出来...

三項演算子とは?

こんにちわ、開発者のⅠです。 山手線の新型車両が11月30日にデビューしたのですが、翌日から運転を取りやめているようです。いつ復帰するのかも現時点では不明とのことで、見切り発車だったとは思いたくないのですが、今後が気になる話です。 さて、今回は三項演算子についてのお話です。 この三項演算子の構造を簡潔に書いてみると、以下の様に表現できます。 "A 条件式 " ?  "B 真の場合の処理"  :  "C 偽の場合の処理" これは、ifを使った条件文 if ("A 条件式") {    "B 真の場合の処理" } else {    "C 偽の場合の処理" } と同じ構造になっています。 具体的に三項演算子を使って思います。 今回の例文では、変数ageを宣言しておき、その値によって表示される文言が切り替わります。 int...

2015年12月15日火曜日

jQueryでHTMLにテキストを表示させる方法

こんにちは山田です。 jQueryでHTML上にテキストを表示させる方法です。 使うのは以下の構文です。 .text(textString) 引数のtextStringはマッチした要素内に挿入するテキスト文字列です 実際に使ったソースは下のようになります。 勝手ながらスペースの問題で、格納した文字の0番目のみをテキストとして表示させて、2個目以上は「…他」と表示させてました。 実際に表示される位置はid名が ”plceText”の要素になります。 参考になりますでしょうか? //表示させたいテキストを配列で用意する(disp_yourText) if(disp_yourText.length > 0) { if(disp_yourText.length > 1) { $('#placeText').text(disp_yourText[0] + "...他"); ...

2015年12月14日月曜日

”CustomValidator”について

こんにちわ、開発者のⅠです。 さて、今回はASP.NETの検証コントロールの一つである「CustomValidator」についてのお話です。 といってもそんな大したことではないですが……。 他の検証コントロールには、「RequiredFieldValidator」「RegularExpressionValidator」などがありますが、これらと「CustomValidator」には違いがあります。 それは、『ControlToValidate』プロパティが空でも良いという点です。 つまりは、検証対象の指定が必須ではなく、任意であるということです。 ソースコード側で、検証の対象やErrorMessageプロパティに適当なメッセージを設定することも可能です。 やはり、"Custom"という名は伊達じゃないといった所でしょうか。 それでは、今日はこの辺りで失礼しま...

Google AJAX Feed APIとは

こんにちは山田です。 今年の東京は12月なのに24度を超える日がありました。 11年ぶりだそうです。 とても暖かくて半袖でも外出できそうです。 さて本題に入るのですが、 外部サイトが配信しているニュースを自分のサイト内で受けとって表示できないかと画策していたら、その方法の一つとして 統一された規格のRSSというものがあるとわかりました。 (一時期はRSSが人気だったようなのですが、 近年はサービス終了も目立っている印象ですね。) 今回はRSSについて調べて見ました。 ■RSSとは 「Rich Site Summary(リッチ・サイト・サマリー)」の略で、主にWebサイトの更新情報を公開することを目的に使われています。  一昔前では、各サイト(ブログとか)の更新情報を取得する手段は、直接サイトを開いて記事が追加されているか、人が操作して確認するしかありませんでした。 その改善方法として、生まれたものです。 ■バージョン RSS1.0 RSS2.0 Atom...

2015年12月10日木曜日

任意のURLの文字列を作るためには?

こんにちは山田です。 本日は任意のURLの文字列を作成する方法です。 そもそもの経緯としては、改ページをする時に、現在のURLをそのまま引き継ぎつつ新しいURLとしてページ番号入りのものをつくるために使いました。 開発言語:C# public static void Main() { string _param = "";//何か引数があれば"&"ごとに代入 string url = CreateLink(1,100, _param != "" ? "?" + _param : ""); Console.WriteLine(result); } public string CreateLink(int _caseID, int _ID, params object[] _args) { string result = ""; if(_args != null &&...

2015年12月9日水曜日

クライアントからリクエストされたURLを取得する方法

 こんにちは山田です。 開発環境:ASP.NET2.0 開発言語:C# リライトをかけたページの改ページと並び替えをしようと思っていた時に、 仮想URLを取得したい場面がありました。 クラスライブラリを探したり、ネットを探したら 綺麗にまとめているページがあったので参考にさせていただきました。 プロパティ 種類 物理/仮想 クエリ情報 追加パス ApplicationPath アプリケーションパス 仮想 × × PhysicalApplicationPath アプリケーションパス 物理 × ○ CurrentExecutionFilePath ファイルパス 仮想 × × FilePath ファイルパス 仮想 × × Path ファイルパス 仮想 × ○ PhysicalPath ファイルパス 物理 ○ ○ RawUrl ファイルパス 仮想 ○ ○ Url ファイルパス 仮想(フルURL) ○ ○ PathInfo 追加パス 仮想 × ○  @IT[ASP.NET]クライアントからリクエストされたURLを取得するには?  このRawUrlを使って解決しました。 他にもプロパティがあるので試してみようと思います。...

2015年12月8日火曜日

OGP設定とは

こんにちは!Sです 今日はOGP設定について・・・ ▼OGP(Open Graph Protocol )とは facebookなどのSNSとウェブページを連結するために設定する記事情報です。 この設定をすると何が違うのかというと、 例えばAさんがfacebookで「いいね!」をした場合にこの設定がされた記事では Aさんの友達のニュースフィードにも指定されたURL、TDK、サムネイル画像が表示されます。 逆に言えば、この設定をしておかないとニュースフィードに反映されないため あまり多くの人の目に触れる機会がなかなかありません。。。 ▼設定方法 設定は簡単で下記のようなmetaタグをhead内に記述するだけです <meta property="og:title" content="タイトル"/> <meta property="og:type" content="blog"/> <meta...

2015年12月7日月曜日

【SQLserver】DBテーブル内のカラムにコメントを登録する

こんにちわ、開発者のⅠです。 さて、今回はDB操作に関するお話です。 クエリ文を作成しそれをプログラム上で実行することで、新規テーブルの作成やカラム追加など、様々な操作が可能です。 その中で、今回はカラムにコメントを登録する方法を伝えします。 カラムの定義変更や追加には【ALTER TABLE】を利用することになりますが、新規にカラムを追加する場合はコメントには何もない状態です。 このコメント、カラム自身がなにを格納するものなのか、それを説明するのに結構重要なものです。コメント自体は手動で登録・編集が可能ですが、カラム作成と同時に登録できれば手間を省けますね。 それでは、早速書いてみたいと思います。 環境は、 ・管理プログラム:SQL Server Management Studio ・対象テーブル:日本の観光名所を登録している「dbo.tbl_attractions」 ・追加するカラム:設立した年を格納する『year』 とします。 /*...

2015年12月4日金曜日

そもそもWebAPIとは?

こんにちは山田です。 外部サーバとデータの受け渡しをする方法として、 APIという方法があるとわかったのでその調査をしてみました。 よくあるAPIとしてはGeogleMAPや郵便番号の検索が思いつくと思います。 日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】 ■そもそもWebAPIとは Application Program Interfaceの略 直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェースという意味になります。 目的としては、自社で保有するデータや、システム、アプリケーション、Webサービスの機能を公開して他社で使ってもらうためです。 動きとしては WebAPIで機能を公開しているサーバに対して、HTTPリクエストの形で送信して、 処理結果がHTTPレスポンスの形で返ってきます。 ■URLの設計 方法としてサブドメインに配置する方法 http://api.example.com/...

2015年12月3日木曜日

XMLHttpRequestとは?

こんばんわ、開発者のⅠです。 さて、今回は前々回の投稿についての補足として、APIのひとつであるXMLHttpRequestについて説明したいと思います。 以下のソースは、前々回の投稿での使用例です。 マーカーの情報が記録されたCSVファイルを読み込むための関数 getCSVFile に組み込んでいます。  function getCSVFile() {    var xhr = new XMLHttpRequest();    xhr.onload = function () {    createArray(xhr.responseText);    };    xhr.open("get", "markerlist.csv", true);    xhr.send();  }  getCSVFile(); このAPIは、ブラウザ上でサーバーとHTTP通信を行うために利用します。 また、各メソッドの意味については以下の通りです。 【onload】...

GetTypeで型名を見る C#

こんにちは山田です。 型名って忘れること多くないですか? そんな時にこれさえ覚えとけば安心の、型名の出力方法の覚書です。 開発環境:ASP.NET 2.0 開発言語:C# 必要となる構文はこちらです。  Object.GetType メソッド 例) ASPX側 <%# Eval("AnimalName") %> ASPX.CS側 protected void AddStatus(object sender, RepeaterItemEventArgs e) { //is演算子でオブジェクトの型の確認 if (e.Item != null && e.Item.DataItem is string) {   Control ctl1 = e.Item.FindControl("ahref");   //ct1の形名がわからないとき   Response.Write(ctl1.GetType().Fullname);   //出力は「System.Web.UI.HtmlControls.HtmlAnchor」となり型名を教えてくれる   if...

2015年12月1日火曜日

CSVファイルとは?

こんにちわ、開発者のⅠです。 今回は、前回の投稿で触れたCSVファイルについて説明したいと思います。 CSVは「Comma Separated Values」のそれぞれ頭文字です。 ”カンマ区切り文字”とでも言いましょうか。 「名前、経度、緯度」の各要素が書き込まれたCSVファイルを例にしてみると、 東京タワー, 35.658589, 139.745615 浅草 雷門, 35.711020, 139.796336 中央本線 笹子駅, 35.603862, 138.825087 という様式になっています。 カンマごとにマーカーの「各要素」が存在し、さらに「マーカー1つに一行のデータ」という対応関係になっていますね。 前回の投稿では、splitメソッドを使っていましたが、その際に区切り文字に”, (カンマ)”と”\n(改行コード)”を設定していたのはこういう理由からです...