投稿

ラベル(メモ)が付いた投稿を表示しています

英語弱者が英語を話せるようになるまで Day5

イメージ
知らなかったこととかのメモ。 テーマ:Announcing a Pay Cut 知らなかった語彙 知っていたけど普段使えていない表現 思いつかなかったけどこう言うことを伝えたかった 知らなかったこととかのメモ。 テーマ:Announcing a Pay Cut 給料カットを報告するときの表現をメインに勉強するトピック。 なんか良くない話題が多いがしょうがない、ビジネスだし。 知らなかった語彙 The company is in the red 意味:[会社の]赤字である 赤字、と red でそのままだなと思った。 確かにビジネス以外では使わないし、単純に白井なかったので要復習。 As soon as we break even, we will get your salaries back to where they were. ニュアンス的には利益が出始めたら給料戻すよ!ってことなんだろうけど、しっくり来なかったからDeepLにかけてみた。 「損益分岐点に達した時点で、皆さんの給料を元に戻します。」 ・・・ 損益分岐点でいいのか・・・??? We are forced to impose a salary reduction. 意味:「給与の減額を余儀なくされている。」 給料の減額は同じような意味で cut your pay も使われていた。 ここら辺の語彙には敏感になっていた方が良さそう。いや真面目に。 知っていたけど普段使えていない表現 in an attempt to V 意味:「〜する試みで」 try to ~とかで誤魔化しがちだけど一辺倒になるのは良くないのでここら辺も覚えておきたい。 despite/is sprite of~ 意味:「~にも関わらず」 大体上手くいってない時に使ってるイメージ。 受験でも結構出るような語彙なのにあまり使ったことないな・・・ ちなみにレッスン中では Desipite all of your efforts ~ という形で出ていた。 まるで死刑宣告みたいだぁ・・・ I am afraid~ 意味:「残念ながら〜」 これも良くないことを伝える時に。 ポジティブな事ばかりではないのだからそういう時にどう伝

英語弱者が英語を話せるようになるまで Day4

イメージ
知らなかったこととかのメモ。 テーマ:Firing an Employee そういえば更新日が迫っている時にシステムエラーが何度か続いたのでレアジョブからDMMに切り替えました。久しぶりに英会話記事。 といってもメモ程度なので役に立つかは分かりません。 従業員を解雇するときの表現をメインに勉強するトピック。 知らなかった語彙 cut to the chase 意:[ズバリと]要点を言う。 本文の中では「I’ll cut to the chase.」と言う書き方がされていた。 口語的な表現っぽいので要復習。 severance package 退職金。講師に質問したら解雇される時にその月の給料とその次の給料とか出たりするらしい。解雇されることがない環境でしか仕事をしていないから聞き馴染みがなかったけどそういうものなのか… We wish you well in your future endeavors. endevors って今までの英会話で本当に一回も使ったことないかもしれん。 そういえば感謝の 「We appreciate the contribution you have made to the company.」 とか 「We appreciate all the hard work you did for us.」 みたいなのはいったとしても幸運を祈る、みたいなのってあまり(個人的な)語彙としては存在しない気がする。 知っていたけど普段使えていない表現 What am I supposed to do now? あまり使っていなかったが、考えてみれば使えるシチュエーションが多い気がする。 ここで覚えて今後使えるようにしたい。 There is no easy way to say this. 申し訳ない時の表現。 前置きとしてビジネスシーンで使えるので覚えておいた方が良さそう 同様に「This is not an easy task for me to do.」 も使える。 Considering your performance… your 以下は何でもいいけど原因を伝えるときに有用っぽい。 思いつかなかったけどこう言うことを伝えたかった Have you eve

for文を使うかWhile文を使うかの話

イメージ
どっちでもいいじゃん、そう思っていました for文とWhile文を使うシチュエーションについて深く考えたことがなかったのです。 正直できることにほとんど差がないし すると、 コーディングを支える技術――成り立ちから学ぶプログラミング作法 を読んでいるときにどちらも一緒ならばfor文の方が読みやすいよ!と書いていたので確かに!と思ったのでメモ。 そう述べているメインの理由として例を見ながら考えてみます。 C言語でwhile文が要素が以下のように散らばるのに対して、 i = 0 while ( i < N ) { printf ( "%d\n" , i ) ; i ++ ; } for文では以下のような文法のため、一塊の処理として読んだ時に1度で理解しやすくなる、というものでした。 for ( i = 0 ; i < N ; i ++ ) { printf ( "%d\n" , i ) ; } チームで開発する以上、何度も読み返すような例は良くない。 何より自分ですらどういった意図を持ってそのコードを書いたかなんて忘れてしまうのだから簡潔にかけている方がいいですよね。 確かにその通りだと思ったので今後はよっぽどの理由がない限りチーム開発では繰り返し処理をfor文で書くことにしようと思いました。というお話。

【メモ】Swiftの@State

イメージ
@Stateってなんぞや と言う話。 ただのメモなので基本の当たり前のことについて書いておく。 まあ更新可能な変数を宣言したい時につけとけばそう言うものとして扱ってくれるんだろうなぁ、程度のイメージだった。 ただ、知らなかったのはこの値を更新するたびに body を更新、画面を 再描画 するということ。 Swift初期のこととかよく知らなかったけど、この仕組み自体 Swift5.1 で追加されたものらしい。 そもそも論としてstructが基本的に更新不能と言うことを考えれば何かしらの回避可能な仕組みがあって当たり前だろう、ということになりそうなものだけど新しい事を学ぶ時ってインプットが多くなりすぎて詰め込む方に意識がいってしまいすごく今更なメモになった。 ちなみにひとまず動かしてみた例がこれ。 トグルボタンを用意して状態出力するもの。 ソースは ここ 。

SwiftUIのViewModifierについて

イメージ
初心者向け 開発者定義のViewModifier 初心者向け の記事。 SwiftUIではViewでUIの要素を指定し、ViewModifierで要素のレイアウトを整えていく。 その書き方はそれぞれの要素に対して // // ContentView.swift // Modifier // // Created by kuehar on 2021/07/01. // import SwiftUI struct ContentView : View { var body : some View { Text ( "Hello, world!" ) . padding ( ) } } struct ContentView_Previews : PreviewProvider { static var previews : some View { ContentView ( ) } } プロジェクトを作ったときはこういう形式でコードが生成されるが、このコードの中の .padding() が実際のViewModifer。 Previewで見てみると最初はこんな感じだが、 例えば .padding(bottom) に変えてみると、 少しだけ Hello, World! が上に動いている。非常に分かりづらいが。 こういった形で各要素を修飾することによって要素の内容を変えていく。 開発者定義のViewModifier 同時に、開発者側で定義する再利用可能なViewModifierを作成できる。 開発者でどのビューにも適用できる再利用可能なViewModifierを作成したい場合に用いるもので、いくつかのViewModifierを組み合わせて新しいViewModifierを作成することができる、というもの。 例えば Apple公式のViewModifier のドキュメントでは以下のようなViewModifierを定義し、使用しています。 // // ContentView.swift // Modifier // // Created b

Nuxt.jsを短期間でFirebaseにデプロイしてCircleCIで自動デプロイをするところまでを設定するマニュアル

イメージ
楽をするのは良いことだ 環境 構築 Firebase Nuxt.js 楽をするのは良いことだ ということで、個人的に好きで使っているNuxt.jsをFirebaseにデプロイし、その後Githubにプッシュするたびに自動的にデプロイされるように設定するまでをこの記事では解説しておきます。 Firebase使ってみた こちらの記事を参考にさせていただきました。 環境 OSX Catalina npm version6.14.6 node.js v12.18.4 構築 Firebase まず Firebase にログインします。 Googleアカウントが必要となるので持っていない方は取得してください。 こちらのページにアクセスしたら使ってみるをクリックし、以下の個人のプロジェクトを管理するページに移ってください。 そしてプロジェクトを追加をクリックし、任意のプロジェクト名を設定し、プロジェクトを作成してください。 これでプロジェクトを作成できました! ひとまずターミナルを開き、以下のコマンドを使ってFirebase CLIをインストールしておきましょう。 $ npm install -g firebase-tools そしてついでにログインをしておきましょう。 $ firebase login 次はNuxtプロジェクトを作成し、Firebaseとつないでデプロイしてみましょう。 Nuxt.js mkdir firebase cd firebase vue init nuxt-community/starter-template sample こちらでfirebaseディレクトリ内にNuxtのテンプレートが作成されました。 そして次にfirebaseとつなぐ必要があるので以下のコマンドをターミナルで実行してください。 また、ここではHostingを選択してください。 $ firebase init MacBook-Pro sample % firebase init ######## #### ######## ######## ######## ### ###### ######## ## ## ##

SwiftのCoreDataってなんやねんって話

イメージ
忘れることが多いので 逐一メモしておく。 間違えている場合は親切な方が指摘してくれると思う。 で、コアデータってなんやねんという話。 調べてみたら、 Apple系の製品(WatchOSとかMacOSも含む)アプリ開発ではデバイス単体でオフラインでもアプリのデータを使えるようにしたり、一時的なデータをキャッシュしたりとかするためにコアデータフレームワークなる仕組みでデータを管理してるんだそうな。 それらの特徴としては、 アプリケーションにおけるモデルレイヤにあたる部分 データを溜めて、取り出して、更新して、削除ができる オブジェクトグラフを管理できる 特別な実装をしなくてもUNDO/REDOができる 一時的なデータをキャッシュできる 大きな枠組としてはデータベースではない (一般的にはSQLiteを使う事が多いみたい) 特徴的にはこんな感じっぽい。 SQLiteってデータベースの枠組みに入るんちゃうんかい・・・と思ったけど、バイナリデータとかXMLファイルで管理することもあるらしく、くくりやすくするためにざっくりとまとめたらそうなったみたい。 あまり納得は言っていない。 オブジェクトグラフというのは例えば本があった時にそれに付随するその本の筆者やジャンルなどの付随情報をグラフ構造で管理している、みたいな形式のことらしい。 データベースを使うんだろうなぁと個人的には思っていたので個人的には衝撃。

Pythonで学ぶスタック

イメージ
スタック スタックについて Pythonでのスタック利用例 Pythonでの表記法と注意点 連結リストの要素を逆転させる 逆ポーランド記法の計算 ディレクトリ構造の短縮化 スタック について改めて使い道を模索してみたのでメモ。 スタックについて 底のある箱の中に積み木を積んでいくイメージ。 いわゆるLIFO(last in first out)、最後に入れたものを最初に取り出す、というデータ構造。 要素を取り出す時の操作を pop 、要素を入れる時の操作を push という。 スタックを連結リスト、もしくは配列で実装した場合のpop、pushの操作はO(1)の計算量となります。 Pythonでのスタック利用例 Pythonでの表記法と注意点 他の言語と同様に、Pythonでも Stack が組み込み関数として用意されています。 ここで注意すべきなのは上記で用意したPythonでリストを用いてスタックを表す場合には push ではなく、 append を使う点です。 スタックとして使う場合は以下のように要素の出し入れを行います。 >> > stack . append ( 6 ) >> > stack . append ( 7 ) >> > stack [ 3 , 4 , 5 , 6 , 7 ] >> > stack . pop ( ) 7 >> > stack [ 3 , 4 , 5 , 6 ] >> > stack . pop ( ) 6 >> > stack . pop ( ) 5 >> > stack [ 3 , 4 ] 他にもスタックには様々な使い道があります。 連結リストの要素を逆転させる def reverse_linked_list ( head ) : nodes = [ ] while head : nodes . append ( head . data ) head = head . next 逆ポーランド記法の計算

LeetCodeのDatabaseカテゴリで見つけたTRUNCATE TABLEについて

イメージ
LeetCodeのDatabase問題にて。 181. Employees Earning More Than Their Managers という問題を解いた時の話。 LeetCodeのDatabaseカテゴリの問題では SQL Schema という欄があり、どういったクエリを実行して該当テーブルが作成されているか、またその中に入っているデータはどういったものかを見ることができる。 その中に TRUNCATE TABLE Employee という一文を見つけた。 Employeeはテーブル名なので TRUNCATE TABLE テーブル名 という使い方をするものなのだろう。 恥ずかしながら知らなかったので調べてみたところ、指定したテーブルの全てのデータを削除するという内容らしい。 これまではそういった操作はDELETE文で実行していたが、どうやらTRUNCATE TABLE文には以下のようなメリットがあるらしい。 オートインクリメントの初期化 大量のデータが存在する場合はDELETE文よりも高速であること オートインクリメントの初期化がされるのは知りませんでした。確かにDELETE文だと初期化されなかった記憶があるので助かります。 削除が高速なのはDELETE文はあくまで特定のデータを削除することに特化しているからなのだろうか?確かに全て消去しかないのと特定の条件を付けられるものだと後者の方が処理は複雑になる傾向があるが。ここら辺も根本的な理由を調べる機会を設けたいな。 一方で、DELETE文を実行した際のログなどを記録するようなトリガーを設定していても、TRUNCATE TABLE文はDELETE文とは関係ないので当然追跡はできません。そこには注意が必要ですね。

特定の値まで素数を生み出すアルゴリズム in Python3

イメージ
特定の値まで素数を生み出すアルゴリズムとか 以下のようにリストで真偽値を管理するやり方で書くといいらしい。 Elements of Programming Interviews in Python  より。 # Given n, return all primes up to and including n. def generate_primes(n): primes = [] is_prime = [False,False] + [True] * (n-1) for p in range(2,n+1): if is_prime[p]: primes.append(p) for i in range(p*2,n+1,p): is_prime[i] = False return primes n = 100 print(generate_primes(n)) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]