Lucas Nicodemus

Founder @ Nyx Studios

Read this first

Exist.io mood tracking in Day One

About a year ago, I signed up for Exist, a service that correlates passive data from things like Fitbits and Twitter to determine a variety of different data analytical statements about a user. The hidden gem in Exist is its mood recording feature. Each day, it sends an email asking how the day went, with a one sentence summary of why it went that way.

For one reason or another, it might be conceivable that one might stop using Exist, or at least to store moods in a more permanent location. I had no idea the amount of value I’d place on the mood rating system until I had been using it for some time. Having already expressed my love of Day One with ETD, it only made sense to build a similar tool for Exist’s mood data.

There are some caveats. This script assumes that you want to import all moods with moods and assumes you will only run the script exactly once. Unlike ETD, it will not...

Continue reading →


Slack & TShock

I started putting a large amount of time into TShock again. In the midst of attempting to solve the dilemma of whether or not we should use IRC or a site wide shoutbox, Guillermo Rauch of Socket.IO fame published a blog post called “Slackin,” detailing how Slack, the team messaging service, improved the Socket.IO community greatly within the first week of its introduction. Slack is not a service that offers open invitation URLs, so the more useful part of his post was the simple NodeJS app that he provides for delivering invitations to new users – effectively creating an open-signup Slack instance. I set up the invitation server a few days later, and at this time of writing, we have 36 members (and 4 bots) registered with Slack. Previously, IRC was dead as far as usage goes, and the shoutbox had, at maximum, around 20 posts a day.

Rather than type a detailed report about how Slack is...

Continue reading →


Hosting a grief-free gameserver

Terraria and Minecraft share a lot of similarities, but the unfortunate similarity shared between the two is the prolific variety of hacks and cheats that allow individuals to use clientside modding to their advantage. Unlike cheats in competitive games, however, these cheats often focus on world destruction or rampant grief that ruins hours of work. Leaving the server as a player to avoid the attack won’t do any good if the world is irreversibly damaged.

Most of the time, the cat and mouse game between the cheating and the anti-cheat communities reduces the threat potential to a spectrum, somewhere between undetectably low levels of cheating (exploiting TShock’s range checks, for instance) to demonstrably higher levels of exploiting (such as fuzzing TShock itself for vulnerabilities). Even if this weren’t the case, cheat authors would still constantly work-around ways to break in and...

Continue reading →


Upgrading XenForo from 1.1.4 to 1.4.5

The TShock for Terraria forums have been running XenForo, an excellent forum installation that mixes modern discussion with things like AJAX and a refreshed design. XenForo is great, but I had no idea how things would go upgrading from 1.1.4 to 1.4.5 – four years worth of upgrades, in one go. The task was daunting, to say the least.

Performing the upgrade

Upgrading turned out to be dead simple. I renewed our license for a year of support, downloaded the latest upgrade package, and uploaded it. The upgrade looked to be performing well, but at the end it hit four database errors because [bd] Forum Watch conflicted with a newly added XenForo feature. This caused the upgrade to fail.

Fixing the upgrade

The solution to this broken upgrade was to login to the admin panel, disable, and then uninstall the Forum Watch add-on. After doing this, I went back to the upgrade url and hit “rebuild...

Continue reading →


My Android Homescreens

Every now and then, a thread fills up with pages and pages of homescreens, from iOS, Android, and Windows Phone. The common theme is a mix of widgets, icons, and general clutter. Mine is a little different.

Launcher

This is Android 5.0, using the Google Now launcher. On the far left screen is Google Now, which is quite useless to screenshot, but does contain the vast majority of passive information that widgets used to give me: the weather, package shipments, news articles, etc. In the remaining two homescreens, I manage everything else. I could remove the app drawer entirely, and I wouldn’t miss a beat.

Primary Screen

Main Screen

This is my main homescreen - which I typically sit at during idle. The four apps on the bottom are the most likely ones I’ll use when my phone is unlocked: Camera, Twitter, Hangouts, and Chrome. Absent is the phone icon, which can be accessed from the lockscreen. I don...

Continue reading →


Fix the Nexus 5 (5.0.1) Memory Leak Yourself

Issue #79729, “Memory Leak on Lollipop Crashing Apps,” has been tagged as fixed, and scheduled for a future release. However, that tag was added over a month ago, and many Nexus 5 owners (like myself) are growing frustrated with the lack of any sign of an OTA in the near future.

This is a very brief list of steps I’ve followed in order to mitigate the issue. It does not fix the underlying problem, but it does mitigate the biggest cause for noticing the memory leak: a long period of device uptime.

Root your Nexus 5

  • Connect your Nexus 5 to your PC using a Micro-USB cable. Power off, and power on by holding down the power button and the volume down button. You should see fastboot.
  • Download ClockworkMod Recovery Touch and the Android SDK Tools
  • In the Android SDK Tools, install only the platform tools (ADB) and come back here.
  • Using a command prompt or terminal, navigate to the ...

Continue reading →


A Year with Day One

A year ago, I started writing in a Mac journaling app called Day One. Bloom has won numerous awards for it, and for good reason: it effectively turned me, and so many others, into journaling addicts. Over one year, I wrote 547 entries, with 202 photos attached to them. More importantly, I was consistent in writing at least something every couple days. The longest I went without an entry was five days.

Some entries are long, and others are just sentences. But the captured moments, no matter the length, are an infinitely useful snapshot of consciousness. They’re invaluable to have, and Day One made capturing them addictive and fun.

I’m excited to see how much I write in 2015, that’s for sure.

Continue reading →


CP7 Regional Advancement Prediction Accuracy

In my previous post discussing the accuracy of The Magi, I ended with a warning:

To the teams that are predicted to be in the top three in their state: Cisco will decide your fate.

This was a well served warning, because this round of projections was far less accurate than the past round.

  • 52% of projected wildcard teams were demoted. The odds of a team keeping their wildcard advancement was less than .
  • The Magi correctly identified 221 teams as advancing, out of 280 total teams advancing to regionals. The margin of error was 21%. In other words, a team’s chances of being incorrectly predicted was 1/5.

See you in regionals!

Continue reading →


IPv6 and DOCSIS 2.0 Performance Degredation

Note: This post is exceedingly technical in nature. For those experiencing similar problems, skip directly to the fix.

The Problem

After coming home during break from university, one of my first objectives was to replace a dying wireless router purchased in December of 2013 with a better one. Like many routers in the house prior, it began suffering connection speed degradation issues, to the point where the connection was next to unusable for any more than one client streaming video or downloading files at a time. As a result, I immediately replaced the router with a recently purchased AirPort Extreme Base Station.

While speed and bandwidth metric sites such as speedtest and speedofme showed improvement in download speed (6Mbps down versus 30Mbps), eerie performance problems cropped up. On some websites, performance was not better, but was dramatically worse. Loading a Google search...

Continue reading →


Colorado State University’s Directory: A Nightmare Waiting to Happen

Like many universities and colleges, Colorado State University has a directory. Unlike many universities, the CSU directory also contains the full legal name, college, department, major, mailing address, and phone number of every student enrolled on campus that hasn’t opted-out via RAMweb, the university’s student dashboard.

From a privacy and a security standpoint, this is a distressing concern. From potential stalkers and attackers to web spammers are able to find identifying personal information about a potential target with as little as a student’s name. The search does fuzzy matching on any input, making it not only possible to locate a specific person enrolled, but a collection of individuals with matching names instantaneously.

Their directory clearly appears to be developed for the purpose of locating students, indicating that this was surely not a case of “inclusion by...

Continue reading →