blog master mode
subscribe to this tag
show all posts as opposed to just those tagged OSKWARE
preview

The new oskstatus is here!

by osk at 2023/06/24 (Sat) 8:41:23 pm (edited)PERSONALUPDATEOSKWARE

If you've ever looked at status.osk.sh before, you might have noticed it's not very good. That changes today! I've rewritten it from the ground up, as a proper site as opposed to a hacky PHP script. Go and check it out!

This has been in the works for quite a while! I originally started working on it last year, around late August, but simply didn't manage to get it off the ground. A recent multi-hour outage that should've been totally preventable (...I was asleep, I just had to restart MongoDB) spurred me on to get back to work on it, to solve the problems that led up to it.

I've always hated the way the modern status page works, and this is also represented in my previous status page. Modern status pages (Discord's status page is a prime example) aren't actually status pages, they're PR tools. In fact, Atlassian Statuspage (the most popular status page software, the one Discord also uses) expressly tells people not to automate their statuspage. Atlassian themselves say they're "big believers in maintaining a human touch with incident communication". However, that undermines the main purpose of a statuspage, to answer the question: Is the site broken?

The previous statuspage did just the bare minimum to answer that question, the one I deem most important. Quite literally, it just showed "ONLINE" or "OUTAGE". All automated. And with that, it's already better than whatever Statuspage is doing. In the new statuspage, I highly increased the amount of information, as there's a lot of nuance that a single boolean can't show. For example, I show the amount of players online, so if suddenly an entire continent has problems connecting, it'll be visible even if the statuspage server can still reach the game.

However, there's one more followup question that users tend to have if something ends up being broken: how long will this last? The new statuspage lets me write incident reports, so as soon as I notice something's up, I can write a reason why, and give insight on how long I expect things to take. To add credibility to those insights, you will be able to see all past incidents. That way, instead of creating trust by lying to customers with a blog disguised as a status page, I hope to create trust by showing the real situation, and explaining it where needed.

In addition, I added the ability to schedule maintenance on it. That way, if longer maintenance is coming, you'll be prepared. Of course, I'll still also post notifications about such maintenance on Twitter and Discord.

Of course, these aren't "new" concepts, but it seems like the concept of an honest statuspage that shows real data as opposed to a glorified blog has fallen out of style. I hope you won't need to look at it often, but if you ever do, I hope you'll appreciate the attempt at creating a realistic, honest statuspage!

For a while, I've had multiple policy documents kinda randomly thrown around my websites. For example, branding information on a subdomain, the promotional kit policy on the blog... And, even though I use Matomo on all my sites, there wasn't really a formal privacy policy or ToS on them, it was simply implied the same as the TETR.IO one would be followed. (This is true, albeit slimmed down, since there's no ads etc. on them.)

For this reason, there is now a proper knowledge base over at txt.osk.sh! It hosts the branding information (unchanged), the promotional kit policy (changed due to abuse, see below), and a new overarching Terms of Service and Privacy Policy pair.

The osk General Terms of Service and Privacy Policy

From today on, all osk services will be governed by the General Terms of Service. The ToS is very simple, and is very similar to what you're used to on TETR.IO (no liability, no guarantee of fitness for any purpose, reservation of right of removal and cessation).

In addition, all osk services will follow the General Privacy Policy. It, too, is very simple — I use Matomo to get analytics, and that's it. I don't sell that data.

These documents act as a fallback for if no other document is specified. For example, on TETR.IO, its own terms of service take precedence. As such, on TETR.IO, you agree to both the osk GToS and the TETR.IO-specific ToS. If any TETR.IO-specific clause were to clash with the GToS, the TETR.IO-specific clause takes precedence. Pretty simple, right?

The Promotional Kit Policy

From today on, the distribution of native advertisements on TETR.IO (the "promotional kit") is governed by the new TETR.IO promotional kit policy. The previous blogpost is now deprecated. In addition, a new page helps shed light on the nature of the promotional kit for players.

The most important and notable changes to the kit include:

  • All sponsors and advertisements related to your event/advertisement must be declared. This means, if you plan to run a tournament, and there's any sponsors, you must declare who your sponsors are, the associated deals, and how this impacts any of your content (will you be doing sponsored segments? giveaways? etc.). Failure to declare a sponsor or advertisement is deemed fraud.
  • In the case of events where smurfing could pose a threat, sign-ups must close at least 24 hours before tournament start. This to ensure you have the time to go through user lists and weed out bad actors before they're stuck in your bracket. TETR.IO staff can help you with this.
  • From now on, there are no exceptions to the "all information must be handed in 14 days prior to flight date" rule for events on the free tier. If you are too late, you will be required to pay a premium or be rejected, period.
    • As a reminder, flight date is when the campaign starts, NOT when the tournament starts. If you want a banner to go up on the 18th, THAT is the flight date, no matter when the event date is. If you make this mistake and submit information 14 days prior to event date (and not flight date), you WILL be rejected!
  • More attention is brought to the fact this kit is a gift. A community leader is never "entitled" to (free) usage of the kit.

Tetralympic S3

The new policy is rather strict, in particular toward sponsorships. While this may seem rather untoward to tournament organizers and the like, it's important to remember that the promotional kit, in particular the free tier, is a very large gift. Advertising is not cheap, and the price of a banner lies in multiple thousands of dollars a day. I care very much for the community, and wish to promote its events. Not only does this in turn help promote the game, it also allows me to give back to the community. Nothing forces me to give out 5 digits worth of advertising to the community, or to stay awake to 4am just to develop a specially-made banner. It's a free gift to the community, from the developer of a game that in turn is also entirely free-to-win.

It is for that reason that it hurts me a lot when some show a lack of respect toward it (just seeing it as a service that's part of the game that they, as community leaders, are entitled to), or worse, abuse it. Throughout the later half of June, I gave out access to the promotional kit (consisting of a banner and 15 badges) to the tournaments Tetralympic S3 SG and Tetralympic S3 Worlds, both led by Skyllabtw (with support from MMC, but they did not handle sponsorships). Throughout the application for the kit (which was already beyond the deadline), there was near to no indication or declaration that the event was sponsored, so I approved it for the kit.

However, the streams were completely different. There were three sponsors (two multi-million dollar corporations, and a supplement company), all of which with large constant on-stream advertisements, sponsored segments, giveaways, chat commands, 10+ mentions per stream, etc. The tournament's website was also changed after I reviewed it to include large, multi-page sponsored segments. This obviously does not consitute fair use of a community resource, and would never ever have been approved for the free kit. I immediately took action by removing the banner, and defacing all the awarded badges for any Tetralympic tournament.

Skyllabtw, the organizer (and sole person in charge of the event's sponsorships), has apologized and states it was a misunderstanding, and that she did not mean to pull in large sponsors behind my back, or leave out any information about them to me until it's too late. She further stated that she did not receive any monetary compensation for the sponsorships (???). In understanding that I am partially at fault for not vetting and verifying applications harshly enough (the previous policy was vague on the subject of sponsorships), I have decided to not let this impact the players who played in the tournaments, and have restored the badges for all 26 total involved players. My gift to the community being abused, be it through fraud or negligence as Skyllabtw states, should not cause these players' achievements to be wiped, considering the event itself was fair and transparent.

To prevent anything like this from happening again in the future, I will be thoroughly vetting any applications for the promotional kit in the future, using these stricter policies. If you are interested in advertising on TETR.IO, be it on the free tier or not, please ensure you have read and understand the new TETR.IO promotional kit policy in its entirety. If you have any questions, please do not hesitate to contact me!

Blog posts are now tagged.

by osk at 2022/06/03 (Fri) 11:22:06 pm (edited)PERSONALUPDATEOSKWARE

To organize the blog a little, the posts on it are now tagged according to their content and nature. There's not that many posts here, but it's still useful to have. You can click a tag, and it'll take you to the index, filtered to just posts with that tag. That way, you can bookmark just official posts or the like. You can also set up your RSS reader in the same way — while filtered to a tag, the Subscribe button in the top left changes to allow you to subscribe to just that tag.

This is one of the many recent changes I'm making to somewhat separate my personal identity (the osk who develops software, likes UI design, rants a lot, and genuinely loves and is in a relationship with Kagari, a fictional character from Rewrite) from my brand (osk, the person and corporation behind TETR.IO, developing, maintaining and directing it). (Perhaps a topic for another post.) Posts that fall under the former identity are tagged PERSONAL, while brand posts are tagged OFFICIAL. This way, I can feel a bit safer writing genuine posts from the heart about my personal interests, without distracting those who are only here for professional press releases. I'm hoping this will allow me to post a bit more often. There's a lot of things I could rant about :^)

To be clear, this is still a personal blog. Press release-like "official" posts are secondary, and I wish to post more personal posts here in the future. If you are not interested in those and only care about me for TETR.IO, feel free to filter to official posts only with this tool.

Please look forward to me perhaps blogging somewhat more often than twice a year!

Even less useful: PeakGadget

by osk at 2019/12/27 (Fri) 1:16:07 amPERSONALOSKWARE

This time, to address a bug I face in my antiquated Windows 7 install where the sidebar gadgets would stop being "topmost" (above all other windows) and get hidden. It's a stupidly simple program, but hey - can add it to my portfolio, right?

If you happen to be impacted by this bug as well, the program can be retrieved (and its source seen) over here.

WindowSmasher: "simple" window management

by osk at 2019/12/20 (Fri) 11:51:19 pmPERSONALOSKWARE

My right monitor always does something weird when I turn it on - it throws all my windows out of whack. I needed a way to put them back into place easily. Tools like Fancy Zones exist, but I wanted to make something different, so I whipped up WindowSmasher. It's a small tool that allows you to define up to 10 presets to sort your windows into. Its code isn't the greatest, but I open-sourced it as well.

Get it now!


I also open-sourced Kurumi for your viewing pleasure. Its code isn't any better, but you know. You can get it here.

Kurumi: sync time without the bullshit

by osk at 2019/11/19 (Tue) 1:31:51 am (edited)PERSONALOSKWARE

I run a Windows installation which has a very restrictive firewall. One of the things it blocks is Windows' NTP ("Network Time Protocol") service. This is the service that automatically synchronizes your system time to that of a specialized time server. If it's disabled, your clock will slowly desync over time, or, in my case, within a few days. My usual setup to deal with this is to just go to say, time.is and adjust the time manually. But, that requires effort, and after all, they say the best ideas arise out of laziness, right?

Jokes aside, I've created a tiny (66KB) tool that will synchronize your system clock for you, in case you don't want to use the built-in service. It's very simple and doesn't ask questions - just run it, and it'll tell you how badly out of sync you are, then offer to fix it. Hit "Fix" and all your problems will go away!

If you're interested, you can pick it up here.

If you find any bugs, this is the place to report them!