サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
www.techscore.com
これは TECHSCORE Advent Calendar 2018 の25日目(最終日)の記事です。 こんにちは、宮垣です。 テックスコアブログに投稿するのは約4年ぶりになりますが、よろしくお願いします。 さて、先日、AWS re:Invent 2018のKeynote Day2 で AWS Lambda に新機能、Custom Runtime がサポートされることが発表されました。 AWS Lambda がカスタムランタイムをサポート 今回は、この新機能を利用してLambdaでシェルを動かすテストをしてみたいと思います。 Custom Runtime を動かすためのチュートリアルが公式ドキュメントに用意されていますので これを参考にしながら、主にマネジメントコンソールを利用して実施していきます。 Tutorial – Publishing a Custom Runtime - AWS
データベースにアプリケーションから接続する場合、多くの方がコネクションプーリングを行っていると思います。 Spring Bootの場合はデフォルトでHikariCPが有効になっているため、知らずにコネクションプーリングを利用しているということもあると思います。 コネクションプーリングは、SQL発行時に既存の接続確立済みのコネクションを使いまわすことによって、 データベースへの接続処理を省き、パフォーマンスを向上させるものですが、実際どれくらい効果があるのか、計測してみました。 コネクションプーリングの種類 コネクションプーリングの方式は大きく分けて「クライアント型」「サーバ型」の2種類があります。 よく使われているのはクライアント型で、HikariCPのようにアプリケーションがコネクションをプールします。 サーバ型は、アプリケーションとデータベースの間にコネクションプーリングを行うサーバを
これは TECHSCORE Advent Calendar 2018 の7日目の記事です。 こんにちは、土屋です。 今年1月に AWS Lambda が Go のサポートを開始しましたね。 Gopher たちが賑わう中、私も Go のアプリを Lambda で作りたいなあと思い、 AWS SAMを使って環境構築をしてみました。 環境構築はチャチャッと終わらせたい!と思いつつも、実際にSAMを使ってみると、自分がやりたいことを実現する方法がわからず、調べるのに意外に時間がかかってしまいました。 そこで今回は「先に知ってればもっと工数削減できたなー」と思った、AWS SAM に関する小ネタを4つをまとめました。 ※AWS SAM は公式ドキュメントの Benefits of Using AWS SAM に書かれている通り、AWS CloudFormation の拡張です。本記事の内容は、Clo
これは TECHSCORE Advent Calendar 2019 の 23 日目の記事です。 こんにちは。松本です。 社内向けに作成した ITP(Intelligent Tracking Prevention) に関するドキュメントを再編集し、ブログ記事として以下に公開します。対象は、ITP 1.0 から ITP 2.3 に加え、2019/12/10 に発表された Preventing Tracking Prevention Tracking までとなります。 WebKit のソースコードに目を通すところまでは出来ていないので、あくまでも WebKit ブログから読み解ける内容が中心となります。 前提知識(用語など) まず、ITP に関連して頻出する用語をピックアップして解説します。 WebKit WebKit(ウェブキット)は、HTML や CSS などで記述されたドキュメントを解釈
これは TECHSCORE Advent Calendar 2019の22日目の記事です。 Introduction(はじめに) アルゴレイヴとは アルゴレイヴ(Algorave)というものをご存じでしょうか?アルゴレイヴとはAlgorithm(アルゴリズム)とRave(皆で楽しむこと)を組み合わせた造語です。音楽や映像をプログラミングで即興的に作り上げるライブコーディングという技術を使用し、ライブコーダーが様々なアルゴリズムから生成された音楽を流すイベントのことを指します。2011年イギリスで最初のイベントが開催され、現在世界で広がりつつあります。日本でも度々開催されています(algorave.tokyo) ライブコーディングとは ライブコーディングとは即興的にプログラムを書き/編集しながら、音楽や映像を奏でるリアルタイム・パフォーマンスのことです。作りこんだものではなく、偶然性や即興性
これは 😺TECHSCORE Advent Calendar 2019😺の3日目の記事です。 横田です。2019/11/15に開催された日本PostgreSQLユーザ会が主催するPostgreSQL Conference Japan 2019 に参加しました。このカンファレンスでは15のセッションが展開されていましたが、国産の分散RDBMSであるTsurugi(劔)が非常に気になったので、Tsurugi(劔)に絞って書いていきたいと思います。 国産の分散RDBMS/ProjectTsurugi(劔) 【Tsurugi(劔)ってなんだ?】 国産OSS-DBとして日経にも載ったDBエンジンの開発Projectです。分散構成になるので、シングルで動いているPostgreSQLと比べて導入と運用管理の難易度は難しくなると思います。ストアドプロシージャの互換性については怪しそうですが、SQLはP
※3つの方式ともに、シリアライゼーションには他の仕様を選択することも可能ですが、一般的なものを記載しています いずれかの方式に統一することもできますが、大規模なシステムに於いては、マイクロサービス間通信にgRPC、フロントエンドとの通信にGraphQL、外部公開するAPIにOpenAPIといったように、ユースケースに応じて使い分けるのも良いと思います。 gRPCを利用してみた感想ですが、パフォーマンスもさることながら、OpenAPIと比べて仕様が単純な分、IDLを元に生成される雛形(スタブ)の品質が高く複数言語での利用をスムーズに行うことができそうだと感じました。 gRPCの呼び出しスタイル gRPCの呼び出しスタイルには、単項RPCと3つ(サーバ/クライアント/双方向)のストリーミングRPCがあります。 詳しくはRPC life cycleをご覧ください。 本記事ではServer str
PostgreSQLの「effective_io_concurrency」という設定をご存知でしょうか? PostgreSQLのドキュメントには、 「PostgreSQLが同時実行可能であると想定する同時ディスクI/O操作の数を設定します」 とあります。 とりあえず有効にしておけば同時実行でなんか速そう!という印象をうけるのですが、そんなことはありません! PostgreSQL9.6以下の場合はオフにした方がパフォーマンスが良いケースが多いと思います。 今回はなぜオフにした方が速いのか、みていきたいと思います。 ※PostgreSQL10以降で実装されたパラレルビットマップヒープスキャンにはあてはまりません ※常に「オフ」が最適設定ということではありません。システム構成・データ傾向次第です ※検証環境はCentOS7、PostgreSQL9.6です effective_io_concurr
こんにちは、松浦です。 シナジーマーケティングでは Kubernetes のマニフェスト管理については kustomize を主に利用しています。今回は、 kustomize にまつわる内容を扱います。 kustomize には、 kustomize build 時にリソース定義の生成を行う generator (ConfigMapGenerator, SecretGenerator)や、変換処理などを行う transformer (コンテナイメージ名やタグを変える images やラベルを各リソースに付与する commonLabels など)が用意されています。デフォルトの状態でも十分に使い勝手の良いものですが、ときに generator や transformer の振る舞いに変更を加えたり、新たに処理を追加したいこともあるかもしれません。そのような場合にどういう手段が用意されているの
WEBアプリケーションサーバを構築する際、ELBやApacheやnginxなど何らかのリバースプロキシを前段に置くケースは非常に多いと思います。 今回は、筆者が各種リバースプロキシで1回ずつ位ハマった気がする、KeepAliveタイムアウト問題について解説します。 まずはHTTPにおけるKeepAliveについて簡単に説明します。 HTTP1.1の持続的接続(Persistent Connections)の根幹をなす機能で、1つのTCPコネクションで複数のリクエスト、レスポンスをやり取りする仕組みです。 このような機能が求められた背景には、TCP接続時の3Wayハンドシェイクのような負荷の高い処理を減らしたい、という目的があります。 単純化したシーケンス図で表すと、以下のようなフローになります。 KeepAliveタイムアウト サーバー側は次のリクエストを待つ際、いつ送られるかわからないリ
こんにちは、ゲスト参加の中山です。 まもなく Chrome や Firefox にて 3rd-party Cookie の扱いが変更される見込みです。 SameSite 属性(draft-west-first-party-cookies-07)への対応により Cookie にクロスサイト利用か否か(= 3rd-party Cookie 利用か否か)の明示を要求 明示的な SameSite 属性なしで Set-Cookie された値は 3rd-party Cookie として利用できなくなる これにより Cookie の目的の透明性 + ユーザーへのコントロール提供 + CSRF への対策を実現 仕様には HTTP Cookie Header 送信時の振る舞いについて定義されてますが 3.2. Semantics of the "SameSite" Attribute (Non-Normat
こんにちは。松本です。 Kubernetes コントロールプレーンの HA(High Available) 構成は二通りありますが、公式ドキュメント内に次のような記述があり、いずれの方式でも 3 台以上のマシンでクラスターを構成することが求められています。 For both methods you need this infrastructure: Three machines that meet kubeadm’s minimum requirements for the masters (中略) For the external etcd cluster only, you also need: Three additional machines for etcd members この、最小が "three" である必要性は、どこからくる制約なのでしょうか。"two" じゃだめなのでし
こんにちは、稲垣です。 ソフトウェアが仕様通りに動くかを確認する場合、どのようにテストケースを作成していますか? テスト技法にはさまざまな種類がありますが、今回はデシジョンテーブルについて説明します。 1.デシジョンテーブルって何? デシジョンテーブルとは、入力データや入力条件の組み合わせに対する動作や処理の出力結果を表にしたものです。 複数の条件が重なり合ったテストをするためには、仕様をしっかりと把握することが重要になります。 デシジョンテーブルを使うと、自然言語より視覚化でき、仕様の整頓もできます。 デシジョンテーブは下記5つから成り立ちます。 1.条件の一覧(条件記述部) 2.結果の一覧(動作記述部) 3.条件の組み合わせ(条件指定部) 4.組み合わせに対応する結果(動作指定部) 5.規則 1.条件記述部 入力条件や入力データを記述します。 2.動作記述部 条件に合わせて実行する動作
SpringBoot/kotlin/Gradle/Kubernetes環境下に比較的汎用的な構成でマルチプロジェクト構成のサンプルプロジェクトを作りました。 以前書いた、 EC2のマイクロサービスをKubernetesに移行した話 の経験を踏まえて、今ゼロから作るならこんな感じ、というのを形にしたものです。 Production-Ready とまではいかないまでも、そのベースにできる程度には気を利かせてみたつもりです。 ソースはgithub にアップしてあります。 プロジェクト構成とbuild.gradle マルチプロジェクト 業務でサーバを含むようなアプリケーションを作るときは何も考えずマルチプロジェクトにしておくことをお勧めします。経験上、リポジトリ内に追加でプロジェクトを作成したくなるケースはかなり多いです。 ライブラリの依存関係管理にDependencyManagementを使う
あけましておめでとうございます、ゲスト参加の中山です(写真はお正月の雰囲気を出してみました)。 少数派ですが、世の中にはイラストや UI のスクリーンショットが JPEG 形式で共有されると残念な気持ちになってしまう人々が存在します。 目視困難なノイズを心で感じたり、ささやかな省サイズ化の余地を惜しんでしまうのがその理由です。多数派にとっては瑣末な話ですが …… そんなわけで今回は上述「残念な気持ち」の可視化を試みたいと思います。 なお、記事内で利用する画像は自前で用意したものです。 写真の場合 最初に、冒頭の写真のエンコード品質とファイルサイズの関係をみてみます。 グラフの赤線は JPEG エンコード、オレンジ線は WebP エンコードです。 また、横軸が JPEG / WebP のエンコード品質(99 ~ 1)、縦の主軸 + 実線がファイルサイズ、縦の第二軸 + 点線が元画像からの劣化
次のページ
このページを最初にブックマークしてみませんか?
『TECHSCORE - Java,SQLプログラミング技術解説』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く