Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Friday, January 13, 2012

Best Idea Ever: "Air Snail" to lock down MacBook Air with Kensington-style lock

UPDATE #2: More competition has come onto the market. Check out the Snake ~ Chicago Snake lock solution. It looks a lot less scary (in terms of potential scratching) than the others, like macBracket. It's $20 and available from Amazon, where several pictures of how it works are shown. You can also find it at its home page.
UPDATE #1: It turns out this is not the only bracket available. As reviewed by MacGirl.net, there used to be a bracket sold on an eBay store that slid up through the MacBook Air. Unfortunately, not only was the locking portion in front of the screen, but it could slide around and scratch the device. Then came the macBracket out of Germany. The macBracket is pretty slick and looks like it is relatively gentle on the MacBook Air. It's a little pricey, but it's not like there's a lot of competition right now.

So if you need a good solution right now, check out the macBracket. Just make sure to order the correct version for your MacBook Air; they have support for new MacBook Airs (MBA). That new MBA bracket will be shipping soon (at the time of this posting), but it's available for order on their website.
I was surprised to hear that the MacBook Air has no Kensington lock slot. It's too small. Apparently, some of the PC ultrabooks also have this problem. Tablets have this problem, but it's easy to take tablets and phones with you... It's a little harder to carry the MacBook Air everywhere.

There are a ton of alarm solutions (like what you'd expect to see in a BestBuy) that rely on USB connectivity or adhesion or something similar. Those aren't really ideal. A lock is what is really needed. I've seen two locking solutions available for purchase, and both of them are a bit ugly.
  • The first, from MacLocks.com is a protective case which attaches to the bottom of the MacBook Air with screws. The protective case includes a Kensington lock slot, and so your MacBook Air can be locked down so long as the potential thief doesn't carry around the right screw driver (some sort of security star head or something like that). I suppose they could have used those non-removable screws that only support a driver in the clockwise direction (like in many bathroom stalls), but then you'd be out of luck if you ever wanted to get the case off of your MacBook Air.
  • The second, from JKLocks.com, has a few variations. I saw version RL108 on YouTube, but there are other versions on the company website. It uses 3M command strips to attach a Kensington lock slot to the back of the laptop. When the lock is connected, it covers the ends of the command strips so they cannot be removed. Of course, if you ever try to remove the command strips, you have to be very careful the metal base of the Kensington lock slot doesn't go scratching across the top of the laptop (!!).
So neither solution is really that good. But then I saw this YouTube video of the Air Snail, a prototype that was invented before either of those solutions were marketed (I think) and requires no screws or funny adhesives

That's genius! It is just an eared sickle that slides through the hole between the screen and the keyboard; the hinges and lock keep it from sliding out! Unfortunately, the inventor cannot find any partners willing to fabricate it in large quantities and market it. Sure, it would need to be built so it could be tough while not scratching the device (and would need to be fabricated for relatively cheap). However, I think those challenges are not insurmountable.

So do you have some dough laying around and want to market a great idea? If so, contact the inventor and start selling these things! Get them out before there are a lot of ultrabooks on the market -- I'm guessing there will be a demand for this little portable toy!

Meanwhile, you could probably fabricate something similar yourself (e.g., with some coated aircraft cable thin enough to slide through the MacBook Air). It might be hard to make it compatible with a Kensington lock without some fabrication, but you could surely make it compatible with a padlock.

Tuesday, August 23, 2011

The maximum number of matrix dimensions in MATLAB

[ Background: I was asked what the maximum number of matrix dimensions was in MATLAB today. I responded as follows. ]

You are only limited by the amount of memory available and the maximum number of ELEMENTS (as opposed to dimensions) in a matrix. The actual number of dimensions is just a detail about how the memory is indexed. You can reshape any existing matrix to any number of dimensions (I'll give details below). You can only create a new matrix if it abides by the memory and element limits that vary by computer.

To find out the maximum number of elements for a matrix on your computer, use the MATLAB command "computer" (do "help computer" for details). For example:
[~,maxsize,~]=computer
tells me that I can have 2.8147e+14 elements in matrices on my computer. So I better be sure that:
(number of rows)
   × (number of columns)
   × (number of cubes)
   × (number of 4-th dimensional thinggies)
   × (...)
is less than that number.

To find out about memory limits on your system see, the command "memory" ("help memory" or "doc memory"). Unfortunately, memory may not be available on your system. Alternatively, you can see:

http://www.mathworks.com/support/tech-notes/1100/1110.html

for information about memory limits in MATLAB. For information about the maximum number of elements (and the command "computer" that I discussed above), see (UPDATE: MATLAB has moved this page, and this link doesn't land in the right spot anymore):

http://www.mathworks.com/support/tech-notes/1200/1207.html#15

Regarding dimensions, you can use the command "reshape" to re-index any existing matrix. For example, if I start with the column vector:
A=ones(100,1)
I can turn it into a row vector:
newA = reshape(A, 1, 100)
or a matrix of any number of dimensions so long as the number of elements is still 100.
newA = reshape( A, 2, 2, 25 )
newA = reshape( A, 1, 1, 1, 1, 1, 1, 1, 1, 1, 100, 1 )
newA = reshape( A, 1, 1, 1, 2, 1, 50, 1, 1, 1, 1, 1, 1, 1, 1 )
% etc.
Now, I'm assuming you're using regular MATLAB matrices. Alternatively, you can use sparse matrices so long as you limit yourself to functions that work with sparse matrices:
help sparfun
A sparse matrix stores an index with every element. That lets it "skip over" the 0 elements of the matrix. Consequently, you can store VERY large matrices with an abstract number of elements far larger than anything you can work with in MATLAB... however, most of those abstract elements will be 0.

Friday, July 24, 2009

Installing docutils for Mercurial (rst2man and rst2html)

If you're building Mercurial from its source, you might notice that the latest versions are using reStructuredText to markup their documentation. Hence, you'll need to install docutils. Additionally:
  • You'll have to install the rst2man tool that is presently only available in the docutils "Sandbox," which you have to download separately.
  • You'll have to make sure you have the new rst2man.py tool accessible in your PATH as rst2man.
  • You'll have to make sure you have the included rst2html.py tool accessible in your PATH as rst2html.
So it's no surprise that yet-another-Python-related-adventure is yet-another-Python-related-headache. Here's how to get up and running. Things should get substantially simpler if and when docutils starts including rst2man as part of their standard distribution (however, you'll probably still have to make the simlinks unless Mercurial's installer is able to call the rst scripts with their .py extension). Meanwhile, here are some steps that will hopefully get you (the UNIX or Mac/OS X user) moving in the right direction.
  • First, go to the docutils website and download the docutils snapshot as well as the docutils sandbox snapshot.
  • tar zxf those tarballs to extract the docutils source code. That should give docutils and sandbox directories.
  • Copy sandbox/manpage-writer/tools/rst2man.py to somewhere in your PATH (e.g., /usr/local/bin/rst2man.py or ~/bin/rst2man.py if you have ~/bin in your PATH).
  • Create a symbolic link in your PATH from the rst2man.py you just placed there to rst2man. For example, symlink /usr/local/bin/rst2man.py to /usr/local/bin/rst2man by doing ln -s rst2man.py rst2man in the /usr/local/bin directory.
  • Copy sandbox/manpage-writer/docutils/writers/manpage.py to docutils/docutils/writers/manpage.py.
  • In the docutils directory, run python setup.py install (for a global installation) or python setup.py install --home ~ (for a home installation).
  • Copy docutils/rst2html.py to somewhere in your PATH (e.g., /usr/local/bin/rst2html.py or ~/bin/rst2html.py).
  • Create a symbolic link in your PATH from the rst2html.py you just placed there to rst2html. For example, ln -s rst2html.py rst2html inside your /usr/local/bin or ~/bin directory.
  • Fetch the latest version of Mercurial and build it. Assuming you have all of the other dependencies, it should build OK.
Of course, YMMV, but I hope that at least helps get you on your way.

Saturday, October 04, 2008

Terra-Fi/Tera-Fi was my idea!

Someday they'll come out with terabit/s wireless networking (similar to 802.11... maybe 802.11t or something), and they'll need a name for it. It came to me this week that a great name would be "TeraFi" (or "TerraFi" or "Tera-Fi" or a similar spelling). That is, combine "terabit" and "wi-fi" to make a word that sounds like "terrify."

So that's my idea.

I wanted to put it out there before someone else did.

Tera-Fi. It's so fast it's scary.

Wednesday, March 12, 2008

Because it drives me nuts...

From xkcd/394:

On a serious note, "kB" is "kilobyte" and "kb" is "kilobit." An uppercase "K" is "Kelvin," and so it should never be paired with either "B" or "b". For most modern machines, a "B"yte is 8 "b"its, but there is NO GOOD REASON to assume this case. The meaning of "kilo" is context-dependent, though it's computationally convenient to use 1024 rather than the standard 1000 (because computers address things in base-2).