tag:blogger.com,1999:blog-25964896109300028302024-02-20T14:29:18.509-08:00ivo welchProfessor of Economics and Finance at UCLA's Anderson School of Management.<br>
(Random Thoughts, Not Necessarily Well Informed.)iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-2596489610930002830.post-68074885359698282922015-09-08T10:02:00.001-07:002015-09-08T10:02:08.420-07:00Freelancer --- Are you serious<br />
I recently posted a job description for a wordpress/php development on freelancer.com . Within a day I had about 50 bids. Exciting. Alas, reading the responses made me somewhat suspicious. For one, I asked everyone who bid to try out an existing website I owned---and I can see how many actually tried it out.<br />
<br />
So, I decided to post another job:<br />
<br />
<blockquote class="tr_bq">
<b>Project Description</b></blockquote>
<blockquote class="tr_bq">
most proposals I have received on my real proposal request seems to have been quasi-automated spam. so, to check who is just responding without information, here is another request:<br /><br /> replicate the entire google infrastructure in wordpress and php.<br /><br />should be easy in php and wordpress, right? if you respond to this one with a bid, obviously you must be reading my RFPs in great detail.<br /><br />Project ID: 8424001</blockquote>
<br />
<br />
<br />
To my surprise, I received 80(!) bidders, most claiming to have carefully read my requirements and being confident to satisfy them. Some added a few pretense questions<br />
<br />
BVMSolution hikaruvn umar119 albertmobi29 a2zinfom posspooja Reflexlogic avidswitch dungnguyen2607 Softmania StdioRelations infoway madhavdutta gkws pavanvarma06 mike199 goldensolution workwithhts SRajpurohit tsradiant evidcomm narendra1 kchg webmagical buraqtech fortranPRO winmaclin webattractmaster CrystalView faisdesign digitcoders igreendevelopers bdsiddhi webqueue ajayceo1985 ibrahimstk themexlx himanshusofttech zamsol altarsft wpmonsters phamtech211 prashushinde9 monitrix Batista111 ayanbishnu OriginDharmesh JoomlaVogue Champian PaulSimonk AnilMalhotra sstechwebindia Tuffgeekers pytho Webwingtechology seekdeveloper A2Design xtreemsolution workspaceit aistechnolabs yuvasoftech fixfin web360pointer DevelopersZ0ne nakh2010 techmaze bhatiasiddharth visionsoft7 webdeveloperpnkj priya27egrowth updatejapi123 devdaljit miracitech37 A4TEAM itabcoder krishnainfrasis Mike251 AshapuraSofttech Abbas7867 devrepublic<br />
<br />
I feel like a male in the ashley madison data base (see <a href="http://gizmodo.com/almost-none-of-the-women-in-the-ashley-madison-database-1725558944" target="_blank">Gizmodo</a>).iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-62075339194192413962013-11-30T17:08:00.002-08:002013-11-30T17:08:31.729-08:00Wanted: A Modern Programming Language<h2>
Wanted: A Modern Programming Language</h2>
<h3>
From perl:</h3>
<br />
<ul>
<li>string processing</li>
<li>garbage collection</li>
<li>pod-like documentability</li>
<li>testing</li>
<li>namespaces</li>
<li>extensibility via a package system with archive</li>
</ul>
<h3>
Not from perl:</h3>
<div>
<ul>
<li>Linear Algebra</li>
<li>Complex Data Structures</li>
<li>Simplicity --- a limited set of features to remember</li>
<li>Multi-Core Processing</li>
<li>Programming by Contract [=test in/out]</li>
</ul>
</div>
<h3>
From R:</h3>
<div>
<ul>
<li>Linear Algebra</li>
<li>Graphing</li>
<li>Multi-Processing</li>
<li>Optional Compilation</li>
<li>First-Class Objects</li>
</ul>
<h3>
Not From R:</h3>
</div>
<div>
<ul>
<li>Syntax Checking</li>
<li>Designed primarily for Programming, not Interactivity</li>
</ul>
<h3>
From C:</h3>
</div>
<div>
<ul>
<li>Speed</li>
<li>Prototypes with data hiding (via typedefs)</li>
</ul>
<h3>
From Javascript:</h3>
</div>
<div>
<ul>
<li>One-Page Web Apps (well, frameworks have it)</li>
<li>JSON Support</li>
<li>First-Class Function Objects</li>
<li><br /></li>
</ul>
</div>
iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-84613343688859147882013-05-15T18:51:00.001-07:002013-05-20T07:11:37.759-07:00sony vaio vpcse13fx/b -- Avoid<br />
<h2>
Sony Vaio VPCSE13FX/B</h2>
<br />
I own a Sony Vaio VPCSE13fx/b. on paper, it is awesome. it has a nice 1080p IPS display. it is also very light for a 15" notebook. this is why I purchased it to begin with. in reality, it is awful. the sad fact here is that much of what makes it awful would have been easy and cheap ($50?) to get right. but sony's execution is so bad that I won't buy another sony notebook again. instead, I will probably switch back to apple macbooks in the future.<br />
<br />
<br />
<ul>
<li>the keyboard touch is mediocre, but livable. a bigger problem is that the backlit keyboard always turns itself off after a few seconds. no way to keep it on.</li>
<li>the trackpad is terrible. inconsistent. the buttons are really mediocre, too---sometimes they are needed, sometimes double clicking works. the buttons are mushy. two-finger scrolling is not easily enabled. even after I figured out how to get it to work, using the device driver from the trackpad manufacturer, it barely works.</li>
<li>the bottom of the computer gets hot. I mean really unpleasant hot. this is despite the fan coming on pretty quickly and pretty loudly.</li>
<li>the speakers are pretty awful and not directed towards the listener.</li>
</ul>
<span style="color: blue;">EDIT: Linux Mint Olivia under the speed setting has the trackpad working.</span><br />
<span style="color: blue;">EDIT: The computer is more bearable if you leave the bottom right (fan) a lot of extra space. not perfect. tough to hold then. but livable.</span><br />
<br />
<br />
<div>
beyond these killer problems is another biggie: the computer feels slow---it shouldn't be, given that it has an i5. my samsung chromebook ARM for $250 feels as fast. what's going on here? I have no idea. is it windows 7? is it background processes? is it an inefficient kernel? I don't know. I do know that linux and mac OSX feel MUCH faster. unfortunately, I cannot switch to linux, because this notebook cannot really run linux. (I thought virtually everything works under linux these days, sometimes requiring just a little bit of tinkering and some obscure hardware not working---ok, bluray doesn't work because of HDCP copy protection.) for some reason, whenever I boot this machine into ubuntu, e.g., with a USB stick, it goes from slow to close-to-infinitely slow. the windows manager consumes 95% of the CPU. this may have something to do with its weird switchable graphics arrangement.</div>
<div>
<br /></div>
<div>
<span style="color: blue;">EDIT: Linux Mint Olivia under the "Speed"Setting works.</span></div>
<br />
<br />
a minor issue is that it is not fully windows 8 compatible. I spent a few days getting it to work, but the webcam never fully worked. windows 8 is not a good idea to begin with...what was I thinking?<br />
<div>
<br /></div>
<br />iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-27384639085390697022013-04-01T19:51:00.003-07:002013-05-16T22:02:33.655-07:00Chromebooks, Notebooks, and Tablets --- and What To Buy<br />
<h2>
Chromebook, Notebooks, and Tablets</h2>
<h3>
Chromebook</h3>
I have owned a <a href="http://www.samsung.com/us/computer/chromebook" target="_blank">Samsung Chromebook</a> for 2 months now. I am a fan. What a great little machine for $250. Highly recommended. I will buy the next version of the Chromebook if it improves just a little on the current version:<br />
<ul>
<li>the keyboard should be backlit</li>
<li>the speakers should move from the underside of the notebook to the top and perhaps improve a little bit.</li>
<li>the speed should increase just a little</li>
<li>the vertical display angle should be a little better</li>
<li>the USB ports need to provide sufficient charge for tablets</li>
</ul>
<div>
these are easy things to fix.</div>
<div>
<div>
</div>
<br />
<h3>
CPU Speed</h3>
<h3>
<div style="font-size: medium; font-weight: normal;">
Dell is in the news because computer sales have slowed down so badly that acquirers are now wondering about the future of the business. Surprising? It shouldn't be. Computer speed innovation has decelerated. According to Moore's Law, transistor count should double about every 2 years. So, why is a $500 CPU today only 2 times faster than a $500 CPU from four years ago? This CPU should be about 4 times as fast. Or at least have 4 times as many cores. Instead, the factor is about 2.0:</div>
<ul style="font-size: medium; font-weight: normal;">
<li>Core i7-940 from November 2008 cost $562 at introduction: 5,471 Passmarks</li>
<li>A Core i7-3930K in May 2012 costs $562: 12,079 Passmarks</li>
</ul>
<div style="font-size: medium; font-weight: normal;">
Incidentally, both CPUs are named "i7", though they have different suffixes. Most consumers don't even know that the two CPUs have different power. They read i7, and believe they are the same. If Intel wanted to confuse the value proposition for consumers, they have succeeded.</div>
<div style="font-size: medium; font-weight: normal;">
<br /></div>
<div style="font-size: medium; font-weight: normal;">
<b>Desktop:</b> For a desktop, I want to buy an 8-core Haswell CPU with 64GB of ECC memory in an SFF (Shuttle XPC) for $1,000. Not available before the end of the year. Kaveri could become a good alternative with its unified-memory CPU/GPU architecture.</div>
<div style="font-size: medium; font-weight: normal;">
<br /></div>
</h3>
<h3>
Portable Checklist</h3>
<div>
<b>Notebook/Tablet/Alternative:</b> For an alternative device, I want something that does not exist.<br />
<ul>
<li>tablet and notebook as one device. the CPU could be in the notebook base, while the tablet is the screen. but not two OS's (like Asus Transformers). if need be, the base (with backlit keys) can run a thin hdmi or displayport fiber+power cable from the base to the tablet screen. wireless would be better. it could use a few LEDs to signal the HDMI stream to the tablet screen and require line of sight. face it---many of us computers in their beds or on their couches and can leave the base on the nightstand or coffee table.</li>
<li>cool to the touch --- Haswell, 4 core, 16gb. no audible fan.</li>
<li>a 15.4" IPS 1080 tablet screen. not retina, not 1366x768 lowq.</li>
<li>Chromebook instant boot</li>
<li>Linux secondary OS</li>
<li>media consumption: Blu-ray player in the base, tablet speakers towards the front ---good quality. vga webcam. reasonable good sensor, wide view. skype-video.</li>
<li>5lbs package incl. power brick, 2lbs screen. </li>
<li>$2,000</li>
</ul>
<br />
this should be easy to produce. the parts all exist individually. but right now, out of the 8 bullet points, no more than 3 exist in any one device.<br />
<br />
so, I really want to buy a detachable-panel Google Pixel with a 14"-15" 1080p screen, backlit keyboard, good speakers, and Haswell i5 or i7 ULV processor. Ideally, the main processor would stay in the main keyboard unit, so the tablet screen could remain very cool and slim. (it would just receive an hdmi bitstream with audio and send back touch and webcam.) 700g for the screen unit including battery (optional usb-3 connector), 1000g for the main CPU unit with keyboard and perhaps bluray. wouldn't that be cool?! $2,000? no problem.</div>
<h3>
<div style="font-size: medium; font-weight: normal;">
<div>
Where are the 15" screen tablets and detachables??<br />
<br /></div>
</div>
</h3>
<h3>
Potential Portable Choices</h3>
SSD and Haswell---musts. webcam? speaker forward.<br />
<br />
<table border="1">
<thead>
<tr> <th>Choice</th> <th>Display</th> <th>Wght</th> <th>KBL</th> <th>Spkrs</th> <th>linux</th> <th>Notes</th></tr>
</thead>
<tbody>
<tr> <td>Dell XPS18</td> <td>++</td> <td>o</td><td>?</td> <td>++</td> <td>?</td> <td>1 SO-DIMM</td> </tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>18.4 1080p IPS</td> <td>5.1lbs</td> <td>?</td> <td>Y</td> <td>?</td> <td>?</td> </tr>
<tr> <td>Asus AIO 18</td> <td>++</td> <td>o</td> <td>?</td> <td>++</td> <td>?</td> <td></td></tr>
<tr><td><span style="font-size: x-small;">Review</span></td> <td>18.4 1080p IPS</td> <td>5.4lbs</td> <td>?</td> <td>Y</td> <td>?</td> <td>?</td> </tr>
<tr> <td>Lenovo Yoga 11</td> <td>-</td> <td>++</td> <td>?</td> <td></td> <td>?</td> <td>see also yoga 13, 3.5lbs, IPS1600, ok spkrs, no bkl, fanny</td></tr>
<tr><td><span style="font-size: x-small;">Review</span></td> <td>11.6,1366</td> <td>2lbs</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Dell XPS12</td>
</tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>HP Envy X2</td>
</tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Smsng Ativ 700T</td>
</tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Acer Ic W700</td>
</tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Asus Taichi</td>
</tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>15-incher</td></tr>
</tbody>
<tbody>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Pixel</td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td></td> <td>?</td> <td>?</td> </tr>
<tr> <td>Macbook Pro</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> </tr>
<tr> <td><span style="font-size: x-small;">Review</span></td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> <td>?</td> </tr>
</tbody></table>
</div>
Of course, I need to wait for Haswell, anyway, but I am assuming the rest stays roughly the same.
I may buy a <a href="http://www.google.com/intl/en/chrome/devices/chromebook-pixel/" target="_blank">Google Pixel</a>, but only after the Pixel ships with Haswell. I like the idea of running <a href="http://www.ubuntu.com/" target="_blank">ubuntu</a> or <a href="http://www.linuxmint.com/" target="_blank">mint</a> alongside chrome---and being able to switch between the two. this should make for a killer notebook. Note: Dell now sells a 13" XPS Ultrabook with Ubuntu.
<br />
<div>
<br /></div>
<div>
Some more alternatives to purchase: I could get be a 13-15" Haswell tablet, preferably one on which I can install linux and which I can use with or without a keyboard.<br />
<br />
The Dell XPS18 is a bit too large. 5lbs<br />
<br />
so is the Asus AIO 18". 5.3lbs<br />
<br />
The Asus Transformer Book is a bit too small at 13" (but livable). Problem: neither runs linux. I want to run some version of linux.<br />
<br />
the Lenovo wireless monitor Lt1423 could have been an option, too, when/if it ships---but it does not seem to have audio and webcam.<br />
<br /></div>
<div>
lenovo yoga 13, 3.3lbs. because it can be rotated into portrait mode, 13.3 inches is ok. modestly unpleasant heat. not 1080p.<br />
<br />
dell xps 12. only 12.5" at 3.3lbs. keyboard backlit. reasonable sound.<br />
<br />
not hp envy x2---atom. yikes. <b>alas, they just brought out a core version...worthwhile looking at. 4 lbs, though---then why not get the 18" XPS18? cheap at $800.</b><br />
<br />
not samsung ativ 700t or iconia w700 --- only 11.6" screen<br />
<br />
samsung series V<br />
<br />
asus taichi --- no. what were they thinking with 2 displays?<br />
<br /></div>
iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com1tag:blogger.com,1999:blog-2596489610930002830.post-80435657257932801652012-10-22T21:22:00.004-07:002013-04-22T14:46:24.644-07:00The Nightmare Home Audio-Video Experience<br />
All I want is to watch TV, Netflix, and Blu-rays. Why can't this "just work"?<br />
<br />
<a name='more'></a><br />
<br />
10 years ago, I presumed that I could just buy a combo BluRay+Net+TV device, with built-in Class C 5.1 amp, hook it into my cable/antenna outlet, connect 5+1 speakers, and be up and running. The rear speakers could be wireless. One remote. <20 buttons. Asymmetric, so I know in the dark which way is front. I could even tell you which buttons are usually needed, and which should be hidden. The remote would always know the state of the device. A DVR could be slotted in.<br />
<br />
It ain't nothing like this today.<br />
<br />
There are no decent TV+BluRay combos, even though BluRay players with internet netflix cost just $50. So I have to buy a separate TV and a separate BluRay player. Now I need HDMI cables, space to place the DVD (conveniently a deep format to clash with my thin TV). This makes me the proud owner of two remotes. But wait---the TV is not capable of driving 5.1 sound, only its 2-speaker bar, so I cannot simply hook up my speakers if I just want some simple surround sound. I am not talking THX here---just modest-quality surround sound of the $200 HTIB kind. Instead, I need to buy a 5.1 decoder with amplifier. But there are no reasonably priced simple 5.1 amps, so I need to buy an AV receiver. These have about 8 inputs, and 200 functions and buttons. Hit the wrong button by accident, and you are in neverland. Oh, and now I need the third remote control for the AV receiver. Great. But do I want to watch some cable? If so, I need yet another device. And a fourth remote control. (I was fed up with so many devices and cut the chord. OTA programming only for me. Three devices and remotes only.)<br />
<br />
Easy, no?<br />
<br />
No!<br />
<br />
My TV is a 3-year old Pioneer Kuro 6020 TV, Plasma. My new BluRay is a 1-year-old Panasonic BD75. My Receiver is a 2-year-old Denon AVR-1909. Not exactly the cheapest no-name stuff around.<br />
<br />
Should work, no?<br />
<br />
No!<br />
<br />
The BluRay only has one HDMI output. I cannot plug it into the TV, because I cannot get sound into the 5.1 speakers any other way. The BluRay needs to be plugged into the AV receiver. The Denon needs to be the switcher, meaning that I need to switch both the TV and the Denon when I want to move from TV to DVD or vice-versa. Most of the time, the devices negotiate their copy-protection HDMI handshake correctly. But not always. If this happens, then it is guessing what went wrong. To make things worse, every once in a while, the BluRay player crashes, often early on. I presume it has something to do with the copy-protection HDMI handshake. If it crashes, I need to unplug the BluRay player and replug it. Power-off is not enough. I am not kidding---my simple disc player device can and does crash. all the internet software updates for the player seem to work on strengthening copy protection, not stability.<br />
<br />
how many copies does HDMI protection really prevent? any large-scale pirate can just buy a screen, put a high-res camera with high-sampling into a camera-like contraption, and eliminate even the most sophisticated electronic copy protection. once gone, the pirate can make millions of copies. no HDMI protection will ever stop piracy.<br />
<br />
Now, if I accidentally hit the wrong button on the Denon, I may stare at a blank screen because I am on another of its 8 inputs without noticing it, or in some other mode. When this happens, I am baffled for the next 5 minutes until I realize that the problem is no longer in the BluRay player or the TV. if the problem is easy, I can fix it. otherwise, I need to reset the receiver, and start anew.<br />
<br />
Once both the player and receiver are working, the TV is usually happy to talk to them. Usually, but not always. I have to hope that the HDMI handshake also happens correctly. if not, I shut everything off and try anew.<br />
<br />
Good. Now I can lean back and watch DVDs. Not so fast. I need to operate the remote controls. The Pioneer, Denon, and Panasonic remotes all claim to have some universal programmability, but they really do not. The Pioneer Kuro TV was expensive and apparently uses unusual remote control codes that universal remote controls always have trouble with. Its remote control can operate only other obsolete Pioneer devices. Besides, remote controls also cannot find out what states devices are in, which makes Logitech Harmony universal controls (or my Samsung Peel remote control for Android) useless. One code missed, and everything is out-of-sync. As we speak, the Peel no longer likes to operate the TV. Maybe because it is a Kuro, maybe it is for another reason. Back to the original three remotes. At least they are working. (Anyone know a learning remote without modes and only 20 big buttons that I can put my own writing on?)<br />
<br />
So now I need the three original remote controls next to me in the dark. All three of them. I may as well forget about the fourth remote, either the Logitech universal or the Peel.<br />
<br />
I start the Denon. I start the BluRay. I start the TV. Three remotes. Hopefully in the correct order. Hopefully working.<br />
<br />
Yes!<br />
<br />
Next, let's switch to channel 28 for news. Not so fast. The Pioneer TV tuner is very slow. It takes a long time to switch to another channel. Is this copy protection, or inherent in digital tuning? The Pioneer is also painfully user-unfriendly when it comes to direct dialing into sub-channels. (And there are no great external HDTV tuners for my TV to purchase---even if I wanted to tolerate remote control #5.) Another 60 seconds later, and I am finally on channel 28 now.<br />
<br />
What do I need now? TV Sound! I need to run another HDMI cable to my Denon receiver. Now I can no longer just leave the Denon on one input, but I need to cycle between 8 inputs on my Denon receiver to get the 2 sources I want (TV and BluRay)---and pray that I don't hit one of the other more obscure buttons by accident. And I have to hope that switching inputs does not screw up my HDMI copy protection handshake.<br />
<br />
The fact that HDMI cables are sometimes flaky doesn't help things.<br />
<br />
Somewhere in between, my Pioneer TV and the Denon AVR have all sorts of semi-programmable items, from HDMI codes to device deletions, which might make them work easier. I can earn another degree to set this up to make it "set-and-forget." Of course, if I do this, and I get a device reset for whatever reason, I will have forgotten everything about it and need to get another degree.<br />
<br />
Finally, I am watching my movie now. Alas, I just hit stop or power by accident in the dark on one of my 3 remotes. (The Panasonic remote is rectangular, with no night hint of which side is up.) I hit Resume. Sometimes, depending on the disk I think, the Panasonic remembers where it stopped and continues (hallelujah!), sometimes it forces me to start from scratch (through 60 seconds worth of copyright warnings!). Can someone remind me why I spent $20 for the studios on this Bluray disc, please?<br />
<br />
I am continuing to watch. I didn't get what this guy just said in the movie---weird British accent. Rewind a little and put on closed caption. Oh, but my BluRay has both a top menu and another menu. I chose the wrong one. Another 60 second of start-over protocol. Eventually I get the right menu. But do I want the caption in my TV or in my BluRay player? Does the caption not come on because I set the wrong one, or because there is no caption track on my British movie source?<br />
<br />
At least BluRay disks have easy forward and backward. Netflix does not---and often has no caption. Besides, netflix' selection of shows is still limited, and given the studio's intent to break netflix, it won't get better soon.<br />
<br />
<br />
If I sound like my grandparents, you should be worried. I studied computer science. I have a PhD. I am pretty functional with all sorts of modern tech equipment. I program in R and perl. I run websites. But this shit-state of affairs in home video really pisses me off.<br />
<br />
Why is there not a $3,000 60" HDTV that has both the 5.1 amp and a BluRay player (as well as network connectivity) built in? All the copyright handshakes would just work---there shouldn't have to be any, because it is all internal. The cablecard plugin could make my cable and possibly the built-in DVR work, too. (Hey, cable---every wonder why you should fear chord-cutting?) Given all the stuff already in this TV, adding a DVR should only add another $150 in cost. Like the cablecard, it could be a standard slot-in. The AV device should be able to send back to the remote its current state on demand. The remote would just work. It could offer a $200 luxury version that let's me choose what buttons are visible on its touch screen. I can buy Android tablets for this price!)<br />
<br />
All this is trivially easy to implement.<br />
<br />
what are these AV manufacturers thinking? I don't give a sh.. whether my TV is 1in thick or 2in thick, if the latter means that everything is nicely integrated in one box and easy. My guess is that at least half of all potential customers share my preference.<br />
<br />
It wouldn't be hard to build this. It does not require great innovation. No OLED production breakthroughs needed. All the tech needed to do this is off-the-shelf. Different models could use different price-point quality components. Where can I buy it today? Are the AV manufacturers (Vizio, Sony, etc.) all just too unimaginative to understand why they are in danger of Apple coming in and cleaning out?<br />
<br />
If I had the money to buy a reasonably-sized AV manufacturer that already makes the components, I could drive the others all out of business.<br />
<br />iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-47381297332305094412012-09-08T13:34:00.001-07:002013-06-28T11:09:15.143-07:00New Ubuntu System Installation - ChecklistMay 2013<br />
<h2>
New Cinnemon Mint / Ubuntu System Installation - Checklist</h2>
<br />
I am switching back from OSX to <a href="http://www.ubuntu.com/">ubuntu</a>, because Apple OSX is moving towards retail customers, rather than pro customers. My full reasoning is explained <a href="http://ivo-welch.blogspot.com/2012/08/where-apple-/%20osx-will-be-going.html">here</a>. Long live linux ubuntu!<br />
<div>
<br />
Here are my notes of how to install a new ubuntu system:
<br />
<h3>
apt-get</h3>
<ul>
<li>emacs and ess (note: ess may block emacs startup if R is not yet installed)<br /><span style="font-size: xx-small;">sudo add-apt-repository ppa:cassou/emacs ; sudo apt-get update ; sudo apt-get install emacs24 emacs24-el</span></li>
<li>chromium and chrome<br /><span style="font-size: xx-small;">deb http://dl.google.com/linux/deb/ stable non-free main ; wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - && sudo apt-get update && sudo apt-get install google-chrome-stable</span></li>
<li><span style="background-color: white;">terminator; rightclick for preferences; and, after you made any changes in preferences, in the now existing <span style="color: #222222; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14.399999618530273px; line-height: 17px;">~/.config/terminator/config</span></span><pre style="border: 0px; color: #333333; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14.399999618530273px; line-height: 17px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;"><code style="background-color: white; border: 0px; color: #222222; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; margin: 0px; padding: 0px; vertical-align: baseline;"> size = 900, 600</code></pre>
</li>
<li>okular (remove sidebars, resize)</li>
<li>mplayer</li>
<li><strike>Gstreamer-* <br /><span style="font-size: xx-small;">the alternative is to install medibuntu:<br /><span style="color: blue;">wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update</span><span style="color: blue;">apt-get -y update && sudo apt-get -y upgrade</span><span style="color: blue;">apt-get install app-install-data-medibuntu apport-hooks-medibuntu</span><span style="color: blue;">apt-get install w64codecs libdvdcss2</span><span style="color: blue;">apt-get install libdvdnav4</span><span style="color: blue;">apt-get install libdvdread4</span><span style="color: blue;">/usr/share/doc/libdvdread4/./install-css.sh</span></span></strike></li>
<li>openssh-server</li>
<li>sshfs; fuse-zip</li>
<li>gufw and set rules against unauthorized access (night, invalid logon attempts)</li>
<li>backintime (exclude *.iso, .gvfs)</li>
<li>unison</li>
<li>mpg321 (mpg123 to play command line beeps)</li>
<li><strike>unity-chromium-extension: these may not work. the gmail panel always quits</strike></li>
<li>indicator-multiload System Load Indicator (by Michael Hofmann for load status on panel). then start it with the Unity menu (search System Load). alas, this one does not work under cinnemon mint, because it complains about missing gtop libraries</li>
<li>apcupsd (for UPS) and configure it according to the <a href="https://help.ubuntu.com/community/apcupsd">USB community documentation</a>.</li>
<li>CanoScan LiDE 100: <span style="font-family: Courier New, Courier, monospace;">libsane sane-utils xsane</span> . maybe it requires libsane-extras, too. Thereafter, xsane works. strangely, simplescan does not, even following <a href="http://ubuntuforums.org/showpost.php?p=10526638&postcount=31">this</a>.</li>
<li><strike>davfs2</strike></li>
<li><strike>flashplugin-installer; now in 12.10?</strike></li>
<li><strike>MyUnity (maybe kill --- too dangerous)</strike></li>
<li>not used much: remastersys --- allows creating a dvd</li>
<li>not used much: RecordMyDesktop</li>
<li><strike>not using much: gnome-gmail</strike></li>
</ul>
Do not install either texlive or R through ubuntu. Their versions are seriously obsolete. Instead, follow the instructions below.<br />
<ul>
<li>remove thunderbird</li>
</ul>
<br />
<span style="font-size: x-small;">Do not run MyUnity or compizconfig-settings-manager (ccms). They hose the panel-service. if you do this, you probably need to remove a lot of the dot (.compiz, .gnome, ??) files to get them back.DONT USE: ubuntu-tweak (though MyUnity does the same):</span><br />
<pre><span style="font-size: x-small;"> add-apt-repository ppa:tualatrix/ppa ; apt-get update ; apt-get install ubuntu-tweak</span></pre>
<br />
For Adobe Acrobat, search for Software Sources, then enable "Other Software -> Canonical Partners". This also allows removing old repositories. Then <span style="color: blue;">apt-get install acroread</span> . Also, acroread does not work on the command line, but the GUI starter for Acrobat works.<br />
<h3>
Beyond apt</h3>
<ul>
<li><a href="http://www.vmware.com/">vmware</a> get vmware-player . then "bash VM*". if you want,<br /><span style="font-family: Courier New, Courier, monospace;"> ln -s /usr/bin/vmplayer /usr/bin/vmware-player.</span>Note: everytime the host kernel or any vmware item is updated, you need to drop to the shell and run vmware-player while su by hand. somehow, the GUI authorizer is broken.</li>
<li>skype from skype's website. note that ubuntu has trouble with some logitech webcams.</li>
<li>TeXLive, install from source, following <a href="http://www.tug.org/texlive/quickinstall.html">http://www.tug.org/texlive/quickinstall.html</a>. the main program is<br /> <a href="http://ctan.mackichan.com/systems/texlive/tlnet/install-tl-unx.tar.gz">install-tl-unx.tar.gz</a><br />make sure to set path to <tt>/usr/local/texlive/2012//bin/x86_64-linux/</tt>. Next, we need to install lucida fonts. so<br /> echo "Map lucida.map" >> `kpsewhich updmap.cfg` ; updmap ; texhash</li>
<li>R installation instructions are at
<pre><span style="color: blue;"> http://cran.r-project.org/bin/linux/ubuntu/README
</span></pre>
Basically, include
<pre> deb <a href="http://cran.stat.ucla.edu/bin/linux/ubuntu/" target="_blank">http://cran.stat.ucla.edu/bin/linux/ubuntu raring/</a>
</pre>
in <tt>/etc/apt/sources.list</tt><span style="font-family: inherit;">, add the signage</span><tt><br /></tt><pre> <span style="color: blue;">sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9</span>
<span style="font-family: inherit;">and execute
</span><span style="color: blue;"> apt-get update; apt-get install r-base<span style="font-family: inherit;">
</span></span><span style="font-family: inherit;">and immediately install <span style="color: blue;">libatlas</span>!! R is 3 times faster with it than with the standard BLAS library that ships with cinnemon mint 15 olivia. OSX has this already set.</span></pre>
</li>
<li>Good ssh key instructions can be found at <a href="http://www.g-loaded.eu/2005/11/10/ssh-with-keys/">http://www.g-loaded.eu/2005/11/10/ssh-with-keys/</a><br />Make sure to choose good pass phrases. Basically, you need to do the following on your new client:
<pre> client> ssh-keygen -t dsa -f ~/.ssh/id_dsa
client> cat ~/.ssh/id_dsa.pub | ssh name@server "cat >> ~/.ssh/authorized_keys"
client> chmod -R 0600 ~/.ssh ; chmod u+x ~/.ssh
client> ssh-add
</pre>
and add a <tt><b>MaxAuthTries 5</b></tt> and <b>ServerAliveInterval 60</b> to <tt>/etc/ssh/sshd_config</tt>.</li>
<li>in <span style="color: blue;">/etc/default/grub</span>, remove the "QUIET" from GRUB_CMDLINE_LINUX_DEFAULT, and change the GRUB_TIMEOUT to 5, then run <span style="color: blue;">update-grub</span></li>
<li>change /etc/grub.d/30_os-prober to timeout 3 instead of 0 (to get a menu at boot)</li>
<li><span style="color: blue;"><span style="color: black;">for SSD, enhance disk checking but turn off journaling:</span><span style="color: blue;"> tune2fs -c 1 /dev/sda1</span><span style="color: black;"> ; unmounted, you should </span><span style="color: blue;">tune2fs -O ^has_journal /dev/sda1. </span><span style="color: black;">Then add </span><span style="color: blue;">discard</span><span style="color: black;"> to the options in <span style="font-family: Courier New, Courier, monospace;">/etc/fstab</span></span></span></li>
<li>kdebugdialog (not as su, but as logged in) and then disable all debug output</li>
<li>link open to gnome-open to ~/bin/open</li>
<li>make anacron less quiet: change -q in <span style="font-family: Courier New, Courier, monospace;">/etc/cron.d/</span> ; possibly change daily exec time from 7am to 3am</li>
<li>transfer .bash* , .emacs, src/* bin/*, /usr/local/texlive/ ; also .ssh</li>
<li><strike>google office (GWoffice):</strike></li>
<li><pre><span style="color: blue;"><strike> add-apt-repository ppa:tombeckmann/ppa ; apt-get update ; apt-get install gwoffice</strike></span></pre>
</li>
<li>Handbrake video converter:<br /><span style="color: blue;">add-apt-repository ppa:stebbins/handbrake-snapshots<br />apt-get update<br />apt-get install handbrake-gtk handbrake-cli</span></li>
<li><strike>not needed in cinnamon mint apt-get remove unity-lens-shopping</strike></li>
<li><strike>does not work: edit /etc/X11/Xsession : line 83: <span style="color: blue;">exec >>"$ERRFILE" 2>&1</span> should be <span style="color: blue;">exec >> /dev/null 2>&1</span></strike></li>
<li>for extra security, hide <tt>sudo</tt> somewhere else</li>
<li>for the backup hard drive, use hdparm -S 12 /dev/sdb1 (60 seconds)</li>
<li><strike>Grive --- doesn't seem to work too well:<br /><span style="color: blue;">sudo add-apt-repository ppa:nilarimogard/webupd8<br />sudo apt-get update<br />sudo apt-get install grive</span></strike></li>
</ul>
Music:<br />
<br />
<ul>
<li>on3radio stream:<pre> <a href="http://gffstream.ic.llnwd.net/stream/gffstream_w9a/">http://gffstream.ic.llnwd.net/stream/gffstream_w9a</a>
</pre>
and kcrw is<pre> <a href="http://stream-24.shoutcast.com/kcrw_eclectic24_mp3_128kbps">http://stream-24.shoutcast.com:80/kcrw_eclectic24_mp3_128kbps</a> </pre>
make sure to remove the final '/' from the link in rythmbox properties. (typically, a radio app will write a *.pls file in downloads, which contains the link.</li>
</ul>
<br />
settings---change timeouts. hot corner on the right, not left.<br />
<br />
Others:</div>
<ul>
<li><span style="font-size: x-small;">calibre book reader</span></li>
<li><span style="font-size: x-small;">reinstate cron jobs</span></li>
</ul>
<h3>
Much More Complete</h3>
<div>
debianhelp has posted <a href="http://debianhelp.wordpress.com/2012/03/09/to-do-list-after-installing-ubuntu-12-04-lts-aka-precise-pangolin/">http://debianhelp.wordpress.com/2012/03/09/to-do-list-after-installing-ubuntu-12-04-lts-aka-precise-pangolin/</a> . In fact, it is so complete that finding one's way around it is painful.<br />
<br />
<h3>
Panel</h3>
The following apps live on my panel: chrome, Terminal, Homefolder, <strike>Ubuntu Software Center,</strike> Settings, Rythmbox, System Updater, Workspace Switcher, VMWare, Acrobat.<br />
<br />
emacs, tex, and R are all usually invoked from my terminal.<br />
<br /></div>
<h3>
</h3>
<h3>
Missing From Linux</h3>
<div>
A lightweight <b>clean</b> html editor and mailer. even this blogger up produces nasty html markup that is difficult to correct with emacs. kompozer has the wrong colors.<br />
figure out backintime's scheduling and retrieval<br />
how to move the menu from the top panel line to *both* the top pane line and to each window menu<br />
improve terminal --- different colors for different machines, c-n, c-v, c-x. add "open" to right click<br />
Evernote -- maybe Everpad?<br />
how to stop windows from snapping to the top panel??<br />
alt-ctrl-hotkey on apple keyboard -- how do I abort X server and switch to virtual terminal?<br />
create backup bootable own drive<br />
<br />
try <a href="http://debianhelp.wordpress.com/2011/12/23/teamviewer-7-beta-available-for-linux-remote-desktop-tool/">teamviewer</a> for remote control.<br />
<br />
write a script that checks all of the above and does whatever is still missing.<br />
<br />
printer installation -- wonderfully easy. alas, Ricoh copier printers do not work. on ubuntu, the first print job worked fine to my lexmark usb printer; the next one produced garbage.<br />
<br />
scanner installation -- xsane works for canon, but not the easier ones<br />
<br />
<h2>
Problem for Non-Linux Users</h2>
<br />
for some reason, 12.04.1 booted into a text login, instead of the gui login. this persisted over 2 reboots and then disappeared. go figure. this would be a serious problem for a non-unix expert. I don't know why.<br />
<br />
there was also a problem where it would sometimes not automatically continue on restart, which was a problem for an unattended server.<br />
<br /></div>
iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-9794774473939566772012-08-09T07:58:00.005-07:002012-09-30T16:24:07.629-07:00Where Apple OSX is Really Headed<br />
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
Many pundits have opined where OSX is headed. They are all wrong.<br />
<br />
Here is my prediction: By 2018, Apple will stop supporting OSX for non-Apple app programmers, and require that all apps be purchased through their Appstore. OSX will become like iOS in this respect, too, as it has in other respects.</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
Frankly, this will make sense for 99% of Apple's retail clientele. It will prevent lots of malware and reduce support costs. <i>And</i> it will make Apple money, because Appstore purchases earn Apple money.</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
Why wouldn't Apple focus on building certified Apple app programmers and abandon non-Apple-app programmers? Maybe 1 in 100 buyers buy Apple hardware to program their computers for themselves, so the sale losses to programmers who would switch away to other hardware will be small. (Unfortunately, I am in the 1% minority.) WIth enough of a retail base to reach, OSX and iOS app developers will stay and be certified. To write a native OSX computer program will require a revocable developer id unlock code and take place in a trusted environment. (The certified Apple developers will like some aspects of such an ecosystem, because it will cut down on free competition. They won't like sharing revenues at the Appstore.) But ultimately, it does not matter what software developers like. When the Apple Mac base is large enough and the Appstore cut is bearable, they will stay.</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
Ultimately only two aspects will matter to Apple: making the retail clientele happy and increasing Apple's revenues. And going the "certified developer only" route is a win-win for both.</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
My guess is that some non-certified programming will be allowed in interpreted sandboxed environments, at least for a while. This will cover the needs of students learning how to program. In this respect, it will be different from iOS, where all programming environments are outlawed. </div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px;">
</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px;">
</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
One alternative would be a locked OSX default mode that can be unlocked by end users. of course, once software can unlock the computer mode, so can malware---and apple revenues will be lower, because developers could escape the Appstore. This end-user switchable OSX will probably be an interim step.</div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
I believe that this future direction of Apple is almost inevitable once Apple becomes a dominant power in high-end personal computer sales and developers can't escape. The only thing that can stop it is a slowing of their momentum in PC sales, which could force them to take PC competition more seriously. But if the Apple momentum continues, then if Apple will not go the lock-down route, they will be making a huge business mistake.</div>
<div style="margin: 0pt; padding: 0pt;">
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px;">
<br /></div>
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">We nerds are all in trouble.</span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;"><br /></span>
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">Hardware is in trouble. And, this time, it's not even an attack by the copyright kingdoms. Its just that there is nowhere to go. Where can we go? Sun is gone. Windows is going towards trusted computing, so we will also soon no longer be able to use Windows hardware (esp. hardware from the big vendors, like Dell and HP, although all they do these days is try to ape Apple, and not very well). There is no great hardware vendor for high-quality open software desktops. (This is why we nerds also buy Mac hardware.)</span><br />
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;"><br /></span>
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">Software is in trouble, too. </span><span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">Ironically, it is exactly OSX that has pretty much killed linux on the desktop.</span><span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;"> </span><span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">We have to preserve our expertise---linux on the desktop---</span><span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">tying</span><span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;"> the projects over until we (the nerds) will be forced to depart OSX. We should never underestimate the future, but we may not have anywhere obvious to go. </span><br />
<br class="Apple-interchange-newline" />
<span style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: x-small;">Richard Stallman is right to fear Apple more than Microsoft. I do, too.</span></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br />
Update: http://arstechnica.com/apple/2012/09/two-months-later-developers-mostly-positive-about-os-xs-gatekeeper/ --- it's coming quickly.</div>
<div>
<br /></div>
<div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; margin: 0pt; padding: 0pt;">
<i><span style="font-size: xx-small;">PS: Here are some minor squawks about OSX: the file system could more robust. There is no ability to lock a cpu core to a virtual machine. Preview.app has been going backward IMHO after Snow Leopard; it is not storing its page view settings properly. There is no package manager...well, this is what the appstore will become. OSX feels slow relative to linux.</span></i></div>
<div style="color: #333333; font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; margin: 0pt; padding: 0pt;">
<br /></div>
</div>
iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-62276711606433926142012-04-03T15:49:00.046-07:002012-04-27T06:23:28.609-07:00R Annoyances and Gripes<a href="http://www.r-project.org/">R</a> is a superb data analysis and graphing program. It has a solid programming environment. It has great docs, although I wish it had even more "see also" and more "examples" in the man pages. many CRAN packages are great. the R team members and folks answering r-help posts are saints, though some of them can be quite grumpy.<br />
<br />
<span style="background-color: cyan; font-size: x-small;">[I try to integrate some of the comments from below. thx everyone.]</span><br />
<br />
Alas, because R is so good, I am probably too tempted to write too many programs in R. Unfortunately, for a generic programming language, R still lacks some sugar.<br />
<br />
<ol>
<li>It should be possible for a user to set an option that forces aborts immediately upon read access into a non-existing list item or data frame column (i.e., if this data frame or list that has not yet been initialized). instead, R simply silently yields NULL. Try it!<br />
<pre>.GlobalEnv$misspelled
</pre>
or even<br />
<pre>.GlobalEnv$misspelled[100]
</pre>
do not cause a program abort. good luck finding the error later. <span style="background-color: cyan; font-size: x-small;"> </span><span style="background-color: cyan;">Gabor also suggests using the .GlobalEnv[["misspelled"]] construct, which does check. Still, the '$' syntax is often so much nicer....</span></li>
<li>It should be possible for a user to turn automatic recycling off. I have programmed bugs which I could have caught earlier if the program had bombed on non-conformable assignments. why do we need BY DEFAULT the following to work?<br />
<pre>v←1:4
w←1:8
z←v+w
</pre>
Really? Are you sure it is what you wanted? If it really is, you should set an option first, or better yet, rep(v( yourself. <span style="background-color: cyan;">there should be an option(recycle="default"|"scalars-only"|"never"). you can even leave the current default, but allow *me* to turn this off. over time, packages may switch their model, and, by default, everything should still just work without changes.</span></li>
<li>An error should always clearly identify the lines in a program where it occurred.<br />
<i>Simple Fix: Turn on </i><pre><i> options(error=recover)</i></pre>
<i>again and run my program again to understand where my program bombed.</i></li>
<li>An <tt>assert()</tt>should be built into the R language---assert should be like a <tt>stopifnot()</tt> function, but with a cat message function. So, I could write<br />
<pre>assert( ncol(x)==ncol(y), "Sorry, but ncol(x)=",ncol(x)," != ncol(y)=", ncol(y), "\n")</pre>
the <i>big</i> advantage of building assert into the language, rather than having it user defined, is that an assert error will bomb showing the correct line, not an error inside the assert function, requiring a stack backtrack. it could even drop you into the right stack-frame at that time---an advantage currently only for the main control logic but not logic inside functions is the immediate ability to examine the variables that were associated with the failure.<br /><br />Programming by contract would be even better. (package <a href="http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf">testthat</a> has some testing functions, but it's not the same.) Perhaps a novel pretty syntax, like<br /><br />
<b><pre>[ ncol(x) != ncol(y) => "Sorry, but", ncol(x), "is not", ncol(y) ]
</pre>
</b><br />
would be even better, abusing both the '[' when it starts a statement and and '=>' . Such readable and SHORT syntax, when paired with a clear error on which line the error occurred when it triggers, would encourage <i>everyone</i> to use a lot of assertions, including at each function start and end.</li>
<li>there is no way for an end user (not library writer) to add his own function doc to the set of docs that one can interrogate with '?' request for doc about a function. <span style="background-color: cyan; font-size: x-small;"> suggestion: use package skeleton for building full packages. nothing for end users, though.</span></li>
<li>similar---can we please add something akin to the perl6 <b>pod</b> to R? <span style="background-color: cyan; font-size: x-small;">please adopt some good features from perl, even though R is of course not perl.</span> PS: and where/what are the standard filename conventions? I think it is .Rdata for data files. right? (Is it .Rh for R inclusion files?)</li>
<li><strike><span style="background-color: cyan;"><span style="font-size: x-small;">nice but unnecessary:</span></span> Syntactic sugar: would it not be great if '$' inside a string would do a paste-with-autocollapse? How ugly is it to call my function as<br />
</strike><pre><strike>f( paste("msg is '",m,"'", collapse="") )
</strike></pre>
<strike>
compared to the more readable<br />
</strike><pre><strike>f("msg is '$m'")
</strike></pre>
<strike>
? <span style="background-color: cyan; font-size: x-small;">but the simpler paste0 goes a long way...</span></strike></li>
<li>There should be an easier way to assign from a list to multiple objects <br />
<pre>(a,b) ← f()
</pre>
Gabor G created a great <a href="https://stat.ethz.ch/pipermail/r-help/2004-June/053343.html">R function</a> that facilitates this, but something like it should be built in.</li>
<li>R should be smart enough to understand one special case to allow quickly assigning to individual elements in a data frame. Believe it or not, but <br />
<pre> bigframe$a[12]←12
</pre>
will actually copy the bigframe object a few times, instead of just replacing the single cell's content. if bigframe is big, you can count the number of assignments per second on an Intel core 2012 system. yikes! of course, I know this now, but all novices probably learn this the hard way. they may get the impression that R is slow when they (like I did before I knew) write, <br />
<pre> for (i in 1:10000) bigframe$soln[i]← uniroot(myf, c(-Inf,Inf), i)
</pre>
But <br />
<pre> for (i in 1:10000) soln[i]← uniroot(myf, c(-Inf,Inf), i);
bigframe$soln←soln; rm(soln)
</pre>
is reasonably fast. (The <a href="http://cran.r-project.org/web/packages/data.table/index.html">data.table</a> R package is one way to get around this, but again, this is not what novices would know.) This is important to fix IMHO.</li>
<li><span style="background-color: cyan;"><span style="font-size: x-small;">nice but unnecessary. </span></span> I would love to have many of my functions defined at the end after my control logic at the start of my R code. thus, I would love it if I could instruct R to scan the source file for functions first before executing---as it is in perl. This behavior could be enabled by a user and not be the default.</li>
<li><span style="background-color: cyan; font-size: x-small;">probably a bad idea on my part.</span> <span style="font-size: x-small;"> there should be "static" (local persistent) variables in R. Use very sparingly, of course. I would use it for in-function caching of previously seen/handled cases.</span></li>
</ol>
<br />
Some more minor gripes:<br />
<ol type="A">
<li><tt>load()</tt> should have an option to write to stderr what objects are being loaded. in fact, such stderr output should probably be the default to remind the user, just as library loading usually does. load() should also have an option to check its environment first to see if the object already exists, and load it only when still needed...sort of like a library() invocation.<br />
</li>
<li>there should be a legacy option, without which demoted features cause warnings and errors...and let's demote <tt>attach</tt> and <tt>detach</tt>.</li>
<li>if<br />
<pre> option(na.rm=TRUE)
</pre>
then <tt>mean(c(1:5,NA)); cor(c(1:5,NA), c(rnorm(6))</tt> should give values. I have read about na.action, etc, but I could never figure out how to make it work. <span style="background-color: cyan; font-size: x-small;">lm() ignores NA even silently without any option. why one and not the other? of course, it doesn't have to be fully consistent from day 1. but let's just get it started. mean, sd, var, median, summary could be fixed.</span></li>
<li><strike><span style="background-color: cyan; font-size: x-small;">bad idea on my part. paste0 is better.</span> <span style="font-size: x-small;">There should be<br />
</span></strike><pre><span style="font-size: x-small;"><strike>option(pastechar=" ")
option(catchar=" ")
</strike></span></pre>
<span style="font-size: x-small;"><strike>to allow setting of the default sep for paste and cat. Incidentally, I like space to be the default to separate the elements in a vector, but I do not like space before and after separate arguments to paste and cat. I can add the latter myself more easily.</strike></span></li>
<li>The commonly used descriptive <tt>summary()</tt> for a data object should also include the number of observations, the number of NA's, and the sd as built in; possibly even the T-stat. I have programmed my own summary(), but this would be a good idea for everyone.</li>
<li>the <tt>parallel</tt> core library is superb. finally an easy way for me to use the 8 cores in my Mac Pro! however, <tt>mclapply</tt> does not make it easy to figure out how many times the function was called. will it take another 100 days, or another 100 seconds to finish? tough to guess. a progress counter would help. <i>Workaround:<br />
</i><pre><i>sleep1sec ← function(i) {
counter<←counter+1;
cat("Counter=",counter, " i=",i, "\n");
Sys.sleep(1); rnorm(1) };
mclapply(1:1000, sleep1sec)
</i></pre>
<i>but unfortunately each process has its own global counter. still better than no process indicators whatsoever, though.</i></li>
<li>the two graphics plotting systems should really be replaced by one. I also don't understand the difference between S3 and S4. do we need this?</li>
<li><tt><span style="font-family: Times;">very minor: </span>sleep()</tt> should be a function that sleeps, not a data object that contains how much students slept. <tt>Sys.sleep()</tt> is what I need. ok, this is a very trivial gripe. but the docs for sleep (?sleep) should say "see also Sys.sleep".</li>
<li>why do I need both <tt>source</tt> and <tt>load</tt> ? couldn't these functions detect whether I am reading an .R or an .Rdata file and invoke the right one? both are R objects.</li>
<li><strike><span style="background-color: cyan; font-size: x-small;">ok. I need to use the apply family more.</span> <span style="font-size: x-small;">Does anyone have an idea how to abbreviate the common<br />
</span></strike><pre><span style="font-size: x-small;"><strike>mylist← rnorm(5); for (si in 1:length(mylist)) { value← mylist[si]; ...
</strike></span></pre>
<span style="font-size: x-small;"><strike>into something that reads quicker and still has a counter? In R, having a counter is more important than it is in perl, because iterative list creation via push is discouraged relative to list creation via indexed assignment (for speed reasons, I think). Maybe a new iterator, like<br />
</strike></span><pre><span style="font-size: x-small;"><strike>iterate(si, value, rnorm(5)) { ...
</strike></span></pre>
<span style="font-size: x-small;"><strike>perhaps? I know this is wild syntactic sugar, but then I write user programs and not computer languages, and I would like my programs to be readable and elegant, more than I would like R to make perfect sense.</strike></span></li>
<li>why don't more options allow mnemonics? for example, <tt>options(warn=1)</tt> means what? couldn't it be <tt>options(warn="immediately");</tt> or, why not <tt>text(...,pos="left")</tt>, instead of <tt>test(...,pos=2)</tt>?</li>
<li>why do some functions wrap quotes around variables? For example, why is it library(something), instead of library("something")? something without quotes should be a variable. same thing for select in subset statements. tell me: what is<br />
<pre>d <- data.frame( a=1:3, b=5:7 )
a <- "b" ; a2 <- "b"
subset( d, TRUE, select=c(a) )
subset( d, TRUE, select=c(a2) )</pre>
ok, if it were <i>always</i> optional to omit the quotes, I would understand it. but it isn't the case with a subset-select, in which I want to delete a variable. <span style="font-family: 'Courier New', Courier, monospace;">subset(d, TRUE, select= -c(x))</span> works, but <span style="font-family: 'Courier New', Courier, monospace;">subset(d, TRUE, select= -c("x"))</span> does not. huh?<br />
</li>
<li>merge should also be capable of merging by rowname, not just by columns.</li>
<li>Core Team: Make your life easier! Would it be possibly to pseudo-wikify the docs? I.e., allow collaborative suggestions? I often think "this <tt>?...</tt> should have included a <tt>see also</tt> to <tt>...</tt>", but there is no easy way for me to fix it right there and then for future users. the existing R bug+suggestion system is ok for bigger issues, of course, but painful for these small items. I also wonder whether my suggestions are actually welcome or a distraction. and, of course, I understand that any short edits should require package maintainer approval in the end. my guess is that many suggestions to the docs would be for the better...and, unlike code itself, docs are something that ordinary users can contribute to. after all, it is they who often need and use the docs the most.</li>
</ol>
Please don't take these as criticisms of the work that the R team has put into R. It is easier for users to gripe than it is to implement features. And obviously I am not willing or able to put these features in myself.<br />
<br />
Of course, R has so much magic and so many features that it may well be the case that many of my gripes above already have solutions, but I just don't know them. :-( if you see any, let me know, please. And let me know what gripes should I have complained about that I missed, too.<br />
<br />
<br />
PS: Next, I need to figure out how to create LaTeX output of regressions and data systematically. there are a few packages on cran, but I am not yet sure which one I want to use.<br />
<br />
PPS: I just discovered <a href="http://www.r-bloggers.com/an-r-programmer-looks-at-julia/">Doug Bates'</a> blog on Julia. Interesting. I don't miss what Julia provides (e.g., the JIT) too much. the stuff above bothers me more.<br />
<br />iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com8tag:blogger.com,1999:blog-2596489610930002830.post-56873503158203803402011-05-15T17:13:00.000-07:002011-05-15T17:13:08.332-07:00What Android tablets could do better than the IpadHow can Android beat the iPad 2? Tough. The iPad install base is large, and the iPad is simply a great product. But the iPad 2 is not perfect. In any case, if Android does not a better product, it will never catch on. So, from the perspective of an adult user (i.e., not for primary use as a gaming machine), what could an Android tablet do better than the iPad 2, which would lead me to trade mine in?<br />
<br />
<ol><li>Better cameras. The ipad 2 cameras are awful, even for skype. I don't mean (just) the resolution. I mean the lens angle. It is not wide enough. You have to hold the Ipad about 4 feet away from your face in order not to look like a moon face. It also means that inevitable shaking makes the system worse.</li>
<li>Better software developers. For example, tap into better system software through outside ideas. Allow awesome third-party system software to take control of the iPad--but only if it has been carefully checked and vetted. (For example, I would buy a tablet that allowed me to set up a "point system" for my kids: if you do educational games for x hours, you get to play any kinds of games for y hours. No one other than Apple can implement this on the iPad.) Offer a venue for Android developers. Oh, and build faith among your developers. I don't mean be static in terms of always sticking religiously to legacy interfaces. See, most external Apple developers do not trust Apple, and rightly so. They understand that Apple may pull the rug out from under them at any moment if Apple finds it in its own interest. <b>Apple's predatory behavior vis-a-vis its developers is Android's single biggest asset, and Apple's single-biggest weakness.</b> If Android were just competitive, every developer would prefer putting their stakes with Android, and not with iOS.</li>
<li>Better web browsing. Safari sucks. I want real tabs. Background loading, even if I exit it. (Flash is not half as important as the basic experience.) Since I am at it, make sure the other base software for adults is better, too. Offer a better skype and email client than what exists on the iPad. (Skype, where is the iPad client? Why am I running an iPhone skype??) Lure all the magazine and book publishers to go to Android. Work with Amazon.</li>
<li>Offer some better technology. Take some risks to lock up something unique. <b>Offer a truly foldable tablet, where the fold is seamless. Or a flexible tablet. </b> Or a sun viewable tablet. Wireless charging. (Retina display? Who cares. The ipad is plenty readable, even today. The resolution battle and battery life battles, like the CPU battles of old, are mostly over. 1000x1000 on a 10" tablet is decent. 8 hour battery life is decent. Yes, you can be better, but this is not what will make or break the next system.) There are plenty of better tech solutions that have failed. But there are few solutions without a compelling advantage that were able to overtake a market leader. Apple is a smart leader. They learned how important market share is fighting Intel and Microsoft. Apple now has the iOS software base. They have the user base. Business as usual just won't work for Android. Android just has to become better than the iPad, or it will never catch on.</li>
<li>Offer an optional "pen" mode for more accurate drawing with a stylus. Offer voice recognition software deeply embedded in the system. </li>
</ol><br />
Of course, the whole tablet experience has to be right, too. Be as good when you can be. The device should be as thin and nice (and crapware-free) as the iPad. <br />
<br />
PS: This is also why google TV failed---it has to be simple and integrated. A TV that has everything seamlessly integrated, without cables, complex menus, etc. The DVD, Bluray, DVR, etc., all seamless. One remote control. My grandmother would have to be able to operate it.iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0tag:blogger.com,1999:blog-2596489610930002830.post-58731876034066824772011-05-15T14:38:00.000-07:002011-05-15T14:59:57.546-07:00The Secret To Making Great MoviesSadly, there is no secret to making great movies.<br />
<br />
The "secret" is having a good story. A story that is interesting. A story in which it is not obvious what will happen next, yet you can hardly wait to see what will happen next. A story in which everything makes sense (in the end). A story which is believable. A world.<br />
<br />
This is why good theater works, even though it is on a small stage in an obviously unbelievable setting. The story must be engaging. Think the "Usual Suspects." Or "The Lives of the Others." Or "No Country for Old Men." Or "Snatch." Or "The Wire." Or "Downton Abbey." Or many other movies and series that did not cost an arm and a leg to make.<br />
<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">You don't need a great director, great actors, high production budgets, or special effects. Yes, these can help. But a great story will make mediocre "everything else" appear great. A boring story will make great "everything else" appear mediocre.</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">Of course, some stories may intrinsically require a great director, great actors, huge production budgets, or great special effects. For Bladerunner, the feeling of future LA was vital. For the series Rome, a believable Rome 2000 years ago was vital. For the liquid metal robot in Terminator II, the special effect was vital. (But note that Terminator I, which is just as good, was made on a shoestring.) For Lawrence of Arabia, how could you film this, if not in the desert with hundreds of actors and extras? For the Godfather, it had to be Martin Scorcese. And Al Pacino. And...</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">But, in the end, nothing other than a good story really matters.</div><br />
So, why does Hollywood--and, worse, network television--produce so much shit? It's because Hollywood is not out to make great movies. It's out to sell movies. If movies like "Independence Day" and reality TV sells, then this is what will be produced.<br />
<br />
Of course, I think that Hollywood is also too short-sighted. Making a good-story movie is a larger risk than making "The Matrix 5" or "Spiderman 8." But, a new world with a new story can itself create more spinoffs. Of course, even a good film (like Rocky 1) will then warp into a bad one (like Rocky 14), but I can live with this.<br />
<br />
And, of course, convincing the folks providing the cash is easier said than done...iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com1tag:blogger.com,1999:blog-2596489610930002830.post-66243166832044716532011-01-19T07:40:00.000-08:002011-01-20T05:46:07.959-08:00(La)TeX Advantages and Disadvantages<span style="font-size: large;"><br />
<span style="font-size: x-large;">Advantages</span></span><br />
<ul><li>In wide use. Universal. Free. Easy to install everywhere.</li>
<li>Good Infrastructure (emacs support, typesetting stage, pdf output; many users)</li>
<li>Beautiful output</li>
<li> The LaTeX companion book</li>
<li>The only <b>structured</b> text-based word processing system (in wide use?) with good math support</li>
<li>"Easy typing" oriented---XML is painful</li>
<li>auctex support in emacs with nice highlighting </li>
<li>Mature --- no bugs in base. few if any bugs in packages</li>
<li>Many, many packages on ctan </li>
<li>Many helpful souls on comp.text.tex </li>
<li>Defining simple user macros is easy</li>
</ul><ul></ul>There simply is no alternative with its feature set. (There are alternatives for smaller tasks, e.g., WYSIWYG for letters, etc.)<br />
<span style="font-size: large;"><br />
<span style="font-size: x-large;">Disadvantages</span></span><br />
<ul><li>Based on ancient macro language, which only very few wizards still understand. When they disappear, TeX will die. It is already happening slowly.</li>
<li>Insane syntax (or shall we say non-syntax). User documents could instead be sanely defined with a grammar, while keeping TeX bowels hidden. User text difficult to parse: not clear how many arguments each command has (see below).</li>
<li>Weird catcodes</li>
<li>Incomprehensible error messages </li>
<li>No easy to understand end user programming language for complex tasks</li>
<li>No clear hooks for external programs (e.g., a preprocessor)</li>
<li>No stdin support</li>
<li>Poor namespace in macros (no '.', digits, '_' in macro names)</li>
<li>Strange meta characters. '%' for comment, '#' for macro expansion. $ for math---why not \m{math} to free up the $ sign for what it is?</li>
<li>No clear separation of content and markup</li>
<li>Syntax changes require knowledge of both emacs auctex and tex macro language, neither of which are very easy to learn. error messages would have to be sane. usage would have to be wide.</li>
<li>Painful font installation (No "drop font here and it will work.") </li>
<li>No multithreading and multiprocessor support (even for multiple \include{} files)</li>
<li>No definitive authority. Knuth has pretty much abandoned it, and TUG does not have the resources (nor believes that it has the right) to abandon old and obsolete features. It's as if Larry had disappeared and perl remained stuck forever at version 1 or version 2. </li>
</ul>Unfortunately, conTeXt is not ready (we spent a year trying to get a complex book to typeset, but ultimately gave up.) conTeXt is also based on the TeX messy macro language. thanks to Hans Hagen and his team for pushing the envelope, though.<br />
<br />
<span style="font-size: large;"><br />
Small Syntax Gripes </span><br />
<ul><li>$ should be the dollar symbol. It is common enough.</li>
<li>math should be typeset with \[ \] or \m{ math }, instead of '$$' and '$'</li>
<li># is an uncommon character. good. one or two of these should be the comment character, not %. % should be percent. It is a fairly common character.</li>
<li>I should know what an argument to a macro is by looking at it. where is the argument to \sqrt3 ? you can know this only if you know the definition of \sqrt. what is the argument to \mymacro{1} ? Is '{1}' an argument or a block following a macro? Again, you need to find the definition of \mymacro. </li>
</ul><br />
<span style="font-size: x-large;"><br />
What I Need</span><br />
A sane-syntax markup language designed for easy typing (i.e., not XML) with an auctex emacs plugin, with a syntax check BEFORE the typeset, with an extended namespace for commands (or macros), with an ability to use most ctan packages.. Separation of markup from formatting. HTML or pdf generation. A user community for this. Books written for it.<br />
<br />
<br />
Your mileage may vary, of course. And to be clear, it is easy to point out weaknesses. It is hard to put something together. The folks who have made TeX and LaTeX what it is have to be commended.iaw4http://www.blogger.com/profile/00200348622320304591noreply@blogger.com0