Blog

Google Stadia was guaranteed to fail, according to basic freaking math

If you don’t know what Google Stadia is, it’s basically a networked gaming console. It renders everything on big servers at Google so your tiny Chromecast or other wimpy smart TV or computer or phone or internet-enabled potato or carrier pigeon or whatever doesn’t have to do any of the rendering work, and it takes inputs and sends fully rendered video frames over your network connection in a similar manner to a video streaming service. The idea is that you plug in a control pad, download the Stadia app, and you can play games without buying any special hardware. It’s a revolution in video gaming! It’s the end of home consoles!

…and it was guaranteed to be dead on arrival…and anyone with the most basic knowledge could have figured this out, but Google somehow green-lit it.

Anyone who looks at a typical ping time on a home internet connection, even a good one, can easily figure out why Stadia was doomed to be trash from the outset. A game running at any remotely usable frame rate (I’d say 20fps is a minimum for pretty much anything at this point) needs to receive inputs, process inputs, do all the game logic calculations for the next frame, render the next frame, and blit the frame, and for a 20fps frame rate, a game on your normal system has 50ms total to completely turn that around. If you are playing a faster action game that requires real-time control, you need higher frame rates than that, meaning even lower total latencies than 50ms.

Now let’s look at ping times from my house on my otherwise completely unused connection to google.com:

Pinging google.com [64.233.177.100] with 32 bytes of data:
Reply from 64.233.177.100: bytes=32 time=33ms TTL=42
Reply from 64.233.177.100: bytes=32 time=33ms TTL=42
Reply from 64.233.177.100: bytes=32 time=32ms TTL=42
Reply from 64.233.177.100: bytes=32 time=32ms TTL=42

OK, so a ping round-trip takes 32ms, leaving 12ms to do everything included above. BUT WAIT, THERE’S MORE: Stadia can’t send uncompressed frames, because that will take too long to arrive, so there’s compression overhead as well, meaning there’s also going to be added decompression overhead on the client side. Even with a hardware H.264 encoder/decoder combo, a finite amount of time is still required to do this. Let’s be INSANELY GENEROUS and say that the encode/decode takes 2ms on each side. Now, even before ALL THE STUFF I ALREADY MENTIONED is accounted for, we’re down to 8ms of time left to hit that 20fps frame rate goal. Remember, in the 8ms remaining, we must still process inputs, run game logic, and render out the frame to be compressed…and this is also an ideal situation assuming an otherwise completely unused connection with no or very minimal network congestion going on. This also assumes that input comes in as early as possible, which is basically never the case. There will almost always be at least one frame of input lag just because of this.

Even if you reduce the goal frame rate to 15fps, the total time available between frames only rises from 50ms to 66ms. While that does constitute a tripling of the time available to run game logic and render a frame, it’s still a really short time frame, and any network usage by any device on the same connection or other households on the same shared network node will essentially render this work pipeline unusably slow. Multiplayer gaming with client-side rendering has the advantage of only sending extremely small packets of data that transmit quickly and act as “commands” for the client software, meaning all existing multiplayer network gaming is sort of like a specialized computing cluster for that game, with the heavy lifting done where the latencies have to be the lowest. Stadia combines all of the horrible problems of live video streaming with the problems of multiplayer latencies. It was dead on arrival. It is destined to fail.

Anyone with simple networking and gaming knowledge can figure this out.

But a multi-billion dollar international corporation that snarfs up the best and brightest minds somehow missed it.

Let that sink in.

Camcorder and microphone on rock above waterfall

Should beginner videographers learn photography first? Yes and no.

(This is my response to the question in the title, posed somewhere on Reddit.)

Filmmaking is a combination of creative writing, audio recording, photography, and motion handling. There are so many things that go into even the simplest decent-seeming video production work that it’d be difficult to say “learn this first” to any one of them. You need all of them or you’ll have glaring deficiencies in your skill set. Even “just a guy who points cameras” benefits from understanding the editing process, how audio works, etc.

That being said, I got into photography as a hobby in 2010 when I purchased my first DSLR, and it was definitely a huge benefit by the time I got the filmmaking itch around 2015. Understanding composition, lighting, and manual controls is absolutely critical to good filmmaking, and you can experiment with all of that in photography. Things like audio can be learned with education and a little bit of experimentation, but composition is difficult to teach since it’s an artistic thing more than a technical one. You can learn about handy shortcuts like the rule of thirds and still take a very poorly composed photo.

When I started offering my video services professionally instead of just making short films in my backyard and office for fun, I had been doing photography for 7+ years and filmmaking as an occasional hobby for about 2 years. The biggest problems I ran into once I started professional work were as follows:

  • Audio can require a lot of experimentation to get right, and having good audio gear is extremely important. My Zoom H4n has been the best tool in my toolkit. It was hard dropping $200 on a recorder, but I challenge anyone to get better audio on a budget than my H4n attached to the podium with a SmallRig double-ball arm clamp. Shotgun mics and booms look cool, but are not appropriate for everything.
  • Poor gear choices from photography plagued me. I have a Targus (read: real cheap) tripod and a Manfrotto Compact Advanced ($90, pretty nice for photography, not a great choice for any kind of pan/tilt video work) and I had two video cameras. I bought a Magnus VT-350 7ft fluid-head tripod because the pan/tilt motion was so sticky on the other two and I had a severe problem with people walking in front of the camera during a packed event. On another event, I put the wide camera on the Magnus to avoid the people problem and was stuck with my manually operated camera and telephoto lens on a sticky tripod, ruining 70-80% of my close-ups due to the painful jerks when I’d move anything. I ended up buying another VT-350 that night and had it before the other two shows they were doing. Know what gear you need to have and spend the money on good support hardware. The VT-350 is still a cheap tripod and suffers from some issues like low weight and a little flex in the plastic QR plate, but in practice these are not major issues. GET GOOD GEAR.
  • I didn’t want to spend $25 on gaffer’s tape. It seemed stupid to pay that much for tape. BUY GAFFER’S TAPE. Pro tip: also buy a small roll of glow-in-the-dark gaffer’s tape and tape it to stuff like your tripod and wires so they’re very visible at events.
  • Every hour you spend in pre-production work will save you two or more hours in production and post-production. Anything you can plan ahead will spare you tons of pain. Arrive 90-120 minutes before an event begins to set up so you can test your stuff way before the people show up. Write and revise a script a couple of times before you shoot interviews or a wedding or anything else that requires storytelling; don’t “do it live” because you’ll burn tons of time planning on-the-spot and produce an inferior work product while doing so. Make sure your equipment is good to go the day before a shoot, with charged batteries and empty memory cards and bags all packed and all required wires and adapters accounted for.
  • Clients generally don’t know jack about video, and nothing prepares you for dealing with them and their grand dreams or demands. Think of yourself as the guy with cameras and lenses and light kits, and then think of the client as the guy with an overpriced iPhone that loves shooting in that fake bokeh wannabe “portrait mode.” These people might understand videography, but more likely they’ll think that you can do anything they’ve ever seen done on YouTube or cable TV. You’re going to have to explain to them exactly what can and can’t be done, and temper their expectations. No, you don’t have a camera boom like they used at that concert on TV, so those cool sweeping shots aren’t going to happen. Be polite but firm on what you can and can’t do. If they want something more than you have, they’re gonna pay for the required rentals.
  • Video is photography with motion. This seems like a silly and obvious point, but it’s a major problem when moving out of photography to video work, especially for someone else. If you do event coverage or sports especially, you’re going to have to track subjects that move in ways you can’t easily predict. You’ll have to learn how to do this one way or another, and it’s really hard at first. The best thing to do is to leave enough room around the subject to allow for your reaction delay without losing them when they move around. A field monitor can be especially handy for sports video. Don’t let your shoots get compromised by a sudden movement. If you need practice, go outside to a place with birds or dragonflies or other fast-moving natural things, and take something telephoto (a camcorder with a nice optical zoom will do), and try to anticipate their movements and keep them in frame as much as possible. It will get easier as you practice it more.

One thing to note is that the lines between photography and videography are blurring. I recently helped a local mayoral candidate with video and photo work, but the only traditional photography involved was the portraiture. All of the photos on the site are really just 4K frame grabs. I shot the 4K footage with the intent of frame-grabbing any needed photos later, so I used a 1/100-1/125 shutter instead of 1/60 to significantly reduce motion blur. It makes the video portions a little less smooth-looking, but it’s worth it for the ability to pull clean 8MP photos out all day long.

Developed CHDK RAW of the same cat JPEG

RAW vs. JPEG: what does RAW mean, and what good is shooting RAW? (with examples)

Photographers are a very diverse category of people. Some shoot to capture memories forever. Some shoot for the joy of composing an interesting photograph. Some shoot to capture things that will impress others. Some shoot to make money from their photos. Most fall somewhere in between, and with the exception of the for-profit group, caring about image quality is just as diverse. Some don’t care as long as you can tell what it is that’s in the picture when you look, while others want as much visual quality as technically possible and will fight to squeeze every last bit of goodness out of a single picture; a third category wants maximum quality until it takes too long to share their work.

High-quality photo of Brittany Davis
Unedited picture from a shoot I did with Brittany Davis. We were shooting for professional quality images that were as good as possible before any editing, so I used my best DSLR, some flashes, and careful composition to achieve this result. Definitely one of my favorites from the whole shoot!
Two Super 8mm video cameras from the 1950s
Two Super 8mm video cameras from the 1950s, taken rather poorly with a cell phone. I wanted to show someone what I found at a consignment store. The image quality didn’t matter, so why bother whipping out a big camera and meticulously composing a gorgeous shot?

Two versions of the same picture

The RAW/JPEG divide exists because the needs of photographers are so widely varied. But what are RAW and JPEG? The specifics are beyond this article, but here’s a short explanation. RAW is what it says: every single bit of information that the camera sensor produces. JPEG is a lossy image compression format where image information is thrown away to greatly reduce the size of an image file. RAW is meant to be a “digital negative,” the equivalent of film negatives for your digital camera, containing every last drop of data about a picture you took. JPEG is intended to be a compact “delivery format” image, easily moved between computers or published online due to the small size, with some quality loss that most people can’t see without modifying the picture.

Split picture with normal sunset on the left and over-processed sunset on the right
The left side of this JPEG is unchanged. The right side has been pushed to the point that the image is very obviously breaking down. There isn’t enough information in a JPEG to handle drastic edits like this.

I just checked a RAW+JPEG shoot from my Pentax Q7 camera and while the size of a RAW is always about 19-20MB, the “in-camera developed” JPEG varies between 0.97MB and 2.25MB. The RAW file is about 10x to 20x the size of the JPEG file, and when you open at the RAW file in a RAW file developer program, they’re the same exact picture. So why would anyone ever want to capture these enormous RAW files instead of (or in addition to) JPEG files? If you’re just going to use the picture with minimal editing–or none at all–it just makes perfect sense to shoot JPEG and avoid RAW entirely. For a very long time, I never shot RAW because I was perfectly happy with my JPEGs. They looked great and I could edit quite a bit and never notice any loss of quality. Most beginners are in the same boat: JPEG images are more than enough and there’s no reason to shoot RAW with its colossal files and minimal perceived benefit.

Cell phone screen with pry tools on top of a contract
This JPEG from 2012 has no corresponding RAW file to develop, but it doesn’t really need to. It looks like a stock photo (and probably should be one!) and I’ll probably never need to edit it beyond minimal corrections.

The benefits of RAW, told through real photos

Why do I shoot RAW+JPEG today? As the saying goes, “a picture is worth a thousand words!” Take a look at the following three pictures. One is almost solid black because it’s the original JPEG, severely under-exposed, and all you see is the point light sources. One is the “black” JPEG with the gamma curve boosted to bring up the “black” area. One is the same picture, except this time it’s the RAW version with the gamma boosted to maximum and exposure set to +1.5 EV. The third one is a properly exposed JPEG of the same scene shot right after the “black” frame. What differences do you see?

"Black" original JPEG picture with no visible sky or environment.
“Black” original JPEG picture with no visible sky or environment. I accidentally set the camera to ISO 100 at twilight. Pentax Q7 with lens “08 Wide Zoom,” ISO 100, 1/60 sec., f/3.7
The same "black" JPEG picture with a massive gamma boost to reveal the "black" area.
The same “black” JPEG picture with a massive gamma boost to reveal the “black” area.
Developed RAW copy of the "black" JPEG with a gamma and exposure boost. It almost looks like a normal photo, except for the revealed sensor grid dot pattern.
Developed RAW copy of the “black” JPEG with a gamma and exposure boost. It almost looks like a normal photo, except for the high amount of noise.

Now that you’ve seen the immense power of recovering image details from a RAW file, let’s take a look at a properly exposed picture of the same scene taken right after the under-exposed one, and see what can be done with it.

More properly exposed JPEG of the same scene as the others, but not the same picture and not modified in any way. This is what the "black" picture was meant to look like.
More properly exposed JPEG of the same scene as the others, but not the same picture and not modified in any way. This is what the “black” picture was meant to look like. It is obviously better because it was exposed as originally intended. Pentax Q7 with lens “08 Wide Zoom,” ISO 3200, 1/30 sec., f/3.7
A similarly brightened version of the properly exposed JPEG above
A similarly brightened version of the properly exposed JPEG above. Notice how almost all color information is lost in the dark areas and has been reduced to ugly, noisy splotches of yellow, red, and green.
The same properly exposed JPEG, except instead it's the RAW developed and brightened.
The same properly exposed JPEG, except instead it’s the RAW developed and brightened. The noise is very high, but even when brightened up more than the brightened JPEG, the picture looks more like the original scene.
The same area just before sunset.
The same area just before sunset. This was shot with a fisheye lens on a different day, but it gives you a general idea of the layout underneath the noise in the other pictures.

It should be painfully obvious that getting the correct intended exposure the first time around is the best way to take a photo, but what if you only get one chance and you under-exposed? That sort of common mistake is where taking RAWs becomes very useful.

A technical explanation of what’s going on

A JPEG typically stores 8-bit color data with 4:2:2 chroma subsampling (half the color data is thrown away), but a RAW stores 12-bit (or more) data for four color channels (red, blue, 2x green is the most common format) and doesn’t subsample at all. That’s why RAW files are huge: they store 50% more color detail for red and blue, and 3x the samples for green, and they don’t throw away color data for half of the pixels to save space. This is a major disadvantage for sending and storing pictures because there’s so much data that isn’t needed for human visual perception, but the above pictures show off the powerful detail recovery capabilities that you get when you capture RAW files. Because a RAW file contains (roughly) four times the data of a JPEG file, there is a lot more subtle detail available, and this becomes important once you start pushing pictures towards the limits of what they can handle. Where the boosted JPEG above has so little data that only a monochrome ghost of the scene is recoverable from the shadows, the RAW has 16 more subtle levels of brightness for every color channel that makes up every pixel. That means that if you increase the exposure of the picture by 5 stops, you won’t lose subtle gradients to the limits of 8-bit values. Do you really need more proof of RAW’s amazing flexibility when pushed to extremes than the pictures above?

Of course, a RAW doesn’t matter much if you’re just going to pull it into Lightroom or RawTherapee or UFRaw and “develop” it to JPEG without any changes. JPEG images are drastically smaller and you can shoot continuous bursts of them almost infinitely with a modern camera. Most photojournalists today shoot JPEG because news agencies don’t want RAWs and time is almost literally money to them. JPEGs are so much smaller that you can store an order of magnitude more JPEGS in the room taken by RAWs. As with so many things, it’s a trade-off, and many people will shoot JPEG forever and have zero regrets. That was me for a very long time, in fact! JPEG is good enough for most needs.

When to shoot RAW only

  • You want to preserve every last bit of detail in a picture
  • You plan to edit your pictures and need the added latitude offered by RAW format
  • You don’t need continuous burst shooting (most cameras can only buffer a few RAWs before they must stop shooting to write them out)
  • You don’t need quick sharing or interchangeable editing ability
  • You will batch process the RAW files to JPEGs later
  • You want to bypass the in-camera noise reduction and preserve as much fine detail (and noise) as possible

When to shoot JPEG only

  • You need to be able to share images quickly without dealing with the RAW development process
  • You don’t have (or want to use) the storage space required by RAW files (Depending on the camera and the photo, RAWs are 3x-20x larger than JPEGs)
  • You need to be able to do continuous burst shooting without pausing
  • You don’t intend to do heavy editing to your pictures
  • You are happy with the results provided by the in-camera noise reduction
  • You don’t mind a small but usually imperceptible loss of image quality and having no way to recover that lost quality

When to shoot RAW+JPEG

  • You need both quick sharing ability and RAWs for custom development or heavy editing
  • You don’t need continuous burst shooting (RAW+JPEG uses the most space and stops burst shooting sooner than just RAW)
  • You have plenty of storage space and don’t mind managing duplicate versions of every picture you take
  • You are asking yourself if you should shoot RAW or JPEG and can’t decide

It’s your choice, so make it a good one

As with all things, RAW versus JPEG is a set of trade-offs.  You have to decide what suits you. I spent about eight years only shooting JPEGs and I never had a complaint, but I was also shooting those JPEGs on a Canon DSLR and a good Panasonic mirrorless camera, not a cheap point-and-shoot. When I started buying old cheap point-and-shoot cameras to challenge myself, I discovered that the results were generally poor compared to my better cameras, partly due to the smaller sensors, but more because a cheap point-and-shoot will do heavy in-camera image processing on a weaker CPU than that of a big camera. For Canon point-and-shoot cameras, I discovered the awesome CHDK firmware which adds RAW shooting capabilities and makes a huge difference. CHDK RAWs transformed my point-and-shoot Canon cameras into much more useful tools. Check it out:

JPEG of a cat from a Canon PowerShot A3400 IS
Out-of-camera JPEG of a cat from a Canon PowerShot A3400 IS (ISO 800, 1/4 sec., f/2.8). The heavy smoothing of the in-camera noise reduction is obvious in the face and fur and eyes, where all fine detail has been smudged over.
Developed CHDK RAW of the same cat JPEG
Developed CHDK RAW of the same JPEG, with distortion correction but no noise reduction applied. The added detail is obvious in the cat whiskers and the textures of the fur and the blue foam. The brown colors in the cat’s face are richer, though the chroma noise visible on the metal desk leg and other flat areas is not attractive. The noise can be selectively cleaned up in post-processing by most RAW developing software.

Feeling artsy? You should be shooting RAW

Today, I always shoot RAW+JPEG whenever possible, but on older digital cameras like my beloved Canon PowerShot G3 where RAW is an option by itself without a JPEG option, I shoot JPEG only, primarily because RAW takes a long time to write on those old cameras and they’re supposed to be “fun” cameras for me, and waiting several seconds on a RAW to write on an old CF card is the polar opposite of fun. The main reason I shoot RAW+JPEG is the lack of noise reduction in a RAW file and the resulting boost in detail I can achieve for photos that are worth going to the extra trouble to develop. The ability to boost saturation and play with colors without JPEG compression artifacts appearing is also compelling to me. I find that scenes with landscapes and skies can be very striking if you open a RAW and take some creative liberties with the saturation and color balance.

Queen Anne's Lace in front of a cow pasture
Original JPEG of Queen Anne’s Lace in front of a cow pasture (Canon PowerShot SX120 IS, ISO 200, 1/250 sec, f/4.0).
Queen Anne's Lace in front of a cow pasture, edited with strong colors and contrast
The RAW from the Queen Anne’s Lace JPEG, developed with several creative liberties taken. Higher contrast, strong saturation, exposure curve tweaked to make the white flowers stand out while retaining the flower detail. A JPEG would have fallen apart with this much “pushing.”

Which one do you prefer and why? Has this article changed your mind or inspired you to shoot differently? What are your thoughts about the pictures included here? If you’ve made it this far, I’d really appreciate a comment with your thoughts! Comments are moderated, but I try to approve and reply to them quickly.

LUTs are stupid

“No, This Doesn’t Look Filmic” – Shooting log, flat, and LUTs all suck

Shooting log, shooting flat, using LUTs, turning down the contrast…stop doing these things! Unless you have a 10-bit capable camera, shooting with log profiles like Cine-D, V-Log, C-Log, S-log, or Technicolor CineStyle will only damage your footage and limit what you can do with it in post-production. I usually explain this in mathematical terms, but that can be hard to grasp, so this video serves as a short overview of the things that you should avoid in the realm of picture profiles and saturation/contrast settings.

For a lot more information about this subject, this article will satisfy most of your curiosities: YouTube video experts don’t understand why flat/log footage on 8-bit cameras is a bad idea

UPDATE: There’s a new video I put out that covers a lot of the same ground, but gets more technical and has more examples and information. Feel free to watch both.

Windows 10 is hard to support because it’s inconsistent and settings keep vanishing

(This was left in response to a video called “Why Microsoft Can’t Design a Consistent Windows”)

They CAN offer a consistent Windows, they just choose not to. Windows 10 is a support nightmare. How to accomplish something (and whether or not it is even possible to do so anymore) depends on what build the person is on, which means to support Windows 10 requires being familiar with all possible builds that one could encounter. That means knowing all the “settings shuffles” and control panel neutering of Windows 10 builds 1507, 1511, 1607, 1703, 1709, 1803, and soon build 1809 as well. In each build, Microsoft strips out Control Panel functionality and forces it over to the Settings panel, but they are notorious for killing off Control Panel stuff despite the Settings equivalents omitting important settings or capabilities. It used to be that you could change a network from “public” to “private” using Network Connections in the Control Panel, but that was lost and HomeGroup was the only place to easily find a “switch” for that setting. Then they killed off HomeGroup functionality. In Windows 10 build 1709, to change a network from Public to Private after the pop-out prompt when you first connect is gone, you have to HAND-EDIT THE REGISTRY SETTING FOR THE PUBLIC/PRIVATE STATUS OF THAT NETWORK.

When they worked on killing off Default Programs, they made it redirect to Default Apps which doesn’t let you pick a single program and one-click associate ALL file types it can handle with that program; there was a workaround where one could run a batch file that invoked the old Default Programs panel, but now that’s also going to just redirect to the Default Apps panel which STILL CANNOT ONE-CLICK ASSOCIATE ALL FILE TYPES.

I don’t buy excuses like “we support lots of different hardware.” That’s a cop-out. Touchscreens were in use long before Windows 10. Also, Microsoft DOES NOT listen to the vast majority of user feedback. I have repeatedly reported many serious problems using their feedback mechanism and those problems persist today.

(Another user asked: “What support scenario do you work in?”)

The specific problem I’ve had is with control panel items being removed from Control Panel when a Settings panel that replaces it hasn’t picked up all of those settings yet, or is lacking in functionality. The biggest thing that kills me is Default Programs: in the old one, I could pick a program and associate ALL types that program supports with that one program, but in the new one I have to click each individual type under the program’s name and click the program in the list that pops out. For media players this would be a disaster; MPC-HC supports over 100 file extensions, for example, and I used to be able to associate all 100+ of those with two clicks. Now it’s more like 250 clicks if I want to do the same thing. In the first build where they removed that control panel, I could still run a long esoteric command to bypass the redirection to Settings and get the old panel back up, but then they made the panel itself redirect to Settings as well and I’m stuck.

That’s mostly an issue for me when I’m doing Windows installations or installing a particular set of programs, but there were some builds of Windows 10 where they took away the HomeGroup functionality (which I don’t use anyway) when that panel was also the only clear way in the GUI to switch a network that was Public to be Private instead. Until they added the setting back recently, I had a lot of customer computers where the ONLY way to switch the network mode was to edit the registry, and it couldn’t be done with some simple trick like a .reg file either, so it was always a manual registry edit. I also had several business customers get the Windows 10 1703 update and it switched ALL their networks to be Public automatically without prompting anyone, causing their computers to be unable to share printers and files and causing a panic on payroll day

I deal with normal people. I have to support those normal people. In Windows 7, I knew where everything was. I could easily talk to the user and tell them what to click. If I couldn’t remember, I’d follow along on my own machine. With Windows 10, fundamental stuff like the control panels change in every new “feature update” and there’s no guarantee that different users and myself will all be on the same build, so I can’t even follow along on my machine anymore; their network settings panel might look very different from my own because they got a new build and I’m still on an older one. It’s an absolute nightmare to do any sort of phone support for Win10. I often have to do a remote or have them bring it in, and the internet around here is absolutely abysmal because CenturyLink takes $500M a year from the Feds to expand rural broadband but only spend it to compete with areas that a competitor starts serving, and they control all the phone lines in the area.

How to permanently disable Adobe’s PDApp.log (and others) on Windows or Mac

UPDATE (2020-02-16): Reports are coming in that this doesn’t work with the newest Adobe CC programs since they’re rotating the logs now. If this doesn’t work for you, it may be best to run a temporary file cleanup tool daily, such as Disk Cleanup included in Windows, CCleaner (warning: since Avast bought it, it’s a bit spammy now), or similar. Alternatively, if you are handy with such things, write a batch file that deletes the log files and add it to Task Scheduler as a task to run when you normally won’t be active on the machine.

UPDATE (2019-10-21): Adobe’s support has noticed this post and is attempting to have the bug behind this issue fixed. See the comments!

I recently discovered that Adobe’s Creative Cloud software left a massive pile of PDApp.log files in my temporary directories, as well as a few others such as CEP8-PPro.log and AdobeIPCBroker.log. These were taking up quite a bit of space, and I’ve looked up PDApp.log only to discover that some people have had serious issues with PDApp.log consuming all available free space on their drives after a while. One user reported having a 600GB log file! Needless to say, several people have asked how they can control these log files, but as usual, Adobe support and forum users offered no actual solutions.

I’m here with your solution!

Adobe log symlinks
What a sweet, sweet sight these are.

On Windows, you’ll need to open Task Manager and kill all Adobe processes to unlock the log files (not just stuff starting with Adobe, but also Creative Cloud processes and any node.exe instances they started) then open an administrative command prompt and type the following two commands:

cd %temp%
del PDApp.log
mklink PDApp.log NUL:

This goes to your temporary directory, deletes the PDApp.log file (if you get an “in use” error here you missed an Adobe process in Task Manager), and creates a file symbolic link to a special device called NUL: which is literally the “nothing” device. When the Adobe apps write to PDApp.log now, all writes will succeed (no errors) but the data will simply be discarded. You can repeat the delete/mklink process for any other Adobe logs you don’t want around anymore. Best of all, because symlinks on Windows require admin privileges to modify, the Adobe apps won’t rotate these fake log files out! Be aware that cleanup tools like CCleaner or Disk Cleanup may delete these links, so you may need to repeat these steps if you delete your temp folder contents with a cleaning tool. You may want to write a small batch file to run the commands in one shot if you like to delete temp files frequently.

On Mac OS (note: I haven’t tested this myself, but it should work) you should be able to kill all Adobe processes with Activity Monitor, then open Terminal, then type this:

ln -sf /dev/null ~/Library/Logs/PDApp.log

Linux/UNIX administrators will recognize this as the classic “redirect to /dev/null” technique that we all know and love. Since I have no way to test this, Adobe may rotate these links out, but you can use this command to lock down the symlink if it does:

sudo chown -h root:wheel ~/Library/Logs/PDApp.log

This will ask for your account password since it requires privilege escalation. This command makes the link owned by “root” which means normal user programs can’t rename or delete it, though they can still write through the link, so the trick will continue to work.

UPDATE: Some have asked what the purpose of the PDApp.log file is and whether it’s safe to do this. The answers are, respectively, “logs information for troubleshooting Creative Cloud installation problems” and “yes, absolutely.” If you’re not having installation issues, this log is just taking up space and wearing out your SSD. If you need to “re-enable it” it’s as simple as deleting the “decoy” links you made with these directions which will allow the logs to be created as if nothing ever happened.

Too many YouTube ads on mobile and TV? Bypass them with SaveTube and Plex!

Adblock Plus does a great job of blocking ads on desktops and laptops, but on “app” devices like phones and TVs, ad blocking simply isn’t available. This isn’t a solution for blocking ads during casual browsing of YouTube on mobile and TV apps, but it’s a great way to get videos you know you’ll want to watch later and watch them on “app” devices with no more ad breaks ruining everything. You need two things: Sebaro’s SaveTube (and a browser extension like Greasemonkey to enable running user scripts if your browser doesn’t have native user script support) and a Plex Media Server setup. I can’t explain in this post how to install browser extensions like Greasemonkey or Tampermonkey and add SaveTube to it, nor can I explain how to install and set up Plex, but your favorite search engine and the Plex website can tell you everything you need to know.

  1. Install SaveTube.
  2. Have Plex installed, set up, and working. You’ll need Plex Media Server on your computer and the Plex app on your phone, tablet, TV, Chromecast, Roku, or whatever you happen to own.
  3. Create a new folder for your YouTube videos and add it to your Plex Media Server. Call it “YouTube videos” or whatever you like and classify the folder in Plex as “other videos.”
  4. Open a video you’d like to watch without ads. SaveTube should appear at the bottom right corner of the screen if you have it installed properly.
  5. Click “Get” in SaveTube to save a copy of the video to your computer. This defaults to the highest resolution MP4 that contains both audio and video in a single file. In general, you can’t download 1080p or 4K content already in this “muxed” file format, so it’s best not to mess with the default choice. SaveTube’s red-orange options are called “DASH streams” and contain ONLY audio or ONLY video, meaning you’ll have to remux the separate streams if you want the options that aren’t available in blue. As you can tell by now, it’s easiest to just hit “Get” and leave the other SaveTube options alone.
  6. Repeast steps 4 and 5 for every video you want.
  7. Move the YouTube video(s) you downloaded to the folder you made and added to Plex.
  8. Open the Plex Media Server web portal, click “…” to the right of your YouTube video library, and have it “scan library files.” This will refresh the list of available videos with your new additions.
  9. Open Plex on your device of choice and enjoy the videos you fetched 100% ad-free!

Legal disclaimer: I am not a lawyer, but for a layperson I have a fairly strong understanding of copyright law. It is my non-professional opinion that the actions taken here do not constitute copyright infringement or a violation of the non-circumvention provisions of the DMCA. YouTube’s page code has a block of text called “var ytplayer” that contains unencrypted URLencoded URLs to these video streams and there are no access controls on the server that restrict you from accessing videos through the links in that block of code. As long as you follow standard copyright law restrictions for the content (no redistribution, no public exhibition, etc.) this should be 100% legal. If you’re asking why this would be legal when “YouTube-to-MP3 sites” aren’t, it’s because those sites engage in redistribution of content which is an action protected by copyright. In fact, you can do the MP3 conversion yourself if you use SaveTube to download a “medium bitrate audio MP4” and use a free conversion tool like ffmpeg, Audacity, or Format Factory to convert the .m4a file to .mp3 format instead.

If you’re an attorney (a real attorney, not a person like me that simply thinks they’re smart and probably isn’t) and you believe that this procedure is not legal, please feel free to contact me and explain.

Windows batch file that converts all files in a directory to Apple ProRes

Windows batch file programming is terrible because the commands have poorly thought out syntax and peculiar requirements, such as double percent signs in batch files but not on the command line. I often make batch files that perform conversions with ffmpeg and when I decided to start trying out Final Cut Pro 7, I realized that I needed to mass convert MP4 video files to ProRes. My Windows machines are much more powerful than my Macs, so I wanted to be able to convert a whole directory to ProRes on Windows by dropping the directory onto a batch file. It took forever to hammer around cmd.exe’s stupid peculiarities but I finally got this together which works (note you’ll need to install ffmpeg somewhere in your PATH or specify an absolute path to it, and you must replace “C:\processed” with your desired output path):

for /F “tokens=*” %%D in (‘dir /b /a:-d %1’) do ffmpeg -y -i %1\%%D -c:v prores -profile:v 2 -vendor ap10 -pix_fmt yuv422p10le -c:a pcm_s16le -ar 48000 “C:\processed\%%~nD.mov”
pause

If you want different ProRes levels, change profile:v to 0 (Proxy), 1 (LT), or 3 (HQ); if you want ProRes 4444 you’ll have to change the encoder to prores_ks and set the level to 4444 and the pix_fmt to yuva444p10le.

The “pause” at the end is just in case you have problems and need to scroll up.

Windows 2000’s user interface was way better than Windows 10

This is part of a comment I left on a video about Windows 10. It seems like it should be here as well. It’s been modified for better presentation.


The Windows 2000 user interface was better than all that followed. Some improvements were made in each successive version but Windows 7 was the last one where the few bad UI change decisions could be easily worked around and adjusted to by users. Everything UI went straight to hell after Windows 7. The Charm bar is dead in 10 because it was an extremely poor UI decision from the get-go.

  • “Tablet Mode” on 10 is worse ON TABLETS than “normal” mode.
  • The “flat” design scheme with monochromatic ambiguous icons is more difficult for the human eye to scan and recognize.
  • A lack of borders, shadows, 3D edges, etc. makes UI elements mush together. Low contrast between UI elements greatly exacerbates the flat design issues.
  • Retracting Modern scrollbars are extremely annoying to use and greatly slow down anyone trying to use such scroll bars.
  • Removing the 3D appearance and dark borders from normal scrollbars and reducing the contrast between scrollbar buttons and the bar itself have made normal scrollbars much slower to use for experts and nearly impossible for novices.
  • The schizophrenic Control Panel/Settings dichotomy can only be described as a disaster, with every build of Windows 10 changing the names of categories, adding new ones, making Control Panel items kick over to Settings panels instead of doing what they’re supposed to do, moving settings around with no educational hints as to where the settings have moved to, etc.
  • There are no hints to educate users about how to use the system, what changes have been made, what features are available.
  • There is no longer any form of offline help available to learn about the system.
  • Things that can be clicked often don’t look clickable and vice-versa.
  • Things that can be dragged now have zero visual indication that they can be dragged; there are no drag handles on the Start menu edges and no border frames on scalable Modern program windows, for example.

Windows 10 is objectively a terrible user interface. People succeed in spite of it, not because of it.

How is downloading an illegally distributed work considered copyright infringement under the law?

I’m explicitly looking for more information on this. On a plain reading of the statute that governs copyright, U.S. Code Title 17, I don’t see how downloading (or buying a bootleg, or in any other way acquiring an illegally distributed work) constitutes copyright infringement.

17 USC 501(a) says that copyright infringement occurs when someone violates the “exclusive rights” of the copyright owner.

17 USC 106 lays out what constitutes exclusive rights: reproduction (making copies,) creating derivative works, distributing copies, and performing or displaying the work “publicly.” Nowhere is the act of obtaining, acquiring, purchasing, receiving, possessing, etc. mentioned.

I suppose one could see the “making copies” part and argue that downloading is making an illegal copy, but the problem with this reasoning is that the person downloading didn’t make the copy that they’re receiving, they simply received a copy that was made by the uploader. I liken this to getting on eBay and buying a bootleg DVD of something: the bootlegger made and distributed the copy, not the purchaser. The U.S. Copyright Office has a statement that treats uploading and downloading copyrighted material as the same act and claims that they’re illegal, but there is no statutory or case law reference.

Please, if you know what the “glue” is that allows the jump from the copyright statutes that don’t mention acquisition to “downloading music is copyright infringement,” chime in and drop some references to the applicable statutes or case law, for the edification of all of us.