The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Thursday, April 27, 2017

Pet Peeve: Cancelling a Meeting via Email but Leaving it in the Shared Calendar (e.g. Outlook or Gmail)

Mark Suster talks about the etiquette of cancelling meetings:

Here’s How to Cancel a Meeting the Right Way – Both Sides of the Table: in advance, with plenty of warning, ideally not the same day or the day before, bearing in mind the possible multiple attendees.
To this I want to add:

Please use the calendar app!
I.e. if the meeting was placed in a shared calendar like Outlook/Exchange or Google Calendar, please cancel it in the shared calendar app.

It sucks when I hurry to a meeting -- where "hurry" may mean finding a quiet room to dial into a teleconference or log into Skype or ... -- and then sit on hold -- because the cancellation message was sent by ordinary email, and the shared calendar app was not updated.  So the event still appears in my calendar.

This sucks because I am often behind in reading email.  Whereas automatic updates to the shared calendar app will be ... automatically updated ... so at the time of the meeting I can see that it is cancelled or not.

I.e. a shared calendar is automatically filtered and classified according to event time.  Email is not.


Ideally, a smart assistant like Google Now might be reading your email Inbox, applying natural language recognition to cancellation  messages, and automatically marking the shared calendar event cancelled if a human-written email has recognizably cancelled it.  "Events from Gmail" [1] [2] automatically does this for things like airline flights or hotel reservations, stylized so that it can recognize them.  I haven't yet seen anything smart enough to recognize arbitrary human written cancellations. Plus...  this usually happens with my company Outlook/Exchange calendar, and AFAIK I am not allowed to send all of my company email to Google. Nor am I aware of any Outlook plugin.


Companies often use a single shared calendar. (Except for a short time after an acquisition, as IT systems merge.)

When there is no single shared calendar, i.e. when a meeting involves people who use different calendar systems (possibly including paper), you may have to fall back to email.  But even then, many shared calendars send email when a meeting is cancelled, e.g. Outlook may update the Outlook/Exchange shared calendar, and send email to the Google Calendar users.  The stylized form of such automatic emails increases the chance that a smart assistant may be able to recognize it.


While I am at it:

Sometimes having a meeting silently disappear from your calendar can be confusing: "I could swear that I had a meeting at 10am..."   In an ideal world, such a cancelled meeting might still show up in your shared calendar application, but be marked as cancelled, grayed out, possibly with an indication as to when it has been rescheduled.

It would be nice if email "conversations" could be attached to a calendar item.



Many distributed applications are store-and-forward message based, e.g. different calendar instances may be connected by sending email messages back and forth.  As opposed to sharing direct access to a database.

It's not the email message that cancels a meeting that sucks.  It's the lack of automatically updating the calendar item that sucks.

(Email based messaging for distributed applications would be even better if email was secure.)

Thursday, April 13, 2017

Personal Blocklist by Google - Google Search

Personal Blocklist by Google - Google Search: "Personal Blocklist Keeps the Sites You Hate Out of Your Google ..."

'via Blog this'

My review:

Good idea, lousy implementation.

Amongst problems: it is far too easy to accidentally block a website - e.g. I just accidentally clicked "Block wikipedia", trying to actually go to wikipedia in search results.

(And wasted time googling "How do I unblock a website in Chrome?", many false leads, until I just reset all of my extensions.)

Typical Google: interesting concept, lousy user-unfriendly UI. Humans occasionally click on the wrong link - there must be a way to repair.

Would be nice to have an extra question "Are you sure you never want to see Wikipedia again in Google search results?"

Would be nice to be able to see list of blocked sites, and edit.

Plus problems such as @EduPimentel mentions, only visually blocking, not replacing with other sites.  (I.e, only filtering, not biasing search.)

Tuesday, April 11, 2017

Stupid: app != website

FitBit, like many other app/website combinations, does not treat apps and websites equally.

It's not even that the website is a superset of the app. They overlap, but some things can be done on app but not website, and some on website but not app.

Solved: How to add push-ups in exercise - Fitbit Community: "create a custom activity via your website and then log both activities within your app."

'via Blog this'

Monday, April 10, 2017

United bump video => boycott United partners

Many news sites are saying things like:
United Airlines had a right to remove that flier. But should it have?
To the pedants among us this is not so obvious. As I am sure that the victim's lawyers will argue.
This is one lawsuit that I might like to pay a share in. Per the editor of Air Transport World (part of the Aviation Week Network, i.e. a pro-industry journalist):
United bumped passenger video damages all airlines | ATW Editor's Blog: "No explanation has been given as to why United gate agents allowed all people to board before they required seats to be given up involuntarily. Or why the airline was relying on a customer give-up situation to get its employees to their workplace."
 As Derek Thompson in The Atlantic says

Rule 25 Denied Boarding Compensation ... "which, notably, says nothing about forcibly removing passengers afterthey have boarded the plane to make room for United workers)":
Boarding Priorities - If a flight is Oversold, no one may be denied boarding against his/her will until UA or other carrier personnel first ask for volunteers who will give up their reservations willingly in exchange for compensation as determined by UA. If there are not enough volunteers, other Passengers may be denied boarding involuntarily in accordance with UA’s boarding priority.

  • The victim was not denied boarding. He was removed after boarding, after already being settled in his seat. 
    • Of course, there may be legal precedent  saying that the plain and obvious meaning of "denied boarding" does not apply. Such precedent should be overturned.
  • The flight was not oversold - the victim was removed to provide seats for United employees, not paying customers. 
    • From a utilitarian point of view more people may have been hurt by a flight crew arriving late than removing one passenger.
    • Not just utilitarian, but also undoubtedly profit oriented.
 Moreover, the humanity: the victim was separated him from his travelling companion, apparently his wife, who can be seen running after the airport police dragging the victim.

I applaud consumers calling for a boycott of United. Especially since this appears to be part of a pattern, ranging from barring two girls for wearing leggings, and others on Gizmodo's boycott call.

I applaud consumers calling for a boycott of United. Unfortunately, that does not apply to me, since I have been boycotting United for years already. But something I and others like me can do is

Boycott United's airline partners - including the so-called Star Alliance and others
These include - airlines that I or my family might fly on occasion:
  • Aer Lingus
  • Air Canada
  • Air New Zealand
  • Lufthansa
  • SAS Scandinavian Airlines
  • Swiss International Airlines
The passenger who was forcibly evicted was a 69-year-old Asian male, reportedly a doctor flying with his wife.  The bump selection was probably not racist, although the manner of the victim's removal may well have been. Contacting the following Asian carriers may be especially appropriate:
  • Air China
  • Air India
  • ANA All Nippon Airlines
  • Asiana
  • EVA Airlines
  • Shenzhen Airlines
  • Singapore Airlines
  • Thai Airways
Don't silently boycott.  Write to these airlines telling them what you are doing.

Friday, April 07, 2017

Blogging from ISCA: PESPMA: Erik Altmann, Exploiting Hidden Parallelism

Erik Altman, IBM. Bio: http://domino.watson.ibm.com/comm/research_people.nsf/pages/ealtman.index.html

Cores/chip 2x/generation. But not memory bandwidth.

=> even Adobe Photoshop, an obviously parallel app, will have problems on multicores with limited memory bandwidth.


Claim: to succeed general purpose products must implement all functions, including price, nearly as well as standalone appliances.

E.g. all in one printer / scanner / fax

E.g. cabling - USB

E.g. cameras vide/still - general purpose failure for now.

More examples: cooking, appliances, etc.

Successful computing appliances:
games, storage, routers

We can't rewrite all the software? But software doubles 0.6-6years.
Windows code doubling 866 days. Linux 2-3 year doubling.
BSD 6 year doubling.
Browsers doubled 216 days, early.

Altmann: software CAN be rewritten quickly, guiven reason.

Altmann shows a slde "Comparing Health", of how much code/dram is related to data, primitive bloat, tiny objects, glue, pointer bloat. Quote about DaCapo.

AFG: Altmann thinks this is bad. I think that it is inevitable, given different organizations and abstractions.

Oracle Parallelism: 11 studies. Hundreds of instructions of ILP.

Natural structure => parallelism:

while !ended

where either task i is independent of task j, in same iteration,
or task i is independent between iterations.

E.g. gcc. Functions basically independent. Could parallelize gcc by function.

More oracle parallelism slides...

Parallelism > 5000: matmul, eqntott, fppp ...

500 - 5000 ...

50 - 500

< 50

Smoothability of parallelism onto finite hardware.

Lots of agreement that there exists parallelism.

Altmann proposes function fork after call SpMT (but does not use that name).
Says that old studies have too short a skip window.
Read/write set comparison.

Memory parallel regions.

AFG Q: do you have a good algorithm for computing memory parallel regions?

Example: 4K regions in Livermore Loops has too little independence, 64K regions almost 100% coverage.

Go - 4K window size bad, 64K 70%, 2M almost 90%

Stanford integer 4K windows better than larger windows.

Function ... at depth 3, no dependent loads in floowing 159,050 ins.

Example of where 2 high frequency cores makes more sense than 8 core low frequency.
8->2 => 60% freq gain for 2 core. 2core => more cache, etc.

Altmann shows slides that demonstrate that frequency has grown 2-3x faster than litho

Freq vs litho vs 1971: 78x, vs. 1978 3x

We may be overshooting, overemphasizing multicore.


multicore != cmp

more appliances

ok to rewrite software

parallelism exists


but freq still helps

multicore needs more than just finding concurrency


Talks about using COW page tables to hold speculative state.

Erik's parallelism numbers were memory parallelism only. He was ignoring register dependencies. This naturally filters out function success/failure, typically returned in a register.

Sunday, April 02, 2017

MS Surface Book Notes

I am switching from my old Apple MacBook Retina Pro 15" to a new Microsoft Surface Book 4.

Why Switch?

  1. I love touchscreens.  MS has them all over, Apple does not.
  2. I need to be able to use my portable computer on plane. The MacBook cannot be opened fully, at least not on US domestic flights in economy. For that matter, neither can the SurfBook.  But at least I can convert the SurfBook to tablet mode, and use that.  Also, SurfBook in tablet mode plus a separate mini keyboard allows me to type on plane.
  3. Two of the things I use most often on laptop are Windows apps: [A] FrameMaker, [B] Outlook email.
    • running these as guest apps on Parallels VM on top of MacOS sucks, Parallels sucks. VirtualBox and VMWare suck, in slightly different ways.
  4. Company Exchange server can be accessed by native MacOS via many apps, but all suck.
    • Even "Microsoft Outloook for MacOS"sucks compared to "Microsoft Outlook for Windows".   e.g. less capable search, less capable conversation mode
    • I tried using MacOS mail apps for quick and dirty stuff, and full Outlook on Windows via Parallels when needed - but this sucks
    • I suspect - not 100% sure - that there are IMAP consistency issues
    • I know that email has been stick in VM guest for a week, beforce I noticed that VM guest was not connected to net, even though MacOS was.
    • Virtual machines are just another thing to have to administer.


The SurfBook hinge sucks.
  • I am worried it will break.
  • It prevents SurfBook folding as flat as possible.
  • I know that it does not open as far as I would like.
    • Stops circa 105°
    • While I often need it to open to circa 120°, to avoid glare.
    • Just learned that it has a first stop, and then you can push it a bit further, e.g. this post
    • See note above about worrying that the hinge will break.  The Reddit post that told me about the "hyper-extension" also has an item that says that 63% of Surface Book owners have broken their hinges.

Performance - feels slow

The SurfBook feels sluggish - at least doing web.stuff, like this blog or gmail, in the MS Edge browser.

Should not be: I have a high end SurfBook:
      Surface Book, 1TB / Intel Core i7-6600U @2.6GHz, 2.81GHz, 16GB DRAM, 1TB SSD

Compared to my old MacBook:
       Core i7, 2.8 GHz, 16GB 1600MHz DDR3, 1TB SSD

The MacBook definitely felt "perkier".

The SurfBook fan was on continuously for the first hour. Annoyingly loud.

Suboptimal Power Switch Position and Tent Mode

Here is how I place my SurfBook when at my treadmill desk:

  • Displays (several)
  • SurfBook
  • Keyboard tray, with trackball
It looks like I want the SurfBook between the displays and keyboard/trackball tray.

Tilted, so that I can use it as touchscreen.

Possibly tent mode.

Unfortunately:  to unlock the SurfBook, need either
  • ctl-alt-del
  • power switch + down arrow
Unfortunately, the power switch + down arrow are on the top edge of the SurfBook display in clamshell/laptop mode - which is the edge that it stands on in tent mode.

I suppose that I will have to try other configs, e.g. clamshell mode with screen reversed. Which is almost the same as tent mode, although requiring more depth.