Monday, February 29, 2016
Friday, February 26, 2016
DynamicImage
The user experience of imagery on the web is terribly bad. When I am trying to find images of the Bullet Cluster for my son, I see all the ways in which the paradigm is just crap. It is due to various factors, including technical and legal.
From the technical angle, I hereby propose some food for thought. I will write it somewhat tongue-in-cheek because I know there are religious wars over how to write a good use case / user story / feature request / prd / kanban ticket / whateverthefudgeyoucallit.
As an end user.
When I get an image on my touch screen device.
I want to directly zoom it.
And have it support self-updating for arbitrary resolution as I zoom.
So NASA images don't look like pixellated crap.
This would probably require a new kind of HTML or JavaScript image concept. I will call it the DynamicImage for the heck of it. (Probably a terrible name. Always be ready to refactor / change / kill names.)
The main feature of the D.I. is that it supports interaction. As the visible area of the image on screen changes due to e.g. user manipulation, the image can change what it is showing. As I zoom in, in the 640x480 area on my little phone, the image dynamically loads new data so that I get a high res zooming experience, rather than lame bitmap scaling on the client.
Maybe the D.I. supports an API call like (pseudo Java):
ImageInterface getRegion( Rectangle region, Zoom zoom );
where ImageInterface has concrete classes like Jpeg or whatever; Rectangle is, you know, a rectangle; Zoom is pretty much an alias for a floating point number.
The idea is that the web browser will dynamically update the region as the user zooms in/out. It will hit whatever the back end is and get results.
(Of course, the web browser will not be a piece of stupid hateful lame broken pathetic crap like all browsers seem to be, c'est de soupirer, and will first do lame bitmap scaling so the user has immediate feedback and then will progressively refine and re-render as soon as it gets data from the back end. Of course, the back end will also not suck and know about interrupting itself if the request gets dropped before it is done because the user is a little impatient. Also, the back end will not suck because it will have done a cached mipmapping of the images so that it can take the closest one, do a quick and dirty lame bitmap scaling of it, and return that first so that the response is lickety split. Etc. UX matters.)
I have to point out that this won't solve the problem entirely because e.g. people want the e.g. Google Image results to drive folks to their web site most of the time probably, so they don't want Google's Image results to support this because then nobody would go to the site.
But of course, the truth is that from a UX perspective the end user doens't give a rat's ass in the immediate sense. They might care if all the web sites go dark and Google has no results to show in the end, of course, but that's not what my son is thinking when he's stabbing at my phone in sheer frustration trying to get the bloody image to zoom well. As soon as we see an image, that is the thing we want to interact with directly. We don't want to have to figure out "what happens if I click on this?" "What do I have to do in order to get the full rez version of this?" etc. (By doing such a good job at search, Google has successfully screwed it all up for everybody in some sense. Oh well.)
From the technical angle, I hereby propose some food for thought. I will write it somewhat tongue-in-cheek because I know there are religious wars over how to write a good use case / user story / feature request / prd / kanban ticket / whateverthefudgeyoucallit.
As an end user.
When I get an image on my touch screen device.
I want to directly zoom it.
And have it support self-updating for arbitrary resolution as I zoom.
So NASA images don't look like pixellated crap.
This would probably require a new kind of HTML or JavaScript image concept. I will call it the DynamicImage for the heck of it. (Probably a terrible name. Always be ready to refactor / change / kill names.)
The main feature of the D.I. is that it supports interaction. As the visible area of the image on screen changes due to e.g. user manipulation, the image can change what it is showing. As I zoom in, in the 640x480 area on my little phone, the image dynamically loads new data so that I get a high res zooming experience, rather than lame bitmap scaling on the client.
Maybe the D.I. supports an API call like (pseudo Java):
ImageInterface getRegion( Rectangle region, Zoom zoom );
where ImageInterface has concrete classes like Jpeg or whatever; Rectangle is, you know, a rectangle; Zoom is pretty much an alias for a floating point number.
The idea is that the web browser will dynamically update the region as the user zooms in/out. It will hit whatever the back end is and get results.
(Of course, the web browser will not be a piece of stupid hateful lame broken pathetic crap like all browsers seem to be, c'est de soupirer, and will first do lame bitmap scaling so the user has immediate feedback and then will progressively refine and re-render as soon as it gets data from the back end. Of course, the back end will also not suck and know about interrupting itself if the request gets dropped before it is done because the user is a little impatient. Also, the back end will not suck because it will have done a cached mipmapping of the images so that it can take the closest one, do a quick and dirty lame bitmap scaling of it, and return that first so that the response is lickety split. Etc. UX matters.)
I have to point out that this won't solve the problem entirely because e.g. people want the e.g. Google Image results to drive folks to their web site most of the time probably, so they don't want Google's Image results to support this because then nobody would go to the site.
But of course, the truth is that from a UX perspective the end user doens't give a rat's ass in the immediate sense. They might care if all the web sites go dark and Google has no results to show in the end, of course, but that's not what my son is thinking when he's stabbing at my phone in sheer frustration trying to get the bloody image to zoom well. As soon as we see an image, that is the thing we want to interact with directly. We don't want to have to figure out "what happens if I click on this?" "What do I have to do in order to get the full rez version of this?" etc. (By doing such a good job at search, Google has successfully screwed it all up for everybody in some sense. Oh well.)
Thursday, February 25, 2016
no, no, it should be Greenfud's Meta Eleventh Rule of Programming: If you mention Lisp, you are already doomed.
Wednesday, February 24, 2016
There's always some storm-in-a-teapot navel-gazing name-calling turf-defending self-aggrandizing phallus-waving miscommunication stuff going on in the "Agile" land. I think it would be super funny if SNL / College Humor / the SV TV show / somebody did a skit of a panel of various agile experts getting into a verbal kerfuffle, and then Jeff Sutherland yelling about how he was a fighter pilot and just physically punching the heck out of somebody else and then it goes nuts! Black belts from Six Sigma wreaking havoc! Scrummers using Drunken Scrum Master Style! Kanbaners using (anime reference alert) The Bloody Card! Strawman Waterfallers using enhanced interrogation! Just a complete slaugherhouse! Somebody reading Kierkegaard's footnotes about MVC! It would be oh so cathartic, would it not?
Tuesday, February 23, 2016
A nice read: Andrew P. Black: Object-oriented programming: Some history, and challenges for the next fifty years.
"While semantic unification can lead to a true simplification in the design of a language, syntactic unification may be a mistake."
(There's plenty more good, deeper, stuff in the paper, but copy-pasting from a pdf leads to formatting hell here.)
"While semantic unification can lead to a true simplification in the design of a language, syntactic unification may be a mistake."
(There's plenty more good, deeper, stuff in the paper, but copy-pasting from a pdf leads to formatting hell here.)
Smartphones are great and all, except for how all the software on them, be it the OS or the bundled apps or the 3rd party ones, how all of them kind of majorly suck.
I was just trying Firefox and UCBrowser on Android 5, and it was... not a terrific experience, shall we say. What kills me about it is how some of the errors are so egregiously bad. Like, I can't 2-finger-zoom images in UCBrowser?!
I was just trying Firefox and UCBrowser on Android 5, and it was... not a terrific experience, shall we say. What kills me about it is how some of the errors are so egregiously bad. Like, I can't 2-finger-zoom images in UCBrowser?!
Monday, February 22, 2016
Tuesday, February 16, 2016
If we ever try to get into a giant space battle with alien enemies, all they have to do is insert a few directories or filenames with whitespaces in them into some of our filesystems, and everything will tank.
I cannot remotely begin to express how much of an indictment of everything and everybody who ever had anything to do with computers the whole whitespace handling thing is.
Drives.
Me.
Nuts.
I cannot remotely begin to express how much of an indictment of everything and everybody who ever had anything to do with computers the whole whitespace handling thing is.
Drives.
Me.
Nuts.
Monday, February 15, 2016
Sunday, February 14, 2016
Saturday, February 13, 2016
Friday, February 12, 2016
Wednesday, February 10, 2016
'RRR stands for “Roles, Responsibilities and Relationships.” The last “R”
is the “I” of DCI. It’s important to understanding the network of
interactions. An RRR card usually has a one-line header (the name of the
Role) and then the bottom of the card is divided into two columns. The
left column is the Responsibilities; the right column is the
Relationships.
The first step in the use case asks the first Role to do something.
When asked (never told!) to do something, the holder of the Role writes
a responsibility.
In carrying out that
Responsibility, that Role may need the help of another Role. (This Role
can be called the Collaborator, Helper, or Relationship.) When I ask that Role to carry out a Responsibility in support of what I’m doing, I
write down its name in my Relationships list, and that Role writes down
the Responsibility I am asking it to carry out.
We usually do not align Responsibilities and Relationships on the card — that gets too much into procedural thinking.'
Tuesday, February 9, 2016
"Since the very beginning of computers we have been in this vicious circle, exclusively solving what was right in front of our noses, the poker chips right below our feet - problems that we created in the first place - without ever questioning if those were the right problems to solve to begin with."
Monday, February 8, 2016
Not a news flash, but pretty much all - and I really do mean all - eCommerce sites blatantly suck in obvious ways in the first 30 seconds that I try to use them. And then of course they also suck in less obviously ways each and every minute I get further into using them, be it doing searches, or trying to actually buy things. As a software developer with both front and back end experience, I don't see that there are many things done wrong that are like NP complete or something. It is just that however they got built, the sites plain suck. Amazon. Lowes. Best Buy. Home Depot. Frys. Target. Whatever little guy stores run. Everything. Just, like, everything. :-(
Wednesday, February 3, 2016
Serialization seems to me to kinda be an indictment of all human efforts in software. Reason #73 why the aliens are steadfastly avoiding any kind of contact with us. They fear the stupid might be contagious.
One would hope that between Xcode and AppCode, one could sorta get things done. But it turns out that for me they manage to have non-overlapping bugs such that whichever one I am using quickly becomes a nightmare to use. So then I switch to the other, which doesn't have that same bug, but then 30 seconds later I hit the bug in there which caused me to switch before. Wrestling back and forth ad nauseum. Indictment, baby. Indictments all 'round.
Tuesday, February 2, 2016
I guess I will never find the Google Maps UX to not actually be frustrating, one way or another? The sad thing is that, of course, they are far and away the best map UX around, from what little I've seen of others. It would be nice if every UX program at every institution of higher learning made people research better things for us all.
Subscribe to:
Posts (Atom)