Dr. Lawlor's Code, Robots, & Things

June 24, 2018

Legit Websites that Track Everything You Do

Filed under: Mass Surveillance, Random Thoughts — Dr. Lawlor @ 9:44 pm

TL;DR Version: many legitimate websites record extremely detailed data about everything you do on the site, including your mouse position and where you scroll, using a tool like ForeSee Replay.  Since there is no global opt-out, you need to install an ad blocker to prevent this kind of bandwidth-wasting privacy intrusion.

This afternoon I opened a few eBay tabs, and I have a vague recollection of seeing one of those standard ForeSee popups asking if I’d like to participate in a survey.  I almost always say “No Thanks”, and I’m 99% sure I did not agree to a survey today.

This evening, I noticed my laptop’s outbound network traffic was heavy, which seriously slows down our rural DSL (4mbit down, 1mbit up).  The more I looked at this, the less I liked it: chrome was sending piles of HTTPS data off to four different AWS-hosted servers that list themselves as “ForeSee Record Status (cxReplayRecorder) v2.4.11” (IP addresses:, but they’re load balanced).  I grabbed some of the traffic with Wireshark, but it’s encrypted, so I still have no way of telling what exactly was sent.

I knew the traffic was coming from chrome, but I have a bad habit of keeping about a hundred tabs open (!), so I carefully watched the bandwidth usage as I incrementally closed tabs.  As soon as I closed the ebay tabs, the traffic stopped.  Reopening the tabs didn’t bring the traffic back–it only happens when the tracker code decides it has enough data to be worth sending back out.

ForeSee seems particularly evasive in the way it phrases the ‘survey’: not only will you (maybe) answer questions, the ForeSee® Replay code also tracks every mouse click, mouse *hover*, and scroll that you do on the site.  Their Replay viewer lets them see heat maps showing where people click, or even hover the mouse.  (This is useful data for building the site, but it’s not disclosed that it is part of the ‘survey’.)

The tracking servers dump a pile of metadata, from which I can see:

  • There are about 10 active replay recorder servers right now.
  • Each server is receiving about 1,000 ‘transmits’ per minute.
  • Each ‘transmit’ occupies about 100 kilobytes (on average), which is a lot of bandwidth, and a lot of information captured.
  • A typical server seems to capture over a terabyte per week, from over 10 million users.

To stop this, install an ad blocker like the free Ad Block Plus, and add “/foresee/*” to the filter list.


April 14, 2018

Simple Encrypted Drive on Linux

Filed under: Linux, Random Thoughts — Dr. Lawlor @ 11:44 am

Here’s how to create a separate dedicated encrypted filesystem on a modern Linux machine.

  1. Create a large *sparse* file, here 60,000 MB maximum.  Sparse is faster to create and uses less storage, because the underlying file only gets filled in as you write data.  However, this may make the data write pattern visible to a sufficiently dedicated attacker; use “count=60000” from /dev/urandom instead of seek to prefill a dense file.
    • dd if=/dev/zero of=grades.img seek=60000 bs=1024k
  2. Mount the file as an encrypted block device.
    • cryptsetup --cipher aes-xts-plain64 --key-size 256 create grades grades.img
  3. Make the filesystem.
    • mkfs.ext4 -m 0 /dev/mapper/grades
  4. Mount the filesystem to a directory.
    • mount /dev/mapper/grades grades
  5. You can now copy files on and off the encrypted path.  To clean up, unmount:
    • umount grades
  6. Now remove the block device and you’re secure again.
    • cryptsetup remove grades

March 18, 2018

Martians, don’t let your babies grow up to be Idiots

Filed under: Random Thoughts, Space, Surviving Mars Game — Dr. Lawlor @ 11:35 pm

The simulated people in the game “Surviving Mars” have a bunch of character traits, including “Workaholic”, “Stoic”, etc.  One of the bad traits “Idiot”: when an Idiot is working in a building, they have a 10% chance of breaking the building bad enough to require maintenance (and critical spare parts).

You can choose who gets on the rockets, so I didn’t bring any Idiots to Mars.  Problem solved?

No.  After a few years, your colony celebrates its first birth.  If you don’t dedicate scarce dome space to a School and University, you’ll end up with a ton of Idiots in your first crop of Martian-born kids.  Since a fully-staffed semiconductor factory takes 10 people per shift, and an Idiot has a 10% chance per sol of breaking the building, if your workforce is all Idiots the factory basically never works, and your colony dies.

A cautionary tale!

(And a fun game, although I’m still trying to figure out how to get resources to reliably distribute themselves between depots as you expand.)

January 2, 2018

Migraine – Potassium – Sodium link?

Filed under: Random Thoughts — Dr. Lawlor @ 3:49 pm

Raw foods, like fruits, vegetables, nuts, and meats, include lots of potassium.  Modern processed foods include lots of sodium, because sodium is a cheap way to make foods tastier.

If you eat too many processed sodium-rich foods, your kidneys excrete the excess sodium, but this also washes potassium out of your body.

Yesterday, I skipped my usual daily apple and yogurt (potassium-rich foods), but I did eat a large helping of pesto pasta, which was green and tasty.  But then last night I woke up with a head-splitting migraine, including sensitivity to light and sound, which is quite unusual for me.  I also had an urge to eat something salty like corn chips: salty foods usually don’t work for me, but it indicates how your body reacts to an electrolyte imbalance.  Suspecting low potassium, I drank two glasses of apple-cherry 100% juice–each glass has 8% of your daily RDA of potassium, 1% of your RDA of sodium.  The migraine immediately began to recede.

Looking at the labels this morning, the processed pesto I used turns out to be high in sodium, with almost no potassium.

Disclaimer: I am a doctor, but of computer science, not medicine!  Actual medical doctors are now examining therapies that treat electrolyte imbalance to treat migraine.

February 20, 2017

Materials Breaking: Collection of Videos

Filed under: Random Thoughts — Dr. Lawlor @ 3:06 pm

High magnification (electron microscope?) image of lathe tools turning various steels.  Steel’s deformation is ductile, like clay.

Ultra high speed footage of breaking glass, showing a brittle fracture that propagates at about half the speed of sound in glass (kilometers per second).

Even higher speed footage (500ns between frames) of plexiglass cracking:

Tensile stretching steel rebar to failure.  There is a lot of plastic deformation before the final break.

Without steel reinforcing, concrete fails in a brittle fashion, with cracks opening up in the areas in tension.

At supersonic velocity, a crash test dummy can obliterate a cinder block wall.


January 23, 2017

Sandstruder: metering sand for 3D printing

Filed under: Random Thoughts — Dr. Lawlor @ 10:59 am

For the NASA 3D printed habitat challenge, I’m upgrading my 3D printer to be able to shuffle around fluffy basalt dust.  For that, I need a sort of extruder capable of moving sand around.  My weekend project was a “sandstruder”, designed to extract sand from a hopper, and send it down a (to be determined) sort of sand Bowden tube.


OpenSCAD model


3D printed in two halves


Extruding sand!

Sand extrusion seems quite reliable, although metering is not very consistent.  Wired up as an “extruder”, and programmed like a Wade’s geared extruder, a software commanded “10mm of filament” emits between 8 and 14 grams of dust, with an average around 11 grams.  It seems to run reliably up to the speed limit of the stepper, a few thousand mm per minute (so a few kilograms of sand per minute).

If the auger bit gets jammed up on a rock, the stepper just skips steps rather than destroying itself, which is one advantage of this low-torque direct drive setup.  I will need to pre-screen the sand to eliminate the rocks, however.

Like it?  Download an STL or the OpenSCAD source code on thingiverse (or github)!

April 26, 2016

Terrain Rendering in 3D

Filed under: Graphics, Linux, Programming, Random Thoughts — Dr. Lawlor @ 4:49 pm

Back in 2003 I worked on a terrain simplification algorithm, a modification of Lindstrom’s method, to allow interactive exploration of big terrains in 3D.

A binary distribution is available for Windows (.zip) or Linux (.tar.gz), and the binaries should work, and let you view your own binary DEM and JPEG texture.  I made an attempt to include the source in there, although I built both of the binaries using my custom build system, so it’s likely to take quite a bit more work, and possibly even some missing custom libraries, to get it to compile.

November 15, 2015

Interactive Web-Based Visualization Tools

Filed under: Random Thoughts — Dr. Lawlor @ 11:05 pm

Many datasets can be most easily viewed in 3D:

  • ArmsGlobe displays small arms and ammunition shipments through time and space.
  • ViziCities loads OpenStreetMap data into 3D, in browser.

A variety of physical simulations can use WebGL for interactive visualization.  One thing I love about WebGL is your pixel and vertex shaders run on the GPU with exactly the same performance you’d get in a full application, but it’s delivered instantly on any platform in a browser.

Several modern interactive 3D computer-aided design (CAD) programs are shifting to web-based tools:

  • OpenJSCAD provides a 3D constructive solid geometry programming language in-browser using JavaScript for computational geometry, and WebGL for rendering.
  • Onshape provides high end 3D computer aided design features similar to SolidWorks, but runs entirely in browser.

We’ve been building a web-based robot configuration, programming, and visualization system called RobotMoose.

Short link here for D2D workshophttp://tinyurl.com/d2dwebviz

September 28, 2015

Earthquake P-wave and nighttime anxiety

Filed under: Random Thoughts — Dr. Lawlor @ 9:24 pm

About 2am last night, I woke up feeling extremely anxious, and the hairs on my arms were standing up–neither of which is at all typical for me!  A few seconds later, I felt the bed start shaking very gently, and I realized it was probably an earthquake.

Checking the USGS Earthquake Map, there was indeed a magnitude 3.1 earthquake in our hills at this time, about 60km away and 11km deep.  Clearly something about the earthquake woke me up, but it’s surprising I subconsciously managed to detect the P wave while sound asleep, considering the later S wave (typically 2-3 times larger) could barely be felt.

July 18, 2015

LaserJet 8500: a huge awesome ancient laser printer

Filed under: Random Thoughts — Dr. Lawlor @ 8:52 pm

At a surplus auction today, I picked up an Apple LaserJet 8500, a 60 pound black and white laser printer from the 1990’s.  Why did I bother buying such an ancient beast?

It can feed huge 13 x 19 inch paper!  I often do robot design work in CAD, then laser print a template to glue onto steel, plywood, plastic sheet, or whatever material for further drilling, cutting, and machining.  This means the size of my parts is limited by the size of my printer, so a big printer lets me build bigger parts more easily.

Anyway, the hard part was getting the printer’s IP address.  Once you have the original IP, you can reconfigure it via telnet (it will make you set a password), and then send it Postscript files via the JetDirect (9100) network port.  All you need is the LaserJet 8500 PPD file, version 1.2–link is plain text that I had to unpack from Apple’s ancient classic Mac smi.bin file using the BasiliskII emulator.

Older Posts »

Blog at WordPress.com.