I’m following Jordan Harbinger’s 6 Minute Networking. Part of this is contacting people you haven’t spoken with in a while. On LinkedIn, it’s hard to get to the oldest messages in their messenger. It involves a lot of scrolling. So I made a little JavaScript snippet to help with that. Just enter this into the JavaScript console:
for(ii=0;ii<30;ii++){document.getElementById("ember57").scrollBy(0,2500);await new Promise(r => setTimeout(r, 500));}
You may have to run this a couple times, depending on your contact list. You may also want to increase/decrease the “30” constant.
My all-time most popular post is on creating a mapping between ZIP codes and MSAs or CBSAs. One commenter pointed out that there was a problem with the ZIP mapping, so I though I’d re-run the query and re-visit the data.
Keep in mind that this data is based on older data for ZIP codes, MSAs and population, all of which change constantly. The Geocorr website suggests an update with 2020 data is in the works, so keep an eye on that.
I was creating a report to show where my sales are coming from. I have the ZIP codes of all the shipping addresses in the US, but how would I group people from similar locations together?
My thought was to group the ZIP codes by Metropolitan Statistical Area, which, roughly speaking, is a large city and all of its suburbs. So, for instance, the MSA for New York City includes Newark and Long Island. The MSA for Atlanta includes Sandy Springs and Roswell.
So how do I figure out which ZIP codes belong to which MSA? After a quick search, I found several pay options. But surely this information is free somewhere, right?
µSAEventually I came across a reference to which led me to Geocorr 2018, an online searchable geography database from the University of Missouri. Here’s how you can use Geocorr to get a big CSV file that has every ZIP code, with the corresponding CBSA (which includes both MSAs and µSAs [areas with smaller populations than MSAs]):
Select the first state on the list under “Select the state(s) to process:”
Scroll to the bottom of the list and Shift-Click the last item to select all the states.
Under “Select one or more source geographies” pick “Core Based Statistical Area (CBSA)”
Under “Select one or more target geographies” pick “ZIP/ZCTA”
For “Weighing variable” pick “Population (2016 est.)”
Then pick any output format settings you’d like (I didn’t make any changes here) and click “Run request”. This gives you a downloadable CSV file with the ZIP codes and corresponding MSAs.
I’ve been trying to figure out what search keywords are trending for my website, but Google Search Console makes it difficult. Take a look:
This gives you a lot of information, but it’s just too noisy to be useful, as it plots every day on the chart. What I’d really like is a chart of 2 week moving average of clicks in order to see trends. Fortunately, there’s a way to get this chart without having to do a lot of coding yourself. The overall strategy is to use the console API to pull this information into a spreadsheet. This can be done without any coding.
This allows you to enter a simple query in the right hand box for the “request body”. (I think it may have requested some permissions the first time I did this.)
Be sure to enter the start date, end date, and query term that you’re looking to analyze. Also enter your website URL in the siteURL box.
Finally, click the Execute button. You should end up with a bunch of JSON output in the lower right corner of the window with the full analytics data.
The next step is to get this into a spreadsheet. Copy all of the JSON data in the output box and use https://json-csv.com/ to convert it to CSV format to paste or import into your favorite spreadsheet program. I use LibreOffice Calc.
I don’t intend this to be a spreadsheet tutorial, but you can use the functions like AVERAGE(A2:A15) to get a 2 week moving average from any of the data which you’ve imported into the spreadsheet. This lets you build a much easier to read chart like this:
Per Capita Gross World Product (PPP) By Year 1990-2017
This came up in a discussion with my wife recently. If you took all the wealth generated in a year, and divided it up equally among everybody in the world, it would come out to about $17,500 per year. (This is factoring in “PPP“, which means these are equivalent to dollars spent in the US, even if the person lives in a much cheaper country.)
This is up from less than $10,000/year less than 20 years ago. It’s been growing steadily for while now, as seen in the diagram above. The number is up 44% since 1990 as the world builds wealth and gets more efficient.
Update: I was trying to get ROS running on Windows Subsystem for Linux (WSL). Turns out that WSL doesn’t work that well with ROS, so I’m installing a Linux distribution on an old laptop to get this working. Of course, now Microsoft has announced WSL2 which is supposed to fix many of the problems with WSL.
I’ve been editing videos this week. There appear to be 3 main free, open source non-linear video editors for Windows that have a timeline feature, filters, etc.
Kdenlive: Great features and nice usability, but crashy as hell on Windows.
OpenShot: Good usability, but short on some of the features I really needed.
ShotCut: More features than OpenShot, not as good usability or features compared to Kdenlive, but much more stable.
My current favorite is ShotCut. If Kdenlive were more stable, I would switch to it instead.
Some robot fighting teams have expressed to me that they have a hard time knowing what to put in their social media feed. Here are some ideas for posting to social media that will your team get the maximum exposure possible for both the team, your sponsors, and the event.
Be sure to tag your sponsors for every post that’s appropriate.
Remember that
repeated content is OK, especially if you change up the main photo.
SmarterQueue, Recurpost, Buffer, and similar tools can help
reschedule posts. And remember that there’s a delay between the
BattleBots event and when the show airs, so “we just got to the
event” types of posts make sense at 2 different times.
With 1 post for each
of the ideas below, and posting 3 times per week, that’s over 6
weeks of content.
1. Biographies of
each team member, 1 post per member. Include at least 1 photo, a
short biography, and how they helped your team compete. Photos should
be clear and well lit. You have 4 team members? That’s 4 posts!
2. An infographic showing your robot’s features. Examples:
3. A screenshot of
your CAD design, with a comparison to the final robot.
4. Photos of your
motors or motor controllers or batteries and an explanation of why
you chose them.
5. Your robot being
displayed at a live event (Maker Faire, college expo, corporate
meeting), especially if it has kids looking at it. Describe what you
did there.
6. Your robot
pictured with any toys or merchandise.
7. Video of a robot
test drive. Note any problems or if it was a success, let people know
what you were trying to achieve (speed, maneuverability, etc).
8. Video of your
weapon being tested against inanimate objects.
9. Photos or video
of machining, assembly, or painting, especially of highly
recognizable parts.
10. Assembly of the
robot, showing the guts.
11. A photo of your
team together in the pits, with a description of a problem you had
during the competition and how you solved it.
12. Your robot
packed up for shipping to or from the event. For BattleBots, remember
that this can easily be repeated as the show is about to go on the
air.
13. A post
describing what inspired the robot’s name or weapon, along with a
photo of that thing. Example: Warhead with the t-rex head and a photo
of a t-rex.
14. A post for each
sponsor, describing exactly what they do and how they helped your
team.
15. Photos of your
fans at the competition.
16. Reminders
whenever your robot will be appearing on TV.
17. Repost/share
whatever is on the event organizer’s feed.
18. Share when
you’ve been mentioned on outside media including newspapers, the
FAN show, Reddit AMA, etc.
19. Photos of damage
dealt to other robots.
20. “Hero” shot
of your robot, before damage.
Bonus:
21. Photos of what you ate while building or fixing the robot.
I’m working on getting Robot Operating System (ROS) as part of my plan to build a walking robot and I want to develop the algorithms in a simulator first. It turns out that ROS integrates well with the Gazebo physics/environment simulator.
I found a YouTube tutorial of decent quality on getting started with ROS and Gazebo, so that’s what I decided to follow for now.
I started by getting ROS and Gazebo running on my Linux desktop computer based on the instructions in the video and the ROS Turtlebot Installation Instructions.
The big problem was that I’m not able to spend as much time in the home office where the desktop is located. This means that I needed to get ROS running on my Windows laptop.
I tried the Microsoft port of ROS to Windows, but that was a blind alley. The big problem is that all of the tutorials and other documentation assume you have a Debian based Linux OS in order to download and install the necessary support packages, including the stuff for turtlebot.
However, you can get Ubuntu running under Windows 10 using the Windows Subsystem for Linux. This is a super easy install from the Microsoft Store.
Next, I was able to get ROS running using these instructions. There was an error adding one of the package sources, and I needed to add a signature key manually. I found the fix in a GitHub bug report. The command is:
Next, most of the tutorials refer to the Indigo release of ROS, but what I ended up with was the later Melodic release. So the packages to be installed had to be modified a little. I’m a little confused at this point as to exactly what’s needed, but for the turtlebot tutorials, you can get most of it by running:
Restart the Ubuntu shell to pick up the new settings from .bashrc.
You also have to make sure VcXserv (installed as part of the ROS on Windows instructions I mentioned earlier) is running BEFORE launching anything with Gazebo.
Also, before running any turtlebot stuff, you have to set the model using an environment variable:
export TURTLEBOT3_MODEL=burger
The roslaunch commands have to be updated for turtlebot3 if you’re following the tutorial. For example:
At this point, I’m still not sure if this whole WSL mess is the right way to go, or if I’ll need to switch to real Linux to get ROS/Gazebo running right.
Finally, I’ve found a couple online courses that are related to this that I intend to look into after I get ROS working correctly:
I was creating a report to show where my sales are coming from. I have the ZIP codes of all the shipping addresses in the US, but how would I group people from similar locations together?
My thought was to group the ZIP codes by Metropolitan Statistical Area, which, roughly speaking, is a large city and all of its suburbs. So, for instance, the MSA for New York City includes Newark and Long Island. The MSA for Atlanta includes Sandy Springs and Roswell.
So how do I figure out which ZIP codes belong to which MSA? After a quick search, I found several pay options. But surely this information is free somewhere, right?
µSAEventually I came across a reference to which led me to Geocorr 2018, an online searchable geography database from the University of Missouri. Here’s how you can use Geocorr to get a big CSV file that has every ZIP code, with the corresponding CBSA (which includes both MSAs and µSAs [areas with smaller populations than MSAs]):
Select the first state on the list under “Select the state(s) to process:”
Scroll to the bottom of the list and Shift-Click the last item to select all the states.
Under “Select one or more source geographies” pick “Core Based Statistical Area (CBSA)”
Under “Select one or more target geographies” pick “ZIP/ZCTA”
For “Weighing variable” pick “Population (2016 est.)”
Then pick any output format settings you’d like (I didn’t make any changes here) and click “Run request”. This gives you a downloadable CSV file with the ZIP codes and corresponding MSAs.