Grim Fandango – performed live with original actors

Grim Fandango – performed live with original actors

One of the absolute highlights of E3 has been Double Fine performing the classic adventure game Grim Fandango live on stage, complete with original voice actors and band.

Close your eyes, sit back in your easy chair, grab a balloon animal, sip from your margarita, and give it a listen.

Stanford prison experiment? Mostly a sham

Stanford prison experiment? Mostly a sham

We’ve all heard of the Stanford Prison Experiment – the one that proved that people can turn evil based on being given authority. There’s only one problem – it was mostly a sham. The original participants have been coming clean: they were hamming it up and were coached. Said one participant, “Anybody who is a clinician would know that I was faking. If you listen to the tape, it’s not subtle.”

Sadly, it looks as if that’s not the only experiment of that era that hand a thumb on the scale. Read more about the study from those who were in it here.

Raising kids who WANT to do chores

Raising kids who WANT to do chores

Mayans and many other indigenous cultures have a lot to teach western parents. Like how to raise kids that WANT to do chores – without even asking.

Turns out, it starts as toddlers who are invited over and over again to doing chores together. The research has turned up some interesting facts.

1. Don’t reward your toddlers for doing chores. Rewarding them after they finished produced LESS helpful kids later. It is unknown why.

2. Let your toddler help – even if they make bigger messes or it takes longer. Many modern parents tell the kid to go do something else, indigenous parents keep inviting them to help – even if it takes longer or the parent has to do it twice. “How else will they learn?” was one response.

3. Expose kids to chores as much as possible. Let them be part of any chore you’re doing. Especially during the early years, children watch adults and want to be a part of it. Instead of lecturing or explaining, simply give them a part of it to do with you. It shows they are part of the social activity of the family – that they belong and are being integrated – not excluded.

4. Give them tasks appropriate to their skill level. Hold measuring cups while you cook, moving a chair, etc. But it has to be a key part. Parents that give toddlers ‘fake’ projects (like re-sweeping a floor that’s already clean) quickly figure out they aren’t invited to really contribute.

5. Always work together. Motivation is lost if you divide up chores and everyone works solo. If doing laundry, make sure everyone is folding everyone’s clothes – not just their own. Make them part of a common goal together.

6. Don’t force it. Don’t force kids to help, offer them opportunities to be part of the activity and invite them to a task instead. It’s a subtle difference, but a huge one. Forcing or demanding creates resistance.

7. Westerners see children as wanting to just play, indigenous parents see toddlers coming over as an indication they want to help. Be creative and find ways to include them.

Read up about this fascinating difference here.

Dirty little secret: synthetic estrogen in our fish runs

Dirty little secret: synthetic estrogen in our fish runs

Putting a link to this research paper by Canadian scientists studying fish runs after a few folks asked about it. This is one study, there are others you can also find that show how all the synthetic and estrogenic substances in our personal care products, birth control pills, anti-depressants, etc are affecting fish development.

Municipal wastewaters are a complex mixture containing estrogens
and estrogen mimics that are known to affect the reproductive
health of wild fishes. Male fishes downstream of some wastewater
outfalls produce vitellogenin (VTG) (a protein normally
synthesized by females during oocyte maturation) and early-stage
eggs in their testes, and this feminization has been attributed to
the presence of estrogenic substances such as natural estrogens
[estrone or 17-estradiol (E2)], the synthetic estrogen used in
birth-control pills [17-ethynylestradiol (EE2)], or weaker estrogen
mimics such as nonylphenol in the water.

Read more here:
http://www.pnas.org/content/pnas/104/21/8897.full.pdf

Japan closes 80% of AirBnb’s and passes strict new laws

Japan closes 80% of AirBnb’s and passes strict new laws

Japan is cracking down hard on AirBnB. It just passed a new law to address minpaku (home shares) and 80% of Japan’s listed AirBnB’s have disappeared. As of next week, Japanese hosts have to register for permission to share their home with the federal government under the hotel and ryokan laws that promote fire and emergency safety. Hosts also won’t be able to rent out their homes for more than 180 days a year.

Japan now joins a growing trend from big cities limiting AirBnB as Parisian courts are also about to rule on the legality of more than 40,000 listings later this month.

I think this is a wonderful idea – and I hope it catches on here in the states. The sharing economy is a race to the bottom for workers and AirBnB contributes to already difficult and tight housing situations in major cities.

Futuristic US Currency

Futuristic US Currency

Andrey Avgust came up with a series of futuristic and beautiful designs for United States’ dollar bills. He came up with designs that utilize multiple layers of plastic, with serial numbers, QR codes and other details that are readable under UV light.

Pretty amazing – give the video a watch.

Setting up your own git server with individual user accounts

Setting up your own git server with individual user accounts

This is sort of covered in other spots, but not as clearly and from scratch. Here’s a complete guide that shows how to set up your own git server and git clients. I found this setup handy when trying out some more complex git merging commands and experimenting with remotes while learning git.

I tested this on Ubuntu 16.04 by creating an Ubuntu virtual machine and then cloning it. 1 VM for the server, and 2 for clients. I used bridged networking so each would get their own IP address, but that’s not required as long as the VM’s can communicate with each other over TCP/IP.

There are two ways to set the git accounts up. The first way shown has all client users accessing the repository through the same server user account. While each user’s submissions will be labeled correctly in the git log, having everyone use the same system account isn’t safe computing practices for groups. Instead, if you follow the instructions in the optional part you can use individual user accounts and keep things more safe.

Client/Server Setup

First, on the server:

  1. Make sure ssh is installed on the server:
    server$ sudo apt-get install openssh-server
  2. Make sure sshd is running/listed when you do a ps. If not, reboot or restart it.
    server$ ps -A | grep sshd
  3. Make sure git is installed:
    server$ sudo apt-get install git-core
  4. Add a user to the server that will hold the git repositories
    server$ sudo adduser git
    server$ sudo passwd git
    server$ su - git
    server$ mkdir -p .ssh

Next, on your client:

  1. Make sure git is installed
    client$ sudo apt-get install git-core
  2. Create an ssh key. While not strictly required, it’s a good idea to add a passcode to the key when prompted during key creation.
    client$ ssh-keygen -t rsa

    This should create a file called id_rsa.pub in your ~/.ssh directory. See documentation on ssh-keygen for full details.

  3. Copy the ssh key to the server’s git directory:
    client$ scp ~/.ssh/id_rsa.pub git@server.com:/home/git/client_id_rsa.pub

Back on server:

  1. Add the client user’s key to the ssh list in the /home/git/.ssh directory
    server$ mkdir ~/.ssh
  2. Append the client user key to the list of authorized keys
    server$ cat ~/client_id_rsa.pub >> ~/.ssh/authorized_keys
  3. Create a new group called ‘gituser’ we’ll use for users to access our repository in /home/git/
    sudo groupadd gituser
    sudo usermod -a -G gituser git
  4. Log out completely and back in. You MUST do this for group assignment to take effect orsubsequent chgrp/chmod commands won’t work.
  5. Make the git repository and tell it to share based on the group the user belongs to.
    server$ cd ~git
    server$ mkdir -p mydepot
    server$ cd mydepot
    server$ git init --bare --shared=group
    Initialized empty Git repository in /home/git/mydepot/
  6. Set the permissions on the repository directory so that anyone in the new ‘gituser’ group can access it.
    chgrp -R gituser /home/git/mydepot
    chmod -R g+rw /home/git/mydepot
    chmod g+s `find /home/git/mydepot -type d`

Back on client (if it is a clean client without files for the repo):

  1. Test your ssh connection by trying to ssh into the server (using the git user)
  2. Create the local project:
    client$ mkdir -p depot/project1
    client$ cd depot/project1
    client$ git config --global user.email "you@client.com"
    client$ git config --global user.name "clientUsername"
  3. Clone the remote to your local system
    client$ git clone ssh://git@serverurl_or_ip:/home/git/mydepot/ .

Enter your username password and you’re done. The clone and the remote should be connected. Push/Fetch as normal. See the optional part below if you don’t want to use a global git user account on the server.

Or – Back on client that HAS existing files you want to get to the server:

Lets say you have a client that already has a bunch of files or even a git repository and you want to start using a remote repository. Here’s how you can add those local files into the remote server repository you just created.

  1. Initialize the repository where your client files are
    client$ git init
      Initialized empty Git repository in <blah>
    client$ git add .
    client$ git commit
      <Write something about this being a commit from the client>
  2. If you are going to using the git user account for all users, connect the project to your server this way:
    client$ git remote add origin ssh://git@serverurl_or_ip:/home/git/mydepot/

    If you don’t want to use the git account, then you must first create a user account on the server that matches the client userid (making sure to set the group/user properties on the server account), then use this:

    client$ git remote add origin ssh://serverurl_or_ip:/home/git/mydepot/

    Enter the password for your username or the ‘git’ server user depending on which one you used.

  3. Set up git configuration to avoid warnings and push:
    client$ git config --global push.default simple
    client$ git push --set-upstream origin master

    You will be prompted for the passkey you used when you created your RSA key in the above push step. Enter that passkey (not your git/user account password).

Optional – Using user accounts instead of a global ‘git’ account on the server.

The previous instructions had everyone use the same ‘git’ server user account when checking in – which means everyone must have the ‘git’ server account password. The log will show the right names, but security-wise this isn’t always best to use one global account on servers.

If you have more than one user but want everyone to log in separately, simply create a user account on the server like this:

On client for each client user:

  1. Create a ssh key on your client as before.
  2. Copy that key .pub to the server and append it to the authorized_keys file as above.
    client$ scp .ssh/myclient_id_rsa.pub git@serverurl_or_ip:/home/git

On server:

  1. Append the client’s public key to the authorized keys
    server$ cat ~/myclient_id_rsa.pub >> ~/.ssh/authorized_keys
  2. Create a user account that matches the userid on the client
    server$ sudo useradd client_username
    server$ sudo passwd client_username
  3. Make sure the new user account has access to the /home/git/ project directories by setting their group membership:
    server$ sudo usermod -a -G gituser client_username

From now on, you don’t need to specify the git user account. Do not put the git@ part into the git clone url and use the username’s password when asked to log in:

client$ git clone ssh://serverurl_or_ip:/home/git/mydepot .

This method works great, but does require that you keep the client and server userid account passwords synced.

Setting up a Windows client:

Once the server is set up, you’re almost there. Microsoft has written a good guide. You’ll need OpenSSH or Windows 10 installed the generate an ssh key (if you don’t have one already).
https://docs.microsoft.com/en-us/vsts/git/use-ssh-keys-to-authenticate?view=vsts

Resource links: