ホワイトハット(101,724件)

「いちばん大切なことは、目には見えない」重要なことを見極めるため知識体系情報サイト

ナカミチといいます。freeeのデータ基盤でエンジニア業に勤しむ日々です。 今回は長年freeeの分析環境を支えてくれたRedshiftをBigQueryに移行したお話。 なお技術的な詳細までは触れず、移行プロジェクト全体に関して記述しています。 (Techieな記事を期待した方スミマセンmm) 移行の規模はどんなもんか ボリューム的にはざっと下記の通りです。 テーブル数: 約2,000テーブル データ量: 約180TB(snappy) クエリ数: 約500件 移行期間: 約1年4ヶ月(準備期間含む) そもそもなんで移行したの? 大別すると移行を決めた理由は3つほど。 パフォーマンス向上が見込…

ありがとうRedshift よろしくBigQuery - freee Developers Hub

Webページ

developers.freee.co.jp

2022-04-06 14:00:55

詳細ページ

こんにちは。株式会社Flatt Securityセキュリティエンジニアの村上です。セキュリティ・キャンプ卒業後、新卒入社組としてFlatt Securityでセキュリティエンジニアをしています。 本稿では、BtoCのWebサービスにおいてマーケティング施策として頻繁に発行される「クーポンコード」及び「クーポン機能」のセキュリティ観点について考えたいと思います。様々なサービスが題材として考えられますが、今回はECサイトなどを例に解説していきます。 クーポン機能は割引やポイントの付与など直接的に金銭的な影響に繋がりますが、Googleなどで検索してみると分かる通りどのような対策をすれば良いのかとい…

そのクーポン機能は不正利用を防げる実装ですか? - Webサービスにおけるクーポン機能の仕様とセキュリティ観点 - Flatt Security Blog

Webページ

blog.flatt.tech

2022-04-06 14:00:54

詳細ページ

...

最近のランディングページで見かける! スクロールに連動して背景画像をアニメーション化できるバニラJavaScriptのライブラリ -ScrollMovie.js | コリス

Webページ

coliss.com

2022-04-06 14:00:52

詳細ページ

Re: 僕らを縛る Node.js という呪いについて - あるいはなぜ TypeScript 以外が真っ当な選択肢にならなかったか

Webページ

zenn.dev

2022-04-06 14:00:23

詳細ページ

Release of Rome Formatter, a super fast formatter for JavaScript and TypeScript

Announcing Rome Formatter

Webページ

rome.tools

2022-04-06 11:08:14

詳細ページ

NW X Security-JAWSの冒頭、レイヤー1/2の担当としてセッションを展開したのが、エクイニクス・ジャパンの内田武志さん。

ASCII.jp:エクイニクス、「日本一AWSに近い場所」について濃い目に語る

Webページ

ascii.jp

2022-04-06 11:08:10

詳細ページ

Amazon EC2 で、作成から 2 年を経過したパブリック Amazon マシンイメージ (AMI) を非奨励化

Webページ

aws.amazon.com

2022-04-06 11:08:08

詳細ページ

With this PR we introduce optional declaration site variance annotations for type parameters of classes, interfaces and type aliases. Annotations take the form of an in and/or out keyword immediately preceding the type parameter name in a type parameter declaration.  An out annotation indicates that a type parameter is covariant. An in annotation indicates that a type parameter is contravariant. An in out annotation indicates that a type parameter is invariant.  Generally, type parameter variance is simply a function of how a type parameter is used in its generic subject type. Indeed, when generic type instantiations are related structurally, variance annotations serve no purpose. This is why TypeScript strictly doesn't need variance annotations. However, variance annotations are useful to assert desired type relations of their subject generic types. Specifically, given a generic type G<T> and any two type arguments Super and Sub for which Sub is a subtype of Super,  if T is covariant (declared as out T), G<Sub> is a subtype of G<Super>, if T is contravariant (declared as in T), G<Super> is a subtype of G<Sub>, and if T is invariant (declared as in out T), neither G<Super> nor G<Sub> is a subtype of the other.  Intuitively, covariance restricts a type parameter to output (read) positions and contravariance restricts a type parameter to input (write) positions--hence the in and out modifiers. For example: type Provider<out T> = () => T; type Consumer<in T> = (x: T) => void; type Mapper<in T, out U> = (x: T) => U; type Processor<in out T> = (x: T) => T; Covariance and contravariance annotations are checked by structurally relating representative instantiations of their subject generic types. For example, in the following generic type, the type parameter T is used in both input and output positions and T is thus invariant. Attempting to mark T covariant type Foo<out T> = {     x: T;     f: (x: T) => void; } reports the following error on out T: Type 'Foo<sub-T>' is not assignable to type 'Foo<super-T>' as implied by variance annotation.   Types of property 'f' are incompatible.     Type '(x: sub-T) => void' is not assignable to type '(x: super-T) => void'.       Types of parameters 'x' and 'x' are incompatible.         Type 'super-T' is not assignable to type 'sub-T'.  Likewise, attempting to mark T contravariant type Foo<in T> = {     x: T;     f: (x: T) => void; } reports the following error on in T: Type 'Foo<super-T>' is not assignable to type 'Foo<sub-T>' as implied by variance annotation.   Types of property 'x' are incompatible.     Type 'super-T' is not assignable to type 'sub-T'.  Notice how the error elaborations reveal where and how variance is breached. Invariance annotations (in out T) are never checked but simply assumed to hold. Thus, it is possible to assert invariance even when the actual usage of a type parameter is co- or contravariant. When multiple interface declarations are merged, or when a class declaration and one or more interface declarations are merged, variance annotations are aggregated. In the example interface Bar<T> {     // ... }  interface Bar<out T> {     // ... }  interface Bar<in T> {     // ... } the aggregate variance of T is in out, and T is thus assumed to be invariant. When variance annotations are present, the type checker doesn't need to measure variance. Thus, variance annotations can help improve the performance of checking complex and interdependent types. In particular, marking a type parameter invariant means that no measurement or checking is necessary for that type parameter. In addition, variance annotation can help establish correct variance for multiple circularly dependent generic types. Specifically, when measuring variance, TypeScript limits the structural search space in order to avoid runaway recursion. In the example type Foo<T> = {     x: T;     f: Bar<T>; }  type Bar<U> = (x: Baz<U[]>) => void;  type Baz<V> = {     value: Foo<V[]>; }  declare let foo1: Foo<unknown>; declare let foo2: Foo<string>;  foo1 = foo2;  // Should be an error but isn't foo2 = foo1;  // Error the compiler measures T to be covariant even though it is actually invariant due to variance reversal in Bar and the circular reference in Baz. The compiler could establish that by continuing to structurally relating nested circular references until some fixed point, but this gets exponentially expensive and isn't feasible in complex scenarios. Adding an in out annotation to T establishes the correct variance and produces the expected errors. We're marking #1394 and #10717 fixed by this PR, although the feature implemented isn't exactly what is suggested in those issues. Fixes #1394. Fixes #10717.

Optional variance annotations by ahejlsberg · Pull Request #48240 · microsoft/TypeScript · GitHub

Webページ

github.com

2022-04-06 11:08:05

詳細ページ

Androidのフレームワーク部分に深刻な脆弱性、4月のセキュリティパッチで解消 - ケータイ Watch

Webページ

k-tai.watch.impress.co.jp

2022-04-06 11:08:03

詳細ページ

Microsoftはハイブリッドワークに関するオンラインイベントを開催し、“世界初のクラウドPC”と称する「Windows 365」と「Windows 11」の新機能を紹介した。発表されたことを簡単にまとめた。

Microsoftの「Windows Powers the Future of Hybrid Work」まとめ - ITmedia NEWS

Webページ

www.itmedia.co.jp

2022-04-06 11:08:01

詳細ページ

シャープの国産不織布マスクが一斉値下げ。抽選100回目を迎え - PC Watch

Webページ

pc.watch.impress.co.jp

2022-04-06 11:02:17

詳細ページ

AWS が変化を求めるデベロッパーの皆様を応援するウェブマガジン。毎月更新する記事で新たなスキルや他のデベロッパーが抱える課題と解決方法に迫るインタビューをご覧いただけます。

Hands-on for Beginners で AWS を使いはじめよう ! 〜目的にあわせてハンズオンをおすすめします〜 - builders.flash☆ - 変化を求めるデベロッパーを応援する…

Webページ

aws.amazon.com

2022-04-06 11:01:33

詳細ページ

マイクロソフトは日本時間4月6日未明にオンラインイベント「Windows Powers the Future of Hybrid Work」を開催。ハイブリッドな働き方を支援するとして、Windows 11の新機能を発表しました。 File...

[速報]Windows 11のFile Explorerにタブ機能、集中作業用のタイマー機能、オンライン会議のアイコンタクト機能など新機能 - Publickey

Webページ

www.publickey1.jp

2022-04-06 11:01:09

詳細ページ

Reactのベストプラクティスやコード削減のためのパターンを紹介します。全3パートの連載記事です。

Reactのベストプラクティスとコード削減パターン - パート1 | microCMSブログ

Webページ

blog.microcms.io

2022-04-06 11:01:07

詳細ページ

2018年モデルの13インチ MacBook Proには、Thunderbolt 3対応のUSB Type-Cポートが4つ搭載されているだけで、LANケーブルを接続するには有線LANアダプターが別途必要になります。そんな13インチMacBook Proを使っているソフトウェアエンジニアのデニス・シューベルトさんが、これまで使ってきた3つの有線LANアダプター分解した上で見えてきた問題点を解説しています。

MacBookで使える「USB-Cハブ付き有線LANアダプター」3種類を分解して浮かび上がった問題点とは?

Webページ

gigazine.net

2022-04-06 11:01:05

詳細ページ