読者です 読者をやめる 読者になる 読者になる

webプロダクトいんふぉ

webの気になった情報を発信中!!

SlideShareにアップしたら文字が消えた

keynoteで作成したスライドのテキストがSlideShare上で消える

結論から言うとフォントの種類の問題だった
macにデフォルトで入っているヒラギノフォントを使っていたから表示できていなかった

対処法

1、keynote上ではスライドを作成せずに、画像として切り出したものを使用する
2、使用してもいいフォントを使う(把握仕切れていない)

フォントにこだわりがある人は1を使用するしかない。フォントにこだわりがない人は、下のURLからmigmix-1p-20150712.zipを選んで自分のPCにインストールすれば問題ない(自分はこれで対応した)
https://ja.osdn.net/projects/mix-mplus-ipa/releases/

ローカルサーバを他のPCで確認(共有)するには?

ローカルサーバの立て方

ローカルサーバを立てるには、xamppを使ったりといった方法があるが、
今回はコマンドとphpを使って行う。
rubyでもpythonでも可能

ビルドインサーバの使用

ビルドインサーバを使用するには、phpのバージョンが5.4.0以上が必要になる。
ターミナルもしくはコマンドプロンプトで下記のコマンドを打ってみて、バージョンが古い場合にはアップデートしてください。

$ php -v

phpインストール方法

windows
mac

インストールが完了したら、下記のコマンドを実行してサーバが立ち上がるか試してみましょう
下記のようになったら、http://localhost:8000にアクセスして、表示できたら成功です。

$ php -S localhost:8000
PHP 7.0.12 Development Server started at Mon Feb  6 18:39:08 2017
Listening on http://localhost:8000
Document root is /Users/xxxxxx/Desktop/xxxxxx
Press Ctrl-C to quit.

他の人にも共有する

localhostのままでは共有できないので、IPv4アドレスを使用します。
windowsの方はコマンドでipconfigとすると
f:id:front-end-engineer:20170206184442p:plain
のような画面が出てきます。使うのはIPv4アドレスと書かれている数値の部分です(xxx.xxx.xx.xxx)
macの方は、スタートメニュー → システム環境設定 → ネットワーク → Wi-Fi
の中にあるコンテンツ部分に記載されているIPアドレスを使用します。
先ほど、localhostと書いた部分をIPアドレスに置き換えます。
※サーバを止めるには、Ctrl + c で止まります

$ php -S 192.168.1.181:8000
PHP 7.0.12 Development Server started at Mon Feb  6 18:52:17 2017
Listening on http://192.168.1.181:8000
Document root is /Users/xxxxxx/Desktop/xxxxxx
Press Ctrl-C to quit.

複数人でアクセス

Listening on http://192.168.1.181:8000
となっているURLにアクセスしてみて無事にアクセスできたら別の端末でも同じURLにアクセスしてみてください。
複数人でローカルサーバが見えるはずです。
※同じwifiもしくはルータをお使いください。そうしないとIPアドレスが合致しないためwebページが見れません(ローカルサーバを立てた人のみしか見れない)。

HTMLが絡んだPHPのコードをコメントアウト

コメントアウトの仕方

PHPコメントアウトの仕方には3つあります

//を用いる

<?php
  echo "hello world!"; // hello worldを出力
?>

コメント範囲を/**/で囲う

<?php
  $a = "hello world!";
  if(!$a.empty) {
    echo $a;
  }
  /*else {
    echo "$aが空です";
  }
  elseは実行しない*/
?>

#を用いる(非推奨)

//と同じような意味なのでこちらは使用しない

<?php
  echo "hello world!"; # hello worldを出力
?>

本題のHTMLが絡んだPHPのコードをコメントアウト

以下のコードをテキストエディタのショートカット(Ctrl or Command + / )を利用してコメントアウトしてみます。

<?php
  <option value="2016年9月10日 18時~ 東京"
    <?php echo (isset($post['日時']) == '2016年9月10日 18時~ 東京' && $post['日時'] == '2016年9月10日 18時~ 東京') ? 'selected="select"' : '' ; ?>>東京 9月10日 18時~
  </option>
?>

コメントアウトした結果は以下のようになり、HTMLだけがコメントアウトされPHPコメントアウトされていないためにエラーの原因になります。

<?php
  <!-- <option value="2016年9月10日 18時~ 東京"
    <?php echo (isset($post['日時']) == '2016年9月10日 18時~ 東京' && $post['日時'] == '2016年9月10日 18時~ 東京') ? 'selected="select"' : '' ; ?>>東京 9月10日 18時~
  </option> -->
?>

エラーを起こさないためにはHTMLを含んだコードをPHPの一部とみなして、PHPの複数行コメントアウトを使用すれば両方のコードがコメントアウトされます。

<?php
  /*
  <option value="2016年9月10日 18時~ 東京"
    <?php echo (isset($post['日時']) == '2016年9月10日 18時~ 東京' && $post['日時'] == '2016年9月10日 18時~ 東京') ? 'selected="select"' : '' ; ?>>東京 9月10日 18時~
  </option>
  */
?>

一行だけであれば、//で対応しても問題ありません。HTMLが絡んだPHPのコードをコメントアウトをするときには、PHPコメントアウトを使用するように意識すれば戸惑うこともなくなるはずです。

MacBook Proの2016モデル

iPhone7

iPhone7の予約開始から2日経ちましたが、皆さんは既に予約しているのでしょうか。自分は今回見送っています。felica対応は嬉しいけれども、Apple Payに対応しているモノが所有しているやつと合わなかったのが主な理由(Suicaのみ対応とか)

現代モデルから16Gが廃止になってaplle製品が色々と値下がりしましたね。iPadProとか最上位モデルだと3万円安くなってるし、iPadProも春くらいに新型モデルが出るとか言われてますけど、我慢するか買うかは人それぞれ何で個人の采配に任せるってことで

MacBook Pro

そんなこんなで自分が期待しているのは、macOS Sierraのリリースは現地時間9月21日ということで、MacBook Proの発売日は10月に来るのかなぁ〜と予想を立てながら待っています。今使っているMacBook Proが悲鳴をあげていて、そろそろ出てくれないときついので、Appleには切にお願いしたいと思っています!今の現行モデルを買うのは負けた気がするので、それだけは選択肢としてありえない。

先日のスペシャルイベントでも期待していたので、かなり残念でした!iPhone7の発表の後MVが流れた時の絶望感は今でも思い出せます(つい先日ですが)

MacBook Proが出れば、IT界隈であればiPhone7の発表よりも盛り上がることは間違いなしと思っているので、続報を待ちましょう!!

Rails標準のO/RマッパーであるActive Recordとは?

O/Rマッパー

Object/Relatinalの略で、リレーショナルデータベースとオブジェクト指向言語との橋渡しを受け持つライブラリです。

そもそも、アプリケーション(フロント)側で使用するオブジェクトモデルと、データベースが利用するリレーショナルモデルは決定的に構造が異なるため、フォームから受け取った値などをオブジェクトから一つ一つ取り出したりといった手順が必要でした。

単純な作業ではあるが、上記の手順などがアプリケーションコードの半分以上を占めていたと言われています。

このようなコードの冗長化を解消するために、オブジェクトモデルとリレーショナルモデルのミスマッチを解消するためのツールです。

例えば、usersテーブルみたいなのがあり、下記のようなカラムを用意してあげます。

  • id
  • email
  • tel
  • password

そうしたら、上記のカラムに対応するオブジェクトを用意すれば、

{id: 1

email: aaaa@aaa.com

tel: 000-0000-000

password: password}

このままデータベースに登録することができます。つまり、オブジェクトを分解してidはidカラムに対応しているというような設定が必要なくなります。

Acrive Record

Active Recordを利用することで、リレーショナルデータベース(Excelのような表形式のデータ)をあたかもオブジェクトであるかのように操作ができるようになります。

その上、基本的にはsqlコマンドを記述する必要がありません。sqlにはMySQLPostgreSQL毎に一部書き方が違いますが、O/Rマッパーは内部的にその差異を吸収してくれるので、接続先のデータベースを変更してもアプリケーションへの影響が最小限に抑えられます。