elfs: (Default)
I’ve just done something… I’m not sure what to call it. Terrible? Wonderful? Should have happened months ago? I deleted a project on my hard drive, in fact the biggest project, all 415 gigabytes of it. My writing only amasses all of 25 megabytes, or about four million words, not counting any of the social networking I’ve wasted my time on over the past 36 years– and it has been 36 years, stretching all the way back to 1989 and my first encounter with Usenet in 1989.

The project’s name, which was so big, overwhelming, and so in need of isolation that it had its own username and local account, was stable.

It was just an experiment with stable diffusion. It grew into an obsession. I realized the other day that I was wasting hours on the damned thing, tweaking to find one more perfect image in a sea of six-fingered, three-armed men, women, furries, and monsters. I told myself that it was merely a recreation, a form of leisure. Over the course of

To be “ethical” leisure, a hobby needs: (1) perseverance, (2) stages of achievement and advancement, (3) significant personal effort to acquire skills and knowledge, (4) broad and durable benefits, and (5) a special social world with a unique ethos that is deemed valuable both by the participants and by observers. Stable Diffusion utterly fails at 4 and 5.

And I’m supposed to be an expert at this stuff.

the past 2½ years I generated upwards of a million images, and still had about 100,000 of those on my hard drive, just taking up space. Not to mention the models themselves, some of them LORA files that simply cannot be found anywhere else for love or money, jealously hoarded by aficionados because they were created before April of 2024, when the big boys decided no more LORAs that allowed you to generate pictures with “absurdly large breasts” or “being caressed by lots of tentacles” when they also tried to sneak underage girls into the data stream, and which you could then generate if you knew the right keywords, the which were frequently embedded in the keyword_frequency key embedded in the metadata block.

All gone now. Poof. Even the backups have been destroyed. Going cold turkey on day one.

And when I say “wasting hours” I mean it truly; it was as bad as two or three hours every day. I had stopped reading. I had stopped coding for fun, although that may be more an artifact of how well my brain works after that nasty COVID bout and the ravages of turning, well, 59.

I never posted anything that I generated because I recognize the ethical problems in image generation “AIs.” It’s funny how many of the people deep into this, er, hobby, recognize that this isn’t AI at all and simply call them “diffusion models” of one sort or another. I don’t want to take money out of artists’ hands; I want more artists making more art, not less. The number of story ideas I extracted out of these, good grief, thousands of hours I soaked into that thing over the past 30 months I can number on one hand, because it’s literally 5. Out of the million images I generated, I kept five.

There are artists on Twitter who have given me more good story ideas in an hour than the estimated nine man-months of my life I put into what is probably the most useless skill I shall ever have acquired.

There’s no reason I couldn’t rebuild most of it; after all, it’s just downloading software, and this time I have more skill in handling LLMs in local space, since, again, I had no desire to share either my skills or my products with a commercial image producer.

I also deleted a lot of tools that I had developed along the way. I wrote my own little programming language: Loopy. The Loopy interpreter was written in Python and allowed me to do all sorts of peculiar tweaks to the prompts and the various strengths and timings of components of the prompt in mid-process, just so I could do odd and silly things with wildcards above and beyond what Stable Forge was capable of processing, and could do it hands-off, without the browser running. I could “do multiples runs of five of this prompt, using the same seed for each run, only using these six different LORAs in succession,” or “Do the multiple runs, use the same seed each time, but progressively increase the influence of the LORA,” so I could do some empirical analysis on just how much of one LORA or another I needed to get whatever the LORA promised to do to look “exactly right.” I could even go to one of several image galleries on-line, such as CivitAI’s “Furries” gallery, pick as many images as I liked from the gallery and open them in tabs, and the Loopy would download the generation data for each image and attempt to reproduce them locally, with whatever tweaks I wanted that day to make them more interesting to me.

And despite all of this, despite generating at least a million pictures, I found five I wanted to keep.

That’s an obsession. Despite my own observation that AI exploits a critical vulnerability in the human brain, I succumbed to it. I drowned in drab beauty, like a certain billionaire obsessed with making everything look like the inside of a 1950s “historical fantasy” titillation film, regional car dealership rococo slop. It’s ironic, I suppose, having seen what the Pixiv “artist” AIBot could do with it, and understanding exactly how habit-forming it could be, that I wanted to be able to do what AIBot did, and better. And, I suppose, I did to better; much better. Read thousands of prompts and you’ll develop the skill too, it just won’t be a very useful skill.

Anyway, all gone now. I hope. As I said, I could put it back, minus some “classic” LORAs for a variety of, well, mostly breast sizes (always a hard thing to get right with the early generation, and I never graduated beyond Stable Diffusion 1.5), but I deliberately made even that difficult: I deleted the Loopy toolkit repository. I don’t want that temptation.

I expect I’ll be grumpy about this for a week or so; a habit, even a bad habit, puts the victim through an extinction burst when your brain realizes that that particular source of dopamine is no longer operant. But I suspect I’ll also get over it; I wonder what I’ll do with all the extra time. I should plan on finding something better to do with all that brain power.
elfs: (Default)
Omaha and I went camping this July, earlier than we usually do, and for the first time in my life I experienced a new sensation I had never had before.

I felt old.

Like, I’m 54. People who have been following me from the beginning know that I started blogging and posting to Usenet in 1992, 28 years ago when I was 26 years old! And yet, I’ve never felt old. Prior to the COVID-19 crisis I worked out regularly and was well on my way to being able to squat my own weight, which would have led inevitably to pistol squats and other knee-threatening exercises.

The Crisis deprived me of a weight room and the need for a break from the day. I’m at home; as much as I’m “living at work rather than working from home,” I’m finding that being in my home means that I can take mental breaks at any time by stepping out onto the back porch or walking through the overgrown belt of forest behind my home. I no longer ride my bike to the train station for a ride into the city.

After four months of that, Omaha and I decided to take some “moderate” hikes, starting with a 4.4 mile that turned out to be exactly in one direction: up. The Big Creek Trail is listed as a moderate difficulty loop that’s exactly 2.2 miles uphill to the top, cross the creek on a wooden bridge, and then exactly 2.2 miles downhill to the trailhead.

When we got back to the tent, my legs felt unfamiliar. I was very familiar with the burning sensation of working my leg muscles in a long-distance hike, and I know what it’s like when they’re fully exhausted and no longer want to move anyway, but this time they felt something else: they felt heavy.

I am not heavy. I weigh 185 lbs at the moment, smack in the middle of the “175lbs - 195lbs” range for a 6-foot tall adult male. I have a small amount of liver fat, the typical spread of a 50+ male, and according to my doctor it’s less than most guys my age. 62.3% of men my age are overweight; I’m not. Not yet, at any rate.

But my legs felt like they were wooden logs I was carrying around, and it was a disturbing sensation because of its unfamiliarity. It was like they belonged to someone else. (I promise I’m not developing Body Integrity Identity Disorder. That's something that hits in childhood for the people who experience it at all.)

To me, this suggests an experiment: if I work at getting my legs stronger once more, will that sensation go away? Is the sensation I experienced due to age, or due to the general flabbiness this working at home thing has done to many of us?

I’m gonna need to run that experiment hard.
elfs: (Default)


I was told I couldn't lift this.

I bought an electric bicycle this week, specifically, the Rad City. It was $1500 before taxes, which has to be four times more than I've ever spent on a bicycle before. I've now ridden it a total of three times, so I can't comment yet on its lifespan, but as an experience, this thing is an amazing joy to ride.

There are three levels of electrical bike: pedal-assist, bicycle-throttle, and moped-replacement. This bicycle is in the middle: it can do pedal-assist, but you can just use the throttle and ride without pedaling at all. In that case, it's speed-limited to 20mph, which is pretty much my max cruising speed anyway. The throttle is highly intuitive; I had no trouble learning to use the bicycle on the first day, and literally rode it off the lot from the Ballard Locks and into downtown Seattle, about a five-mile ride, in complete comfort and control.

It has fat tires, high-quality shocks on the front fork, and a very comfortable, plush seat. Riding in the city with its potholes and construction marks can be uncomfortable, but these three features absorb a lot of that discomfort. The seat and handlebars are close enough that you end up riding high, not bent over as you might on a performance bike. This encourages you to enjoy the view.

You do end up pedaling, a lot, but if you're my age and you have similar knees to mine you also end up throttling on hard starts and gnarly hills, which is where the bike truly shines. It helps you, it doesn't do the work for you. That's its true charm.

The bike's frame has an integrated, welded cargo-ready cage over the rear wheel. This protects the rear fender and the motor, and provides mount points for all sorts of bags, paniers, and carriers. It also comes with a full set of lights, both front and rear, that run off the bike's battery. The "City" model is special in that, if you remove the battery and any panniers, it weight 39 pounds-- and most metro systems have a bicycle weight limit of 40 pounds.

That said, it's a big bicycle because I'm a tall guy. So while I can fit it on a subway bicycle hook, it takes up a lot of room. And it is a heavy bike-- fully loaded, it's 63 pounds. I was told I couldn't hang it, it was theoretically safe but the bicycle was too heavy to lift, but apparently I'm stronger than I look.

The battery is rated for 20 to 40 miles of normal use, which is more than enough for any standard commute especially if you have some sort of bus system to get you into the city.

Overall, this is a wonderful experience. If I had my druthers, I'd replace my car with it. Although maybe winter will change my mind.
elfs: (Default)
Well, after an utterly crappy Friday, in which I felt wiped after not going up in weight at all, and crapped out on my rehabs early, today was much better. Squats: 6 x 130lbs, 6 x 135 lbs, 4 x 140 lbs. Flyes: 8 x 50 lbs, 3 @ 55 lbs. Assisted pull-up: 6 at 50 lbs (meaning I did 6 pull-ups with 50 lbs removed from my total weight; if I weighed 140 lbs, I could do 6 pull-ups). I also did 8 wings at 15 lbs, 2 sets of planks at 100 seconds each, and 42 knee-lifts, then 35, at 2.5 lbs.

The knee-lifts are a rehab exercise, and I get this weird one side is weaker than the other, going back and forth constantly between the sides of my body.

Still, I'm going to be able to lift my own bodyweight, both as a carry and as a lift, by the time summer rolls around. That'll be nifty.
elfs: (Default)

It used to be possible for Linux users to find and save the movie file from a Flash download with earlier versions of the Flash plug-in.  Flash put the file in the /tmp directory and if you were quick you  could copy it elsewhere.  If you had a plethora of Flash files, you could often find the one you wanted with a simple ls -lt /tmp/Flash* , which sorts the files in order from newest to oldest.

The latest version of Flash does something tricky, though.  It creates a temporary file to hold the Flash object, then, while keeping the handle to the file open, immediately deletes it.  This means that the Flash application can continue to access and use the file until you navigate away from it, but it no longer shows up in directory listings.

However, if you’re really Linux savvy, there are ways around even this little annoyance.

Looking for a Flash movie you’re looking at right now?  First, run this: lsof | grep Flash .  On my computer, the output was:

midori     9206  elf   57u      REG        8,3  10012691     64772 /tmp/FlashXXKoFQgx (deleted)

There’s that noxious little “(deleted)” flag, too.  But you have a hint.  First, your process id in 9206, and the file descriptor is 57.  Now, you can just cp /proc/9206/fd/57 /home/elf/movie.flv and there you go.  File copied.  At least, it’s worked for me the few times I’ve done it recently.

Lsof is a program that lets you identify all the open resources a running program is using. In this case, my running program is midori, a Gecko-using browser with a long history of trying to keep up. By identifying the resource, I can then wander down the /proc tree, getting at the process’s available resources directly. As a user, I’m free to access (and muck up) my own resources without risking anything or anyone else on the system– Linux is good about that.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

Okay, since I’ve had the heart-to-heart with the boss, I should ask y’all for the same understanding: I’m looking for work again.  I love working where I am now, the absolute freedom, the responsibility for the entire working stack from the OS up to the CSS/JS/HTML deployment layer, but right now this is an underfunded start-up that isn’t paying anyone anything near market rates.  They know that, I know that, there’s nothing anyone can do about it right now.

So, to remind everyone, here are the basics: I’m an end-to-end developer with a strong preference for Python and its collection of web development environments.  I’ve written everything from network servers in C++ to animation tricks in jQuery, I’m good at Test Driven Development, Agile and XP, and all the other meta-development things that developers are asked to do.  I can configure MySQL, and have active interest and recent experience in gamification, social network integration, A/B testing, automated performance expansion via AWS/EC2, and vertical and horizontal sharding for data management issues.  My graphic design skills have withered without recent practice, but could be refreshed if that’s what I need to do.

My resume says the rest.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

Last night at the Django meetup, we also talked about unit testing.  Someone mentioned continuous integration, and we all discussed our favorites.  At one point, the fellow at whose offices we were holding the meeting mentioned that his team used Hudson and pulled up an example on the overhead projector.  I mentioned that Hudson was my favorite as well, and he said, “Yes, I think it was your blog entries that led me to this solution.”

That’s the second time this year I’ve walked into a meeting and someone’s said, “I’ve used something you wrote.”  Kinda cool.  Wish it was addictive.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

I have this t-shirt.  It reads: “Knowledge is power.  Power corrupts.  Study Hard.  Be Evil.”  Because if we take those two first popular truisms and put them together, we get a very unpopular conclusion.

The truisms of our business are “It’s an attention economy, where revenue is driven by how much attention you can get,” and “In order to succeed, a website must have multiple streams of income.”

Therefore, “In order for your website to succeed, it must have multiple ways of getting attention.”

And that’s the tricky part.  In the real world, that still takes patience, legwork, and dedication.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

Do you have that one thing that you have to constantly look up?

In python, to replace elements of a string, there are two operators.  One is a strictly linear search, the other uses regular expressions.  The regexp call to replace part of a string with another string is sub, and the string call to replace a part of a string with another string is replace.

I get these backward all the flamin’ time, and it drives me insane.  I use both of these every day, why the Hell can’t I remember which is which?

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)

As some of you may have heard, I recently lost my job at Isilon. In that great tradition, I have put up my resume. Have a look, and please comment on the content or presentation of either version:

Kenneth M. Sternberg, Senior Web and User Interface Developer and Designer.

There’s a copy for printing here.

This entry was automatically cross-posted from Elf's technical journal, ElfSternberg.com
elfs: (Default)
So, in order to find out if my back problems are caused by an overactive bladder, or vice versa, my doctor has me peeing into a graduated bottle for the next few days.

Last night, like usual, I awoke somewhere between 3:45 and 4:15 and went to the bathroom and did my business, measuring it out and writing the volume down in a little journal via flashlight, then went to bed.

Shortly thereafter, I got up and went again. I was a little confused about why I was wandering into the bathroom when I had just gone. I fumbled a little with the flashlight and the bottle, and then I felt a wetness on my hand as if I'd missed the bottle (ick-- told you it was TMI), but that was impossible, I'd just gone so I had nothing to give and I didn't feel like I was giving anyway. I pushed down the button on the flashlight and saw that the stream was coming out of the flashlight!

I've never had a lucid dream before, but I instantly realized that any situation this surreal had to be one. I turned my head towards the door and tried to say, "Omaha, wake me up!"

And then I learned that there are different levels of volition: one for what I was doing in the dreamworld, and one for what I wanted to do in the real world. I couldn't get the words out! "OooohhhhMMmmmmmm." My mouth was trying to form the words, but it was if my face had hardened like Play-Doh left out too long. "Mmmmmmaaaaaahaaaaaa...." It's like that scene in The Matrix when Smith says "How will you call your lawyer when you can't even speak?" only not as freaky. And then, with a transition so smooth it will be the envy of television programmers everywhere, I was transported to my bed, conscious and mostly puzzled, and intrigued about the whole incident.

Fortunately, I hadn't actually made a sound or moved at all, and Omaha never noticed. I went back to bed, undisturbed either by back pain or strange dreams.

There must be something in that dream, some insight into the nature of volition, that I can use in a Journal Entry. Into the hopper with it!

Profile

elfs: (Default)
Elf Sternberg

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 11th, 2025 08:20 am
Powered by Dreamwidth Studios