Free Trial

Machine Data Almanac

Big Data has a BIG STORY

Russell

No Magic: Regular Expressions, Part 3

Evaluating the NFA In part 1, we parsed the regular expression into an abstract syntax tree. In part 2, we converted that syntax tree into an NFA. Now it’s time evaluate that NFA against a potential string. NFAs, DFAs and Regular Expressions Recall from part 2 that there are two types of finite automata: deterministic and non-deterministic. […]

+ Read More
No Magic: Regular Expressions, Part 2

The code for this post, as well as the post itself, are on github. Converting the Parse Tree to an NFA In the last post, we transformed the flat string representation of a regular expression to the hierarchical parse tree form. In this post we’ll transform the parse tree to a state machine. The state machine […]

+ Read More
No Magic: Regular Expressions

The code for this post, as well as the post itself, are on github. Until recently, regular expressions seemed magical to me. I never understood how you could determine if a string matched a given regular expression. Now I know! Here’s how I implemented a basic regular expression engine in under 200 lines of code. The […]

+ Read More
Why You Should Never Catch Throwable In Scala

Scala is a subtle beast and you should heed its warnings. Most Scala and Java programmers have heard that catching Throwable, a superclass of all exceptions, is evil and patterns like the following should be avoided: This pattern is absurdly dangerous. Here’s why: The Problem In Java, catching all throwables can do nasty things like preventing […]

+ Read More
Fuzzing For Correctness

Handling the Edge-Case Search-Space Explosion: A Case for Randomized Testing For much of software testing the traditional quiver of unit, integration and system testing suffices. Your inputs typically have a main case and a small set of well understood edge cases you can cover. But: periodically, we come upon software problems where the range of […]

+ Read More
3 Tips for Writing Performant Scala

Here at Sumo Logic we write a lot of Scala code. We also have a lot of data, so some of our code has to go really, really fast. While Scala allows us to write correct, clear code quickly, it can be challenging to ensure that you are getting the best performance possible. Two expressions […]

+ Read More
Sign up for your 30 day free trial!
Sign up for
Sumo Logic Free
  • No credit card required to sign-up
  • Create your account in minutes
  • No expiration date
  • After 30 day trial period, reverts to Sumo Logic Free
    View All Pricing Options Privacy Policy