rewrite: a rust-powered, in-place file rewrite utility

Let’s say you’ve got a terminal open and you want to sort the contents of a file before you email it to a friend. The file can contain anything and it could be of any length, it doesn’t matter. What do you do?

The obvious answer is to use sort. Sorting the file is as easy as sort myfile – except it doesn’t actually sort the file, it sorts the *contents* of the file and dumps them to the command line (via stdout). So how do you sort the file “in-place,” so-to-speak? Again, the obvious answer would be sort myfile > myfile,1 redirecting the output of the sort command back to the file you want to ultimately send sorted.

Continue reading


  1. Don’t do this! 

SecureStore: a .NET secrets manager

SecureStore is our open-source (MIT-licensed) solution to secrets management for .NET developers. It’s intended to be dead simple and boldly embraces the KISS principle. We’ve been using it in production for a while now (years, actually!), but hadn’t gotten around to officially releasing it despite its public availability on our GitHub page.

Continue reading

srtresync: easy correction of linear drift for srt files

We’ve just open-sourced some code we’ve been using in-house in the form of srtresync, a smart and easy-to-use utility that can correct both traditional “fixed offset” errors as well as the more complicated “linear drift” issues that can affect srt subtitle files.

srtresync has been released under the terms of the MIT license, and is available on github, waiting to be forked and made even more awesome in the way that only open source software can be. It’s cross-platform (written in rust), and can be used on Windows, Mac, Linux, or FreeBSD. Use is quite straightforward in both modes, and the accompanying detailed README file should quite-easily double-up as a man file.

Continue reading

Case-sensitive SEO URL redirects and routing for IIS and ASP.NET MVC

At NeoSmart Technologies, we have a special affinity for ecosystems running both Windows and *nix in unison, each doing things they excel at. Half of this website is running ASP.NET MVC under IIS 8.0, while the other half is running under nginx on FreeBSD, everything behind an nginx reverse proxy. Windows likes to make things easy for users by being a primarily case-insensitive platform, both when it comes to the local filesystem and the web. FreeBSD and Linux on the other hand, like most of the unix world1 are explicitly and unapologetically case-sensitive.

On the one-hand, IIS defaulting to case-insensitive URL routing means that your users are far less likely to a see a 404 “Page not found” error as a result of a fat-fingered or mangled URL (which as we all know can be the fault of either the user or the developer), but it also means that when Google’s spiders and ‘bots come around looking to index your content, you’re likely to wind up penalized for having duplicate content. The web itself is officially case-insensitive, and technically both example.com/something and example.com/Something are completely separate, unique, and independent URLs that despite all semantical similarities share nothing in common (though you’d be mad to actually host different content on URLs differing only in spelling).

Welcome SeoRedirect, part of NeoSmart Technologies’ open-sourced Web Toolkit library, which provides case-sensitive routing for ASP.NET on IIS. With the latest update (freshly pushed!), SeoRedirect also gives you control over which GET parameters are also preserved, because apparently worrying about case-sensitivity alone just isn’t enough.

Continue reading


  1. Mac OS X is a notable exception here, as by default it uses HFS+ in a case-insensitive mode, though an HFS+ implementation w/ case-sensitivity is enabled (but rarely used). 

Open Source, 100% Compatible ln for Windows (and Junction Point library)

We’ve been huge fans of symlinks for forever, and even posted about Windows Vista’s new mklink commandline utility with quite the passion back in 2006 when the ability to create soft-links from the commandline was first added to Windows.

However, there are a few things that have forever irked us about the ln lookalike called mklink.exe:

  • It’s called mklink and not ln. (I mean, you just get can’t get around that fact)
  • The arguments are switched around. `mklink something_doesnt_exist actual_file` is just…….. wrong!
  • By default, mklink will create softlinks and not hardlinks. ln requires the /h flag to create a hardlink.
  • mklink isn’t smart enough to distinguish between files and folders. You need explicitly tell it via the commandline.
  • Even then, mklink has two different switches depending on the type of directory link you want. /D for softlink’d directories, and /J for hardlink’d directories.
  • mklink can’t be used outside of cmd.exe (such as in PowerShell). (Hat tip: Jason)
  • And, of course,  mklink isn’t open source.

So we made our own.

Continue reading

Contributing to the Open Source Community

A week ago, we tweeted a promise to contribute more to the open source community. As a Research & Development organization, there’s a lot of random code samples, small libraries, forks/modifications of popular scripts, and more that’s just lying around, begging to be open sourced.

While a lot of these may prove to have little to no value to anyone, given how easy it is to make things open source thanks to github, there’s no real drawback to throwing them out there for anyone that may benefit at some unknown point in the future.

We have a couple of hundred miniature projects, test code samples, and other such content across a number of drives to sort through, and whenever we find something useful, this is our promise to the community to share it. To that end, we’ve set up a github repository at http://github.com/neosmart where we’ll be uploading the code, and from where you’re all more than welcome to check it out and contribute back.

Continue reading

Richard Stallman Attacks the Bill & Melinda Gates Foundation

Richard Stallman: legendary founder of the Free Software Foundation, purveyor of the GPL, defender of open source. And – as of today – expert FUD manipulator.

Bill Gates

Obviously someone was seriously pissed off at the abundance of (largely positive) press coverage Bill Gates has been receiving as he stepped down from his final roles at Microsoft.. and it appears Mr. Stallman just couldn’t bear to let the man he hates more than any other step down without getting that last word in.

In an article by Richard Stallman published on BBC today, Stallman pulled back no punches bashing not only Bill Gates, Microsoft, and makers of proprietary software everywhere but also took the incredibly cheap shot of accusing the Bill & Melinda Gates Foundation of working to ruin the very countries they’re trying to help:

Continue reading

WordPress, PerformancePress, and GSoC 2008

For those of you that haven’t yet heard, WordPress is once-more taking part in the Google Summer of Code. Google Summer of Code 2008 is a Google-sponsored program where college students are encouraged to contribute to their favorite open-source projects for a summer, and in exchange both they and their mentors receive some monetary compensation/motivation for their efforts.

I really don’t need to go into details about this much, since Lloyd Budd has done such a good job explaining what it is and what WordPress hopes to achieve in this program. This year, WordPress has an even-larger and more-exciting list of possible projects than before, along with a list of the mentors available for each idea. This Google Summer of Code, I’ll be mentoring for the WordPress projects in the one area that is closest to my heart: improving performance.

It would be unfair to say that WordPress is slow or an inadequately-performing blogging engine, because that’s not really true. "Performance," more than any other software characteristic or trait, is a very relative and subjective index. It depends on thousands of different factors, it has dozens of different baselines, and most confusingly of all, sometimes the perception of performance matters more than the performance itself.

Continue reading

Family Misunderstands Open Source, Panics, & Sues the Wrong Person…

Open source is supposed to be a way of simplifying licensing issues and sharing your software/music/video/other content with the masses — freely and magnanimously. Problem is, what happens when something open source is found to be a (possible) violation of some else’s rights? What happens to its derivatives? Do they just pack up shop and find something else, or are they legally responsible for their actions? In what seems poised to become a landmark case on this issue, we’re about to find out.

A Texan family is now suing Virgin Mobile for using a photo of their daughter, Alison Chang, in an ad campaign – the catch is, it was released by the photographer on Flickr under the Creative Commons Attribution license, and that’s where Virgin Mobile got the photo from. The problem is, the girl featured in the photo had no idea her photo was being used – or that it was released under the Creative Commons license.

As the case currently stands, the Changs are suing consumers of open source works and not the original party responsible for the release of the work as an open source material without a proper media consent form.

Continue reading

Why Microsoft Won’t ID Patent Violations…

Earlier today, Microsoft announced it will begin actively seeking reparations for patent infringement by Linux and the Open Source Community in general. Larry Augustin posted his thoughts on the matter, expressing his opinion that it’s fear of having these IP-infringement claims debunked or challenged that’s keeping Microsoft from publishing these 235 alleged infringements to the public – and instead waiting until the OS community comes to the bargaining table. But let’s be realistic, shall we?

If Microsoft Corporation doesn’t have the biggest and baddest team of lawyers law firms, who does? It’s probably safe to assume that more than half of these patent infringements really are just that. Put aside the legitimacy of software patents in the first place and just look at the facts as they stand. Open source software gets its code from millions of developers and no amount of auditing or quadruple-checking will ensure clean-code. Despite Microsoft’s claims of “openly and knowingly” engaging in patent-violations, that’s most probably not the case.

Continue reading