Erik McClure

We Could Fix Everything, We Just Don't


I remember growing up with that same old adage of how you could be the next scientist to invent a cure for cancer, or a solution to climate change, or whatever. What they don’t tell you is that we already have solutions for a lot of problems, we just don’t use them. Sometimes this is because the solution is too expensive, but usually it’s because competing interests create a tragedy of the commons. Most problems in the modern age aren’t complicated engineering problems, they’re the same problem: coordination failure.

It was recently unveiled that basically every single UEFI SecureBoot implementation ever made can be bypassed with a malicious image file. This means that any manufacturer that allows the user to customize the boot image is now vulnerable to a complete bypass of SecureBoot and Intel Boot Guard. Luckily, the fix for this is pretty simple: don’t make the logo customizable. But how did something this absurd happen in the first place?

The results from our fuzzing and subsequent bug triaging unequivocally say that none of these image parsers were ever tested by IBVs or OEMs. We can confidently say this because we found crashes in almost every parser we tested. Moreover, the fuzzer was able to find the first crashes after running just for a few seconds and, even worse, certain parsers were crashing on valid images found on the Internet. — binarly.io

It’s pretty obvious what happened, actually. The image parsers were written with the assumption they’d only ever need to load an image file provided by the manufacturer. When this assumption was violated, all hell broke loose, because we don’t test software anymore. None of this happened because engineering is hard. None of this happened because of some tricky, subtle bug. It happened because the people writing the image parsers made an incredibly stupid mistake and then didn’t bother testing it, because the software industry doesn’t bother with QA anymore. Thus, there was no swiss cheese. There was just one slice of cheese with a gaping hole in it, because it turns out that some manufacturers decided to let users customize their boot image, thinking it would be harmless, and that by itself was enough to wreak havoc.

Every layer of this problem is a different flavor of coordination failure. No one on the team who implemented this either thought that there might need to be a warning about untrusted images, or whoever did bring it up was ignored because it was supposed to be handled by another team. Except whoever was supposed to put in a warning about this either wasn’t told, or buried it inside a technical document nobody ever reads. The vendors who decided to implement user-customizable boot logos didn’t ask whether this would be a problem, or weren’t told about it.

And nobody, not a single layer in this clown train, implemented a proper QA or pentesting process that could have caught this bug, because we just don’t bother testing anything anymore. Our economic incentives have somehow managed to incentivize building the worst possible piece of shit that still technically works. We know how to avoid this situation. We have decades of experience building in-depth QA processes that we are simply ignoring. We could fix this, we just don’t.

This is not exclusive to software, as this fantastic video about the popcorn button explains. Our economic race to the bottom has been sabotaging almost every aspect of engineering in our society. To save a few cents per microwave, the cheap microwaves don’t include a humidity sensor and then lie about having a popcorn button when it can’t actually work properly, which leads to everyone saying “don’t use the popcorn button” and now nobody uses the popcorn buttons even on microwaves that actually have a humidity sensor and a working popcorn button. The cheapskates control the supply chain now. They have pissed in the proverbial pool, and if this sounds familiar, that’s because it’s a classic example of the Tragedy of the Commons.

Except, that’s not an excuse. What’s truly absurd is that the tragedy of the commons isn’t inevitable. We know this because ancient human tribes managed to navigate responsible utilization of common resources all the time. It has no historical basis whatsoever. The tragedy of the commons only happens when you have a total failure of collective action. It is the original symptom of societal enshittification.

[...] many nomadic pastoralist societies of Africa and the Middle East in fact "balanced local stocking ratios against seasonal rangeland conditions in ways that were ecologically sound", reflecting a desire for lower risk rather than higher profit...

We actually have a cure for blood cancer now, by the way. Like, we’ve done it. It’s likely that a similar form of immunotherapy will generalize to most forms of cancer. Unfortunately, the only approved gene therapy we have is for sickle-cell disease and costs $2 million per patient, so most people in America simply assume they will never be able to afford any of these treatments, even if they were dying of cancer, because insurance will never cover it. This is actually really bad, because if nobody can afford the treatment, then biotech companies won’t bother investing into it, because it’s not profitable! We have built a society that can’t properly incentivize CURING CANCER. This is despite the fact that socialized healthcare is a proven effective strategy (as long as the government doesn’t sabotage it). We could fix this, we just don’t.

Some people try to complain that this happens because democracy is hard, or whatever, and they’re also wrong. We know exactly what’s wrong with our current voting systems and CGP Grey even put out a video on it 13 fucking years ago. It inevitably results in a two-party system, because strategic voting is rational behavior, and you can’t break out of this two-party system because of the spoiler effect, and the solution is Ranked Choice Voting (or the Alternative Vote). If you want to go further and address gerrymandering you can use the Single Transferable Vote. All of these better systems were proposed decades ago. We have implemented exactly none of them for the presidential election (except for Maine and Alaska). In fact, America still uses the electoral vote system, which is strictly worse than the popular vote, we all know it’s worse, and we even have a potential solution but we still can’t get rid of it due to counterproductive societal interests.

We HAVE solutions for these problems. We just don’t use them. We could be running fiber-optic cable to every house in America, and we even know how much it would cost. We just don’t because we gave the money to corporations who then used none of it and instead paid themselves huge bonuses. We know that automation is chipping away at low-skill jobs, which means our workforce needs to be better educated, and that providing free college to everyone would be a good idea, we just don’t. We know how to build interstate high-speed commuter rail, we just don’t (although Biden is trying). We could fix everything, we just don’t.

We have no excuses anymore. None of these are novel or difficult problems, not even the tragedy of the commons. We can do better. We don’t need AI to fix things. We don’t need new technology to solve these problems. We already know how to do better, we’ve just dug ourselves into a cooperation slump that’s so bad we can’t even implement solutions we already know about, let alone invent new ones. We’re in this hole simply because society is run by people who are incentivized to sabotage cooperation in the name of profits. That’s it.

It’s January 1st of the new year, and with all these people wishing each other a “better year”, I am here to remind you that it will only get worse unless we do something. Society getting worse is not something you are hallucinating. It cannot be fixed by you biking to work, or winning the lottery. We are running on the fumes of our wild technological progress of the past 100 years, and our inability to build social systems that can cooperate will destroy civilization as we know it, unless we do something about it.

We live in what is perhaps the most critical turning point in all of human history, and we’re on a ship that has drifted far off course. The rapid current of technology means that we are swept along faster and faster, making it exponentially harder to steer away from the icebergs ahead of us. We must address our coordination failures. We must build systems that foster better cooperation, or this century won’t be a turning point for humanity, it will be the end of humanity.

"All that would remain of us would be a thin layer in some future rock face. This is the future we must avoid at all costs." — John D. Boswell (melodysheep)

People Can't Care About Everything


Sorry, I need my computer to work

I originally posted an even more snarky response to this, but later deleted it when I realized they were just a teenager. Kids do not have decades of experience with buggy drivers, infuriating edge-cases, and broken promises necessary to understand and contribute to the underlying debate here (nor do they have the social context to know that Xe and I were just joking with each other). Of course, they also don’t know that it’s generally considered poor taste to interject like this, as it tends to annoy everyone and almost always fails to take into consideration the greater context in which someone might be using Windows, or Mac, or TikTok, or Twitter, or whatever corporate hellscape they are trapped in. The thing is, there’s always a reason. You might not like the reason, but there is usually a reason someone has locked themselves inside the Apple ecosystem, or subjected themselves to Twitter, or tried to eke a living from beneath the lovecraftian whims of YouTube’s recommendation algorithm.

People can only care about so much.

They can’t care about everything. You might think something is important, and it probably is, but… so is everything else. Everything matters to someone, and everything is important to society in general to some degree. Some people think that YouTube isn’t very important, but they’re objectively wrong, as YouTube creators reach billions of people. They change people’s lives on a daily basis. We could argue about how important art and music and creativity is to society, yet observe that our capitalist hellhole treats creatives as little more than wage slaves, but then we’d be here all day.

As this blog post bemoaning the loss of Bandcamp explains, They Can And Will Ruin Everything You Love. The only thing that is important to the money vultures is… money. The only people who can build another Bandcamp are people who believe it’s important. I particularly care about the Bandcamp debacle because one of my hobbies is writing music, and I prefer selling it on Bandcamp. If Bandcamp dies, I will no longer have anywhere to offer downloadable lossless versions of my songs. Everything has devolved into shitty streaming services, and there’s nothing I can do about it. I’m too busy fixing everything else that’s broken, there’s no time for me to build a Bandcamp alternative and I’m terrible at web development anyway. Don’t get me started on whether the new solution should be FOSS, because some people believe FOSS is important, and they’d be right! Just look at Cory Doctorow’s talk about enshittification and how proprietary platforms are squeezing the life out of us.

Everything is important!!!

…But I can’t care about everything. You can’t care about everything either, you have to pick your battles. No, that’s too many battles, put some back. That’s still too many battles. You only have 16 waking hours every day to do anything. You have to pick something, and everything you care about has a cost. When everything is important, nothing happens. No websites are created. No projects are built. No progress is made. We simply sit around, bikeshedding over whose pet issue is the most important. There are always trade-offs, and sometimes you can make the wrong ones:

As the corresponding blog post later elaborates on, when you are 19 / still a student / unemployed, time is all you have to spend. It can be easy to forget how valuable time is to some people. Even if I won’t touch Apple devices with a 10-foot-pole, I can understand why people use them. If all your use cases fall inside Apple’s supported list of behaviors, it can be great to have devices that just work (assuming you can afford them, of course). On the other hand, while I prefer Windows, I know many people who use Linux because Windows either won’t let them do what they want, or literally just doesn’t even work. They are willing to put in the time and effort to make their linux machines work just the way they want, and to maintain them, and occasionally do batshit insane source-code patches that I hopefully will never have to do in my life, because it’s important to them.

Back when I was still writing fiction, I got a great comment from an editor who said something along the lines of “writing should be fun, you should only pursue perfection as far as you enjoy.” You can spend your entire life chasing perfection, but you’ll never reach it, and at some point you have to ship something. I’ve been trying to finish up some songs for an album recently and I’ve had to rely on formulaic crutches more than I want to, because at the end of the day, it’s just a hobby, and I simply don’t have the time to be as experimental as I want. My choice is to either release an okay song, or none at all. You can tell where I was hopelessly chasing an unattainable goal for over two years when my output completely stops:

Song Output

Everyone has to make trade-offs, and it can take time to figure out which ones are right for you. Not everyone can contribute to your particular social cause. When you ask someone to care about something, you are implicitly asking them to stop caring about something else, because they have a finite amount of time. They can’t do everything. In order to help you, they must give up something else. Is it grocery shopping? Time to cook? Time to sleep? A social gathering? Playtime with their children?

By no means should you stop asking people to care about something, that part is kind of important. Raising awareness allows individuals to make informed decisions about what trade-offs they are making with their time. However, if someone says they aren’t interested in something you care about… it’s because they have different priorities, and the trade-offs didn’t make sense. Maybe they care more about adding a feature to a 50 year old programming language, and thank goodness they did, because would you have cared enough to put up with this nonsense?

Your time is precious. Other people’s time, doubly so. Mind it well.


Discord Should Remove Usernames Entirely


Discord’s Recent Announcement made a lot of people mad, mostly because of Hyrum’s Law - users were relying on unintended observable behavior in the original username system, and are mad that their use-cases are being broken despite very good evidence that the current system is problematic. I think the major issue here is that Discord didn’t go far enough, and as a result, it’s confusing users who are unaware of the technical and practical reasons for the username change, or what a username is even for.

There are several issues being brought up with the username change. One is that users are very upset about usernames being ascii-only alphanumeric, presumably because they do not realize that Discord is only ever going to show their usernames for the purposes of adding friends. Their Display Name is what everyone will normally see, which can be any arbitrary unicode. Discord only spent a single sentence mentioning the problem with someone’s username being written in π•¨π•šπ••π•– π•₯𝕖𝕩π•₯ and I think a lot of users missed just how big of a problem this is. Any kind of strange character in a username would be liable to render it completely unsearchable, could easily get corrupted when sent over ascii-only text mediums, and essentially had to be copy+pasted verbatim or it wouldn’t work.

However, some users wanted to be unsearchable, because they had stalkers or were very popular and didn’t want random people finding their discord account. Discriminators and case-sensitivity essentially created a searchability problem which users were utilizing on purpose to make it harder for people to search them. The solution to this is extremely simple, and was in fact a feature of many early chat apps: let the user turn off the ability for people to search for their username. That’s what people actually want.

What discord is trying to do, and communicating incredibly poorly, is transform usernames into friend codes. They say this in a very roundabout way for some reason, and they are also allowing people to essentially reserve custom friend codes. This is silly. Discord should instead replace usernames with friend codes, and provide an opt-in fuzzy search mechanism that tries to find someone based on their Display Name, if users want to be discoverable that way. Discord should let you either regenerate or completely disable your own friend code, if users don’t want random people trying to friend them.

What makes this so silly is that nothing is preventing discord from doing this, because you log in with your e-mail anyway! By replacing usernames with display names, Discord has removed all functionality from them aside from friend codes, so they should just turn usernames into friend codes and stop confusing everyone so much. There is absolutely no reason a user should have to keep track of their username, display name, and server specific nicknames, and letting users reserve custom friend codes is never going to work, because everyone is going to fight over common friend codes. Force the friend codes to be random 10-digit alphanumeric strings. Stop pretending they should be anything else. Stop letting people reserve specific ones.

There is one exception to this that I would tolerate: a custom profile URL. If you wanted to allow people with nitro to, for whatever reason, pay to have a special URL that linked to their profile, this could be done on a first-come first-serve basis, and it would be pretty obvious to everyone why it had to be unique and an ascii-compatible URL.

I’m really tired of companies making a decision for good engineering reasons, and then implementing that decision in the most confusing way possible and blaming anyone who complains as luddites who hate change. There are better ways to communicate these kinds of changes. If your users are confused and angry about it, then it’s your fault, not theirs.


Welcome to the Age of Bullshit


We are fucked.

In fact, we are so fucked that Tom Scott conveniently released a new video talking about how fucked we are. Of course, he didn’t actually say that we’re fucked, because he’s much nicer than I am. He uses soft and gentle words that disguise the raging maelstrom beneath us. His video talks about how “everything is about to change”, and he’s right. I think he’s more right than he wants to be, he knows it, and he’s terrified.

Google’s new AI chatbot produced a factual error in it’s demo, and their stock dropped by $100 billion. Meanwhile, Bing’s AI chatbot produced a ton of errors during their presentation, and nobody noticed. People are noticing when the Bing AI chatbot goes completely bonkers, though, and this is precisely the problem.

We can tell when an AI goes completely off the rails and start spewing word salad, but most of the time the AI will confidently hallucinate completely nonsense and nobody can tell the difference. We already have the citogenesis problem, and then we had the social media “fake news” problem, and now we have AIs that can reliably gaslight anyone into believing almost anything they don’t already know about. Just wait until this starts making the replication crisis even worse.

Linus Tech Tips did an episode of WAN recently where they gave Linus three articles, and told him that at least one of those articles had been mostly written by an AI (with some minor fixups by a human), and he had to guess which ones were AI-written and which ones were written by a human. His answers were, one was probably human, one could be either human or AI, and one was probably AI. The two AI articles were actually the one he thought was human, and the one he thought was AI. The one that was written by a human was the one Linus wasn’t sure about.

We used to be worried about DeepFake videos, but now we already have people using AI to create fake images of a French cop hugging a protestor, while real artists are getting banned from /r/art because their art “looks ai-generated”. Meanwhile, CNET has been writing hundreds of articles using an AI for almost a year. Time has an article about how Big Tech needs to fix the “AI misinformation problem”, but nobody seems to know how. Who decides what is “misinformation”? If we already had the Wikipedia Citogenesis problem before ChatGPT, how can we possibly figure out what a trustworthy source is?

What’s really happening is that AI is amplifying a much more fundamental problem: Search Engine Optimization. We’re exposed to so much information on a daily basis that we don’t know what’s real, and Google can’t help us. As SEO makes Google searches progressively more useless, the web has become a morass of nonsensical data, blurring the line between fact and fiction. AI is now allowing us to generate even more information at an accelerating rate, essentially weaponizing disinformation. We have absolutely no way to deal with this, because we’ve invented the informational equivalent of gunpowder and decided it would be a good idea to give it to everyone.

Welcome to the Age of Bullshit.

What’s amazing is that almost all of this started just six years ago, with a paper from Google in 2017. The last time anything like this happened was when we invented the world wide web in 1994, which then exploded into the dot-com crash of 2001. Back then, the problem with the internet was finding things, which is what Google solved. The problem we now face, which is being made much worse by AI, is filtering things, as we get blasted by thousands of “relevent” search results. The successor to Google will be whoever invents a filter engine, to shield ourselves from the infinite amount of bullshit that we now have to wade through just to find high quality answers instead of ai-generated copies of translations of summaries of articles. Ironically, this is almost exactly the kind of fictional technology that Tom Scott talked about in 2014, almost 9 years ago.

We should be thankful that the current transformer based models are not sufficient to implement AGI, at least not in their current form, so we don’t have to worry about accidentally destroying the world with ChatGPT. This means AI researchers still have time to solve the alignment problem before someone figures out how to create a self-improving transformer model that no longer requires curated training data and promptly eradicates humanity. But who knows, maybe Google will publish a paper on this topic next year…?

Given our track record, maybe we should be spending more money on this alignment problem before we really fuck things up.


Neurodivergents Will Inherit The Earth


Decades ago, something absolutely unheard of happened - a nerd became the richest person on the planet. This, of course, was merely a consequence of Software Eating The World, a fact we are all now painfully aware of. Programming, once delegated to glasses-wearing nerds banging away on strange boxey devices that could add numbers, has been transformed into something that many people are interested in (mostly because it makes tons of money). Nowadays, as software permeates almost every aspect of modern life, programming is “cool”, firmly entrenched alongside doctors and lawyers as a respected, high income career path, so long as you get hired at a large company.

If you think about it, this represents a radical societal restructuring. All these nerds being put in charge of things tend to be more progressive and willing to support social movements. Combined with the fact that the best programmers can come from anywhere, including diverse and underserved backgrounds, this has forced software companies to cater specifically to minorities, accelerating existing societal shifts simply because they want to attract good programmers. Adding benefits specifically designed for trans people is a common example, but the shift to remote work is another.

As our world changes, the kinds of people we need to support our society changes with it. I don’t think people appreciate just how much the world has diverged from the neurotypical-cisgendered-heterosexual norms that were so entrenched just a hundred years ago. The United States only enshrined woman’s suffrage with the 19th amendment in 1920, just after World War I. It’s not just that the social fabric of society has changed, the world has changed. The global reality we live in has changed. Climate Change is now an existential threat that is beginning to have visible effects. Software and the digital world have not simply merged with reality, the internet now dominates it. 6 of the 10 largest companies by market cap are software or computer hardware companies. The exceptions are Johnson & Johnson, Berkshire Hathaway, United Health, and Exxon Mobil. The world’s largest oil company is #9 on that list. This is a titanic shift in economic power that’s happened only in the past few decades.

This is not unique to modern history. Each major technological or geopolitical shift in human history changes the balance of power. World War II’s Rosie The Riveter is the most recent example of a sudden geopolitical change (a global Total War necessitating a drastic social shift), when women were encouraged to take manufacturing jobs previously reserved for men. This was extremely unusual at the time, and after the war ended, the government abruptly started pressuring women to “return to normalcy”. Sound familiar? While most women reluctantly returned to more traditional jobs, many historians consider it the impetus for The Quiet Revolution, which eventually resulted in women permanently entering the workforce. The First and Second Industrial Revolution notably involved a steep decline in infant mortality, but not child mortality, as the baby boom resulted in a massive increase in child labor that was much more deadly than the farm work they were doing before. This eventually resulted in much stricter child labor laws in the UK and United States, eliminating children from the pool of available physical labor.

Going back farther, ancient history is full of tribes and civilizations that displayed a huge amount of variation depending on their particular geographic and technological pressures, including concepts of alternative genders or even different ways of expressing time. A society is a particular subset of all possible personalities that are able to self-organize and maintain order. In any society, what exactly a “reasonable person” is and what constitutes a crime may vary significantly. Factions within a society grow or shrink depending on economic and environmental influences, which can change the favored social fabric. This evolution of the social fabric is happening right now as technological advances allow entire forgotten sects of humanity to express their true potential in ways never before possible.

VR is still in an early adopter phase and its real impact has yet to be appreciated. We have only a scant few video games that can take meaningful advantage of it, a few poor attempts at metaverses, and hardly any useful productivity apps. We are teetering on the edge of another technological reorganization of society, where the entire world gets eaten by VR and AR in ways that people have difficulty appreciating right now because the hardware isn’t there yet. Once we solve the last few critical problems - like comfortable reading without headaches and less bulky headsets - then everything will change, very suddenly.

Over half my friends have ADHD, and when hyperfocused are capable of things few neurotypical people could ever do. Many of them are autistic, able to think in ways that most neurotypicals can only replicate with a lot of drugs. They don’t just think outside the box, they think outside of boxes people aren’t aware of. Some hyperfocused ADHD people can take advantage of the entire interactive volume around them in VR space, allowing them to open 5 different reference manuals while working on a project, or cross-reference a dozen sources in realtime, or set up a massive set of realtime data visualizations while monitoring a system. A persistent, freely navigable workspace inside VR (that could also be non-euclidean) makes it easier to return to tasks later without having to reconstruct an entire mental state. However, the ability to do many things at once sometimes translates into a need to do many things at once, and the ability to focus for long periods of time on one task can translate into an inability to do anything else, like getting food or remembering to mail an important tax form.

Unfortunately, in our modern society, houses have little to no interior noise insulation and almost every single electronic device makes a constant high-frequency drone. Neurotypicals either do not hear these sounds, or tune them out after a few minutes (and then claim the sound doesn’t exist, having immediately forgotten it). These houses are then built right next to roads with noisy cars, often without sidewalks, and sometimes with ubiquitous traffic noises when buried deep inside the city. How distracting these noises are depends on the person, the noise, whether it is speech, music, a kind of music you don’t like, or a ticking clock. Many places make these sounds inescapable, like restaurants with loud music and conversations, or offices with ticking clocks in every single room.

In contrast, in VR you can wear noise-cancelling headphones and put on music no one else can hear that is automatically attenuated if someone is talking to you. VR lets you tightly control your auditory environment - you can selectively isolate sound sources to only hear the conversation around you instead of having to tune out the dozens of other conversations. Nameplates on avatars can help faceblind people and avatars themselves can be more visually distinct than human faces. Being able to share a funny image with someone without having to show them your phone and hoping you don’t get an embarrassing notification at that exact moment would be useful for many people. Making things more accessible helps everyone.

A lot of what makes these problems so damaging for neurodivergents is the refusal of accommodation from neurotypicals. Often, this is simply authority figures forcing neurodivergent people to remain in environments causing them physical pain. Sadly, humans have a tendency to reject any culture other than their own as invalid or barbaric, possibly due to tribalism. Those of us living in a western country point to history as justification, while conveniently ignoring the fact that history is written by the victors. Countries like America are often willfully ignorant of the natives they subjugated now living in a post-apocalyptic world. While many executives acknowledge the rise of LGBTQIA+ individuals, or at least pay lip-service to them, it is painfully obvious that most do not understand the true cultural upheaval that is upon us. For example, Meta is inherently doomed for a very simple reason: It’s not furry enough.

Despite the prevalence of how Furries Run The Internet, an amazing number of tech workers still do not understand the significance of furries. Just two years ago, a coworker of mine came out as both trans and a furry, in the same e-mail. I never saw the need to “come out” as a furry (which should be obvious, given my avatar) but the reality is that furries are now a significant social force, which is largely going ignored. The one significant competitor to VRchat is NeosVR, developed by… furries. A starbucks union organizer wears his fursuit to rallies. The furry revolution is already here and nobody is paying attention to the fact that furries will not only dominate VR tech, they will determine the fate of any VR “metaverse”, because furries are the ultimate VR power user.

This cultural blindspot is just one example of how humans are often laughably bad at predicting the future precisely because we are blind to social changes caused by technological advancements. This is why we laugh at visions of the future from 100 years ago, because they could only envision technological advances within the confines of their own culture. I still see people today predicting that VR will revolutionize painfully obvious things, like medical analysis, or 3D modeling, or architecture. No one talks about how it will provide a way for autistic people to be more confident about social gatherings when they control their sensory input sphere or allow plural people to switch between avatars depending on who is fronting. When people talk about “the dangers of VR”, it’s always the same stupid reading argument, instead of predicting the inevitable moral panic over weird VR sex. It reminds me of the old adage about science fiction:

“It would take an inventor to predict the automobile, and it would take a real visionary to predict highways and gas stations. But it would take a science fiction writer to predict the traffic jam.” - Ed Bryant


Avatar

Archive

  1. 2024
  2. 2023
  3. 2022
  4. 2021
  5. 2020
  6. 2019
  7. 2018
  8. 2017
  9. 2016
  10. 2015
  11. 2014
  12. 2013
  13. 2012
  14. 2011
  15. 2010
  16. 2009