STOF DOOS

へっぽこエンジニアのちまちま奮闘記

【DAY007】javascriptでURLドメインを指定してcookieの操作がどこまでできるのか

はじめに

そもそも、cookieドメイン指定や操作はしない方が良い。 理由については下の記事でよくわかる。

blog.tokumaru.org

けれども、時と場合によっては必要なこともある。

以前業務で調べたことを、覚書として残しておく。

追々調べなおして修正する予定。

前提

  • cookieのpath指定はすべて「/」である。
    • pathも変わるとさらにcookieの制約範囲が狭まるため。
  • javascriptcookieを与える

cookieの読み書き範囲の調査

1. トップドメイン(.com, .jp等)で指定してcookie付与は不可

document.cookie = "_testTop=hogehoge; path=/; domain=.com;";

=> 付与できない

2. ドメインで指定してcookieを付与した場合、指定した階層以下からは参照可能

参照可否の図

| 同一 | 上位 | 下位 |

| 〇 | ×  | 〇 |

現在の場所 test.aaa.domain.com

document.cookie = "_test=ttttt; path=/; domain=.aaa.domain.com;";

参照可能範囲

  • test.aaa.domain.com
  • tttt.aaa.domain.com
  • aaa.domain.com
参照不可
  • domain.com

現在いる場所のドメインと指定するドメインの場所が異なる場合、書き込み不可

現在の場所 test.aaa.domain.com

document.cookie = "_testAno=anotherdomain; path=/; domain=.tttt.aaa.domain.com;";

ドメインを指定せずにcookieを書き込むと、そのドメインからしか見ることができない

現在の場所 aaa.domain.com

document.cookie = "_testNoSetDomain=foobaa; path=/;";
IEの場合】、ルートドメインcookieが発行されるとサブドメインまで読み込むことができる。

① root.com/hogehoge.htmlで以下のように設定

document.cookie = "_sun_tes_no_set_domain=noDomain; path=/";
document.cookie = "_sun_tes_no_priod=setNoDomain; domain=root.com; path=/";
document.cookie = "_sun_tes_set=setDomain; domain=.root.com; path=/";

② sub.root.com/fugafuga.htmlでcookieを確認すると、すべての値を確認可能。

参考

【DAY006】疲れた〜〜!なので、おやすみなさい(小休止)

頭痛と腹痛で今日ダメな日です…orz

 

なので、オランダ語を1つ紹介して終わります。

 

moe

 

モ・エ??!

 

違います。これで「ムゥ」と読みます。

意味は「疲れた」です。

同時に「眠い」を表します。

 

疲れた = 眠くなる

眠い = 疲れている

 

という感覚がオランダ語圏の方にはあるようで、

ただなんとなく眠い時にこの言葉を使うと、

何にそんなに疲れたの?

の様な反応をされたことがあります。

 

しかし、眠いのは疲れているからだ、というのは真っ当な感覚だとも思うので、オランダ語圏の方の特有のものでは無いかもしれませんね。

 

【DAY005】the House of Representatives

最初に一言

辞書内の単語を目についたものから、ランダムに調べると思いもよらない単語に出会うので、結構楽しいものですな!

この記事の趣旨

  • Oxford英英辞典をランダムに開いて、新しい単語を開拓していきます。
  • 辞書の例文を翻訳することで語彙力向上を測ろうと目論んでいます。

what's that meant?

Representative | rèprɪzéntətɪv |

形容詞
  • 〈人・物などが〉 【集団の性質などを】典型的に表す, 代表する; 代表的な, 典型的な «of»
  • 〖名詞の前で〗代議員の; 代議制の
  • 〖be ~ of A〗〈図・記号・物などが〉A〈物〉を象徴している, 描いている
名詞
  • «…の/…へ派遣された/…からの» (選任された)代表者 «of, for/to/from»
Oxford英英辞書の説明書き詳細

今回、例文らしい例文がなかったので、説明文を訳します。

the House of Representatives

the largest part of Congress in the US, or of the Parliament in Australia, whose member are elected by the people of the country

 

代表者の家

巨大な部分、米国議会や、オーストラリア議会の、彼らは、国民によって選ばれているメンバーである。

一気にグワッと訳せないので頭からふわっと訳していくとこうなりました。

では改めます。

代表者の家

米国議会やオーストラリア議会のそのメンバーは、大部分が国民によって選出されている。

つまり、代表者の棲まう家、とは

はぁはぁー。なるほど。 国民によって選定された人々が集う、国家の議会は「代表者がいる家」として表現されるわけですな。

わからなかった単語

Congress | kɑ́(ː)ŋɡrəs|kɔ́ŋɡres |

  • [名詞]
  • (代表者の集まる正式な)会議, 学会, 大会
  • 米国議会

Parliament | pɑ́ːrləmənt |

  • [名詞]
  • 〖集合的に; ⦅主に英⦆では単複両扱い〗議会, 国会

elect | ɪlékt |

  • [動詞]
  • 〈人が〉(投票によって)〈大統領・知事・市長など〉を選ぶ, 選出する
  • ⦅かたく⦆〈方法など〉を決定する *〖~ to do〗…することに決める

【DAY004】He smiled but his smile was not RECIPROCATED.

what’s that meant?

 本日の単語はこちら。

RECIPROCATE
  • 読み | risɪ́prəkèɪt |
  • (<人が>同じ行為[感情])を相手に返す、返礼する、相手に感じる
  • 〜で報いる ~with
  • <物が>往復運動する

 He smiled but his smile was not RECIPROCATED.

彼は微笑んだ、しかし彼の笑みは返されたものではなかった。

 文はシンプルで難しいものではなさそうだが、いまいちピンとこない。

意訳してみれば、彼の微笑みは私の気持ちと同じものではなかった。と捉えられるのではないかと思うけれども、正解がわからない。

教えてgoogle先生!

彼は微笑んだが、彼の笑顔は往復しなかった。

いや、余計意味がわからない…!!!

 

うーん。これは誰か英語が得意な方にお聞きしたいところですね。

【DAY003】jQueryでtable要素のtd項目を動的に追加する

やりたいこと

jQueryでtable要素のtd項目を動的に追加する

具体的には、 動的に増やしたtbody内に存在する、select内容によって表示するtd項目を動的に切り替えたい

html

<table id="test-contents">
-- (略) --
<tbody>
    <tr>
         <td>
             <select class="select-option">
                  <option value="1"></option>
                  <option value="2"></option>
             </select>
        </td>
        <td display:none>1を選んだら表示するよ</td>
        <td display:none>2を選んだら表示するよ</td>
        <td class="addrow">+</td>
    <tr>
</tbody>

addrow のscriptは割愛。

動作としては、「+」を押下することで、tbodyが下にcloneされる。

結果として↓になる。

<table id="test-contents">
-- (略) --
<tbody>
    <tr>
         <td>
             <select class="select-option">
                  <option value="1"></option>
                  <option value="2"></option>
             </select>
        </td>
        <td display:none>1を選んだら表示するよ</td>
        <td display:none>2を選んだら表示するよ</td>
        <td class="addrow">+</td>
    <tr>
</tbody>
<tbody>
    <tr>
         <td>
             <select class="select-option">
                  <option value="1"></option>
                  <option value="2"></option>
             </select>
        </td>
        <td display:none>1を選んだら表示するよ</td>
        <td display:none>2を選んだら表示するよ</td>
        <td class="addrow">+</td>
    <tr>
</tbody>

当初詰まったポイントは、class="select-option" をイベントのトリガーにしているため、上方のtbodyにしか結果が反映されない、というところ。

script (jQuery)

closestが全て解決してくれた
$('.select-option').change(function() {

    if($(this).closest('option:selected').val == "1") {
        $(this).closest('tr').children('td:eq(1)').show('slow');
        $(this).closest('tr').children('td:eq(2)').hide(1000);

    } else if ($(this).closest('option:selected').val == "2") {
        $(this).closest('tr').children('td:eq(2)').show('slow');
        $(this).closest('tr').children('td:eq(1)').hide(1000);        
    }
});

tbodyが追加される際に、data- 属性を追加しようとかごちゃごちゃ考えていたけれど、closest で直前の要素を拾ってくる方がはるかにスマートでした。

うろ覚えで書いているので、間違っている可能性もある。 明日確認します。

また、さらにスマートな手法がありましたら、ご教授いただければ幸いです!!!

【DAY002】集中力がない人、継続力のない人の勉強法

はじめに

こんな人に試してみてほしい

  • 試験にむけて勉強をしようとする時、机にむかってもなかなか筆を動かせないことが多い人
  • 教科書のページを開いただけで気力が尽きてしまう人
  • 少し頑張ってやり始めても、到底1時間とか集中できない!!という人

これら全部に当てはまるのが私、ery。

1時間だけ!30分だけ!と自分に言い聞かせて取り組むも、すぐに眠くなってしまう。

または〇〇ページまで今日はやろう!と思っても集中してできないために、結局達成できない。

集中できないなら仕方ないと別のことをしてしまえば、はい、1日がそれで終わります^^ FGOイベント回るんじゃー

集中力がない人、継続力のない人の勉強法とは

超短期的に勉強する

継続して集中できない状況を打破するためには、時間を超短く区切ってやればいい!

アニメだって、15分程度で小休止がはいるんだ。15分くらいならきっとできるはず!

なんて、私ごときが単純な思いつくこと。他の人が気づいていないわけがない。

ちょいと調べてみると、ありました。ちゃんと集中力について研究されています。

集中力の維持と長期的な学習効果につながる方法(東京大学・池谷裕二教授の見解)

 15分タイマーを活用しよう

気持ちをリフレッシュ

ざっくり捉えれば、15分ごとに気持ちを、頭を一瞬でもリフレッシュできれば集中力は継続する

タイマーを15分にセットすることで、15分毎に脳へ聴覚の刺激が伝わるようにすればいいのです。

 私は音楽を聴きながらは一切できない人間なので、静かな空間でタイマー音だけ響く状況はとても有効でした。

例え音楽を聴きながら派の人でも、タイマー音を目覚ましのようなあまり心地よいとは言えない音を選べば問題ないかと思います。

達成しやすい目標設定

15分で区切ることによるもう一つの利点。

それは、ほぼほぼ達成できる目標を設定できること。

15分でできることは限られているので、その範囲内で目標を立てようとするとだいたい達成できるものになります。

例えば、

1時間で2km歩く!

と考えるより

15分で500m歩く!

と考える方がゴールが見えている分、取り組みやすいですよね。

仮に達成できず、490mまでしか達成できなかったとしても、9割以上は歩いています

ほとんど達成できているようなものなので、

次のターンで少しだけ早く歩けばいいかな?と調整しようという気持ちにもなりやすいです。

できなかった!!と、ショックを受け、やる気がなくなることが減少すると思いませんか?

あと少し…!という達成への期待感

9割達成、となると、むしろあと少しであったという事実に悔しくなり、次こそは15分で達成してやろうという気概すら生まれます。(個人的に)

この気持ちが、次の15分へと自分を推し進め、気づけば1時間が経過しているのです。

人間、期待感と達成感とあと少しという悔しさが行動へとつながるものです。(ガチャとかガチャとかガチャとか)

その心理を上手に勉強に組み込む方法が15分タイマー勉強法であると私は行き着きました。

実際に取り組んでみた

15分タイマーをセットして、応用情報技術者試験対策を昨日(2018/08/14)から始めました。

8/14の実績
  • 15:45 ~ 16:00  教科書 2ページ分
  • 16:00 ~ 16:45  教科書 5ページ分
  • (夕飯準備と夕飯)
  • 17:45 ~ 18:45  教科書 7ページ分
  • 18:45 ~ 19:00  過去問 5問
  • 19:00 ~ 19:45  過去問 8問と13問分の正誤チェックと理解できなかった箇所の復習

計 3時間

8/15の実績

10:00 ~ 11:00  過去問 9問とその正誤チェックと正誤にかかわらず全体復習

11:00 ~ 12:00  ブログ記事作成

12:30 ~ 13:15  過去問  9問

15:00 ~ 16:30  過去問  17問

計 3.25時間

 

教科書 14ページ

過去問 48問(誤答対応済)

 

全然集中できず今の今までサボってきた自分が初回から3時間勉強に向き合えたのはなかなかの成果だと思います。

ただし、これを休みの日以外でできるかが鍵になりますね。

本当なら休みの日ぐらい6~8時間くらいやるべきなんでしょうが…世の受験生を見習いたい…

 

無理せず、15分刻みで目の前の敵を処理していくぞー!

【DAY001】 Troops have been sent to PROTECT aid workers against attack.

what’s that meant?

1. わからない単語を調べる

troop | truːp |

[名詞] 軍隊、軍勢、兵士たち / 一団、一群、大勢、多数。

  • a troop of ants
  • 蟻の群れ

protect | prətékt |

[動詞] 〜を保護する、守る、かばう

  • protect your skin from becoming dry
  • 肌が乾燥しないように守る

aid | eɪd |

[名詞] 助け、援助、支援、救援(物資)

行政、ジャーナリズムに用いられ、一般にはhelp, assistance, supportが好まれる

  • deliver aid to refugess
  • 難民に救援物資を送る

2. 文章として訳する

Troops have been sent to protect aid workers against attack.

軍隊は送られている。攻撃から支援労働者を守るために

微妙である。

“aid workers” が熟語として存在していそうな気がしたので調べてみると、やはりそうであった。

“aid workers”   (国連など国際的な)救援隊員.

以上を踏まえてもう一度文章に改めてみよう。

軍隊は、攻撃から救助隊員を守るために送られている。

出典: Oxford Advanced Learner’s Dictionary  — protect

訳が美しく正しいかはさておき、間違ってはいないだろう。

何かお気付きの方がいらっしゃいましたら、コメントで教えていただければ嬉しいです。

この記事の目的は?

ここまで書いて初めて目的を明示しよう。お察しではあると思うが、

ずばり英語の学習。

やりたいこととしては、

oxford英英辞典を適当に開いて、目についた単語を無作為に覚える。

ということ。

記念すべき第1回目は「protect」

protectの意味はもともと知っているが、英英辞典に載っている例文を理解できるかどうかはまた別問題。

例文に目を向けることで、その単語がどのような場面で使用されるのか具体的に覚えることができる。なおかつ文章になっているため、当然別の単語の意味も知らなければならない。

結果として複数の単語を一度に記憶できるという寸法だ。

週に2、3度このような記事をあげていこうと思う。

[DAY001]ってことは毎日更新するの?

毎日更新します。(※英語学習オンリーではない)

英語だったり、蘭語だったり、資格試験勉強の進捗だったり、ただの日記だったり…

とにかく毎日更新することを目標にやっていきます。

以後お見知り置きを。記入者のスペックは以下にぐだっと陳列しておきます。

ERY

  • 社会人3年目
  • 文系4大卒のSE
  • TOEIC 430 L280/R150 (2018/06)
  • 上記の通り、こりゃマズイと思い勉強を本格的にしようと決意 (2018/08)
  • 2018/12 にもう一度受けて700点取れるようにしたい。
  • 2018/10 に応用情報技術者試験受ける予定。一発合格したい。2018/08/14勉強開始
  • 技術者と名乗るのが恥ずかしいレベルのひよっこエンジニア
  • せめて恥ずかしくないレベル(エラーの考慮、性能向上、セキュリティ向上を意識できる)になるのが2019年5月ごろまでの目標
  • 文章能力鍛えたい

ここまでの記述時間 40分