こんにちは、虎の穴ラボの古賀です。 みなさま、全文検索エンジンを使っていますか? クラウドだと「Amazon Elasticsearch Service」や「Azure Cognitive Search」など、さまざまな選択肢があると思います。 今回は、虎の穴ラボの社内のWebツールに導入できそうな、簡易的な全文検索エンジンにどのようなものがあるか調べた際に見つけた、「Bayard」という全文検索エンジンを試してみました。 「Bayard」は、Rust製の高速かつ軽量で日本語の全文検索ができる検索エンジンです。導入手順が比較的簡単で、Webツールの検索機能の改善に使えそうです。 Bayardとは? Bayardは、Raft Consensus Algorithm と gRPC を実装する、 Rustで記述された全文検索およびインデックス作成のサーバーです。 Tantivy(Rust製 全文
This is the first in a series of blog posts intended to provide a gentle introduction to flakes, a new Nix feature that improves reproducibility, composability and usability in the Nix ecosystem. This blog post describes why flakes were introduced, and give a short tutorial on how to use them. Flakes were developed at Tweag and funded by Target Corporation and Tweag. What problems do flakes solve?
The BWT (Burrows Wheeler Transform) has long fascinated people for its ability to capture complex correlations with a very simple inverse transform. Unfortunately despite that inverse transform being very simple, it is also slow. I will briefly review the inverse BWT (i-BWT) and then look at ways to speed it up. Jump to the end for the punch line : speed results and source code. Let's briefly revi
In this article we will be exploring what parser combinators are, what runtime parser generation is - why they’re useful, and then walking through a Zig implementation of them. What are parser combinators?Why are parser combinators useful?Going deeper: runtime parser generationA note about traditional regex enginesImplementing the Parser interfaceCompile-time vs. run-timeThe parser interfaceZig ge
In 2017, I said that “asynchronous Rust programming is a disaster and a mess”. In 2021 a lot more of the Rust ecosystem has become asynchronous – such that it might be appropriate to just say that Rust programming is now a disaster and a mess. As someone who used to really love Rust, this makes me quite sad. I’ve had a think about this, and I’m going to attempt to explain how we got here. Many peo
こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 本記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j
I spent a lot of time and effort digging up the numbers and facts for this post! Lots of people keep referring to the awesome summary put together by a friendly pseudonymous “Tim” which says that “53 out of 95” (55.7%) security flaws in curl could’ve been prevented if curl had been written in Rust. This is usually in regards to discussions around how insecure C is and what to do about it. I’ve blo
In preparation for my computer graphics exam next week, I decided to take an excursion to the low-level side of things: ray marching ASCII graphics of rotating spheres! Multiple ways to create an image Generally, there are two different ways to generate an image with a computer: Object-order rendering (rasterization) Image-order rendering (ray tracing, ray marching) Object-order rendering is the t
はじめに やめろ、ではなく、やめたほうがいい。です。自分のユースケースに合ってるか今一度確認することを推奨します。基本的にはAlpineは避けたほうが良い、というのが2021年時点での私の認識です。 なんで? libcに一般的な互換性が不足しているからです。Ruby、Python、Node.jsなどでNativeモジュールをバンドルしているアプリケーションの場合、パフォーマンスの劣化や互換性の問題にぶち当たる場合があります。 superuser.com あとは他のベースイメージの軽量化もそれなりに進んできていて、Alpineが定番軽量イメージと言う認識は2018年頃には消えつつあったかなという認識でいます。 どうすりゃええねん ※Debian Slimがあるやんってツッコミ結構もらったんですが、Slimは当たり前過ぎてもう紹介しなくていいかなっていう甘えで省略していました。よろしくおねがい
This is an ongoing series about: How to build a constraint solver? If you haven't read this post: Perfect as it is part 1 ;) Otherwise have a look at the sidebar on the left for all posts in this series. More than 2 years ago I wrote a Sudoku solver in Python. I really enjoyed it and therefore I've spend some time to do the same in Julia just faster ;) Then I wanted to build a whole constraint-pro
This video might take a few seconds to load. Please squint for best results :). The results of this experiment are not exactly close to my target as you can see, but I thought it was worth a blog post anyway. There was this rough idea I’ve been thinking about in Conway’s Game of Life for a really long time. I wonder if it's possible to use some kind of stochastic algorithm that gives you an initia
Why I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun ← Back to Kevin's homepagePublished: 2021 March 7I’ve spent the last year building keyboards, which has included writing firmware for a variety custom circuit boards. I initially wrote this firmware in Rust, but despite years of experience with that language I still struggled quite a bit. I eventually got my keyboards wo
Copyright (c) 2018-2021 the Deno authors. MIT License. 日本時間の今日(2021 年 3 月 3 日)に Deno の v1.8.0 がリリースされました。 詳細なリリース内容は上記のリリースノートにまとまっていますが、ざっと紹介していきたいと思います。 WebGPU の実験的サポート ICU サポート カバレッジツールの改良版 deno coverage Import maps が安定化 module フェッチ時の Auth トークンサポート Deno.test の exit サニタイザ Deno.permissions 安定化 Deno.link Deno.symlink 安定化 Deno.metrics の粒度が細かくなった deno fmt で JSON をフォーマットできるようになった Deno.emit で IIFE をサポ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く