ブログ

  • デザイニングインブラウザとフルスタックエンジニアとマテリアルデザインと私

    ここ数年耳にすることが多くなった言葉として「デザイニング イン ブラウザ(インブラウザデザイン)」「フルスタックエンジニア」「マテリアルデザイン(フラットデザイン)」という言葉があります。
    これらの言葉について、面白そうだなと思いつつも実際にはどうなんだろう・・・とか、あんまり一般化しないなとか・・・流行りで終わりそうだなとか・・・いろいろ思っていましたが、最近ようやくこれらのワードがつながってきたのでまとめます。

    (田舎の、それこそ技術者が1〜2名しかいないような会社の、そういう環境にいる視点ですので、時代に遅れた感はあるけど、実際地方の現場ではこんな感じですという記事となります。^^)

    デザイニング イン ブラウザ(インブラウザ デザイン)

    Webデザインの現場において、今まではデザイナーがAdobeのソフトなどでデザインを作成し、それをプログラマーとかコーダーが、HTMLでコーディングしてつくり上げるという方法が一般的でしたが、いきなりブラウザ上でデザインを作成しちゃいましょう。という方法です。
    (ちょっと乱暴な表現かも?)

    たしかに、大枠で言えばHTML5、CSS3、細かな話でいえばWebフォントが一般的になりつつあり、レスポンシブWebデザインやパララックス(最近聞かない?)などがどんどん取り入れられている現状、Webの表現方法が非常に多彩になってきていますから、例えば見出しなどを目立たせたいと思ったときもわざわざデザインソフトでつくらなくてもコーディングのレベルでデザインを作ってしまえます。また、メンテナンスを考えた時も、見出しの文字が1文字変わるだけなのに、わざわざデザインソフトを立ち上げて修正して画像に書き出して貼り直す。なんてことをしたり、もっといえば、他所から引き継いだ案件などでは、デザインの元データが見当たらないのでつくりなおしなんてこともしょっちゅうあるので、この点だけ考えても、メリットは大きいと思います。

    また、お客様視点からしても、「この見出しの部分を1文字なおして」と業者に依頼したのに、「実はその部分は画像で貼り付けてありまして修正に手間がかかるので追加料金となります」といわれても、「いや、文字修正でしょ?消して打ち直せばすぐじゃん。なんで?」となることも多く、この意味でも、やっぱりテキストなどを画像にして貼り付けるという行為はやり方としてスマートではないですね。

    デザインの打合せのときも、デザインについてあれこれ意見がでるけど、(その場にAdobeのソフトがないために)結局それを一度持ち帰ってデザイナーに修正してもらって、後日診てもらう。というよりも、その場でコードを修正して「こんなでどうでしょ?」ということができたら話が早いと思います。

    また、HTML5の時代ですから、これからは、レスポンシブWebデザインはもちろん、当然、動きのあるサイトデザインが一般的になってくるでしょう。それらを紙ベースやPDFで見てもらってもなかなかイメージがつかないと思います。
    打合せの段階でブラウザで確認できることはもちろん、打合せ担当のディレクターにある程度のコードの知識があれば、テキストエディタがあればある程度の修正がその場でできますから、お客様の要望に合わせて「こんな動きもできますよ」という提案ができたら、とても良いと思います。

    とくにWordpressの案件などでは、Wordpress自体はCloud9などを使えばものの10分で環境構築+プラグインのインストールまでできますから、仮でもテストサイトを立ち上げて、その場でコーディングによってデザインや動きを見せながら打合せができたら、かなり工数を削減できると思いますし、あとから「なんかサイトができたら思ってたのと違った」というのを低減できるのではないかと思います。

    我々コーダー、プログラマー寄りのWeb制作者にとっては、なんかいろいろ変わっていきそうな気がする「デザイニング イン ブラウザ(インブラウザデザイン)」です。

    でも、実際にはなかなか広まっていかないな。。というのもあります。
    多分それは、制作側のスキルの問題が大きんじゃないだろうかと思います。

    例えばWordpressがこれだけ広まったのも、PHPとか知らなくてもお問い合わせフォームや新着情報機能が実装できるってあたりの、技術がない人でも使いやすい。ってのが最大要因な気がします。

    デザイニングインブラウザ(インブラウザデザイン)が、今ひとつ広がらないのは、デザインからコーディング+ちょっとしたプログラムまで全部できる人が実は少ないので、実際にブラウザ上でデザインといっても、難しいのだろうな。というふうに思います。

    そこで、今後のWeb関連のエンジニアに求めらているのが、フルスタックであること。。になってきます。

    フルスタックエンジニア

    最初に、フルスタックエンジニアと言う言葉を聞いた時は、(なんかカッコイイことばだな)と思いました。
    でも実際にその言葉がつかわれているのが、転職サイトなど人材系のサイトばかりで、どうも現場でいわれているというよりも、転職業者のあいだで人を募集するための言葉とかなのか?という印象で終わりました。

    ただ、上記で述べたようにWebの表現方法やできる事がどんどん多彩になっていく中で、紙で印刷したものを見ながら「どんなふうにつくりましょうか」というのはいずれは限界が来ると思います。また、昨今はクラウドソーシングもどんどん広がっているようですから、紙にデザインを作るとか、紙に印刷された固定的なものをコーディングする。という仕事はどんどん安いところに流れていきます。
    たとえばクラウドソーシングには「Gengo」のような翻訳サービスもあるわけですから、それとIT技術系のクラウドソーシングがシームレスに連携するだけで、日本語しかできなくてもアジア圏などにも外注をだせるわけです。

    そう考えると、今実際にWebデザインを紙でつくれます。紙で作ってもらえればコーディングできます。というように、「指示書」や「要求定義」があれば作業ができるレベルの仕事は少なくなっていくと思います。
    (少なくなっていくというよりは、資本があって投資ができて、人件費を削減できる仕組みを構築できる大きな企業に利益が集中していくので、田舎で中途半端にやっているところに回ってくる仕事は減っていくといったほうが近いですね)

    そんななかで、我々Webに関わるエンジニアが生き残っていくためには、やっぱりここなのかな。と思わずにいられません。
    前項でも書きましたが、インブラウザでデザインから構築できると、出来上がりがイメージしやすいだけでなく、工数の削減にもなりますし、なにより、地方ってお客さんがWebに詳しくなかったりして、「やりたいことはあるけど、どうやって実現したらいいのかわからない」って人がたくさんいます。
    なので、紙で書いたもので打合せするよりも、その場で簡単にプロトタイプを組みながら、ああでもないこおでもないと打合せできるような環境をつくってあげると、イメージがしやすく、そして話が早く、最終的にはお客様のマーケティング計画に近いものが出来上がる可能性が高くなります。

    実際に言われている「フルスタックエンジニア」ってどちらかというと、サーバからWebデザインまで全部みたいな作る側の人のことを指していると思いますが、人材が不足している地方においては、それにさらにディレクターや営業やコンサルなど、お客様と直接やりとりするためのスキルも含めて「フルスタックエンジニア」がこれから求められて行き、そういうのになっていかないと、おまんまを食べていけなくなるのではないか?と考えます。

    とは言いつつも、そんなに悲観しているわけではなく、私の周りなどはそうなんですけど、フリーランスで直接お客さんとやりとりしてWeb作っているような人達って、フルスタックな人たくさんいるんですよね。

    そりゃそうですよね。我々地方の技術者は、ホームページだけでなく、インターネットの設定やプリンタのインストール、はてはエクセルの使い方までお客様から聞かれちゃう何でも屋をやっるところも多いのではないかと思います。
    「ホームページが映らなくなったんだけど」と言われても「サーバは専門外なのでわかりません」とは言えません。
    「ここにバナーを追加したい」と言われても「デザイナーじゃないのでできません」とは言えません。
    お客さんにとっては、インターネットに詳しい人、パソコンに詳しい人として相談してくれるのだから、それらに答えるのが仕事。としてやってきているような人が多いので、結果フルスタックに近い人達が沢山いるのです。

    そういう人たちが、今後重宝されてくるといいな。なんて思います。

    マテリアルデザイン

    もう1つ「マテリアルデザイン(フラットデザイン)」という言葉もよく耳にします。
    これ、最初にでてきたときには、ただの「流行り」かと思っていました。一部デザインに先進的な皆様の間で流行っているだけで、田舎のWeb屋には、あまり関係ない話なのかと。。。
    でも、このインブラウザでデザインを進めていくのと、とっても相性がよいのがこのマテリアルデザインであるということがわかってきました。
    マテリアルデザインの元となっている「マテリアルオネスティ」という考え方があるのですが、要するに素材を活かしたものこそが美しいという考え方のようです。

    ↓↓詳しくはココ↓↓
    http://contentmarketinglab.jp/trend-in-japan/responsive-web-design-2.html

    ここを読んで、たしかにそうだなと思ったのが、Webデザインにわざわざ影をつけるのって変じゃね?ってことです。
    だって画面には光源なんてないのだから、フラットなものなのです。

    じゃあなんで、Webデザインに影をつけるのか?

    それは「目立たせるため」ですよね。「お問い合わせはこちら」とか、「お申し込みは今すぐクリック!」みたいなボタンをつくるのに、周りの部品に埋もれさせないために、ドロップシャドウをつけて目立たせたりします。

    でも、そのために、例えばAdobeでわざわざ影付きのデザインをつくって貼り付けたり、CSSで頑張って影をつけたり。。
    そのために、たとえばレスポンシブデザインの際に、わざわざ影の位置や広さを調節したりが必要になるかもしれません。そんな感じでメンテナンスが大変、というのはどうでしょうか。

    目的にたちかえって「目立たせるため」ということだけを考えれば、デザインそのものを見なおして、マテリアルデザインという考え方にのっとって作ってみるというのはどうでしょうか。

    まだマテリアルデザインの全貌を理解しているわけではないのですが、例えばGoogleのアプリなどマテリアルデザインを採用しているアプリやWebサイトをいじってみると、ボタンを目立たせるというよりも、ボタンがよりタップしやすい場所に、タップしやすいカタチで配置されていたりといった工夫がされているものが多いです。

    いままで紙ベースでデザインしてきた場合は、上から読み始めて下に読み進めていく。
    という流れがあたりまえです。その視線の流れにそって、途中で「目立つボタン」を設置してクリック率を高めよう。というのは当然だと思います。

    でも、今後はどうでしょうか?デバイスは多彩になり、スマホ、タブレット、スマートテレビ、携帯ゲーム機、PC。。。いろいろなデバイスでのアクセスを考えて時には、かならずしも上から下に、左から右に読み進めるのが、ユーザにとって優しいとは限りませんよね。

    そうした中で、PCのディスプレイとマウスでの操作を前提としたものよりも、Webの本来の「素材」である「画面」という考え方でデザインをしていったほうが、良い物が作れる気がするのです。

    先ほどの「目立つボタン」をつくりたいのなら、片手持ちのスマホで閲覧を想定するさいには、つねに右下にフロートさせたボタンをおいておくというてもあります。
    ページを読み進めていくなかで、アニメーションさせることで目立たせることもできます。
    同じように目立たせるというものが、いままでの固定的なデザインから、動的なものに変わっていく中で、そのガイドラインとなるのが、マテリアルデザインではないかと思いました。

    また、インブラウザデザインと相性がよいといったメリットもあります。
    ブラウザのなかでコーディングしてデザインをつくっていく手法では、なるべく余計な装飾が少なく、それでいて見やすい、操作しやすいデザインを作る必要があります。そういう意味ではCSSでざっくりコーディングしちゃって、あとで修正していけるマテリアルデザインはとても相性が良いといえます。

    そういう、インブラウザでのデザインをつくっていく中での一つのガイドラインを、マテリアルデザインが示していくれているのかな。なんて考えております。

    最後に

    なんかとりとめのない話になっちゃったな。
    実際には地方にはまだホームページって何?みたいなお客さんもいるし、いまだに「社長、これからはホームページですよ」なんつって、どうしようもないホームページを高く売りつけている業者も存在しています。
    なので、明日から何かが変わりますという話ではないかもしれないけど、
    でも、企業側からすれば、これから若い人たちが経営層に入ってくれば、当然、マーケティングを見据えたWeb運用というものがはじまってくるし、そうしたときにテンプレートとコピペで作ったホームページを売っていたら、「それなら自分たちでつくりますけど」となってしまうのではないかと思います。

    そうした中で、(半年後どうなっているかわからないけど)今の時点では、技術的な分野で「取り組みたいな」と思えるものとその方向を書いてみました、

  • Xperia Z3 SO-01G 3ヶ月つかってみての感想

    このブログ、実はXperaZ3関連のワードで検索されることが結構多いです。
    11月ころにXperiaZ3や、その純正カバー(小窓付き)SCR24のことを書いたのですが、そこらへんの記事が結構見られていて、やっぱりXperia人気なんだなぁ。。。って関心する今日このごろ。

    せっかくなので、3ヶ月つかってみての感想を書きます。

    Xperia Z3 を3ヶ月つかってみた

    純正カバー「SCR24」は実はもうつかっていません

    実は、あんなに記事をかいたり、染めたりしたのに、もう使っていません。
    理由は、やっぱり素のままがカッコイイから。
    落とした時に割れたらとか怖さもありますが、やっぱりXperiaの良さは「見た目」も大きいのです。
    両面ガラスのつるつる感、薄い板状ボディ、あとなにげに好きなのが側面部のメタル感。
    これらを味わいたい思いが日に日に強くなっていき、1ヶ月たたずにカバーはお蔵入り。
    今後、傷や汚れがついたりしたら、カバーをつかうと思います。

    動きは全く問題なし。気になることはある

    私は、GALAXY S3 (SC-06D)からの乗り換えなのですが、GALAXYはほんとによく止まりました。とくに重めのWebを開いた時がひどかった。Javascriptなどがガシガシ動いているWebを開くとすぐにとまります。
    なので、ケータイで検索したりするのがストレスになっていたのですが、Xperiaは本当にさくさく動きます。
    おかげでPCを使う回数が各段に減りました。
    自宅で、調べ物をする。というレベルではほとんどXperiaで済ませます。
    (※ただし、その後Chromebookが我が家に来てからはノートPCを開く機会も増えつつあります)

    意外と嬉しいカメラの手ブレ防止機能

    実はXperiaを普段つかっていて、一番うれしいのがカメラです。
    それも動画の手ブレがびっくりするくらい防止されます。
    たとえば、ダッシュする子どもを走って追いかけながら動画撮影しても、ほとんど手ブレしないので、あとで視聴するときのストレスがほとんどありません。(俺の撮影力とか構図などの問題はあるけど。。。
    いままでスマホで動画とったりとかあまりしたことなかったのですが、このクオリティだと、撮りたくなっちゃいますね。
    動画撮影をするとバッテリー消費が激しいのですが、たくさん撮影してしまいます。

    POBoxがよい

    Xperiaには、POBoxというIMEがついてきます。
    IEMとは文字を変換したりするソフトです。Xperiaにするまえは、Google日本語入力をつかっていましたが、Xperia購入当初は、Google日本語入力に不具合が発生していたこともありPOBoxを使い始めました。
    そしたら、もうやめられません。
    予測変換が優秀なことや、例えば、Xperiaの大画面を片手持ちで入力しやすいように右や左にキーボードを寄せてくれる機能とか、細かいところに気が利いているというか、日本語を入力するが便利になる機能がたくさんあります。

    ダブルタップでスリープ解除

    通常は、スリープ状態を解除するのに電源ボタンを使いますが、Xperiaには画面をダブルタップでスリープ解除する機能があります。
    (設定が必要ですが)
    これが、なかなか使い勝手がよいです。
    最初は誤動作したらやだなとか思ったのですが、ダブルタップの感度がちょっと鈍めのためか、気づいたら立ち上がってました。ってことはいまのところ遭遇していません。
    逆に、軽くダブルタップしただけでは開かないこともあるのですが、むしろそのくらいがちょうどいい感度です。

    Walkmanアプリがカッコイイ

    以前につかっていた「Galaxy」は、音楽を聞くアプリが、なんかダサい。というのがありました。
    これは個人的な感想なので、気に入っている人がいたらすみません。
    なんかアイコンのカタチとか色使いとかがダサい感じがして、もともと音楽好きではないこともありスマホで音楽を聞くことはあまりありませんでした。
    でもXperiaのWalkmanアプリは、カッコイイです。
    見た目も良いし、いじっていると楽しいので、つい音楽を聞いてしまいます。
    あと、2015年2月のバージョンアップでマテリアルデザインになり、またいじる楽しみが増えました。

    気になること

    欠点というか、気になること。
    たまにタップやフリックが暴走します。フリック入力で上にフリックしたいのに右にいったりとかになります。
    でも、それは私のつかっている画面保護フィルムが安モノで、さらに結構傷がついてきたこととかのほうが原因なのかも。
    こんど保護フィルム張り替えてみます。

    2015-03-07追記
    ※その後、なんどかフリックが暴走するので一度再起動かけたら、すっかりよくなりました。

    と、XperiaZ3とても良いです。
    購入する前は、大きすぎじゃね?という心配もあり、同じようなスペックで、手のひらサイズのXperia Z3 compactと迷ったんですが、実際につかってみると、私が老眼がちょっときているということもあり(悲)、大き目の画面が逆にありがたい。
    薄いので持ち運びは邪魔にならないし、PoBOXのおかげで入力も片手でできます。
    なので、あまり気になりません。

    以上、ほんとに日々使うレベルのライトユーザーですが、感想でした。

  • ブラウザ埋込み型のJavascriptエディタ「ACE」を実装してみた。

    2015-10-02
    この記事は結構見てくださっている方が多いこともあり、すこし修正して
    Qiitaにて公開しました。

    http://qiita.com/shin1kt/items/48ed9c5d3d485757d19b
    こちらも合わせてどうぞ。


    最近Chromebookをいじってばかりいるせいで、ブラウザ上で動くエディタとかにとても興味がでてきて、いろいろ試しています。
    Cloud9とかすごいですね。うまく使えばいろいろな開発環境が劇的にかわるかもとか思い始めています。
    「あぁ、もうそういう時代がきているのね感」みたいのを日々感じる今日このごろ。

    そんな中、Cloud9のエディタがすげー便利だな。。なんかWindowsやMacで使われているSublimeTextみたいなことがJavascriptエディタでできるなんて。。とか感じていたのですが、どうやら「ACE」というJavascriptエディタをつかっているらしい。とのことで、すごく興味がわきさっそくですが自分のサーバに実装してみました。

    まずはこちらを御覧ください。
    https://www.katacom.jp/a/ace-builds-master/editor.html
    DEMO用のファイルをすこし変更してアップロードしただけなので、ただ入力できるだけ。
    なんですが、「HTML」を入力してみてください。
    いろいろ便利でしょ?

    Javascriptエディタ「ACE」HTML入力の使い方例

    タグを入力

    1. 普通にタグを入力すると終了タグが自動的に入ります。
    2. あとは中身を入力するだけ

    タグ間を移動

    終了タグにカーソルがあるときに、開始タグに一気に移動したいときとか。。

    1. 終了タグ内にカーソルがある状態で
    2. Ctrl+Alt+Shift+左 (MacはAltをOptionで)
    3. で開始タグに移動

    複数タグを同時編集

    例えばulで囲ってたけど、olに変えたいなという感じのとき

    1. 終了タグにカーソルがある状態で
    2. Ctrl+Alt+左 (MacはAltをOptionで)
    3. 左を押すたびにタグを移動してカーソルが複製されていきます。
    4. 編集したいタグ全部にカーソルが表示されたらあとは、編集するだけ。
    5. あとは、Ctrl+Alt+Shift+(右|左)を押して移動すると複製されたカーソルを解除しながらタグ間を移動します。

    行をコピー

    1. コピーしたい行にカーソルがある状態で
    2. Ctrl+Shift+d
    3. で、行がコピーされます

    てな感じで、HTMLタグ編集も楽々です。
    その他ショートカットキーは
    https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts

    こちらで確認できます。

    Javascriptエディタでここまでできるんですねぇ。。

    というわけで、実装してみます。

    javascriptエディタ「ACE」を実装してみる。

    1. ダウンロード
      https://github.com/ajaxorg/ace-builds
      ここに、使いやすくまとまったコードがありますので、まずはそれを。
    2. そしたら展開。
    3. editor.html というのがDEMOファイルになっています。
    4. まずは、editor.html を少しいじります。
      <!DOCTYPE html>
      <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>Editor</title>
        <style type="text/css" media="screen">
          body {
              overflow: hidden;
          }
      
          #editor {
              margin: 0;
              position: absolute;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
          }
        </style>
      </head>
      <body>
      
      <pre id="editor">
      エディタにデフォルトで入れたいコードはココに書く
      </pre>
      
      <script src="src/ace.js" type="text/javascript" charset="utf-8"></script>
      <script>
          var editor = ace.edit("editor");
          editor.setTheme("ace/theme/monokai");
          editor.getSession().setMode("ace/mode/html");
      </script>
      </body>
      </html>
      
    5. 上記をそのままコピーしても大丈夫だと思いますが、ポイントは、
      • 28行目:src/ace.js を参照するようにします。
      • 31行目:テーマを決めます。SublimeText風にしたいので、monokaiを指定
      • 32行目:モードを決めます。今回はHTMLモードにします。

      テーマやモードは、srcフォルダの中に theme-●●.js 、mode-●●.jsが準備されていますので、そこからいろいろお試しください。

    6. editor.html と srcフォルダ をアップロードして、editor.htmlにアクセスします。
    7. というだけの作業で公開されるのが、
      https://www.katacom.jp/a/ace-builds-master/editor.html
      です。

    あとは、この値を取得してあれこれとか、これを利用してWebサービスのあの部分に使おうとか。いろいろとアイディアが湧き出てきそうですね。
    まずは、今回実装まで。
    今後いろいろといじっていきたいと思います。

    参考にさせていただいたサイトは
    http://d.hatena.ne.jp/tsugehara/20130419/1366380767
    http://blog.asial.co.jp/934
    です。ありがとうございます。m(_ _)m

  • chromebookでリモートデスクトップをするときに、接続先PCがマルチモニタだと大変な事に!の解決。

    実は、chromebookを購入するまでは「リモートデスクトップ接続」って、結構使わなくちゃならないのでは?とか思っていました。
    でも、実際に使ってみるとchromebookだけで、ほとんどのことができるので案外使わないものです。

    と、まあ、そんなわけであまり出番はないけど、やっぱりいざというときのために設定しておきたい「リモートデスクトップ接続」なんですが、やり方自体はいろいろなサイトに書いてあるのでそちらを見ていただくとして、私が使っていて不便だなと思った事と解決方法を紹介させていただきます。

    接続先のWindowsPCがマルチモニタのときに大変なことに!

    さて、実際にChromebookを使っていて、どうしてもAdobeソフトを使わないといけないとき。
    そんなときこそリモートデスクトップだ!
    となるわけですが、実際にモバイル用にChromebook。本腰入れた作業には旗艦となるWindwosやMacのPCを使う人多いのでは?

    でも、その場合、最近では、マルチモニタ環境で使っている人も多いと思います。

    ちなみに、ChromebookからマルチモニタのPCにリモートデスクトップで接続すると、、、
    こんなになります。

    Screenshot 2015-01-31 at 17.48.08 (1)

    どうですか、このトホホ感。。。
    Chromebookの小さい画面にこれが表示されたら、とてもじゃないけど作業できません。
    もちろん等倍で表示もできるんですが、それだといちいちスクロールしないと見えない。
    そんなわけで、これをどうにかならないか?と思ったのですが、実はWindows8には、とても便利な機能がありました。
    (7でも似た感じのことできるらしいです)

    Windws8と7での解決方法

    1. リモートデスクトップで接続
    2. 例のマルチモニタが表示される
    3. Chromebookの検索ボタン「虫メガネマーク」と「p」を押す
    4. すると、下記のようなモニタ接続方法の変更画面がニョロっと表示されます。winp
    5. ここから、「PC画面のみ」を選択します。
    6. 以上でWindwosがメインモニタ以外を全部切断してくれます。
    7. あとは、画面に併せて表示して快適に使えます。
    8. 終わったらもう一度「虫メガネ + p」で、「拡張」を選択すれば元にもどります。

    ※実はこれはWindwos8(と7)にある、モニタの切り替え機能で、「Windowsキー + p 」で使えます。
    Chromebookでは、虫メガネマークがWindowsキーになるようですね。

    それでは、Chromebookで快適なリモートデスクトップ接続をお楽しみください (^^)

  • ログインしてる状態でも「非公開:」の記事が表示されないようする。

    WordPressの仕様なのですが、管理者としてログインしたまま記事の一覧を見ると、非公開の記事が 「非公開:」というテキストがついてそのまま表示されてしまいます。
    個人的には「下書きわかりやすい仕様だと思うのですが、中には「非公開なのに表示されてる!」とビックリしちゃう人がいますので、ログインしても非公開は表示しないという風にしてみようと思います。

    ヒントをいただいたのは、この記事。
    http://d.hatena.ne.jp/deeeki/20090917/wp_publish_only
    ありがとうございます。

    基本的には上記でOKだったのですが幾つか修正がありました。

    is_site_admin() がエラー
    この関数は新しいWordPressでは使えないようです。替りに is_super_admin() を使います。
    「下書き」や「非公開」のプレビューが見れなくなってしまう。
    考えてみれば当たり前なのですが、「公開」の記事しか表示されないようにしていますから、「下書き」や「非公開」の記事をプレビューしようとすると「ページが見つかりません」となってしまいます。
    でも考えて見ると、非公開と出るのが困るのは「一覧」状態ですし、プレビューは「シングルページ(投稿や固定ページ)」で行います。なので、is_singular() で判定して、シングルページではないときだけ、非公開とかを表示しない。という設定にしてみました。

    そこで、上記のスニペットを改造させていただき、一覧表示のときに「非公開」の記事は表示されなくなるが、「下書き」や「非公開」のプレビューはできる。というコードを書いてみました。

    function parse_query_ex() {
        if (!is_super_admin() && !get_query_var('post_status') && !is_singular()) {
            set_query_var('post_status', 'publish');
        }
    }
    add_action('parse_query', 'parse_query_ex');
    

    こんな感じです。

    • シングルページのサイドバーとかに記事一覧だしているときとかは非公開が出ちゃうかも。
    • 固定ページをカスタマイズして記事一覧だしてたりするときも出ちゃうかも。

    【感謝】
    この記事を書くにあたって、下記サイトの記事に大変お世話になりました。
    http://d.hatena.ne.jp/deeeki/20090917/wp_publish_only
    有り難うございます。m(_ _)m

  • Chromebook(クロームブック)でFTP接続 その2。「Cloud9」をFTP接続でオンラインエディタとして活用する。

    Chromebookを使っていると、外出先でFTP接続をしないといけない局面がでてきます。
    そんなときは、、、ということで

    ChromebookでFTP接続できる。オンラインエディタ「ShiftEdit」
    をご紹介しました。

    今回はまた別のアプリを使った方法です。

    Cloud9をFTP接続でオンラインエディタとして使用する

    Chromebookを購入した直後に、せっかくだからChromebookで開発やりたいよね。てなノリでいろいろ探ってたら巡りあったオンライン統合開発環境「Cloud9」。これがすごいアプリでブラウザ上からWordpressだとかRailsだとかの開発環境が構築して、そのままガリガリコードをかけるという。さらに無料プランあり。な、とっても楽しいアプリなのですが、このCloud9、実はFTP接続してリモートサーバ上のファイルも編集できるのです。

    Cloud9でFTP接続の手順

    1. まずはCloud9にサインアップ。
    2. ダッシュボードを開きます。
    3. 新しくワークスペースをつくります。「CREATE NEW WORKSPACE」をクリックし、出てきたメニューから「Create a New Workspace」を選択します。
      Create a New Workspace
    4. Hosting: の項目で「FTP」を選択します。
    5. FTP情報を入力する画面が開くので、あとはアクセスに必要な情報を入力するだけ。
      Screenshot 2015-01-30 at 00.27.33
    6. 一応入力情報も書いておきます。
      • Hostname: サーバ名(ホスト名)を書きます。
      • Port: 特に特別なことがなければ21で大丈夫。
      • Username: 接続ユーザ名
      • Password: 接続パスワード
      • Initial Path: 一番最初に開きたいパスです。
    7. 全文入力したら「LOGIN TEST」をクリックして接続できるか検査して
    8. 最後は「CREATE」をクリックするとFTPでサーバにつながり、そこにあるファイルを「Cloud9」で編集できるようになります。

    使ってみての感想

    • 前回紹介した「ShiftEdit」に比べて動きが早い感じがする。
    • FTPでの接続ステータスみたいのが、画面下にいつもでています。
    • 複数人で同時に編集したりできるらしく、ちゃんと使いこなせば、もっと楽しくなりそう。

    セキュリティ的な問題

    FTPで接続しますから、やっぱりセキュリティ的な不安はありますよね。
    Cloud9のフォーラムで接続元IPアドレスを紹介していましたので、接続元IP制限をかけてみてはどうでしょうか。

    • 107.23.232.64
    • 54.236.78.114
    • 107.23.123.140
    • 108.59.80.73
    • 173.255.114.210
    • 23.236.51.71
    • 23.236.56.181
    • 23.236.53.189
    • 23.236.57.43
    • 23.251.146.16

    ※出典を書こうと思ったけどページを見失ってしまいました。Cloud9のページにあったのですが・・・

    まあ、私は上記を接続元として設定したところ、無事に接続元制限で接続できました。

    前回紹介した「ShiftEdit」もそうだけど、ブラウザだけでこんだけのことができるなんて、すごい世の中になったものです。

    楽しい毎日をありがとう。

  • 【続報】GCALDaemonを使ったAipoとGoogleカレンダーの同期でエラーについて、強力な助っ人が現れて無事同期できました。ネットって素晴らしい!の巻

    以前に

    GCALDaemonを使ったAipoとGoogleカレンダーの一方通行同期でエラー

    という記事をかいた後も、あいかわらず同期できなくて困っていますと、記事をみてくださった、ぐらさん様からコメントをいただきました。
    自家製のRubyスクリプトで動かしているとのこと。
    そして、ありがたいことに、ぐらさん様が作成したRubyスクリプトを頂戴することができました。

    そして・・・いろいろなれないサーバいじりなどをした結果、ついに同期することができました!

    というわけで、この喜びを多くの方に分かち合うために、ぐらさん様から許可をいただき、Aipo→Googleカレンダーへの同期のためのプログラムを公開させていただきます。

    それが、こちらです。↓↓
    ダウンロード: aipotogcal
    ※こちらは「ぐらさん」様より許可をいただき公開させていただいております。この場を借りて感謝を表明いたします。
    m( _ _ )m
    ※ご承知とは思いますが、使用は自己責任でお願いしますね。

    また、私が稼働させるまでの手順を下記に記述しました。
    参考になれば幸いです。

    Googleサービスアカウントの取得から秘密キーの入手

    このプログラムでは、ブラウザを介さずにGoogleのAPIにアクセスするために、Googleのサービスアカウントを取得する必要があります。

    1. Google Developers Consoleにアクセスする。
      https://console.developers.google.com/
    2. プロジェクトを作成→任意の名前とIDを入力して作成
    3. 作成されたプロジェクトから、APIと認証の「認証情報」を開く
    4. OAuthから「新しいクライアントIDを作成」→サービスアカウントを選択して作成
    5. 秘密キーパスワードが表示されるのでメモ(※注意。一度しか表示されません)(※1)
    6. 秘密キーの表示と同時にファイルがダウンロードされる。このファイルが「秘密キー」となるので保存(※2)
    7. 作成したサービスアカウントのメールアドレスなどが表示されるので覚えておく(※3)

    Googleカレンダーの設定

    Aipoから同期させたいGoogleカレンダーに、プログラムからアクセスが出来るようにします。

    1. Googleカレンダーにアクセス
    2. 同期させたいカレンダーを選択(もしくは作成)
    3. カレンダーの共有設定から、上記のサービスアカウントで作成された「メールアドレス」を共有に加える(私は「変更および共有管理権限」で加えましたが、ひょっとしたら「変更権限」だけでよいかもしれません)
    4. カレンダーの設定画面から「カレンダーのアドレス」の項目に表示されている「カレンダーID」を覚えておく(※4)

    プログラムの設定

    Googleカレンダー側には設定ができたので、次はAipo側の設定です。

    1. Aipoの動いているサーバに「aipotogcal」をアップロード(サーバの権限によってはAipoと別のサーバでも良いかもしれません)
    2. 同じく上記※2で保存した秘密キーファイルをアップロード
    3. 「api.yaml」を編集します。
    4. key_pass:上記※1の秘密キーパスワード
    5. key_file:上記※2の秘密キーファイルの場所を記述(サンプル:/usr/local/aipotogcal/************.p12)
    6. cal_id:上記※4のカレンダーID
    7. issuser:上記※3のメールアドレス
    8. timezone:通常は”Asia/Tokyo”で問題ないはず
    9. ical_uri:AipoのiCalのURL(通常は、https://********.***/aipo/ical/calendar.ics)のはず
    10. aipo_user:Aipoのユーザ名
    11. aipo_pass:Aipoのパスワード


    あとは、Rubyでちゃんと実行できるか確かめた上でCRONで定期実行させるだけです。

    設置時に躓いたことメモ

    ※私の場合はAipoサーバ環境に問題があり、AipoのHTTPレスポンスヘッダーに文字コード指定がないために
    from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
    というエラーがでました。本来はサーバ設定で解決すべき問題なのですが、そこまでの知識が及ばず…
    対策として、66行目あたりに
    ics.force_encoding(“UTF-8”)
    という記述を追加して無事動かしました。本来はサーバ側の設定でHTTPヘッダを適切に処置出来るようにするのが正解だと思います。

    ※実は一番苦労したのが私の環境にRubyが入っていなかったために、Rubyのインストールをするところでした。
    これはいろいろな環境があって一口に言えないためにあえて今回は書きません。
    下記等を参考にインストールしました。
    (Rubyインストールに参考になったサイト)
    http://d.hatena.ne.jp/yk5656/20140324/1396158118
    http://centos.bungu-do.jp/archives/000294.html

  • Chromebook(クロームブック)でメールに添付されてきた圧縮ファイルを解凍する

    Chromebookを使っていると、こんなときどうやれば?という局面に遭遇します。
    メールやスケジュールなどは、WindowsやUbuntuでもWebでやってましたから、普通に使う分には全く意識せずにつかえるのですが、ふとしたときに「あ、そういえばコレはChromeだけでできるのか?」って局面があります。
    でも、大体できちゃうんですよね。
    そんなこんなで、ますますChromebookが手放せなくなってきています。

    そんな、Chromebookを普段つかっていて、こんなときどうする?を解決するアプリを紹介していきます。
    これから使ってみようかという人の参考になれば幸いです。

    メールに添付されてきた圧縮ファイルを解凍して閲覧する

    Gmailから、GoogleDriveに保存して、ZIP Extractorというアプリをつかって展開します。

    手順

    1. Gmailの添付ファイルにある「GoogleDriveのマーク」をクリックしてDriveに保存します。
    2. 保存されるとGoogleDriveのマークがカラフルに変わりますので、それをクリックすると保存された圧縮ファイルが表示されます。
    3. 圧縮ファイルをダブルクリックすると圧縮ファイルの中身が閲覧できます。
    4. 展開する場合は、画面上部の「アプリから開く」を選択。ZipExtractorを選択します。
    5. するとZipExtractorが開きま、ファイルを開いてくれます。
    6. そのままのフォルダに展開したいときには、ExtractNowをクリック。
    7. 違うフォルダに展開するときには、Change destination folderをクリックします。
    8. 画面を見てもらうとわかりますが、ファイルを選んでそのファイルだけを展開することもできます。

    以上でGmailに送られてきた圧縮ファイルはGoogleDrive上で解凍・展開されました。
    ダウンロードとかしないでクラウド上で全部解決できちゃう非常にスマートな方法です。

    話は変わりますが
    最近まで、Chromebookの読み方は、クロムブックなのかクロームブックなのか今ひとつ自信がなかったので、Chromebookとしか書いてませんでしたがどうやらクロームブックのようですね。ブログにもそう書いていこうと思いました。

  • ChromebookでFTP接続できる。オンラインエディタ「ShiftEdit」

    ChromebookでFTP接続できる。オンラインエディタ「ShiftEdit」

    Web関連のしごとをしていると外出先でもサーバにアクセスしてファイルを操作しないと行けないことが結構あります。
    ChromeアプリのSSHクライアント「SecureShell」
    https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo
    などのアプリもあるのですが、レンタルサーバなどだとSSHで接続できなかったりすることもありますのでFTPで接続できる方法を探しました。
    これは実用的だな。というアプリを紹介します。

    ShiftEdit

    https://chrome.google.com/webstore/detail/shiftedit/lcgmndephhjcabhhjfcmncnhbmgbkpij
    ブラウザ上からFTPで接続してファイルを直接編集できるオンラインエディタです。

    使い方

    1. アプリをインストールするか、サイトにアクセスして、ユーザ登録をします。GoogleアカウントやFacebookアカウントでもアクセスできます。
      0
    2. ログインすると接続情報を新規に登録するための画面が開きます。
      3
      FTP接続をしようという人には直感的にわかる内容だと思いますが

      • Name:任意の名前
      • ServerType:FTPを選択(SFTPも選択できますし、GDrive(Googleドライブ)やDropbox(publicフォルダ)などオンラインストレージのファイルも直接開くこともできます)
      • Domain:FTPのホスト名(サーバ名)
      • Username:接続ユーザ名
      • Password:接続パスワード
      • Dir:FTPで開くディレクトリ(上記接続情報が正しく入力された状態で[Show]をクリックするとサーバ上のディレクトリから選択できて便利です。)
      • Web URL:アクセスするサーバの公開URL(LiveViewという機能があり、ファイル編集画面の隣にブラウザ表示できるのですが、そのためのURLだと思われます。WordPressなどのURLとディレクトリ構造が違う場合エラーになったりするので、入れなくても接続できます。)
      • Turbo mode:サーバ側にFTP用のプロキシサーバを手動でアップロードすることでアクセスを早くする機能のようです。これのレポートはまた後日に。^^;
    3. 最後にTestConnectionをクリックして接続が確認(Connection established)できたら、Saveします。
    4. するとサーバのファイルがサイドにエクスプローラー的なディレクトリ表示がされるので、あとは開いて編集して保存するだけ。保存することでサーバ上のファイルを直接編集できます。
      4
    • 複数のFTPサーバを登録しておけます。下記の三本線をクリックします。
      1
    • 「New Site」を選択すると、新しいサーバの登録画面が開きます。
      2

    感想とか

    • 接続が若干遅いので、がっつりコーディングするときにはストレスになるかも?。。でも、どちらかというとChromebookでFTPするときというのは、外出先などで少しだけ編集しなくちゃいけない時などがメインだと思いますので、我慢できる範囲だと思います。
    • Turbo modeというのがあり、サーバ上に自前のプロキシ(PHPで動作)をアップすることでFTPのやりとりを高速化することができるようです。(英語苦手なので間違ってたらゴメン)今度試してみたい気もします。

    セキュリティ的な問題

    やっぱり、FTPなのでセキュリティ面が心配ですね。IPアドレスによる接続元制限などはかけておいた方が良いと思います。
    サポートページ
    https://shiftedit.net/support
    こちらに、接続元IPアドレスはこれですよ。って書かれています。

    ShiftEditのFTP接続元IPアドレス

    • 54.235.66.128
    • 54.204.38.137
    • 54.197.226.18

    私の環境では、接続元IPアドレスとして設定したところ、今のところアクセス制限がちゃんとできているようです。今後変更になったりする可能性もありますので上記URL含めてチェックしていかないとですかね。
    ご使用のレンタルサーバに、接続元制限がかけられる機能がある方はお勧めします。
    ※考えて見ると、オンラインエディタなどには、テザリングやWifiなどと違い、IPアドレスが固定になるので、サーバ側でIP制限がしやすいという面もありますね。

  • Chromebookと相性抜群のCloud9が凄すぎてゲボ吐きそうになるレベル。

    Chromebookを大変便利につかわせていただいている毎日ですが、開発環境とかどうやろうか?といろいろ探しているうちに出会った Cloud9
    ブラウザからいじれるWebアプリ開発の統合開発環境とのことで、最初は、色物っぽいけどなかなか面白そな試みですな。なんて上から目線での試してみたけど、そのすごさに度肝を抜かれて、「この世に神はいた」って思えるくらいな今日この頃。

    これ、本当にすごいです

    まずは、こちらの記事を
    Cloud9でクラウド上にWordPressのテスト環境を10分で作成する方法、もちろん無料
    http://nelog.jp/cloud9-wordpress-test

    ほんとに10分あれば構築できます。

    今までは、打合せとかしているときに「あ、それならWoedpressにあのプラグインをたしたら実現できそうじゃね?」とか思っても、その場でレンタルサーバを用意したりWordpressインストールしたりとかできないので、「じゃあ、今度サンプルてきなの作ってきますよ」的に”宿題”になっていたのですが、Cloud9ならホントに10分あればWodpressのテスト環境が構築できますから、その場で「それって、こんな感じでどうですかね?」とプロトタイプを提出できるようになります。
    これは、ホントにすごいことで、今まで2回とか3回分の密な打合せが可能になります。

    1. こんなことできませんか?に対して
    2. 検索すると近いプラグインがでてくる。
    3. すぐにCloud9でテスト環境構築してプラグインをインストールしてみる。
    4. こんなでどうですか?とプレゼン。
    5. ここまでホントに15分程度

    なにより、ブラウザから全部できるので、私のChromebookからもサックサクに動きました。
    ここ数日、客先訪問のときはChromebook持ち歩いているので、かなり活躍してくれます。

    ファイルマネージャ、テキストエディタ、ターミナル、そして確認用のブラウザ、まで全部ついてこのお値段(無料!)ってすごすぎてゲボ吐きそう・・・
    Wordpressだけでなく、Railsやnode.jsなども試せるとなると、なんだかワクワク感すら感じてしまいますね。