PHPカンファレンス北海道2024 https://fortee.jp/phpcon-hokkaido-2024/proposal/7d223fcd-ecc8-4cfb-92b2-4987749463d8 Lについての補足記事 https://asumikam.com/entry/2024/0…
【DevelopersIO 2024】AI 半可通なのにエッジ AI 機能を全力で解説してみる 〜Cloudflare の場合〜
「Docker」と「Kubernetes」をベースとする環境で構築されたクラウドネイティブアーキテクチャが流行している。クラウドネイティブと相性の良いマイクロサービスには、次のような利点がある。 サービスごとに、アーキテクチャ、言語、プロセス、ツールを自由に選択できる ドメイン駆動型設計やイベント駆動型アーキテクチャなど、ソフトウェアコンポーネントで長年提唱されてきた多くのベストプラクティスが体系化されている 適切にカプセル化されているため、サービスを個別に更新できる 柔軟性が高く、短期間でのリリースが可能 マイクロサービスに対応した技術(DockerやKubernetesなど)は多くのハードウェアで動作する マイクロサービスはこうしたさまざまなメリットをもたらす。一方で、幾つかの重要な問題点があるため、アプリケーション開発チームは注意する必要がある。特に、信頼性の高いモノリスアプリケーシ
Databricksのデータクラウドプラットフォームには、ビッグデータの処理、機械学習、AIの用途向けの統合された分析ワークスペースが用意されています。このプラットフォームはApache Sparkを基盤としています。Apache Sparkは、膨大なデータの処理と分析用に設計された、オープンソースのResilient Distributed Datasets(RDD)フレームワークです。そのため、Databricksのユーザーは大規模なデータ処理と分析タスクを簡素化できます。 Snowflakeも、データの保存、管理、分析を目的とした、単一プラットフォームのフルマネージドクラウドソリューションです。Snowflakeは大規模並列処理(MPP)に対応しているため、データの高速なクエリーと分析が可能です。Snowflakeは、AIやML、データウェアハウジング、データレイク、Unistore
こんにちは、システム開発部門の山本です。 Rustって面白いですね! 概要 新しい技術の習得を積極的に後押ししてくれる、そんな弊社。 Rust未経験の私がRustで構築された業務システムのバックエンド開発を担当した話。 Rust Webブラウザソフトウェア「Firefox」を開発しているMozillaが支援するオープンソースのプログラミング言語。 ネイティブコンパイラ言語であり、メモリ安全性と高パフォーマンスが売り。 今後、Webシステム開発の主流になる可能性もある。 担当する業務システム とある企業の業務システムのリプレイス。 パッケージツールから自社開発Webシステムへの切り替えを目指すなか、 弊社が全面的に開発サポートをさせて頂いております。 Rustの仕様に戸惑う1ヶ月目 まずバックエンド開発担当となって最初の作業がバグの改修でした。 そこで必要となるのがRustのコード解析。 こ
Hello World! Happy 3 Year Anniversary 🎉 Welcome to the Tour of Rust. This is meant to be a step by step guide through the features of the Rust programming language. Rust is often considered a language with a steep learning curve, but I hope I can convince you there's a lot to explore before we even get to complex parts. You can also find this guide in these languages: Deutsch Español Français Int
The Rust Programming Language 日本語版 著:Steve Klabnik、Carol Nichols、貢献:Rustコミュニティ このテキストのこの版ではRust 1.58(2022年1月13日リリース)かそれ以降が使われていることを前提にしています。 Rustをインストールしたりアップデートしたりするには第1章の「インストール」節を読んでください。 HTML版はhttps://doc.rust-lang.org/stable/book/で公開されています。 オフラインのときは、rustupでインストールしたRustを使ってrustup docs --bookで開けます。 訳注:日本語のHTML版はhttps://doc.rust-jp.rs/book-ja/で公開されています。 rustupを使ってオフラインで読むことはできません。 また、コミュニティによるい
今回のパターンシリーズは、マンガでわかる PoEAA (Patterns of Enterprise Application Architecture) やっていきます。エンタープライズとかずいぶん偉そうなネーミングですが、これもう 20 年以上前の Web 黎明期のいい方法まとめって感じのやつなので、今ではもうわりと、たいがいどんな Web アプリケーションにでも出てくる用語になってきてますよ。よく考えたら普通じゃんって話ばかりなので、気楽に見ていってください。 edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish to link to. If a slot i
Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。 Rustのトレイトにおける否定 前置き Rustのトレイトはインターフェースではない RustのトレイトはJavaのインターフェースではない RustのトレイトはC#のインターフェースではない RustのトレイトはMixInではない Rustのトレイトはトレイトではない Rustのトレイトは「高カインド多相のない型クラス」だった 根拠1: 型クラスと用法が同じである 根拠2: 重複する関数があった際の挙動も同じ Rustのトレイトでは高カインド多相ができな
iPresenceでは複数種類のロボットを1つのモバイルアプリからzoom等と連携して遠隔操作するアプリを開発しています。 その際アプリ側では1つのエントリーポイントから設定されたロボットにコマンドを渡しつつ各ロボット固有の機能も動作させる必要があります。 そこで全てのロボットに共有の動作とロボット固有の機能の動作を切り分けつつシンプルに書くためにDartのmixin/withの機能を使用します。 mixinと継承の違い 抽象クラス(abstract)を継承するのとmixinクラスを使用する際の違いは以下になります 抽象クラスの継承 すべてのメソッドをオーバーライドし実装する必要がある。 1つの子クラスに対して1つの親クラスしか渡せない mixin 必ずしもメソッドをオーバーライドする必要はない 1つのクラスに対して複数mixinすることができる コンストラクタを定義できない このようにそ
Repository by Edward Hieatt and Rob Mee Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects. For a full description see P of EAA page 322 A system with a complex domain model often benefits from a layer, such as the one provided by Data Mapper (165), that isolates domain objects from details of the database access code. In such systems
Data Mapper A layer of Mappers (473) that moves data between objects and a database while keeping them independent of each other and the mapper itself. For a full description see P of EAA page 165 Objects and relational databases have different mechanisms for structuring data. Many parts of an object, such as collections and inheritance, aren't present in relational databases. When you build an ob
Badプラクティスを選んで失敗しながら進めた新規プロダクト開発/Develop a new product with bad practices
よくある野良の社内ツールは、開発生産性を向上させるための手段としてスポットで生まれることが多い。 たとえば、定期的に依頼されて手作業でキックしているバッチ処理を誰かがAPI化したり、それがCLIで実行できるようになったり、あるいは不特定多数の人々が手でやっている作業が有志で自動化されツールになるなど。そして社内の口コミや告知で伝搬され、使われていく。 出来の良い社内ツールは、野良だとしても開発チームが普段の開発プロセスのなかで意識したくない複雑性や実装の詳細をうまく抽象化し、認知負荷を下げる役割を果たしている。見方を変えれば、社内ツールはチーム・トポロジー*1でいうところのX-as-a-serviceインタラクション・モードの具象化のひとつだと言える。開発チームと社内ツールを開発する人間を社内ツールがインターフェイスとなって接続している。広い目線で見ると、これはプラットフォーム・エンジニア
Active Record An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. For a full description see P of EAA page 160 An object carries both data and behavior. Much of this data is persistent and needs to be stored in a database. Active Record uses the most obvious approach, putting data access logic in the domain object. This way
Software development is a young profession, and we are still learning the techniques and building the tools to do it effectively. I've been involved in this activity for over three decades and in the last two I've been writing on this website about patterns and practices that make it easier to build useful software. The site began as a place to put my own writing, but I also use it to publish arti
Rakeとは、Rubyで書かれたコードをタスクとして作成しておき必要に応じて呼び出し実行する事が出来る機能。 このRakeが実行する処理内容をRakeタスクと呼び、定義する場所をRakefileと呼ぶ。 rakeタスクを利用する場面として、 ・何かしらのデータの連携 ・データベースのバックアップ ・定期的にデータを更新、削除する などが挙げられる。 またwhenneverと組み合わせることにより、任意のタイミングで処理を実行することができる。 ▷【Rails】wheneverでcronを設定 Rakeタスクの作り方 Helloと簡単な挨拶を表示するタスクを作成。 まず最初にタスクファイルを生成する。
背景・目的 最近、Delta Live Table(DLT)にふれる機会が増えてきたので、特徴を整理し簡単に試してみます。 まとめ 下記の特徴があります。 DLTは、下記を管理します。 タスクオーケストレーション クラスタ管理 監視 データ品質 エラー処理 DLTデータセットは、下記を保持するビューです。 ストリーミングテーブル マテビュー 宣言クエリの結果 ストリーミング ストリーミング、またはインクリメンタルデータ処理が行えるDeltaテーブル 各行を一回だけ処理して、増大するデータセットを処理する データの鮮度と低レイテンシーを必要とするパイプラインに最適。 追加専用データソース用 マテリアライズドビュー 結果が事前計算されているビュー パイプラインの更新スケジュールに従って更新される。 マテビューは、あらゆる変更を処理できる パイプラインの更新の都度、クエリ結果が再計算されるため、
Chromeのクッキー廃止へ。ブラウザをチェックしてみよう2024.01.13 21:00167,166 Thomas Germain - Gizmodo US [原文] ( 岩田リョウコ ) グッバイ、クッキー! Googleが長年にわたって進めてきたクッキーの廃止計画が1月4日、実行に移されました。Chromeウェブブラウザを利用しているユーザーのうち1%、約3000万人に対してクッキーを無効化。そして今年の年末までに、すべてのChromeユーザーのクッキーがなくなるとのことです。すべてのクッキーではなく、廃止されるのは追跡をするサードパーティークッキーです。 クッキーの役目って?プライバシーを守りたい人たちにとって、インターネットの元凶とみなされているクッキー。ほとんどのウェブでクッキーは、テック企業がオンライン上での私たちの行動を追跡する方法となっていました。ターゲット広告や他の多
ハッカソン参加時の備忘録 ~ 第3回:【Python】AWS LambdaとAWS RDS(MySQL)を連携させてみよう ~(1)PythonAWSRDSハッカソンlambda こんにちは。ITエンジニアのきゅうです。 第3回目は業務アプリケーションでは必ずと言っていいほど使うデータベースに接続させてみたいと思います。 そもそもAWSには様々なデータベース(以降DB)が用意されており、 特にNonSQLをAWSはプッシュしている様に思いますが、 今回は使い慣れたRDSの中でもMySQLを使用していきたいと思います。 以下、今回作成するアーキテクチャイメージになります。 VPCの作成 1.VPCの作成 RDSはVPCを設定する必要があるので、事前にVPCを作成しておきます。 AWSにログインしたら、まずは検索ボックスより「VPC」と入力し、開かれた『VPC』のダッシュボードより「VPCを作
水出し抽出“8時間→10分”に短縮。サイエンスな水出しポット #CES20242024.01.12 20:0047,853 ヤマダユウス型 ブレンド模索が楽しくなっちゃうやつだコレ。 水出しのアイスコーヒーやアイスティーを作りたいと思ったら、コーヒーや茶葉を水に入れて冷蔵庫で一晩寝かすのが定番のやり方です。手間はかからないものの、とにかく時間がかかってしまう。 CES2024にてイノベーションアワードを受賞した「COLDRAW(コールドロー)」は、その一晩をわずか10分にまで短縮させてしまうんですって。い、一体どうやって…? 気圧を一気に変化させる時間短縮の秘密は気圧にありました。「COLDRAW」は、ポット内の気圧を0.1気圧に下げる→1気圧に戻すといった動きを短時間のあいだに繰り返すことで、本来なら8時間ほどかかる水出し工程を約10分で完了させてしまえるとのこと。 エベレストの頂上が約
新規事業立ち上げのアンチパターンについて考えてみる。 このアンチパターンは、完全な飛地の新規事業だけではなく、複数プロダクトを経営する中での隣接領域の新規プロダクトの立ち上げのときや、あるセグメントにPMFした状態から次のPMFを探すときも同様のアンチパターンが適用されうる。 ここでのアンチパターンは、1つ目の事業立ち上げ・プロダクト立ち上げで起こることはない。2つ目の事業や2つ目のプロダクトを立ち上げる際に留意する点であり、コンパウンドスタートアップを正しく経営するには必ず頭に入れておきたい内容である。 規模からの逆算と顧客インサイトの軽視新規事業における市場選択のアンチパターンである。 例えば、売上の30%成長を続けるための、計画と現実のギャップを埋めるために新規事業を規模から探してしまうみたいなケースで見られる。 大前提として、市場規模の推定は重要である。実際に事業をやっていると、い
さんま 松本人志の活動休止決断に「俺は子供のため、と思う」、誘った芸人が「悩んでる」と気遣いも 拡大 明石家さんまが13日、MBSラジオ「ヤングタウン土曜日」に出演。ダウンタウン・松本人志が、女性を巡る週刊文春の報道を受けて、活動休止を発表した問題についてコメントした。 8日の発表より前に、吉本の岡本社長から直接電話があって知ったそうで、「『吉本の弁護士は大丈夫か?!』って聞いたら、吉本の弁護士はサポートで、松本個人の考えでやるらしい」「松本の件に関して、松本が決めたことらしい」と社長から伝え聞いたことを説明。 松本の活動休止の決断について、「あいつ、子供ができて、子供のため、っていうのがかなり大きいような気がする。番組とかには迷惑かけるけども、家族のために、っていう感じは、間違ってるかもしれへんけど、ものすごい分かる。(俺も)世界が全部敵になっても、IMALUだけ味方になってくれたら、そ
骨しゃぶり @honeshabri 正月休みで暇な人は古い電源タップを交換するのおすすめ。一般的に電源タップの寿命は3〜5年と言われているが、だいたい放置しがちなため。そしていつの間にか中身が悲惨な状態になっていることも。 pic.twitter.com/gQnJaGWxmp 2024-01-04 15:09:29
こんにちは。サービス開発室の武田です。このエントリは、2018年から毎年公開しているAWS全サービスまとめの2024年版です。 こんにちは。サービス開発室の武田です。 このエントリは、2018年から毎年公開している AWS全サービスまとめの2024年版 です。昨年までのものは次のリンクからたどってください。 AWSにはたくさんのサービスがありますが、「結局このサービスってなんなの?」という疑問を自分なりに理解するためにまとめました。 今回もマネジメントコンソールを開き、「サービス」の一覧をもとに一覧化しました。そのため、プレビュー版など一覧に載っていないサービスは含まれていません。また2023年にまとめたもののアップデート版ということで、新しくカテゴリに追加されたサービスには[New]、文章を更新したものには[Update]を付けました。ちなみにサービス数は 247個 です。 まとめるにあ
はじめに プラットフォームエンジニアリング(Platform Engineering)とサイト信頼性エンジニアリング(SRE, Site Reliability Engineering)はともに、ITインフラとアプリケーションの運用に関わる分野ですが、それぞれに独自の焦点とアプローチがあります。 Gartnerの報告によれば、Platform Engineeringは、自動化と開発者の経験を中心に据え、アプリケーションのデリバリーを迅速化し、ビジネス価値を効率よく生成することを目的としています。 この手法は、製品チームが顧客に対して価値をより速やかに提供することを前提としています。 参考資料: What Is Platform Engineering? What Team Structure is Right for DevOps to Flourish? 道を照らす: プラットフォーム
この記事は、弁護士ドットコム Advent Calendar 2019 - Qiitaの2日目の記事です。 TL;DR TDDの実践方法を実際にコードを書いて解説します TDDの「レッド・グリーン・リファクタリング」のリズムを学ぼう 何度もテストを実行して、プログラムに対する不安を取り除こう TDDはテスト技法ではなく設計手法 TDD Boot Camp Sendai 9thに参加しました。TDDの伝道師和田さん(@t_wada)を講師に迎え、有志たちで開かれた勉強会でした。 午前中は和田さんによるTDDに関する講演とライブコーディング。午後は参加者同士のペアプロで出題されたお題を実装していく活気あるイベントでした。 イベントを通じてTDDはテストファーストのことだと考えていた自分は目を見開かされました。TDDは単にテストファーストでプログラムを実装することではなく、実装(ソフトウェア)が
Row Data Gateway An object that acts as a gateway to a single record in a data source. There is one instance per row. Embedding database access code in in-memory objects can leave you with a few disadvantages. For a start, if your in-memory objects have business logic of their own, adding the database manipulation code increases complexity. Testing is awkward too since, if your in-memory objects a
Table Data Gateway An object that acts as a gateway to a database table. One instance handles all the rows in the table. Mixing SQL in application logic can cause several problems. Many developers aren't comfortable with SQL, and many who are comfortable may not write it well. Database administrators need to be able to find SQL easily so they can figure out how to tune and evolve the database. A T
ここからは、ビジネスロジックをどのように書くかとは別の視点、データソースのアーキテクチャに関するパターンを扱います。 ビジネスロジックの記述、とくに Domain Model においては、データ(あるいはオブジェクト)の扱いと取得/同期方法の関心を、できるだけ分離するのが健全です。ほとんどのデータベース操作は、単純で冗長な SQL の組み立てになってきます。データが出入りするインターフェースを、ビジネスロジックから見たゲートウェイとするのです。 Table Data Gateway は、特定のテーブルとの単純な入出力を担います。責務範囲がひとつのテーブルに閉じるため、Table Module との依存関係がシンプルになります。データの操作は find(id) や insert(data) といったメソッドで担います。 データの形式に、固有のデータ型を設けるか、汎用的なレコードセット型のまま
米AWSが提供するAWS認定試験の料金が4月1日から値上がりする。為替レートの変動によるもので、日本円では4000円~1万円高くなる。 AWSでは毎年4月、為替レートに応じてオーストラリアドル、ユーロ、韓国ウォン、日本円での受験料を更新している。今回の更新では基準となる米ドル以外の料金が全て値上がりに。例えば日本円の場合、基礎的な内容を問う「Foundational」の受講料は1万1000円から1万5000円に、専門的な内容を問う「Specialty」に区分される試験は3万円から4万円になる。 関連記事 円安でも安くAWSを使う方法 SaaSスタートアップが弾き出した意外な試算 急激に進む円安。その影響は、AWSなどクラウドサービスの利用料金という形でもIT業界に波及している。コスト節約にはどんな工夫が必要か。コストのコントロールに取り組むアンドパッドに聞く。 AWSの資格試験を全ての新入
序章 静的型付け言語がスタートアップにおける成長戦略にどのように貢献するかを解説する記事です。 静的型付け言語とは 静的型付け言語とは、プログラムの実行前に変数の型が決定され、コンパイル時に型チェックが行われる言語のことです。Java、C#、Rust、TypeScript、Goなどが代表的です。実行前にエラーを発見しやすく、大規模なプロジェクトや長期的なメンテナンスに適しています。 静的型付け言語のメリット エラーの早期発見 静的型付け言語は、コンパイル時に型の不一致や変数の誤用を検出します。これにより、ランタイムエラーが減少し、開発初期段階で問題を発見できるため、時間とコストの節約につながります。 コードの可読性と保守性 型情報がコードに明示されているため、他の開発者がコードを理解しやすくなります。チームが拡大する際に、コードの保守性を高める重要な要素です。 パフォーマンスの最適化 静的
コンテンツデリバリーネットワーク(CDN)サービスを基盤に、各種のクラウド型セキュリティサービスを手掛けるアカマイ・テクノロジーズでWebセキュリティの動向を追う中西一博氏が、非常に発見が難しくなっているWeb攻撃の実態と手口を暴き、その対策について解説する。 以前の連載:迷惑bot事件簿 アプリのマイクロサービス化とAPIの関係 世界中のWeb通信を中継しているAkamai Technologies (以下 Akamai)が取り扱う通信の8割以上は、すでにAPIの通信が占めている。 APIを利用するスマートフォンやブラウザアプリが普及の後押しをしているのは間違いないが、近年ではサーバ側のマイクロサービス化(あるシステムを小規模なシステムを組み合わせて開発する手法)の影響も大きい。 日本も同様だ。商用のWebアプリケーション開発者に話を聞くと「いま開発中のWebアプリやスマホアプリのサーバ
ども、大瀧です。 NTPにセキュリティ機能を追加したNTSという時刻同期サービスを知っていますか。本ブログではルータ向けLinuxディストリビューションOpenWRTで時刻同期にNTSを構成する様子をご紹介します。 動作確認環境 ハードウェア: GL-iNet GL-MT2500 ファームウェア 4.5.0release6(rc) OpenWRT: バージョン21.02 Chrony: バージョン4.1-2 NTS公開サーバー: time.cloudflare.com time.cloudflare.com とは time.cloudflare.comはNTSに対応するCloudflareの公開タイムサーバーです。以下のブログで紹介されてます。 その後RFC8915の策定に合わせてポート番号を変更したとのブログが以下です。 AWSの公開NTPサーバーにも接続を試行してみましたがエラーになっ
月1〜2くらいで子ども達連れてショッピングモールのフードコートで、マックうめー、丸亀うめーな休日過ごしてるんだけど、これって世帯年収いくらくらいからやらなくなるんだろ? 上下ともに。
・2023年(1~12月)に刊行された漫画が対象です。 ・ざっくり分類分けしています。 ・分類中の並びは、上に掲載されているものの方がオススメ度が高いです。 1巻が刊行された漫画 平井大橋『ダイヤモンドの功罪』 華沢寛治『這い寄るな金星』 小野寺こころ『スクールバック』 福本伸行『二階堂地獄ゴルフ』 古部亮『スカベンジャーズアナザースカイ』 水谷フーカ『リライアンス』 涼川りん『アウトサイダーパラダイス』 大武政夫『女子高生除霊師アカネ!』 背川昇『どく・どく・もり・もり』 田島列島 『みちかとまり』 堤葎子『生まれ変わるなら犬がいい』 魚豊『ようこそ!FACT(東京S区第二支部)へ』 つのさめ『一二三四キョンシーちゃん』 我妻ひかり『パコちゃん』 スタニング沢村『佐々田は友達』 にゃんにゃんファクトリー『ヤニねこ』 全1巻長編漫画 コドモペーパー『十次と亞一』 齋藤なずな『ぼっち死の館』
Lambda Layersで解決できること Lambdaの実行環境には追加ライブラリが存在しないため、ライブラリを使用する際はデプロイパッケージにライブラリを含める必要がありました。 しかしAWS Lambda Layersを使用することで、ライブラリなどの共通コンテンツをレイヤーとして作成することで、パッケージにライブラリを含める必要がなくなりました。 Lambda Layersとは、複数のLambda関数で外部ライブラリやビジネスロジックを共有できる仕組みです。 イメージはこんな感じです。 使用するライブラリや共通のビジネスロジックをZIPアーカイブし、Layerに追加することができます。 デプロイパッケージの容量を少なくすることができるためLambdaのソースコードの管理が楽になります。 また依存関係をインストールしてパッケージ化する際に発生するエラーを回避することや、ライブラリのビ
SAM CLI の基本的な使い方については、以前 Qiita にあげたのでこちらも参照いただければと思います。 AWS SAM CLI 再入門 2019.12 https://qiita.com/hayao_k/items/7827c3778a23c514e196 簡単な例 sam init で作成できる Python 3.8 の Hello World Example を例に考えます。 $ sam init --runtime python3.8 $ cd sam-app $ tree . ├── events │ └── event.json ├── hello_world │ ├── app.py │ ├── __init__.py │ └── requirements.txt ├── README.md ├── template.yaml └── tests └── unit ├─
次ページより、APIの使い方の詳細を説明します。 REST API を使う 開発者は次の手順で REST API を使うことができます。 Swagger Editor を使う 外部から REST API で操作したいモデルについて、REST API を有効にします。(標準は無効です。) 開発者の PC で Swagger Editor を起動します。本マニュアルでは Docker を使って Swagger Editor を起動する方法を説明します。 Swagger Editor からクラウドにある Wagby 開発環境に接続し、ビルドしたアプリケーションを操作できることを確認します。 Wagby の REST API を呼び出すアプリケーションを開発します。 本マニュアルでは上記の 1 から 3 を説明します。3までを試したあと、必要なアプリケーションの開発を行ってください。 curl を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く