Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

Monday, October 7, 2019

Android Voice to Text Fails


On my Motorola phone, every once in a while the voice-to-text just stops working.  It just sits there and looks at you and says go ahead and say whatever you want I am not going to do anything.


Wednesday, July 9, 2014

In Response to an Anonymous Comment on my Review of Android



I wrote a scathing review of Android many months ago, intentionally being sarcastic and demeaning to what is clearly a very successful operating system. I am resisting looking up the numbers of users of Android (not necessarily programmers, end users) because I am sure they will be stunning, however much they may have been inflated by marketing scum. The reality is that whatever the numbers are, this is a very successful operating system by any measure. But all the more reason therefore to have expectations regarding the quality and the way potential developers are treated.


The point of the current post is to reply to a comment, anonymous, that I just received that suggested, tersely, that I should revisit my review of Android. The implication being either that it has changed, which I doubt, or that I am stupid or that I am wrong.

But before I begin, let me respond to a potential criticism, that I simply want new technology to be the same as old technology which I already know. No, I don't, but thank you for insulting my intelligence and motivation.

I doubt very much if Android has changed. The kind of things I was responding to are fundamental to the system and could only be changed if the people at Google wanted to change them. But it is the nature of such things that they are not changed, at least not willingly. How many psychiatrists does it take to change a lightbulb? Only one but the lightbulb must sincerely want to change. Either they do not give a fuck, or they think it is great, or they dont know any better, or it was a design goal to make Android completely incompatible with everything else and have not considered what is involved for a non-Google person to do development on the device.  It may be that they are only interested in the participation of organizations with a lot of resources, and the lone developer has only marginal value.  (1)

Second, I do not think I was being unfair. I think that I got a good sense of what the design philosophy behind Android was and what Google thinks of their users (which is that they are going to do things their way and spend the time and energy and money to get up to speed, no matter what that costs). Remember this project has essentially infinite money compared to most projects in this world. If they wanted to do a good job, they could, but to do so would require that they want to do a good job and that they hire someone with the aesthetic and design sense who was capable of doing so.

It is my opinion that computers are first and foremost about aesthetics. There is very little about computing that is not about aesthetics in one way or another. Yes, there are other criteria as well which are more mundane, some obvious, some not obvious. But generally speaking, the values of those who have written or designed (if there was a design) the hardware or software have been implicitly expressed in their design and implementation.

There is nothing new in the above paragraph. This insight has been common knowledge in computing since at least the 1970s and probably before and in the other arts for much longer, centuries at least.  It is one of the reasons, perhaps the primary one, that Macintosh consistantly has a good user interface and Microsoft does not.  The author of a work necessarily reveals who they are and what their values are in that creative work whether it be a sonnet, a novel, a short story or a computer program.  One of the scary things about doing creative work is that it always reveals something about you.   (2)

Like all creative works, one can work at many levels, and one can also employ irony, sarcasm and so forth. Thus one may have to have two neurons to rub together to realize when reading Jonathan Swift's “A Modest Proposal...” that he does not actually think that people should eat Irish babies to deal with the overpopulation problem. Similarly one may write bad software to make a point, or simply because the client wanted it to be bad, as they so often do.

Now we have one more point to make. Those who are not lucky enough to have been rewarded for their work and have to get a new career in todays “great recession” have an overwhelming number of new, but not altogether well designed, frameworks, operating systems, languages and so forth to learn. When they get a job, the problem becomes much easier as long as they hold that job. Android is certainly one of those things one might learn to try and be employable. Thus when it is badly designed or deliberately difficult to use, it is particularly frustrating to those of us who are not being paid.

So my response to the anonymous commenter who tells me that I had better revisit the subject but doesn't have the guts to sign his opinion nor the time to explain why this might be so is that I would be happy to. My rate is $4K/day with a 10 day minimum due up front.

Let me know when you want to start.

________________________________________________

1. Which may, unfortunately, be the case.

2. There are two jokes related to this "the work reflects the personality of the author".  The first is a film school joke: everyone's first film is about sex, whether they know it or not.   The second is a joke from the field of industrial organization: that an organizations building (headquarters, usually) tells us something about the company.   Thus the Pentagon tells us something about how the DOD works, and the building of the American Museum of Natural History tells us something about how the museum organizes itself.  This is one of those jokes that has an awesome amount of truth to it.


Thursday, March 7, 2013

Toaster Oven or Computer? How Can We Tell The Difference?


[Note, I use the term "computer" here to refer to both the hardware and software.  Did anyone think that a computer did not include software?]

As citizens of our modern world (1), we are expected to promiscuously hop from computer platform to computer platform at the slightest hint of trendiness or novelty. To fail to do so is an unmistakable sign of imminent and unstoppable senility and creates the genuine possibility that you will be thrown under the wheels of the train of progress by your helpful and loving friends and colleagues.

So we embrace our new platforms and devices and pretend to be excited by whatever bad implementation of an old idea that is poked in our face as "the latest thing".

But some of us, for reasons that may not be our fault, are also called upon to do our "work" on these exciting new platforms (3) and that can cause a lot of problems, especially if the new device claiming to be a computing device actually turns out to be more like a toaster oven than a computer.


Does that modern looking toaster oven have an ethernet interface?   How about wireless routing?


Now this is not to in any way put down the noble art of the design of a good toaster oven, far from it. Toast can turn a formerly inedible piece of old bread into a tasty culinary element, no small feat.  Most of us would not consider having a toaster oven in our kitchen that did not have a satellite uplink and at least 1GB of main memory.  But a toaster oven is still conceptually different from a computer in at least one important way.

I maintain that the key distinguishing concept separating the computer from the toaster oven is the need to get work done beyond the controlled burning of bread. It is this idea that a computer is used to "get work done" that is considered so revolutionary and so threatening to the computer manufacturers of today who believe that a computer is first, last and always a device to extract money from the consumer.

A computer is not just to demonstrate a bankrupt user interface idea discredited 20 years ago at SIGCHI and implemented by morons: a computer is actually a tool intended to accomplish something that the biped mammal thinks is worthwhile... something as simple as writing a letter or as complicated as mapping the human genome.  (4) Or that was the naive and idealistic belief held by many of the original users of computers back in the day when we thought computers were going to help the world and not just torture it.

How can we easily spot the computer from the toaster oven in actual practice?  We have developed a procedure which is outlined here.  First find a comfortable location within easy view of a clock.  Cozy up to your computer candidate, note what time it is, and then try to perform the following simple tasks, taking note of how long it takes you to complete them.

A. How hard is it to find a command line interface? How hard is it to find a text editor that does not insist on changing your data in order to "fix" it?   Can you create a file without the computer screaming bloody murder and asking stupid questions about whether you want linefeeds in Vietnam? (2)

B. How hard is it to create a new program for the computer, even the simplest program, and run it on the computer?  Not their program (or "app" if you insist), but your program.  Almost any computer language will do, whether or not it is the "native" language of the computer.    Do you need to get permission from Jesus or the Pope before you run this program of yours?   Boy that would be pretty fucking arrogant if computer companies were actually trying to control the software you could run on the computer you just bought from them in a sleazy bid to extract more money from you, don't you think?

C. How hard is it to find good (e.g. useful) technical documentation for the computer?  Documentation that a reasonably knowledgeable technical person would want to know when programming or operating that computer?  Does such documentation even exist?  Or is it carefully kept only for the elite in order to avoid giving actual users the information they would need to program their computer?  They might hurt themselves!

D. Does the computer support open standards and protocols or did the manufacturer work with tremendous diligence and cynicism to make sure that any application written for this platform could never in a billion years be ported?

E. Does the computer allow you to easily get data on the computer and off of it again? Why would anyone want to do that?   

There are cases where something may not fulfill all the five categories above and still be a computer, but generally it is a special purpose computer that has a large support team around it, say the kind of computer we might use to blow up Iraq.

Consider the following four case studies: Redhat Linux 9.0 circa 1988, the DEC PDP 8E circa 1970, MAC OS X and the Android Nexus 7.

Redhat Linux circa 1998.    The subject was able to find a shell within about 30 seconds, a text editor in about 5 seconds, write a program in about 1 minute, find a compiler in about 20 seconds and compile and run a program in about 30 seconds after that.  The subject had trouble finding documentation because he had inadvertently not installed it by default, and he had to learn about the stupidity of the Info system for which GNU should be shot.  Definitely a computer.

DEC PDP 8E.   The subject discovered that the DEC PDP 8E, which his high school acquired about 1970, came with a built in line editor, a built in compiler (for FOCAL), and was running his own program within about 5 minutes.  One got data on and off with paper tape.  Definitely a computer.


A Real Computer


MAC OS X.  The subject had a project that required him to port a program from Linux to the MAC.   He was able to find wonderful technical documentation instantly, a good text editor in seconds, a compiler in a few minutes, and run a program in about an hour. Definitely a computer.

Android Nexus 7.   Subject had to deal with the immensely patronizing bullshit surrounding programming the Android for something like 6 weeks before getting a simple "hello, world" like program to run.  Said program was a page of insane java calls and the program itself needed to be embedded in a crazy hierarchy of useless directories and was painful to get to the designated tablet and to figure out how to run it.  There is no serious technical documentation. Anything involving a text editor, or getting data on and off, relies entirely on unsupported third party software that you have to find and install yourself without help or documentation from the manufacturer.

More toaster oven than computer, I think.

_______________________________

1. And "modern" is such an old-fashioned word, too.

2. In order to discourage users from using public and open standards, Microsoft Office would put you through a battery of questions before allowing you to save a .txt file, including about line feed encoding in the Democratic Republic of Vietnam, or whatever that socialist paradise is called these days.

3. Sarcasm intended.

4. Or, conversely, as complicated as writing a letter and as simple as decoding the human genome.

Saturday, September 1, 2012

Android Notes: Cameras, FTP & Development Environments


A friend and I are goofing around trying to figure out how to write something for the Nexus 7 tablet. I am writing about it not because I have anything all that interesting to say, but because it may be useful to someone else trying to to the same thing.

1. In order to take pictures, you need to download an application, it doesn't come with the tablet. I downloaded the free Modoco applet, and it works fine. Yes, it is awkward to try and take a picture with the camera on the front, you have to angle it in a funny way to see what you are doing. The pictures are just ok, which is all they were ever intended to be.

2. In order to get files on and off the tablet, I downloaded the WellFTP server. It defaults to an ftp port of 2121, which is non-standard, but ok. I am using gftp on Linux and filezilla on the Windows XP, and they can both talk to it simultaneously. All user data on the device seems to be under the DCIM folder. You should set up your wireless router to assign a static IP number to it in order to make things easier to use. This is all under "LAN Setup" in your router's control panel.

3. There is good news and bad news about the Android development. On the one hand it is highly tied into Eclipse, which is one of these deeply disturbed development environments for children, or perhaps development environments for disturbed children. Its a real pain in the ass and frankly, as documented, it doesn't work. But you have to have one of these if you, Google, want to play in the mainstream and have the morons, I mean the developers, develop applications for you. You can spend days figuring out which version will play well together with which version of the android development environment, or you can, YIPPEE, use the command line interface. Just use the command line interface. It is much more productive.

4. In a later post, I will publish a "hello, world" applet. It is pretty ugly, imho.