| ▲ | vlaaad 4 hours ago |
| Did we read the same Anthropic and Andrew Kelly's posts? Anthropic is not in the programming language market; their post about rewriting Bun in Rust is full of technical details that led to improving the end product for their users. Zig's response is a sour opinion piece full of personal attacks. For context, I'm using Codex and have no interest in either Zig or Rust, so just observing this drama from the sidelines. |
|
| ▲ | pizza234 4 hours ago | parent | next [-] |
| > Anthropic is not in the programming language market; their post about rewriting Bun in Rust is full of technical details that led to improving the end product for their users Anthropic absolutely is in the programming language market. If/since AI makes rewrites to certain languages relatively easy, a success story will tie the given language(s) to the given AI company. Rust may have a tremendous success in the future, because it's much easier to write it with AI (ignoring for a moment whether that's really a good thing). The implication is that Anthropic has a stake in Rust's success. Also, to be kept in mind that devs advertising successfull rewrites often hide some aspects that are unfavorable to the narrative; typically, how bad was the code before the rewrite), although there are other (significant) aspects that have been omitted. > Zig's response is a sour opinion piece full of personal attacks. I take you haven't read Andrew Kelley's article (here: https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...). Summary: - Jarred has written Bun with very bad engineering standards - Jarred has managed public relations very poorly (e.g. ghosting the Zig foundation) - When they rewrote the project to Rust, and described Zig as poor choice, there has been a negative fallout for Zig - The ZSF is obviously upset because of the poor publicity This is summarized at the end of the post: > Zig users who knew next to none of these facts and have only the surface level understanding that an ex-Zig-user is getting trashed by the language creator. Such people might reasonably worry that might happen to them As a matter of fact, I also believed the same after reading's Bun's post. This is undeserved though, and that's what Kelley explains. There's definitely a personal attack somewhat, and this is addressed in the last (added later) section. |
| |
| ▲ | preommr 3 hours ago | parent | next [-] | | > I also believed the same after reading's Bun's post. This doesn't even make any sense. The part that you're quoting[0], is Andrew commenting on the fallout from the blog post he made. How could you have thought something about a blog post that hadn't come out yet? Also, if you are talkinga bout the post Jarred made, it was extremely charitable about zig: "Zig made Bun possible. I would never have been able to build this much in 1 year if it wasn't for Zig." [0] "The other critical mistake I made with this post was failing to consider the rather obvious and important point that this might affect Zig users who knew next to none of these facts and have only the surface level understanding that an ex-Zig-user is getting trashed by the language creator." | |
| ▲ | dcre 38 minutes ago | parent | prev | next [-] | | > since AI makes rewrites to certain languages relatively easy This premise makes no sense. AI makes rewrites to any language easy. | | | |
| ▲ | NewsaHackO an hour ago | parent | prev | next [-] | | >Jarred has managed public relations very poorly (e.g. ghosting the Zig foundation) I actually love the use of ghosting in this post. It is almost a Freudian slip about how Zig looks like from the view of outsiders. Zig moves exactly like how toxic exes do. They point fingers, make passive-aggressive statements, unnecessarily air out dirty laundry, and downplay all of the good their partner has done during the relationship. | |
| ▲ | worrycue 25 minutes ago | parent | prev | next [-] | | > Rust may have a tremendous success in the future, because it's much easier to write it with AI (ignoring for a moment whether that's really a good thing). It’s interesting that Rust could become the most deployed but the least written (by humans) programming language if the dreams of AI bros come true. If AI gets good enough to competently translate other languages to Rust then there is no point writing in Rust (a language with a steep learning curve and is high friction in use), you can just write in a low friction language like C, C++, Odin, Zig, … etc. and have AI translate it to Rust catching all the memory bugs in the process. | |
| ▲ | cheikhcheikh 3 hours ago | parent | prev [-] | | We've read the andrew blog. It is a personal attack a very petty one, you're clearly a biased fan of his and of zig probably if you cannot see the obvious, but we're telling you as outsiders how poorly it reflects on andrew and the future of zig, and this is coming from someone who originally had a very good opinion of zig and andrew, now not so much.
You can choose to ignore that and engage in the massive circlejerk zig fans are engaging in during this or maybe take a second and reconsider |
|
|
| ▲ | raincole 4 hours ago | parent | prev | next [-] |
| Yeah, exactly. It's weird that Zig even responded to that. Imagining that your studio switched from Unity to Unreal and Unity proceeded to release a hit piece attacking your codebase quality and workplace environment. |
| |
| ▲ | jraph 3 hours ago | parent | next [-] | | But that hit piece would be an answer to the (multi-billion dollar) studio saying how much better the result is after the rewrite to Unreal, except it's not because Unreal is better (which it could be btw, or not, or more probably it depends on the use case), it's because the studio worked hard to make it look better, which they could have done without the rewrite. Anthropic does this to sell LLM rewrites and make them look better than they actually are, Zig being the source language, they are a collateral victim of that misleading advertisement. Of course it's unfair to them and of course they should highlight this. | |
| ▲ | kqp 2 hours ago | parent | prev | next [-] | | Anthropic is massively bigger than a studio, Zig is massively smaller than Unity, and it wasn’t a quiet switch, it was a huge publicity event. It’s more like the #1 movie of the year being “The Profound Joy of Finally Leaving Unity”. Sometimes things are big enough to warrant a response. | | | |
| ▲ | khuey 3 hours ago | parent | prev | next [-] | | If Unity had 2.5 users anyone had heard of before the switch you can see where the motivation might (at least emotionally) come from. | | |
| ▲ | jraph 2 hours ago | parent [-] | | It's not really this though. It's about the user leaving throwing misleading shade. Politely, of course. |
| |
| ▲ | rob74 3 hours ago | parent | prev | next [-] | | Well, if your game would be one of very few AAA games written in Unity (actually, the only game written in Unity people reasonably familiar with the subject would be able to name off the top of their heads), things might look different... | |
| ▲ | ModernMech 4 hours ago | parent | prev | next [-] | | It’s not weird considering what we’ve learned through this:
the Zig project is driven by people with fragile emotions and egos who lash out at people personally when they feel threatened. We’d like Zig to be a project with steady and technically driven leadership like Rust, but Kelley has made clear (many times) it’s more of an egoistic vanity project like Elm, designed to cater to the emotional needs of the BDFL. | | |
| ▲ | tommica 4 hours ago | parent | next [-] | | Calling them egoistic is quite a claim - do you have facts to back that claim with? | | | |
| ▲ | yulaow 3 hours ago | parent | prev [-] | | To me it seems the bun guys are those with fragile emotions (it's just that the more fragile quality of their code is more evident) | | |
| |
| ▲ | f-serif 3 hours ago | parent | prev | next [-] | | It is in there nature. They (specially zig creator) were so jealous about about vlang getting traction and getting $800/month donations, they made it their core mission to attack vlang and spread hate. | | |
| ▲ | jdiff 3 hours ago | parent [-] | | Vlang is a ridiculous project that was entirely driven by hype that should have been easy for all to see straight through. It is ridiculous that it got $800/month with nothing to show for it. I haven't seen any hate spread for it by Zig. |
| |
| ▲ | embedding-shape 4 hours ago | parent | prev [-] | | > Imagining that your studio switched from Unity to Unreal and Unity proceeded to release a hit piece attacking your workplace environment. Incredible the different takeaways people get from text content on the internet. I'd say it'd be more like if you moved from Unity to Unreal and then Unity made a blog post saying they were happy about you moving to Unreal, publishing they think it'd be a win-win, then outlining why they think so. | | |
| ▲ | lemming 4 hours ago | parent | next [-] | | ...Unity made a blog post saying they were happy about you moving to Unreal, publishing they think it'd be a win-win, then outlining why they think so I mean, that makes it all sound very polite and dispassionate, but Andrew's piece was anything but. I have no dog in this fight, I don't use Zig, Rust, Bun or Claude, and initially I thought the bun rewrite sounded like a terrible idea. I changed my mind after reading the piece about the migration - it was very interesting and the process was obviously quite thoughtful. Andrew's piece made me want to take a shower afterwards. | | |
| ▲ | embedding-shape 4 hours ago | parent [-] | | > I have no dog in this fight, I don't use Zig, Rust, Bun or Claude, and initially I thought the bun rewrite sounded like a terrible idea I'm exactly the same person as you, yet I still think Zig's post wasn't a "hit piece" at all, at least how I understand that term to be. They outlined the history from their point of view, talked about what they didn't like with how Jarred acted and worked, said they were happy about them moving to Rust, then basically said "Good riddance". Everything is so drama-amplified nowadays, nothing can just be "They're a different person, they work in a way I don't like, but I'm happy they found a better language, good riddance" and that's it, no, instead this is a "hit piece" "trying to assassinate someone's Good Character" and what not... It's so tiring. | | |
| ▲ | user43928 3 hours ago | parent | next [-] | | Here are the highlights of the supposed "they work in a way I don't like" disagreement: > I described him as someone who had strong "beginner energy" > groomed from a young age into uncritically embracing the Silicon Valley mindset > Jarred was a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show > We became increasingly horrified at the programming practices we saw in Bun's codebase. Hacks on top of hacks > Jarred was already writing slop well before he had access to LLMs > While I resent Jarred for making Bun into an embarassment for Zig | |
| ▲ | self_awareness 3 hours ago | parent | prev | next [-] | | And what is even the point of saying that Andrew dislikes how Jarred acts and works? Let's say the supervisor wants you to write a new microservice. Do you refuse to do it because the supervisor smokes cigarettes and you're an anti-smoker? I think that if you have objections, you should refuse only on technical grounds, not personal. | |
| ▲ | JuniperMesos 3 hours ago | parent | prev [-] | | [dead] |
|
| |
| ▲ | cheikhcheikh 3 hours ago | parent | prev | next [-] | | > Incredible the different takeaways people get from text content on the internet It is incredible isn't it. "Jarred was already writing slop well before he had access to LLMs" "The grapevine was large and healthy and full of juicy grapes, and all those grapes contained the juice of the same message: Jarred was a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show, from an employment perspective." "at some point they would sell out (let's be honest, their vague "sell some cloud something" business plan was a farce from the get-go" "he was essentially groomed from a young age into uncritically embracing the Silicon Valley mindset" There is more but I'll stop quoting to not end up copying the whole thing. | | |
| ▲ | a minute ago | parent | next [-] | | [deleted] | |
| ▲ | embedding-shape an hour ago | parent | prev [-] | | > There is more but I'll stop quoting to not end up copying the whole thing. Yeah, and perhaps also because your point(s) wouldn't make much sense if people ended up reading the whole article, rather than your cherry picks ;) |
| |
| ▲ | raincole 3 hours ago | parent | prev [-] | | > I talked to those who interviewed for a job at Oven. I talked to people who worked there. Those people talked to each other. Everybody talked to everybody. The grapevine was large and healthy and full of juicy grapes, and all those grapes contained the juice of the same message: Jarred was a stinky manager. Poor communication, unrealistic expectations, low empathy, no experience. Just a total shit show, from an employment perspective Yeah, exact words you would expect from someone who is happy about a win-win situation. | | |
| ▲ | jraph 3 hours ago | parent | next [-] | | Andrew is bitter (or something related) about this whole situation, that's no question, he writes it in his updated post (he doesn't say "bitter", but he speaks about unprocessed emotions). People are entitled to their emotions. The question is whether the bitterness is warranted. I think it is. | | |
| ▲ | entrope 2 hours ago | parent [-] | | Yes, people are entitled to their emotions, but the ways they behave in public and express their emotions reflects on them in a major way. The Bun blog post focused on the technical reasons to change, and was complimentary about Zig. The Zig blog post was heavy on personal attacks, with some technical claims that the Bun blog post had mostly addressed already. Between the two, the Bun post is a lot more compelling from technical and professional perspectives. I'll admit to thinking that the Rust crowd often has a toxic atmosphere, but Zig came off as worse in this exchange. | | |
| ▲ | jraph 2 hours ago | parent [-] | | > The Bun blog post focused on the technical reasons to change, and was complimentary about Zig It seems to, on the surface. It would have been dumb to pass the occasion to look good. But really, the core message is that they are better off with rust after the rewrite, but they are better off because they worked on making the rewrite look better. Work that they could have done in Zig too. Of course when you are the creator of Zig, that may feel quite unfair and you should highlight it. > The Zig blog post was heavy on personal attacks I agree this doesn't look good. > Between the two, the Bun post is a lot more compelling from technical and professional perspectives. The Bun post is a well polished marketing piece from a trillion dollar company that subtly and misleadingly throws shade at Zig (while looking complimentary on the surface, but make no mistake here), a collateral victim of false advertisement for Anthropic's LLM. Andrew's post is an emotional response (that didn't target "professionally", it's also not on Zig's blog), written too early that could have done without the personal attacks which are bad and completely get in the way of the important message. Andrew's post looks immature because of the unprocessed emotions, and he really should stop the personal attacks, they don't bring anything good. Anthropic's post is good looking lies as usual. | | |
| ▲ | joshuamorton 20 minutes ago | parent [-] | | > Of course when you are the creator of Zig, that may feel quite unfair and you should highlight it. Then highlight that, don't repeatedly insult someone. If Andrew thinks the same kind of ai-assisted improvement would be possible in Zig, and that avoiding the kinds of errors migrating to rust achieved would be possible in Zig, he should demonstrate it. And I don't necessarily mean rewriting all of Bun in "better-zig", but like, if you're going to say "this project is bad because it is badly maintained, not because the language has limitations" then demonstrate something to that effect. The only technical detail I recall from Andrew's post is that zig has faster compile times, which may well be true but what do I care? |
|
|
| |
| ▲ | embedding-shape 3 hours ago | parent | prev [-] | | Why not? Sharing your experience with working with people is fine, they're subjective opinions. Does this mean it's slander and/or a hit piece? Seemingly a lot of people would say so, personally I don't think people sharing those sort of experience publicly are doing so out of spite, some of us are just still used to the old-internet where you can share stuff like this in public, without getting piled on for not "thinking/writing the right way" or whatever people are complaining about. |
|
|
|
|
| ▲ | whizzter 3 hours ago | parent | prev | next [-] |
| It's the old craftsmen vs industry issue, Andrew comes from the craftsman tradition that prefers all other people developing to also be proud craftsmen. What Java, JS, Python and C# all did to conquer the industry from a C++ dominance was to provide safety harnesses for less "perfectionist" workers to fumble around without causing a mess, to write C and C++ in an increasingly hostile world we realized you needed a lot of craftsmanship, the performance benefits outdid and kept the latter languages relevant for a long while. Still, the performance/predictability penalty didn't give way so Rust (and Swift) came into play. They don't have as many unpredictable performance characteristics as the previously "safe" GC languages but still provided more or less the same guarantees (in some ways perhaps even better for Rust). The brilliance of the Rust ideas did start a bit of a cambrian explosion of languages in that niche, most of them however targeting a bit more of a craftsman position than Rust (that came out of distinct industry needs). The problem as the article illustrates, in car terms. If Java,JS,etc are mostly "regular safe cars" and C/C++ a two wheel motorcycle. Rust is perhaps a rally car (fast but still a car so occupants inside are well protected) whilst Zig really is a quadbike or open wheel cart, not as unsafe as a two wheel bike since you won't slide for the smallest oil/ice patch but flipping over is still dangerous as hell. And that takes us to the crux, so many developers who love the craft and perfection (and don't live under- or perhaps care of- financial constraints) think that "good careful" developers is all that's needed and don't see dangerous language designs as a problem. I'm an older developer, and given that I can write "good careful code", but 90% of the time it's also a matter of time and financial constraints so I wouldn't trust mine (or anyone elses for that matter) code written under those "industry" conditions. I think Zig has a lot of nice perks, but it was obvious from day 1 that it's very much for people that love their hacking freedom over writing code for todays hostile world. |
| |
| ▲ | Gigachad 18 minutes ago | parent | next [-] | | All I’ve seen is there is literally no programmer smart and careful enough to never create a use after free or out of bounds read in a sufficiently complex codebase. The state of computer security has moved on from the old model of just patching bugs when you find them. To now where we need to systematically prevent them from happening to begin with. | | |
| ▲ | pseudony 9 minutes ago | parent [-] | | - types rarely catch the interesting errors - any GC'ed language can manage memory for you if you want - My first rust project (a gui app in GTK) managed to segfault just fine in spite of Rust (no unsafe blocks on my part, not deliberately trying to break anything). - I think the state of computer security has moved on still, we now rely on LLMs armed with various tools to pick apart and try to break our code AND to generate our code -- it is not at all obvious to me that banging your head against the borrow checker is a worthwhile tradeoff in this new world. |
| |
| ▲ | Zecc 2 hours ago | parent | prev [-] | | That was a pretty good car analogy. Thank you. Edit to add: I'm unsure where assembly would sit in this analogy. Skateboard? Monocycle? Perhaps ice skates. | | |
|
|
| ▲ | athrowaway3z 4 hours ago | parent | prev | next [-] |
| I'm a heavy Rust user who doesn't like Zig all that much. I browsed through the Bun code following Kelly's post, and decided to have Codex replace all my Bun usage with Deno. |
| |
|
| ▲ | vanderZwan 4 hours ago | parent | prev | next [-] |
| > Anthropic is not in the programming language market Arguing that a product that sells itself as improving programmer productivity by writing the code for you has no stakes in "the programming language market" because it doesn't sell a programming language of its own is impressively shortsighted. Especially when the leader of a programming language has openly stated their dislike of vibecoding, critisized the industry, and the language project itself rejects PRs made with the product being sold. |
|
| ▲ | audunw 4 hours ago | parent | prev | next [-] |
| The results improving the end user experience didn’t have much to do with the rewrite. Improvements in binary size and speed could be had with similar efforts on the Zig codebase. They spent extra effort to get those metrics to look good to sell the rewrite. The memory safety aspects could be discussed. Arguably they could have had equally good memory safety by employing AI, tests and fuzzing (the Zig integrated fuzzer that the Zig team suggested they use, not just the high level fuzzing they were doing) For this kind of project I do think using Rust is a good idea. At the very least because a project like Bun probably can benefit from a more mature language. But I also think Andrew’s perspective of this process has been essential to understand what happened here, and though he could have been nicer with his word selection in a couple of places (he doesn’t have the clout of Linus Torvalds to get away with it), what he wrote absolutely needed to be said. I find it annoying that people dismiss it as personal attacks. If being a bad manager is the direct cause of a poor working relationship and bad engineering results, pointing it out is not a personal attacks. It’s essential context for understanding what happened. |
| |
| ▲ | ModernMech 4 hours ago | parent [-] | | > If being a bad manager is the direct cause of a poor working relationship and bad engineering results, pointing it out is not a personal attacks. The post did no such thing — it spread rumors and leaned into gossip. There’s no proof or evidence or examples whatsoever offered by Kelley except Jarred’s own public words, which means the post didn’t reveal or expose anything about his management. |
|
|
| ▲ | bel8 4 hours ago | parent | prev | next [-] |
| Yeah I don't understand these myopic takes. Jarred's post about Bun-Zig-Rust post was technical and polite. Andrew's post in response was anything but that. |
| |
| ▲ | embedding-shape 4 hours ago | parent | next [-] | | I'm starting to think that a way we can easily filter what's being heavily composed by (SOTA/mainstream) LLMs or not is by how "polite" the public sees their published blog post. If everyone sees the post as "polite", most of it probably been written by LLMs, as they remove anything that could be seen as "nonpolite" and human. Meanwhile, engineers who just want to publish their own thoughts and feelings on a subject, will be filled with stuff the public sees as "nonpolite", and since those hard edges weren't trimmed before the publishing, we can then assume this is actually a genuine person's thoughts and feelings. | | |
| ▲ | Anon1096 2 hours ago | parent [-] | | Your post seems pretty polite. Did you have Claude write it for you? | | |
| ▲ | embedding-shape an hour ago | parent [-] | | That'd have been fun, wouldn't it? No, I'm too lazy for that, HN gets my raw and unfiltered disgustingly human thoughts and feelings, unfortunately for all of you. For shits and giggles, I asked Sol xhigh what it thought about my previous comment, giving it a "6.5/10 for politeness", saying "it’s polite in tone, but somewhat provocative and reductive in substance.". Maybe this filter should also include provocativeness and reductiveness, and if it isn't provocative and reductive enough, surely it's a LLM? ;) | | |
| ▲ | postalrat 10 minutes ago | parent [-] | | To be useful the filter should give a positive on content I personally disprove of. |
|
|
| |
| ▲ | jraph 3 hours ago | parent | prev [-] | | Polite but misleading in a way that makes zig look bad. So of course the response is sour. |
|
|
| ▲ | simondotau 3 hours ago | parent | prev | next [-] |
| Did we read the same Anthropic and Andrew Kelly's posts? Anthropic's posts were sanctimonious, self-serving, tone-concealed delegitimisation of Zig. Kelly's post was a strategically poor but sincere individual understandably frustrated at this concealed attack, expressing his honest feelings about the situation. |
|
| ▲ | lelanthran 4 hours ago | parent | prev | next [-] |
| > Anthropic is not in the programming language market; No, they're intentionally in all the programming language markets. |
| |
| ▲ | eru 4 hours ago | parent [-] | | Maybe. But they don't particularly care about one programming language over another. Just like Google might sell ads on (approximately) all the websites, but they don't particularly care which website you visit. | | |
| ▲ | lelanthran 3 hours ago | parent | next [-] | | > Maybe. But they don't particularly care about one programming language over another. Other than JS (which they obviously do prefer), this rewrite would have taken place no matter what programming language was originally used for Bun. The reason for the rewrite was marketing, not engineering. The justification after the fact can be done no matter what language they were rewriting from. Zig -> Rust : "We had all these memory errors" Rust -> Zig : "We had poor iteration due to compile times" Java -> Anything : "Memory is at a premium when we're trying to run a fleet of agents" Anything -> JS : "We wanted a single language to optimise our agents for" You get the idea. | | | |
| ▲ | embedding-shape 3 hours ago | parent | prev [-] | | > Maybe. But they don't particularly care about one programming language over another. I mean, they did buy a JS runtime, so surely they must care more about JavaScript and TypeScript than other languages, right? Otherwise that move makes 0 sense. Maybe this part from their marketing post about the acquisition is just a straight up lie I suppose? > Together, we’ll keep making Bun the best JavaScript runtime for all developers [...] |
|
|
|
| ▲ | torginus 2 hours ago | parent | prev | next [-] |
| Andrew Kelley mentioned that the rewrite did bring technical improvements, however those were not tied to Rust and could've been made in the Zig codebase. |
|
| ▲ | manojlds 4 hours ago | parent | prev | next [-] |
| Yeah and Bun and Zig are not competing in anyway as well. Zig blog post has been updated as well recently btw. |
|
| ▲ | lelanthran 4 hours ago | parent | prev | next [-] |
| > Zig's response is a sour opinion piece full of personal attacks. Not sure; it has some elements of personal issues, but they're followed by a rationale from the author. Honestly, seeing the project lead (Andrew Kelly) take a stand against poor engineering practices without any equivocation makes me more inclined to want to use Zig - their values (in this regard, at least) align with mine. He also substantiates what many of us are saying to all these "Very Senior Chief Engineer with 40 years experience" who are boasting of 10x productivity: these people aren't reading the code they are generating, and were producing slop even without AI. |
|
| ▲ | 3 hours ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | shevy-java 4 hours ago | parent | prev | next [-] |
| You mean Anthropic has no agenda on its own? That seems a very biased analysis here. The response by Zig could be flawed (speculation, I have not reached this conclusion yet) but I don't see how this offsets Anthropic wanting to promote its AI slop here in any way, shape or form. |
|
| ▲ | aaa_aaa 4 hours ago | parent | prev [-] |
| Stating you use Codex does not add any meaningful information to the case. |
| |
| ▲ | wowoc 4 hours ago | parent | next [-] | | I think the point of mentioning Codex was that the author of the post has no relationship with Anthropic, even as a user. | | |
| ▲ | matsemann an hour ago | parent [-] | | It's said to imply they have no bias. But someone using Codex or AI agents heavily already have a bias here, just to be clear. Because the discussion isn't just about bun/anthropic/zig/rust, but also between AIs role in coding. So them touting their use of Codex, while not Claude, can still be a bias, especially in the direction they're trying to absolve themselves from. |
| |
| ▲ | raincole 4 hours ago | parent | prev | next [-] | | It reads as "I don't use Claude Code." | |
| ▲ | drd0rk 4 hours ago | parent | prev | next [-] | | I'm using Arch Linux btw | |
| ▲ | coldtea 4 hours ago | parent | prev [-] | | Meant to imply he's not a Claude fanboi. |
|