Strongly-Typed, Server-Rendered Views with React and TypeScript

Tags: React TypeScript Node.js

March 11, 2018

Comments

After completing this tutorial, you'll be able to use React to render templates server side as part of a Node.js application. This will be set up in a way for the TypeScript compiler to catch any issue with rendering the view, including incorrect view model data and dealing with renamed files. I used Visual Studio Code for the tutorial, since it's a great cross platform editor/IDE, but you can use any tools you like. Other popular options include WebStorm. The Problem Before showing how to do this, I should show why one would want to do it in

SPO - Exploring Optimization & Conclusion (Final Project Update)

Tags: SPO

January 06, 2018

Comments

In my last post on my SPO project, I talked about finishing setting up my test environment so that I could run proper benchmarks. Now, I'll be exploring the code of the SipHash function in detail and looking into ways to optimize it. The body of the function (minus the code I added to measure it looks like this: /* Test of the CPU is Little Endian and supports not aligned accesses. * Two interesting conditions to speedup the function that happen to be * in most of x86 servers. */ #if defined(__X86_64__) || defined(__x86_64__) || defined (__i386__) #define UNALIGNED_LE_CPU

SPO - Env on AArch64 and Better Test Data (Final Project Update)

Tags: SPO

January 04, 2018

Comments

Since my last update on my final SPO600 project, I have replicated my development environment on the school's AArch64 server. I did indeed run into the problems I expected. The "json" Ruby gem, as simple as that may sound, would not install on the server. The server didn't have a header file that the gem's C extension required. I tried finding out which system packages I would need to install to get it working, but I didn't want to be randomly installing various things on a server shared by every student in the class, so I ended up

SPO - Setting Up Env & Adding Benchmark Code (Final Project Update)

Tags: SPO

January 03, 2018

Comments

As I mentioned in my previous post, I set out to choose a better hash function to use in my project. My main concern was that the function I chose would not be called very often, did not have much actual industry usage (since it would only be called in the C client of the software, not the server itself), and it was just too simple for me to be able to do much. My new chosen function, SipHash, has more steps and, unless the entire community has already optimized it as much as possible, I should have more work

SPO - Picking a Better Hash Function (Final Project Update)

Tags: SPO

December 29, 2017

Comments

In my previous post about my status on my SPO600 final project, I decided upon the Redis project. I had done a bit of exploring of its source code and I thought I found a hash function that was used extensively. Recently, I've explored its source code more and learned more about how it works internally. I discovered that the hash function I found was actually a dependency used in limited circumstances. It was taken from the C client code (and I'm looking at the server application's code here). I can only imagine that it would be used in limited

SPO - Beginning my Open Source Contribution (Final Project - Phase 1)

Tags: SPO

December 16, 2017

Comments

My final project for my SPO600 class is to find a hashing or checksum algorithm in popular open source software and improve it using the optimization techniques I learned in class. We were given the example of MurmurHash, a non-cryptographic hashing function. However, I wasn't able to find many uses of this online. Where I did find it, it already seemed to be fully optimized. I decided to think critically about what role hashing plays in computer science. I remembered learning about MongoDB and I liked how it generated the GUIDs for documents as they're inserted. Each was guaranteed to


Matt Welke

Software developer, open-source enthusiast, ramen lover