Wednesday, December 28, 2016

It is as if most people (especially the ones documenting the most well known functional languages) in software who write documentation never thought about how to write documentation. Shock, horror.

Tuesday, December 27, 2016

I am depressed that it seems like maybe my best bet is to use some kind of JavaScript. GHC is too slow to compile, especially with all the stack junk, apparently. And Haskell documentation is... poor. Purescript is a 0.x thing and godhell it sure does show. Ocaml is not really very usable just in terms of getting set up, and then I find the whole functor syntax and semantics to be kind of From Hell, let alone the so-called documentation. F# is slow to compile. Frege is slow to compile. Basically, everything seems to just obviously, clearly, blatantly, plainly, bare facedly, painfully, s u c k.
So, like, I think I already did something like "npm install -g bower" but then when I am in a git cloned directory of a certain public project that will remain nameless, I type "make" ... and it says it is doing "npm install bower" ... and then apparently downloads all sorts of stuff. From my end user perspective that totally freaking sucks.
If you have a project on github that you actually want people to, you know, really truly use, then maybe it should have an issues tab?
There's a circle of hell for home theater companies.

There's also one for standards/bodies i.e. HDMI.




OH AND THERE'S ONE FOR DISQUS GOD KNOWS.
When somebody claims they can show you 50 things with exceptional usability, (by which I guess they mean exceptionally good ha ha) I have to believe:

(a) yes, ok, sure, fine, it is true that 99.9% of everything sucks so bad that I guess those 50 things are exceptionally good by comparison, even though in actual fact I've used some of them and they drive me bat sh*t crazy (cf. iOS; Nest thermostat; Chromecast; anything at all based on Android; the Sifteo stuff since I got a debrief on UX failures from one of the Sifteo-Cardio guys back when I was at PayPal; the general commercial failure of Lytro; etc. ad nauseum).

or

(b) god hell, these people don't know what the hell they are talking about and they seem to conflate usability with just having a bullet point laundry list of buzzword features. And they sure over use that most horrible of terms, 'intuitive'. And, uh, anything that is based on Bluetooth is likely to suck since Bluetooth pairing invariably sucks in my experience. And, uh, they list things that do not even exist yet, are not even available for actual purchase.

(and (c) they have some lovely typos.)

Any which way, it is pretty depressing. Yes, I get it, it is just b.s. marketing hype written by either ignorant or idiotic weasels, and I shouldn't let it bug me... and yet it does.
One thing that drives me utterly bonkers about web sites and web browsers is the triple-click  behaviour on text. I think when you have a page with text that is specially formatted (e.g. examples of shell commands to run) then triple-clicking inside the called out / specially formatted text should stop the selection at the bounds of that stuff.
It utterly boggles my mind when some team (cough cough ocaml ahem) says something like "oh yeah we support ubuntu 14.04 LTS except for how it doesn't really work at all and we haven't and apparently never will fix it."

Because, you know, the LTS releases aren't, you know, maybe the top priority one should have if you are going to bother to try to support ubuntu. 14.04 LTS is supposed to go to 2019 people!
It is truly depressing how all the hard problems that cause terrible user experience are pretty much never solved in every shiny new thing. Instead of knowing enough to do things right, people recreate every circle of hell that has ever existed before them. And that ends up, one way or another, seemingly leading me into situations (say e.g. work) where I have to deal with that junk.
A fundamental and I think obvious problem with the command line is that it usually fails to graphically split up different kinds of data. I dare say that since we often use command lines from a GUI terminal, we could leverage that and do better. (Not meant to break regular plain old inline raw text terminals, just to do better when the possibility exists.)

The rule of silence means now I am sitting here wondering if my "npm install -g whatever" will ever actually finish. There's no progress indicator. And if I ^C it and restart it with some argument to show progress, I have to assume/worry that it will restart the entire bloody download all over again from scratch. Complete bollocks UX. (The kicker is of course that the "progress" indicator of npm is a piece of junk.)

Similarly, when a command generates a lot of output, then it can be confusing/annoying/discombobulating to have to go back through the spewed text and try to figure out what is what and where and when.

A lot of this could be perhaps addressed by upgrading the entire terminal/tty/textual command line concept with the idea of separate regions "on-screen", since we are not actually ever using teletypes any more (for the most part?!).

Everything could always generate a progress indicator if it is going to take more than some minimal amount of time to complete, and the progress would go into the separate info area. In fact, perhaps all output could go into that other region.


if i were the dictator, people like this sure wouldn't get to run the show.

Friday, December 23, 2016

The world of tech is bloody horrible. Just trying to get directions printed from Google Maps seems like a task from hell. Like, the complete directions, rather than directions missing the last page.

Thursday, December 22, 2016

Haskell esque pattern matching and lets vs. (my newbie impression of) Ocaml style: Haskell makes more sense to me in that is doesn't look as linear, and seems to let me do things more directly in-place.
I don't like markup as a general rule, if only because there are so many variations on the theme. And things like Reddit explode my mind with how bad their particular approach to it is e.g. vs. GitHub's. (It is kind of sad when I point to GitHub as being a good example of something UI/UX wise, by the way.)
If you make a terminal gui program (e.g. gnome-terminal) and you do not have an all-in-one right-click "copy-paste" command, then I think you kinda failed.
I find docker's UX to be weird.

Wednesday, December 21, 2016

I think one of the absolute worst things about human nature (at least as it appears to me from my vantage point) is the ability to utterly discount externalized costs.

Tuesday, December 20, 2016

I am impressed with Ocaml's stubborn ability to mostly only at best say, "Error: Syntax error" with not really much else explanation of WTF. Haskell is less utterly horrendous in that regard, seemingly.

Monday, December 19, 2016

Software engineering is hard. Just look at the tools software developers have.

Programming languages, let alone all the other tooling, massively suck, across the board, one way or another. There's the suck of bad paradigms (cf. imperative vs. say flow based) and then there's the suck of just bad UX.

Things like: crappy documentation; missing features that would help allow more quality code; unclean history (when I search for "ocaml batteries set" I see Set and BatSet - which is the right one to use?!); unwillingness to change things for the better (generics in Go); inability to change things due to constraints like having enough people working on it, or knowing how to actually even do it at all (SMP in Ocaml).

And of course it isn't just the language, it is the ecosystem. Doesn't help me if there's a good language that suffers from any problems like: slow compiler; lack of a (good) standard library; hell to get setup on my random home laptop; bad package manager; insufficiently large or helpful community and history and answers on stack overflow; bad license; etc. ad nauseum.

It blows my mind that the ivory towers mostly haven't figured out how to even get the expression problem solved in a way that doesn't look like pure hell to me. (I dunno, I'd guess multimethods with exhaustiveness checking seems the most straight forward to me, if one is stuck with crappy ascii as the medium.)

Or, say, record data types.

Or, say, type aliasing.

Or, say, generics, with support for the curiously recurring template pattern.

Or. say, functional style features.

Or, say, a quality, performant, cross-platform (mobile for eff's sake?!) runtime.

Or, say, an actually reasonable debuggering story (source level debugging; breakpoints; breakpoint conditions & actions; time travel; etc.).

Or, say, syntax that isn't sooner or later inevitably crappy.

Or, say, semantics and syntax that fly in the face of everything that's considered to be the best way to code in general, and in that language (cf. prefer factories over constructors in Java shyeah right good luck with that crap, buddy).

etc. ad nauseum.

forsooth, let us all go shopping! (nowadays that means i guess doing our shopping online, which probably means we're hitting sites using C++, Java, and Perl, god help us all?!)
As much as I truly believe Haskell documentation kinda sucks, I have to say that at least their e.g. cabal/hackage/whatever docs contain links to the source code pretty much by default. I don't see that as being so standardize in the land of Ocaml.
The universe is run by Doers. But apparently I will never really understand some of what it is the Doers do, and do not do. Like, how can Reddit text posting not have a preview mode at all?!

Sunday, December 18, 2016

Firefox seems to me subjectively to be missing the mark by an ever greater extent. Oh well.
An essential aspect of good UX is that there's an attempt to control and reduce the number of ways things can go wrong. And if they do go wrong, ways for the user to get to something that is more right.

Haskell to me demonstrates some of the worst UX in this regard.
I really want to like Haskell. One of my loves in school was SML, go figure. But Haskell is apparently still too much of a research language that eschews any real concern for solving the (hard) problems of UX in programming language semantics and syntax. Consider, as one small example, attempting to - ha ha ha - do something as - ha ha oh i'm dying here - complex and advanced and ivory tower as - no, seriously, this is killin' me - as as as... defining and using records!
Computers are annoying. My laptop is getting slow and all I can see from e.g. top is that Firefox is taking up a lot of CPU time. But I have no way of knowing e.g. which bloody tab is the culprit.
Ha ha. The intro here sums up Haskell pretty much in its entirety to me. Short of helpful people on Reddit.

Saturday, December 17, 2016

I love Emacs. I hate Emacs. Why does it only sometimes hide the text when a password entry is needed?
If anybody doesn't understand that the UX of Haskell Control.Lens (and really all Lens things in Haskell) is... less than ideal, I believe they are either too smart for everybody else's own good, or really need a good smack upside the head.

The documentation is just pathetic. All of it. Everywhere. Er, well, except the Lenses in Pictures stuff, that really helped!

oh, wait... nope, actually it fails, too.
I can summarize the state of UX with: If it ain't one thing, it's another.

Everything sucks, sooner or later, one way or another, no matter what. As far as I can tell. I just want to get an Ubuntu machine set up with Haskell Platform and Stack, but god hell what a slow laborious pain in the ass! And generally speaking, unattended installs seems to be very poorly thought out by everybody.
I think there are two kinds of people in the world: Those who think iOS touch user interfaces are, on the whole, usable and "intuitive"; and those like me who find them sorta like getting a point-ed stick in the eye.

Generally speaking I find touch UIs to be sorta horrible the way they have been implemented on both Android and iOS. But somehow I think it is worse on iOS.

One exception is that I find Subdivformer / SDF 3D to be super freaking cool because of the immediacy of the touch UI, vs. things like Wings or Blender or anything that mostly requires mouse & keyboard.

(Related, I have to say the world of apps is just awful. Awful! I wanted to be able to resize an image on the iPad and of course that's like completely impossible out of the box, or even with the myriad painting apps I have already installed (or if they did have the ability god help me figuring it out). So I went to try to get something from the app store to do just that functionality and they all utterly failed, failed, failed. Bad UI, banner ads, full page ads, and then once I might have fought my way through all of that it turns out the ones I tried do not even give you the basic obvious standard gimpy/photoshoppy choices of resizing by various units. They all only supported resizing by pixels. Just! Complete! Epic! Fails of UX!)
I think one can tell that an awful lot of businesses with supposedly good web presences are actually kind of selfish jerks. They aren't truly in it to give the customer what they actually want. BofA doesn't help me see how much of a car payment is going to principle, let alone let me dial that in. eBay doesn't let me search and sort and filter by seller rating. etc.

Of course some of that can be chalked up to just the general pathetic utter failure of UX across the board. Random e.g. how Maven Central's table of search results doesn't let me click on the date heading to sort by that column.

Friday, December 16, 2016

I figured I'd be smart and set the pressure cooker up to make some black beans before driving to work today. Surprising how as simple an interaction as setting a pressure cooker to cook on low for 90 minutes can be a living hell. Holding down the button to increment the counter ends up using an all too slow repeat rate, whereas hammering on the button to get up to 90 faster results in a beep on every push. A really annoying, loud, beep. Augh! Of course I forgot to add something and had to cancel the whole thing a minute later, put in the missing stuff, and then do the whole damnable process all over again.

Wednesday, December 14, 2016

In this day and age, it boggles my mind that there's enough buy in / lock in for some things that they can ship with utterly stupid wrong broken bad evil sad lame idiotic useless features, like any Panasonic Lumix camera WiFi "features".
Mozilla really does not understand UX, in my book. An example: when it asks me if I want it to remember my login for a site. There is no option to tell it to never try to remember anything for any site. I have to go through various levels of settings to get to (or even bloody find in the first place) the setting that would let me turn off that annoying nagging bullcrap for ever.

(Ditto the "reader view" or whatever that hell junk crap is called.)

Thursday, December 8, 2016

There are bugs / issues that really just shouldn't exist, that are just blatant indictments of the particular software, and pretty much software in general as a whole. How can GIMP be 'sold' with a straight face when the "Open Image" dialog box fails to show any "Preview" for these JPG images I'm trying to load?
It completely boggles my mind that we live in an age where software is still written such that it can have zillions of blatant "un managed" or "non managed" memory errors. Yes, I know performance is a five letter word. But so is reliability.

(/usr/lib/firefox/plugin-container:17453): GLib-GObject-CRITICAL **: g_object_ref: assertion 'object->ref_count > 0' failed

Wednesday, December 7, 2016

One sad painful depressing never ending whipping boy lesson I have learned over the years from working on Android projects: "With great configurability comes great (shirked, in the case of Android) responsibility."