Dev - Sort these by name
Haven't blogged in a while
Posted on June 04, 2017 at 12:42
[ I'm posting this blog a week and some after I started writing it, because shit happens. ]
Haven't blogged in a while. Didn't realize how long a while until I came back and noticed that Spike was now my age. I'm afraid if I don't start writing more often, I'll return to discover that he's started a family, and that his kids are my age.
In that spirit, here's a blog. I'm actually on a plane, right now, bound for Minneapolis, where I'll be boarding a new plane for San Francisco. I still work for Google; this is another greater team get-together. Life's been mostly calm and predictable. I can't remember if I blogged since buying a house, but if not, I bought a house. Yay! Homeownership can be a pain, but by and large, I think it's something adults bitch about because they forget how stressful high school is.
On that note, I remember all the old people telling me that every successive phase represented “the best years of my life”; it could still prove true, but that's because people my age don't seem to know how to have fun. I used to have friends with whom I could play video games or talk about the games I was making; now I'm so good at programming games, the challenge is in all the art and creative stuff that I don't have, anymore. Well, it's not that I don't have it, anymore; it's just that it didn't scale with my growing understanding of the universe and of proper gameplay elements (it is overcome by the rationale that prevents me from making games like Sticker Star; see my other blog post
So sure, I miss childhood, but only because I miss the lack of inhibition that comes with it... and the time I had to spend with friends…. I'm drowning in free time, actually, but no one else seems to be, and I'm low on physical friends, and the "IRL" friends I do
have don't really share my entertainment interests.
Anyway, that’s enough for that tangent. The point is, life's a bit boring for this and that reason. As usual, however, I've kept busy regardless.
Since programming is pretty much a solved problem, in my life, I've taken to doing more physical crafts. I've been playing with the laser cutter at the local TechShop. I've made a number of small things—utilities for my house, decorative nonsense, gifts for my father, and playground equipment for my hamster.
Oh, that's another thing I should mention. My parents got me a little housewarming present when I moved out of my apartment. His name is Zen. Since I'm not fourteen and poor, anymore, Zen lives like some kind of rodent king. He has upwards of a hundred linear feet of Habitrail at his disposal, but because that's still not enough space for a hamster, I went ahead and gave him access to the rest of the room, too. Hamsters are funny: regardless of the space available to them, if they can map it all out in their heads, they want more. So now that Zen has access to my room, he spends most nights digging at my door, trying to get out. I'm not even certain how he identified the door as a structural weakpoint. He's basically a giant rat. Relevant pics enclosed
As for computers, work at Google consumes most of my patience for the woes of software development. I still program on my own from time to time, but not big stuff, like I used to. I have been considering rekindling ENIGMA, and have even written some code in the direction of doing so, but motivation is sparse because the space doesn't fascinate me like it once did (again, programming isn't really a challenge, anymore, and Google eats up most of my budget for putting up with stupid build systems and code health and blah blah blah).
What keeps me going is the thought of the next generation of video games. I played Color Splash…. I'll be writing about that one, shortly. What I really want is the next installment of Metroid (and for said installment to not be made by Team Bouncing Boobies
). For those who don't know from, eg, IRC, I was big on Mario Maker for a while. I'll be looking for a new installment of that, on Switch; I had a lot of fun with it on Wii U. I made a few of my own levels (like this
), which look hard, but pale in comparison to even some of the easier levels by harder-core players (try Carl's Premature Detonation
, the original hard-as-balls level). I've been hanging around in the Mario Maker community on Twitch, and have made some friends there, but none that I actually hang out with off Twitch or play any games with.
I think I'll be playing Breath of the Wild in another month or two, here—whenever I can get my hands on a Switch. That should be fun.
In broader life news, I'm excited for UberEATS’ arrival in Pittsburgh—I hate driving, but I love eating out. I've been bitching at Taco Bell on Twitter about only backing DoorDash for delivery. They've ignored me outright. If you know anything about my personal life, you know I really can't stand driving (or travel in general). So Taco Bell delivery is something I'm pretty interested in, as is Google Express. Even more broadly, and looking forward a few years, Autonomous cars are a huge interest of mine, and I'm excited for the Pittsburgh-Chicago hyperloop—whatever becomes of it.
I'm not sure if any of you pay attention to the autonomous car space, but it's really heating up. At least Waymo is; everyone else is basically just peacocking, and some of them are paying the price for it, now (the rest will pay the price for it, later).
This is as far as I wrote on the plane—I only had internet over SSL, because I refuse to pay Gogo $8 for the shittiest connection on earth. This meant I could check email and send IMs, etc, but not view or post to 64D. Since then, I had a fucking hell of a time at the airport, but otherwise all was well. I enjoyed the offsite, even though I had virtually zero time to myself—I reserved like eight hours for showering and sleeping (except on the last day where I reserved more like five). While I was there, AlphaGo trounced Ke Jie (19-year-old world champion) at Go... I have mixed feelings about this. I felt completely fine about it until I realized the kid is 19; now I feel bad because he's spearheading a new age of intellectual obsolescence that I won't enter myself for another decade and some....
I could probably rant for hours about machine learning and AlphaGo and self-driving cars, but there's not much sense in it. Just know that big things are always afoot in these fields, and it's usually not the loudest voice that's anywhere near correct.
Thanks for reading. Cheers.
Played Sticker Star
Posted on November 22, 2015 at 11:03
I haven't made a game in years, and what's sadder is that until recently, I hadn't played one in years, either. I do play some Terraria from time to time, but since it's more of a multi-player game, and coordinating with people becomes harder as you become older, I just haven't played much. A long flight to California last month, however, finally prompted me to open my 3DS and start playing Paper Mario: Sticker Star.
I actually had three games at my disposal, including Sticker Star. It happens, though, that playing on this tiny fucking 3DS is actually a really huge barrier to my enjoyment of a game, and so I typically don't play for very long, if I can bring myself to start playing at all. Last year, I brought Kirby Mass Attack along for the flight. It was another one of those DS games that tries to involve the touch screen—mankind's most awkward control interface—simply because it's available.
Make no mistake: I LOVED Canvas Curse. The game was new, engaging, and just plain fun. It wasn't a conventional Kirby game, by any means, but it stuck to Kirby closely enough to be a Kirby game, and it had all the makings of a great game. Contrast this with, say, Epic Yarn. I don't know what went wrong at Nintendo HQ. It wasn't originally a Kirby game, and it never became one. The graphics were beautiful; the animation was stellar, and at 60fps, it was a sight to behold. But the gameplay was lame. The challenge was missing. You can't die; the worst that happens is you get the bronze medal of shame at the end of the level, which bugs me just enough to make me replay it until I'm sick of the game. I never completed either game, actually (Mass Attack or Epic Yarn). I may eventually complete Yarn, but only because it's on the big screen....
Mario games, similar offenses. Theme after theme of lame "twist" on what is otherwise the same old shit. New Super Mario Bros U was okay... New Super Mario Bros was okay, except it was on the little screen. The mini mushroom was cool, the mega mushroom was cool (one of my favorite parts of The Thousand Year Door / Super Paper Mario)... both games had their points. I can't remember ONE thing about Mario 3D land that was new. Oh, except the 3D. The forced perspective bullshit that makes you turn on the 3D display or guess. That was new. Problem is, that shit fucks with my eyes; thanks for making it mandatory. I already hated your 240p fucking display, and then you did THAT shit. God.
Anyway, getting on the plane this time, I decided I should go with Sticker Star, because at very least, an RPG should be a little engaging. Keep me interested throughout the flight. Right? If you've played Sticker Star, you're either crying right now, or you're twelve.
As far as RPG makings go... well, the game had text in it. The first problem was that the text it did include was all painfully "hip" garbage that could be ignored without losing anything. I don't think there was a single paragraph of text in the entire game that added ANYTHING to the story, in way of plot or depth of story. Okay, so there was this one house in Decalburg in which you could unlock painting + message combinations that had some kind of emotion in them. That was it, though. Apart from that, I may as well have played the Japanese version. I'd have enjoyed it more, because my mind would have invented something of substance that was happening elsewhere in the game. Or at least I'd have assumed there was something charming or endearing about the story. But no... like every recent Nintendo title, the plot was deep to the extent that I could roll in a puddle of it without getting wet.
So, we're missing a plot; let's talk about gameplay.
The first thing you'll notice playing this game is that everything requires stickers. Mario is unable to defend himself in any way, short of a half-ass block that cuts damage in half, without using a sticker. Stickers can only be used once, and with rare exception, their effects last one turn. We'll get into exceptions in a minute, because this game's mechanics are actually fueled by odd, quirky exceptions that feel like taped-on afterthoughts. But right now, we're talking about the basic game mechanics, and that means you need a sticker to do anything at all.
Stickers replace badges in this installment of the series. Super Paper Mario had no badges or turn-based fighting, and it was still more of a Paper Mario game than this, so I'm not going to really rail on that fact... except, as I started to mention, stickers also replace your basic ability to jump on an enemy or swing your fucking hammer on your own. You need "sticker power" to do anything at all in a battle but run. It's a good thing wiping your ass isn't part of the typical Mario mechanic, because it'd probably require a stupid-rare sticker to do so, and consequently you'd frequently find yourself walking around with your ass hopelessly encrusted in shit. Rest assured, this would only marginally reduce the overall pleasantness of walking in this game, which may be the slowest that Mario has ever walked in any game when not in water or outer space. Any slower and he'd be moonwalking, essentially, and there's no spin or any other speedy transport in this game.
The button that would logically have been for spin instead summons one of the most aggravating video game characters of all time to provide minimal useless "advice" about your current level or situation. These include "boy, it's hot in here" or "this would be a lovely view, if not for the poison." The rest of it is snappy Nintendo-hip drivel I didn't bother committing to memory. Some of it's downright insulting. None of it is remotely useful.
So, mechanic-wise, not the best start. So we're lacking in plot and we're lacking in basic mechanics. But hey, as I learned from that Halloween competition last year, global game mechanics are less than half the battle. The important part is what you do to make each level unique. So, what does Sticker Star do, there?
Let's start with the places it does really well. Each level has it's own thing that you must do or problem you must address to make the level beatable. Some of these are literally "things"—3D objects placed randomly in the game that are specifically called "things," which can be redeemed for stickers called "thing stickers." These include household shit they found models for, such as vacuum cleaners, faucets, fans, ...a fucking cat statue that ostensibly once held cashews. It's gimmicky, but it's fine. I believe it adds to the game.
Anyway, beating levels. Usually the trick to a level is peeling off bowser tape stickers in a few locations, or tracking down and placing either "thing stickers" or pieces of the level's scenery that have been ripped out, crumpled up, and hidden somewhere. The difficulty of this varies enormously, but it's a decent game dynamic, apart from how annoying it is to place stickers and level scraps. The sticking process is a little childish and drawn out for my liking, is all. The upshot is, each level has a lot of variety. Now, let's talk about how quickly that goes bad, and then about how generally shitty all the other unique components of this game are.
I mentioned that beating some levels require placing thing stickers. I also mentioned that the task of tracking these down varies in scale. Let's look at the start of the game. You find yourself in Decalburg, the main town in the game. After making your way out of the city to the map, you are faced with a choice of four levels. Three of these are impassable, with only one visibly requiring something you don't have (ostensibly a thing sticker). It's not clear immediately what that something is, but it's clear you don't have it. This imparts a false sense of nonlinearity (the idea that you can beat these levels in the order of your choosing), when in fact, the game's about as sequenced as they come. It's only slightly more strongly sequenced than, say, Super Mario Sunshine. Imagine Sunshine only you have to beat Shadow Mario (ie, course 7 of 8) before unlocking the next stage, and you need to clear all eight objectives in every world before Corona Mountain unlocks. Yeah, it's pretty linear, but gives a false sense of nonlinearity that causes major confusion early in the game. I wasn't sure what levels I was able to beat, because finding a way to get the stupid bridge piece in 1-1 seemed just as inconceivable as finding the fucking stickers I needed in 2-1 or 3-1.
Fast forward a couple levels. The confusion hasn't cleared. What could be needed to get past 3-1? It's a big sticker spot. Maybe I need to blow my problem away with the fan from that gusty meadow? Maybe I need to vacuum it up like the garbage it is? No, nothing like that. If you play through the entire first world, you'll understand... otherwise, you'll be as lost as ever. And if you stick the wrong sticker in that spot, it will gray out and fall into oblivion, which is a horrendous waste of a special sticker. Toward the beginning of the game, thing stickers seem precious. Why? Because the game offers no kind of tutorial to explain that they're relatively easy to replace.
In fact, this game has no tutorial at all. It employs the most complicated action commands of any game in the franchise, and the way you can learn the action commands is nearly impossible to discover. Perhaps this was covered in the manual that no one reads. It took me quite a while to figure out that "things" come back, only after you use or sell their sticker, and it took me even longer to figure out how to properly use the action commands for hammer-like stickers. If you miss the command, you typically deal one damage point, or sometimes half damage, in what seems like random noise to a new player. In essence, the game lacks any tutorial structure or directional structure, and it punishes the fuck out of you for it. So let's talk about the rewards!
In addition to arbitrary sticker requirements to get through certain levels, like the 3-1 "thing sticker" eater, Boss fights have arbitrary sticker requirements. At least I think they all do; for all I know, some of them are nothing more than frustrating-as-fuck wastes of stickers. The first boss battle in the game (a giant, sparkly goomba) may have a hidden winning sticker, but I never found it. After I kicked the thing's ass with what I had on hand, the cunt advice/guide sticker I mentioned earlier ridiculed me for spending so many stickers on one fight. A quick wiki search just now reveals the answer:
"The key for beating it is waiting when the 16 Goombas Stickers appear and start to flip: at this moment, Mario should use the Fan sticker to make all the stickers but the corrupted one to collapse. After doing so it's like to battle an ordinary Goomba."
What. The FUCK. Is this DICKERY? Holy SHIT. What a novice fucking antic. There was no indication throughout the entire first segment of the game that a fucking fan sticker is the way to beat a giant, shiny fucking goomba. I think most people would agree that, while I have my moments, in general I'm reasonably intelligent. Probably more intelligent than the typical child for whom this game was developed by a good two or three sigmas. But you know what? I was CLUELESS that a fucking fan sticker was this asshole's silver bullet. But that's the trick: every one of these fucking bosses has one or two stickers for which bizarre, inexplicable, crippling exceptions are wired into the game to convert an invincible leviathan (invincible, as in your attacks typically deal 1-5 damage out of the 350-500 total hit points, per turn) into a pathetic puddle of slime. The game developers went so far as to code special sounds and animations for how thoroughly you're kicking ass when you use these stickers, but they couldn't be bothered to, say, drop a hint that this is what you want, or, you know, just make it follow intuitively from the circumstance of the battle.
I LOVE when you can abuse scenery or such to get the upper hand in a battle. Even when it's designed for a 12-year-old to figure out, I feel accomplished for realizing that. eg. in Metroid Prime: Corruption, the quickest way to kill eight enemies on a bridge is to step off of the bridge and collapse it. Contrast this with Sticker Star, where you have to divine that a fucking fan sticker used at this moment will reduce your giant sparkling goomba to a one-turn punchout.
The one exception to this in Sticker Star is the boss of world 4, which is a 25-story snow monster. I'll bet you can fucking guess what kind of stickers are effective against him. But he's the only one. The only reason I figured out world 2 is not because fire is the natural enemy of snow, but because the fucking tower is called a "stadium" for some inexplicable fucking reason, atop the tower is a literal baseball stadium, and the fucking advice sticker bothers to say "DAMN SON, LOOK AT THOSE LOVELY SEGMENTS. JUST LOOK AT ALL THOSE SEGMENTS. THIS BOSS COMPRISES MULTIPLE SEGMENTS. YOU STILL ATTACK THE BOSS AS A GIANT MONOLITH, BUT IT DOES COMPRISE MULTIPLE SEGMENTS. I WISH WE COULD FIND A STICKER TO SEND THOSE SEGMENTS FLYING WITH A LOUD CRACK. ARE YOU THINKING ABOUT BASEBALL YET? THERE WAS A BAT STICKER EARLIER." It turns out that the bat sticker is the ONLY sticker in the ENTIRE game that can individually attack each segment, which gives it a damage multiplier of however many segments high you allowed the boss to reach. All other stickers, including Thing stickers, can deal at most 45 damage to it. The bat does 45×5. Why is a bat special against a giant cactus in a baseball stadium? BECAUSE THAT'S WHAT WE CAME UP WITH, SO THERE.
There was one time that almost seemed intuitive, but for the wrong reason. At the end of world 3, I brought a really stupid sticker along (this thing is useless in battle) because it fit the theme of the big task at hand, being, soak up all the poison that's ruining the forest. I brought it along thinking I'd need to place it somewhere, but instead, it happened to have a pre-coded deus ex machina for the final boss of that world. I couldn't believe it.
The final battle is, comically, a big chain of special stickers you need. Through some happenstance, I figured them all out on my own (or at least I found a winning combination), but the game's so fucking cheap, it doesn't matter, anyway. The final Bowser fight (spoiler: the bad guy is Bowser in this plotless wasteoid called a game) consists of FOUR consecutive sticker gotchas. I really only solved three of them; one by happy accident, one by "well, I have a sticker that'll get rid of this asshole the old-fashioned way," and one by having the correct sticker literally fall from the sky to me during the fight. Here's the kicker: being that I do have some wit about me, I devised a sticker combination that allowed me to deal 600 damage in one long turn to practically any enemy, and I used it on bowser, who has 450 HP. The result is that after he's down to 10 HP, all further attacks do no damage at all. After the asshole dried up, and I dealt him one more zero-damage blow, he proceeded to the next sticker gotcha phase and healed as usual.
What this seems symptomatic of, to me, is that the developers were eager and industrious enough to add one special sticker to each fight, but too lazy or pressed for time to add, say, more than one... or drop any cues apart from giving you the correct sticker in battle. Perhaps they just weren't clever enough. Perhaps they didn't see it as a problem that they give you literally one way to play the game and win the battle.
Remember that linearity complaint...?
Anyway, my favorite example of this is the chain chomp fight. It gives you a save block, and teaches you the "go ahead and reset" way three things:
1. Chain Chomps like sleeping.
2. Chain Chomps cannot be damaged (except by glitching), or woken until three turns have passed.
3. When the chain chomp wakes up, he will attack; if he's not tied down, he will escape, ending the battle.
It is important that it teaches you this, because you must employ this knowledge in the next stage to remove a chain chomp from your path. The expected battle structure is this:
1. The battle commences.
2. You use a sleepy sheep hammer.
3. The Chain Chomp goes to sleep.
4. You flee from the battle, leaving the Chain Chomp asleep.
5. You disconnect the Chomp from his chain.
6. You re-enter the battle, and wait for the chomp to awaken, like last time.
Issue is, they didn't bother to code you in any help, AT ALL. Your success rate for fleeing the battle while the motherfucker is asleep is about 10%. You can exhaust ALL of your sheep hammers before you ever manage to flee the battle. WHAT THE FUCK, DEVELOPERS? HOW did this get through beta? This obscure fucking tactic was already going out on a limb, and now you want me to do it while putting up with your game's assery? How fucking hard is it to flee from a dog on a leash, WHILE THE FUCKING DOG IS ASLEEP? Holy shit.
Anyway, sorry for the rant. Also, not sorry; I had a lot of fun writing it. About as much fun as I had playing the game, actually. Indeed; I enjoyed the game, regardless. It made me think, even if the thinking was in vain because they either spell the fucking answer out for you or give you no way of inducing it whatsoever. And you can probably tell from the structure of my pain points that I spent the entire game trying to find ways to break it. It was fun doing that. Turns out, there aren't any ways to break it (there are some tricks, but you literally can't proceed without beating all five levels, any way you slice it; you're just completely better off playing it through by level number). And when the game finally ended, I was sad, not because it was a very good game, but because that was all I had.... Nintendo hasn't been putting out many games in my favorite franchises, lately....
So. Thanks for stopping in. If you still make games, learn from this example how not to make a game. If you still play games, learn from this example how to avoid this particular game. It will only break your heart and kill you.
Posted on October 28, 2015 at 22:26
Scene: my bed, yesterday morning, 2:30 AM.
I wake up, and it feels as though someone has punched me in the lower jaw. I can't believe how bad this hurts; what have I done? One of my teeth must be acting up, I assume. I grab a dental floss stick
and begin agitating between the teeth to see if any one tooth would give a response. Nothing. So I turn the pick over and begin gently biting down on the broad side using the teeth that hurt. No... no... no... no... crunch. The wisdom tooth directly above the teeth that hurt shattered, sending pieces of tooth throughout my mouth. In a dazed, sleepy state of shock, I began fishing around my mouth for pieces of tooth. After I collected them all, I grabbed a dental mirror to explore the damage. It was ugly.
The four or five teeth under my now-shattered tooth immediately ceased to hurt, but the tooth in question eventually resumed in their place. Interestingly, there was a period during which I felt no pain. Perhaps if I had just taken some ibuprofen and gone to bed, could have sorted the affair in the morning. But that's not what I ended up doing.
As I probed the tooth with my finger to see what had happened, the pain set in, and coupled with the horror of what had just happened (I had actually had a nasty dream about this a month prior), I decided that the tooth had to go. I went into the other room, grabbed a screw driver, and began prying.
Over a year ago, I had a similar experience with the wisdom tooth on the other side of that row of teeth. It didn't hurt; I just discovered one day that a lot of it was missing, and for the most part, I left it be (I gave it a small tug with some floss to see if it would come, but I gave up quickly enough). The dentist took some sort of dental screwdriver and quickly pried it apart from the neighboring tooth, then grabbed a pair of forceps and twisted it out of my skull. It was a painless, simple procedure. How hard can that be to reproduce?
Guided by horror stories about my father having failed to extract his wisdom tooth using pliers, instead shattering it to where it had to be cut out of his head, I decided to stick with the screwdriver. My prior dentist had left a passing remark that my father should have used one if he was going to attempt that sort of thing on his own, so I figured this was the best place to start.
No amount of force was going to get this screwdriver to successfully pry this tooth from my head.
I started just by twisting the screwdriver to separate the wisdom tooth from its neighbor, as my dentist had done. No real issues. But when I started applying the serious torque to remove it, shit hit the fan. I couldn't get enough grip, and I couldn't apply enough force. Not to mention I was salivating in hyperdrive. I was about to soak my clothing in drool. So I got in the shower.
This continued in the shower until I had enough area on the tooth to begin pulling on it with my fingers on the screwdriver shaft. At this point, I decided to add more tooling. Unfortunately, all I had at hand was a few shampoo bottles. So I opened my mouth, shoved the shampoo bottle in, placed my head against one wall and my foot on the opposite, put my knee cap to the shampoo bottle, and just started shoving. I crushed the shampoo bottle quickly.
Each one of my ankles can put out about 300-400 pounds of force. I wasn't anywhere near that to crush the shampoo bottle. So I went to get something more durable.
After some choosing, I settled on a hammer. Not ready to return to the shower, I sat in the hallway and repeated the operation using the handle of the hammer in place of the shampoo bottle. I must have put 30-50 pounds of force on this system. It wasn't enough. The only thing that happened is the occasional miss, which would result in the screwdriver scraping into the roof of my mouth.
I was at this for four hours, until the fifth occurrence of the screwdriver missing at about 5:00 AM. At this point, the pain was dying down and my need for sleep was reaching a breaking point. I crawled into bed with my screwdriver, and after a few more prods, finally managed to roll over and fall asleep.
The rest is pretty much history; after I woke up, I booked a dental appointment for today at 10:30 (about a 26 hour delta from wakeup time). I went in, to a totally new dentist now that I live in PA, and after a 15-minute numbing window, he removed the tooth in two minutes with some forceps. No prying was needed, for reasons left unspoken. He awarded me an A for effort, after some opening remarks that he found the damage I did to my mouth "pretty stupid." He apparently was telling his assistant about it, because when he showed her the screwdriver crater, saying "see is?" and she nodded with a brief "I see what you mean," I could basically hear an entire conversation of him explaining. "see, this is that retarded shit I told you this dumbass did yesterday night," and her replying "Yeah, that's every bit as retarded as you indicated."
But hey, I enjoyed myself, and that's the important part. As a souvenir, I requested the tooth in a to-go box. He did as requested; the roots are pretty whacky, but not as bad as the last one; they're good and thick this time, and they converge instead of snaking out in all directions. Where two of them converge, there's a small piece of my jaw bone. Also it's bloody as shit, but like, what do you want?
Bonus fun fact: I occasionally get headaches. Some of these headaches really suck. In fact, I'd go through all of that again just to save myself a headache in the future.
Such a racket
Posted on April 11, 2015 at 11:25
I swear, what is wrong with economics?
I kind of live in a little bubble, nowadays, wherein everything is free and wonderful and there are puppies and kitties and also I'm shitting what appears to be bird seed, on the pinecone
. Such is life at Google, I guess; not really the point.
I was cleaning off my desk, because I live like a pig at work and at home, when I decided to deal with the 25-foot cable that connects my keyboard to my monitor's USB port. I remembered earlier seeing a big canister of what I thought were zip ties at the floor Tech Stop. I went and grabbed a few, but was surprised to discover they were actually extremely thick twist ties, called "Gear ties." I instantly fell in love with them; they're like untangleable, colorful, powerful silicone bread ties.
As a child, I used to collect twist ties from various sources, including bread bags and store-bought cable spools. It was more than a hobby; twist ties keep me sane. They keep my cords from getting tangled when packed away, which is one of my temper's few (but excruciatingly tempestuous) achilles heels. The other two are poorly designed (or deliberately misleading) websites, and desktop environment regressions. So basically death and taxes.
That said, I found securing my spool of unneeded USB slack to be like wiping my ass with silk. Probably better. There was just something orgasmic about binding that wire just by coiling the tie around it. At that moment, I declared my intention to buy a thousand of these devices.
Unfortunately, it wasn't to be so. Do you know how much a thousand gear ties would run you for?
Go on, take a guess.
Okay, fine; look for yourself
Hint: that price is for 100. So multiply that figure by ten. No, that's really the best price you'll find, unless you include shit like Ali Baba, which will get you a Chinese equivalent for $0.25 provided you buy their factory. So yeah, 1,000 gear ties is gonna run about $1,300-1,500.
Bizarrely-overpriced commodities have become the new motif of my life, recently; I have no idea how or why the littlest things I want seem to cost so much fucking money. And I mean, I probably realistically only need a couple dozen of those Gear Ties, and that said, isn't it worth $35 to have them?
My answer is no; it's not the money, it's the principle. For $35 I'd rather buy this
(spool of 10-gauge, $30), and if I feel the genuine need, these
(Vinyl vacuum caps, 50/$11). But then, look at that shit! For any Gear Tie length of 9.6" or less, the caps are more expensive than the wiring!
Doing the math, though, I can produce 5,000 of these ties, right now, for $0.39 apiece ($1952.50). Selling them for $0.50 apiece instead of $1.50 apiece, I'd make $550. Assuming I made one of these in one minute, I'm not making minimum wage; I only get $6.60 an hour. So evidently I'm not a factory. Let's instead assume that I charge $1 apiece. I'm now pulling $36.57 an hour producing these as a casual. I can do this for a dozen years and retire. Now imagine if I charge $1.50 apiece... or the $2.50 they're charging on their website....
In case you're genuinely curious, those numbers are $66.57/hr and $126.57/hr, respectively.
There's something wrong, here. That's assuming that I, Josh Ventura, sit down with a pair of wire cutters, a spool of 10-gauge wire, and a tub of vinyl caps, and one by one I cut six-inch segments from the spool and place a vinyl cap at each end. On the average, this would probably take me less than 15 seconds. So you can up my wage to $250/hr selling at the "bulk pricing" you see on Amazon.
Now let's say that instead of ordering a single spool of wire on Amazon for fucking 300% markup, and some goddamn vinyl caps at 800% markup, I buy those from an actual manufacturer in bulk. Here's where I'm no longer able to report numbers to you, because corporations don't like publicizing how much they can actually
produce their fucking product for. I estimate my cost per tie would drop somewhere between seven and twelve cents, plus manufacturing costs, which remain basically free if I want to invest dozens of hours into the operation. Otherwise, they genuinely skyrocket, but then we have amortization on our side.
I can't begin to speculate on what setting up an assembly line for these fuckers would be. So I contacted Monoprice. This sort of thing seems right up their alley, and there can't possibly
be any real patents surrounding a fucking twist-tie + dildo combination.
I'm basically only ripping on Gear Ties because they're the latest to emerge from the pipeline of things I'm paying too much money for. Previous incarnations include 5 Hour Energy and Supermag (Geomag being a less functional alternative).
I actually already made my own Geomag alternative from N48 rods
(30/$10) and some plastic tubing
($6.39), so basically, I have experience fighting retardedly-high prices to buy little shit I just kind of want to own.
My next project is going to be building a waterfall wall
out of some acrylic walling
($60/sheet) and a couple fountain pumps
Life just isn't that goddamn complicated.
Posted on September 11, 2014 at 22:55
In other news, Reddit has invented a word best explained by this image:
You've probably seen it already, but if not, well, now you have.
Today was my last day in Mountain View, which I was visiting for a series of tech-talks and team-building exercises. Do you remember the feeling you had when you first joined 64Digits? Or if not then, then the community before it? The feeling of being surrounded by people of a like mind? This week, I was literally surrounded by other living, breathing individuals of that variety. Some of them I had worked with over the Internet. Some of them I had never met before. I know it sounds absurd; I would have passed off all of this as corporate bullshit or the false sense of community you get at anime/video game/pogo stick conventions. But it really was remarkable.
I'm feeling a little sad, now, actually. I left today, saying literally nothing more than "adiós" to anyone—some of whom I knew I'd, in all actuality, never see again.
People drift in and out of my life all the time, and I never think anything of them. I don't know why this is different. I'm looking inside myself to try to find an answer—some logical rationale behind what I considered the dumbest and most frivolous of sentiments.
I noticed that I've become a bit complacent; I stand by, watching life flow by, interacting only as necessary to ensure that I, well, continue doing so. I don't really talk to people unless prompted; I don't do anything that far outside of what I'm asked to do. I live as though convinced that whatever there is to be done can just happen later. And it's starting to terrify me.
This is the first time in my life I've ever willingly stayed at a social event. It might even be the first time I've willingly attended one. And I was somehow occupied the whole time. It ended so anticlimactically, it's as though we all assumed it'd continue tomorrow. Or maybe this is the first time in my life I've ever felt even the slightest bit emotionally vulnerable, and I was literally the only one who will ever think anything of it. All I know is that come Monday, my life resumes as it was, as though none of this ever happened. Yes, I'll have pictures, but what gives them any more value than a memory of a pleasant dream?
I'm going to cut this blog short, because it can only drift into a full-blown existential crisis from here. I just wanted to share how I'm feeling. I'm sure a good number of you have felt that way before. The rest are probably just like I used to be. I don't know what to wish you. I don't know if, given the opportunity, I'd have just spared myself this experience, because I was very happy with my life before any of this happened, and I have no idea whether that feeling is going to last now... and more importantly, I don't know if it is good for me that it does last.
If you want a philosophical conundrum of more worth, I'll leave you with an old question you should have already been asked: if you're already happy, is there any value to a state in which you are happier?
This is blog
Posted on January 16, 2014 at 17:46
I don't have any particular theme to rant about today. Shit happens, I guess.
News point: I've graduated.
Dreams involving my school, my landlord, my major, etc, haven't stopped. Actually, they've pretty much just started. I never gave a shit enough about any of it to have such dreams in college; now they won't relent. It's probably to do with the fact that now is the time I would be heading back for another semester of torment; it's impossible to believe it's over. But it is. It's also odd, because normally I have lucid dreams, and seldom do I not have some kind of super power. Most of my dreams of late have been in a classroom or in an email correspondence. But the point is, that's all behind me, now. I'm a free man. Soon to be a corporate slave.
News point: I'm an XFCE user, now.
For the longest time I've been clinging to the remains of GNOME 2. I know it's necrophilia, but you have to understand how beautiful this desktop environment was. The issue is, I'm not so far gone that I'm not put off by the smell as I carry on with it... MATE has obviously not even been embalmed. It's just a smelly, rotting GNOME 2 corpse. I think that the original idea was "if we keep the heart beating, everything should be fine," but they forgot that a body also requires oxygen and food. Or maybe it was the other way around... although I didn't notice any bloating.
I've tried a dozen desktop environments. All of them rhymed with "Unity." For example, "KDE" (I don't want to talk about this one), "GNOME 3," and "Cinnamon." Okay, I'll be fair. Cinnamon didn't try to be a monolithic suckhole, it just happened.
The issue with most new desktop environments is that there's almost zero room for customization. I'm not kidding; you can't even opt to move Unity's dock from the left side of the screen to the right, much fucking less the bottom. I prefer Windows' layout: single panel on the bottom. Nothing on top but the window title bar, which makes it easy to grab quickly. You just can't have that with these DEs. Most offer zero customization. GNOME's fallback mode is a rancid piece of shit, but it at least allows you to place panels. Cinnamon is meant to be a GNOME 3 implementation of GNOME 2, but it is completely broken on Ubuntu; it causes X server freezes and steals the mouse when the super key is pressed, only to lose it forever, breaking all applications until TTY switchout. XFCE is also badly broken on Ubuntu. As for KDE, well, it's for people who want to have sex with a bottle of glitter, then dump the result on their hard drive and smear it around a bit. When KDE users fart, sparkles come out. It's just not for me.
I'll admit it: I like my desktop a certain way. This is because I have become used to it and am most productive with it a certain way. I had to customize XFCE for about four hours to get it how I like it, but the good news was that all the problems I had with it in the past were completely Ubuntu's fault, which is completely Shuttleworth's fault. I don't like Shuttleworth. I'll refrain from talking about him further to avoid my own incarceration, but the bottom line is that I genuinely don't like him very much, at all. He has ruined Ubuntu, the Linux distribution which I, at this point, cannot escape.
You see, Ubuntu came with my PC and is its only supported operating system, so I do not want to switch distributions. The NVidia driver installation tool meant to work on my hardware is distributed as a Debian, which is incompatible with even Mint packages. I therefore fixed the majority of my problems by installing Xubuntu—an official Ubuntu release—instead. The rest of the problems, I fixed by replacing XFCE's components with non-shitty equivalent components. For instance, Thunar is underpowered beans; I replaced it with Nemo. XFWM is a pretty good window manager; replaced it with Metacity because its window snapping blows.
The only remaining "wow, this sucks" factors are the fact that I don't have access to a battery charge history, and for some reason, I can't customize what my theme looks like at all.
Back in the day, there was a divide between people who like dark themes and people who like light themes. This divide never went away, but the ability to switch between the two themes did. It doesn't matter what GTK3 style (that's GNOME3speak for "theme") I pick; if I choose a dark theme, random shit is light. If I choose a light theme, random shit is dark. Fortunately, the random dark shit looks deliberate, so I have a dark panel, and every fucking thing else on my system is light. I will probably never fix this until GTK3 is finally murdered and fucking buried. What a horrible piece of shit.
News point: I'm working on my own projects, again
is a C++ parser and code query library. Depending on who you ask, it's either CTags++ or Clang--. Identifying types of expressions is easy with JDI; so easy, I set up a CLI that lets you query expression types when parsing finishes. It's useful for IDEs, and for ENIGMA, because it removes the mystery from what's inside a pair of parentheses. One of the biggest flaws in most IDEs is that, as soon as a template enters the picture, all bets are off for what something[whatever] is, and it can't help you code complete something[whatever]-> at all. Doing so would involve knowing what type you have on the left of ->, or at least having a good guess. Most IDEs have neither. JDI knows exactly.
Disclaimer: JDI is not thoroughly tested on incomplete or invalid code. I have no idea how it would perform when people don't close their fucking braces, which is always the first thing I do after opening them.
just wrote a new BBCode parser which may or may not augment or replace the fifty-year-old one on this site.
Other points of interest: None.
I guess I'm kind of a boring person. I don't do drugs; I don't even sell drugs. Hell, I don't even use Python. All my friends tell me it's good shit, though, and a lot of companies not only allow it, but encourage it on-site. That said, I might pick some up, at some point. Even though it's a little out of character.
At least I'd be able to script for InkScape.
That reminds me, I also maintain some vector icons
licensed as GPL. But they're for use in bigger projects and are not to be regarded as a project. Just thought I'd point them out. In fact, this is a good opportunity for some SEO. *Ahem* Free (GPL) small resolution vector icons
I promised toast
Posted on November 20, 2013 at 11:00
...a shitty blog. SO HERE GOES.
Finals week ends in THREE weeks, ONE day. My life theretofore will look like this:
Act I: Survive Wednesday. On this day, you will catalog countless training images for a sign language bot.
Act II: Survive Thursday. This will involve presenting the thing you spent Wednesday building.
Act III: Survive Thursday night and Friday morning. This will entail writing a simple function... in Scheme. So an otherwise easy function, made difficult by the fact that there are no arrays or list appends in Scheme... that run in O(1). This is only a problem when you consider that I am runtime OCD.
Acts I-CMLXXVIII: Survive the weekend of doing an AI project to classify songs by genre. Maybe this will be extremely easy, maybe it will be like pounding nails with your eyeball.
Act CMLXXIX: Survive the presentation on the subject on Tuesday the 26th.
Act CMLXXX: Do the homework assignment for that same class. Submit by Wednesday night.
Thanksgiving. Prepare for computer vision test on December 3. In all other classes, relax.
Now that you know the battle plan, I'm going to talk about a dream I had last night. I don't have conventional dreams, from what I gather. I'm usually aware I'm dreaming, and almost always have impossible superpowers. Some dreams, I can teleport. Many dreams, I can walk through walls. I can't remember the last dream I had wherein I didn't fly. Tonight's dream was different, though; I didn't realize it was a dream until much later on, when some minor details about my room gave it away.
I became almost angry about this obvious slipup; why isn't this right? Is this a dream? I'll Google something to find out. Yep, this results page is fucking nonsense. Definitely a dream. This is aggravating. I then threw the laptop and decided that I'm making up my own superpowers.
For whatever reason, the best I could really come up with was the basic onslaught you see in Avatar: the Last Airbender. At that point I declared, "I'm the fucking avatar," and began making a mess of things. My yard looked relatively clear of details, and I picked up on this quickly. Behind the few instances of plant life that actually appeared in the dream, the swimming pool remained, and I flew above it and started looking around.
While doing so, I noticed the deck was missing. So I looked back on it. It had been replaced with grass, which certainly does not belong there as it is an above-ground pool. This would not do! I reconstructed the deck in clearly exaggerated photoshop detail. Entirely too much texture with extremely high-contrast bump mapping. But I was happy with it, because at least it wasn't grass.
The rest of the dream was mostly uneventful. I continued being pedantic about how things rendered in my mind until I eventually woke up. The earlier parts of the dream were somewhat convoluted, but mostly uneventful. They involved some water heater installation people visiting my uncle, who I never see, so I have no idea why he was in my dream. They wanted to install some eco-friendly energy something or another. My father warned against it because doing so had some undesirable effect (like restriction valves in faucets and shower heads). I was just heading to bed in the dream when I started noticing things were off, and that's when it all started.
Anyway, that is my shitty blog. Thanks for reading.
High School Memories
Posted on November 09, 2013 at 23:41
When I was in high school, my fellow scientists and I sat down at our cafeteria table one day and developed an amazing invention. The device, decidedly avionic, was designated "OFUK-Airplane." Its hull consisted of a styrofoam container of applesauce and assorted fruit chunks, complete with a plastic lid. Its propulsion system was of similar construction, based on an empty container which once also housed applesauce. The deck and stabilizer system comprised various pieces of plastic cuttlery carefully crafted according to the following blueprint:
After days of work (or about 8 minutes to the untrained observer), the finished product emerged:
After its maiden voyage, OFUK was placed into storage for a term of months. Following those months, I retrieved the device and opened it up to inspect the quality of the food supply (delicious applesauce) within. I was greeted by no less than six distinct species of mold, which included the following: your typical white mold; a similar breed, featuring orange highlights; a bizarre offshoot which forms circular dense bodies with grayish green in the middle; a bluish, furry kind which grows in fluffy lumps; a henshit-green, satin-textured kind; an extremely granular, almost dust-like blue-green-gray kind; and finally, some odd, prolific species that resembles spent coffee grounds.
For your interest, I will link to some photos that I fortunately snapped of that, as well:
Photo from above
Intrigued by my findings, I decided to push aside the mold and sample a taste. Nearby classmates watched in eager anticipation, and slight horror, as I consumed roughly half the months-old applesauce. I can understand their horror, as these were supposed to have been rations for the voyage, however, I was confident in our ability to replace it cheaply. Besides, this was conducted in the interests of science.
To that end, I found that the sauce on top was sweeter than that at the bottom, possibly due to sugars being produced or transported by the mold.
I also believe I am now immune to all staphylococcus-family infection. Like some mold-powered superhero.
Thanks for tuning in.
A Day in the Life of Josh
Posted on November 01, 2013 at 00:48
When I was younger, I used to blog about my life, and at some point, I eventually figured that my life is boring enough for me that I shouldn't bore everyone else with it. But now I think my life may actually be boring enough for everyone, and so I will try describing it here once again. This blog is a long one, but I've broken it into four sections which I've tried to make independent, except for some minor details.
This semester is my last one before graduation, and I am taking only four classes. This is good, as two of those classes involve group projects, and one of them is generating enough homework for all of them. The assignments are small, but frequent, and defined in such a way as to make you figure out what the problem is asking and
how to do the problem simultaneously. I normally have a knack for this, but only when the problems are interesting to me. The topic sounds extremely interesting, but the methodologies are, as usual, a huge letdown.
One of the benefits to only taking four classes is that I could cram them all into one day, which repeats but twice a week. This means that in the six weeks of class I have remaining, I will only meet in them eight more times. This sounds positive, but bear in mind that's like a thousand in binary. The point is, quite a lot ends up happening in each of these days as two of them end up containing events sufficient for five of them. Today was no exception.
To better understand my situation, you should probably know my schedule.
"Advanced" Artificial Intelligence (AKA applied statistics II):
Since it is at 11 in the morning, it has the heaping majority of tests, making it impossible to sleep in on the majority of test days. Also, there's a group project.
Computer Vision (AKA Thinking in MATLAB®©™)
This class has all the homework. As mentioned, despite their small size, their number and share in your learning process will leave you swamped. This is in addition to the group project.
Principles of Programming Languages
This class has the most... nothing. I could ace it from a hospital bed. In a coma. We did have to write an interpreter for a toy language, which I did in the general case
, but that was pretty much simple. I guess testing ate up more time than I like to admit.
: Digital Art
This class runs to 6:40; it's not much work, as it is art. It generates projects, of course, which eat up even more time, but it's otherwise unremarkable. I am a fan of our latest project, which I'll touch on later.
A good start in the wee hours of the day
So, today began, as most do, at 12:00 AM. I finished reviewing a mess of a powerpoint spanning all three topics we would be tested on for this unit, and was ready to go to bed. Then I remembered I promised to create a slideshow for Computer Vision, with a unique set of results I generated from our most recent homework assignment. Participation is part of our grade in that class, as if to add insult to injury. So, the time being not long after one, I began work. MATLAB is great at graphing things; it is terrible at arranging graphs. It's like the GTK of the Java world. Every graph is separated by padding the size of roughly 70% of the plot. After screwing around with this in a tired haze for longer than I ever should have, I saved it as big as possible and opened it in GIMP to remove the excess padding, which, of course, cannot be done automatically. Following a slew of other stupid problems I never should have had, I finally emailed the presentation to him at about 2:00.
Following that, I went straight to bed, in anticipation for a test in AI at 11. I don't fall asleep fast, so it was about 2:40 when I estimate I finally dropped, leading to a good seven hours of sleep before I had to be out and about.
Usually, I try to eat a good breakfast before a test, or if not a good breakfast, then at least a decent-sized breakfast. Before my previous test, I went to McDonald's and bought two McGriddles. I only ended up eating one before the test started, but it ended up working out okay because then I had another to eat for lunch. I don't have time for a lunch break between classes, as they are each separated by fifteen minutes, and the walk time + wait time to any restaurant near campus always totals at least 20 minutes. For instance, if I eat at the cafe right next to my main buildings, I'll wait about 15 minutes to get to order and then another 10 minutes for my food. Thus, I usually either don't eat, or eat a pop-tart. On occasion I pack a lunch, but I hate eating in the middle of class, and there's not much time between classes, so there's just no winning.
Kicking the morning off right with a balanced breakfast
On this day, I decided to repeat my past process. The plan was roll out of bed, grab a shower in an attempt to attain full consciousness, and swing by McDonald's for breakfast/lunch on the way to the test. There was only one hitch in this ingenious plan: I left a couple minutes too late, and ended up arriving at McDonald's at 10:32.
The significance of that figure, for those who aren't aware, is that the corporation has decided that 10:30 is a good time to cease serving breakfast, and begin serving their nasty lunch products, which I would never personally touch. I haven't eaten anything for lunch from McDonald's in years. For whatever reason, though, I like their McGriddles, and that's what I was there for. Arriving only two minutes after the menu switch, I figured I would be okay, but this idea was, sadly, based on a misunderstanding of the complex enigma that forges the inner workings of McDonald's. You cannot really blame me, as I am not a nuclear physicist and therefore should not be expected to understand such intricacies. However, I am acquainted to a former McDonald's employee who may or may not have leaked data sheets specifying the complicated procedure that is assembling a McGriddle. While it would be illegal for me to share such a document here, I believe I am within my rights as an American citizen to give a summary of my limited understanding of this process. I believe it is something like the following:
Remove McGriddle components from cryogenic stasis.
Place components into rapid heating apparatus (I believe this device to be powered by some form of radiation just below the wavelength of radio waves)
Place the now warm sausage onto the now warm pancake bun
Obtain cheese square (this is where the process gets technical)
Place cheese directly onto the center of the meat patty
Locate the axis running tangent to the cheese from the upper, right-hand corner through the lower, left-hand corner.
Carefully trace this axis ⅜ inches from the lower corner.
Locate the axis running normal to the surface of the cheese, through that point.
Quickly rotate the cheese 26.565° anticlockwise about this axis, so that it hangs roughly an inch over the side of the assembly.
Center the other pancake bun on top of the ensemble.
Translate this bun 0.875 inches along the new axis formed by the upper edge of the cheese.
(Optional) Place assembly back in heating apparatus so that the cheese adheres other components together.
From my observation, experienced employees are able to quickly compute all necessary calculations for steps 6-9 in only the time required to take hold of the cheese, and then execute all required motions in one swift, precise gesture. I have seen similar feats performed for steps 10 and 11.
As a third party observer, though, I fail to understand what of this process requires it to be performed before 10:30 in the morning. Perhaps some day I will return to this university for a degree in quantum mechanics so that I may finally be able to understand this conundrum. In the meantime, however, I decided to wait patiently while the fair lady at the register inquired, "are there any McGriddles left?" to the rest of the staff who, unfortunately, were occupied in their calculations for nearly three minutes and so were unable to answer as she stood eagerly anticipating their reply. When this finished propagating, I was informed that, unfortunately, all that remained was a single bacon McGriddle. I politely expressed my disinterest in the product and promptly left, satisfied in the idea that I'll just eat the crushed pop-tart in my back pack from Tuesday.
And eat it I did. The test looked roughly as anticipated. A good set of easy questions on which I will be scrutinized endlessly, the result finally converging a few weeks later to a grade of 81.6±.397, at which point it will be labeled B- and returned prematurely so as not to keep anyone waiting for an undue length of time.
The joys of futility
Regardless, I left confident in my work and ready to participate in another exciting computer vision lecture. As luck would have it, the powerpoint I stayed up working on wasn't presented today, because, to the credit of my professor and his grader, today was the first day all year that the homework was not graded and returned by the next class. By contrast, I should have the AI homework concerning the material from today's test returned to me in another four to six weeks. Rather than lament my failure, I opted to do the Programming Languages homework that was assigned to me two weeks prior, and used ten of the fifteen minutes between classes printing it.
For those who have never tried printing a document on a campus similar to mine, it's only slightly less fun than sawing your arm off with a plastic spoon. The only lab in the building, which houses my middle two classes, contains eight computers and one printer. The printer has ink 95% of the time, paper 90% of the time, and an active connection 75% of the time. During the day, people use the computers for such purposes as sitting around chatting with one another about group assignments, or eating salads. Fortunately, some people are willing to log off if you point out that they haven't made eye contact with the computer in the last five minutes. Others will sit there and eat a salad with the full knowledge that you need to print something briefly. When you do get a computer, though, there's almost a 65% chance you'll be able to print.
Today, however, was lucky; there was one available computer, and the printer was online and fully operational. I printed my newly finished homework and left for class, which in turn went fine except for the fact that one of my neighbors apparently rolled around in fecal matter before coming to class. Bovine, if I'm not mistaken. I eventually relocated to the back of the room where I sat by the wall, wishing that I had saved some pop-tart crumbs last class.
Needless to say I survived that class, and then Art, which passed without much incident. We've been working with Processing, a Java program dedicated to procedural graphics generation. For my mini-project submission, which had to use only lines and circles, I created a 2D sphere-flake implementation I titled Circflake
, a blur example in which proved Processing is incapable of additive blend modes with primitive shapes, which I titled Outward
, and a toy image I threw together in 4 minutes because the assignment required three images, which I titled Fiery
. The professor decided to show a few of her favorites, and from me, she picked the 4-minute job. I believe she did so because the code and graphic are very simple, and she liked the lerpColor function I used, which she had just presented in the lecture. I guess that's kind of neat, but my favorite of the lot was still that first one. For the next assignment, I was going to do this per-pixel lava effect
, but the requirement is that we use an image, which is boring. I'm probably going to adapt it to do distortion and just warp an image and submit it.
A relaxing dinner to help wind down
When art finally ended, I was aware of my hunger but basically to terms with it. I trodded home through the rain, and decided I would make soup. Over the weekend I bought some Campbell's soups I wanted to try. Their Nacho Cheese soup isn't really great, but I didn't expect it to be, so I only bought one can. I bought three of their Broccoli Cheese soup, though, expecting it to be approximately as good as the stuff you can get at your typical restaurant.
Upon opening the can and setting it down, I was beset by this unbelievably rank stench; it smelled as though a dog who had spent the last few hours rolling in the months-old remains of fifty animals had ripped a colossal fart in my kitchen, stirring up the death smell along with it. I quickly realized it was the soup, and reasoned that broccoli always smells this way when sealed in a container for any length of time. I figured that I would prepare it as directed and then smell it again before eating it.
Sure enough, the smell subsided with the milk and heat, and the soup ended up tasting fine. Now that some hours have passed, however, I am burping up something that smells and tastes as previously described. It's quite unnerving, off gassing something like that. For a second, I wondered if everything was flowing the right direction, and was reasonably confident that I would soon die. The option of having my stomach pumped crossed my mind. But I got over that, too, and carried on with my day, the majority of which consisted of starting some AI homework that's due in a week or so and some sparse conversation to make me feel less like I'm trappedinsomekindofhorriblenightmaresomeonecomegetmeoutofhere
As I wrote this, the power went out for a couple minutes. I'd say it was due to the rain, but I have no idea what causes a two-minute power interruption. I believe it happens just to clear my microwave clock and increment my alarm clock's internal time state by two minutes. We're now up to twelve minutes fast, because I'm too lazy to correct it. It's a wonder I was late to McDonald's, really.
If you managed to read all that, you're probably a hero. I just needed to vent, I think, because as I look myself over, it's a wonder I'm not insane. Or maybe I am. Probably.
Posted on October 29, 2013 at 22:18
So, as I assumed, the PhoneBloks idea was not was not novel. Motorola has been developing something like PhoneBloks for about a year now, and has recently partnered with the PhoneBloks guy, according to this article
DaSpirit linked me to, earlier, and also according to the project's own homepage
To be honest, I'm not sure why they partnered with him; if I had to guess, I'd say it was for the PR purposes. The original "proposal" looks as though it was written by an eleven-year-old. It looks like stuff I did back when I was that age, anyway. Only my designs revolved around Game Boys rather than smart phones. But I digress.
What I pointed out in my previous blog as the biggest design flaw in PhoneBloks was the mystical breadboard of infinite interconnectivity. You can just snap a Blok any old place, and it will somehow work. This isn't that far out of the question, and people who say "maybe someday we will have the technology" are just people who are too lazy to look at what we already have and analyze the idea. His original proposal was a glorified USB switch. USB uses four pins; two are for power (one VDD and one ground), and then the other two do I/O, one being reserved for the clock. Our present standing of technology is not the problem. The problem is, how many components of your computer are USB? The smaller the number, the happier you probably are with your computer. With the original PhoneBloks "proposal," everything is essentially USB, including the CPU and RAM!
USB 3 is pretty fast. I wouldn't use it to connect a graphics card.
A few days ago I was talking to sirxemic about how I would go about fixing that obvious problem. My solution was simple: Use the USB-like interface to connect the accessories, but let blocks include their own bus types.
Laptop memory chips
are connected to a DMA controller by 200 pins, divided into two rows of 100 pins, in groups of 80 and 20. USB's four pins are not exactly equipped for that. A PCIe bus is 164 lines. Again, USB probably won't cut it.
That said, your options are to (1) ensure a bus size of at least 200, or (2) allow individual components to specify their own bus types. I proposed the latter. Basically, we lose the whole god-class idea of having «one big board that holds everything together, hurka durk,» individual blocks would themselves have blocks attached through their own interfaces. For a rough (and very naïve) idea, imagine that we have a logic block which contains the CPU. On its north edge are two 100-pin connectors for RAM blocks. Or for a separate GPU block. A couple hundred pins has proven to be sufficient for either. Thus, to change the RAM, you snap out your logic block, then pull the RAM block out of it, and pop in a new one.
The biggest issue would then be space. As I've indicated previously, the space constraints and additional wall thickness associated with the modularity of this design are going to kill the phone in terms of being cutting edge. If you said to me, "COMPUTAR BLOKS," I would have literally nothing to point out as a problem with the idea. Everything in a desktop computer is PCIe or USB. The issue is, some graphics cards are approaching a foot long. The laptop memory I linked to earlier is probably five of those original blocks long, and three wide. That said, you could probably fit 4GB into a 2x2 block area, as long as heating isn't an issue. Memory of that physical size is now 4GB, and if you broke that chip in half and stacked it, it would fit comfortably into an area of three blocks by two. Moreover, if you could stack that 3×2 area on top of
the CPU block, you'd be set.
This is an idealization of what the logic block would look like:
I call it an idealization because it offers roughly the same amount of exhaustive engineering research as the original PhoneBloks proposal. However, I bothered to research dimensionality. The device pictured is 6cm by 4cm by 8mm. It allows for two RAM blocks, 2cm by 2cm by 6mm apiece, which could feasibly be replaced by one big RAM block to avoid having to divide the chips. You might be able to fit 2GB in the whole structure, provided only that my previous suggestion of cutting up notebook memory with scissors and packing it into places works. I know the pins look small, but they are wider than mechanical pencil lead. The RAM blocks will be held into the logic block by four #0 screws, pictured as little gray disks on the front-right face.
Not pictured is the DMA controller, and the bus controller, which are erroneously assumed to fit in the 40×20×2mm volume under the RAM or in the same space as the CPU (totaling 40×40×8mm, less wall size). For reference, the former is just barely wide enough for a single silicon chip. I mean, no one said the blocks had to be 8mm or thinner, but people would probably complain if their phone was more than a centimeter thick, and with the screen and bus board in tow, we're probably at 14mm. But it looked pretty bulky in the original video and no one seemed to mind, so...
Anyway, I don't mean to be a downer, especially considering it's my own doodle. Based on our current phone dimensions, it should be possible to cram decent technology into a block of similar dimensions to the above diagram. Probably nothing cutting-edge, though, as mentioned like eight times over this blog and the last.
- The main board is your typical USB switcher, or at best, a PCIe ×1 bus.
- Anything sensitive that needs communicated to the CPU is to be plugged into the CPU block
. This means RAM or separate GPUs do not touch the main board; they are designed for any CPU block accepting that interface.
- Peripherals such as wifi or the touch part of the display are -already- USB devices. They should be fine regardless of bus size.
Problems not addressed:
- I haven't specified a main bus layout, or the bus controller scheme
- I haven't specified how the bus system allows for DMA
- I haven't specified whether the actual display picture can be sent over the bus
- I haven't specified how users will choose an appropriate power supply for their CPU
-- or how lesser blocks will ensure they are getting the needed voltage
Problems that cannot be addressed:
- A priori, no matter how good our technology gets, a phone will be better whose engineers had the freedom to place components anywhere, rather than in little cubes. Given the same amount of total phone space, you have less working engineering space in a PhoneBloks environment, which is compartmentalized by walls of nonzero thickness. I.e., you still have less space.
Anyway, that's enough of that. Another interesting point is that Vicarious, Inc., the company you've never heard of, has created a CAPTCHA solver
which they boast can solve any CAPTCHA. Check the video out. Honestly, this is long overdue, but I'm not sure if they did it "right"—that is, I'm not sure if they found the same type of algorithm that humans employ. It's running time is awful, but that isn't a good metric, because our brains are much more parallel, and there's no saying how much better their algorithm would do if run on a 500-core machine. So I'll have to reserve my comments until such a time as they open-source the algorithm, which probably won't happen.