Showing posts with label annoyances. Show all posts
Showing posts with label annoyances. Show all posts

Tuesday, March 08, 2011

Facebook: why are you so full of bugs?

Why is it so hard to keep track of which notifications I've looked at? Why do you show notifications that lead to yet-to-be-posted or deleted content? Comments that you tell me about which I can't see makes me sure you just hate me. Why else would you torture me so?

And why does your Android app insist that I've not seen notifications just after I've clicked on them? I am glad you stopped clearing the notification screen (making it blank) while fetching new notifications - but there is still work to be done here.

Notifications are hard I guess.

On a different note, why do you still show my old employer on everyone's iPhone?

One more, I just tried your sign in function on Engadget and the photo you used is very old. Sigh.

Saturday, January 29, 2011

SystemVerilog - inline is not the same as non-blocking

Of course we know that inline is not the same as non-blocking.

Since SystemVerilog can't x<=y (non-blocking assign) for x and y of class types I decided to try a giant always block and code my pipelines reverse order. Coping data using just = (blocking assign).

This would've been fine if each pipeline did not look at the data in the other pipelines. And as such get confused because the inline code changes some pipelines before the next gets a chance to look at the data.

After hours of research I found 2 things:

  1. a struct can be in x<=y; statement
  2. if you use the keyword automatic in your task/function declaration you can pass a struct/class by reference and avoid this cryptic error: "reference argument is illegal inside static task-function declaration".

That last would have been found faster if I'd remembered the keyword - but is very hard to find the opposite of static. Esp. since I didn't realize there was one.

Worse, there are hundreds of examples of SystemVerilog code that won't compile (at least with Cadence):
task xyz ( ref mytype_t a);
should be
task automatic xyz (ref mytype_t a);

So now I've changed my data class into a struct, moved all the methods out to (automatic) tasks, and passed the struct in by reference. Now all my assignments are <= so I get pipelining for free - the way Verilog is supposed to be.

And it still doesn't work because.....
"Although it is not explicitly stated in the LRM, the Cadence implementation does not support the passing of a member of an array, or a member of a packed structure, by reference to a task or function."
What is the point of having this c++ like OOP language if you can't pass pointers to array elements, or  whole arrays, etc to a task/function? I'm at a loss.

Time to recode a bunch of stuff.

Again.

hey android - how about fixing the volume issues

My phone does it, many other phones do it. So the problem is in android itself.

Connect your bluetooth device. Use it. Then disconnect.

Guess where your volume is set? Somewhere so loud that it sounds like you're on speaker phone - through the normal ear speaker!

People say that if you turn the volume all the way up and then down again it is fixed. Or reboot.

I say Google should fix this crap. Remember, details matter.

hey android - turn of the f*(#ing screen

The phone is an HTC Incredible. I have a blue tooth headset, a nice one.

Phone is in my pocket, I answer with headset. Phone screen unlocks and turns on. If I go to retrieve it I push something.

Hangups happen. Frustrating.

Sunday, January 09, 2011

Google Reader for android: I already read that

When I click "mark all as read" I expect stuff to stay that way. Reader for Android instead remarks the items as new. Only happens on the Engadget feed....
Published with Blogger-droid v1.6.5