Computers, the things I have spent my entire life specialising in, make me profoundly sad.
20 stories
·
1 follower

See the sky: Thoru Yamamoto's Christmas story, for Playdate

1 Share

Thoru Yamamoto (Japanese: 山本徹 or とーるやまもと), born 1955, is a Japanese multimedia artist. Over the years he has released work in many formats including, but not limited to: magazine illustrations, HyperCard decks, interactive CD-ROMs, printed books, websites, digital stickers, and videos. He is perhaps best known for his story books distributed as HyperCard stacks and his unique 1-bit art taking advantage of the limitation imposed by early Apple Macintosh computers.

See the sky is one such story book, a Christmas present released in 1992 as a series of HyperCard stacks. In 1996 it was re-released in a remastered form: as an interactive CD-ROM, produced using Macromedia Director, which added ambient music and navigation to the original images. Also released in 1996 was a printed book of the story, presented as 3 images per page. Finally, in 1999 a CD-R of the combined HyperCard stacks was released.

A new edition for 2023

I’ve created a new version of See the sky for Playdate. The remastering/remaking/porting process was quite involved, so I’d like to detail it in this blog post.

See the sky

Extracting the original images

I used HyperCardPreview to export the assets from the original HyperCard stack. I did this back in October 2022, and had to use an old MacBook Pro running Mojave to do it. Just today, whilst writing this blog post, I figured out that HyperCardPreview will refuse to open stacks if the app Stacksmith is also present on your Mac!? As soon as I deleted Stacksmith, HyperCardPreview opened the files just fine. It seems to be some sort of issue with them competing for control of the com.apple.hypercard.stack uti. Anyway, See the sky consists of just over 500 full screen card images. For other stacks, you might get a combination of background images and card images that would need re-compositing - it really depends on the stack.

Thoru told me that when he first started out with HyperCard he wasn’t aware of the benefits of using a common background card and different foreground cards, which is why See the sky consists of only foreground cards. For this reason it was very difficult for him to upload the files, which were rather large for the time. Later productions would make more effective use of background cards to keep the file size as small as possible.

Implementing a viewer

My way of developing is to think of the goal as clearly as possible, then get something up and working as quickly as possible, and after that iterate and refine until I reach the goal. So it was easy to create a sort of slideshow viewer for the images, keeping track of the current image and allowing navigation forwards and backwards with A and B buttons, loading the next/previous image as required. Pretty quickly it became apparent that I could not simply display each screen centred as important content would frequently be out of view.

Adjusting each screen

So I added a table to store offsets for each screen. But defining these manually would be very time consuming so I set about creating an interactive way to do this. I added a debug mode in which I map the d-pad (cursor keys) to move the current image up/down/left/right, along with the ability to save the offsets table to a file. This was a huge productivity boost! But I was still finding it quite a repetitive task, so I added further key mappings so I could use the numbers on the numeric pad of my keyboard to quickly set the offsets for a screen to each of the 8 compass directions, or centred. This increased productivity even more. At this point I found myself setting the same offsets for a screen as the previous screen, so I added to more keys to copy the offset from the previous/following screen. All in all this made setting offsets for 500 screens quick and easy. When I was happy I copied the offset table into the code and that became the default values.

This is all to say that whilst the original Macintosh resolution of 512×342 does not match the Playdate’s resolution of 400×240, See the sky still works on Playdate because every screen has been manually repositioned to keep the important elements in view, a process similar to the “pan and scan” adaptation of movies for 4:3 TVs.

HyperCard look and feel

The most recognisable feature of many HyperCard stacks are the crossfades between screens. This was essential to the experience. Thoru even took advantage of the crossfade in certain scenes by changing only small elements from screen to screen so that the crossfade turned into a sort of stop-motion animation effect.

To achieve the crossfade on Playdate I do the following:

  1. Before the transition I capture the current screen using playdate.graphics.getWorkingImage()
  2. Next I make this image into an overlay, in my case I’m assigning it to a “fade” sprite
  3. Behind the fade image/sprite I load in the requested next/previous image
  4. Finally I use playdate.graphics.image:fadedImage(alpha, Bayer8x8) to fade out the overlay, which happens over several frames and results in the image becoming more and more transparent, eventually disappearing completely

So the crossfade is simply one image fading away and the image behind it slowly being revealed. Magic.

I also added the ability to have slower or faster crossfades depending on your preference. I do this by adjusting the refresh/frame rate of the game itself, rather than skipping any of the fade.

The only other feature I needed to add was a flashing capability. This happens at a handful of places in the story to various degrees, mostly there are a few flashes in places but in one places there are 10 flashes. Given that people with photosensitive epilepsy won’t want to see the screen flash I honour the Playdate “reduce flashing” system setting. If the user has that toggled on the story will only flash once at each instance. The speed of the flashing is quite slow, and not tied to the speed of the crossfade.

Page turn sounds are recordings of the sounds defined in the original HyperCard stack, another essential part of the experience. Thoru describes these sounds as “pipo papo” and that’s how I label it in the settings. I also provide the option to use a more realistic page turn sound, or switch off page turn sounds entirely.

Chapters

I added chapter navigation which unlocks as you go through the story, in a similar way to the 1996 CD-ROM release of See the sky. This means you can revisit any previous chapter, and once you’ve reached the end of the story you’ll have access to all chapters. If you want to reset that progress, for example to let somebody else enjoy the story from the beginning and remove any temptation for them to skip ahead, you can delete the “game data” through Playdate Settings. Chapter title cards are only shown when using the chapter navigation, and not whilst going through the story, I do this by injecting temporary images into the crossfade system.

Progress

I also added a progress bar, shown when you bring up the menu. It’s a vertical bar drawn in the centre of the screen between the menu and faded game image. The bar itself is dithered at 50%, and onto it I draw white markers for each chapter position. The current position is shown by drawing a solid white bar from the bottom of the screen to the current position. This means that the bar “fills” with white from the bottom as you progress through the story.

Progress bar

Experiments with sound

The 1996 CD-ROM release of See the sky has ambient music, but Thoru and myself couldn’t figure out the rights to this so it could not be used. I had done the work, just in case, so I’ll mention it here.

I extracted the audio from the Director files using a technique I’ve previously blogged about. I then converted the audio files to 44.1KHz 16-bit WAV files, and used Ocen Audio to remove the base noise from those files. Basically, you select a part of the audio that contains only noise and it removes this from the entire audio file. Doing this without first upsampling the audio meant it did not work as well or at all. After the de-noising, I converted to ADPCM using adpcm-xq which gave files half the original size at higher quality and with lower noise levels.

Experiments with music

After we realised we would not be able to use the ambient music, I looked at using completely different music, turning to the catalogue of watson @ MusMus. I found a piece of music for each chapter of the story and extracted loops using PyMusicLooper. I then tweaked the loops by adjusting their start point by moving a section of audio from one end to the other so the loop began with the part of the audio I thought sounded best. I use TwistedWave for most sound editing like this. Thoru really liked the music itself but was of the opinion that no music would be more honest to the original release. I can’t argue with that reasoning. Feel free to play your own choice of music whilst experiencing the story.

Optimising for size

The final app binary is tiny but the images are adding up to about 3MB. That’s fine, but I wondered how I might be able to optimise them. I used imagemagick’s montage command to stitch the images together into a grid. In Playdate land we call this an image table, but you might refer to it as a sprite sheet. This reduced the size of 500 separate card images from 3MB to a single image of just 2MB. A nice saving!

The 500 screen image table occupies 10.5MB RAM, so about two thirds of the available RAM on Playdate. Side-effects of bundling 500 screens as single file are a short delay on loading for users, a short delay on building for me as a developer, and the need to regenerate the single image if any of the images it contains are changed.

At this point, I could have stopped. I should have stopped. But, of course, I didn’t.

I’ve often wondered how the dimensions of a sprite sheet grid affect the file size when saved as a compressed format such as PNG. The extreme examples in this case would be having a tall grid of 1×504 or a wide grid of 504×1, and in between we have some exact multiples. I generated one sprite sheet for each grid size and here found that for this set of images a grid of 42×12 resulted in the smallest image file size a saving of a further 4% or so. The savings are similar when converted to the Playdate pdt image format.

And that’s it. The final size of this new version is smaller than the original, mostly due to the image optimisation. I could make it even smaller by exporting all the final crops of the screen images, create a new image table of those, displaying them with zero offset. But I decided to not go there!

The result

You can download See the sky for Playdate from my page on itch.io, and it is a free download. A present from Thoru and myself. With best wishes for a Merry Christmas.

https://gingerbeardman.itch.io/see-the-sky

  • 500 screens
  • 10 chapters
  • ~ 30 minute experience
  • Quick navigation menu unlocked as you go
  • Position is remembered between launches
  • Settings for sound and crossfade speed

Credits

  • Created by Thoru Yamamoto
  • Edited by Matt Sephton
  • © 1992 Thoru Yamamoto

Further reading

Birthday blog post?

Read the whole story
maff
123 days ago
reply
Dundee, Scotland
Share this story
Delete

Infocom’s ingenious code-porting tools for Zork and other games have been found

1 Share
Zork running on a Commodore 64 at the Computerspielemuseum in Berlin, Germany.

Enlarge / Zork running on a Commodore 64 at the Computerspielemuseum in Berlin, Germany. (credit: Marcin Wichary (CC by 2.0 Deed))

The source code for many of Infocom's foundational text-parsing adventure games, including Zork, has been available since 2019. But that code doesn't do anything for modern computers, nor even computers of the era, when it comes to actually running the games.

Most of Infocom's games were written in "Zork Implementation Language," which was native to no particular platform or processor, but ready to be interpreted on all kinds of systems by versions of its Z-Machine. The Z-Machine could be considered the first real game development engine, so long as nobody fact-checks that statement too hard. Lots of work has been done in open source realms to create modern, and improved, versions of these interpreters for pretty much every device imaginable.

The source code for these Z-Machine implementations (virtual machines, in today's parlance) appeared like a grue from the dark a few days ago in a GitHub repository owned by Andrew Plotkin. Plotkin, a major figure in modern and classic text adventure realms (and lots in between), details what they are and how he found them in a blog post on his site.

Read 5 remaining paragraphs | Comments

Read the whole story
maff
149 days ago
reply
Dundee, Scotland
Share this story
Delete

Congrats To Elon Musk: I Didn’t Think You Had It In You To File A Lawsuit This Stupid. But, You Crazy Bastard, You Did It!

1 Comment

So, yesterday we covered Elon Musk’s ridiculous censorial threat to sue Media Matters “the split second the court opens on Monday.” Of course, as we noted, you can file lawsuits 24/7. And yet, as the courts opened on Monday, there was nothing. As mentioned in the original post, I was away from internet access for most of Monday, and when I finally got back online I was told there was still no lawsuit.

But, then, on Monday evening, the lawsuit finally came, and it was glorious. Gloriously stupid.

Honestly, this feels like what you get when you have a rich but legally ignorant dude who announces on a Friday that there will be a lawsuit on Monday and finally finds some terrible lawyers who are actually willing to file something just to live up to that promise.

It’s not a good lawsuit. It’s barely even a lawsuit at all.

Let’s start at the top.

Problem 1: It was filed in Texas federal court, even as the complaint admits that exTwitter is a Nevada corporate entity, based in California, and Media Matters is a D.C.-based entity. The lawsuit barely makes any effort at all to justify the venue.

Indeed, what little justification they do present is not at all how any of this works. To get jurisdiction in Texas for non-Texas parties, they have to show that someone in Texas was involved, that the laws were violated by parties while they were in Texas, or were somehow directed at Texas parties. The complaint doesn’t even make an effort to do any of that. It just says “a substantial part of the events giving rise to the claims occurred herein.” But that’s not how any of this works.

Of course, we all know the real reason it was filed in a Texas federal court. While Texas has a pretty good anti-SLAPP law, the 5th Circuit had deemed that you can’t use it in federal court. If the lawsuit had been filed in the 9th Circuit, where exTwitter is, then California’s (or Nevada’s) anti-SLAPP law would apply.

Problem 2: The lawsuit flat out admits that Media Matters’ reporting was accurate. It makes a big deal of claiming that Media Matters “manipulated” things and “manufactured” the controversy but… still admits that Media Matters used the platform, and saw what it saw, and reported on it.

Media Matters executed this plot in multiple steps, as X’s internal investigations have revealed. First, Media Matters accessed accounts that had been active for at least 30 days, bypassing X’s ad filter for new users. Media Matters then exclusively followed a small subset of users consisting entirely of accounts in one of two categories: those known to produce extreme, fringe content, and accounts owned by X’s big-name advertisers. The end result was a feed precision-designed by Media Matters for a single purpose: to produce side-by-side ad/content placements that it could screenshot in an effort to alienate advertisers.

But this activity still was not enough to create the pairings of advertisements and content that Media Matters aimed to produce.

Media Matters therefore resorted to endlessly scrolling and refreshing its unrepresentative, hand-selected feed, generating between 13 and 15 times more advertisements per hour than viewed by the average X user repeating this inauthentic activity until it finally received pages containing the result it wanted: controversial content next to X’s largest advertisers’ paid posts.

Thus, on page 3 of the complaint, Musk’s newfound lawyers (not from a “BigLaw” firm like he usually uses) tell you that Media Matters did use the platform and did, in fact, see what it reported it saw. It’s just that exTwitter (i.e., Musk) doesn’t like how they they portrayed their usage of the platform.

Notably, the original article never made any claims suggesting that everyone was seeing ads on neo-Nazi content. They just said they saw these ads appearing next to neo-Nazi content, and the complaint admits as much.

So the complaint is “Media Matters set up an account that followed neo-Nazis, which we allow, and found ads next to that content, which we allow, but we’re mad because Media Matters should have followed other people instead.” That’s… not a cause of action.

Problem 3: The lawsuit admits that its real complaint is that it disagrees with how Media Matters framed the story. But, and I know Musk still can’t seem to wrap his brain around this rather important fact: part of free speech and a free press is that you don’t get to dictate how others cover stories about you.

You’d think that a “free speech absolutist” would get that. But Elon Musk appears to have deeply censorial instincts rather than free speech ones:

Media Matters omitted mentioning any of this in a report published on November 16, 2023 that displayed instances Media Matters “found” on X of advertisers’ paid posts featured next to Neo-Nazi and white-nationalist content. Nor did Media Matters otherwise provide any context regarding the forced, inauthentic nature and extraordinary rarity of these pairings

So, yeah, you might also notice that this is Musk admitting that “Neo-Nazi and white-nationalist content” appear on exTwitter and that Media Matters did, in fact, see ads appear next to that content. Great work.

Problem 4: The lawsuit admits that not just Media Matters saw these ads next to neo-Nazi content, even if not that many others saw those ads.

And in Apple’s case, only two out of more than 500 million active users saw its ad appear alongside the fringe content cited in the article—at least one of which was Media Matters

Again, throughout the complaint, it admits exactly what Media Matters reported.

Its only complaint is it doesn’t like how Media Matters reported it. But the 1st Amendment protects such editorial choices. As should any self-respecting “free speech absolutist.”

Problem 5: The lawsuit attacks Media Matters for… using exTwitter’s system the way exTwitter allowed them to. It claims Media Matters “manipulated” the platform, but then describes how it used it in a perfectly reasonable manner, and that exTwitter served up the ads. Media Matters didn’t make exTwitter show these ads. ExTwitter just showed them.

Literally, the complaint admits that exTwitter’s systems worked exactly the way they were designed to, showing ads on content that someone followed, and if someone follows neo-Nazis, then ads are likely to show on that content.

First, Media Matters set out on their attempt to evade X’s content filters for new users by specifically using an account that had been in existence for more than thirty days.

Next, Media Matters set its account to follow only 30 users (far less than the average number of accounts followed by a typical active user, 219), severely limiting the amount and type of content featured on its feed. All of these users were either already known for posting controversial content or were accounts for X’s advertisers. That is, 100% of the accounts Media Matters followed were either fringe accounts or were accounts for national large brands. In all, this functioned as an attempt to flood the Media Matters account with content only from national brands and fringe figures, tricking the algorithm into thinking Media Matters wanted to view both hateful content and content from large advertisers.

Even this did not produce Media Matters’ intended result. An internal review by X revealed that Media Matters’ account started to alter its scrolling and refreshing activities in an attempt to manipulate inorganic combinations of advertisements and content. Media Matters’ excessive scrolling and refreshing generated between 13 and 15 times more advertisements per hour than would be seen by a typical user, essentially seeking to force a situation in which a brand ad post appeared adjacent to fringe content.

So, now… going on exTwitter, following neo-Nazis that Musk refuses to ban, and following advertisers is manipulative? As is “reloading” your feed? Under what theory?

Problem 6: It claims Media Matters “defamed” exTwitter, but then doesn’t include a defamation claim. The lawsuit mentions defamation three times, but not in the claims. So it repeatedly pretends that it’s arguing defamation, even though it’s not:

On November 16, 2023, Media Matters published a false, defamatory, and misleading article with the headline, “X has been placing ads for Apple, Bravo, IBM, Oracle, and Xfinity3 next to pro-Nazi content,” claiming that X was responsible for anti-Semitic content being paired with X’s advertisers’ paid posts.

If it was actually defamatory, Musk would have sued for defamation. The problem was that it was not. So calling it defamatory and not alleging defamation in the claims kinda makes it clear that they’re really just suing because Musk is mad about the article.

Honestly, it reads like the poor lawyer who had to do this rush job thought he was filing a defamation claim, and so added in a few claims of defamation, then a more senior lawyer realized before filing that there’s no fucking way any of this is even remotely defamation, but no one bothered to take out the language about defamation.

Now, there is a “business disparagement” claim and that’s kind of like defamation, but… even harder to show? And it still requires proving actual malice, which this complaint doesn’t even attempt to do. It does do a “Media Matters hates conservatives,” but that’s not how actual malice works.

Problem 7: Other than the “business disparagement” claim, the only thing they can sue over are nonsense throw-in causes of action: “interference with contract,” and “interference with prospective economic advantage.”

These are the kinds of claims that terrible lawyers often include with defamation claims to try to make the lawsuit more scary, and they’re usually dismissed with the defamation claims when judges say “um, you’re really just trying to say defamation in another way here.”

None of the causes of action make any sense here. What Media Matters did was find these ads and accurately report what it found. If that causes advertisers to bail, that’s not “interference with a contract.” It’s… just reporting. If accurate reporting causes someone to end a business relationship, you don’t get to sue over it.

Problem 8: The lawsuit names Media Matters employee Eric Hananoki as a defendant and then never makes a single claim against him. It mentions (mostly in footnotes) that Hananoki has written articles critical of Musk, including the article in the complaint. But, um, if you file a lawsuit against a particular party, you have to say in the lawsuit how that party actually violated the tort in question. And the lawsuit doesn’t even bother trying.

Honestly, Hananoki has the easiest “motion to dismiss for failure to state a claim” argument ever. Normally, you have to respond to the claims made about you and how, even if true, you didn’t violate the law in question. Hananoki doesn’t even need to do that. He can just point out that the lawsuit literally makes no claims against him.

Problem 9: The lawsuit insists advertisers bailed because of this article, but conveniently leaves out the fact that Elon Musk endorsed an antisemitic conspiracy theory a day earlier, and has been promoting bigoted nonsense content for months now. Also, advertisers are free to leave if they want.

Finally, this isn’t exactly a “problem” with the lawsuit, but I’ll just note the conflict in two separate statements:

X Corp. and Elon Musk are a critical Media Matters target because X is the most prominent online platform that permits users to share all viewpoints, whether liberal or conservative, and Mr. Musk is the most prominent voice on the platform and a passionate supporter of free speech.

That’s in paragraph 41 on pages 11 and 12. On Page 14 in the prayer for relief we get this:

A preliminary and permanent injunction ordering Defendants to immediately delete, take down, or otherwise remove the article entitled “As Musk Endorses Antisemitic Conspiracy Theory, X Has Been Placing Ads for Apple, Bravo, IBM, Oracle, and Xfinity Next to Pro-Nazi Content From Its Web” from all websites and social media accounts owned, controlled, or operated, directly or indirectly, by Defendants;

So… within the span of about 2 to 3 pages we are told that Elon Musk and exTwitter are passionate supporters of free speech that allow “all viewpoints” to be shared and that Musk is filing this lawsuit to force Media Matters to take down speech that he admits is absolutely true, but where he doesn’t like how they portrayed things.

Anyway, kudos to Elon. This really takes stupid SLAPP suits to incredible new levels. I didn’t think you’d be able to find a lawyer who would file a lawsuit so stupid, that makes you look this ridiculous, but you did it. Just like people doubted your ability to shoot rockets into space or make popular electric vehicles, I should not have doubted your ability to file absolutely nonsense SLAPP suits that are this laughable.

Read the whole story
maff
150 days ago
reply
god i hope he ends up paying damages for filing such a frivolous and baseless suit
Dundee, Scotland
Share this story
Delete

If You Kill Two People In A Car Crash, You Shouldn’t Then Sue Their Relatives For Emailing Your University About What You Did

1 Share

Holy shit.

So, in 2021 there was a car accident in Atwater California that killed a married couple, Pam and Joe Juarez. According to police reports at the time, a 20-year-old Stanford student, King Vanga, struck their car from behind. Here’s how ABC 30 reported on the matter:

The California Highway Patrol says Pam, 56, and Joe, 57, were driving west on Santa Fe Avenue approaching Spaceport Entry in Atwater.

They were just minutes away from their son’s house.

Officials say that’s when 20-year-old King Vanga collided into the back of their car at a high rate of speed.

The Juarez’s spun out and their vehicle caught fire.

Vanga overturned into a fence.

The Juarez’s died at the scene.

Vanga had minor injuries was booked into the Merced County Jail for driving under the influence of drugs and/or alcohol and vehicular manslaughter.

The filed police reports claim that the officers believed Vanga was under the influence of alcohol, saying they smelled alcohol, though they were unable to administer a field sobriety test. He was still charged with a DUI, along with the vehicular manslaughter charges.

Image

Vanga has since sued the police, claiming that the police violated his rights by attacking and tasing him, and that he “never drinks” and therefore the DUI charges are bogus. A blood test that was analyzed later by the California DOJ found that he had no traces of alcohol in his blood at the time, so it is entirely possible that he wasn’t actually drunk. Whether or not he was actually drunk or not seems like a fairly minor point in all of this, given that two people died in an accident where Vanga drove into the back of their car at high speed.

The family of Pam & Joe Juarez were understandably upset by their death, and a few family members sent emails to Stanford to alert them to what had happened, and alert them that they did not feel that Vanga had live up to Stanford’s code of conduct.

Vanga, somewhat incredibly, has decided to sue the family members of the couple he killed, claiming that their emails to Stanford were defamatory, because (a) they mention the DUI based on the police report and public reporting and (b) some of them said he “murdered” their family members, rather than merely killing them.

Let me repeat that, because it is quite incredible. It is undisputed that Vanga rear-ended another car, leading to the death of the two people in that car. Some of family members of the dead couple sent understandably angry letters to Stanford, the university Vanga attended. And now Vanga has sued those family members for relying on a potentially inaccurate police report, and using the word “murder” for what he did.

This is the SLAPPiest of SLAPP suits.

And now one of the defendants, Priscilla Juarez (a daughter-in-law of the deceased couple), has brought on Ken “Popehat” White to represent her against this insult-to-injury lawsuit. White has now filed an anti-SLAPP motion on Juarez’s behalf that calls out just how crazy this situation is:

Plaintiff King Vanga, a privileged student at an elite university, killed Defendant Priscilla Juarez’s in-laws and is now suing her for privately complaining about it. He is doing so in an overt effort to extort from her a promise not to encourage his criminal prosecution. This is a shocking and contemptible abuse of the justice system. Fortunately, the system that lets King Vanga abuse and harass his victims also provides a remedy – California’s robust anti-SLAPP statute. Plaintiff’s First Amended Complaint (“FAC”) is a classic SLAPP, and this Court should dismiss it and award Ms. Juarez her fees and costs.

It’s undisputed that King Vanga was in a car accident that killed Jose and Pamela Juarez, Ms. Juarez’ husband’s parents. It’s also undisputed that Merced County charged Plaintiff with vehicular manslaughter and DUI causing great injury, and that the press widely reported that Plaintiff was intoxicated at the time of the accident. Based on the criminal charges against Plaintiff, the press coverage she reviewed, and statements by police officers on the scene, Ms. Juarez wrote an email (“the Email”) to Stanford University stating her opinion that Plaintiff had violated its honor code, based explicitly on the criminal charges and press coverage. There’s no indication that Stanford disciplined Plaintiff. Instead, Plaintiff got a copy of the Email through a FERPA request, used it as an opportunity to sue Ms. Juarez for defamation, and made an extortionate demand that he would not drop the suit unless Ms. Juarez stopped talking about him killing her in-laws and stopped pushing for his prosecution.

California’s anti-SLAPP statute protects Ms. Juarez from King Vanga’s loathsome and immoral abuse of process. Ms. Juarez easily meets the first prong of the anti-SLAPP test, as her Email was sent in relation to an ongoing judicial proceeding and was an exercise of her right to free speech on an issue of public interest. But Plaintiff cannot carry his burden of showing a probability of prevailing. Most of the Email was Ms. Juarez’ overt opinions and conclusions, and was absolutely protected by the First Amendment. To the extent Ms. Juarez repeated factual allegations in the criminal complaint against Plaintiff and the extensive news coverage of the accident, Plaintiff cannot show that Ms. Juarez was negligent to rely on it.

Such a rule would mean that crime victims could never comment on crimes based on criminal charges and news coverage. Ms. Juarez’s statement is also protected by California’s common interest privilege. Finally, Plaintiff cannot provide admissible evidence of damages resulting from the Email. The Court should grant this Motion, dismiss this utterly shameful FAC, and award Ms. Juarez her attorney fees and costs.

There’s much more in the anti-SLAPP motion to strike. It details how Priscilla not only read the news about this, which accurately reported what Vanga was charged with, but also that family members had spoken with the arresting officer, who told them of his belief that Vanga was intoxicated. Whether or not that turned out to be true, it certainly shows that Juarez had a justification for saying what she said.

It also highlights how the first time she heard about Vanga denying being intoxicated was when he filed his lawsuit against the police, which was long after she had sent her email to Stanford.

And then there’s this:

After filing the lawsuit, Plaintiff’s counsel sent Mrs. Juarez an email offering to drop the lawsuit if Ms. Juarez agreed “not to make or publish any disparaging statements about Mr. Vanga in the future” and “not to encourage the criminal prosecution of Mr. Vanga, including by communicating with government officers or protesting at any conference, hearing, or trial involving Mr. Vanga.” (Juarez Decl. at ⁋21; Exhibit 9). Mrs. Juarez did not agree to abandon her First Amendment right to advocate for her in-laws.

Gross.

Again, it is entirely possible that the cops were wrong in believing Vanga was intoxicated. We’ve covered many cases on this very site about cops being wrong. So if Vanga wants to sue the cops, more power to him.

But suing the family of the people who died because he rear-ended their car, for sending a private email to Stanford (over which the University took no action), based on public reporting and what officers on the scene said, is fucking crazy. It’s yet another example of abusing the courts to silence someone, and in this particular case adding real insult to actual injury.

The court should grant the motion to strike and make him pay through the nose for this gross abuse of the legal process to silence speech.

This is why we have been arguing for years for more and better anti-SLAPP laws. Luckily, California has a strong one. But many states do not. And even in many states that do have one, it cannot apply in federal court. We need every state to have a strong anti-SLAPP law and we need a federal anti-SLAPP law.

Read the whole story
maff
150 days ago
reply
Dundee, Scotland
Share this story
Delete

Framework now offers Steam-Deck-sized SSDs, just because it can

1 Comment
Steam Deck shown in Framework's blog post, with USB drives nearby

Enlarge / Framework's blog post shares this Steam Deck image to illustrate its commitment to housing gigantic Steam backlogs. (credit: Framework)

Steam Deck and Microsoft Surface owners looking to get more SSD storage than is typically offered (and for less money) have a new, unexpected source: Framework, the repairable laptop company.

Seeing the need for reputable vendors of smaller-size M.2 drives, the company decided to "add one more line item" to its typical Western Digital drive order. As such, the company has started offering a 2TB M.2 2230 drive for $300 in its US and Canada stores. As of this writing, the drives are sold out, but you can sign up to be notified when they're back in stock.

Read 2 remaining paragraphs | Comments

Read the whole story
maff
431 days ago
reply
Framework seems to be going from strength to strength. I really hope they keep it up.
Dundee, Scotland
Share this story
Delete

Texas SWAT Team Destroys Home While Searching For The Wrong Person At The Wrong Address

1 Comment and 2 Shares

To be sure, SWAT operations are pulled off flawlessly around the nation every day. The right addresses are hit. The right windows are smashed. The right doors are destroyed. The correct perps are arrested. The proper people are filled with bullets if needed, etc.

But, far too often, they go wrong. Often more concerned with delivering an awesome show of force than handling things professionally, SWAT teams do all the wrong things: wrong houses, wrong people, senseless destruction of people’s homes, extended standoffs with houses containing nothing but the family dog or, in one case, a house containing nothing but nothing.

When it’s all said and destroyed, the invaders leave. Those who remain are left to clean up the mess created by the cops, whether or not officers actually managed to get their man. Here’s another data point for the case against violent entries by law enforcement, provided this time by the Galveston Police Department. (via FourthAmendment.com)

Members of an island family assert they were injured and traumatized and their house wrecked by a SWAT team searching for a homicide suspect who wasn’t there and who was later cleared of involvement in a shooting death.

The police department argues the team was only following its training when it raided a house in the 5300 block of Avenue O, shattering windows with “flashbang” devices, kicking in doors and ripping out wires.

Erika Rios, her 16-year-old son, her 18-year-old daughter and her daughter’s 16-year-old friend, were asleep about 2 a.m. Sunday when the children awoke to the megaphone-amplified sound of Galveston Police Department’s SWAT unit announcing its arrival, Rios said Thursday.

You’ll notice a lot of really wrong things happening here. First, the suspect wasn’t supposed to be a suspect. Second, the best defense the cop shop could offer was basically “just following orders.” Third, the raid was performed at 2 a.m., which is generally considered to be an “unreasonable” (in the constitutional sense of the word) time to be performing warrant service.

Rios and the children were forced to walk shoeless across broken glass by the SWAT team. Rios and her son were both handcuffed. The supposed suspect, Cameron Vargas, had left the house more than two hours earlier.

And, as if all of that wasn’t terrible enough, there’s more.

After police had cleared the house of all occupants, officers continued to break garage windows with a wooden stick, Rios said.

An officer ripped out two cameras in her living room and kitchen, but she still had one that captured the whole raid, Rios said.

“When the officer found the other camera, he started laughing and said, ‘who keeps cameras in their living room,’” Rios said.

The first is just a form of bullying, destroying something of value just because you can. The second part is extremely disturbing, suggesting officers wanted only one narrative — theirs — to survive.

Here’s Police Chief Doug Balli’s official shrug at the thousands of dollars of damage his officers caused.

“SWAT is trained in a specific way to raid a home, which includes working from the outside in,” Balli said. “They need to ensure there is no threat to themselves.

“Police work is inherently dangerous and anytime we have a warrant, we do a threat assessment and since this was related to a murder case, the risk to ourselves increased.”

Bullshit. Police work can be dangerous but it isn’t inherently dangerous. Whatever “threat assessment” the PD performed prior to this raid didn’t manage to take into account the person they were seeking had been falsely accused of the crime. It didn’t take into account the fact that the wrongly accused suspect didn’t live at that address. If the PD had performed any surveillance prior to warrant service, it would have discovered both of these facts, saving the Rios family the terror and wanton destruction inflicted on them at 2 in the morning.

The attorney representing the family claims the PD did know the suspect was no longer in the home when it carried out the raid. SWAT officers then tried to make the raid about something else when they failed to find the suspect they allegedly knew had vacated the premises two hours earlier.

Buzbee asserted police knew Vargas’ whereabouts before they carried out the raid and told the Rios family they were searching for “guns and drugs.”

“They later tell your daughter that they are looking for ‘guns and drugs’ but the arrest warrant being executed is for a particular person accused of a crime who doesn’t even live at the address and isn’t a family member,” [attorney Tony] Buzbee said. “You later learn the police knew the actual whereabouts of the, actually innocent, ‘perp’.”

This has led to the police chief being briefly sidelined while city officials try to repair the damage done to their poker faces.

Police Chief Doug Balli is on paid administrative leave for no more than 10 days after city leaders were blindsided with news about a SWAT raid that terrified a family and did an estimated $5,000 in damage to their home, City Manager Brian Maxwell said Saturday.

“There was a major breakdown in communication and we want to figure out why the city was not in the loop,” Maxwell said. “This decision was solely based on the lack of communication and not related to the raid.

Um, what? The lack of communication is directly related to the raid. City officials first learned about the raid when the Galveston County Daily News published its article. You can’t pretend one doesn’t have anything to do with the other. This internally incoherent statement is probably the right one to make, though. It refuses to admit any wrongdoing by the police department or its city oversight by pretending the raid was completely above-board, even if it targeted an innocent family’s home, rather than the home of the (actually innocent) murder suspect.

But Maxwell may have overstepped here.

To be reimbursed for the damage to her home, Rios would have to speak to the city’s risk manager and fill out forms, Maxwell said.

The city’s insurance would cover the cost, he said.

I certainly hope he’s talked to the city’s insurer. Most won’t cover stuff like this because it’s considered to be damage lawfully created in the course of legitimate police work, which means there’s nothing for the city to be held liable for. But if Maxwell wants to set this precedent, he should. And maybe the inevitable insurance rate hike will be enough to deter excessive deployments of the PD’s Excessive Force Squad.

Read the whole story
maff
431 days ago
reply
Dundee, Scotland
Share this story
Delete
Next Page of Stories