並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 747件

新着順 人気順

regexpの検索結果1 - 40 件 / 747件

  • 2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。開発本部 オンボーディングチームの酒井(@sakay_y)です。社内のオンボーディングコンテンツを、どんどん社外へ公開することを夢見ています。 2021年もエンジニア新人研修を行いましたので、軽い紹介と、講義資料および一部講義動画(New!)を公開いたします。 2021年のエンジニア研修について 講義資料公開 Webアプリケーション基礎 HTTP/DNS ソフトウェアライセンス ソフトウェアテスト テスト自動化 アクセシビリティ Docker Chrome Developer Toolsの使い方 サイボウズのアジャイル・クオリティ デザインの役割と関わりかた データベース CI/CD セキュリティ モブに早く慣れたい人のためのガイド ITコミュニティ文化と情報発信に共通する成長と貢献の要素 正規表現 Kubernetesを使った開発入門 モニタリング入門 gRPC入門 日本語話

      2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    • 心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館

      長年、後回しにしてきた「正規表現」。四の五の言わずにはじめようよ!と20年前の自分に伝えたく、まとめてみました。 詳しい方が見ると、乱暴だったり、おかしなところがあると思いますが、入り口に立つことが大切だと考えています(書いた人は文系・グラフィックデザイン関連です)。 はじめにたとえば、文章中に「コンピュータ」と「コンピューター」が混在していて、これを「コンピューター」に統一したいとき、あなたなら、どうしますか? 単純な検索置換なら、次のような順番で処理できます。 ❶「コンピューター」を「コンピュータ」に一括置換する ❷「コンピュータ」を「コンピューター」に一括置換する ❸ ちょっと心配なので「ーー」(音引きの繰り返し)をチェック これはこれでアリなのですが、1回の作業でできたらベターです。 しかし、「コンピュ-タ」のように正しく音引き(ー)が入力されていない場合には単純な検索置換ではお手

        心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館
      • 正規表現の先読み・後読み

        正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字4つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ0の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。(?=

          正規表現の先読み・後読み
        • りょうくんグルメの文体を自動でもとに戻すやつを作りました - 開け閉め

          りょうくんグルメをご存知だろうか。知らなくても、本人のツイートの雰囲気は料理のレシピなんかで一度は見た文脈のはずだ。 こんなやつ。 まじでこの世の全てのタピオカ好きに教えてあげたいんだが新宿三丁目のceleb縁味には全ての人間を虜にする禁断のオレオミルクフォームがある。 これが濃厚黒糖で超絶美味いからぜひ全国のタピオカ好き、タピオカを愛する者たち、タピオカを憎む者たち、全てのタピオカ関係者に伝われ pic.twitter.com/wnnPvkJ2pr— りょうくんグルメ (@uryo1112) 2019年6月15日 「りょうくんグルメ」は文章が情報量に対してやたら長いので、pythonの練習も兼ねてアイデンティティである上から目線の構文を取り去ることにした。逆りょうくんグルメである。 手順は大雑把に分けて以下の3ステップ。 1. Twitterからりょうくんグルメのツイートをスクレイピング

            りょうくんグルメの文体を自動でもとに戻すやつを作りました - 開け閉め
          • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

            正規表現の"正規"って何 ある時ふと思いました。 「正規表現の"正規"って何だろう?」 「何を根拠に"正規"を名乗っているのか?」 と。 「誰かが『これが正規の表現だ』と言ったはず」で、 「それは周りにどうやって"正規"だと認められたのだろう」 ということが気になったので調べてみました。 "正規表現"という名前でなくて、"ジャックさんの表現"とか"記号ごちゃごちゃ表現"だったらこんな疑問も持たなかったのですけど。 数学における"正規"とは 一般に"正規"というと、"正規品"や"正規の手順"といったように"本物の(genuine)"や"公式な(official)"といった意味がありますが、数学の"正規"はちょっと違います。 数学で"正規"(および"正則"、英語では"regular"または"non-singular")は、ある概念に強い制限をかけたもの、という意味です。強い制限をかけたものは取

              正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
            • フロントエンドエンジニア御用達の MDN web docs を網羅した

              このリストは何? MDN web docs を、あたかも書籍の目次かのごとく整理しなおしたものです。それぞれ MDN web docs の記事へリンクしています。 なぜこれが必要になったかというと、人材市場でフロントエンドエンジニアが少なすぎる現状をどうにかするべく教育体制を整えるところから考え始めたのですが、それならまずは日頃お世話になっている MDN web docs を教材として扱いたいなと思ったからです。慣れてきてもよく参照するし「アレどこだっけなぁ?」を軽減もしやすいかなって。 MDN web docs は内容そのものはかなり充実しているものの、リンクがあらゆる方向に張り巡らせられており ある一定の流れに沿って読む ということが少々難しい側面もあります。特に初学者にとっては、迷子になりやすいかもしれません。 ですので、初学者でも学習しやすいように MDN web docs 全体の

                フロントエンドエンジニア御用達の MDN web docs を網羅した
              • 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

                先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17, 2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

                • シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita

                  入社1年目、趣味は整理整頓、 @pal4de です。 正規表現が大好きです。 先日投稿した記事が好評いただき本当にうれしかったです。もっとたくさんの人に読んでもらいたい!!! さて、上の記事で紹介したのは単語境界 \b でしたが、これは先読み/後読みを駆使して下記の通りに表せると紹介しました。 便利な\bですらショートハンドに過ぎず、真に強力なものは 先読み(?=...)と後読み(?<=...) だということを主張したい!!! わかりすい図解も添えましたので、是非お楽しみください🏝️ 正規表現の記号は4種類 先読みの紹介に入る前に、改めて正規表現を俯瞰してみましょう。 誤解を恐れずに言えば、正規表現に出てくる記号の種類は4つしかないといえます1 2。 このようにとらえてみると、正規表現と向き合うのがだいぶ楽になります。体系化された理解への第一歩ですね 🗿 図にもある通り、 行頭 ^ も

                    シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
                  • NoSQLデータモデリング技法 · GitHub

                    NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック

                      NoSQLデータモデリング技法 · GitHub
                    • Node.jsの後悔から生まれた新しい実行環境・Deno入門 〜簡単なアプリケーション作成ハンズオン付き〜 | さくらのナレッジ

                      こんにちは!小田島です。ウェブ業界に来る前は手品業界で働いていました。最近は外出自粛で手品をやる機会がないので家でひたすら練習しています。 前回の記事「いまさら聞けないNode.js」は、「わかりやすい」「いい記事」「背景の説明が丁寧」といった好意的な反応が多くて安心しました。 「Denoについては後日記事を書きます」と前回宣言したので、今回はDenoについての入門記事を書きます。よろしくおねがいします! 対象者 今回は、こんな人が対象です。 Denoって何? Node.jsとどう違うの? 全然触ったことないけど何か簡単で応用が効くものを作ってみたい 前回と違い、ハンズオンも含まれています。ぜひ読みながら実際に動かしてみてください。 Denoとは? 前回同様に超ざっくりと説明すると、JavaScriptとTypeScriptの動作環境です。作者はNode.jsと同じライアン・ダールです。D

                        Node.jsの後悔から生まれた新しい実行環境・Deno入門 〜簡単なアプリケーション作成ハンズオン付き〜 | さくらのナレッジ
                      • Ubuntu 22.04 LTS サーバ構築手順書

                        0 issue "letsencrypt.org" 0 issuewild "letsencrypt.org" 0 iodef "mailto:yourmail@example.jp" §OS再インストール さくらVPSのコントロールパネルから、OSを再インストールするサーバを選ぶ。 www99999ui.vs.sakura.ne.jp §OSのインストール操作 Ubuntu 22.04 LTS を選ぶ。 OSインストール時のパケットフィルタ(ポート制限)を無効にして、ファイアウォールは手動で設定することにする。 初期ユーザのパスワードに使える文字が制限されているので、ここでは簡単なパスワードにしておき、後ですぐに複雑なパスワードに変更する。 公開鍵認証できるように公開鍵を登録しておく。 §秘密鍵と公開鍵の作成 クライアントマシン側で生成した公開鍵を ~/.ssh/authorized_k

                          Ubuntu 22.04 LTS サーバ構築手順書
                        • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

                          導入 アイヌ語は日本語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま p, t, k, m, n, s, r などの子音文字を後ろの付ければ良いわけなので、アイヌ語ローマ字表記では、何も問題が生じない。しかし、元々開音節言語である日本語に特化したカタカナのような仮名文字で表記する際、鼻音 n は「ン」でなんとかなる(実はそれでもまずい事になっているけどここでは割愛する)が、p, t, k, m, n, s, r, h はどうしようもないので、特殊の捨て仮名(小書き仮名文字)を利用することになっている。 具体的には以下のような特殊仮名文字(通称 アイヌ語仮名)である。 ㇷ゚ -p ッ -t ㇰ -k ㇺ -m ㇱ -s ㇻ -(a)r, ㇼ -(i)r, ㇽ -(u)r, ㇾ -(e)r, ㇿ -(o)r お分かり頂けただろうか… 問題 r

                            アイヌ語仮名「ㇷ゚」に対する正規表現の罠
                          • 【ZOZOTOWNマイクロサービス化】API Gatewayを自社開発したノウハウ大公開! - ZOZO TECH BLOG

                            はじめに こんにちは。ECプラットフォーム部のAPI基盤チームに所属している籏野 @gold_kou と申します。普段は、GoでAPI GatewayやID基盤(認証マイクロサービス)の開発をしています。 ZOZOテクノロジーズでは、2020年11月5日にZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜を開催しました。その中で発表されたAPI Gatewayによるマイクロサービスへのアクセス制御に関して、当日話せなかった内容も含めて、API Gatewayについてこの記事で網羅的にまとめました。 API Gatewayやマイクロサービスに興味ある方、「API Gateway」という言葉は知っているけど中身はよく分からないという方向けの記事なので、読んでいただけると幸いです。 はじめに ZOZOTOWNのリプレイス マイクロサービス化の目的 ストラ

                              【ZOZOTOWNマイクロサービス化】API Gatewayを自社開発したノウハウ大公開! - ZOZO TECH BLOG
                            • 【ZOZOTOWNマイクロサービス化】API Gatewayの可用性を高めるノウハウを惜しみなく大公開 - ZOZO TECH BLOG

                              はじめに こんにちは。ECプラットフォーム部のAPI基盤チームに所属している籏野 @gold_kou と申します。普段は、GoでAPI GatewayやID基盤(認証マイクロサービス)の開発をしています。 先日、【ZOZOTOWNマイクロサービス化】API Gatewayを自社開発したノウハウ大公開! を公開したところ、多くの方からご好評いただきました。ありがとうございます。まだ読まれていない方はぜひご覧ください。 techblog.zozo.com 今回はその記事の続きです。API Gatewayは単にリバースプロキシの役割を担うだけでなく、ZOZOTOWN全体の可用性を高める仕組みを用意しています。本記事では、それらの中でカナリアリリース機能・リトライ機能・タイムアウト機能に関して実装レベルの紹介をします。 マイクロサービスに興味ある方や、API Gatewayを自社開発する方の参考に

                                【ZOZOTOWNマイクロサービス化】API Gatewayの可用性を高めるノウハウを惜しみなく大公開 - ZOZO TECH BLOG
                              • JavaScript Primer 2.0 - ECMAScript 2020に対応した入門書を公開しました

                                ECMAScript 2020の変更に対応したJavaScriptの入門書としてJavaScript Primer 2.0.0を公開しました。 JavaScript Primerのウェブサイトから閲覧できます。 ウェブサイト: https://jsprimer.net/ サマリIssue: ECMAScript 2020の対応 · Issue #1145 · asciidwango/js-primer 変更内容の詳細はリリースノートを参照してください。 Release 2.0.0: ECMAScript 2020対応 · asciidwango/js-primer 2.0.0の目的 JavaScript Primerは、継続的にメンテナンスするためにOSSとして開発しています。 ECMAScriptの仕様は年に一度アップデートされていて、現実でのJavaScriptの使われ方も変化していく

                                  JavaScript Primer 2.0 - ECMAScript 2020に対応した入門書を公開しました
                                • 君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita

                                  import re re.match(r'\d{4}-\d{2}', '٢٠٢٢-٠٦') Pythonで書いてはいますが、内容を補足します。「'٢٠٢٢-٠٦'」という文字列が、数字4文字+ハイフン+数字2文字にマッチするかどうか、という正規表現を書いています。 一見するとどう見ても数字4桁ではないので、正規表現にマッチしないように見えますよね???? 実は正規表現にマッチします!!!というのが今回の記事の内容になります。 そもそも正規表現における数字の扱いとは 今回はPythonの正規表現のライブラリを利用しているので、公式のリファレンスを見てみましょう。 該当の部分には以下のような記述があります。 \d Unicode (str) パターンでは: 任意の Unicode 10 進数字 (Unicode 文字カテゴリ [Nd]) にマッチします。これは [0-9] とその他多数の数字を

                                    君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita
                                  • JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA

                                    JavaScriptの仕様であるECMAScriptはEcma Internationalによって定められています。ECMAScript 2015(ES6)の登場以降は、ECMAScript 2016、ECMAScript 2017・・・と、年次で仕様が更新されています。ECMAScript 2022(ES2022)は2022年6月22日のEcma InternationalのGA 123rd meetingにて、ECMAScript 2023(ES2023)は2023年6月27日のGA 125th meetingで承認されました。 ES2022とES2023はすでに多くのブラウザやNode.js環境で利用可能です。本記事では新仕様と使いどころを紹介します。 ES2023 - 配列の非破壊操作 ES2023では配列を非破壊で操作できるメソッドが追加されています。非破壊とは、元の配列を変更せ

                                      JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA
                                    • SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向

                                      Software Design「データベース速攻入門」に「SQL50本ノック」が掲載されました - LIVESENSE ENGINEER BLOG 最近では、postgres-wasmなど、WebブラウザでDBを動かせるようになってきており、もう少しすれば、WebAssemblyを使って、ブラウザですぐにノックを始められるようになるかもしれません。もしも、また何年か後に記事を更新する機会があれば、試してみたいですね。 Web上からすぐに試せるpostgres-wasmはPagilaのデータを持っていくことが現時点で出来なさそうだったものの、SQLite3 WebAssemblyはSQLiteのデータを持っていけました。SQL50本ノックを気軽に試せそうです。 手順1 sakila-sqlite3をダウンロード まずgithubからsakila-sqlite3をダウンロードします。 gith

                                        SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向
                                      • 大統一 Node ツールチェイン Rome の野望 現状の実装

                                        つい先日 beta リリースされたフロントエンドのツールチェインの Rome について、その思想とコードを読んだ結果の現状について。 Rome Frontend Toolchain この記事は公式ドキュメント以外にもソースを読んで得られた undocumented な部分も含んでいるので、すぐ古くなる。その前提で読むように。 問題の認識とその解決手段 フロントエンドの最適化は実行前のプリプロセスに、エコシステムの開発リソースの多くが当てられている。Node のツールチェインが発達するにつれて、自前の パーサ+AST 定義を持つ実装が増えていった歴史がある。 acorn(estree) babel prettier typescript terser それぞれのツールの生成する AST はそのツールの都合で微妙に/もしくは大幅に定義がずれている。typescript に至っては完全に別物。こ

                                          大統一 Node ツールチェイン Rome の野望 現状の実装
                                        • Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 - Publickey

                                          Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 日本時間で昨夜11時50分頃から約30分のあいだ、CloudflareのCDNが全面的にダウンし、同社のサービスを利用していたWebサイトなどが影響を受けた問題について、同社はブログを更新。 今回のCDNがダウンした原因は、ファイアウォールに追加した新ルールの中に正規表現のミスが含まれていたためであることを明らかにしました。 参考:CloudflareのCDNが全面的に約30分ダウンし、世界中のWebサイトが影響を受ける。原因はソフトウェアの動作不良。ロールバックで対応 ファイアウォールに新ルールを追加したことが引き金に 同社のCDNにはWebアプリケーションファイアウォールの機能があり、新たにこのファイアウォールに追加したルールの中に間違いが含まれていたことがCP

                                            Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 - Publickey
                                          • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

                                            技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

                                              プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
                                            • Web Push for Web Apps on iOS and iPadOS

                                              Today marks the release of iOS and iPadOS 16.4 beta 1, and with it comes support for Web Push and other features for Home Screen web apps. Today also brings the first beta of Safari 16.4. It’s a huge release, packed with over 135 features in WebKit — including RegExp lookbehind assertions, Import Maps, OffscreenCanvas, Media Queries Range Syntax, @property, font-size-adjust, Declarative Shadow DOM

                                                Web Push for Web Apps on iOS and iPadOS
                                              • 開発者の日々の作業をサポートする様々なミニツールを集約したオープンソースのデスクトップアプリ・「DevToys」

                                                DevToysは開発者の日々の作業をサポートする様々なミニツールを集約したオープンソースのデスクトップアプリです。Windowsエコシステムを採用するように設計されており、Windows 10のビルド1903以降で動作するそうで、Windows専用のアプリとなっています。 JSONのフォーマット、テキストdiff、RegExpのテスト、base64のエンコーダー/デコーダー、ハッシュ化ツール、 UUIDジェネレーター、loremipsumツール、JSON⇔Yaml変換、カラーシミュレーター、PNGとJPGのコンプレッサー、Markdownプレビュー、HTMLやURLのエンコーダー/デコーダーなどが1つのアプリにまとめられています。 また、クリップボードのデータを扱えるようになっており、作業を円滑に進める事が出来ます。勿論オフラインで動作しますし、OSSなのでアプリを加えたり日本語化も可能で

                                                  開発者の日々の作業をサポートする様々なミニツールを集約したオープンソースのデスクトップアプリ・「DevToys」
                                                • セキュリティガードレールを作って、非エンジニアに安心してGCPを提供できるようにした話 - MonotaRO Tech Blog

                                                  はじめまして、モノタロウでGCPの管理をしている吉本です。 今回はモノタロウの社内全体でデータ基盤として使っているGCPをテーマに、大規模組織におけるクラウド運用の取り組みをお話します。 データ民主化による現場主導のデータ活用 クラウドの利用拡大に伴う課題 Cloud Asset Inventoryを利用したセキュリティガードレールの構築 まとめ データ民主化による現場主導のデータ活用 最近、データの活用・推進が様々な企業で実施されるようになってきました。 特に2018年あたりからデータ民主化と呼ばれる、職種に問わず自らデータを集計・分析して意思決定をする文化が広まるようになった結果、非エンジニアがSQLを書く事例が増えています。*1 *2 モノタロウでも職種問わずデータドリブンな意思決定を推進しています。 2017年にデータ基盤をBigQueryに構築して以降、積極的にSQLなどの研修な

                                                    セキュリティガードレールを作って、非エンジニアに安心してGCPを提供できるようにした話 - MonotaRO Tech Blog
                                                  • 我が家の BigQuery による台所事情分析 - nownab.log

                                                    弊家では銀行やクレジットカードの明細を BigQuery に取り込んでダッシュボードを作ったりしています。 また、そのために作った BigQuery 向けの Go 製 ETL フレームワークを OSS として公開しました。 本記事ではざっくりどんなもんかを紹介して、どう作るのかを説明します。 Google Cloud Platform Advent Calendar 2020 の 13 日目の記事です。 Google Cloud Japan の Customer Engineer の Advent Calendar もぜひご覧ください。 TL; DR 明細が BigQuery にあると、可視化もできるしアラートも出せるし、まぁなんでもできて便利 銀行明細レベルのデータならほぼ無料で保存、ETL、分析できる ETL フレームワーク bqloader を OSS として公開したから使ってくれよ

                                                      我が家の BigQuery による台所事情分析 - nownab.log
                                                    • Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発

                                                      Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 WebブラウザにはJavaScriptを実行するためのJavaScriptエンジンが搭載されています。それはChromeであれば「V8」、Firefoxであれば「SpiderMonkey」と呼ばれ、それぞれのWebブラウザベンダがECMAScriptの標準に準拠したうえで独自に実装しています。 そしてJavaScriptは以前から正規表現の機能を備えているため、正規表現を解釈し展開するための正規表現エンジンもそれぞれのWebブラウザベンダが実装を行っていました。 その正規表現エンジンについてMozillaは今後、V8の正規表現エンジンのコードをそのままFirefoxのSpiderMonkeyに取り込むようにすると表明しました。 Mozillaはこれを実現するため、V8用の正規表

                                                        Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発
                                                      • "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer Blog

                                                        こんにちは。MackerelチームにおいてCRE(Customer Reliability Engineer)をしているid:syou6162です。主にカスタマーサクセスを支えるデータ基盤の構築や、データ分析を担当しています。 今回は、壊れにくいデータ基盤を構築するため、Mackerelチームで実践していることを紹介します。 なぜ壊れにくいデータ基盤を構築するのか データ基盤が“壊れている”とはどういうことか 壊れてないだけでなく、壊れたら気付ける 前提とするシステム構成 壊れたことに気付けるよう監視する 1. バッチジョブが失敗したことに気付く 2. 投入されたデータの性質を監視する 3. ビューが壊れてないかを監視する 4. 利用状況を監視する そもそも壊れてない状態を保つ 1. データリネージを元に修正できるようにする 2. 使われていないテーブルやビューは定期的に掃除 おわりに 参

                                                          "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer Blog
                                                        • TypeScriptの型定義で麻雀の役判定をする 【dwango Advent Calendar 2日目】 - MANA-DOT

                                                          このエントリは ドワンゴ Advent Calendar 2021 2日目の記事です(夜が明けるまでは2日目!)。 はじめに TypeScriptには Conditional Types や Template Literal Types といったクッソ強力な型機能があります。 これらを用いて、今回は 2p3p4p2m3m4m2s3s4s4s5s6s8s8s のような天鳳牌譜形式の文字列を型引数に渡すと、麻雀の役判定をする型(あくまで型です、関数ではありません)を作ってみようとおもいます。 (ただし時間がなかったため断么九と平和のみです)。 Conditional Types, Template Literal Types って何? それぞれ具体的にどんなものか、マニュアルの例を用いて示すと、以下のような感じです。 // Conditional Types の例 interface Anim

                                                            TypeScriptの型定義で麻雀の役判定をする 【dwango Advent Calendar 2日目】 - MANA-DOT
                                                          • 正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects

                                                            2020/03/15 にお茶の水女子大学内でセキュリティ・キャンプ (https://www.security-camp.or.jp/) の宣伝をした際に、それに合わせて小さな講義を提供しました。これはその発表資料です。 --- 誤りを見つけたら、Twitter (https://twitter.com/lmt_swallow) の DM かポートフォリオサイト(https://shift-js.info/) で示されているメールアドレスまでご連絡ください。

                                                              正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects
                                                            • 個人的によく使うGitエイリアス、zshキーバインド - 本日も乙

                                                              最近、リモートワークということもあり、ペアプロというかAWS、GCPなどの操作をする際に一緒に画面を見ながら作業する機会が多いです。若手の同僚がターミナルソフトを起動してコマンドを実行するのですが、傍から見ているとエイリアスなりキーバインドなりを使えば効率的に操作できるのにと思うことがあります。 最近はGUIで操作することが多いのでターミナルソフトでコマンド操作することがあまりないのかもしれませんが、私は少し前までは(クラウドしかできない)ITインフラエンジニアをやっており、プログラミングよりもコマンド操作するのが圧倒的に多かったため、ちょっとしたことならGUIよりもターミナルで操作することが多いです。Windowsを使っていますが WSL2 + Ubuntu 20.04 LTSで開発環境を整えているため、操作に不自由はほとんどしません。 この手のエイリアスやzshなどのオススメ設定はググ

                                                                個人的によく使うGitエイリアス、zshキーバインド - 本日も乙
                                                              • 他言語プログラマが最低限、気にすべきGoのネーミングルール

                                                                概要 タイトルの通り、他言語から入門した人が最低限気にするべき、ネーミングルールをまとめました。 対象読者 Goの基本構文を理解している人を対象読者としています。 この記事で説明すること、説明しないこと 説明すること Goのファイル名、変数名などの名前付けに関するルールや慣例などを説明します。 説明しないこと 名前付け以外で気をつけるべきGoの書き方[1] がいくつかあります。 しかし、それらに関してはこの記事では説明しません。 筆者のバックグラウンド プログラマ歴はもうすぐ8年程で、Goの他には以下のような言語の経験があります。 JavaScript TypeScript PHP Ruby Java Scala Goは少し前に書いて、一時期書かない時期が続いていましたが、最近また書いています。 トータルするとGoの経験は1年半程度です。 意識すべき名前付けルール package名 利用し

                                                                  他言語プログラマが最低限、気にすべきGoのネーミングルール
                                                                • 8年以上開発されているRailsプロダクトーーfreee会計をRails 6にするまで - freee Developers Hub

                                                                  こんにちは、freee会計でエンジニアをしている @sakakibara-setu です。 普段は債権債務に関する機能を担当するチームに所属して開発を行っていますが、この度freee会計のRailsアップデートを担当することになりました。 実はfreee会計は、先日2021年12月にRails 5系からRails 6系へとメジャーアップデートされました。 ありがたいことにこのメジャーアップデートによる問題は一件も発生しなかったため、皆様には特にお変わりなくご利用いただけたかと思います。 その上で社内の開発環境においては様々な恩恵を得ることができたので、結果は成功と言っていいと思います。 しかしながら、その道のりはお世辞にもうまくいったことばかりではなく、反省すべきことも多々ありました。 アップデート作業には壁とも言えるような問題がいくつもありましたが、それはfreee会計が8年以上開発され

                                                                    8年以上開発されているRailsプロダクトーーfreee会計をRails 6にするまで - freee Developers Hub
                                                                  • GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々

                                                                    https://github.com/Songmu/gotesplit gotesplitというかなり便利なツールを書いた。Goのテストをいい感じのサブセットに分割して、それを実行するものです。このアプローチで、社内のテストを15分から3分くらいまでに短縮しました。 これを使えばCI環境での高速なテストの並列実行を簡単に実現できます。 実例 CircleCIやGitHub Actions上で簡単に導入できます。 CircleCIの場合 parallelism: 5 docker: - image: golang:1.15.3 steps: - checkout - run: command: | curl -sfL raw.githubusercontent.com/Songmu/gotesplit/main/install.sh | sh -s bin/gotesplit ./... -

                                                                      GoのテストをCIで簡単に並列実行する | おそらくはそれさえも平凡な日々
                                                                    • ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection

                                                                      YAPC::Japan::Online 2022 での発表資料です。 recheck: https://makenowjust-labs.github.io/recheck

                                                                        ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection
                                                                      • 日本語の折り返しをJavaScriptで制御する - LIVESENSE ENGINEER BLOG

                                                                        インフラエンジニアの中野(etsxxx)です。今回はWebのフロントの話です。稚拙な部分はご容赦を。 はじめに 前提知識 解決案の候補 解決案1: 手でspanタグをつける 解決案2: サーバーサイドの処理 解決案3: クライアントサイドの処理 クライアントサイドで文節区切り 実装 結果と考察 さいごに はじめに 2020年12月、リブセンスにQ by Livesenseという広報ブログが誕生しました。このブログは明朝体と縦書きと長文にアイデンティティがあります。 Q by Livesenseはこういう見た目のブログです。 Q by Livesenseは縦書きということで、漢数字を使っていたり、写真やイラストを使わずに純粋な文体で記事を書いていたりと、書籍のような日本語らしさが求められるデザインとなっています。 縦書きはWebエンジニアにとっても珍しい実装ですが、読者にとっても慣れないUI

                                                                          日本語の折り返しをJavaScriptで制御する - LIVESENSE ENGINEER BLOG
                                                                        • grep.app | code search

                                                                          Search across a half million git repos. Search by regular expression.

                                                                          • 大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ

                                                                            バックエンドエンジニアの徳富(@yannKazu1)です。先日、メドピアのメインサービスであるmedpeer.jpで使われているデータベースエンジンを、MySQLからAurora MySQLへと移行しました。今回はその移行のプロセスについて詳しくお話しします。 移行したデータベースの簡単なインフラ構成 移行方針 今回移行するデータベースは複数のアプリケーションから参照されており、ダウンタイムによるユーザー影響が大きいため、移行方針の検討の段階で重視したのは、ダウンタイムの最小化でした。これを達成するために、DNSのCNAMEレコードと、Auroraのリードレプリカを活用し、移行させることにしました。 DNSのCNAMEレコードの使用 データベースエンドポイントをアプリケーションに直接記述する代わりに、DNSのCNAMEレコードを利用して間接的に参照するようにしました。これにより、データベー

                                                                              大規模サービスのデータベースエンジンを MySQLからAurora MySQLへの移行 〜リードレプリカ, DNSを利用した最小ダウンタイム移行方法〜 - メドピア開発者ブログ
                                                                            • Vimmerに捧げる正規表現の基礎中の基礎 — KaoriYa

                                                                              正規表現はVimに限らずコンピューター上でのテキスト操作において非常に強力です。 しかし学習の難しさも非情で多くのIT技術者、Vimmerが正規表現に苦しんでいるのを幾度となく目の当たりにしています。 ただ正規表現は本当にそんなに難しいのでしょうか。 いいえそんなことはありません。 正規表現は本来とても簡単な原理で学習も容易なのです。 にも関わらず難しいと思われてしまうのは、原理を理解しないまま外見上の機能をそのまま覚えようとするからです。 本記事では正規表現の原理にフォーカスし解説することで、Vimを含む様々な正規表現実装の利用難度を適切にしようという記事です。 本記事は Vim Advent Calendar 2019 の1日目の記事です。 「正規表現」はもともと形式言語という言語学の一分野の研究から生まれました。 言語学というのは言葉を科学的に研究する学問です。 形式言語はその中でも

                                                                              • Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ

                                                                                PerlにはRegexp::Assembleという便利なライブラリがあります。 複数の正規表現を受け取り、それらのいずれかにマッチする正規表現を構築するためのライブラリです。 my $ra = Regexp::Assemble->new; $ra->add( 'ab+c' ); $ra->add( 'ab+\\d*\\s+c' ); $ra->add( 'a\\w+\\d+' ); $ra->add( 'a\\d+' ); print $ra->re; # prints (?:a(?:b+(?:\d*\s+)?c|(?:\w+)?\d+)) このライブラリのGo実装を金曜日の夜から書き始めて、ようやく形になってきたので公開しました。 package main import ( "fmt" "log" "github.com/itchyny/rassemble-go" ) func main

                                                                                  Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ
                                                                                • NextDNSというサービスは子持ち家庭のインターネットを安心安全にする - kuenishi's blog

                                                                                  tl:dr; 子供にも安全にインターネットさせたいが、なるべく親がコントロールしたい いままで /etc/hosts を工夫して狭い範囲でブラックリスト管理していたが運用が辛かった NextDNS.io というサービスがやりたいことを全部実現していたので課金した 我が家には小学生と幼稚園の男児がいて、どちらもラップトップを持ってネットサーフィンをする。分からないことは自分で調べさせたりScratchでプログラミングさせたりして遊ばせれば、これが結構な時間潰しになる。わたしの古いMacBook Airを使わせたりしていたが、予算に余裕が出たタイミングで上の子にはMacBook Proを買い与えた。いちどそのMacにMinecraftをインストールしてやったらすぐに廃人になったので、さすがにそれはアンインストールして禁止した。おおよそ自由にネットサーフィンはさせているのだが、インターネット上で

                                                                                    NextDNSというサービスは子持ち家庭のインターネットを安心安全にする - kuenishi's blog