Happy 4th of July!

 movie coverI'd rather be watching TV![IMDB link] [Netflix link] This has gotta be one of the most underrated movies we’ve ever seen.

PLOT SUMMARY:

In a coma, a cartoonist finds himself trapped within his own underground creation and must find a way to get back, while racing against his popular but treacherous character, Monkeybone.

PEOPLE: What talent involved in this one!

Directed by Henry Selick (The Nightmare Before Christmas, Coraline, James & The Giant Peach).

With Brendan Fraser, Bridget Fonda, John Turturro (Barton Fink from Barton Fink) as the voice of Monkeybone, Chris Kattan as the most hilarious corpse since Weekend At Burnie’s, Giancarlo Esposito (That’s right, bitches! GUS FROM BREAKING BAD!) as a red, horned, devlish creature with tiny legs, Rose McGowan with sexy kitty whiskers and outfits, Dave Foley with blonde hair as a smarmy agent, Megan Mullally (Children’s Hospital), Bob Odenkirk, Whoopi Goldberg as Death.

And a cameo by Stpehen King. Except it’s not really him. Looks JUST like him, though.

QUIRKS:

Fantasy dream adventure based on Kaja Blackley’s graphic novel “Dark Town”.

Creepy dreamworld. Coma dreams. Greek mythology.

The craziest organ donor doctors since Monty Python’s The Meaning Of Life.

Black, dark humor – ridiculously dark at times, without seeming dark.

The funniest corpse since Weekend At Burnie’s.

Similarities to Cool World, Beetlejuice, and Sucker Punch (which also used “Love Is A Drug” as a anesthesia-dream song, making me think this movie influenced Sucker Punch).

From IMDB: Comparisons between Monkeybone and Cool World: A cartoonist enters a strange world and meets his creation (Holli Would and Monkeybone). Vital scenes that take place in a night club (coma club/slash club). The cartoonist is offered a cigarette but refuses to smoke it. The cartoonist gets menaced by the strange world’s creatures when they first enter (road kill animals/Holli’s goons). The creation (holli would and monkeybone) both imitate Marylin Monroe. The creation plans to become human and enter the real world.

I’d love to see the (spoiler alert) alternate ending… In fact, the version we watched, while bluray in quality, lacked all the extra scenes described on that page.

VISUALS:

Did I mention who the director was? Same guy who did Nightmare Before Christmas, Coraline, and James And The Giant Peach?

You don’t see as much animation in this one as in the others, but the visuals are pretty consistent with that. Darker than James And The Giant Peach, but not as dark as Nightmare Before Christmas. And not quite as creepy as Coraline. But definitely dark and creepy nonetheless.

SOUNDTRACK: “Love Is A Drug” – used both in this movie and Sucker Punch, which is also about coma/anesthesia dreams.

UNCOMFORTABLE PLOT SUMMARY (inspired by this): [highlight for spoilers] Careless driver’s erection-based character rapes his fiance. (oh man… oh man…)

BACKWARD PLOT SUMMARY: [highlight for spoilers] Zombie gymnist scares the shit out of successful animator, causing him to go into a coma.

MORALS: I don’t think this movie had a real moral message to it — it’s just an adventure where some things happen. I guess you could say: Never give up.

POLITICS: Imagine if the main character in this movie was Terry Schiavo…

GOOD STUFF:

Great stop-motion animation — though you won’t see TOO much of it, as a lot of this movie takes place in the real world.

The movie kept getting better and better. By halfway through, I thought it would be a 4-star movie. But the plot and such kept going and going. It actually felt like the movie was done, but then we were only 38 minutes in! Stories that keep going after you think they are over are awesome — but stories that do this AND keep improving and getting better?!? EVEN MORE AWESOME!!

BAD STUFF: Brendan Fraser. We don’t mind him, but him being in a movie is an automatic turnoff for a lot of people. It’s also apparently too random for some people, even though IT’S A FUCKING COMA DREAM. It’s not SUPPOSED to all follow a sense of order!

CONCLUSION: We found this to be a brilliant comedy that was dark, morbid, AND lighthearted at the same time. With great fantasy visuals, and so many talented people involved, it’s hard to beleive this movie gets a 4.5 on IMDB, and only 20% on RottenTomatoes. What could everybody have missed?!? We both gave it a 9.

Apparently, if your inner child has died, you lack imagination, hate animation, or simply hate Brendan Fraser to the point of having it affect your ability to enjoy a movie, then this movie will just seem random, weird, and stupidly written. To which I say: Fuck you. This was great. What part of you had to die for you to not like it? And what do we have to do to re-awaken that part of you?

Anyway, while not as visually appealing as Selic’s other works, the appeal is still there, and it’s much more of a comedy than any of the others. This is like Cool World meets Beetlejuice, with a tiny dash of The Mask & Sucker Punch.

RATINGS:

Clint: Netflix: 5/5 stars. IMDB: 9/10.

Carolyn: Netflix: 5/5 stars. IMDB: 9/10.

The native public rating for this movie is: IMDB: 4.5/10, Netflix: 2.7/5 stars (but Netflix‘s predicted rating for us was 3.6/5 stars–it definitely knew we’d disagree here).

RECOMMENDATION: If you love fantasy, aren’t a hater automatically turned off by certain things, still retain your sense of imagination, and love darkness (i.e. morbidity; goth sensibilities) — YOU SHOULD FUCKING WATCH THIS. A lot of people hate this, though.

SIMILAR MOVIES: Already mentioned: Cool World, Beetlejuice, and, to a lesser extent Sucker Punch. But also: The Mask, and maybe the movie Ink (but only for the love angle).

MOVIE QUOTE:

Stu: “The woman I love is living with a horny little monkey that looks like me.”
Kitty (Rose McGowan): “What a lucky girl!”

“Wait! We’re doctors! We don’t want to hurt you, we just want some organs!”

COINCIDENCES: (Journey To The Center Of The Earth [2006], Monkeybone [2001]) 2 Brendan Fraser movies 2 nights in a row with him riding a mineshaft car roller coaster, along with a reference to a currently-airing-when-we-watched-it adult cartoon [Family Guy in Journey…, South Park in Monkeybone]. TRIPLE COINCIDENCE TYPE! Very rare! Usually get 0-2 of these a year.

OTHER STUFF Monkeybone webisode – http://www.flinch.com/anim/monkeyboneroadrage.swf and http://www.thepixelvixen.bravehost.com/cartoons/mb.swf. Monkeybone poo game – http://www.flinch.com/sites/poogame.swf. ^^ Special thanks to Compn — who actually saw this in the theatre — for finding those.

(more…)

 movie coverI'd rather be watching TV![IMDB link] [Netflix link] A movie suggested by Parthena, watched with Parthena and Eli.

PLOT SUMMARY: Nic Cage is the douchiest boss of all time… and then he becomes a vampire. (Or does he?)

BACKWARD PLOT SUMMARY: Nic Cage finds his shit.

UNCOMFORTABLE PLOT SUMMARY (inspired by this): [highlight for spoilers] Untreated schizophrenia leads to employee rape, club murder.

PEOPLE: Nicholas Cage! Losing his shit! Totally and completely! The whole movie! The director and writer of this movie faded into obscurity… But Nic Cage remains. He is the reason to watch this movie. This is some of his best “acting”, which I put in quotes because it is the “Nic Cage Losing His Shit” / “Nic Cage over-the-top acting”, and not necessarily the conventional acting most people would expect. In fact, Nic Cage was a boon to what would otherwise by a kind of dark, heavy, dreary movie

His poor, poor, poor subordinate Alva was played by Maria Conchita Alonso, who went on to be in Predator 2 directly after this. But I’ve only seen 3 of her 50 or so movies, and nothing after 1990. Vampire chick is Jennifer Beals (The L Word, The Grudge 2, Sophie from Roger Dodger, The Book Of Eli, and Alex from Flashdance. Her first movie was My Bodyguard!). His shrink was played by Elizabeth Ashley, whose voice kept reminding me of Marge Simpson. Happiness is the only movie I’ve seen with her. His real “love interest” (the black girl, not the hispanic girl) was Kasi Lemmons, who was in Silence Of The Lambs and Candyman, went into directing, and is now back into acting in some 2012 movie named Disconnect.

Jessica Lundy was also in this! Gloria from the sitcom Hope & Gloria! Why do I never notice her in the movies she’s in? Perhaps this is why she’s only doing TV guest spots nowadays. The last movie she starred in that I actually saw were Single White Female (bit part). And David Hyde Pierce, aka Niles Frasier! TINY part that I did not even notice. So yes: NBC picked 2 super-minor stars from this movie to be 2 secondary characters in 2 later sitcoms (Frasier and Hope & Gloria). How weird.

QUIRKS:Vampirism. Absurdity. Being an ultimate douche. Surrealism. Insanity. Nic Cage with a Keanu Reeves Bill-And-Ted accent.

It’s supposed to be the accent of someone who is acting purposely snobby. It works. He comes off as SUCH A FUCKING TOOL in this movie. Like, one of the biggest douchebags ever. His personality invokes a punching response greater than Michael Cera and Jesse Eisenberg combined. His fake accent is more cringeworthy than Fran Drescher’s laugh. His treatment of his subordinates is worse than the boss in Secretary.

And he eats a cockroach in the movie. For real.

 

NIC CAGE LOSING HIS SHIT:

In fact, most of the clips from the first 1/3rd of that video are from this movie.

In fact, after writing this review, Rage Comics introduced a new Nic Cage meme based on this movie!

http://knowyourmeme.com/memes/people/nicolas-cage

You Don’t Say?

“You Don’t Say” is a black and white drawing, often used in rage comics, of Nicolas Cage developed from a scene in the 1988 black comedy film Vampire’s Kiss, which revolves around a troubled literary agent’s descent into madness after convincing himself that he is turning into a vampire. In rage comics, the face is used as a sarcastic response to an obvious observation or statement.

 

VISUALS/SOUNDTRACK: The soundtrack comes off creepier than you think it should be. By the end of the movie, you realize why. The visuals aren’t remarkable — it looks like a late 80’s movie in New York. Nothing special here; not even hallucinatory/dream sequences were that fantastically shot. This movie is more about acting, then story; audiovisual is less important here than with some films. It’s kind of a psychological thriller masquerading as a comedy. It betrays your expectations, taking you places you didn’t expect. It’s a ride; take it.

Visual note: You’d see a nipple, but instead you’ll see a white pad covering her nipple. Do nudity or don’t do nudity, but please, Jennifer Beals, don’t *pretend* to be nude when you aren’t. Just makes you seem like a prudish actor trying to act sexy. It’s hard to believe when you’re wearing pasties.

BAD STUFF: For some: Nic Cage’s acting.

GOOD STUFF: For some: Nic Cage’s acting. A LOT of people are saying this is his best performance ever. Which is also kind of like saying it’s his worst performance ever. He’s a one dimensional douche of the highest magnitude in this movie. It’s friggin’ great. You will be laughing in disbelief. The story isn’t comedic, but the movie absolutely is. That’s the brilliance. And it’s all Nic Cage. There’s a scene where he angrily recites the whole alphabet! Cinema GOLD.

TRIVIA: This movie was depicted on the Conan O’Brien show as the second-lowest level on the Nic Cage Terror Warning System.

CONCLUSION: Holy fucking shit! A riot fest of laughter, until you realize this is actually a black comedy, and are left completely aghast. What an amazing ride. I deem this the best Nic Cage movie to ever watch with friends. I laughed some of the hardest laughs I’ve laughed at a movie all year — and was disturbed at a very high level, too. Much more so than cartoony Friday The 13th horror movies. This movie gets a strange rating – 5 stars, but only 7/10. You see, the movie isn’t perfect, but Nic Cage’s best overacting ever makes it an unparalleled experience.

RATINGS:

Clint: Netflix: 5/5 stars. IMDB: 7/10.

Carolyn: Netflix: 5/5 stars. IMDB: 7/10. “I rated it 5 stars because of a mixture of how ridiculous it was, and then how dark it turned… I thoroughly enjoyed it… It started out 4 stars because it just seemed like it was just so bad that it was ridiculous… but then when it changed direction, it got more psychologically creepy and that is what pushed it up to a 5 star for me.” [Clint’s take was that it was already a 5-star movie a bit before it got creepy, because of the ridiculous lengths Nic Cage went to act like he was losing his shit.]

Parthena: Netflix: 4/5 stars. IMDB: 7/10. “It was both ridiculous and hilarious and incredibly dark! I don’t even know whether they intended it to be a black comedy or a funny horror movie. I am kind of impressed he ate the roach for that role. This movie also actually managed to raise my appreciation of his acting ability, to act so completely fucked up and creepy and insane.”

Eli: Netflix: ?/5 stars. IMDB: ?/10.

The native public rating for this movie is: IMDB: 5.4/10, Netflix: 2.7/5 stars (Netflix‘s predicted rating for us was 3.1/5 stars).

RECOMMENDATION: Someone gave some good advice – Don’t walk into this expecting a horror movie or a vampire movie; it’s more of a character study. And that character is NICK CAGE LOSING HIS SHIT.

SIMILAR MOVIES: It’s a slight bit of a spoiler, but this reminds me a bit of [highlight for spoilers] American Psycho. It even slightly reminds me of the “think they are a superhero” subgenre of movies: the movie Special, Defendor, and to a lesser extent, the movie Super.

MOVIE QUOTES:

Peter Loew: [as he runs down the sidewalk of residential part of town] I’m a vampire! I’m a vampire! I’m a vampire!

Peter Loew: Alva, there is no one else in this entire office that I could possibly ask to share such a horrible job. You’re the lowest on the totem pole here, Alva. The lowest. Do you realize that? Every other secretary here has been here longer than you, Alva. Every one. And even if there was someone here who was here even one day longer than you, I still wouldn’t ask that person to partake in such a miserable job as long as you were around. That’s right, Alva. It’s a horrible, horrible job; sifting through old contract after old contract. I couldn’t think of a more horrible job if I wanted to. And you have to do it! You have to or I’ll fire you. You understand? Do you? Good.

INTERVIEW EXCERPT FROM HERE:

SJ: What’s been your favorite weird role to play?

NC: Yeah, there’s been a few now. It has been a while that I’ve been making movies now. I would have to say that in recent times, Bad Lieutenant was certainly a weird role, but weird more because he was contorted with chemicals both physically and mentally. I loved Peter Loew from Vampire’s Kiss. He was really weird because he went into the world of thinking he was a vampire.

SJ: I love Vampire’s Kiss too. What would Peter Loew think of the Twilight vampires?

NC: I don’t know. [Laughs] I don’t know how to answer that. I think Peter Loew’s interests were more Kafka-esque.

TRAILER:
Like most trailers, I would recommend that you NOT watch this before the movie. I’m not sure how convincing the trailer is, either. If you do watch it, try to forget it all before actually watching this movie:
(more…)

I'd rather be watching TV![IMDB link] [Not available on Netflix. Good luck finding it if you don’t have the right connections.]

PLOT SUMMARY: Same as the movie, except it doesn’t finish because it’s a pilot for a TV series, and thus the story was supposed to be stretched out a lot longer than the 2001 movie.

PEOPLE: David Lynch directs this (duh). The cast is actually more or less exactly the same as the movie.

QUIRKS: Same as the movie.

VISUALS: Much worse. This looks bad, even for an ABC series. Perhaps it was the worn VHS tape it was recorded on? Or the fact that ABC didn’t shoot in high def back then? Or the fact that it’s fullscreen instead of widescreen? Or the hissy, buzzy audio from the VHS tape. But overall… It just looked worse. Even Naomi Watts seemed to be about 5% less hot.

SOUNDTRACK: Angelo Badalamenti FTW.

GOOD STUFF: …Any good in this is overshadowed by how much better the actual movie is.

BAD STUFF: They didn’t even really get to the part where all the characters change and everything gets insanely crazy and confusing. No Naomi Watts masturbation. No lesbianism. The story never finishes (because it’s not supposed to). This is just kind of disappointing if you’ve already seen the movie. Some parts just came off as cheesy — like the cops talking to each other.

CONCLUSION/RECOMMENDATION: Completists … You’ve been warned. This is a good glimpse of what could have been, but does not provide any additional insight whatsoever to the experience of watching the later-produced movie version.

READ THIS LINK ON THE DIFFERENCES BETWEEN THIS AND THE MOVIE

“”All I know is, I loved making it, ABC hated it, and I don’t like the cut I turned in. I agreed with ABC that the longer cut was too slow, but I was forced to butcher it because we had a deadline, and there wasn’t time to finesse anything. It lost texture, big scenes, and storylines, and there are 300 tape copies of the bad version circulating around. Lots of people have seen it, which is embarrassing, because they’re bad-quality tapes, too. I don’t want to think about it.”” –David Lynch

RATINGS:
Clint: Netflix: 2/5 stars (vs 3/10 for the movie). IMDB: 5/10 (vs 8/10 for the movie).
Carolyn: Netflix: 3/5 stars. IMDB: 7/10. “I wasn’t disappointed. It was supposed to be a whole series… you had warned me about that, so I didn’t get my hopes up too high for a resolution.”

The native public rating for this movie is: IMDB: 8.4/10 — which is higher than the 8.0/10 rating of the actual movie! But that’s also comparing 120,000 votes to 330 votes. I’m sure if the 120,000 people who watched the movie then watched this pilot — that the pilot would get a lower rating. (more…)

 movie coverI'd rather be watching TV![IMDB link] [Netflix link]

PLOT SUMMARY: All-girl private school schoolgirls make all-boy private schools compete against each other for their prom dates. One school gets to take them to prom; the other won’t.

UNCOMFORTABLE PLOT SUMMARY (inspired by this): Manipulating whores.

PEOPLE: Alia Shawkat. Really the best reason to watch this movie. Hopefully you remember her as Maebe Funke, George Michael Jr.’s cousin, from Arrested Development. While Michael Cera was busy making Superbad, this is what Alia was busy making. Bummer.

The chick who plays Victoria from Twilight is in this.

QUIRKS: Low-grade highschool comedy.

VISUALS: Schoolgirls.

SOUNDTRACK: Not really.

WILHELM SCREAM: Yes! Surprisingly! Guy fell down in the hall at school and Wilhelm Screamed.

MORALS: Dudes are horny and will do anything.

POLITICS: Only gender politics.

GOOD STUFF: Making fun of rich kids, private schools, bad breakups.

BAD STUFF: Sometimes I felt like there were TOO many characters. It got confusing. But mostly, it just wasn’t that funny. I think the competitions should have been focused on a bit more. Alia Shawkat should have been used more.

Also… The ending was kind of stupid.

CONCLUSION: It had its moments… It was O.K. Really a waste of time though. Not recommended.

RATINGS:
Clint: Netflix: 2.4/5 stars. IMDB: 5.4/10.
Carolyn: Netflix: 2/5 stars. IMDB: 5/10.
The native public rating for this movie is: IMDB: 5.1/10 (pretty much what we rated it), Netflix: 2.9/5 stars (Netflix‘s predicted rating for us was 2.7/5 stars–Netflix was at least right in realizing that we’d like this one less than average).

RECOMMENDATION: Arrested Development completists … stay away.

SIMILAR MOVIES: Two competing schools? That’s never been a plot in any movie ever!

OTHER REVIEWS: TINY review. Substantive favorable review. (more…)

 movie coverI'd rather be watching TV![IMDB link] [Netflix link] “Tomorrow, mankind will know that mutants exist. They will fear us, and that fear will turn to hatred.”

UNCOMFORTABLE PLOT SUMMARY (inspired by this): Republicans lead to complications.

PEOPLE: Well… When I first saw the Professor X, errr, Charles Xavier character, I think I blurted something out like, “What a prick!” He just looked like a collar-popping douchebag. (This is before he became crippled.) I don’t know if he was the best casting choice, looks wise. James McAvoy (Wesley from the movie Wanted).

The guy they picked to play Magneto, errr, Erik Lehnsherr — was not as bad. He was played by Michael Fassbender (Stelios from the huge disappointment movie 300, Lt. Archie Hicox from Inglourious Basterds). But I still found him slightly unsettlingly incorrect. This may be that I’m suffering from trying to compare a real life actor to my rose-tinted nostalgic view of X-Men comics. But then I stop and think — I had no problem with the choices they made for them as old men in the “real” X-Men movies. Patrick Stewart and Ian McKellen were awesome choices! So maybe I SHOULD be irked here? Since this is a prequel of sorts, they are much younger here (it’s 1962), so they look a bit different. I get it. But they still didn’t quite remind me of the young versions of those characters from the X-Men comics. I’m probably being too purist or complainy here — but I think it took a tiny bit away from the movie.

Can’t believe they tried to cast Taylor Laughtner (Twilight werewolf) as Beast. The guy they picked — who was in Clash Of The Titans 2010 — was alright. Kelsey Grammar is still better though. But the change here made more sense, as this was pre-blue mutation Beast. This was nerdy, un-confidant Hank McCoy. He may as well have been one of The Venture Bros. at this point.

January Jones (Mad Men, Pirate Radio/The Boat That Rocked, American Wedding, Anger Management) is really hot, and was a pretty good Emma Frost — but I still feel like they should have used somebody with starker features (but just as hot).

Kevin Bacon was a really interesting choice for Sebastian Shaw, though. It’s another choice I never would have made in a million years. Shaw should be bigger. I tend to think he should be somebody more annoying and bulky looking — like Henry Rollins And His Neck Of DOOM.

QUIRKS: Superheroes. Based on the comic book. Duh.

VISUALS: Yup. Powers used, cool fights, awesome teleports, shapeshifting. Modern effects done nicely.

POLITICS: Something about governments employing people who deliberately try to start wars. The conspiracy theorists have always been right about this; but they focus too much on trying to prove the actual conspiracies. But it’s plainly obvious — without any necessary conspiracy theory being proven — that there are always parties who profit from war and destruction, and who will do whatever they can to make that happen. Why this is still up for debate with some people is beyond me.

Anyway — this intersected with the Cuban Missile Crisis and John F. Kennedy’s administration QUITE interestingly.

GOOD STUFF: Azazel was pretty badass. Some people were confused that they had taken Nightcrawler and changed him around (i.e. idiot Hollywood executive involvement). But I thought it obvious that he was Nightcrawler’s father (since Mystique was his mother), even though I didn’t remember ever running into Azazel in the comics.

BAD STUFF: Azazel was pretty badass, but he’s not actually part of the team he was in the movie.

Why is Moira McTaggart always modified or not included? They haven’t gotten her right since the 1990’s animated series! Okay, maybe they got her right in X-Men 3 (The Last Stand). I don’t know. I tried to forget that one. But she’s a mutant researcher, not a CIA agent! In the X-Men anime series (2011), they changed her name. In X-Men Evolution, I don’t think they had her at all.

“Darwin”? huh? Is this like “Spike” from X-Men Evolution? Another meddling character randomly added, which doesn’t exist in the comic? OH WAIT HE DOES, but c’mon, he wasn’t even in the comics ’til after the movies were coming out. You add a token black character, and [highlight for spoilers] if it’s in a cartoon he lives, but if it’s a movie, he of course dies first. Cliche.

No Cyclops? We get Havok instead? But they are bothers. And Cyclops has always been one of the 5 founding members. Okay, FINE.

AND WHY THE FUCK IS ANGEL A STRIPPER? WHY THE FUCK IS ANGEL A STRIPPER? Just so we can have Zoe Kravitz, who I didn’t give a shit about in It’s Kind Of A Funny Story OR Assassination Of A High School President … And still don’t give a shit about. I want my Warren Fucking Worthington back.

There’s lots of continuity “fuck ups” here. But hey, then you simply call it a “reboot” instead of a “preqeuel”, and everything’s just dandy, right?

I suppose.

I like cover songs.

I like re-interpretations of things.

I liked this.

I just would have liked it more if they had been truer to comic canon. That’s all.

But such a thing would never actually make me *hate* this.

It just makes me angry, because I like this so much, but they’ve changed it slightly. Like an ice cream sundae with an orange slice on top instead of a cherry. I want my cherry. Give me my cherry back. Yeah, I’ll eat it. I’ll like it. I’ll even enjoy the orange. But I would have preferred my cherry.

CONCLUSION: If you consider every X-Men movie (and cartoon) to be in it’s own universe (and not necessarliy the “Earth-616 universe” that is the “real” X-Men universe in ths comics), then the changes they made aren’t such an affront to the original canon. They changed things for the worse (Angel as a stripper? Really?) — but it’s still pretty damn hard to take something as awesome as the X-Men and make a bad movie out of it (though they really, really, really tried hard with X-Men 3:The Last Stand). So this was still awesome to see.

RATINGS:
Clint: Netflix: 4.4/5 stars. IMDB: 8/10.
Carolyn: Netflix: 4/5 stars. IMDB: 8/10.
Parthena: Netflix: 4/5 stars. IMDB: 7/10.
The native public rating for this movie is: IMDB: 8.0/10, Netflix: 4.3/5 stars (Netflix‘s predicted rating for us was 4.7/5 stars).

RECOMMENDATION: Worth seeing.

SIMILAR MOVIES: Duh. Other X-Men movies? (more…)

 movie coverI'd rather be watching TV![IMDB link] [Netflix link]

PEOPLE: Natalie Portman… AGAIN? Enough of her already. Everyone acts like she is the hottest woman alive. She’s just another hot brunette. I could name 50 hotter than her in just a few minutes.

Anthony Hopkins was a good Odin.

And of course Chris Hemsworth — Captain Kirk’s dad in the 2009 Star Trek reboot — as Thor.

And Kat Dennings (Nick And Nora’s Infinite Playlist, The House Bunny, The 40-Year-Old Virgin, Defendor) as Darcy. Why? I don’t know.

QUIRKS: Based on a comic book.

VISUALS: Solid high-budget visuals. Nice to finally see Asgard in a decent live-action production.

GOOD STUFF: The non-Earth shots look amazing.

BAD STUFF: What the hell was the point of Darcy (Kat Dennings)? Why does her character exist? Why is she even in the movie?

CONCLUSION: A decent addition to the tons of comic book based movies that have come out this past decade. Good effects, a decent (but not great) story, and some nice fights. What did you expect?

RATINGS:
Clint: Netflix: 4/5 stars. IMDB: 8/10.
Carolyn: Netflix: 5/5 stars. IMDB: 8.6/10.

I think Carolyn liked it more than me.

The native public rating for this movie is: IMDB: 7.3/10, Netflix: 4.1/5 stars (Netflix‘s predicted rating for us was 4.5/5 stars–the exact average of our 2 ratings).

RECOMMENDATION: A must-see for comic-completists.

SIMILAR MOVIES: Tons of superhero movies out lately.

MOVIE QUOTE: Thor: For the first time in my life, I have no idea what I’m supposed to do… (more…)

So, after a period of not using John’s Adventures Desktop Background Switcher for a few years, I started using it again. With 3 screens. I realized there are a lot pictures that I don’t really need to remember anymore.  I want to keep them on my harddrive, but I don’t want to see them.

So I rename them from .jpg, but keep the file.  The way I do this in my system is to “deprecate” the file, renaming it from whatever.jpg to whatever.jpg.deprecated.  The file is still on my harddrive, but no longer viewable because it doesn’t have the correct extension anymore.  This is the archivist’s way of deleting.  Some people use the .bak extension, but I tend to delete those automatically sometimes, so I want something different.

I knew I would be doing this many times in my life. I wanted an easy way to do this. Minimal keystrokes.  3 key presses to activate. 1 keypress to choose which of my 3 screens I am referring to. I would settle for nothing less.  The command I use is “pd.bat” for “picdep” or “picture deprecate” or “picture delete”, if you want to think of that way.  P, D, Enter.  Three key strokes. Then you pick a number for which screen it is on That’s what I want.

SETUP REQUIREMENTS

So here is the necessary scripts. You have to run TakeCommand / TCMD to run these, and have some implementation of perl such that you can run perl scripts at the commandline without prefixing them with “perl”. Otherwise, you’ve got one line to edit in my script.  If you’re using Windows, use Strawberry Perl. Cygwin’s perl should be fine, too. These are the only setup requirements.  If you’re not under windows, how the hell are you running TakeCommand scripts? Contact me immediately!

It’s one file, picdep.bat, which you would need to edit one part of: The SOURCE. It must point to your John’s Adventures Status.xml file.  The other 10 BAT files are just variou utility BAT files that I already use in my environment.

Also – my screens are in reverse order. There’s this whole perverse internal mapping that makes it so that when I have 3 screens, 1=3, 2=2, 3=1, and when I have 2 screens, 1=2, and 2=1. It was handy that TakeCommand had an internal automatic environment variable to tell me how many monitors I have. DisplayPort monitors disappear when you turn them off, which is VERY annoying.

Also, you can type “oops” or “undo” to undo what you’ve done when you do this.  Just a handy thing I do. I set an UNDOCOMMAND in the environment, if one can be generated automatically. It’s very handy for when you move things to an incorrect place. Just type “oops”.

It all looks like this:

20150626 - picdep.bat example with undo
picdep.bat:

@Echo OFF

::::: CONFIG:
 set DEBUG=0
 set STATUS_FILE=c:\Users\oh\AppData\Roaming\johnsadventures.com\Background Switcher\Status.xml
 call validate-environment-variable STATUS_FILE

::::: CREATE TEMP SCRIPT FILE:
 :: prepare
 call setTmpFile
 set TEMP_SCRIPT=%TMPFILE%.bat
 set WIDTH=%@EVAL[%_COLUMNS-1]

 :: tell
 call debugprint * STATUS_FILE=%STATUS_FILE%
 call debugprint * TEMP_SCRIPT=%TEMP_SCRIPT%

 :: do
 convert-background-switcher-log-to-env-vars.pl <"%STATUS_FILE%" >"%TEMP_SCRIPT%"
 call validate-environment-variable TEMP_SCRIPT
 type "%TEMP_SCRIPT%"
 call "%TEMP_SCRIPT%"

 :: validate variables for total pics, first pic filename, last pic filename (rest are too much work):
 call validate-environment-variable BGPIC_NUM_PICS_FOUND
 SET NUM_MONITORS=%BGPIC_NUM_PICS_FOUND%
 call validate-environment-variable BGPIC_%BGPIC_NUM_PICS_FOUND%
 call validate-environment-variable BGPIC_1

::::: CHOICE TIME:
 :: create set of valid keys to answer with
 unset /q INKEYMASK
 for /l %key in (1, 1,%BGPIC_NUM_PICS_FOUND%) gosub PrepareInputKeys %key%

 :: prompt
 cls %+ echo. %+ echo. %+ echos `` 
 color bright yellow on yellow %+ echo ***** CHOOSE ONE TO DEP: ***** 
 color white on black %+ echo.
 for /l %pic in (%BGPIC_NUM_PICS_FOUND%,-1,1) gosub PreparePic %pic%
 echos ``
 color bright yellow on yellow %+ echos ***** CHOOSE FROM:
 color bright red on black %+ echos %INKEYMASK ``
 color bright yellow on yellow %+ echo !!!!!!! ***** 
 color white on black %+ echos ``
 color bright green on black 
 
 :: deal with answer
 if "%1" eq "" goto :AnswerNotProvided
 if "%@REGEX[%1,%INKEYMASK]" eq "1" .and. "%@LEN[%1]" eq "1" (set CHOICE=%1 %+ goto :AnswerProvidedAlready)
 :AnswerNotProvided
 inkey /c /k"%INKEYMASK%" %%CHOICE 
 goto :AnswerNowRetrieved
 :AnswerProvidedAlready
 echos %1
 :AnswerNowRetrieved

::::: DO IT!!!:
 gosub processChoice %CHOICE%
 keystack Ctrl-Alt-N %+ REM Makes JohnsAdventures go to the next picture

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
goto :END


 ::::::::::::::::::::::::::::::::::::::::::::::::::
 :PrepareInputKeys [picNum]
 :: add the filenum to our valid choices
 set INKEYMASK=%INKEYMASK% %picNum%
 return
 ::::::::::::::::::::::::::::::::::::::::::::::::::

 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :adjustPicNumToUse
 :::: This is mostly a multi-monitor-numbred-incorrectly kludge.
 if "%DEBUG%" eq "1" echo * picNumToUse[0]=%picNumToUse [picnum=%picnum]
 goto :Adjust_%NUM_MONITORS%
 goto :PicNumChangeDone

 :Adjust_2
 if %picNumToUse%==1 (set picNumToUse=2 %+ goto :PicNumChangeDone)
 if %picNumToUse%==2 (set picNumToUse=1 %+ goto :PicNumChangeDone)
 goto :PicNumChangeDone

 :Adjust_3
 if %picNumToUse%==1 (set picNumToUse=3 %+ goto :PicNumChangeDone)
 if %picNumToUse%==3 (set picNumToUse=1 %+ goto :PicNumChangeDone)
 goto :PicNumChangeDone

 :Admitttedly, adjust_2 and adjust_3 are both the same thing, but with 2 and 3 substituted, and that's just num_monitors,
 :so they could be refactored into a single thingy. Sigh.

 :PicNumChangeDone
 if "%DEBUG%" eq "1" echo * picNumToUse[1]=%picNumToUse 
 return
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :PreparePic [picNum]
 :: fork parameter
 set picNumToUse=%picNum%
 gosub adjustPicNumToUse

 :: color to display filename in:
 set fg=%picNumToUse%
 set bg=0
 if "%picNumToUse%" eq "1" (set fg=3)
 if "%picNumToUse%" eq "2" (set fg=7)
 if "%picNumToUse%" eq "3" (set fg=6)

 :: display the filename
 color 0 on %fg% %+ echos ``
 color %@EVAL[%fg%+8] on %bg% %+ echo %picNumToUse%: %@NAME[%[BGPIC_%picNum%]]
 color %fg% on %bg% %+ echo %@REPLACE[%PICTURES%,,%[BGPIC_%picNum%]]|cut -c1-%WIDTH
 echo.
 return
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :processChoice [choice]
 color white on black 
 echo.
 set picNumToUse=%choice%
 gosub adjustPicNumToUse
 set filename=%[BGPIC_%picNumToUse%]
 set command=call dep "%filename%" 
 if "%DEBUG%" eq "1" set command=echo * IF NOT IN DEBUG MODE, WOULD HAVE DONE: %COMMAND%
 color bright blue on black 
 echo. %+ echo.
 echo - Your selected %choice%
 echo - PicNumToUse is %picNumToUse%
 echo - Filename is %filename%
 echo - Command is %command% 
 echo. %+ echo.
 color white on black

 %COMMAND%
 return
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:END
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

validate-environment-variable.bat:

@echo off

::::: USAGE:
    :: call validate-environment-variable VARNAME_NO_PERCENT [option]
    ::      where option can be "skip_validation_existence" to skip existence validation

::::: SEE IF IT IS DEFINED:
          set         VARNAME=%1
    :echo if defined %VARNAME% goto :Defined_YES
          if defined %VARNAME% goto :Defined_YES
          if ""  eq  %VARNAME% goto :Defined_NO

::::: REPOND IF IT IS NOT:
    :Defined_NO
        echo *** Environment variable %1 is not defined, and needs to be!!
        call alarm-beep
        set ERROR=1
        pause
        goto :END

::::: ADDITIONALLY, VALIDATE THAT IT EXISTS, IF IT SEEMS TO BE POINTING TO A FOLDER/FILE:
    :Defined_YES
    set VARVALUE=%[%VARNAME%]
                                                     set IS_FILE_LOCATION=0
    call   car>nul                                   %+ rem Lets us use carrot in next line
    if "1" eq "%@REGEX[^[A-Z]:,%@UPPER[%VARVALUE%]]" set IS_FILE_LOCATION=1
    call nocar>nul                                   %+ rem Restores original state
    if "0" eq "%IS_FILE_LOCATION%"                   (goto :DontValidateIfExists  %+ set  VARVALUEDRIVE=%@INSTR[0,1,%VARVALUE%])
    if "0" eq "%@READY[%VARVALUEDRIVE%]"             (goto :DontValidateIfExists)
    if "%@UPPER[%2]" eq "skip_validation_existence"  (goto :DontValidateIfExists)
    if exist "%VARVALUE%"                            (                         goto :ItExistsAfterall)
    if isdir "%VARVALUE%"                            (                         goto :ItExistsAfterall)
    if exist "%VARVALUE%.dep"                        (gosub :ItIsDeprecated %+ goto :ItExistsAfterall)
    if isdir "%VARVALUE%.dep"                        (gosub :ItIsDeprecated %+ goto :ItExistsAfterall)
    if exist "%VARVALUE%.deprecated"                 (gosub :ItIsDeprecated %+ goto :ItExistsAfterall)
    if isdir "%VARVALUE%.deprecated"                 (gosub :ItIsDeprecated %+ goto :ItExistsAfterall)
    call alarm-beep * Environment variable %@UPPER[%VARNAME%] appears to be a file location that does not exist: %VARVALUE%       


:::::::::::::::::::::::::::::::::::::::::::::::::::::::
goto :Past_The_End_Of_The_Sub-Routines
        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        :ItIsDeprecated 
            echo. %+ echo. %+ echo.
            color bright magenta on black
                echo * Environment variable %@UPPER[%VARNAME%] points deprecated file: 
                echo            "%VARVALUE%"
            color white on black
            beep 73 3
            beep 73 2
            beep 73 1
            pause
        return
        ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Past_The_End_Of_The_Sub-Routines
:::::::::::::::::::::::::::::::::::::::::::::::::::::::

:ItExistsAfterall
:DontValidateIfExists
:END

convert-background-switcher-log-to-env-vars.pl

use strict;

# SAMPLE INPUT:
#  <current_pictures>
#    <BackgroundSwitcherSettingsPicture position="scale" Info="20101125 - Thanksgiving - group picture - (by Chris) - 5215610791_4815d44cf2_o
Thursday, November 25, 2010" Name="20101125 - Thanksgiving - group picture - (by Chris) - 5215610791_4815d44cf2_o" Identifier="S:\WWWPICS\2010-2019\2010\2010_11_25_Thanksgiving at Britt's\20101125 - Thanksgiving - group picture - (by Chris) - 5215610791_4815d44cf2_o.jpg">S:\WWWPICS\2010-2019\2010\2010_11_25_Thanksgiving at Britt's\20101125 - Thanksgiving - group picture - (by Chris) - 5215610791_4815d44cf2_o.jpg</BackgroundSwitcherSettingsPicture>
#    <BackgroundSwitcherSettingsPicture position="scale" Info="20070324 - Chili Cook-off at Mandy &amp; Brad's - 116-1604 - Christian, dog
Saturday, March 24, 2007" Name="20070324 - Chili Cook-off at Mandy &amp; Brad's - 116-1604 - Christian, dog" Identifier="S:\WWWPICS\2000-2009\2007\2007_03_24_Chili Cook-off at Mandy &amp; Brad's\20070324 - Chili Cook-off at Mandy &amp; Brad's - 116-1604 - Christian, dog.jpg">S:\WWWPICS\2000-2009\2007\2007_03_24_Chili Cook-off at Mandy &amp; Brad's\20070324 - Chili Cook-off at Mandy &amp; Brad's - 116-1604 - Christian, dog.jpg</BackgroundSwitcherSettingsPicture>
#    <BackgroundSwitcherSettingsPicture position="scale" Info="20100803 1220 - Cape Cod - North Beach Island - there's nowhere safe from scrutiny - helicopter - IMG_1708
Tuesday, August 03, 2010" Name="20100803 1220 - Cape Cod - North Beach Island - there's nowhere safe from scrutiny - helicopter - IMG_1708" Identifier="S:\WWWPICS\2010-2019\2010\2010_07_30-2010_08_07_Cape Cod\2010_08_03\1_North Island part 1\20100803 1220 - Cape Cod - North Beach Island - there's nowhere safe from scrutiny - helicopter - IMG_1708.jpg">S:\WWWPICS\2010-2019\2010\2010_07_30-2010_08_07_Cape Cod\2010_08_03\1_North Island part 1\20100803 1220 - Cape Cod - North Beach Island - there's nowhere safe from scrutiny - helicopter - IMG_1708.jpg</BackgroundSwitcherSettingsPicture>
#  </current_pictures>

# NEEDED OUTPUT:
#	1) Environment variable sequence for each  filename  (BGPIC_1, BGPIC_2,etc)
#   2) Environment variable value    for total filenames (BGPIC_NUM_PICS_FOUND)

my $num_pics_found=0;
my $line;
my $picture_directory;
my $picture_filename;
my $NUM_PICS_FOUND=0;
my $VARNAME1;
my $VARNAME2;
my $IT;
while ($line=<STDIN>) {
	if ($line =~   /<current_pictures>/) { $IT="on" ; }
	if ($line =~ /<\/current_pictures>/) { $IT="off"; }
	chomp $line;

	if (($IT eq "on") && ($line=~/BackgroundSwitcherSettingsPicture/)) {
			    $picture_filename = $line;
			    $picture_filename =~ s/^(.*)(Identifier=")([^"]*)(".*)$/$3/;
			    $picture_filename =~ s/&amp;/&/g;
			if ($picture_filename eq "") { die("pic is empty"); }
				if ($ENV{DEBUG} > 0) { print "echo picture_dir[0] = $picture_directory \n"; }
				$picture_directory = $picture_filename;
				if ($ENV{DEBUG} > 0) { print "echo picture_dir[1] = $picture_directory \n"; }
				$picture_directory =~ s/[\\\/][^\\\/]*$//;	#remove the last slash and ever every non-slash after it, until the end of the line

			$NUM_PICS_FOUND++;
			$VARNAME1 = "BGPIC_" . $NUM_PICS_FOUND;
			$VARNAME2 = "BGDIR_" . $NUM_PICS_FOUND;

			print "set $VARNAME1=$picture_filename"    . "\n";
			print "set $VARNAME2=$picture_directory"   . "\n";
			print  "pushd      \"$picture_directory\"" . "\n";
			print "call validate-environment-variable $VARNAME1\n";
			print "call validate-environment-variable $VARNAME2\n\n\n\n";
	}
}
print "\nset BGPIC_NUM_PICS_FOUND=$NUM_PICS_FOUND\n";
print "call validate-environment-variable BGPIC_NUM_PICS_FOUND\n";

alarm-beep.bat:

@echo off

::::: SETUP:
    if not defined USERNAME (echo *** FATAL ERROR: USERNAME NOT DEFINED! %+ pause +% goto :END)

::::: FLASH WINDOW AND DISPLAY ERROR:
    window flash=2,8
    :window flash=4
    if "%1" eq "" goto :NoErrorToDisplay
        color bright white on red   %+ echos *** ERROR: %* *** 
        color        white on black %+ echo.
    :NoErrorToDisplay

::::: DON'T MAKE AUDIBLE ALARM IF SOMEONE IS NAPPING:
    if "%SLEEPING%" eq "1" goto :done_klaxoning
        gosub klaxon
        gosub klaxon
        gosub klaxon
        gosub klaxon
    :done_klaxoning





goto :END

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:klaxon
goto :klaxon%USERNAME%

    :klaxon
    :klaxonClint
        beep  2000 10
        beep  1000 10
        call sleep 1
    return

    :klaxonCarolyn
        beep  2666 2
        beep  1333 2
        beep  2666 2
        call sleep 1
    return

    :klaxonCarolynRejected
        beep  1333 2
        beep  2666 1
        beep  1333 1
        beep  2666 1
        beep  1333 1
        call sleep 1
    return
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:END
    :stop continuous flashing:
    :window flash=0
    :start non-continuous flashing that, in theory, goes until the window is in the foreground again, but, in reality, doesn't always if new commands are issued in a BAT file:
    window flash=2,8
    window flash=2,2
    pause


car.bat (this one is stupid but sometimesnecessary, leftover from 1990s laziness):

@echo off
setdos /C~
color bright blue on black
echo You can now use the carrot key for things other than command stacking.
color white on black

nocar.bat (this one is stupid but sometimesnecessary, leftover from 1990s laziness):

@echo off
setdos /c%=^
color bright blue on black
echo You now must use the carrot key for command stacking only.
color white on black

alarmbeep.bat:

call alarm-beep %*

settmpfile.bat:

call validate-environment-variable TEMP
call validate-environment-variable USERNAME
SET TMPFILE=%TEMP%\%_DATETIME.%USERNAME%.%_PID.%@NAME[%@UNIQUE[%TEMP]]
:DEBUG:  echo - TMPFILE is %TMPFILE

debugprint.bat:

if "%DEBUG%" ne "1" goto :END

        color green on black 

            echo %&amp;

        color white on black

:END

dep.bat:

@echo off
set                              NOQUOTES=%@STRIP[%=",%1]
set        LAST_FILE_DEPPED_OLD=%NOQUOTES%
set        LAST_FILE_DEPPED_NEW=%NOQUOTES.deprecated
if exist "%LAST_FILE_DEPPED_NEW%" call alarm-beep LAST_FILE_DEPPED_NEW of %LAST_FILE_DEPPED_NEW% already exists and should not! Why could that be, hmmmmmm??
ren      "%LAST_FILE_DEPPED_OLD%" "%LAST_FILE_DEPPED_NEW%"
if exist "%LAST_FILE_DEPPED_OLD%" call alarm-beep LAST_FILE_DEPPED_OLD of %LAST_FILE_DEPPED_OLD% *still* exists and should not! Might want to run 'handles'.
:: add this command to eligibility for undo/oops.bat:
set        UNDOCOMMAND=call undep
unset  /q  NOQUOTES

undo.bat:

@Echo OFF

if not defined UNDOCOMMAND goto :nothing

    :::::::::::::::::::::::::::::::::::
    :something
        :: If this pattern seems weird, it's because I want to unset UNDOCOMMAND *before* running it,
        :: in case we Ctrl-Break out of the command.  If we don't want it, it needs to go away. 
        :: Undo commands should only be run once. They should never be run twice.
        :: Therefore, we must unset UNCOMMAND *before* running it.
        :: Which neccesitates saving the value to a separate variable...
            set TMPCOMMAND=%UNDOCOMMAND%
            unset /q UNDOCOMMAND
                color bright red on black
            echos * Undo command is: ``
                color bright green on black
            echo %TMPCOMMAND%
                color white on black
            %TMPCOMMAND%
    goto :END
    :::::::::::::::::::::::::::::::::::

    :::::::::::::::::::::::::::::::::::::::
    :nothing
        echo. 
        color bright magenta on black 
        echo   * Nothing to undo!
    goto :END
    :::::::::::::::::::::::::::::::::::::::

:END

oops.bat:

@call undo %*

deprecate.bat:

@call dep %*

undep.bat:

call validate-environment-variable LAST_FILE_DEPPED_NEW
call validate-environment-variable LAST_FILE_DEPPED_OLD skip_validation_existence
ren  "%LAST_FILE_DEPPED_NEW%" "%LAST_FILE_DEPPED_OLD%" 

pd.bat:

@call picdep %*

UNNECESSARY BONUS: DP.BAT OVERLOAD TRICK. I have a dp.bat, and I kept running it instead of pd.bat. Sine I pre-load the number of the image i use (“dp 1″ for monitor 1, “dp 2″ for monitor 2, etc), I check if a number between 1 and NUM_MONITORS is entere, and then pass control over to pd.bat, the one I meant to use. I basically had to out-program my own brain’s frequent mistake. I do it insanely tightly, even checking %_MONITORS, so it will only work up to the number of monitors I have. “dp 3″ will only transfer control to pd.bat if my 3rd screen on i :)

(from dp.bat)

::::: IF WE PASS A SINGLE-DIGIT NUMBER, WE ARE PROBABLY TRYING TO CALL DP.BAT INSTEAD OF PD.BAT, SO LET'S JUST ALLOW THAT:
    SET ARGV=%1
    if "%ARGV%" eq "" goto :NoOverload
        :Overload
        if "%ARGV%" ne "" .and. "%@LEN[%ARGV%]" eq "1" .and. "%2" eq "" .and. "%@REGEX[[0-%_MONITORS],%ARGV%]" eq "1" (pd.bat %*)
    :NoOverload

Anyway. I just wanted to go through the motions of publishing some kind of functionality of mine, to start thinking about if I want to publish things, and how to do that in a more automated fashion as well — but without unveiling private information accidentally, and decoupling it from some of my more interesting anti-maintenance scripts. For instance, above, I gave one line that is:

SET STATUS_FILE=c:\Users\oh\AppData\Roaming\johnsadventures.com\Background Switcher\Status.xml

In reality, the code I use internally is much more complicated:

::::: FIND STATUS FILE: 
    call validate-environment-variable   APPDATA
    call validate-environment-variable   SERVER_OF_SCREEN_BACKGROUNDS
    call validate-environment-variable   DRIVE_C_%SERVER_OF_SCREEN_BACKGROUNDS%_VAR
    call validate-environment-variable %[DRIVE_C_%SERVER_OF_SCREEN_BACKGROUNDS%_VAR]
    set STATUS_FILE=%[%[DRIVE_C_%[SERVER_OF_SCREEN_BACKGROUNDS]_VAR]]:\Users\oh\AppData\Roaming\johnsadventures.com\Background Switcher\Status.xml
    call validate-environment-variable STATUS_FILE

But it assumes a certain kind of environment that only I have defined.

%[%[DRIVE_C_%[SERVER_OF_SCREEN_BACKGROUNDS]_VAR]] evaluates to
%[%[DRIVE_C_THAILOG_VAR]] which eventually evaluates to 
%HD240G                   which            evaluates to
C

…. This is all abstracted in such a way that works on every machine in my house regardless of what the actual drive letter ends up being (definitely NOT C for all the machines except 1).  Ask me about my harddrive driveletter environment and reverse-lookup variables sometime.  I even have an environment variable called %THE_ALPHABET% which I use frequently.

Follow

Get every new post delivered to your Inbox.

Join 655 other followers