Live data from Hacker News

I am no longer able to use Google with Lynx

blind.guru

321–330 of 333 posts

Re: I am no longer able to use Google with Lynx

#321
post #24

Earlier quoted context omitted.

Multiple versions are being tested. The one I've seen does not contain the domain, not even in a tokenized form. It looked like this: https://www.searchenginejournal.com/google-is-testing-search...

Yeah, the iteration I'm being served is definitely an upgrade over that. The one shown in your link is what I had previously, so it seems that mine is a refinement of it and a middle ground that I don't think is so bad.

I don't see the issue with showing both an URL and a tokenized representation, outside Google's seeming motive to "kill the URL". In both versions, information that would be immediately available in the URL is potentially left out, which can't possibly help prevent phishing unless Google goes out of their way to actually verify that websites are what they say they are.

It's also hard to trust Google engineering to get something like this right after the Chrome "trivial subdomain" stripping debacle(https://bugs.chromium.org/p/chromium/issues/detail?id=881694).

Re: I am no longer able to use Google with Lynx

#322

Another person notes that ddg is inferior. Maybe people get used to a certain way of searching with Google that doesn't translate to ddg. Haven't noticed a drop in quality myself and I think I might have been retrained to use different patterns and techniques in structuring my queries.

DDG results are so much worse for me, especially anything longer tail or in Spanish, that I switch to Google when I'm actually getting work done. I find myself adding "!g" to an important search just to check for any results that DDG doesn't know about and it's almost always an upgrade to see Google's results. Search is hard. I don't like to chime in to say something negative about an underdog like DDG, but I see thi…

> Google feels like it can practically read my mind with minimal context, like knowing I also may be talking about a recent event that shares the name with a generic search term. And I'm not talking about personalized search.

I wish there was some compromise, because Google regularly seems to read another mind than my own, automatically "correcting" search terms to terms with similar spelling that are totally irrelevant to my search or including what is superficially synonymous but for my purposes irrelevant in the results. I frequently feel like I have to convince Google to stop second-guessing me and actually consider what I wrote rather than what it assumes I meant.

A few more knobs and switches to adjust that behavior would be helpful at least for power users.

Re: I am no longer able to use Google with Lynx

#323

> However, being a blind person, I guess I have to accept that Google doesn't care anymore. This is not a blindness issue. It would be more accurate to say that Google doesn't care about geeks who cling to old ways of doing things long after there's a good reason to do so. As others on the thread have pointed out, blind people can use graphical web browsers with a screen reader, even under GNU/Linux. I know you know…

On the other hand I don't feel like I'm in a position to blame a blind user for clinging to something they already know instead of learning how to use a graphical browser. A lot of people in general have good reasons for sticking to what they know. Especially if what they stuck to worked fine until recently, and doesn't now only for some trivial reason that's easy to fix.

Re: I am no longer able to use Google with Lynx

#325

Earlier quoted context omitted.

It's actually because we programmers like to recreate things, because there's this itch and wonder about how stuff works. Http hasn't changed that much. Html did. It was hyper text, and rendering was done for document flow. Then we could script a bit, and soon after we wanted "webapplications". Now, we lost probably 15 years trying to fit in an application-ui and lifecycle model in a document-flow model. Html, or rat…

There's little value in me doing this, but I always have to push back against this idea. This is the hill I'll die on. Most application UIs are not complicated. Most applications are just interactive documents. There is nothing special about 90% of the apps I use on my native computer that means they couldn't be rendered as HTML. The document model is fine for applications. Preferable, even. Heck, a reasonable portio…

If you're talking about "forms" as the interface, then sure. I 100% agree. But the moment things get more interesting, you'll fail. Video editing for example. Lastly, I believe that if forms suffice, you don't need any of the recent CSS features. Simple forms without css should be fine. So no panels, modals, popups, nested navigation or single page apps.

Re: I am no longer able to use Google with Lynx

#326
post #320

Earlier quoted context omitted.

I'm resisting the urge to rewrite it in APL. :) Nicely done.

No need to resist (⊃,(⍕2-⍨≢),⊃∘⌽)'accessibility'

I tried to write it a couple of different ways, but I keep coming back to approximately your code as the most direct way, if written slightly differently with (⍕¯2+⍴) in the middle; I'm puzzled by the behaviour of being able to drop and take negative numbers to index from the end of the array, but not being able to use negative indexes in other contexts. Why is (¯1⌷word) an error, instead of working like (¯1↑word) works?

Here's a much more convoluted way, because everything is difficult in this language:

    ,/((⊂∘⍕∘⍴∘⊃@2)⊢⊂⍨((1@2)1,⍨¯1↓1⌷(↑(1,⊂))))'accessibility'
    a11y
a frustratingly roundabout way to build up the boolean vector:

    'accessibility'
     1100000000001   ⍝ for penclose
without counting the length first.

(Is there a way to drop from the middle of an array? "delete index 4 5 6"? Or to insert into the middle of an array? "Insert between elements 2 and 3"?)

Re: I am no longer able to use Google with Lynx

#327
post #320

Earlier quoted context omitted.

No need to resist (⊃,(⍕2-⍨≢),⊃∘⌽)'accessibility'

I tried to write it a couple of different ways, but I keep coming back to approximately your code as the most direct way, if written slightly differently with (⍕¯2+⍴) in the middle; I'm puzzled by the behaviour of being able to drop and take negative numbers to index from the end of the array, but not being able to use negative indexes in other contexts. Why is (¯1⌷word) an error, instead of working like (¯1↑word) wo…

"Everything is difficult in this language" made me smile. :) I mostly agree. There are things things that APL / J make amazingly easy, too, but a lot of simple things are just brutal to me. I'm not a hardcore APL programmer -- I've played with J more than APL, but I'm still a novice at both. I just enjoy the mental challenge sometimes.

To insert items from B into A at point N, you could (in pseudocode, I don't have time to play with APL right now!):

(Take N of A) , B , (Drop N of A)

To remove items from the middle of an array between N and M, I can think of two ways (I might have off-by-one errors here):

- (Take N of A) , (Drop M of A)

- Bools / A

where "Bools" is an array of 1/0 values, and the 1's indicate the elements to keep. As a dyadic verb, "/" means "compress", that is, to keep only the indicated elements from the right-hand object.

I'm sure there are other ways! These are the few ways that my limited brain could come up with. :)

Re: I am no longer able to use Google with Lynx

#328

Earlier quoted context omitted.

I tried to write it a couple of different ways, but I keep coming back to approximately your code as the most direct way, if written slightly differently with (⍕¯2+⍴) in the middle; I'm puzzled by the behaviour of being able to drop and take negative numbers to index from the end of the array, but not being able to use negative indexes in other contexts. Why is (¯1⌷word) an error, instead of working like (¯1↑word) wo…

"Everything is difficult in this language" made me smile. :) I mostly agree. There are things things that APL / J make amazingly easy, too, but a lot of simple things are just brutal to me. I'm not a hardcore APL programmer -- I've played with J more than APL, but I'm still a novice at both. I just enjoy the mental challenge sometimes. To insert items from B into A at point N, you could (in pseudocode, I don't have t…

I'm also a novice at APL, despite thousands of lines of session scrollback building up basic lines that almost work then I change one character and INSCRUTABLE ERROR, over and over. Your take,B,drop design looks simple and sensible but the repetition of N is bugging me - I tend towards codegolf more than code clarity. The kind of drop I was hoping to find would be like you can index non-contiguous indices and update them:

    Vector[2 8 5]←100
but instead of them getting value 100, they get deleted.

Or like you can do ~ for set subtraction "without some values" like (⍳9)~5 7 but treating the right argument as indices to remove from the array, rather than values to remove from the array. I feel like there's two patterns which work in the same way as the thing I imagine and a space where the thing I imagine could exist but doesn't. Which I've now tried to code up:

    4 9 8 7 10 11 {(~(⍳⍴⍵)∊⍺)/⍵}'accessibility'
    accssty
It's not so ugly, but that took me down another rabbit hole of why I can't turn that into a train because there seems to be no way to force monadic iota when the trains design wants it to be dyadic. That is I want 3 4(⍳⍴)'accessibility' to come out the same as (⍳⍴)'accessibility' by somehow blocking the iota from having a left arg. Like 3 4(⍬∘⍳⍴)'accessibility' but Dyalog shoves the numbers in as a left arg then complains that the left arg is unavailable. Is this a problem with having to overload every glyph with a double meaning because of limitations on IBM 1960s printer technology, or is this my misunderstanding of tacit code and limited knowledge of operator behaviour, who knows. Maybe in another thousand errors I'll know a little more.

I just enjoy the mental challenge sometimes.

There's no accounting for taste ;)

Re: I am no longer able to use Google with Lynx

#329

Earlier quoted context omitted.

"Everything is difficult in this language" made me smile. :) I mostly agree. There are things things that APL / J make amazingly easy, too, but a lot of simple things are just brutal to me. I'm not a hardcore APL programmer -- I've played with J more than APL, but I'm still a novice at both. I just enjoy the mental challenge sometimes. To insert items from B into A at point N, you could (in pseudocode, I don't have t…

I'm also a novice at APL, despite thousands of lines of session scrollback building up basic lines that almost work then I change one character and INSCRUTABLE ERROR, over and over. Your take,B,drop design looks simple and sensible but the repetition of N is bugging me - I tend towards codegolf more than code clarity. The kind of drop I was hoping to find would be like you can index non-contiguous indices and update…

No accounting for taste -- truer words never spoken. :)

---

Abandon all hope, ye who read further.

I try not to worry too much about making things tacit. But there's a neat trick you can play in J to find a tacit definition for a non-tacit expression (if one can be found). I don't know if there is a counterpart in any common APL distributions.

First you define an expression in terms of values named 'x' and 'y'. Your goal is to find a tacit verb -- let's say 'T' -- that you can call as 'x T y'. (X is always on the left and y is always on the right, by convention -- compare with ⍺ and ⍵, sort of.) There is a J operation, cryptically named '13 :', which will try to make such an expresssion tacit.

Here's a quick attempt at writing 'N M drop Y', which will return Y but with the N:M section deleted. Again there might be off-by ones here (you could use Increment/Decrement to fix that):

Define some 'x' and 'y' values for experimenting:

    x =: 5 10     NB. these will be our N:M indexes
    y =: 'abcdefghijklmnopqrstuv'
Here are examples of Take and Drop (these are just to help you translate between APL and J):

       5 {. y
    abcde
       10 }. y
    klmnopqrstuv
Monadically the same verbs mean First and Last:

       {. x
    5
       }. x
    10
With M and N defined as the first ({.) and last (}.) values of X, take M from Y, and join (,) it up with the result of dropping N from Y:

       (({. x) {. y ) , (}. x) }. y
    abcdeklmnopqrstuv
Close enough! Now here's where we invoke the 'make tacit' verb, '13 :'. We have to wrap the original x/y expression in quotes, to make it a string, and then call it like this:

       13 : '(({. x) {. y ) , (}. x) }. y'
    (] {.~ [: {. [) , ] }.~ [: }. [
There's the magic. The tilde (~) is like ⍨ in APL, and the bare [ and ] represent 'take left value' and 'take right value'. The [: word is called a 'cap' and is used to limit the left side of a verb fork. (Sorry, I don't know the equivalent in APL.)

And that's our tacit version. We can try it out, give it a name, and try it out again:

       x ( (] {.~ [: {. [) , ] }.~ [: }. [ ) y
    abcdeklmnopqrstuv
       drop =: (] {.~ [: {. [) , ] }.~ [: }. [
       x drop y
    abcdeklmnopqrstuv
       5 10 drop 'abcdefghijklmnopqrstuv'
    abcdeklmnopqrstuv
 
If you've truly abandoned all hope, the J vocabulary is listed here: https://code.jsoftware.com/wiki/NuVoc

Re: I am no longer able to use Google with Lynx

#330

Hi Mario, I am an engineer on Google Search frontend. Thank you for posting this, and I'm really sorry and saddened to see this broken; this is certainly not intended behavior. I've reproduced the issue you described in the blog (Lynx does not allow clicking on the search results page). Even though Google serves valid HTML to Lynx, it's probably HTML that Lynx cannot parse, and since it used to work before, this is a…

Thanks a lot for this positive reply! I am thrilled to read that this might be counted a regression and actually fixed. I really hope that can happen. Regarding 'L', Lynx sometimes "hides" links if the anchor is around a div. Maybe it is just that simple. IIRC, ... will trigger a similar behaviour. Regarding your Chrome suggestion, that really doesnt help me much since I spend 99% of my workday on a plain virtual con…

Hi Mario,

Your analysis is correct; the issue was due to tags appearing inside tags. This should be fixed now; I've verified that I can follow result links using Lynx.

Once again, my apologies for you running into this issue! Thank you for reporting & debugging it and thank you for your patience as well.

I hope this is resolved for you now; please try it out and let me know whether or not it works for you, or if you run into any other issues.

Post reply on HN