Profile

Cover photo
Andrew Reid
Works at NIST
Attended Queen's University
Lives in Washington DC
111 followers|185,512 views
AboutPostsCollectionsPhotosYouTube

Stream

Andrew Reid

Discussion  - 
 
Apparently the x86 "mov" command is Turing-complete. (h/t +Alan Cox , where I saw this first.)

There are good comments on the original post, and also on the Hacker News comment thread: https://news.ycombinator.com/item?id=9751312

PDF of the paper is here: http://www.cl.cam.ac.uk/~sd601/papers/mov.pdf

I believe the traditional next step is for someone to implement a four-function calculator this way -- it's not a proof, but it can be a good demo of just how (im)practical the Turing-completeness is.
 
This is simultaneously amazing, ridiculous, and terrifying.

As it turns out, the assembly instruction 'mov' is Turing complete.
movfuscator - The single instruction C compiler
7 comments on original post
8
1
Jason Kaler's profile photoGeorge Labuschagne's profile photo
 
If MOV is turing-complete and most compiled code is about 75% MOVs does that make all apps 75% turing complete?
Add a comment...

Andrew Reid

Shared publicly  - 
 
Many years ago, I backed this Kickstarter project, the "Revolights" bicycle lighting system. It's a ring of LEDs that goes on the rim of the wheel, and has a microcontroller in it, so that the front wheel is only lit on the front arc, and the back wheel only on the back arc as the wheels spin around.

They exceeded their Kickstarter target by a lot, and through their updates, I had a ring-side seat to the decision to do another design iteration, and then to on-shore the manufacturing to the US, with the attendant surprises, some good and some bad, and some additional delays. I found it all quite fascinating, and besides all that, did get a set of "Mark I" Revolights of my very own.

They finished their Kickstarter in September of 2011, and they're still going, they've subsequently come out with a custom wheel with integrated revolights, added an accelerometer to the rear wheel to make a smart brake light, gotten the products into bike shops, and continued updating their backers.

The most recent update looks pretty high-impact, geek culture wise, they're now featured in an article in Makezine, and are the subject of a short documentary film, linked to in the article, "Life after crowdfunding", which will apparently be Episode 1 of a longer film about crowd-funded startups and their issues.

Obviously, my involvement is pretty small, but I am still enjoying the progress they're making.
A loose consortium of bike-tech startups is collaborating to negotiate the crowdfunding valley of death and innovate urban biking.
3
1
Peter van der Linden's profile photo
Add a comment...

Andrew Reid

Shared publicly  - 
 
Today's ride. Finally getting back on the bike, after several weeks of illness or travel.
This was a really nice trip, it's about 30 miles, which can be challenging for me, but the hills are mostly front-loaded, it goes north through the street grid by way of Bethesda, then up to "North Bethesda", which is really southern Rockville, then back south along Rock Creek. Then the Shoreham Drive hill at the end, just to remind me that all that easy costing through the park was cheating.
3
Add a comment...

Andrew Reid

Shared publicly  - 
 
Just spotted this on Hacker News, it's a transistor-level simulation of an Atari 2600. (As one of the HN comments points out, this means logic-level simulation, which IMHO is more than impressive enough!) The blog post is actually from October 2014, but I don't think I've seen it before on G+. This is a really nice piece of work.
 +mos6502 
4
George Phillips's profile photo
 
It amuses me slightly that it is a super accurate transistor-level simulation yet it has a gross error because of some phase mismatch between the TIA and the 6502.  Kind of like the intercontinental railway that doesn't line up when it meets in the middle.

Mayhap they've fixed that bug, but you can still see the problem in the screenshots.
Add a comment...

Andrew Reid

Shared publicly  - 
 
As it happens, I have the "Blade Runner" collection referred to in this comic. I didn't purchase it, though, I got it as a gift. Easier to defend.
As always, thanks for using my Amazon Affiliate links ( US , UK , Canada ).
4
Andrew Reid's profile photoGeorge Phillips's profile photo
3 comments
 
"It comes with toys" surely forgives much.

I recently read "Do Androids Dream of Electric Sheep".  The one thing I remember is that pets were a status symbol what with nuclear war (or something) having wiped most animals out.  But most could only afford a mechanical version that was almost good enough to look like the real thing.  This sort of explains the wide-ranging genetic engineering stuff in the film.
Add a comment...

Andrew Reid

Documents,Books,Essays,Articles,Blogs,Wikis  - 
 
Re-sharing some personal reminiscences of mine about the MTS operating system.
 
Via Hacker News.

The Michigan Terminal System was a time-shared interactive mainframe operating system running on IBM System/360 machines and their descendants. It was in use at the University of British Columbia when I was an undergraduate, and I got to know it pretty well.

There were a few features that we'd now consider pretty much insane -- individual user accounts had a flat file space, with no subdirectories, and I think it had an "8.3"-style file naming convention.

It was also ahead of its time in many ways. Just being interactive was a pretty big deal in the early 1980s, to work on the system, you'd go to one of the rooms full of 9600-baud serial-connected terminals and hack away. It also had virtual devices,  you could send output to the central system line printer by assigning an output channel to "*PRINT*", which would automatically generate a print job, which you could then go to the distribution center to pick up. Something else it had that I've not seen elsewhere was special metadata you could add to files to control their behavior on reading -- I think there were several of these, but the one I actually used was the "continuatoin line" -- you could put a special sequence in a file, like "*CONTINUE <filename>", and on reading, the system would seamlessly switch over to the specified file and keep on reading. This allowed you to mix and match files to create various kinds of input data.

Instructional computing on this system was mostly done with the Pascal VS compiler, and for "enterprise"-style large scale software engineering, we used PL/1. I wrote some data-massaging code for this system in a mix of Fortran IV and System/360 assembler -- Fortran 77 was available, but I was a speed demon in those days, the Fortran H optimizing compiler produced the fastest executables, and it only spoke Fortran IV, so that's what I used.

UBC also had a rate schedule for resource usage, students were issued virtual computer dollars, and were then charged for execution time, storage, and so forth, with a time-of-day based multiplier. In the middle of the day, it was 1.0, between 3pm and 5pm it was 1.2, but between midnight and 6am, it was 0.05. Lots of work on term projects was done in this window.

By the time I was in graduate school, in the later 1980s, minicomputers had become reasonably common, and I did most of that work on various MicroVAX, MIPS, HP-9000, and Sun systems, all running Unix of one knid or another.
7 comments on original post
3
1
Ken Harbit (Pogi)'s profile photo
Add a comment...
In his circles
143 people
Have him in circles
111 people
Dan Lewis's profile photo
James Warren's profile photo
Derek Tearne's profile photo
Sanjeev Sharma's profile photo
Kenneth Kasajian's profile photo
Yonatan Zunger's profile photo
Stephen Hicks's profile photo
Adam Morey's profile photo
Carlo Dilorenzo's profile photo

Andrew Reid

Shared publicly  - 
 
A few days ago, having become frustrated with my Nexus 7 (2012) and its slow decline in performance, combined with feeling generous towards myself, I ordered a Nexus 9.

It arrived today, and I once again have the problem I seem to always have with just about every new wifi device ever -- the thing will not tell me its MAC address.

I have a MAC white-list on my home wifi network. so it is of high utility for me to know the MAC addresses of devices I want to connect to the network before I connect them. A spate of recent devices have had this problem, the Nexus 5 (LG), the Nexus 7 (2012) (Asus), the Nexus 9 (HTC), the Chromecast, the Ouya, my LG DVD player. It's not everything, if I recall correctly, the Roku popped up the MAC address on the screen where you pick the ESSID you want to connect to. Is this really so hard? Shouldn't this be simple basic information? It could be on a sticker on the box, where there is also a serial number and various other device-specific bits of info, or, as for the Roku, it could be discreetly in a corner of the ESSID selection dialog.

And yes, I am familiar with the argument that MAC filters are useless, because MACs can be spoofed and a determined attacker can sniff a valid MAC from routine traffic and spoof it at their leisure. I am not defending against a determined attacker, I am just practicing reasonably simple "defense in depth", in the hopes that maybe the MAC filter will make a non-determined attacker move on to my neighbor and leave me alone. Besides which, it is not, in my opinion, the role of device manufacturers or set-up software authors to dictate network security policy for me. They should provide sufficient info to allow various policies to work.

My solution, incidentally, was rather creative, I thought. I turned on tethering on my phone, and attached the device to the phone, then opened a shell on the phone and looked in the ARP cache (it's in /proc/net/arp, no root access required) to find the MAC address, which I then entered into my home network's white list. The phone tethering does not have a MAC whitelist, because it's not continuously on, so it presents a smaller attack surface.
2
Bill Connor's profile photoDarren Schebek's profile photoAndrew Reid's profile photo
6 comments
 
+Bill Connor Mine improved slightly from 5.1 to 5.1.1, it got to the point where it could run two apps at once and only freeze occasionally, which was better than the constant random freezing of 5.1, but still enough to make me crazy.
The N9 has made a good first impression,  it's quite zippy, and my aging eyes appreciate the larger screen, it's a better e-reader than the N7. But, it's also noticeably heavier, and in my initial set-up session, featuring downloading lots of apps and content, it got noticeably warm on the back. Also, it's still on 5.0, hopefully 5.1 won't be an issue here....
Add a comment...

Andrew Reid

Shared publicly  - 
 
Superpowers, energy and entropy, philosophy, and some interesting lateral and long-term thinking. It's even got a nice bit of a twist ending.
. Seen on Tumblr, along with associated discussion: Yellow: People's minds are heartbreaking. Not because people are so bad, but because they're so good. Nobody is the villain of their own life sto...
4
Ed S's profile photo
Ed S
 
Nicely done.
Add a comment...

Andrew Reid

Shared publicly  - 
 
Via Hacker News, an Amazon Web Services (AWS) article about leap seconds, in particular the one coming up on June 30, 2015, and the implications thereof.

Interestingly, apparently the AWS back-end systems are not going to implement the leap second directly, they are instead going to use "AWS adjusted time", which will change the rate of system clocks, starting 12 hours before the UTC leap second, drifting away from UTC, and then back towards it, syncing back up 12 hours after the leap second. In particular, this scheme will be used for measuring billable items, like run-time, during the interval in question.

 EC2 instances are on their own, of course, as they are for most things, and will see the leap second if they're sync'd to a UTC source, and not otherwise.

I would have expected this article to explain how to sync an instance to "AWS adjusted time", but it doesn't seem to do that.

Related: http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time
1
Add a comment...

Andrew Reid

Shared publicly  - 
 
This week's "New Yorker" magazine has a profile of the guys putting together "No Man's Sky", an exploration, survival, and apparently combat game in a procedurally-generated universe. It took the article a surprisingly long time to mention the old 8-bit computer game "Elite", to which this game owes an obvious conceptual debt, but they did eventually get to it. I spent a lot of time with Elite on my Commodore 64 back in the day. It also resembles "Mirror Moon", a space exploration themed game I play on my Ouya from time to time.
I do hope something comes of this, it sounds like a very cool project, but, again from the "New Yorker" article, I have the impression that it's a small, highly talented team of techno-optimists up against a distribution industry and infrastructure that isn't really set up for this sort of thing.

New Yorker article here:
http://www.newyorker.com/magazine/2015/05/18/world-without-end-raffi-khatchadourian
2
Darren Schebek's profile photoGeorge Phillips's profile photoAndrew Reid's profile photo
5 comments
 
Nope, haven't forgotten that one. That "combat" model is still unique in my experience, it's a scheme where there's a set number of cells, and you have to power (or influence, or something) more of them than your computer opponent, with a finite number of charges.

Nifty article.
Add a comment...

Andrew Reid

General Discussion  - 
 
I just upgraded one of my desktops from Wheezy to Jessie, and had a few issues. For the first, I can share the solution, and for the second, I have questions, and perhaps complaints.

The first issue was the video -- the machine has "legacy" Nvidia cards in it, and I've been using the proprietary NVidia blobs for years, straight from the NVidia site. This file didn't work for Jessie, it couldn't find some header files -- I wasn't too concerned, I figured at this point that old NVidia card (it's a GTX 260) is probably supported by the Nouveau drivers. But, the Nvidia uninstaller won't work either, and the nvidia-installer-cleanup package failed its config. Turned out what it was doing was trying to run /usr/bin/nvidia-uninstaller, which I think is the same NVidia-provided executable that doesn't work. The solution is to just remove that executable, and then reconfigure/reinstall the nvidia-installer-cleanup. The last issue was, I was stuck in low-res VGA mode until I remembered to go clean out the nouveau blacklists from /etc/modprobe.d. It was blacklisted three or four different ways. And, I was right, the nouveau drivers work just fine for this card.

My second issue, still unresolved, is with the new version of the grub bootloader, grub-pc 2.0.2. It defaults to "restricted" mode, so that as-installed, the system requires the root password to be typed in at the console before it will boot. For my secondary desktop system at home, this is merely inconvenient, but for headless servers in far-away data centers, this is potentially extremely serious. I surmise from the bug reports (eg. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708181) that the grub upstream wants this behavior, but really, it needs to be dead simple to get the machine into a state where, absent errors, it will boot autonomously. At the moment, the solution in the Jessie release seems to be to either remove the superuser entry (opening up the whole grub process), or hacking a "--unrestricted" flag into /etc/grub.d/10_linux, and hoping it doesn't get clobbered by a package update.

It's possible there's an easy workaround that I just haven't found yet, but this is highly undesirable behavior for the server use-case.

On the up side, so far, Jessie seems quite stable, KDE worked fine, and "so far so good" on systemd.
1
Paul Frederick's profile photoScott E's profile photoAnthony Headley's profile photoAndrew Reid's profile photo
6 comments
 
I've learned a bit more about the grub thing, it turns out that the all-entries password protection is the default behavior if there is a "superusers" entry in grub.cfg. If there are no users, the behavior is to not protect the entries, and indeed, my current workaround is to just remove my superusers entry.
My entry was in /etc/grub.d/40_custom, and it may have been there prior to the upgrade, I know I have experimented with grub password protection in the past. If that's the case, then it was me who set the trap, and the change in default behavior that triggered it, and users who have not mucked with their grub config won't have this issue. That would be a satisfying explanation, but I can't prove it either way at this point.
Add a comment...

Andrew Reid

Shared publicly  - 
 
A fun thing I didn't know about the District of Columbia -- we apparently sort of have an official Dinosaur, "Capitalsaurus." The basis for this is that apparently a portion of a vertebra was dug up in 1898 around 1st and F SE, and in _19_98, some schoolkids thought it would be fun to make the associated dinosaur species a DC mascot. There were various issues with this, the exact species corresponding to the bone is not known, and even if it were, the DC council is not empowered to name dinosaurs, so the validity of the whole business is rather questionable.
1
Peter Phillips's profile photo
 
This has to be a question for "Trivial Pursuit: Impossible Trivia Edition".
Add a comment...
Andrew's Collections
People
In his circles
143 people
Have him in circles
111 people
Dan Lewis's profile photo
James Warren's profile photo
Derek Tearne's profile photo
Sanjeev Sharma's profile photo
Kenneth Kasajian's profile photo
Yonatan Zunger's profile photo
Stephen Hicks's profile photo
Adam Morey's profile photo
Carlo Dilorenzo's profile photo
Work
Occupation
Scientific computing
Employment
  • NIST
    Scientific computing, present
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Washington DC
Previously
Canada - Calgary - Vancouver - Chicago
Links
Contributor to
Story
Tagline
Clever. Maybe clever enough.
Introduction
I studied computer science and physics at UBC, and have never really let go of either. I read a lot. Geeky, but not in a debilitating way.
Bragging rights
I know how much wood a woodchuck would chuck, but I'm not telling.
Education
  • Queen's University
    Physics, 1989 - 1994
  • University of British Columbia
    Physics, 1986 - 1989
  • University of British Columbia
    Physics and Computer Science, 1982 - 1986
Basic Information
Gender
Male