A quick and dirty reference guide on how to setup a Tinc VPN.
October 23, 2015 - I was given the task of setting up a tinc VPN so that we could test performance for comparison against other VPN systems. This task took much longer than it should have. For that reason I am making this post to help myself and others remember how to do it again in the future. ---------- Installing tinc is straightforward enough. You can download the latest release and build it, or install from your favorite package manager. The configuration for tinc lives in /etc/tinc. The configuration is what seems to be the hard part of getting tinc to work.
A quick how-to guide for using the Phoronix Test Suite to measure server effectiveness.
October 5, 2015 - Not every server is made equally. On dedicated servers the hardware varies widely. On virtual and cloud servers the resource allocations also vary widely. Some servers are CPU optimized for maximum computing power. Others focus on having a lot of memory. Some servers are built to have a good balance of all system resources. Hardware aside, we require many differing tasks of our servers. Some applications are processor hungry, some need large amounts of disk space, while others take up a lot of memory.
An elegant and effective strategy for dealing with time in unit tests
September 15, 2015 - For this installment of the Testing in Go series I'll share a really nifty way to deal with time in your unit tests. When the behavior you are testing depends on the current time it can be tricky to assert on the results because the current time is a moving target. So, usually we end up resorting to approximations in our assertions that, while functional, always bother me a bit. In some cases, depending directly on the system's current time prevents acceptable test coverage. Consider this trivial example, which defines a calendar service with a method that identifies the current quarter of the current calendar year: File: calendar.
August 11, 2015 - I think it's time for a slight detour. In part 1 we covered the basics of testing in go. In part 2 we covered a few slick ways to execute tests. In part 3 we covered some of our recent endeavors at Smarty to build on the basics. Toward the end of that post we went into some detail regarding our approach to assertions. The assertions referenced in the GoConvey project are actually their own separate project that are imported into GoConvey. The nice thing about separating the assertions into their own separate project is that they can be used, well, separately.
State sex offender registries were created to keep families safe, but bad addresses cause them to fall far short of their purpose.
May 26, 2015 - A Deceitfully Comforting Illusion --- In the US today, there are nearly 800,000 registered sex offenders. As part of the registration process, each sex offender is required to report their physical address to a local police department (the exact process varies from state to state). This is intended to empower the public to be able to identify where these offenders live and if one of them lives near you. Having this information, you are supposed to be able to better protect your loved ones and yourself.
Records excluded from our statistical analysis and percent of bad addresses in each state’s sex offender registry.
May 26, 2015 - This post contains additional data referenced from the original sex offender registry post. Records containing the following were excluded from our statistical analysis: [Click to return to article] state=?? and zip=00000 or 11111 street contains "not available" street contains "incarcerated" or "incac" or "incrc" or "incarc" street contains "prison" street contains "absconded" or "absconced" or "absc" street contains "detention" or "det" or "det ctr" or "det center" or "detain" or "dt ctr" street contains "deported" street contains "incarc" street contains "unknown" or "unk" street contains "deceas" or "deseas" street contains "jail" street contains "custody" street contains "immigration" street contains "transien" or "transnt" or "trnsnt" street contains "homeles" or "homles" street contains "inmate" street contains "out of state" street contains "xxx" street contains "failure" or "fail" street contains "fail" street contains "register" street contains "verif" street contains "behav" street contains "institut" or "inst" street is blank street contains "vicinity" street contains "fugit" street contains "no longer" street contains "correctio" or "corr" or "correct" street contains "complia" street contains "reform" street contains "block of" or "blk of" or "blk" state is blank and city contains "unk" street contains "&" street contains "underpass" street contains "offend" street contains "resident" street contains "between" city contains "unknown" AND zip contains "00000" street contains "moved" street contains "nonresident" street contains "unconfirmed" state and zip are same AND city is blank zip contains "jail" city contains "Not available" and zip is unintelligible as a zip street = city street contains " street + city + state has more than two entries street contains "complex" street contains "reincarc" city contains "convict" street contains "usp" street contains "penit" street contains "hosp" street contains "louis" and city is "St.
May 25th can become a special day for geeks everywhere. Lets celebrate our collective geekiness.
May 23, 2015 - A Convergence of Holidays ----- It's almost Memorial Day, a time when most of us take a little extra time to relax. For a lot of us, it signals the start of summer; it comes around the time most school years end, and in warmer places, pools start to open after Memorial day. It's a day of barbeques and soda and chips and lots of other things. But this year is special. Get out your limited-edition comics and author-signed fantasy novels. Throw your polyhedral dice on the tabletop. Grab your lightsabers.
Artists put effort into their work that they don't have to. As coders, so do we. This is important, because it's actually what separates Art from work.
May 21, 2015 - Here at Smarty, we're mostly programmers and developers. There are a few needles in the haystack here that don't know "Unix" from "eunuchs", which is unfortunate, but we're working on that. And because we're all tech geeks over here, we like to talk about code, and tech, and why all that stuff is important. In that spirit, we decided to talk about code in a way that maybe all of us should have considered a long time ago. Your Hidden Meanings Let's start with a scenario. Imagine you go on a museum tour.
May 11, 2015 - Review: Welcome to part 3 of our "Testing in Go" series. If you're new here, feel free to catch up before reading on. In part 1 of this series I eluded to our perceptions of the standard testing tools provided by the Go tool and the standard library and what was missing for us. We all have different expectations of a testing tool and so it's no wonder that so many have been created. Part 2 of the series focused on how we have made the act of running tests effortless and automatic. Introduction In this post and the next few posts I'll focus on our approach to writing actual tests.
At Smarty May 4th is a pretty crucial holiday for us, and we're cautiously optimistic about what the Disney future holds.
May 4, 2015 - Here at Smarty, we enjoy our geekery. All of us indulge in pop culture to some degree, and while we all enjoy different flavors of said pop culture, there's at least one we all agree on without question: Star Wars. And that means that May 4th is a pretty crucial holiday for us. Hopefully all of you are celebrating in some way. We celebrated by buying tickets to go see Avengers: Age of Ultron together as an office. It's another Disney property. . . and it's part of the reason this article was written.
Tests that aren't easy to execute will be ignored.
February 27, 2015 - Here's part 2 of our "Testing in Go" series. If you're new, feel free to catch up before reading on. ------------------------ Basics You've already learned how to execute tests in Go for a single package. $ go test There's a bit more to it, though. You can run any package from anywhere if you provide the import path. For example, this command runs the actual tests for the "testing" package from the standard library: $ go test -v testing If you've already run go get github. com/bradfitz/http2 you can execute those tests from anywhere with this: $ go test -v github.
February 27, 2015 - Here's part 1 of our "Testing in Go" series. Introduction Thinking about trying Go? You won't regret it! It's great that testing is baked into the "testing" package from the standard library and the corresponding go test command (which has all sorts of useful and interesting flags). We'd like to show you how easy it is to get started using the built-in testing tools and introduce you to some tools we've created. This is the first installment of a series designed to do just that. All you have to do is create a file named like *test.