横スワイプで画面が戻らないようにする

ブラウザで横スワイプで画面が戻ってしまうのが不便だと感じておりました。

ただ横にスクロールして見えてない部分を確認しているだけなのに、横にスワイプとみなされて戻ってしまう事が結構ストレスでした。

(特にGitHubのコメント欄でコードが横長になっており確認するために横スクロールする事が多かった)

そこで横スワイプで画面が戻らないよう設定したらとても快適でした!!

 

 

方法

システム環境設定 →トラックパッド → その他のジェスチャ → ページ間をスワイプのチェックを外す、という作業だけでした!!

 

 

感想その他

作業環境を快適に整えるのは大事ですね!!

大事な仕様を考えている時にストレスが発生するととても良くないので、これからも作業が快適になる系の改善をしていきたいです!!

 

pcではなくスマホツイッターアプリでも似たようなストレス(横スワイプする気ないのにされて画面が戻ってしまう)に見舞われる事があるのでこちらも設定したいですw

&、-、select、reject

今日使ったArrayクラスのメソッドについてメモしておきます。

何回も使ったことあるのにいつも記憶が曖昧で調べている気がしますw

 

&

複数の配列を比較して重複してる値を返してくれます。

 

[1,2,3,4,5,] & [2,3,4,7]

=> [2,3,4]

 

-

2つの配列を比較し、前者の配列のうち後者に含まれている値を除いてくれます。

 

[1,2,3,4,5,] - [2,3,4,7]

=> [1,5]

 

 

select

 全ての要素にブロックを実行し、 trueとなった要素のみの新しい配列を返してくれます。
(select! だと新しい配列を返すのではなく、レシーバー自体を変更します。)

 

 

array = [1,2,3]

new_array = array.select { |i| i == 2 }

p array => [1,2,3]

p new_array => [2]

 

 

 reject

全ての要素にブロックを実行し、 trueとなった要素を取り除いて新しい配列を返してくれます。

(reject! だと新しい配列を返すのではなく、レシーバー自体を変更します。)

 

array = [1,2,3]

new_array = array.reject { |i| i == 2 }

p array => [1,2,3]

p new_array => [1,3]

 

 

 

感想その他

いい加減ぱっと使いこなせるようにならなくては。。。

 

 

文字集合と符号化方式

文字コードの構成要素には、文字集合、符号化方式の2つがある事を昨日知りました。なので今日は文字集合、符号化方式について調べました。

 

文字集合とは

表現できる文字の集合です。

 

符号化方式とは

文字をコンピュータ上でどういった数値で表現するかを定義したものです。

 

 

Unicode文字集合


UTF-8, UTF-16Unicodeの符号化方式
UTF-8は8bit単位、UTF-16は16bit単位で表現されます。

 

感想その他

前職でエクセルで文字化けしないCSVを出力する機能を作った際に文字コードについて少し調べましたが、文字集合、符号化方式の2つの違いをよくわかっておりませんでした。

知れて良かったです!

 

 

 

文字コード

 今日は文字コードについて少し調べました〜

 

文字コードとは

文字に数値を当てはめたものです。

 

 文字コードの種類
  • ASCII

アルファベット、数字、その他記号を表現できる。7ビットで1文字を表現できる。

 

1文字2バイトで表現されます。

ASCIIで表現できるものに加え、ひらがな、カタカナ、漢字が使えます。

 

世界で使われる全ての文字を共通の文字集合にて利用できるようにしようという考えで作られた文字コードです。

はじめは1文字2バイトでしたが足りなくなり、3バイト、4バイトと拡張されています。

 

何でいろんな種類があるか

以下のような歴史的な経緯があるためだそうです。

アルファベットを1バイト以下で表現するASCII誕生

→ アルファベット意外にも対応するため2バイトの文字コードが誕生

→ 互換性を保つために複雑化

 

 

感想その他

UnicodeUTF-8とがごっちゃになっているのでその辺りも整理したいです。

 

 

アクティブレコードでのトランザクション

昨日はSQLでのトランザクションについて書いたので、

今日はアクティブレコードでのトランザクションについて調べてみました!

 

 

書き方

 以下のように書くことができます。

① モデル.transaction do
② DBに変更を加える(updateやdeleteなど)

③ end

④ 上手くいった場合の処理

⑤  rescue => e

⑥  失敗した場合の処理

例外が時発生した場合にROLLBACKが発生するので、

モデル.transaction do ~ endの中の処理は例外を発生させるように書かないといけないようです。

(saveじゃなくてsave!とかく)

 

 

感想その他

アクティブレコードでのトランザクションは例外処理とセットになっているため、

モデル.transaction do ~ endの中の処理で例外を発生させるように書くことを気をつけなくてはと思いました。

 

 

 

 

トランザクション

トランザクションが何かということは書籍や記事を読んで知っていたのですが、先日初めて業務で使う機会があったのでメモしておこうと思います!

 

 

 トランザクションとは

一連のまとまった処理のことです。

処理の途中までしか実行されなかったらまずい処理などで使われます。

 

 

やり方

 以下のように、START TRANSACTION; ~~ COMMIT; でまとめたい処理を括って実行します。

① START TRANSACTION;
② DBに変更を加える(UPDATEやDELETEやCREATEなど)

③ 上手くできたか確認(SELECT実行したりして大丈夫であればCOMMIT、失敗していたらROLLBACKして①②の処理をやり直す)

④ COMMIT
;

 

 

① START TRANSACTION;

② UPDATE `reviews` SET `rate` = '1' WHERE `rate` = 0;

③ SESELECT *
   FROM 
`reviews`
   WHERE 
`rate` = 0;

④ COMMIT;

 

 

感想その他 

手を動かす前に本や記事で概要を知っておくのは大事だなと感じました。

 

 

 

HTMLで入れ子のリスト

 

マークダウンでよくあるような入れ子のリストをHTMLで作りたかったのですが、以下のやり方では上手くいきませんでした。

 

<ul>
  <li>リスト</li>
  <ul>
    <li>入れ子リスト</li>
    <li>入れ子リスト</li>
  </ul>
</ul>

 

 

 

調べてみたところ、以下のように親となるリストの閉じタグを入れ子リストの後に書かなくてはいけないようでした。

<ul>
  <li>リスト
  <ul>
    <li>入れ子リスト</li>
    <li>入れ子リスト</li>
  </ul>
  </li>
</ul>

 

 

 

感想その他

マークダウン便利だなあと感じました。