The Daily Parker

Politics, Weather, Photography, and the Dog

And then there was one

Sears, which CEO Eddie Lampert has very nearly murdered, will have only one retail store left in its home town Chicago this fall:

Sears Holdings Corp. is closing 20 more stores, including a Sears in Chicago's Galewood neighborhood, in mid-September.

Those closings — including 18 Sears and two Kmart stores — follow 150 stores Hoffman Estates-based Sears shuttered in the first quarter of this year and another 66 expected to close by early September.

The latest 20 are among the 235 locations Sears sold to its real estate investment trust spinoff, Seritage Growth Properties, in 2015. Seritage reported the closings in an SEC filing Friday.

Remember, Lampert is destroying the greatest retailer in American history so he can sell its parts for scrap. When historians write about this era centuries from now, Lampert will be regarded as we think of Nero. But as a nihilist Ayn Rand disciple, he really doesn't care.

We're #16!

Real estate firm Cushman & Wakefield has published a list of the top-25 tech cities in the U.S. It turns out, we're not Silicon Valley:

The report’s authors analyzed data from a variety of sources to measure factors such as universities, capital, talent and high-growth companies. The authors evaluated the cities on the potential for tech to affect the commercial real estate business, they wrote in the report.

Chicago’s overall rank, No. 16, placed it behind Portland and New York and ahead of Atlanta and Los Angeles. The authors addressed the low rankings of the country’s two largest cities in a release, saying New York faced a historic lack of engineers — which may change as investment in local universities and tech schools increases — and that Los Angeles’ economy is too diverse for tech to be a driving factor. They wrote that Seattle, home to tech giants Microsoft and Amazon, is likely the biggest competitor to the Bay Area.

The percentage of Chicago’s workforce made up of tech workers is also relatively low compared to other tech cities on the list, at about 5 percent. That places Chicago just behind Indianapolis and just ahead of New York, according to data from the Bureau of Labor Statistics and Moody’s Analytics. Compare that to Silicon Valley, where more than 27.4 percent are tech workers.

We're still living in the Greatest City in North America. But as far as tech goes, we're a little behind the Bay Area, Boston, and Raleigh-Durham.

Chicago's taxi fleet is dying

USA Today is reporting that Uber and Lyft are destroying the taxi industry here:

About 42% of Chicago’s taxi fleet was not operating in the month of March, and cabbies have seen their revenue slide for their long-beleaguered industry by nearly 40% over the last three years as riders are increasingly ditching cabs for ride-hailing apps Uber, Lyft and Via, according to a study released Monday by the Chicago cab drivers union.

More than 2,900 of Chicago’s nearly 7,000 licensed taxis were inactive in March 2017 — meaning they had not picked up a fare in a month, according to the Cab Drivers United/AFSCME Local 2500 report. The average monthly income per active medallion — the permit that gives cabbies the exclusive right to pick up passengers who hail them on the street — has dipped from $5,276 in January 2014 to $3,206 this year.

The number of riders in Chicago hailing cabs has also plummeted during that same period from 2.3 million monthly riders to about 1.1 million.

The Illinois Transportation Trade Association of Illinois unsuccessfully sued the city of Chicago, arguing that Chicago had unconstitutionally enforced two sets of rules for taxi and ride-sharing industries and made it impossible for cabbies to compete with Uber and Lyft.

But the U.S. 7th Circuit Court of Appeals ultimately rejected the taxi industry’s argument. Cabs and ride-hailing, the court ruled last October, are distinct services and could thus be regulated differently. In April, the Supreme Court declined to hear the case and the 7th Circuit’s finding stood.

As a consumer of these services, I have switched almost entirely to Lyft. (I hate, hate, hate Uber's business practices and refuse to patronize them.) So though I'm part of the problem, I believe the taxi industry did a lot of this to themselves. How difficult would it have been for the taxi fleet to solve the predictability problem? I mean, if there were an app that would summon a taxi to a specific place and tell you what the fare is to your destination ahead of time, how would Lyft have become so successful?

Getting a Rails app to run on Bash on Ubuntu on Windows

(This is a cross-post with my employer's blog.)

I'm the newest team member at DevMynd, and so far, the only one with a Windows PC. Since we do most of our work in Ruby on Rails, and since everyone else has Macs, this presents a challenge.

If I wanted to do this the easy way, I'd simply run Rails on Windows natively. But I decided instead to do it the hard way and use Linux and BASH. First, I had a couple of free days to get up to speed last week giving me some time to experiment. Second, I figured that running on a completely different platform might introduce hard-to-diagnose bugs. (Both Linux and MacOS are *nix operating systems while Windows is not). I hope that what follows will make this a considerably less-hard way for everyone else.

This is how I got everything working on a Windows 10 Creator Edition (build 10.0.15603) box using Bash on Ubuntu on Windows also known as Bash/WSL. WSL (Windows Subsystem for Linux) is a beta feature of Windows 10 so some of what follows may be different on other versions of Windows.

Also, this post assumes that you are coming into the Linux world for the very first time, and your mind is a deep, pure, clear lake of Windows expertise completely unencumbered by any knowledge of Linux whatsoever. If you already know Linux, a lot of this might be redundant.

Important!

  • Don’t change Linux files using Windows apps and tools. You will hose your Linux environment. That said, since your Bash/WSL environment can read the Windows file system, you can just point to it from within BASH to run your Rails project.
  • Read the Bash on Ubuntu on Windows FAQ.

Steps

1.  Turn on Developer Mode

In Developer Features, turn on "Developer mode". You will need to reboot after this step.

2. Turn on WSL

In Windows Features, turn on "Windows Subsystem for Linux (beta)". You will need to reboot after this step.

3. Run BASH as administrator.

(Window key, "Bash", right click, "run as administrator.")

4. Install Ubuntu

(Ubuntu is the only *nix image available for WSL at the moment, following a partnership between Microsoft and Canonical.)

When BASH starts, it will prompt you to install Ubuntu on Windows. Hit "y" to do so.

5. Install Ruby prerequisites

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

6. Install rbenv

rbenv will let you use different versions of both Ruby and Rails as needed:

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

7. Install Ruby

Install the version or versions of Ruby you'll need to use. For example, to install v2.4.0:

rbenv install 2.4.0

(Optional) Set a global, default version of Ruby. For example, to make v.2.4.0 the default on your system:

rbenv global 2.4.0

(Optional) Check what version of Ruby you're using as a default:

ruby -v
rbenv -versions

8. Install Bundler:

gem install bundler

Then Rehash rbenv:

rbenv rehash

9. Install Rails

5.0.1 shown; you can install multiple versions

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

gem install rails -v 5.0.1

10. (Optional) Install MySQL

MySQL

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

Test your installation

Now you're ready to create a sample application and see if it works.

1. Create an empty Rails application with a database.

a. SQLite

Create an empty application using the Rails default SQLite database:

rails new deleteme

b. MySQL

Create an empty application using MySQL and then start the MySQL server:

rails new deleteme -d mysql
sudo /etc/init.d/mysql start

2. Initialize your application.

This is the happy path:

cd deleteme
rake db:create
rails server

3. View your application

Open a browser and navigate to http://localhost:3000.

Congratulations!

You should now be looking at a Ruby on Rails welcome screen. Happy BASHing.

In a subsequent post, I'll look at installing Postgres on Bash/WSL, and all the things I had to fix while doing it.

A year of Google Maps

Via my company's Slack #general channel, San Francisco cartographer Justin O'Beirne has analyzed the changes Google has made to its Maps feature over the past year, while Apple Maps has stagnated:

So it seems that Apple is updating its map more frequently than Google.

But when we look closer, this doesn’t seem to be what’s happening. For instance, near the park’s southeast corner, there’s a group of three auto service-related businesses: Domport Auto Body ServiceFell Street Auto Service, and California Detailing...

Google has distinct locations for each. But Apple plots them at the same location...

...and as the months pass by, Apple cycles through all three – padding our addition/removal counts...

A number of the additions and removals we counted earlier on Apple are similar – the map is cycling though businesses plotted at the same location.

This all seems to suggest that Google’s location data is more precise than Apple’s. (Or that Apple’s geocoder is buggy.) And perhaps here we’re seeing the fruits of Google’s decade-long Street View project...

It's a long essay with tons of examples and animations. Total Daily Parker bait.

Speaking of my company, I'll have a post up on the company's blog shortly which I'll cross-post here. Keep your eyes peeled.

Windows moves to Git

The Microsoft Windows operating system has millions of lines of code maintained by thousands of developers. And in the past three months, Microsoft has moved 90% of its code to the open-source Git version control system:

The switch to Git has been driven by a couple of things. In 2013, the company embarked on its OneCore project, unifying its different strands of Windows development and making the operating system a more cleanly modularized, layered platform. At the time, Microsoft was using SourceDepot, a customized version of the commercial Perforce version control system, for all its major projects.

SourceDepot couldn't handle a project the size of Windows, so rather than having the whole operating system in a single repository, the Windows code was actually divided among 65 different repositories, with a kind of virtualization layer on top to produce a unified view of all the code. Some of these 65 repos contained nicely isolated, standalone components; others took vertical or horizontal slices through the operating system; others were just grab bags of different code. As such, the repo structure didn't correspond with OneCore's module boundaries.

Due to widespread developer familiarity and strong support for creating lots of branches with low overhead, the decision was made to use Git as the new system. But Git isn't designed to handle 300GB repositories made up of 3.5 million files. Microsoft had to embark on a project to customize Git to enable it to handle the company's scale.

You read that right: Windows contains 3.5 million individual code files, and there are so many changes to them (8,500 per day on average), they had to create their own super-charged version of Git.

Programming nerds will want to read the whole article. Non-nerds can scroll down for political stuff.

DevMynd

I started a new role today as a Principal Consultant at DevMynd, a startup-y software development shop in the Wicker Park neighborhood of Chicago.

DevMynd logo

I'll have more information later this week. For now, I'm really excited to start here, especially as I'll be learning a couple of new languages. So watch this space for really bad Ruby code coming up.

This fake news is from Donbass, dumbass

Laura Reston at New Republic has a good piece on how the Soviets Russian government is doubling down on its disinformation campaign against Western democracies:

One of the most recent battles in the propaganda war took place on January 4, less than a week after President Obama expelled 35 Russian diplomats in retaliation for the Kremlin’s meddling in the U.S. election. The Donbass International News Agency, a small wire service in Eastern Ukraine, published a short article online headlined “MASSIVE NATO DEPLOYMENT UNDERWAY.” Some 2,000 American tanks were assembling on the Russian border, the agency reported. The United States was preparing to invade.

The story was a blatant fabrication.

Such tactics were pioneered during the Cold War, as the Soviet Union worked covertly to influence political dialogue in the West. From KGB rezidenturas scattered around the world, a small division called Service A planted false stories in newspapers, spread rumors, and worked to stir up racial tensions. In 1964, a KGB front group helped Joachim Joesten, a former Newsweek reporter, publish a sprawling conspiracy theory about John F. Kennedy’s assassination, which later became the basis for Oliver Stone’s JFK. In 1983, Russian operatives planted a story in a small Indian newspaper claiming that the U.S. government had manufactured the AIDS virus at a military facility in Fort Detrick, Maryland—and Soviet wire services then trumpeted the story all over the world. As U.S. officials later explained in a report to Congress, “This allows the Soviets to claim that they are just repeating stories that have appeared in the foreign press.”

The internet has enabled the Kremlin to weaponize such tactics, making propaganda easier to manufacture and quicker to disseminate than any guided missile or act of espionage. Russian operations like the Internet Research Agency have employed hundreds of bloggers to mass-produce disinformation in the form of misleading tweets, Facebook posts, and comments on web sites ranging from The Huffington Post to Fox News. “Since at least 2008,” Peter Pomerantsev, a Russian media expert, observes, “Kremlin military and intelligence thinkers have been talking about information not in the familiar terms of ‘persuasion,’ ‘public diplomacy,’ or even ‘propaganda,’ but in weaponized terms, as a tool to confuse, blackmail, demoralize, subvert, and paralyze.”

Meanwhile, our deranged President this morning openly threatened private citizen James Comey on Twitter, which should give everyone pause.

We were #1

Forty four years ago today, workers in Chicago completed the Sears Tower:

The original plan was to build two separate buildings. That was changed to a single structure, 1,454 feet high. As board chairman Gordon Metcalf explained, “Being the largest retailer in the world, we thought we should have the largest headquarters in the world.”

Construction began in 1970. The foundations were dug, and the steel frame began to rise slowly over Wacker Drive. On the way up, the Sears Tower passed the former record holder, the twin towers of the World Trade Center in New York.

The Sears Tower kept is title until 1996. Today all the sky-piercing structures are going up in Asia.

Meanwhile, in 1992, Sears again moved its headquarters, this time to Hoffman Estates. The tall building on Wacker Drive is now known as the Willis Tower.

And in the meantime, Eddie Lampert has poisoned the company to death.

Things I'll be reading this afternoon

Some articles:

And now, Parker needs a walk.