Opinion « Matt’s Blog

Matt’s Blog Just another weblog


facebook’s invitations a violation of privacy

I don't care much for marketing, be it guerrilla, word-of-mouth or viral or whatever. In every case, it's always a been thief of my time. The reason I mention it is that I was a recent victim of the viral marketing time thief and worse a victim of privacy violation on facebook.

In one such viral campaign, a facebook friend was obviously tricked into spreading a company's facebook event invite to a not so much "event" but a campaign poster. What an interesting media, I thought.

In response, my viral marketing antibodies engaged and I immediately began searching for the facebook feature to dismiss this annoyance, to erase it from my facebook existence. I was heavily disappointed to find that no matter what decision I make in response to this campaign invite, I will result in being a marketing statistic and worse suffer serious violation of my privacy.

Facebook has been battling the privacy daemon for quite sometime. The most recent have been related to security, and a "Groups" feature resulted in facebook users "talking to lots of people who aren't on your Friends list at all", again a serious violation of privacy. It was attempting to dismiss the marketing campaign invite on facebook that I realized yet another violation of privacy within facebook--this time within the event invite feature. The marketing firms are quite aware of this flaw.

Let me explain it. Recipient of a facebook event invitation has three options to respond to such a solicitation: "I'm Attending", "Maybe", and "No". The recipient is of course not forced to answer the question; however, their name will remain in the "Awaiting Reply" bucket of names. Worse, no matter which option is selected, there exists a corresponding bucket, accessibly by anyone, including the solicitors, allowing them to view each persons response to the invite. We then have no choice, but to submit our unsolicited participation as a statistic to the marketing campaigns. This is a major flaw in the facebook event system!

Privacy settings should be granule enough to allow control of every piece of public facing piece of information. This includes my response to unsolicited event invites. Facebook, please fix this flaw.

Filed under: Opinion No Comments

scanimage(1) command python wrapper

To reduce clutter and improve the efficiency of my home-office, I like to digitize all my "important" documents. To accomplish this task, I use a HP All-in-one scanner, an open sourced document management software called KnowledgeTree, and scanimage(1) from the SANE project.

It turns out that scanimage(1) is a fairly cumbersome command line program to use. I opted to avoid graphical scanning software because I don't want to be clicking around with the mouse when scanning large number of document sets. It turns out that I use a consistent set of options for all my document scanning purposes. The only options that to vary are the number of pages and whether the document set is single or double sided.

For the longest time, I was very happy with my simple bash script to store my command options to scanimage(1) and I would "manually" set any arguments (e.g. number of pages). This worked pretty well for single sided documents. After some time, I finally had it with the headache of modifying the command options manually when I wanted to scan double side documents and decided to write a python script that would wrap all this knowledge into a script. I call my script scan_pages.py. It has very simple usage:

scan_pages.py [-d | --double] total-pages

The script does three things. First, it manages the "--batch-count" and "--batch-start" command line options depending upon the parameters of the scan job. Also, it automatically calculates the number of pages that are to be scanned for a two-pass double sided scan job. It is only required to specify the '-d' flag and the total number of pages, both front and back, that are to be scanned. Lastly, the script will use the convert(1) command to trim any whitespace contained in the image that is not part of the original document.

If you use scanimage(1) you may find this script helpful. Let me know if you like it. You may download it here.

Filed under: Guide, Opinion No Comments

Jim Cramer raises Apple (AAPL) target price!

In today's episode of Jim Cramer's Mad Money, Cramer has raised the target price of Apple (AAPL) to $264. This article has a great recap of the todays episode. Cramer states that the FASB is proposing a change in a revenue recognition standard such that it will dramatically increase Apple's reported earnings. Thus, making the stock appear cheaper than it currently is, even though Apple's financial position has not changed.

This episode has been bothering me all day because of the fundamental error in Jim Cramer's arguments. He made two points to justify his recommendation 1) The accounting change will increase Apples P/E ration thus making it appear it's financial position has strengthened and 2) Investors are going to ignore the accounting change.

However, I doubt it. Though there are many ways that a stock's price can be calculated, it is fundamentally the present value of the future cash flows. One does not have to be a hedge fund manager to see that an accounting change does not increase the future value of cash flows. Secondly, as Cramer pointed out, Apple's Statement of Cash Flows has already recognized the cash flow from the sales of Apple's products and investors do not ignore this important financial statement.

I would think that this revenue has already been priced in Apple's stock.

Filed under: Opinion No Comments

Intel Atom!

I've recently decided replace two of my home servers with an Intel Atom system. The Atom is a low-power CPU which comes in various flavors which you can read about at wikipedia.org. What I will tell you about is the huge success that my upgrade has been and how extremely happy I am with this processor. You will also find a detail listing of the various components that compose my system, how the system is being used, and my overall opinion of the processor.


  1. Athenatech Black Steel A100BB.270 Micro ATX Media Center / HTPC Case
  2. Kingston 2GB 240-Pin DDR2 SDRAM DDR2 533 (PC2 4200) Desktop Memory Model KVR533D2N4/2G
  3. ECS 945GCT-D Intel Atom FCBGA 437 Intel 945GC Mini-DTX 200x170mm Motherboard/CPU Combo
  4. Transcend 4GB Compact Flash (CF) Flash Card Model TS4GCF300
  5. LG 22X DVD±R DVD Burner Black SATA Model GH22NS30
  6. Addonics CF - SATA HDD Adapter
Total Price: $251.44

I went with the ECS 945GCT-D motherboard because it comes with a PCI-e slot. This is a very useful feature which will increase the longevity of your system giving you room for any possible future upgrades. For me however, I'm using the slot to stow my external RAID controller card which is the core component of my 5 terabyte data storage solution. The motherboard claims it supports a maximum of 2gb of RAM--1gb stick in each slot. Though, I'm having no issues with a single stick. One last thing I'd like to mention is splurge and purchase the highest quality compact flash card you can afford. I experimented with several models and found them lacking in performance. Worse, a Kingston stick I first purchased had constant data corruption issues. Avoid! The CF card listed above will not disappoint featuring 45Mb/sec transfer rate.

I am extremely happy with the performance of this system. It makes absolutely no noise though it has a PSU fan and two small case fans. It is ideal for my home server needs and this box currently serves the following purposes:

  • MySQL Database Server
  • Apache/PHP Web Server
  • DNS Server
  • NIS Server
  • NFS Server
  • MythTV Front/Backend
  • SVN Server

All of the above services took a solid week and a half to match the flawless configuration of the systems it replaced. During this process, I experimented with several Linux distributions including Fedora Core 10, Ubuntu 8.10 Server, and Ubuntu 8.04 Server. Ultimately, I had the most success with Ubuntu 8.04. It was an interesting experience attempting to configure the system with FC10. I had configured almost all of the above services but failed to get sound working with MythTV. I won't get into the details of the problem but my conclusion is that Ubuntu has come a long way not just as a Desktop but as a Server. The configuration of Ubuntu was much easier not just because it is better documented but the overall higher quality of the packages offered by Ubuntu makes configuration of the above services a much better experience. It is worth mentioned that because I only have 4 GB of disk space on this system I could not afford to install unused packages (e.g. Ubuntu Desktop). The FC10 base install took ~1.4GB compared to Ubuntu 8.04 which took ~500MB. After installing all the necessary packages to support my configuration, my disk usage is:

/dev/sdg1              3753400   1723876   1840364  49% /

Which is perfect.

This $250 system is a perfect home server. I'll take it a step further and dare to mention that running X (specifically, LXDE) on the Atom system is just as responsive as on my dual-core box. Unless you need heavy computing power (e.g. gaming/video editing) you will be very happy with the Atom processor. I can't wait to build another one.

Filed under: Guide, Opinion No Comments