The comeuppance of Silicon Valley

It’s not in full decline, but Silicon Valley is on its heels these days, whether due to the practices at Uber or Facebook or Google or …well, the companies that belong there as a whole. Here’s three pieces that all touch on the some of the problems there, but really I could have put three dozen recent articles instead of just these three:

  1. There’s Blood In The Water In Silicon Valley
  2. Privilege and inequality in Silicon Valley – Tech Diversity Files – Medium
  3. Silicon Valley is confusing pseudo-science with innovation – The Verge

Everything I see tells me that they are not equipped to deal with the challenges on their own. If this is true, then expect these high tech companies to come in for a political bruising soon.

Some thoughts on the problems Facebook and Google (and even retailers) have with people being awful on their platforms

Google, Facebook, and Twitter are platforms. So are some retail sites. What does that mean? It means that they provide the means for people to use their technology to create things for themselves. Most of the time, this is a good thing. People can communicate in ways they never could before such platforms. Likewise, people can sell things to people they never could.

Now these platforms are in a bind, as you can see in this piece and in other places: Google, Facebook, and Twitter Sell Hate Speech Targeted Ads. They are in a bind partly due to their own approach, by boasting of their ability to use AI to stop such things. They should have been much more humble. AI as it currently stands will only take you so far. Instead of relying on things like AI, they need to have better governance mechanisms in place. Governance is a cost of organizations, and often times organizations don’t insert proper governance until flaws like this start to occur.

That said, this particular piece has several weaknesses. First up, this comment: “that the companies are incapable of building their systems to reflect moral values”. It would be remarkable for global companies to build systems to reflect moral values when even within individual nations there is conflicts regarding such values. Likewise the statement: “It seems highly unlikely that these platforms knowingly allow offensive language to slip through the cracks”. Again, define offensive language at a global level. To make it harder still, trying doing it with different languages and different cultures. The same thing occurs on retail sites when people put offensive images on T shirts. For some retail systems no one from the company that own the platform takes time to review every product that comes in.

And that gets to the problem. All these platforms could be mainly content agnostic, the way the telephone system is platform agnostic. However people are expecting them to insert themselves and not be content agnostic. Once that happens, they are going to be in an exceptional bind. We don’t live in a homogenous world where everyone shares the same values. Even if they converted to non-profits and spent a lot more revenue on reviewing content, there would still be limits to what they could do.

To make things better, these platforms need to be humble and realistic about what they can do and communicate that consistently and clearly with the people that use these systems. Otherwise, they are going to find that they are going to be governed in ways they are not going to like. Additionally, they need to decide what their own values are and communicate and defend them. They may lose users and customers, but the alternative of trying to be different things in different places will only make their own internal governance impossible.

 

Where Apple is going next

According to this source, Apple is going into the Health Care Industry: Apple Is Going After The Health Care Industry, Starting With Personal Health Data.

I think a more general statement is that Apple is going to be looking into expanding into services, be they health care, banking, or something else.  They’ve already been successful with Apple Pay.  I expect they can find niches in health care and other industries that they can easily fit into. Plus they can work with partners to deliver tools to people and health care providers that can save everyone in terms of health care costs.

I’m looking forward to Apple bring forth innovations in health care that results in lower costs and better care. I hope they can deliver.

For more on some current health features from Apple, go here.

Very cool. Build a Google Home for Only $35

This is a pretty cool DIY project: The AIY Voice Kit Lets You Build a Google Home for Only $35.

Now, I have my qualms about letting Google have access to so much personal information. If you do not have such qualms and you want to build a cool project, click the link and head on over to Wired, where they have more information on it and how to get it.

Juicero post-mortem

 

Juicero
The juicero is toast. Not surprising to me: it was a terrible idea.

While the juicero was terrible, this analysis of the engineering behind the juicero is fantastic: Here’s Why Juicero’s Press is So Expensive – Bolt Blog.

Even if you aren’t interested in this device, read this analysis. You will come away with a much better appreciation of all the devices currently in your own life and some of the thinking that goes into making them.

 

Is it okay for a city to track … and other thoughts

This: Is it okay for a city to track what’s in your poop? – Macleans.ca, is a provocative question that headlines a good article.

Now for most people, the answer would be a loud “no!”.  But as you can see in the article, smarter cities lead to municipal governments gathering more information about you. Certainly in the case of smart meters, the government agency can tell alot about you just from when you use power. Digital technology and the need to better manage government resources can lead to further tracking, including to what is in your waste water. Expect to see more such tracking in the future.

Ideally for any information being gathered about you, there would be strict control over who has access to the information and what they can do with it. As well, there would be some accountability with regards to that information. I would expect there is a mixed record for much of that information, but the fact that I can only speculate tells me there is more work to be done with regards to accountability.

Read the article. It helps to be informed about such tracking so you can know how you can be tracked and how you can ask questions about such tracking to government officials and elected politicians.

Don’t discount the Apple Watch, for two reasons

Reason #1: Apple is seeing growth in sales of the Watch, and plans to give it cellular capabilities will drive growth further. If cellular networks allow you to share your number across your phone and watch, it could really support people who may want to go without their phone from time to time.
Reason #2: is my belief that the Watch will provide Apple with a platform to develop miniaturization. Having different platforms and different scales allows Apple to innovate and gets their partners like Intel to do the same. This will support Apple in being either first or best in the areas they have products.

I'm glad to see the Watch continue to grow. I would not be surprised to see some of the features we once saw in the Shuffle morph into the Watch. That would make up some for the lost of that other once great platform of Apple, the iPod, which was loved and now lost.

Installing SonarQube on CentOS/RHEL

The following webpage has detailed instructions for installing and configuring SonarQube on a RHEL/CentOS 7 Linux server (real or virtual) and it was one of the best guides I’ve seen (and I’ve reviewed half a dozen):

The webpage  outlines how to update your Linux server, how to install MySQL (as a data repository) on it, and how to then install SonarQube software on the server.

Some things to note. First, this procedures has you using wget to get v6.0 of SonarQube:

Check out the page https://www.sonarqube.org/downloads/ and see the latest version of SonarQube (e.g. 6.4) and replace “sonarqube-6.0.zip” with the latest version (e.g. “sonarqub-6.4.zip”.)

One important thing to note: this procedure creates a userid and database called sonarqube.

Later in the process, the changes made to /opt/sonarqube/conf/sonar.properties needs to match this:

sonar.jdbc.username=sonarqube                                   sonar.jdbc.password=password
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

If the userid, password and database you created in MySQL do not match what it is the sonar.properties file, you will see cannot connect to the database errors in the /opt/sonarqube/logs/web.log file and SonarQube will not come up.

Once you enter: sudo ./sonar.sh start

Get the IP address of the SonarQube server and then go to a browser and enter:

The CRTC upholds net neutrality in Canada

It may not seem obvious, but preventing ISPs from providing zero-rating is actually support for Net Neutrality.

I generally see Net Neutrality as a good thing, though the ISPs have something of a case here. That said, Net Neutrality is a good thing to stick with, especially because what the ISPs give they can also take away.

More on the CRTC ruling here: CRTC ruling against zero-rating a boon for businesses, experts say (via IT Business)

Jean-Luc Mélenchon, a candidate right out of a Philip K Dick Novel

Melenchon hologram
In France, politician Jean-Luc Mélenchon plans to be in seven places at once using  something similar to a hologram. According to Le Parisien:

Strictly speaking, these are not holograms. Jean-Luc Mélenchon will be present in seven different places thanks to … an optical illusion discovered for the first time half a century ago by an Italian physicist

Virtual Mélenchon reminds me of the politician Yance in Philip K Dick’s novel, The Penultimate Truth. We may not be far off where we get virtual candidate that look like people but behind the scenes we have AI or some combination of AI and people.

For more on the technology, see the article in Le Parisien. For more on Dick’s novel, see Wikipedia. Read up now: I think we can expect to see more of this technology in use soon.

How to get a Raspberry Pi working with a TV with composite/component input (as opposed to HDMI)

RaspberryPiTV
I had an old Raspberry Pi 1 Model A, with an HDMI port and a standard RCA composite video port for older displays and I also had an old Toshiba TV (pictured above) and I wanted to get them working together. Here’s what I did and here’s some things I learned.

First things first, I had to get a the Raspberry Pi functional. To do that, I mostly followed the steps here: http://www.pcworld.com/article/2598363/how-to-set-up-raspberry-pi-the-little-computer-you-can-cook-into-diy-tech-projects.html. I say mostly because I was using a Mac, so I used SDFormatter to format the SD card. If you have a Mac, you can get SDFormatter here.

Basic steps to set up the Pi were:

  1. Download Raspbian
  2. Download SDFormatter
  3. Put the SD Card in my Mac (you want at least an 8 GB SD card).
  4. Format the SD Card using SDFormatter
  5. Unzip Raspbian
  6. Take the files in the unzipped Raspbian folder and copy them onto the SD Card (which should appear on your desktop)

All that is pretty straightforward in terms of setting up the Pi. If you don’t care for the instructions from PCWorld, Google “Raspberry Pi setup Mac” (or Windows or whatever your operating system) and you will likely find a site that is helpful.

Now, once the files are copied on to the SD Card, modify the config.txt file on the SD card. This is a key thing I had to do. Before I did it, I could plug my Pi into the TV but nothing appeared on the screen. After modifying the config.txt file (and it took some hacking around), I was able to get it to work.

Why do you have to do this? It seems that Raspbian assume you will be using HDMI and will not recognize a non-HDMI output device unless you modify the file. So modify it you must.

Note! Before I edited the file and replaced the text in it, I selected all of the text in that file and copied and pasted it into a file on my Mac as a backup. I recommend you do the same. Then I made the changes to the file, saved it, then ejected the SD card and put it in my Raspberry Pi. If you want to see my version of the file, you can see it here.

It was a process of trial and error to figure out which lines in the the config.txt to change. I was fortunate that I could start with this page which had details on how he got it working. Unfortunately his config.txt and the one I needed were slightly different, so I kept at it until I figured out how it should work. (With his file, the text was unstable: it kept rolling up the screen. With my file, the text did not roll.)

In my config.txt, I have colour burst disabled, rendering everything in black and white. Enable it if you want colour. I disabled it because I thought it would improve resolution but it did not.

Other things to note:

  • I had trouble determining which part of the composite cable should go into the TV. I had one end plugged into the Raspberry Pi, but it took me trial and error until I figured out where to plug the other end into the TV.
  • It will take up to a minute or longer before the Raspberry Pi sends video to my TV. If you don’t see output right away, be patient.
  • Most newer TVs also have composite/component ports. I used them for some testing.
  • Is it worth doing this if you can hook up to HDMI? I’d say no. I wanted to make use of the old Toshiba TV but if I had an old monitor with an HDMI port, I’d get an HDMI cable from the dollar store and connect up the Raspberry Pi that way.
  • When is it worth doing? I’d say if you had simple output to display, and the only ports available on your TV were the component ports, than give it a shot. I actually wrote a simple Twitter client in Python that polls Twitter every 5 minutes and displays my feed in text form. For simple text output like that, this set up is perfect. (You can see the output above: it looks weird due to the refresh rate and my phone: to the eye, it looks ok.)
  • Is it component or composite? I see the words “component” and “composite” used  and I am not sure which is correct.  In my case, all I know is I have one cable to connect the Pi’s video output to the TV’s input port. The Pi has only one video port to plug into, so that’s easy. Most TVs will have more than one port to accept video input: you need to experiment to get the right one.

I hope you found this useful.

P.S. The other thing I like about doing this is: my TV now  looks like the TV between Leon and Holden in Blade Runner. 🙂

Thoughts on automation, from the WSJ (and me, someone who specialized in automation)

Robots
Christopher Mims has a good piece here that touches on many of the recent arguments concerning automation, here: Automation Can Actually Create More Jobs (WSJ). Well worth reading.

For my own perspective, early in my career my job was automating many of the systems operations tasks in my part of IBM. In one year I automated essentially the work of 10 people. No one lost their job as result, because while it was good to have these activities automated, the activities were not valuable enough to justify hiring people to do the work. Essentially the automation improved the quality of our work. Automation using IT to improve the quality of work is a good use of automation, be that automation be a lowly shell script or very expensive robot with A.I. Quality aside, how the automation affects staff depends on the culture and the makeup of an organization.

There is talk of places like McDonald’s replacing workers with kiosks as a result of a drive by some for a higher minimum wage. First off, McDonald’s are rolling out those kiosks in Canada, too, which makes me think they are going to deploy them regardless of what the minimum wage is. Second, I have used the kiosks a number of times, and they are of a limited benefit to a McDonald’s customer. The kiosks are good if there is a long line for a person to take your order: they kiosks are bad if there is a small line or no line. They are bad because it will take you many more minutes to place your order, due to the kiosk’s user interface. (Try one and you will see.) The kiosks some time will fail to print out your receipt: if you don’t remember your order number, then you have to go in line, tell them what you ordered, and then get your number. Overall the kiosks are not bad: they are especially good if you like to special order. But if the lines aren’t long and your order is standard, skip them and go in line.

Besides that, McDonald’s will still have plenty of staff and likely will for the future. Kiosks can’t cook, can’t pack your order, and can’t clean the restaurant. If you think robots can do that and do it cheaply, you need to learn more about robotics. I can see why McDonald’s and other fast food places need automation: they are constantly trying to retain people while trying to keep costs down. But the notion they are automating to spite people looking for a higher wage is ridiculous. McDonald’s is not going to become a glorified vending machine and they should not try to be. People go to restaurants and coffee shops to socialize and to come in contact with other people, and automation will provide less of that, not more.

As well, smart fast food places will learn that human contact makes for better business (see Starbucks). There are many ways to be successful as a fast food business, and a positive experience in dealing with staff is one of those ways.

Automation changes work. However, how it changes work is complex. It is tempting to assume that it will eliminate all work, but that is too simplistic. In addition, we need to think about work, income, and why we do what we do. Automation can help us do that, and that is one clear benefit of automation.

(Image: link to image.freepik.com)

How IBM Watson helped Time magazine narrow its search for Person of the Year 

Interesting article: How IBM Watson helped Time magazine narrow its search for Person of the Year (IT Business)

From a technology point of view, it is also interesting that the IBM partner was using IBM’s Watson and Bluemix technologies.

I am biased here, as someone who works for IBM and believes in these technology, but I do think that if you think A.I. and cognitive doesn’t have a place in your business, you should read this. In the next two years, expect all your competitors to adopt these new technologies to compete with you.

My mixed bag of IT links for December

Like previous collections of IT links, this collection reflects things I am interested in or found useful recently:

  1. If you want to get started using APIs, I recommend this: Most Popular APIs Used at Hackathons | ProgrammableWeb
  2. If you want to build that web site, consider Using Twitter Bootstrap with Node.js, Express and Jade – Andrea Grandi, and this Building a Website from Scratch with ExpressJS and Bootstrap | Codementor. Also Mastering MEAN: Introducing the MEAN stack and Bluemix Mobile, Part 1: Creating a Store Catalog application – Bluemix Blog
  3. Or develop a mobile app like this: Create Swift mobile apps with IBM Watson services – developerWorks Courses
  4. I am a fan of Bluemix and Eclipse. This article ties them nicely together: IBM Bluemix – Eclipse Package Download – Neon release.
  5. I am also a fan of IoT these days. For fellow IoT fans, these links are good: Intro to Hardware Hacking on the Arduino — Julia H Grace and $10 DIY Wifi Smart Button | SimpleIOThings.
  6. Speaking of IoT, if you have been doing some work with Arduinos, you might be interested in the ESP8266. Some good info on it here ESP8266 Thing Hookup Guide – learn.sparkfun.com and a good thing to do with it, here: SimpleIOThings | Simple Do-It-Yourself Internet-of-Things Projects
  7. More good links related to software and application development work here Migrate an app from Heroku to Bluemix and here A Concise Introduction To Prolog, plus Building without an Ounce of Code – Part 2 – Apps Without Code Blog and this Turning a form element into JSON and submiting it via jQuery – Developer Drive
  8. Some interesting links pertaining to Minecraft: Can Minecraft teach kids how to code? – Safari Blog and Minecraft and Bluemix, Part 1: Running Minecraft servers within Docker.
  9. There’s lots of talk about AI these days, the  Economist explains why artificial intelligence is enjoying a renaissance
  10. If you are interesting in working in IT, you might like this: How to Get a Job In Deep Learning or this: An Unconventional Guide for Getting a Software Engineering Job — Julia H Grace
  11. Or maybe you want start a start-up. If so, check this out: A Free Course from Y Combinator Taught at Stanford | Open Culture
  12. Finally, here are just a number of interesting but mostly unrelated links:
    1. IBM Blockchain 101: Quick-start guide for developers
    2. Building three-tier architectures with security groups | AWS Blog
    3. Performance Tuning Apache and MySQL for Drupal
    4. How to secure an Ubuntu 16.04 LTS server 
    5. Clean Your System and Free Disk Space | BleachBit
    6. Use an iPad as a Raspberry Pi display — Kano OS – YouTube
    7. (Software iSCSI) Configuring SAN boot on Red Hat Enterprise Linux 5 or 6 series

 

Two additions to my github repositories: one for IBM Watson, one for monitoring Linux systems

I’ve recently added two repos to my github account:

The first one is some proof of concept code I wrote to demonstrate how to work with IBM Watson’s Tradeoff Analytics service using node.js

The second one is some sample code I have had for some time that does simple server monitoring of a Linux server.

There is no intellectual property involved in these repos: it is simple code based on documented code samples found in many places on the web.

For more details, see my Github landing page, here: blm849 (Bernie Michalik)

Is Tim Cook the Steve Ballmer of Apple?

This piece makes a strong case that he is: Why Tim Cook is Steve Ballmer and Why He Still Has His Job at Apple. I’d add to it and say that people like Steve Jobs and Bill Gates were great people at a great time and a great place. Steve Jobs wasn’t terribly successful at NeXT: he was still great, but the timing of his ideas wasn’t and the company itself wasn’t either. Tim Cook and Steve Ballmer are very good CEOs, but they are not in the same league as Jobs and Gates, and you could argue that the time has come and gone for both Apple and Microsoft.

Apple has many good months and years ahead. We will have to wait and see if they can regain the golden era of Jobs and his new iMacs, iPods, and iPhones.

The Apple Car is off (for now)

According to the article below, Apple “has drastically scaled back its automotive ambitions, leading to hundreds of job cuts and a new direction that, for now, no longer includes building its own car, according to people familiar with the project.” Too bad. I expect we will see more and more car related activity from Apple, but a shiny new vehicle may not be one of those things.

For more details, see:

Source: How Apple Scaled Back Its Titanic Plan to Take on Detroit – Bloomberg

My favorite place to go for technical tutorials is DigitalOcean

If you want tutorials that are clear and understandable and work, then I recommend the Tutorials at DigitalOcean. You might think it is obvious, but I can’t count the number of how to technical guides on the Web that don’t work are hard to understand and confusing.  All the ones I’ve used from DigitalOcean have worked well. Plus they are a pleasure to read.

Now when I am searching on for a technical topic, I put in “DigitalOcean” as part of the search terms.

Installing and configuring and using IT is hard enough: make getting started that much easier by using their tutorials.

Thoughts on using JMeter to do web performance testing

There are many tools to use for web performance testing, but if you want a good tool that does the job, I recommend Jmeter. The good and bad thing about JMeter is that there are alot of different options and features. To make it simpler for you, the good folks at Digital Ocean have a good tutorial on getting it set up, here: How To Use Apache JMeter To Perform Load Testing on a Web Server | DigitalOcean. While this is fine for testing one page, there are test scenarios where you want to have the user perform multiple steps (e.g. go to the home page, login to their account, check their account balance, then logout). If that is the case for you, too, then you want to read this next: How To Use JMeter To Record Test Scenarios | DigitalOcean (I used Firefox for this: if you are going to use JMeter to develop your performance test cases, then download Firefox too.) For any performance testing that follows a sequence, you really want to use the recording feature of JMeter.

Some other thoughts….

On my thread group, I added the following listeners:

  • Response time graph
  • Graph results
  • Aggregate report
  • View results tree (with scroll automatically on)

I also login to the web server and tail -f  the access log (and sometimes the error log).

I do all this because it is easy to run have a lot of errors when you first (and even later) run your test. For example, if you are testing a sequence, you might see good performance, but you might also see 404s in the access log, or you might see other anomalies in the aggregate report (e.g. good response 90% of the time, but bad response on average). Having more data is better and it insures you don’t have false positives (e.g., you think performance is good, but it really isn’t because the application is failing).

As soon as your developers have some code in place, have someone run Jmeter against it. Don’t wait until towards the end of the project. Jmeter is free and anyone can use it.

Back up your test plans often. It is easy to change your test plan, have it go from a successful one to an unsuccessful one because of the change, and then find it hard to go back because you changed a number of variables.

For your test plan, have multiple thread groups. This will allow you to test different test scenarios for different test groups. You can have different test plans too: it’s up to you how you manage it. For example, I recorded a long sequence for one test group, then I copied it and made a simple test group with less steps by removing them.

Anil Dash says: ‘There is no “technology industry”’. In reality….

There is a technology industry. Specifically, there is an information technology industry. There are lots of companies, big and small, whose sole aim is providing information technology products and services. Take a look at this list: they are some of the largest companies in the world whose purpose is I.T. They don’t focus on food, or entertainment, or logistics, or advertising: they focus on information technology.

The point he seems to be raising in his piece: There is no “technology industry” — Humane Tech — Medium is that there are companies leveraging I.T. that are considered tech companies, but aren’t. That’s a valid point. But that doesn’t mean there isn’t a technology industry. Should we treat these companies differently that I.T. companies? Possibly. Companies like Theranos, for example, partially ran into trouble because they were treated the way a I.T. startup should be treated, when in my opinion they should have been treated more like a pharmaceutical or medical equipment company is treated. It’s important to look at what the companies do and not just how they model their business.

Towards the end of the piece, he says, “All it takes is a little discipline in how we communicate”. I agree.

A sign of the times: Adblock blocks Facebook. Facebook circumvents Adblock. Now Adblock circumvents Facebook.

No doubt this game of cat and mouse will go on for some time. For Adblock to prosper, they need to block ads on Facebook. Likewise, for Facebook there is too much money at stake to allow Adblock to block their ads.  For details on this, see: Adblock Plus and (a little) more: FB reblock: ad-blocking community finds workaround to Facebook

One thing for sure: developers from both sides will be pushing out changes on a regular basis as this battle heats up.

Of course, behind such tactics, the deeper questions are left unresolved, questions around business models and the viability of services without access to advertising revenue.

A simple tutorial to set up an about.me site on github

I used to be a big fan of about.me: they enabled me to create a personal home page far better than what I could do. Unfortunately they stripped out some of the things that made the page look great, and when they did that, I decided to make my own about.me page, using free hosting on Github.

First off, here is what my page looks like: http://blm849.github.io

Here’s the steps I took to make it.

Before you start, here’s what you will need if you want to follow my steps. You’ll need:

  • a text editor. Notepad or Textpad or vi will all work fine.
  • some knowledge of HTML. Not too much. If you just follow the steps below, you should be fine. If you want some quick knowledge of HTML, see this: HTML Tutorial
  • some knowledge of  git and github.com. Again, not too much. If you follow the steps below, you should not need any. If you want some quick knowledge of git and github, see this: How to learn github fairly easily | Smart People I Know
  • Some words describing yourself that you want to have on the site.
  • An image file of yourself that you would want to serve as the background of the site. The one I had was a simple photograph I took with my smartphone.
  • A working file directory on your computer to hold your files.

Here are the steps:

  1. Set up your site on Github. To do this, follow the steps, here: GitHub Pages – Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live. Check it out. Use your working file directory to store the files. Once you complete the steps, and pointing your browser at http://username.github.io works, you are going to want to personalize the site. (Note: username = the name of your userid. e.g. my userid on github is blm849)
  2. Use a repository from someone else to make the job simpler. To create my site, http://blm849.github.io, I used a repository from here: https://github.com/weightshift/The-Personal-Page. It’s great. I simply downloaded the ZIP file, unzipped the files, and copied and replaced the files in the working file directory. In your case, I would recommend you take my repository and my files and modify them. I’ll explain in a bit. My repository and my files are here: https://github.com/blm849/blm849.github.io. Click on the “Clone or Download” button and then click “Download ZIP” to do this. Like I said, download the zip file, unzip the files, put them in your working file directory.
  3. Also, copy your background image (e.g. background.jpg) into the working file directory.
  4. Now edit the index.html file in the working file directory. Make the following changes and then file index.html:
    1. On line 5, change the text between <title> and </title>. This text will appear on the browser tab when someone opens your site.
    2. For lines 41-51, replace the lines I have in here with the words describing yourself. The only HTML I used here is:
      • the <br> tag to add some blank lines before the line “My name is….”. I found it looked better when I did this.
      • the <p></p> tag to format the words into paragraphs. Again, it makes it more presentable.
      • the <b></b> tag to make my name bold. I wanted it to stand out. If you don’t, remove those tags.
      • the <a></a>tag to have links to other web pages about me. If you don’t have links elsewhere, you can remove those.
    3. On line 58, replace “blm.jpg” with “background.jpg” (assuming that the file name of your background image is called background.jpg. If it is called something else, use that file name instead.)
  5. Once you have made the changes and saved index.html,  open it with your favourite browser. (To do this, right click on the file and select “open with…” and pick your browser.) Check to see if the words are correct and the background image is correct and the formatting is correct. If not, you will have to go back and edit the file and fix your errors.
  6. Once you are happy with it, do the following:
    1. Delete any background image files in the working file directory that are not yours (blm.jpg and nh_bg.jpg)
    2. Enter: git add –all
    3. Enter: git commit -m “secondary commit with my own information”
    4. Enter: git push -u origin master
    5. Point your browser at http://username.github.io and make sure it works.

That’s it!

One final note: I recommended using my repository and not the original one I worked on. I did that because I had some problems with displaying my page on my iPhone 6s plus. I added some files and tweaked the index.html file to get it to work. By using my package and my index.html file, there are less changes for you to make, I believe. That said, I am grateful for the code from the original repository and I am making sure I credit the owner of that repository (as should you).

Developers and IT people: you need to have more than a good resume/CV

If you are a software developer or someone working in IT, you need to consider having more than a good resume or CV. You should consider having:

  1. an up to date profile in LinkedIn
  2. a professional web site (at least a one pager). It could be a blog, or an about.me page…something that provides information about yourself in a summary form.
  3. some repositories on github showing your work or an example of what you can do.

If you use github.io to host your professional web site, you get to cross off #2 and #3 with one effort.

I was reminded of this when I went to check out this page: DevProgress Tech Volunteer Questionnaire. You can see them asking for this information. It makes sense: if you are looking to hire a developer, it would be great to see not just what people are saying about them on LinkedIn, but what their code looks like too.

For some employees, putting code on github may not be an option. In that case focus on the first two and have a page somewhere on the web that discusses why you can’t host code there.

 

A great primer on self driving trucks that everyone should read. (Really!)

This piece, 1.8 million American truck drivers could lose their jobs to robots. What then? (Vox) is a great primer on self driving trucks and how they are going to have a major impact sooner than later.

If you are interested in IT, AI or robots, it really shows one of the places where this technology is going to have a significant impact.

If you are interested in economics, politics, or sociology, then the effect of robots replacing all these truck drivers is definitely something you want to be aware of.

If you drive on highways, you definitely want to know about it.

In any case, it’s a good piece by David Roberts. That is his beat and I find he always does a great job of breaking down a topic like this and making it easier to understand and relevant to me. I recommend any of his pieces.

The Superbook, the decline of the Personal Computer, and the future of computing

Superbook, a $99 computer project on Kickstarter, is impressive in itself. Based on the sponsorship of this project, many agree with me.

Essentially it extends your phone like a Smart Watch does, but instead of the form factor diminishing, it’s increasing. In some ways, it does what the Chromebooks do, but with the use of your phone. If it works well, it is one more nail in the coffin of the personal computer. Already tablets and other devices have distributed computing away from the personal computer. I can only see this trend increasing as displays and memory and CPUs get better. Sooner than later, the attachment of the display to the keyboard will dissolve, and people will assemble “personal computers” from a variety of tablets and other displays, keyboards, and whatever smart phones they have. The next step is better designed and detachable keyboards, along with more powerful phones. (The phone isn’t a phone anyway: it’s a handheld computer with built in telephony capability).

Networks are going become more pervasive, faster and cheaper. Displays are going to become cheaper. Phone makers are going to need to give you more reasons to buy phones. All of these things point to computing devices like this becoming more prevalent and personal computers getting further and further displaced.

You can find out more about the project, here here.

Want to understand what artificial intelligence and machine learning is?

If you want a better understanding of artificial intelligence or if you want to gain some insight into the future of machine learning, I recommend these two free reports, found here: Free AI Reports from  O’Reilly Media. There’s so much hype and speculation about AI: these reports cut through all that noise and they will give you a better understanding of what A.I. really is and where it is going.

P.S. If you like them, check out the many great non-A.I. related reports as well. You don’t have to be a technologist to be able to read them.

My latest batch of technical links

Here are some things I’ve been interested in lately or that I found interesting. By the time you read this, some of them may even be dated, which is the nature of tech blogging!

More thoughts on Waze

I have thought a lot about Waze since I started using it. Without a doubt, it has improved my life substantially. Here are some other thoughts I had as I used it.

  1. Waze is an example of how software will eat the world. In this case, the world of gPS devices. Waze is a GPS on steroids. Not only will Waze do all the things that a GPS will do, but it does so much more, as you can see from this other Waze post I wrote. If you have a GPS, after you use Waze for a bit, you’ll likely stop using it.
  2. Waze will change the way cities work. Cities are inefficient when it comes to transportation. Our work habits contribute to that, in that so many people commute at the same time, in the same direction, on the same routes, each work day. Waze and other new forms of adding intelligence to commuting will shape our work habits over time. Drivers being able to take advantage of unbusy streets to reduce congestion on major thoroughfares is just the start. City planners could work with Waze to better understand travel patterns and travel behaviour and incorporate changes into the city  so that traffic flows better. It’s not that city planners don’t have such data, it’s that Waze likely has more data and better data than they currently have.
  3. Waze is a great example of how A.I. could work. I have no idea how much A.I. is built into Waze. It could be none, it could be alot. It does make intelligent recommendations to me, and that is all I care about. How it makes those intelligent recommendations is a black box. Developers of A.I. technologies should look at Waze as an example of how best to deploy A.I. Those A.I. developers should look at how best A.I. can solve a problem for the user and spend less time trying to make the A.I. seem human or overly intelligent. People don’t care about that. They care about practical applications of A.I. that make their lives better. Waze does that.

Why I love Waze. 13 good reasons why it is my favourite app


Inspired, in a way, by this article, Why I hate Waze in LA Times, I’d like to share some of the ways that Waze has made my life a lot better. 13 ways, in fact. There are more, but if this doesn’t convince drivers to use Waze, I don’t know what will.

  1. It saves me a lot of time: I used to take my son to hockey practice every week on a trip that took me 50 minutes. After talking to some other parents, I downloaded Waze. The result: my hockey commute went from 50 minutes to 25 minutes! Before Waze, I was stuck taking the major roads that were severely congested because I didn’t know what else to do. Waze recommended roads close to the roads I was on but that had no traffic problems. Over one year, I have saved hours of unnecessary commuting and saved on gas as well.
  2. It gets me to places on time: not only will Waze give you a fast route to travel, but it will tell you to the minute when you will get there. At first I didn’t think this was possible, but I was and continue to be amazed at how accurate it is. Now, before I am going somewhere, I will put the destination in Waze and know when I will arrive. No more being too early or late.
  3. It gives me options on how to get to a place: What I love about Waze is that it gives me 3 different routes to get to a place. It always recommends the fastest, but I like having the options. Sometimes it will recommend a road or a highway and I will think: I prefer to spend a bit more time and go a more scenic route.
  4. It gives me better times to travel if that is an option: Waze will also show me how long over the course of a day the route I want will take.  a 40 minute route at 4 p.m. might be a 24 minute route at 7:30 p.m. If you can shift your travel time, you can save yourself some time on the commute, according to Waze. This is a great feature.
  5. It has made me a calmer driver: I used to get anxious when I would get stuck in traffic. I’d think: God! I am never getting out of this jam! With Waze, not only do I know how long it will take to get to a place, traffic jam or not, but Waze will tell me things like: you will be stuck in traffic for 6 minutes. Now I feel much more in control of my commutes. Plus, I always know the route I am going is the best way to get to a place.
  6. It’s made me a more confident driver: one thing I didn’t like about Waze at first but now I do is that it often tells you to make left turns. Sometimes on busy streets. I used to avoid this on my own and I would go and turn at an intersection with lights. However, left hand turns save time, and the more I do them, even on busy streets, the more I realize they are no big deal. You just have to be patient and wait for an opening in traffic. It will come, often in a few seconds.
  7. It has helped me know the city better: when traffic is busy, Waze will have you going down streets you might normally skip. As I have done this, I have been amazed at how many new streets in the city I have discovered. Now, even when I don’t use Waze, I know about these streets and that knowledge helps me get around my city better.
  8. It helps you with cities you have no clue in: if you are driving into a city that you don’t know well, Waze is essential. I was driving into Montreal which has busy streets that go all different ways. With Waze I could just type in my hotel’s name and it gave me the route to get there. I had done this before Waze and it was a nightmare for me. With Waze it was easy.
  9. You don’t need to know addresses: that’s the other great thing about Waze. You can type in a name of a place and it will do a search and give you a list you can choose from. It’s perfect for when you are out with people and they say: let’s meet up at restaurant XYZ. You can enter that in Waze and off you go.
  10. It is the perfect navigator for solo drivers: I used to write down maps to help me get to places. It was ok, but not easy. It was especially difficult in new cities or driving on highways. Waze is constantly telling you how long you have to travel on a road, when you can expect to turn, and then telling you exactly where to turn. And if you miss a turn, it will recalibrate on the fly and tell you have to get back to where you need to go.
  11. It is great at night: I travel to a lot of rinks at night in the winter. Many of them are down small roads and poorly marked. I would have a heck of a time without Waze. With Waze, it is dead simple to get to the rinks. Can’t see a road sign? Can’t see the rink set far away frm the street? No problem: just follow the directions that Waze is giving you and you’ll get there.
  12. It gives you lots of time to turn: with Waze, you get lots of warning about when you have to turn. It will say: “in 1.2 kilometers, turn left….in 300 kilometers turn left….turn left at street X. ” You never have to worry about being told to turn left at the last minute.
  13. You can be flexible: Waze will suggest the fastest route. However, sometimes I will be tired or not in a rush and I will stick to a road I prefer driving down. Waze will quickly recalibrate and make additional recommendations, right to the point I arrive at my destination.

What drives A.I. development? Better data

This article, Datasets Over Algorithms — Space Machine, makes a good point, namely

…perhaps many major AI breakthroughs have actually been constrained by the availability of high-quality training datasets, and not by algorithmic advances.

Looking at this chart they provide illustrates the point:

I’d argue that it isn’t solely datasets that drive A.I. breakthroughs. Better CPUs, improved storage technology, and of course new ideas can also propel A.I. forward. But if you ask me now, I think A.I. in the future will need better data to make big advances.

The Real Bias Built in at Facebook <- another bad I.T. story in the New York Times (and my criticism of it)

There is so much wrong in this article, The Real Bias Built In at Facebook – The New York Times, that I decided to take it apart in this blog post. (I’ve read  so many bad  IT stories in the Times that I stopped critiquing them after a while, but this one in particular bugged me enough to write something).

To illustrate what I mean by what is wrong with this piece, here’s some excerpts in italics followed by my thoughts in non-italics.

  • First off, there is the use of the word “algorithm” everywhere. That alone is a problem. For an example of why that is bad, see section 2.4 of Paul Ford’s great piece on software,What is Code? As Ford explains: ““Algorithm” is a word writers invoke to sound smart about technology. Journalists tend to talk about “Facebook’s algorithm” or a “Google algorithm,” which is usually inaccurate. They mean “software.” Now part of the problem is that Google and Facebook talk about their algorithms, but really they are talking about their software, which will incorporate many algorithms. For example, Google does it here: https://webmasters.googleblog.com/2011/05/more-guidance-on-building-high-quality.html At least Google talks about algorithms, not algorithm. Either way, talking about algorithms is bad. It’s software, not algorithms, and if you can’t see the difference, that is a good indication you should not be writing think pieces about I.T.
  • Then there is this quote: “Algorithms in human affairs are generally complex computer programs that crunch data and perform computations to optimize outcomes chosen by programmers. Such an algorithm isn’t some pure sifting mechanism, spitting out objective answers in response to scientific calculations. Nor is it a mere reflection of the desires of the programmers. We use these algorithms to explore questions that have no right answer to begin with, so we don’t even have a straightforward way to calibrate or correct them.” What does that even mean? To me, I think it implies any software that is socially oriented (as opposed to say banking software or airline travel software) is imprecise or unpredictable. But at best, that is only slightly true and mainly false. Facebook and Google both want to give you relevant answers. If you start typing in “restaurants” or some other facilities in Google search box, Google will start suggesting answers to you. These answers will very likely to be relevant to you. It is important for Google that this happens, because this is how they make money from advertisers. They have a way of calibrating and correcting this. In fact I am certain they spend a lot of resources making sure you have the correct answer or close to the correct answer. Facebook is the same way. The results you get back are not random. They are designed, built and tested to be relevant to you. The more relevant they are, the more successful these companies are. The responses are generally right ones.
  • If Google shows you these 11 results instead of those 11, or if a hiring algorithm puts this person’s résumé at the top of a file and not that one, who is to definitively say what is correct, and what is wrong?” Actually, Google can say, they just don’t. It’s not in their business interest to explain in detail how their software works. They do explain generally, in order to help people insure their sites stay relevant. (See the link I provided above). But if they provide too much detail, bad sites game their sites and make Google search results worse for everyone. As well, if they provide too much detail, they can make it easier for other search engine sites – yes, they still exist – to compete with them.
  • Without laws of nature to anchor them, algorithms used in such subjective decision making can never be truly neutral, objective or scientific.” This is simply nonsense.
  • Programmers do not, and often cannot, predict what their complex programs will do. “ Also untrue. If this was true, then IBM could not improve Watson to be more accurate. Google could not have their sales reps convince ad buyers that it is worth their money to pay Google to show their ads. Same for Facebook, Twitter, and any web site that is dependent on advertising as a revenue stream.
  • Google’s Internet services are billions of lines of code.” So what? And how is this a measure of complexity?  I’ve seen small amounts of code that was poorly maintained be very hard to understand, and large amounts of code that was well maintained be very simple to understand.
  • Once these algorithms with an enormous number of moving parts are set loose, they then interact with the world, and learn and react. The consequences aren’t easily predictable. Our computational methods are also getting more enigmatic. Machine learning is a rapidly spreading technique that allows computers to independently learn to learn — almost as we do as humans — by churning through the copious disorganized data, including data we generate in digital environments. However, while we now know how to make machines learn, we don’t really know what exact knowledge they have gained. If we did, we wouldn’t need them to learn things themselves: We’d just program the method directly.” This is just a cluster of ideas slammed together, a word sandwich with layers of phrases without saying anything. It makes it sound like AI has been unleashed upon the world and we are helpless to do anything about it. That’s ridiculous. As well, it’s vague enough that it is hard to dispute without talking in detail about how A.I. and machine learning works, but it seems knowledgeable enough that many people think it has greater meaning.
  • With algorithms, we don’t have an engineering breakthrough that’s making life more precise, but billions of semi-savant mini-Frankensteins, often with narrow but deep expertise that we no longer understand, spitting out answers here and there to questions we can’t judge just by numbers, all under the cloak of objectivity and science.” This is just scaremongering.
  • If these algorithms are not scientifically computing answers to questions with objective right answers, what are they doing? Mostly, they “optimize” output to parameters the company chooses, crucially, under conditions also shaped by the company. On Facebook the goal is to maximize the amount of engagement you have with the site and keep the site ad-friendly.You can easily click on “like,” for example, but there is not yet a “this was a challenging but important story” button. This setup, rather than the hidden personal beliefs of programmers, is where the thorny biases creep into algorithms, and that’s why it’s perfectly plausible for Facebook’s work force to be liberal, and yet for the site to be a powerful conduit for conservative ideas as well as conspiracy theories and hoaxes — along with upbeat stories and weighty debates. Indeed, on Facebook, Donald J. Trump fares better than any other candidate, and anti-vaccination theories like those peddled by Mr. Beck easily go viral. The newsfeed algorithm also values comments and sharing. All this suits content designed to generate either a sense of oversize delight or righteous outrage and go viral, hoaxes and conspiracies as well as baby pictures, happy announcements (that can be liked) and important news and discussions.” This is the one thing in the piece that I agreed with, and it points to the real challenge with Facebook’s software. I think the software IS neutral, in that it is not interested in the content per se as it is how the user is responding or not responding to it. What is NOT neutral is the data it is working off of. Facebook’s software is as susceptible to GIGO (garbage in, garbage out) as any other software. So if you have a lot of people on Facebook sending around cat pictures and stupid things some politicians are saying, people are going to respond to it and Facebook’s software is going to respond to that response.
  • Facebook’s own research shows that the choices its algorithm makes can influence people’s mood and even affect elections by shaping turnout. For example, in August 2014, my analysis found that Facebook’s newsfeed algorithm largely buried news of protests over the killing of Michael Brown by a police officer in Ferguson, Mo., probably because the story was certainly not “like”-able and even hard to comment on. Without likes or comments, the algorithm showed Ferguson posts to fewer people, generating even fewer likes in a spiral of algorithmic silence. The story seemed to break through only after many people expressed outrage on the algorithmically unfiltered Twitter platform, finally forcing the news to national prominence.” Also true. Additionally, Facebook got into trouble for the research they did showing their software can manipulate people by….manipulating people in experiments on them! It was dumb, unethical, and possibly illegal.
  • Software giants would like us to believe their algorithms are objective and neutral, so they can avoid responsibility for their enormous power as gatekeepers while maintaining as large an audience as possible.” Well, not exactly. It’s true that Facebook and Twitter are flirting with the notion of becoming more news organizations, but I don’t think they have decided whether or not they should make the leap or not. Mostly what they are focused on are channels that allow them to gain greater audiences for their ads with few if any restrictions.

In short, like many of the IT think pieces I have seen the Times, it is filled with wrong headed generalities and overstatements, in addition to some concrete examples buried somewhere in the piece that likely was thing that generated the idea to write the piece in the first place. Terrible.

29 IT links to things I am working on or interested in: AI, Python, Netscaler, automation and more

Things I am interested in or working on these days: AI, WebSphere setup, Python, Twitter programming, development in general, configuring Netscalers, cool things IBM is doing, automation, among other things.

  1. If you have the AI bug and think you want to do some Prolog programming, you need this: What Prolog implementation to choose? What’s fastest? Compatibility?
  2. Deep Learning is hot in AI. If you want more info, this is good: Deep Learning Tutorials — DeepLearning 0.1 documentation
  3. Sigh. This debate never goes away in AI: Why AlphaGo Is Not AI – IEEE Spectrum
  4. More on the hysteria that AI brings: The founder of Evernote made a great point about why AI (probably) won’t kill us all – Vox
  5. Ignore most AI hysteria, but do read this: What does it mean for an algorithm to be fair? | Math ∩ Programming
  6. Want to whip up a quick mobile app? Consider: Mobile App Builder – new service now available – Bluemix Blog
  7. For power users, there’s: How to create an insane multiple monitor setup with three, four, or more displays | PCWorld
  8. Need virtual images? Take a look at this: Images | VirtualBoxes – Free VirtualBox® Images
  9. For hardcore WAS users, this is helpful: Installing optional Java 7.x on WebSphere Application Server 8.5 (Application Integration Middleware Support Blog)
  10. A classic. Anyone tuning WAS needs this: Case study: Tuning WebSphere Application Server V7 and V8 for performance
  11. Want to learn Python? Write your own Twitter client? Or do both? Then there’s this: How To Build a Twitter “Hello World” Web App in Python | ProgrammableWeb
  12. More on programming Twitter: How To Use The Twitter API To Find Events | ProgrammableWeb
  13. Nice little project to try, here: Create a mobile-friendly to-do list app with PHP, jQuery Mobile, and Google Tasks
  14. Creating Simple Responsive HTML5 and PHP Contact Form | Future Tutorials
  15. Setting up a Linux system? Then you want to read this: Most secure way to partition linux? – Information Security Stack Exchange
  16. Want to learn Linux? This is essential! IBM developerWorks : Technical library concerning Learning Linux
  17. If you are doing performance work on Unix, you will likely use vmstat. Even if you know vmstat, this is good to review: What to look for in vmstat – UNIX vmstat command
  18. Wow! OS/2 is still alive! OS/2: Blue Lion to be the next distro of the 28-year-old – Yahoo Finance
  19. Talk about old tech! This makes OS/2 seem fresh! It’s Insane that New York’s Subway Still Runs on This 80-Year-Old Switchboard | Motherboard
  20. I was doing some work on Netscaler and found this useful in comparing the set up of one Netscaler config with another: Export Netscaler Config – NetScaler Application Delivery – Discussions. This is also useful:  Netscaler 9 Cheat Sheet.doc – netscaler9cheatsheet.pdf
  21. I thought this was a good development for everyone interested in Node: IBM Buys StrongLoop To Add Node.js API Development To Its Cloud Platform | TechCrunch
  22. Alot has changed with IBM’s OpenPOWER. Forbes gets you up to date, here: IBM’s OpenPOWER: A Lot Has Changed In Two Years – Forbes
  23. Cool stuff here: Access your Docker-based Raspberry Pi at home from the internet · Docker Pirates ARMed with explosive stuff
  24. I was using Perl scripts on Linux to send me messages to my mobile device via Pushover. This was good for that: pushover Archives – Perl Hacks
  25. I was also using WinSCP for that and this helped: Scripting and Task Automation :: WinSCP
  26. For all those trying to succeed in IT but feeling you are running into ceiling, you should read this: Tech’s Enduring Great-Man Myth or this When It Comes to Age Bias, Tech Companies Don’t Even Bother to Lie | Dan Lyons | LinkedIn
  27. Linus Torvalds is always interesting, and this is especially good: Linux at 25: Q&A With Linus Torvalds – IEEE Spectrum
  28. Very cool! Particle | Build your Internet of Things
  29. And finally some links to good stuff on UML online: Multi-layered web architecture UML package diagram example, web layer depends on business layer, which depends on data access layer and data transfer objects.

A good list of resources on passwords and PC security in general

I collected a list of all the links I had concerning passwords and PC security and general on this blog. It’s not exhaustive, but it is useful, especially if your knowledge on the topic is limited.

With the new announcements, Apple reinforces their affordable line of products


Apple took a turn towards something I was hoping they would do: (relative) affordability. You can see it in this piece from  Business Insider:

Apple introduced an iPhone with a smaller screen on Monday called the iPhone SE. The best way to think about it is as Apple’s current top-of-the-line iPhone specs in a smaller body. It costs $399 without a contract — a surprisingly low price for a new iPhone. …the older iPad Air 2 got a price cut to $399…. While the Apple Watch didn’t get a hardware update, Apple did unveil new nylon bands and cut its starting price from $350 to $299.

I was wondering if Apple was going to try and offer some affordable products or reposition itself as a luxury brand. I am glad to see they went with affordable. There are now lots of products from Apple at a wide range of price points, starting with the iPod (at $59). I have always been a fan of the lower priced iPods, and I am glad to see Apple still offers them. Likewise, the iPad Mini 2 is an excellent tablet and the iMac mini is an excellent computer. Relative to the market, they are priced competitively and yet superior technology. Now the new Watch and the new SE phone join them.

For people who want to spend lots of money, Apple has a product for them. By offering the lower end products, they both force their competitors to offer better products as well as allow more people to have access to their excellent technology.

P.S. I realize for some people, even these relatively low prices are not affordable. In the context of this post, affordable is in context to the rest of the marketplace an Apple product competes within.

The problem with AI, Bots and social networks

Bots combined with AI and social networks are going to become an increasing problem. I thought of this when reading about the relatively recent Ashley Madison fiasco. Even if you wouldn’t be caught dead using such a service, this applies to you in other ways.

One of the fascinating aspects of Ashley Madison was just how many bots were employed by the company, at least according to this article: Ashley Madison Code Shows More Women, and More Bots. 

How many? Alot! From the article:

After searching through the Ashley Madison database and private email last week, I reported that there might be roughly 12,000 real women active on Ashley Madison. Now, after looking at the company’s source code, it’s clear that I arrived at that low number based in part on a misunderstanding of the evidence. Equally clear is new evidence that Ashley Madison created more than 70,000 female bots to send male users millions of fake messages, hoping to create the illusion of a vast playland of available women.

Here’s some examples:

This matters to you because chances are you will be interacting more and more with bots. Bots are cheap, and companies and organizations are going to go with them to meet their needs and yours.  Maybe the bots will be harmless, like customer service reps that are actually just software programs. However it is also possible, just like it was at Ashley Madison, that these bots will be customized to con you into thinking you are dealing with a real person so that you will give them more money in some form or another. Bots may be obvious now, but as AI improves, so will the ability of bots to fool you. It’s not inconceivable that we will spend more and more time interacting with software that we think is human. It is something we need to think about and talk to fellow humans — and not AI driven bots — about how it will affect us and if it is negative, what we are going to do about it.

Robots in the real world may not realistically resemble humans for a very long time. Online bots that realistically resemble humans will get there much sooner.  We need to quickly anticipate what positive and negative effects that will have and prepare for that.

How to Create Tarball & Compress to GZip Under Windows (.tar.gz) and why you should

If you are not familiar with Unix, then you might wonder why you would want to create tarballs and then gzip them. Recently I had a directory that was over 12 GB in size and I wanted to zip it up and send it to someone. By creating a tarball from it and then gzipping it, I was able to shrink it down to under 5 GB. That made it alot easier to send to the person.

Another reason to do this is you want to send a file from Windows to Unix. By compressing the file this way, you can be sure that the Unix user can uncompress it in a straightforward way.

For more on this, see:  How to Create Tarball & Compress to GZip Under Windows (.tar.gz) | Gettin’ Geek

Why Python programs often have this: `if __name__ == “__main__”:`

If you were wondering why Python programs often have this: `if __name__ == “__main__”:` and then a call to a function, a good explanation is here.

In short, if your program is used as input to other programs, then you want to have that snippet of code in them. If your programs are standalone, you can get by without it.