You can’t trust SETI about Aliens

As the US military’s report is about to land and leaks about what’s in it have surfaced, it has been surprising that many people from SETI and the scientific community are coming out and making claims that there are no aliens on Earth.

I would have assumed that as good scientists, they would know that you can’t prove a negative. I believe they would all admit that they are putting zero effort into looking for them, so is it really surprising that they haven’t found them?

I believe that SETI as an institution has lost all credibility on this subject and is instead trying to do damage control over its budget and fundraising capabilities.

From SETI’s latest statement:

“The potential damage is to the very real, very challenging, very cutting-edge science being conducted around the world that seeks to identify actual signs of actual extraterrestrial life in the cosmos, or at least to know what to look for when we have space telescopes and instruments with the necessary power.”

Ahh, so here we have the real motivation. Mr. Kaufan is concerned that the sensationalism of finding that alien probes are hopping around in our backyard will take away from the funding that SETI needs to purchase radio telescope time to do “real science.” Attention is shifting, and you don’t need astronomers, physicists, and radio telescopes to look for them here. You need broad radar coverage, fast responding aircraft, and hi-def cameras. 

The more I’ve dug into what actual data we have, the more I’m disturbed about SETI and how they portray their work.

“They are indeed scientists, using radio astronomy to identify narrow-band transmissions from other planets that are clearly not natural. They have also begun searches for laser-like beams. In more than 60 years of observing, however, no signs of intelligent life have been detected.”

This statement would lead the layperson to believe that SETI is doing a reasonably exhaustive search and that if there were anything out there, they would have found it. 

There is also this statement from the same author about SETI’s capabilities to search for laser communications. 

“The initiative is also carrying out the deepest and broadest ever search for optical laser transmissions. These spectroscopic searches are 1000 times more effective at finding laser signals than ordinary visible light surveys. They could detect a 100-watt laser (the energy of a normal household bulb) from 25 trillion miles away.”

The small detail that they’re obscuring with this statement is that 25 trillion miles is 4.3 light-years or about the distance to the next nearest star (Alpha Centauri). It just doesn’t sound as amazing to say that they’re looking for life in the galaxy, and they could detect it if the aliens live 1 star away, but beyond that, things get more challenging. 

I started doing some research into what could we detect out there in space? We’ve all seen the beginning of the movie Contact, where they show the wavefront of radio waves emanating from the Earth and traveling out through the galaxy. However, the 100-200 light-years out that these would have propagated is minuscule compared to the size of the Milky Way (105,000 light-year diameter).

The blue dot in the magnified area shows the extent of our 200 years of radio emissions through the Milky Way.

The next question is, given the amount of radiation we’re giving off, how far away could it be detected? The answer is it depends, but most of it would be undetectable beyond 10-100 light-years. 

I went to SETIs own website, where they describe their work, and in the FAQ, they have the most critical question: 

If an extraterrestrial civilization has a SETI project similar to our own, could they detect signals from Earth?

“In general, no. Most earthly transmissions are too weak to be found by equipment similar to ours at the distance of even the nearest star. But there are some important exceptions. High-powered radars and the Arecibo broadcast of 1974 (which lasted for only three minutes) could be detected at distances of tens to hundreds of light-years with a setup similar to our best SETI experiments.”

So, the answer is that we could have a civilization identical to us living in our very own neighborhood of the Milky Way, and we’d never detect them with our current capabilities. This puts an entirely different slant on their statements that they’ve been listening and haven’t heard anything.

What are they listening for? They assume that some advanced lifeform out there will make a beacon to let us know that they’re there. But the beacon would have to be powerful enough to create a signal on the level of astronomical events for us to detect it. 

All the talk of the Drake equation and the possibility of life developing somewhere else, and SETI can’t even search for what that equation implies. They’re searching for a civilization advanced enough to create signals on par with stars colliding just to announce that they exist. All of SETI’s listening makes the HUGE assumption that such a civilization would choose to do that. 

Wouldn’t it be FAR more economical and practical to develop a Von Neuman Probe and send them off through the galaxy? You could have probes stationed on every planet in the Milky Way within ~100,000 years just waiting for something interesting to happen without requiring faster than light travel. 

I’m surprised that so many scientists dismiss this possibility out of hand because I believe there is a near 100% probability that within the next 100 years, we’ll achieve the technological developments required. Then we’ll launch our probes through the galaxy, and we’ll be the ones waiting for new life to develop on distant planets. There wouldn’t be any green men (or humans) running around, but there would be a system capable of producing research probes out of local materials with an AI to monitor and send back data. 

Non-SETI scientists keep saying that they can’t do anything without data. This is an issue, but the US military has high-quality data. Instead of just shrugging and walking away, we should be pushing the military to release the raw hi-def footage and radar data that they have so that it can be independently examined. The only thing blocking this is that some of the data gathering systems are classified.

I’ve also listened to several conversations with National Security folks that feel very certain that Russia and China don’t have the capabilities to be behind this. The US government says it wasn’t them. So that leaves us with the remaining possibilities. 

  • The US government is intentionally lying and creating this all as some performance. 
  • The source of the probe is not from an Earth government. 

I’m open to any other plausible explanation, but I think we’re well beyond the theory that it was a camera artifact and multiple pilots and camera / FLIR / radar systems all mistook a balloon floating over the water. 

In my opinion if SETI was truly interested in finding extra terrestrial intelligence, they should be picking up the investigation of these probes instead of being dogmatic about only looking through telescopes.

Local Covid-19 Death Rate

Another interesting way to look at the local covid-19 stats for San Mateo County CA is the death rate by age. This virus is showing a dramatically different lethality by age bracket. I know there are researchers looking into this and there is a lot of data about comorbidities, but I don’t know for sure if age is simply a very good proxy for comorbidity.

What this chart tells me is that we HAVE to get this virus under control for the long term. If these death rates stay constant, then after a few years there just won’t be many people left over 70 years old.

Vaccinations are working

I was curious this morning and decided to take a look at my county’s stats for Covid-19. Right now they’re allowing 65+ and certain groups to get vaccinated, although we’re really excited that on April 15th they’re opening it up to all adults.

I charted the percentage distribution by age of the historical numbers vs the last 30 days. You see a significant decrease in the population of people that have been fully vaccinated. I’m really hoping that as this trend continues across the population we’ll get rid of this virus.

Regulating Online Speach

There’s a very active discussion happening right now about free speech online after the removal of Trump from Twitter.

The least informed arguments state that this is a violation of the 1st Amendment for the banned people. This is obviously not true as the 1st Amendment applies to the power of the government and not private companies.

The more nuanced discussion moves on to accepting that these companies should be allowed to moderate. There are many examples of threatening and violent speech that require moderation. However, there is no clear standard on where that line should be and who should make that determination. Twitter’s current policies have been confused. They didn’t apply a single consistent moderation policy to all users. Twitter made the case that the United States President had newsworthiness that forced them to keep him on the platform even if they had to label his tweets.

David Sacks* has made the case that the oligopoly of Big Tech companies like Twitter, Facebook, Google, Apple, and Amazon are so large that when they apply content moderation policies and squelch someone’s voice that they are functioning as a de facto government institution and should be held to the 1st Amendment bar. He argues that the 1st Amendment was created when the idea of the internet didn’t exist. That the founders couldn’t have imagined it and that the town square is now the equivalent of your Facebook or Twitter timeline.

Sacks just tweeted that “My content moderation policy is the First Amendment. What’s yours?” The 1st Amendment, as a standard, is a horrible idea. Anything is allowed as long as it’s not so heinous or threatening that it would require us to charge you with a crime because of the words you used. No civil, productive discussion could flourish under these rules.

At the founding of this country, we had the concept of different public and private spaces in a town. Each of these spaces had different rules for acceptable behavior for the people using them. If you are unruly in a restaurant, you will be asked to leave. If you are screaming and shouting, you will be kicked out of the public library. If you don’t dress appropriately, you won’t be allowed into a fancy restaurant.

None of this means that the government is forcing you to dress a certain way or to only whisper. But it does mean that you are required to abide by the rules of a location to use that location. If you want to get together and play music with some friends, you need to find a suitable place. The 1st Amendment doesn’t mean that you can roll up anywhere and do what you please.

I believe that this relates to the online free speech discussion similarly. Each location is owned and operated by a company, and they’re free to decide how they want to moderate. If you’re not happy with how those decisions are being made, then you’re free to spend your time elsewhere. The argument that Facebook is so large that it should behave like a government is wrong. The argument should have been that we should foster alternative locations.

If a restaurant is so popular in a town that it puts all other restaurants out of business, that doesn’t mean that it now needs to function as a government service and serve food that everyone agrees with. If you’re not happy about the menu choices, you should start another restaurant and compete with it. Of course, you’re not guaranteed that your new restaurant will be very popular or profitable, but you’re free to start and run it.

Sacks has pointed to the case of as an example of starting your own restaurant not working, but I don’t think the argument stands up. Parler was able to create an app and got a large number of people to sign up. However, they continued to distribute heinous speech and were very loose in moderating it. We live in a community, and Parler relied on other vendors to provide their service. When it became clear that they weren’t going to moderate the content, the vendors decided to cut their business associations. No one banned Parler from existing, but others were not required to help them out either.

If you don’t like that AWS won’t support Parler, then don’t use AWS. If you don’t like that Twilio won’t support Parler, then don’t use Twilio. Create your own competing services and back up Parler. I don’t think there are many people that will be leaving AWS because of the decisions they’ve made.

Finally, Sacks argues “If your views are preferred by tech oligarchs, you can instantly get distribution to millions. If not, you can stand in the street yelling like a lunatic. No undue influence over our democracy there“. I agree that we have a problem in that a tiny number of companies have so much power, but I have to disagree with the remedy. I believe that just as we have many choices for offline locations, we need more varied locations to gather online. But, no company is an island unto itself. We all have to work together as a community.

*I don’t mean this to come across as if I’m attacking David. I actually think he’s thought long and hard about this and is trying to have a reasoned debate. I chose his arguments as some of the most reasoned conservative arguments that I’ve seen.

Bringing back the blog

Hiking with the kids

It’s been a while.

Life has been crazy.

My focus these days has been on the kids and making the most of their education while we’re all trapped sheltering in place. It’s a very interrupt-driven environment, which means that it’s tough to sit and focus on development work. So, I figured I’d do a little easy sysadmin work and get the blog back in decent shape.

This site has been living on a t2.small AWS instance for years. I had used a Bitnami installer to package up a whole WordPress installation. It was super easy to set up but was getting harder to maintain. The VM was running Centos 6, which is just prehistoric these days, and with apache, PHP, WordPress, and MySQL all bundled, it was hard to make sure that everything was up to date.

So, I broke everything back apart and did clean installs. Got the OS upgraded to the latest Ubuntu, which is dramatically easier to keep up to date. I moved off of Mysql and instead used AWS RDS Aurora. Did a clean vanilla install of WordPress.

One last thing that I had wanted for a long time so that I could take snapshots of the server and run multiple instances if necessary, was to move the media libraries and other files to S3 and use a CDN. This turned out to be easier than I had expected. Just required 2 CloudFront distributions for all of the sites hosted on this installation.

Now, I’m ready to get back into the habit of posting some thoughts and ideas. Not that I think anyone will read or care, but I’ve got to keep practicing writing.

Configuring a spring application to use https behind an ELB

I have a couple of sites that run on AWS and take advantage of Elastic Load Balancers to handle proxying to servers in a private VPC as well handling https security. While CloudFront distributions can be configured to upgrade requests to https if they come in as HTTP, I haven’t found a way to configure ELB connections to do the same. What I wanted is for the ELB to listen on both port 80 and 443 and if a connection comes in on 80, then to redirect to the same request on 443. This way if a user just enters the URL into their browser, they’ll automatically be upgraded to https even if they didn’t remember to specify it.
It’s fairly simple to accomplish this with an Interceptor. Create a class that will handle the redirects.

public class SecurityInterceptor extends HandlerInterceptorAdapter {
  private static Logger logger = LoggerFactory.getLogger(SecurityInterceptor.class);
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    String proto = request.getHeader("X-Forwarded-Proto");
    if (!Strings.isNullOrEmpty(proto)) {
      logger.debug("Found proto: {}", proto);
      if ("http".equalsIgnoreCase(proto)) {
        StringBuffer redirectString = createRedirect(request);
        logger.debug("Redirecting to {}", redirectString);
        return false;
    logger.debug("No proto header found");
    return true;
  private StringBuffer createRedirect(HttpServletRequest request) throws IOException {
    StringBuffer result = request.getRequestURL();
    result.insert(4, "s");
    String queryString = request.getQueryString();
    if (!Strings.isNullOrEmpty(queryString)) {
    return result;

Since encryption is handled by the ELB and all traffic arrives at the server as HTTP we have to rely on the x-forwarded headers to know if we should redirect the request back to a secure page.
Then I have a config class to load the Interceptor.

public class WebMVCConfig extends WebMvcConfigurerAdapter {
  private SecurityInterceptor securityInterceptor;
  public void addInterceptors(InterceptorRegistry registry) {

This Interceptor is specific to the x-forwarded headers that ELBs will send to the backend instance.

Hiring for culture fit can have unintended consequences

An interesting post on “culture fit.” I’ve been catching up on the SAASTR podcasts, and a lot of the interviewees sound like they’re falling into this trap. I agree with Matt’s assertion that by trying to hire people that you would want to hang out with, you will end up hiring a lot of people that look like you. Instead, you should focus on culture agnostic characteristics:

  • Are they kind and empathetic?
  • Do they care about their work?
  • Do they have good communication skills?
  • Do they have good self-management skills?

Finally, also look for “Do they bring a valuable new perspective?”

Terminal hack to make logging into a cluster easier

I’ve been looking for a way to make it simpler to quickly login to all nodes of a cluster from a mac terminal. Discovered a small npm module that helped me do it called ttab. With this npm module I can then write a bash script:

rs6 () {
ttab -w ssh
ttab ssh
ttab ssh
ttab ssh
ttab ssh
ttab ssh
if [ “rs6” = $TYPE ]

This will open one new terminal window with 6 tabs all logged into the different servers.