<unknown>:0: error: opening import file for module 'SwiftShims': No such file or directory6 karma · joined March 11, 2015
<unknown>:0: error: opening import file for module 'SwiftShims': No such file or directoryIf you just want to play with the REPL (usr/bin/swift in the Ubuntu 14.04 snapshot), all you have to do is:
apt-get install python-dev
If you want to actually compile swift files (usr/bin/swiftc in the Ubuntu 14.04 snapshot), it appears extremely basic programs will compile with jessie's clang-3.5, so all you have to do is: apt-get install clang
Note that the swift.org instructions claim you need clang-3.6, and you probably do for more complex programs. For that, you'll need to temporarily add a sid/unstable source and upgrade clang: echo 'deb http://ftp.us.debian.org/debian/ unstable main' >> /etc/apt/sources.list
apt-get update
apt-get install clang
(don't forget to remove the unstable line afterwards).Here's a demo PNG file which contains 48 QR codes (6x8) at V23 level with L correction (~7% recovery). That's 1091 bytes per code, or just over 51KB per page when printed at 300 dpi. This level of density seems to be very reliable using ambient lighting and an iPhone 5c.
I was also able to read a QR code which was 66% of that size, but it required turning on the iPhone's flash in order to be reliably read. That level of density would allow fitting 9x12 codes on a single page at 300 dpi, which would yield 115KB of data per page.
(At first I tried using 600 dpi, but at 1 dot per pixel the codes were totally unreadable by a cell phone. The above 115KB/page density is the equivalent of 4 dots per pixel at 600 dpi. The good news is this means the system doesn't require a 600 dpi printer. In fact, at 1 dot per pixel, the 51KB/page density is equivalent to 100dpi, and the 115KB/page density is equivalent to 150dpi).
On the other hand, this represents a great business opportunity for ski resorts. The ski resort has a few soloshots mounted near the snowboarding rail park, and $5 lets you wear a tracking armband for 5 minutes. Drop it in the bucket at the end of your run, get an ID number which will allow you to download your footage at the end of the day.
In fact, if a ski resort wanted throw a ton of money at this problem, they could put soloshots along the entire mountain, and you rent an armband for an entire run down the mountain. That would however require sophisticated software on their end to collate all of the camera feeds and stitch together a single video file of your run down the mountain.
I.e., Instead of providing (key: value), it provides (key: (metadata, value))?