Scrottie's Hangout
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
scrottie's LiveJournal:
[ << Previous 20 ]
| Monday, May 14th, 2012 | | 1:48 am |
| | Sunday, April 22nd, 2012 | | 6:18 am |
Status
I have more browser tabs than God. Every now and then, given a free weekend, I try to clear them out. Problem is, like the stuff on my floor, they're projects I'm working on. The obvious long term solution is to take on fewer projects but that doesn't help with the short term. Here's a sampling of some that are open at the moment. http://se.cs.ait.ac.th/cvwiki/opencv:main -- reading about the OpenCV computer vision library some time back, thinking about how to automate bike traffic tallying, this document and another on the same server were cited as a good tutorial. It was open for a month or two when it stopped loading when I restarted my browser (you know, after it crashed or I had to restart it because it was trying to use 45 petabytes of RAM or stopped responding while gobbling up all available CPU or those other things that Firefox frequently does). Didn't think much of it. A few days later, it still wasn't loading, then it hit me -- it's a Taiwanese site, and Taiwan was being flooded. Crud! archive.org didn't have a backup of it. I left the tab open for months before the server came back. I was intrigued whether the data still existed or the flood decimated a server and all of the live data. Boy was it down for a while though. http://www.romhacking.net/hacks/70/ -- a whole ton of custom code and modifications on top of Super Mario Brothers 3, to the point where it's almost a whole new entry into the series, albiet homebrew. I wanna play this. http://defcon.org/html/defcon-20/dc-20-index.html -- DEFCON is coming up and I'm thinking about submitting a talk. http://video-games.products.half.ebay.com/Sony-PlayStation-2_W0QQcZ2QQcatZ159036QQ_trksidZp3032QQpgZ40 -- hrm, what other PS2 games should I pick up? How about Monster Rancher EVO? That sounds good. Yeah. http://www.reddit.com/user/Animates_Everything -- this guy contributes to random discussions threads an animated gif inspired by the discussion thread. It's way more fun to watch the animation than read the discussion. https://rt.cpan.org/Public/Bug/Display.html?id=76498 -- I need to fix my perl modules so that the bug report link is to my email, not to rt.cpan.org, since rt.cpan.org is incapable of emailing me. http://i.imgur.com/eQHgS.jpg -- sometimes I sit on images like this for months wondering if I should post it on FB or URL it on the MUD. It's the classic problem. Most people have seen most of the stuff on the 'net (well, recent-ish stuff, at least). Is it worth spamming everyone on the off chance they haven't seen any particular item and happen to find it interesting/funny/whatever as I do? Oh, but I want to share so bad. I'm going to be a terrible old person. https://github.com/PerlGameDev/SDL_Manual -- As long as I'm doing this stupid SDL talk at YAPC, I should contribute back my work to the SDL book. And besides, I'm going to plunder the damn thing for examples anyway, so fair is fair. http://dev.mysql.com/tech-resources/articles/nosql-to-mysql-with-memcached.html -- memcached API for MySQL InnoDB tables. Sweet! Except MySQL still sucks. Still, the excessive amounts of bloat and crappy, inappropriate abstraction of how Web apps try to use SQL databases bugs the hell out of me. Essentially, they try to use them as non-volatile RAM. SQL and ORMs solve other problems and only happen to be applicable in a haphazard, clunky way. This isn't the ideal solution, but the topic interests me, and sometimes half steps are important. http://grapevine.is/Home/ -- sometimes they have the most remarkable news in Iceland. http://www.facebook.com/thetrunkspace?sk=events -- local music. How do I never manage to make it down there? Grr. http://i.imgur.com/aCMHn.jpg -- should just hang that on my wall http://itunes.apple.com/us/album/arrow-bonus-track-version/id493356276 -- this is a recurring problem. Some artist publishes their excellent music online, but it's in a format I don't do. In this case, iTunes store, which would involve giving a credit card number to Apple and installing iTunes on the Windows machine, but I don't use iTunes and I am *not* going to start, so I'd then have to do that stupid dance where you burn your music onto a CD so you can rip it again. The four hours to deal with that bullshit is worth more to me than the $10 they want for the album, and it still doesn't protect them against piracy. The other option, which would likely take less time, would be to play the album on soundcloud while audacity records the sound data as it goes to the sound card and then compress the whole album into one mp3. https://wfc2.wiredforchange.com/o/9042/p/dia/action/public/?action_KEY=8444 -- the shitty Internet laws floodgates have opened. Probably the best thing I could do with my life is give all of my money to the EFF and go live in a cardboard box. http://en.wikipedia.org/wiki/SG-1000 -- ooh, that's cute. And checkout the SC-3000H! I'm smitten with computer/gamesystem cross-overs. Here, Sega took their Mk-I and made a home computer out of it. You can also plug the BASIC cartridge and a keyboard into a Mk-I. Cool! Atari took 2600 guts, guts from various dedicated stand-up arcade games, added a bunch of stuff, and made a home computer out of it, when home computers were all of the rage. Coleco made the Adam. The Commodore Amiga was intended to be a game system. Commodore bought them and made it into their next computer, and it was spectacular. Sony ported Linux to the PS2 and PS3, and then later changed their mind for the PS3 and pushed out a firmware update to lock people out of running Linux on the thing. I don't know anything about the PS3's hardware other than it has "the Cell processor" PowerPC thing in it, but the PS2 has a neat custom 3D rig called the EmotionEngine that I'd love to play with. Their Linux includes a partial OpenGL implementation for their hardawre. These homebrew carts for the NES, Intellivision and 2600 fascinate the hell out of me too. Intellivision had a computer keyboard/BASIC language add-on too. The 10 bit wide bus on the 10 to 16 bit GI-1802 processor in the Intellivision looks like a hell of a lot of fun to program for. http://www.biketempe.org/ -- various blogs just left open in tabs so I can read new stuff when it's posted, assuming I ever read through all of my tabs, which I almost never do because there are too many of them So, I guess my browser tabs represent my hopes and dreams, much as the piles of hardware on the floor. I'm up to 17 Post-It notes on the desk. If I continue the current strategy for managing it, I'll wind up with a series of boxes of stuff that got moved off of it. | | 2:45 am |
Status
Well, not much more to say about Star Ocean (3, for the PS2). Two things I really want to say: I finished it, and the ending sucks. Spoiler alert. I don't get it. It's one of those chain yankers. You fail in your quest but thanks to a hefty dose of plotonium, everything is just fine and great, mostly. Except the explanation is poorly constructed drivel. It's one step above the "it was all a dream" cop out. Rule of thumb here: If the ending works equally well (or badly) on any story regardless of what happened in the story, it's a shitty ending. I want my money back. Worst of all, even if you accept the author's logic, all of my efforts of running these characters all over creation a hundred times over was pointless. Part of the appeal of a JRPG style game, or a story driven RPG in general, is that the game sells you a goal or a big goal or sub goals or whatever. It makes you identify with the characters and their struggles. So you help your friends or the NPCs or whatever, and of course, you save your own bacon, or try to. And, with lots of work, you succeed. One of the great things about a video game is you know that there is a solution. Yeah, they kill people off. This one started that fast and hard, which could get into another rant (one shot killed her? that's odd, when she was in my party, she'd wade through hundreds of them). Bad things happen of other sorts, but in general, whatever your prime mission is, you know you'll succeed, and that succeed brings a small endorphin rush to those who probably need it because they're doing this rather than something constructive in the real world. But then the game tells you, haha, sorry, you failed. This is the slap in the face I get after praising Interactive Fiction as a genre for what must have been an hour. FUCK YOU, GAME! I felt like I paid my dues in aggravation leveling these guys up to 80, often killing the same monster over and over again when I was lagging behind and I was finding that everything killed me with one blow, and in crawling through mazes over and over again, and all of that crap. Really, there's kind of a filler problem here. If you make the levels huge, you wind up with absurdities like buildings with a thousand empty rooms in a completely illogical configuration that lacks central corridors, and this game of course had lots of those. If you make people have to run from one side of the map to the other too many times so you get the key from behind the locked door so you can unlocked another door on the other side of the map repeated 500 times, that becomes tedious and absurd, and this game had lots of those. If you chain all of the maps together so that, oops, now you need to go back and do your next quest on the opposite side of the world, but hey, you need to come back here and then run back there again because it turns out you need something from here, that starts to feel abusive. Does the evil bad guy really need a 500 room lair with about 30 rooms dedicated to each switch? Wouldn't it be easier to just have one door that he locks behind him? They do all of these things to make fighting monsters a break. And then the cutscenes... hours and hours of cutscene... to break up the running around and killing things. It's also really hard for designers of 3D first person games like this to find puzzles that aren't some variation on Simon Says, Concentration, or so on. Towards the end of the game, things got thinner. You didn't notice so much earlier on that you were leveling up because you just fought the monsters in your way and everything was fine. Towards the end, you really had to make it a point to not just run through the castle killing things once but instead do 30 laps of killing everything so that you'd get enough levels on to go to the next thing. I enjoyed the progression and most of the story telling. The settings were often fantastic. But the puzzles, mazes Reading about the first one for the PlayStation (1), it sounds fascinating. It would also be interesting to see how they pull that off after playing through this 2 DVD monster. It'll be a while before I can stomach any more of this, though. | | Friday, April 13th, 2012 | | 10:40 am |
Star Ocean
For reasons not yet disclosed, a resort planet is invaded. People are moved underground where they're really extra super safe and then onto a transportation ship trying to go through the middle of the offensive and associated defensive where it is super extra not safe. About 20 people are evacuated. This seems like terrible odds of survival to me. So, there's this big transport ship, but it gets blown up, so then there's an escape pod, and it gets looted for parts, then there's another rescue ship, and it overheats and crash lands on a different planet than the escape pod landed on, then you're briefly in a wagon, and then for 99% of the game so far, you're walking all over creation on foot. Thankfully, no one ever gets a blister despite not changing their socks in months. I have to write this down to keep it straight: this is the second "13th century technology-ish Earth like planet" my dude crash landed on. What are the odds? They talk about the technology level there but no one says, oh and by the way, they have magic and dragons. I guess that's just kind of assumed. No self respecting 13th century Earth like planet would be without dragons. Even more confusingly, various enemies cross-inhabit both planets, even though both planets are supposed without extraterrestrial contact. This includes guys in powder wigs who are some kind of gag enemy. They don't fight back, but you can't leave until they're dead. Since you're going through the game doing good deeds and fighting bullies and thugs as is typical of the RPG quest system, it's embarrassing that the protagonist has this habit of murdering nobelmen. There are about infinitely more nobelmen than village folk. The graphics are pretty, but game technology is... well, so far, all of the puzzles are implemented in terms of waiting for you to talk to the right person or walk through the right door to advance the plot. Ultima IV had a more powerful quest engine. Magic spells heal and do damage, and that's it. Ultima IV had "blink" and all sorts of other cool things. Changing the wind in U IV was handy in certain situations. So, no cleverness to the spells or magic. It just supports the hack and slash combat engine. Like U IV, there are an infinite number of bad guys that random appear every time you turn around a corner, even if it's a corner you were just around. You can kill 1,000 of the king's elite forces and not one villager will mention offhanded, "hey, did you hear that entire battalions of the king's elite forces got slaughted yesterday?". So, you have villages with about 20 people in them supporting a nobility of thousands and armies of millions. So far, the game is about 60% cut scene, 30% killing stuff, and 30% being forced to run around in area you already ran all over in ten times. No, that doesn't seem right. I know that these numbers have to add up, but really, this feels like 90% cut scene, 80% killing stuff, and 170% being forced to run around in areas you already ran all over in ten times. The dialogue is very Japanese even though it's all translated: everyone is excessively concerned with everyone else's health an rest, and with manners in general. Oh, that reminds me. The main character is narcoleptic. So, he's at this fancy resort and walks around a bit but gets tired. It's hard to get tired during the middle of the day at a rest, but what ever. Then he gets evac'd and has to hang out in temporary shelter. Guess what? He needs to sleep. Middle of the day, straight to bed. Then he gets put on a transport ship and he's awake for a little while, but then he has to hop an escape pod. The escape pod says it'll be 120 hours until the nearest safe planet, so guess what he does? He tells the computer to wake him up when he gets there. Holy crap, I've never had to set an alarm for 120 hours in the future. But when he gets there, after a five minute walk, he just completely passed out and falls asleep on the pavement. 120 hours of sleep apparently wasn't enough. I guess I shouldn't judge alien races. Most of the game now, the protagonist has had his kidnapper, sent to fetch/rescue him, in his adventure party. He's bigger, stronger, and cooler, and I keep wishing that the thing would go full yaoi, but I know it won't because it's rated teen. Aside from everything being totally JRPG, the plot, dialogue, voice acting, etc is all alright. Remind me to never play another JRPG again after this though. More updates later, maybe. | | Wednesday, April 11th, 2012 | | 6:02 pm |
Status
All of my friends except a few have deleted their LiveJournals. For most people, LJ is the place you go to bitch about stuff in your life, and I have this theory that people delete their LJs so they can distance yourself from the stuff that you were really hung up on before so you can really focus on the stuff that you're hung up on now. Around Christmas time, someone made a compilation of teenage girls, who, according to their Twitter posts, hated their parents because they didn't get the particular model of high-end luxury car that they wanted. There were a lot of them. Aside from the very real problem of completely fucking brats being on the road in anything at all, this is hard to take seriously. So, anyway, I try not to bitch about things on my LJ, but bitching is such a fascinating topic. I also hold the theory that human happiness is strongly tied into game theory. Strategically being unhappy when you should be happy can get you more stuff. If this strategy (subconsciously) works, you're more likely to employ it again in the future. So you get teenage girls with Lexuses who wanted Mercades and are very unhappy about the fact, and you get people who are really unpleasant to be around. At some point, fairly recently, the Perl community decided that it wanted more. It found itself getting less than the other girls on the block. Kicked off by conference presentations and a flurry of blog posts by prominent members of the community, a message was delivered stating that Perl is good and deserves more respect and for people to know all of the good stuff about it so that they'll be nice to it and its users. A campaign was kicked off to correct things people said on the Internet about Perl that were wrong, and chunks of the Perl community spent their time on Twitter, StackOverflow, and various other places doing brand damage control. So far so good, but what happened next was interesting (though, admittedly, possibly non-related or even non-existant and imagined by me): Members of the community started attacking each other. One person would insist that various things were easy in Perl without really reading what the person was trying to do or looking at their problem. Various people would attack other people for not being nicer to novices asking questions, even when the novice acted like a robot, control-v'ing the same question into the channel over and over without actually reading any of the replies. People were still complete shitheads to women who for some reason decided to be involved in the community rather than use the tool behind closed doors as any reasonable person would, but now this is an all hands on deck event that somehow can be solved if enough people are involved. Module authors who do dickhead things, which is most of them, have their loyalties and suitabilities as module authors questioned. It used to be a time honored tradition to just fork code. My Sys::Mmap was forked from Mmap because the author wouldn't respond when I sent him patches fixing things and then I turned around and did the same thing -- neglected the module forcing other people to fork it (I really should take that down or fix it). All too often when I hop on #perl, people are complaining about someone else. The person they're complaining about invariably is a bit of a dickhead (of course!) but a dickhead that put a lot of time and energy to doing something for everyone else, making some really great stuff in the process (that, of course, isn't perfect). Now, it isn't enough for people to simply not like this other person, but they have to spend time recruiting other people to the cause, as if this accomplishes something. In short, everyone is completely hung up on what everyone else is or isn't doing. No one could agree on anything, as usual, but there is now a lot of pressure to operate under a unified front. When the "everyone use Moose!" craze started, my slightly punk rock childhood kicked in and I immediately read between the lines to the "or else" bit, and then kicked over to the "fuck that, I don't like having shit rammed down my throat" bit (except, you know, for when I do). I am not above all of this. Bitching about stuff is a fantastic guard against hearing bitching. He who bitches first, usually, generally, does not have to listen to the bitching of others, unless they decide to escalate the bitchfest. Bitching loudly about stupid stuff often works fantastically for shutting everyone else up (WHY ARE THERE NO CHOCOLATES ON MY SLEEPING BAG!?! WHAT KIND OF CAMPSITE IS THIS!?). Punk rock is about bitching. I should disclaim that I'm not secretly thinking of one or two people in #perl or at the conferences but really am taken by and referring to what I see as a general pattern. When it comes to having fun, though, which Perl was at one time supposed to be, getting your way is often at odds. Perl is more fun when, most of the time, other people make language design and implementation decisions, psychotic as they sometimes are. It's more fun when the modules aren't what you would have designed and not how you would have designed them. I tried to do Acme::GotoLine a completely different way before Acme::GotoLine was done, and I think my way is way more elegant, if I could ever get it to work. And it's also more psycho and pure perl. I need to come back to that. So curse and bless the author of Acme::GotoLine. Sure, parts of the language are pinch points for me and everyone else. Creating hackish work-arounds for OO, syntax and various other things is a time honored tradition. Everyone having to have an opinion about everything, as if that adds to the discourse, is relatively new. All of that said, do I have something that I want, that other people should give me? Is there a way I should have? I don't know. I think things are too out of control and the dust just needs to settle, but keeping bitches constructive and factual may be a good place to start. Was it Alan Kay who said "be liberal in what you accept and conservative in what you emit" in reference to I/O and writing software? Perl has to accept it's irrelevance before it can again become relevant. Write irrelevant Perl. Have fun doing it. Spend a certain small amount of time talking to other people who do the same thing about the things they've done. Have fun doing it. So, anyway, I'm on Facebook bitching about the bitching. | | Thursday, March 29th, 2012 | | 11:36 pm |
 Comical amounts plastic in landpeople's compost.  Rotary phone hooked up to a Zoom Skype adapter. If I have to have phone meetings, I'm going to do it in style.  Feeling pretty ragged trying to do IBD project for work when I started it when it was already late. Joy.  Where the computer table was. I don't know why this amuses me so much. That table didn't ever move the whole time I had this apartment.  Shampooing the carpets. Dressers temporarily in the bathroom.  Same table.  Before shot of desk. Yup.  Post motorcycle ski trip. I ate, showered, and sacked out.  One project has been to fix up the old Via C7 board and put it in a case and install Windows XP on it and donate it to the Goodwill to move it along. I found a company selling new cases for $30 with power supply on eBay. It arrived in a small box inside of a massive box with huge amounts of air bubble stuff in it, but apparently the small box was abused before it was thrown into the huge box. Can't I ever just bloody finish a project... hell. | | Sunday, March 18th, 2012 | | 7:16 pm |
Stuff
I went to bed probably at 7pm last night, for a nap, and woke up around 1am, after crashing out after a short night's sleep the night before and then ineffectually running around failing to accomplish the days errands. Not long after I woke up, it started storming. Sitting at the computer, the lightbulb in the desk lamp got blown out in a brilliant flash. It wasn't an electrical storm as far as I could tell. Still, that's upsetting. I've lost plenty of hardware to this, and more of the hardware should be protected circuits. The old APC600s fully isolate power. They're worth their weight in gold. (Okay, maybe they're a little heavy for that metaphor to hold true.) I had one of the recurring dreams again. The house is different each time, but it's always large, with lots of rooms. This time, it was in the middle of a forest and, ancient ruins style, the rooms around the edges didn't have outer walls. The kitchen was effectively half outside, as was one of the dinning areas and some of the rooms, but the house seemed to function well and the weather was generally nice. A friend-of-a-friend sort of person owned it and wasn't there much. She was thinking of selling the place, or vaguely getting ready to, but I was allowed to stay there until she had, and I was vaguely useful in keeping an eye on the place and didn't disturb much. She was back once and was cooking large amounts of spaghetti, which I noticed as I was walking by outside the kitchen and had to comment on. We had a discussion about England, fiscal policy, and exports, and then I took a walk into the woods, feeling sad. One of these days I should sit down and try to count the places I've lived. There was the house in Sioux City that I remember with the large yard and garden, then the one that I really don't that had the porch swing, where my family lived when I was born. Then in Belle Foursche, the townhouse like place with the big basement that was a play area, then the apartment with the storage lockers we'd sneak away to to smoke cigarettes for no good reason, then the duplex. Then there was the apartment near the state prison in St. Cloud, then the turn of the century four unit on Summit in Minneapolis, and the house on Edmund Ave. I'm probably forgetting a few in there. That was just growing up. There were a couple of failed dorm rooms, disaster on the east coast, three places in Mesa, one of which ripped me off, three in Scottsdale, including the place I stupidly had while I lived in Sedona, staying with a couple of people related to the company in Sedona... | | 10:20 am |
Stuff
Too much greed backfires (as a matter of definition; if it didn't backfire, it wouldn't necessarily and obviously be "too much"). One utterly unreasonable project I worked on was for the owners of the largest live comedy club chain. They had a launch date set supposedly related to an advertising campaign. Never mind that it's dumb to buy advertising for something you don't have yet. They had a grandiose list of features they wanted -- management of video libraries, instances of the sites for the branches in various cities, a central site that pulled from the branches, blogs, news, ticketing (via scraping a ticketing site that was free but took a hefty cut -- which is doubly bizarre given the situation), and a bunch of other things I forget. I worked frantically on my month deadline. At the last minute, they pulled in a graphic designer who came up with mockups that, a week before launch, effectively doubled the number of features required. They loved the design -- of course, it came with tons of features they loved. We told them that there was no way this extra work could be done in a week but of course we would try, though they really needed to tweak the design if they wanted to launch. Tough titties. If we didn't get the extra stuff done, then they weren't going to pay us. And they didn't. Last I saw, a few years ago, their site was still a clunking monstrosity apparently crawled out of the 90's that pays a hefty fee to a 3rd party ticketing site it links you to. So, we didn't get paid for doing what we said we were going to do and actually did. But then something else happened, or rather, was said: They threatened to sue us for the loss of the money that they wouldn't make if we didn't do this. We had no contract or agreement in place to do this extra work; yet somehow, if we didn't do it for them, without even a promise of payment, they were going to sue. But this is upsetting to hear. It's insult on top of injury. It's a white collar "hey, bitch, do my laundry". The message is the same but the language is different. Of course they didn't sue, and they would never win if they did. In another case, a non-paying client who was in the process of getting cut off used the same threat -- do this additional work and never mind the money or else I'll sue you for the money I won't be able to make without the work. I'm strongly of the opinion that developers that are capable of doing a lot in a little time, reliably, are worth their weight in gold. If you rip off and alienate good developers, you're hurting yourself as much as them. That's up there with pissing off the only honest mechanic in town so that only the shady outfits will deal with you. Good developers are hard to find. Vast amounts of money are thrown after bad ones. It's easy to think that if you hardline, you'll get more. But I didn't just want to talk about software development. Reading about the New York cops again smashing in the faces of protesters and the people who defend this reminds me of this. So does the Madison capital union busting, and conversations where people have defended the practice. It's easy to think that if you give people less, you'll get more. Aside from being kind of evil, this is naive and actually incorrect. There's a huge push to make the poor in this country poorer. Denying health care (medical bills are the most frequent cause of bankruptcy in this country), marginalizing access to birth control, attempting to destroy organizations that offer family planning, destroying consumer productions all seem to be part of a strategy to create a hungry work force that will work cheap and not complain about conditions. It seems like the United States wants to be China. Of the things that lobbyists lobby relentlessly for, lowering the cost of domestic labor is on the short list. The problem with this is that this strategy simply does not work for technology or creative pursuits, which are our bread and butter: Hollywood, Silicon Valley, and so forth. Texas is the largest charity case in the country, soaking up more welfare dollars compared to exports, yet they and politicians from places like Ohio are setting policy for the nation. Programming is a middle class activity. The lower class lack the free time, having to deal with all of the shit they have to deal with. Linus Torvalds, the creator of Linux, wrote in _Just for Fun_ about how leisure time and the time to tackle interesting little challenges is where revolutionary change comes from. Apple itself started as a garage operation by a few kids who thought, correctly, that they could put together a home computer for less money than the big companies could. People think of aluminum unibodies and slick UIs now, but originally, Apple was the American ultra low end computer. Regardless, both of those spare time hobbies turned into major American industries. Destroying the middle class and destroying leisure time effectively destroys future prospects like these, and nothing lasts forever -- not IBM, not Microsoft, not Apple. Companies have a way of making themselves irrelevant. We need stuff in the pipeline -- stuff that we can't and don't know about. Startups are an extreme example of this, but the same principle applies to the daily life of a tech worker: they need to be able to think, organize their own thoughts, improve their skills, play, dabble, research, inquire, do science and so on, or else they will never the really good programmer that ideologues wish they could have FOXCONN factories full of. They need leisure time, and lots of it. If they don't get, they won't be relevant in a few years, and if they didn't have it, they wouldn't be relevant now. Yes, it's disgusting seeing people who do nothing with their lives but cram their faces with cheap snacks and watch TV. Only some people are ever going to do something with their life. But part of the cheap snacks and TV thing is security -- it takes a level of feeling of security to feel like you can engage in cerebral tasks. If you're not secure of your future three seasons off, it makes sense to load calories and conserve energy. I suspect that most Americans are in a sort of emotional hibernation. I wonder if our attempts to create cheap labor didn't backfire and simply create a population of people who are too effective at living day to day, paycheck to paycheck. Humans are kind of amazing. | | Sunday, March 4th, 2012 | | 10:21 pm |
Status and Tekroids!
We got shafted. Being stuck with vt100 emulation in terminals as the default was a complete and utter rip off. The Tektronix terminal is infinitely cooler: * Real time mouse position updates -- the server sends a sequence to the term to poll this, if it desires * Vector graphics -- and not just a few vectors either as on a Vectrex; part of the technology was that, plasma like, the phosphor on the Tektronix 4010 series would continue to glow until explicitly blanked, so you could have an unlimited number on the screen at once * Mouse clicks -- you can request "crosshair mode", where the cursor changes to a crosshair and the server waits for the user to click somewhere; or, if you don't want to wait any more, you can clear this mode and go back to text/graphics mode * Position text anywhere and of a bunch of sizes -- mix text and vectors; put text over top of text or half way over top; etc But Tektronix emulation is available in xterm (but not rxvt and several other things often installed as xterm), including the xterm that ships with OSX. Rejoice! This magic is available to you now! You too can write command line apps that throw in vectors and get real time mouse position updates. I've done a few things with this; I have a toy graphical MUD (Multi User Dungeon) client that uses it. My JAPH uses it. I put a toy drawing program online that used it. I've constantly been itching to see how far I could take the idea. Asteroids seemed like a good challenge -- so for weeks I've been itching to take my hand at that. It would be adequately quick to do that I could do it over a weekend, a good use for vector graphics, and have some fun geometry to play with. Since it's running on a centralized server that talks to all of the players at once, why not make it multi-player? And that's what I did: https://gist.github.com/1389495 ... that's running at telnet slowass.net 2003, but you probably want to do a quick read of the top of the gist (which has source and docs) because it tells you important details like to respawn, you have to disconnect and reconnect (which you can do right in the Tek window), and how to use your mouse to move and control acceleration. Unlike the 8 bit versions of the game, the asteroids aren't an endless random generated stream. They're created when the game is started and they keep wrapping around the edge of the universe until you destroy them all. If you move around a bit (or get lucky), you might start to notice bullet trails coming onto the screen from off the screen -- you're near another player! Go find them and work together (don't worry, your bullets won't hurt each other). (Get your cow-orkers and go play!) Running locally with few asteroids in the universe, it'll easily do 60fps. Over telnet remotely, for me, it hoovers around 7-8 fps. Flicker is fixed -- I wasn't optimistic about trying to make it go away, but it turns out that it was dead easy -- just send all of the screen redraw data attached to the screen clear and it just clears everything and redraws it all instantly. I set it to try to do 15. I was surprised that the server starts to bog down when there are more than a few hundred asteroids in existence, which quickly happens when the game starts with 40 and those get blasted into smaller pieces. There are no "large asteroids", "small asteroids", and "medium asteroids" exactly, just numbers. It starts with asteroids drawn as a crude circle. It creates the geometry of the thing as an array and remembers it, then redraws it whenever it needs to, rotated however it is currently rotated as it spins around through space. To make an asteroid instead of a circle, I do a few things. Rather than composing it out of a large number of line pieces (such as 360) spaced an even number of degrees apart (such as 1), it's drawn from few line pieces, each a random number of degrees apart. It advances int(rand 20)+int(rand 20)+int(rand 20) degrees each segment until it has 360 degrees worth of line segments. The radius is fixed in a real circle, but in our case, that is also random. However, it flops between two random functions. One generates smaller radii, the other larger, making it look less like a blob and more like a jagged circle-ish thing, with the line jagging in and out. The function for that is $radius = $flip_flop ? $size/2+int(rand $size) : $size+int(rand $size); with $flip_flop = ! $flip_flop. This is in the 'sub new' in 'package asteroid'. 'sub draw' in the 'package adrift' (all packages are contained in the .pl) takes the recorded radii and arc lengths and draws the asteroid using the standard old circle formula: my $pointX = $x + cos(Math::Trig::deg2rad($arc)) * $radius; my $pointY = $y + sin(Math::Trig::deg2rad($arc)) * $radius; ... for each of the sets of radii and adding in each arc length each loop iteration. Anyway, the asteroids aren't all any fixed sizes. The range used in radius computing functions is a parameter. But how things are tuned now, large asteroids tend to break into medium asteroids which break into small ones which then finally get destroyed when shot. I had it set so that they always busted into three pieces until they vanished but now it's set so that medium-ish-sized ones bust into two pieces. The visual affect of having that many particles going was spectacular, but the CPU just couldn't handle it. Under that system, an initial 40 asteroids would start creeping towards a thousand smaller asteroids. There are some experiments in the code, disabled, again due to CPU constraints. Maybe this needs to be re-written in C, or making heavy use of inline C. One of them was having asteroids merge together into larger asteroids in some situations (heading on about the same vector at about the same speed). Another was having asteroids smash into each other and break up as when they're shot. Those were simply spectacular, except for being way too CPU intensive to be playable. With asteroids merging, it was no time flat until there were a few planetoids drifting around (get the heck out of the way!). With them breaking each other up, space was very soon full of apparently infinite amounts of debris. I'd also like to play with them bouncing off of each other as well as gravitational attraction. Simulations make the best games. I thought for sure that collision detection would be eating up 99% of the CPU, but it wound up not taking any more than actually advancing the position of everything on the trajectory its on (animate phase). I winged it and came up with something that runs in O(n log n). When I went to Google for better algorithms, I found what I had done but with a clever twist. Mine keeps everything sorted by X using quicksort. quicksort is O(n) when everything is sorted already and very near it when only a couple of things are out of place, such as when a few new bullets or asteroid chunks got added since the last frame. Then I move across the data in a sliding window, only doing fine level position comparisons on objects that are all in plausible striking distance of each other. When I go to advance the right hand side of the sliding window, I check the object in the left side of the window versus the right and if they are then too far apart, I advance the window past the left one. I use bounding boxes to rule out collisions on X and Y. If it makes it past that point, I consider objects to be round do Pythagorean's on them. The refinement that someone else did that I didn't think of this: Do exactly that (minus the final step of Pythagorean's), but ignore Y completely, and build a list of everything that collided on the X axis. Then do it again for Y, ignoring X. This involves keeping two sorted lists (or 3, for a 3D universe). Then find the intersections of those two lists and do final hit verification (Pythagorean's, in our case, or intersecting planes in a 3D universe). I haven't added this refinement yet. Years ago, quite by accident, I found the xterm menus. You hold down Control (as it is configured on this system, at least; quite likely it is configured differently elsewhere) and push one of the three mouse buttons (both mouse buttons being the magical middle mouse button most of us on laptops don't have). I looked through them just to amuse myself and see what was available... double width, alternate fonts, jump scroll (that proved to be very handy on the DEC 3100s, where tailing a log often kept the machine busy for several minutes otherwise)... Tektronix!? That's interesting. Years later, I would actually see a Tektronix terminal in person, not on. I remembered it from the xterm menus. That made me start wondering more about it. Hearing some other reference to it on the Internet, I decided to read more, and I'm glad I did. I didn't wind up tagging along to LA this weekend. A last minute change decided that the trip would be easier with trains moving from ride finish to start rather than a car navigating LA there and back, and everyone who needed a ride to and fro could be accommodated. So instead, I decided to try to crank out a fun piece of code real quick. If I can't write something fun now and then, my brain entirely rebels and thoughts of dropping out of tech work entirely to work at a 7-11 so I have the spare energy and time to write code start to completely take over. Tech work, pushed too hard, becomes an insurmountable, oppressive barrier. I still consider this a quick hack, but it's hard to stop toying with it. I'd love to make a library for doing vector games in general, that uses either X11::Protocol, Tektronix over TCP (as in this case), or whatever other things people think of. Asteroids was a good 24 hour codefest, but people want more relateable environs these days. I should make a Tektronix Katamari or Team Fortress or something -- multiplayer, of course. And of course, re-rolling parts of this in C for spectacular vector rendering of simulations. Sending a river of shots into a large asteroid and having it explode into rings of dozens of tiny asteroids is still pretty satisfying, though. | | Sunday, February 26th, 2012 | | 3:56 am |
Status http://homepage1.nifty.com/Que/plamo/apc-ups/manual/upsbible.html ... I drug out the TS-7200 board and moved its root image over to a larger CF card. It was given to me with a 256 meg card which I quickly filled up with Debian packages. Trying to add some more packages now, I discovered that the Debian 'arm' packages are gone and the replacement port, armel, isn't binary compatible (coredumps on anything when I plug in a drive with an armel system on it). This thing is ten years old now. Maybe it's upgradable. Googling for the command set for the APC600, I discovered that the serial port on the thing is not an ordinary serial port. It has tx, rx and ground, but then other pins are wired to other things, and if you try to plug in a regular serial cable, it'll take the UPS down. So, I ordered the right cable (this never ends). Hopefully I can build sshd from source to I can keep at least that current on the TS-7200. Then the plan is to have the dd-wrt powered gateway machine redirect a port to it, so I can ssh in and run minicom (already on it, thankfully) and type some magic letters should I need to power cycle the initnode remotely. OpenSSI Linux still doesn't come up on the Via. Being able to make that the new init node would have been handy. It's low power and has two IDE ports on it, perfect for RAID. OpenSSI is tracking far enough back that it doesn't support many SATA controlers, so I have some hardware SATA-IDE adapters I've been using to attach SATA drives to IDE ports. This is probably a really dumb idea, but I'm thinking of moving initnode to a spare laptop, the CF-72. I have a miserable shortage of large IDE drives. I'm trying to avoid ordering a newer ViaNano (their 64bit, faster-than-Atom) to do this task. Maybe later. Using the laptop will let me make both of the quad core towers into compute nodes, since I've decided the initnode can't be a compute node. Before I figured out that SATA was a problem, I got a pile of SATA drives to use in the towers. The one IDE port on the mainboards and the SATA-IDE adapters work for adding one drive, but there's no master/slave select, so only one it is, so only two of the four are in operations. That's okay. I can add one drive to each node. The initnode HD is actually IDE. The 1tb drive in the second node is a 1tb SATA. There are about 500 things I need to do on this project and this is just one of them. | | Thursday, February 23rd, 2012 | | 6:54 pm |
Status
Got up at 8am and did some gardening. A while ago, I blew out the mainboard of the OQO while trying to change the 1.8" (tiny!) HD for a Compact Flash card. The 1.8" IDE connector used physically fits CF, and CF and IDE are electrically but not physically compatible (ie, CF works as an IDE device with a physical adapter), so I thought I could plug the thing in. Smoke came out. The main board still basically worked, but the HD controller was shot. Physically, one large-ish transistor had exploded. I tried to order another one but got something not physically compatible. mouser got the photo wrong even though the part number matched, or else they sent the wrong part. So I got a used OQO 01 (rather than 01+) mobo, as it was all that was available after watching for a while. I've sunk an embarrassing amount of money into this project at this point. The 01 board works in the 01+ basically except for the control, shift and alt keys on the keyboard. That's frustrating. Aside from that, it has 256 megs of RAM rather than 512. I was hoping to get this in good enough shape that I could at least re-sell it as a working unit. I did find an adapter for the 1.8" IDE and CF that switches the pins around in the correct way. So close... I'm trying to figure out how to cycle hardware through so that the desktop Win2003 machine is fast enough to play youtube videos without serious problems and get a dedicated small init-node for the cluster so the two quad core machines can be work nodes, since I've figured out that it's a bad idea to have the init-node be a work node. I also need to get the APC unit hooked up the serial port of something else on the network so I can powercycle machines remotely. It would be pretty cool if the IP-KVM had a serial port for this purpose, but as it is, I'll probably stick the TS-7300 ARM SBC on the 'net and make it its job. The amount of hardware here to support the cluster is pretty absurd. Part of the problem with cycling machines around is that I'm low on 2.5" IDE HDs. I have two 20 gig ones and a 40 gig essentially spare, and the price of the things has shoot up since SATA became standard, so they cost more to buy now than they used to, and gig for gig, cost way more than SATA, but the Win2003 machine should probably be replaced with a laptop. I'm debating making the initnode a laptop as that makes doing RAID less likely, unless I make mirror across a CF card stuck into the PCMCIA slot and have the root drive be 32 gigs, which isn't an entirely bad idea. -scott | | Friday, February 17th, 2012 | | 9:43 pm |
Status -- one year of run-on paragraphs!
Got in at 3am. Took the day off. Slept in until 11:30. It's amazing how easily I can ruin my schedule. Amtrak out was great -- no work emergencies, so I cranked on code. On the way back, mysql was being a little bitch, failing to load its own dumps (typical), and we had to do an emergency extra pull from production before staging the latest project before a guy left and left the project. Loading a production backup onto staging worked fairly recently so I wasn't planning on delays, but mysql is famous for this and loads of other shit. That was stressful. This involves staying awake as long as there is coverage then waking up often to check for coverage after I go out. That was after working frantically all of the way down to Houston on the shuttle. The city bus didn't come, except when it came late and let people off and didn't let anyone on then continued to not come after the next one was supposed to be there, so I had to take a cab to Amtrak from the airport, which costs $50 on account of the insane number of miles the airport is from downtown. While I was riding back on Amtrak, I ook a stab at the T-Mobile-coverage-maps-as-GPS-maps idea, using Perl/SDL, while I was out of coverage. The SDL API completely changed. Stuff in SDL got moved around randomly and pointlessly, and methods that accepted optional flags no longer do (what the hell!?). It seems to basically work, but I have no idea which projection the T-Mobile (actually Voicestream -- it's a rather old map, but experience continuously re-affairs that it's still accurate) map is, but lat/lon isn't linear. If I find the x/y coordinates of a lot of known points (cities) and then fit a curve to it, that should be good enough. This still leaves whether a lot of Interstate coverage includes data service -- a lot of it doesn't. Sometimes you'll find 4G in the damnedest places. Rolling along the tracks miles from any highway or city, we went by a rather large gas refinery that had its own 4G bubble in the middle of an area where there was no coverage. I told The Fifth Element that I'd help with a novice street riding class today. Previously said I'd help with the bike count stuff so I need to do stuff there. So far, I've spent hours reading documents and even more hours battling with Google Docs. Have to do a bunch more insurance goop. Got my HSA account for work set up which means that I have one more credit card-like thing that isn't actually a credit card in my growing collection to go along with the debit card, AMEX, a and a PayPal debit card I got so that I could more easily pay for overseas things (such as domain names) without risking my actual bank account. Leaving Texas was hard. It's part of my psychosis that I tend to keep doing whatever I'm doing. Like my father, I could probably settle into a nice routine in rural Iowa. rebeccmeister has pockets or gorgeous black top soil in her yard. I think the trees and grass created a wonderful mulch over the years, but heavy rains tend to wash it out, leaving it only in low levels of the yard where it collects. I dug a small hole in the side yard. Now I'm wondering if a larger hole would fill up with topsoil. It was raining almost every day there. On the train ride back, it looked like everywhere had rain up until we were about to hit Tucson, then it dried up. It's sunny and placid here. I did come home to the (new) apple tree blossoming. Nothing seems to have died except for the two basil plants which I started from those "live basil bush" things I keep buying at the generic corporate chain fake farmer market store. I need to start seeds or buy some real basil plants that are actually happy. I guess I should take some garden photos. It's kind of nice to come back to my Fortress of Solitude (From Everyone Except The Often Unhappy Landlady) where I know I can hide for days at a time working on some dumb thing but part of me is just cranky, too. All I can do is make my best effort to make time worthwhile. | | Wednesday, February 15th, 2012 | | 4:28 pm |
Routing
It's a bit of a chore to take a bike between Amtrak in Houston and College Station. My current routine is to carry all of my crap a few blocks through downtown from Amtrak to catch the city bus to the airport, then hop the intercity shuttle from there. The city bus is sometimes a tour style bus that doesn't always have standing area in the front, which makes it rough to haul large objects such as a bicycle. Essentially no one takes the city bus to the airport. It's all employees -- security guards, concessions workers, baggage handlers, ground crew, etc, etc -- so they actually do the opposite of most cities and make fewer provisions for luggage on the bus. So I'm toying with leaving a bicycle in TX. But then I don't have a bicycle to get between Maricopa and Phoenix. I may have to acquire another bicycle just to have a bicycle to locking up outside of the Maricopa Amtrak station, which has no bicycle rack or hint of place where something might remain unmolested for weeks. Other options include exploring touring routes between B/CS and downtown Houston. This time, I traveled heavy to TX, lugging camping gear and brevet gear with me (but not enough cold weather rain riding gear, grr). I can ship stuff to myself in AZ to lighten my load and ride out of Maricopa, or I can solicit motor services from friends. | | Monday, February 13th, 2012 | | 6:51 pm |
Old Processors
Working out of the TAMU library, I can't help but wander by the CS section and pick out fun looking bits of history from the shelves. Ideas of what microprocessor registers should and shouldn't be took a while to form. During the 70's, this was very much in flux. Actually useful banks of general purpose registers was considered a microcomputer luxury. Limiting the instruction to one byte limited the number of possible instructions, and different CPUs used the available 256 possible opcodes to try to generalize different tasks. The RCA 1802 "COSMAC" (originally a two chip set, the 1801A and B), has a general purpose accumulator (typical of the era) and a bank of 8 16 bit pointers. The byte in the accumulator could be moved to and from the various registers high and low bytes. Two of the pointers were a stack; another the instruction pointer; others were just pointers. Any indirect addressing went through these. The stack pre-incremented/post-decremented automatically on indirect access. This processor has no memory load/store instructions; immediate data had to be loaded into the accumulator then moved to the low and high bytes of a pointer register, then data stored through the pointed. A big chunk of instructions are taken up by register to register transfer instructions. The Intel 8080 has 7 registers as well and one quarter of the possible 8-bit opcodes are similarly taken up by the register-register move instruction: 01sssddd is the register-register move. Some registers work together in sets of two to form 16 bit pointers. An 8th logical register stores/loads indirect through an address contained in a pair of other registers. The chip is similar to the 6502 in that there are instructions for doing various bitwise operations on the accumulator implicitly, various instructions for increment and dec'ing the registers, and instructions for transferring data from any reg to any other (but there are more registers in the 8080), but the 8080 has a few 16-bit-ish instructions that load 16 bit values into register pairs, increment/dec sets of registers as 16 bit values, has more reg-reg transfer instructions, and lacks instructions for indirect addressing except through computing values and putting them into the indirect address register and then operating on the 8th logic register. The 8080 also uses up a pile of opcodes with conditional return instructions that match the conditional jump instructions it and most chips have. The 6502, the chip I'm most familiar with and the only of these lot that I've actually programmed for, is, by comparison, badly register starved, with only 3 general purpose registers, but load/store instructions various addressing modes are available for all of them, though the addressing modes available for each register are different. None of the registers ever combine into a 16 bit pointer, but load/store for various registers can get other registers added in to load from a table at a given offset or to load indirectly through an address in a table. Indirect load/store modes, including zero-page addressing (which takes fewer bytes and cycles), along with various register indirect and indexed modes of compare, add, subject, etc for the accumulator, eat up most of the opcodes. The CP1610 was a 16 bit CPU. Like the 1802, it had 8 registers, one of which pre-inc/post-dec when values are loaded indirectly through them creating a stack, two that autoincrement when data is stored data indirectly through, and one of which holds in the instruction pointer. The 1600/1610 have a 10 bit opcode, giving it four times as many instructions as the 8 bit CPUs. That makes this an unfair comparison, since it's relatively unrestricted in which operations it can implement. Even with 8 registers, it can add, subtract, compare, and do various logical operations between any two registers, and then on top of that, can add/subtract/do various logical operations between a register and a memory location referenced by another a register (register indirect). Those alone eat up 512 opcodes, which is twice as many as the above 8 bit CPUs have and half of what the CP1610 has. This CPU was created to work with up to 16 bit wide ROM and RAM but was also designed to work with as little as 10 bit wide ROM and 8 bit wide RAM. Since the machine word is large enough to hold an entire memory address, it would save a lot of the fussing about that happens in 8 bit CPU code. This would be a joy to work with. This is the chip used in the Intellivision. Those are just some quick dumb notes. | | Monday, January 23rd, 2012 | | 4:00 pm |
Status
It's stuff like this that makes me neurotic. I've been working, maybe a few hours every few months, on this cluster project. I just got cluster-wide-IP going a while ago, which lets any node on the cluster open a port for listen and have the whole cluster respond on that port. That greatly simplifies firing up high-port daemons and adds the illusion of a single machine. Someone made a WebGUI8 vmware image for people to take out and use to kick wG8's tires, and I offered to host it there. As I was getting settled on Amtrak and checking my messages, I saw a message on IRC that the cluster was timing out. Dammit! The second node is responding but the first is limping along. Since cluster-wide-IP also loadbalances when multiple machines are listening on the same port (such as in the case of ssh), every other attempt to ssh goes through, when round-robin sends it to the second node. Haphazardly, I could get a command off on the initnode. One of them I got off was smartctl -a /dev/1/sda, whereupon I learned that the error re-try rate is through the roof. There's a KVM that'll send a control-alt-delete, but there's no RAID, and the APC SmartUPS 600 that is hooked up isn't hooked up to anything on serial, and I meant to take one of the external USB drives and plug it into the initnode and stick a copy of the boot partition onto it in case I needed to reboot with the KVM and come up from that instead of the internal HD. I don't think the failing drive is entirely responsibile for node 1 being non-responsive as node 2 is functioning fine (and node 1 is load-balancing to 2 as well as serving it the root filesystem), but I can't get a reboot command off on it and using the KVM to send control-alt-delete events to it does nothing. Dammit, Linux. I'm short on time to the point to where chaos and failure isn't just a hypothetical concern but an ongoing problem. | | Thursday, January 12th, 2012 | | 6:40 pm |
Google can't not turn into Microsoft
Google has a ton of might behind them. They gained this might benevolently. It's not something they asked for. Their search results were better, and they payed several fractions of a percent better on their advertising program than their competitors did (remember Commission Junction?) while doing only less annoying ads. They started to feel like they they could do no wrong. Services like Google Maps and gmail drove tons of traffic to their site where they could show their own ads. But then they started having duds. Google Books was a lawsuit magnet. Search by a phone call / connect to business just lost money, as did most of the blue sky Google Labs stuff. Orkut was a legal disaster and adoption disaster. Google Wave was every sort of disaster. Google+ has been a PR disaster another niche social network like Orkut. Google Docs isn't making money yet. Money in Internet ads has dropped while the cost of developing a compelling product to put ads on has gone up. Static content doesn't draw views any more. People want rich applications that are expensive to develop. In this situation, Google, on a daily basis, has to ask themselves whether it is themselves or their users that are the source of problems. Are the users being overly demanding, stingy, fickly, and generally spoiled? Fundamental attribution error seems to run strong with boards of directors, who have prides the size of an entire corporation. Invariably, they decide it is the user. Given time, invariably, they will take out frustrations on the users, sell out the users, change explicit or implicit contracts, break social contracts, leverage their position to deny the user choice, and generally absolve themselves of duties to compete on an open market. They'll, very subtly and uncertainly at first, leverage any sort of foothold they have to improve revenue, click throughs, sales, page views, retention, marketability, image, and so on. There are famous stories of Google punishing itself when a team, against the social contract, artificially inflates search results for their product. There are also stories where the board stands up for the team that did this and defends the behavior. There's a social contract in place, but it is sometimes strategically violated. Google easily justifies its behavior here -- "it's only fair", "it's only right", they say, just as every other large company has found themselves saying. I'm not saying all large companies are bad and therefore Google is bad; I'm saying that monopoly abuse is unavoidable, given time, due to the fact that the board is human, they're proud humans, and proud humans invariably step in the fundamental attribution error trap. And I'm also saying that, lately, in a lot of ways, Google is starting to stuck. Being opted in to Google Wave without permission was a huge privacy leak. Being spammed for GooglePlus constantly is annoying. Both of those are monopoly abuses in a literal sense, if not a legal sense. I can't tell Google how to make money off of services like gmail when people do like I do and opt to use IMAP to fetch mail and read it in mutt, bypassing all ads, other than this old, universal standby: if you're losing money on a service that everyone wants, let, even encourage, people to compete with you on it. Remember that Google makes its money first on ads, and it makes even more money when its own sites host the ads. But if "even more money" is still a loss due to operating costs, then it's better to have someone else hosting the service that's losing money. In fact, the best thing Google could do is fix up the AdWords service so it doesn't suck. This has been badly neglected. Google made it easier to put a spot on to TV than to run an AdWords campaign. Google desperately needs to up the payouts. Someone did the math and figured out that Google is only paying out a few percent of what it's taking in. This is as short sighted as Commission Junction when it was doing the same thing, minus a percent and a half. If Google could pay out 50% or even 75% and create a huge explosion in search engines, free mail hosting sites, document services, and so on, as well as services no one has thought of yet, then users would win and Google would win. More people would place ads that would be more effective and a lot more people would make a lot more money off of them, and Google would make more money off of volume, and more programmers would be able to make a living not working for Google. But, like Microsoft, the urge to own everything is too powerful. So instead everything is retarded (in the repressed sense) until the monopoly falters badly enough that someone else can get a toe hold on advertising. It's easy to look at a monopoly and see all of the good they've done. It's harder to look at it and imagine all of the good they're obstructing. Bell Labs brought us the transistor. Clearly them having a huge income was good and correct. They also fought tooth and nail to prevent the modem from being attached to their system, as well as PBXes and other technologies. Clearly it was a very bad thing for them to be a gatekeeper to all things technical. It deeply concerns me that Google is trying to take ownership of and reinvent HTTP and JavaScript. That combined with being the largest, by far, control on Internet advertising and virtually chocking out anyone who wants to place or show ads is just bad news. | | Saturday, January 7th, 2012 | | 8:49 pm |
Status
Fruit tree pick-up was today so last night I checked out the large Bike Saviours trailer. When I got there, about 30 or 40 people were standing in a mass in the parking lot occupying the forward most row of the parking lot. The courtyard in front of the school was roped off and full of rows and rows of trees. I was promptly informed by the waiting masses that hey had been there for two and a half hours. Every few minutes, someone in a car trying to get a parking spot near the front (there was plenty of parking) would push through the mass of people, so the mass was constantly shifting around. One toddler decided to turn around and run away from his mother and ran directly in front of a car that was just accelerating out of the bulk of the crowd. He nearly got hit. The whole thing almost defies what can be attributed to stupidity and seemed malicious. The lady working the counter kept complaining that no one was answering for the names she was calling, but if people had stuck around (and there was no one else people could talk to to excuse themselves), the mass would have been twice as large. I put up with long lines now and then and realize that organizations like this just have to try to do accommodate the next year, but what the fuck is wrong with people that they think that it is okay to try drive their car through a crowd of people? The apple tree is taller than I am. The four blackberries are as tiny and scraggly as the other two. I broke the Bike Saviours trailer. The hitch came apart. A metal sleeve around a bolt that allowed pivoting cracked and split into two. I had to fasten it back on the bike using creative means and then ride slowly and carefully half of the way back home. | | Tuesday, January 3rd, 2012 | | 6:19 am |
Grand Canyon
I've been slowly acquiring hiking gear. I don't feel like I use it often enough to justify any investment, so I'm loathe to buy anything. Two years ago, I went in worn out sneakers. There was snow, melting snow, and big piles of frigid water, but I was fine with two pairs of wool socks on. I acquired the external frame pack for that trip and it worked out great. I've since used it on several trips. I also bought "Yak Trax" for that go, but they were way more useful for this go. Oh yeah, two years ago, I also bought one of the two long sleeve wool shirts that I use all of the time. This go was not-worn-out trail running shoes that I got but decided are too wide for the bike peddle but have been getting good use out of any time I need to do any serious amount of walking, but I added an inexpensive camp stove and a far more compact sleeping bag than the monster I had been taking when it's cold. I wanted to be able to make my own coffee and eggs in the morning without having to beg, and I wanted to do better on my pack weight than the 58 pounds I did previously and still manage a few cans of (good) beer for New Year's Eve. I indulged a bit more on food than most (after all, as I say, I'm only there for the food) but ate almost all of what I brought, leaving only some dried cranberries, two oranges, and then tiny scraps of numerous things. I took less dishware, taking a pot to cook in and also to use as a bowl, and only taking my 16oz stainless steel mug with the blue coozy (Socks had to mail this mug back to me, oops) as a general purpose sealable liquid/solid container (along with two water bottles). I brought changes of socks and underwear, light wool pants and the heavy (and slightly moth eaten) wool pants, and my various wool shirts along with the nylon shell, resolving to just keep wearing the same outer clothes the entire time. I hate to metricize everything (or anything), but I ran ten pounds lighter this year versus last. I didn't once feel the need to muck with my straps or change where the pack's weight was on the way up or down. Oh, I also took a book (I have a fear I developed early on of being stuck somewhere with nothing to read) and a couple of games. I'm not necessarily repenting from my heavy packing ways. Part of the formula is waiting to buy something until I'm pretty sure I'm going to get good use out of it. The Grand Canyon is a great place to take a 3D camera. We attended the Scorpion Drop at the ranger's station on New Year's Eve. At midnight, we threw a small boulder off of a bridge, a tradition started last year. We played games -- Pandemic is brutal, but the game play is cooperative, so it's a nice shared puzzle. We did the same hikes as two years ago and swam in the same rivers and splashed around in the same water falls. Guzy brought his "strum stick", which was passed around and enjoyed. We watched fall leaves getting blown up the canyon. The ringtailed cats stole all of Jeremy's food when he left his ammo box open. Joey dropped his camera near ribbon falls, and someone found it and took it to the Phantom Ranch, where the lady working the line recognized us from the photos on it. The crows helped Ashley, Jen and I scrounge the campsite for microtrash as we were leaving. We met a crazy hiker named Larry who is reportedly all over that place quite often. There's the story of Vee and the park ranger. Jen knocked over a can of tenfidy at one point, putting a small hole in the can, and then declared (much to my amusement), "someone, quick, drink this tenfidy!". Mostly, it was a time for relaxation, observation, and solitude. rebeccmeister was missed, and not just by me. I should have brought stuff to make cornbread to go with chili (if I had a copy of the menu handy, I had forgotten that I had) instead of being redundant with it, or else just brought veggies to cook up and add to things, and I should have brought enough eggs to make everyone breakfast once. It's hard to come back to piles and piles of email. The year end was miserable in terms of money nag emails from various causes. The laptop was sleeping without power too long and powered off, and getting everything fired up and running again is a day long project. I'm used to a machine going for a week easily on sleep mode but I think I've done that with this one twice. Phoenix.PM sent the meeting announcement and I'm not the presenter, even after I confirmed availability, so I'm a bit confused, but Bike Porn is the same night, so I was thinking of canceling anyway. Maybe I'll talk to LA.PM and try to schedule something. A while back, I promised them that I would. Now I need to shower and shave. | | Thursday, December 22nd, 2011 | | 6:55 am |
Status
First:  Awwaiid was over after Middle Eastern food at the place in my neighborhood I don't go to enough; had to resist the urge to grocery shop on a social event, something I've failed at previously. I tried to think of something fun to do in Phoenix and realized that all of my fun is event driven. No fun is had unless fun is scheduled and planned. Turns out he's pretty damn good at Super Mario Bros 3 (but then again, it seems like everyone is better at it than me, even though many of these levels near the end are just insane). We stockpiled powerups and extra guys and warp-whistled to the last level to try the beat the thing, but got bogged down on the murder levels in the fire and brimestone and skulls and bones world. The other day, I decided to just start reading online "strategy guides" for the thing. That made it easier psychologically. I was previously afraid it would go on forever. After dinner and then code and coffee, I came back and played some more. It's 4am, and, well... I had been working on that one for a long time. Too much on my mind. I laid in bed for a few hours before I just came out, made myself a sandwich and turned the TV back on.  ... "unpacking" after Texas. Strategy: dump everything on the floor and put away items one at a time as I work up the motivation, or, alternatively, snatch them from the pile when I need them. I confess, I opened my gifts early. rebeccmeister continues to amaze me with her craftiness and thoughtfulness: home made salsas, pizzelle cookies, a microplane zester, threats of cozzies for the french presses (or similar). I didn't exactly pack light. It was cold, and I packed for that, and that always adds bulk. Bringing my work with me took space, too, as well as tools for the bike, the U-lock, and various other bike things. On the way back, I had to convert the backpack into an extra pannier, putting it on the back to augment the two on the front. Atari 8-bit Boulder Dash - Cave L solution ... someone made a version of this game for the Atari 2600: http://www.youtube.com/watch?v=w6Ge6G9sT9E. atariage.com is carrying the story, discussion, and cartridge. Reportedly, it packs a whooping 32k of ROM and 16k of RAM into an Atari 2600 cart (which normally holds 4k; the variant of the 6502 used in the 2600 can directly address 8k). This is an awe inspiring programming feat. Boulder Dash is a mixture of puzzle game and action game, with a simple "physics" engine. It was hugely popular in the mid 80's. Then someone made this thing: http://www.retrousb.com/product_info.php?cPath=24&products_id=34... a NES cart that loads games off of Compact Flash. -scott | | Monday, December 19th, 2011 | | 1:53 am |
Status
A few more Linux installs, following on from the OQO last month or so. One of them is dd-wrt on a cheap D-Link router. I'm eying the P1120 wanting to make it the root node of the cluster now that I have cluster wide virtual IP running. As far as incoming networking goes, there doesn't have to be one machine that stuff is pointed at (or port level routing in place). It's best that no traffic or intensive processing be done on the init node. Pegging it pegs the whole cluster, best case, since it is also trying to keep the cluster wide ps table and that stuff in order, and it is serving the root filesystem to the cluster. I don't have its VGA adapter so I can't plug it into the IP-KVM. Maybe I should make the old R1 the init node. Hrm. It's really hard to get to the HD in the R1, though. Anyway, that would put two compute nodes into service. Small fries. Still zero feedback on hosting stuff from there. I've been kicking around on the motorcycle lately. Maricopa Amtrak does have long term parking. Driving to Maricopa or Flagstaff is still better than flying. Sur le Tab doesn't have Pyrex french press canisters. Neither does Duck and Decanter. I hit three post offices today. In Scottsdale, I happened to notice one with the automated package weigh stations so I stopped in. After I put postage on my packages, I walked over to the big metal package mailer drawer in the wall, pulled it open, and noticed that the previous user's package was still in it. Huh, that's odd. Closing it and opening it, it was still there. Closing it most of the way, I could peer back behind the wall. There was a mound of packages piled nipple high behind the thing. It was clogged. With some clever jockeying, I got one of mine onto the pile along with the previous one and decided that I had freed up enough room that I could at least get milk, so I went to Tempe, got a Bike Saviours 2012 calendar (ooh, so artsy and pretty, shot all over Phoenix/Tempe!), got milk and a few other things, hit my post office box, then hit the central one on Washington on the way back. As it happens, the package chute at the central post office was also clogged. I feel like this is a metaphor for the holidays. I was able to take an express mail box and ram it through the slit and shift the mound backwards. I had the idea to do this because a very large, long and scraped up express mail box had been left directly in front of the package chute. I think it's going to happen this year that I don't buy anyone anything for Christmas, with the exception of a book for a nephew. This wasn't intentional. I'm behind on travel. It's a shitty Christmas gift, I know, but I think I'm going to save my money for visits. To visit everyone I'd like to, I'd have to do a loop of the US. |
[ << Previous 20 ]
|