Posts

  • Vector database Recommender System

    Dense vector embeddings make it easy to find similar documents in a dataset. With a document in the embedding space, just look at the other documents that are close, and probably they are related. This is called a k-nearest neighbors (KNN) search. Classic recommender systems such as collaborative filtering require a lot of user data and training. However with pre-trained embedding models you don’t need any training to recommend related documents.

  • ElasticSearch Boolean Query Performance

    A Boolean Query caused performance issues. The problem was that an empty filter clause behaved differently from a non-empty filter clauses with match_all and should clauses, because of tricky minimum_should_match behavior. I’ll try to explain what happened and how to fix this issue.

  • Creating efficient File Storage of Uploads for Web Applications

    At my company, Symbaloo, we have various features that need storage of files, mainly images uploaded by users. Files are stored on the filesystem of the servers. The files are usually referenced from the database to a path on the file system. It’s important to do this correctly, so we’re sure the paths in the database point to existing files on the file system, and files on the file system have a reference in the database. It’s bad if users see an <img> tag with a file that doesn’t exist! On the other hand, to keep hosting costs down we don’t want to store more than necessary. In this post I will explain how we solved this problem and now store files efficiently.

  • Reactive ReactJS: improving data flow using reactive streams

    Many people that use ReactJS as their renderer, are using some kind of the Flux architecture to store data, react to actions and notify components about changes. After a University project involving Scala and RxJava, I wanted to use these ideas together with ReactJS views. Besides that I found two things missing in the Flux architecture:

  • ReactJS in Java Hello World

    ReactJS is becoming a hugely popular solution for building complex Web Applications. It is so nice to use because it really resembles building applications like you used to in the good old PHP days a long time ago, where you construct the HTML once on the server, and be done with it. Don’t think about changing state over time, just render once, and refresh once the data changed.

  • Tree Traversal, Depth first and Breadth first in Haskell

    Lately I’m really digging Functional Programming, and especially Haskell. I’ve been reading Real World Haskell, which is a very nice free book about Haskell.

  • Dynamic disassembling instructions with ptrace and udis86 for timing analysis

    For a University assignment for a course called Real-Time Systems we had to implement a prototype for timing analysis by tracing instructions.

  • Setting up a MySQL database

    This post is just for future reference with a few MySQL commands I can’t really remember yet for creating a new database and mysql user. Probably now I posted them here, I will remember them ;). So it might be interesting or less interesting for you.

  • Reactive Programming

    Most programming languages or techniques nowadays are sequential. When executing a statement c = a + b, c is the result of the addition of the current values of a and b. If either one of those variables change their value, c is not changed.

  • I have a Blog!

    Usually I don’t have too strong feelings about certain topics. Still, I wanted to create a place where I can write about stuff, when I’ve created something on GitHub or some other in-dept blogpost. I’ve written on the MooTools Blog but sometimes I’d like to write about something else. Don’t expect lots of posts, I’m not a David Walsh ;).

subscribe via RSS