Or they could have started with an MVP without thumbnails and html and improved it over time, would have been more valuable then having no preview at all.
They do say they needed html to provide even a non-broken preview, and I expect the text summary was the most tricky thing to do in any case, just guessing a good picture can't have been too hard.
In any case, they had something 2 years ago but it was blocked by the community for not being good enough.
TL;DR: they had to choose a thumbnail and summary. I have been using WikiWand for years, which not only did that but also makes reading Wikipedia much better. Maybe I'm the only one but I have the hardest time reading paragraphs with lots of words per line. Previously I had to resize the browser each time I had to read something in Wikipedia :|
I've been using it about a year now, and it has radically improved my experience reading Wikipedia.
As you point out, it's had a smoothly working link preview feature all along, as well as a beautiful, usable reading experience. Not flashy or over-designed, just clean and elegant. I get a little caught off-guard now when I see a Wikipedia page without it.
One downside is that when I move the cursor along while reading an article all sorts of links now pop up at me. What I mean is using the mouse or trackpad to keep my place in the article; sometimes I drag the cursor to highlight the text, especially when skimming. Surely I'm not the only one who does this?
You're very much not alone, this comes up frequently here at hn, because other sites also frustratingly block this behaviour often by popping up "tweet this" links after highlighting.
It seems like the timer starts as soon as the pointer enters the link area. I would be happier if it was 250ms that starts when the pointer stops moving.
I'd imagine at the scale Wikipedia is operating, they'd have to be sensitive about accessibility features. Some might find it hard to keep the pointer at a compete stop and the 500ms timer seems to do the job pretty well.
The bigger issue in my opinion, at least from the point that it's the wrong behavior 10/10 times, is that these previews pop up when you are just scrolling. Obviously I did not want to read a preview when page under my cursor changes. There should be a check if the cursor had actually moved.
> People seem to like it — we are seeing 5,000 hits to our API a minute to serve those cards that show when you hover over any link.
Uhm, no. It just means that people are hovering over links with their mouse. It does not imply any opinion about the previews.
> The original idea was conceived four years ago
When I was active at Wikipedia/Wikibooks 12 years ago, there was a user script floating around that did the same thing, except I'm not sure if it included an image. (Mediawiki allows a user to define custom CSS and JS that get embedded in every page of their user session.)
I don't mean to express dislike or downplay the hard work that went into this feature, just to add some context.
> Uhm, no. It just means that people are hovering over links with their mouse. It does not imply any opinion about the previews.
When you evaluate features using engagement metrics, there are only two possibilities. If the metric is high, users love the feature. If the metric is low, users don't know the feature exists, and more alerts or "unread" badges must be added to help them learn.
The best way to run Windows Server is without a desktop installed, using PowerShell to manage it. Even one-offs. You might know this but it’s worth saying just in case. Also worth noting that some server applications assume/require a desktop during install or operation (usually because they’re trash).
> When you evaluate features using engagement metrics
No-no-no. Stop right there. "Engagement metrics" are the worst kind of metrics. Engagement means next to nothing. It just means that a user interacted with something. Was it good? Was it bad? Was it intentional? Was it by mistake? "Engagement metrics" answer none of that.
And yet... They are the easiest metrics to collect and too many companies use them as if they were meaningful.
But when the feature only needs you to hover over a link to activate (which people do anyway) you have no basis to claim that this is users "liking" the feature - it might just be noise from everyday regular navigation.
i was using wikipedia to with my son yesterday for a project and found it really annoying, so i'm in that list of people who hit the api but aren't in the list of people who seem to be "liking it"
"5000 hits to our API per minute" does not say anything about whether they're measuring in front of or behind the cache. For all intents and purposes, the cache's endpoint is the API endpoint.
And uncached hits only would be an even more worthless metric.
I, too, think either that number is wrong or this wasn't a feature available to all users.
I also agree that using this metric as affirmation the feature is liked is dangerous; count me among the many here inadvertantly contributing without enjoying the feature.
That was also my first reaction, but I did not mention it because judging this (in relation to pageviews) would require more knowledge about the audience, e.g. how many users are using a mouse at all (vs. a touch screen, or pure keyboard navigation).
That's less than one API hit per 17 English pages viewed - the overwhelming majority of the time, users do not use this feature at all, based on these numbers.
but how many of those views are on mobile devices?
this is a desktop feature. in general, mobile traffic > desktop traffic.
we’d need wikipedia’s browsing statistics be sure, since some sites see different ratios than others. What if 1:8 wikipedia visits are on desktop? That would make the 5K/minute much more significant.
The sample size for those graphs is 1% so you need to multiple that by 100. I personally checked the access logs to check they are consistent. That was where the confusion came from!
As far as I know the Lupin user-script was the foundation of the PagePreview feature. I guess the Reading group at WikiMedia rewrote the extension as part of MediaWiki core and tried to fix most edge cases on the way.
I personally do not care for the link preview feature as I am one of those people who like to hover over a link so I can see the url leads (which is also why I detest URL shorteners).
I also have to wonder how much bandwidth Wikipedia is going to end up using to display unneeded previews.
> I personally do not care for the link preview feature as I am one of those people who like to hover over a link so I can see the url leads
But that's exactly what these preview popups are for! A bit heavier than the plain URL, but much more useful and friendlier.
(EDIT: I see there's a bug in that it displays the preview even if you don't stop the mouse there. Still, this can be lighter than requiring people to click through to the full articles, considering the preview can tell you what you need or that the link is not relevant for you, and slows you going down the rabbit hole to more links. Maybe it should be located at the bottom of the screen like the plain URL popup though?)
> I also have to wonder how much bandwidth Wikipedia is going to end up using to display unneeded previews.
This is interesting. There's an external arrow for external links, so I'm still good with this use case for inspecting links; for internal links I've found myself hovering where I previously clicked (and loaded) an additional page at least 50% of the time. Where I'm OK with a quick paragraph description and can then decide if the linked paragraph requires / inspires a deeper read, about 50% of the time.
I think this is a net reduction of bandwidth for my personal use-case. Wide A/B testing would reveal more, obviously.
I do mean to express dislike, as I'm one of the millions of users giving Wikipedia a false metric and sense of satisfaction. I've seen the pop-up hundreds of times, and have considered it a hindrance to my process every single time.
Something that just happens accidentally is a bug, no matter how useful it might be if it were not happening accidentally.
When you go from reading the Atlantic, The Economist, The Washington Post... any content site... then begin to read a Wikipedia entry everything you know about reading an article no longer applies. You are now forced to change what you do.
This is just the most basic no no in web design - unplanned interactions, forcing a user to interact, forcing a user to actually think about the interface.
The developers have just forced every person who wants to consume content on Wikipedia to do it differently than on every other content site.
And there are literally countless millions of people who will have no idea how to disable it, who use computers every day but have no idea how to change something.
I just tested it and it's trivial to click. Are you actually having difficulty or just pretending it's hard so you can be condescending?
I think the best place for these controls are usually on the feature itself. I don't want to have to search in some independent preferences UI every I want to see if something can be tweaked, but it makes sense to offer it there as well.
> To ensure that these rates were not artificially low due to usability issues, we also confirmed in a separate qualitative test that users were indeed able to find and operate the disable functionality if they desired to disable Page previews.
(From their AB article)
“We thought the floating pop-up billboard showing you a preview of what’s inside when you glance at a building was a great feature as you walk down times square”
I sincerely regret the use of that statement "people seem to like it" in my post. I've now removed it as I worry this confuses my message so thank you for pointing it out. This really trivializes all the work that went into A/B testing this and how we measured success. I really recommend a read of https://www.mediawiki.org/wiki/Page_Previews#Success_Metrics...
Side note: the volume of traffic was also wrong by several magnitudes... actually 0.5 million)
My main motivation when writing this post was to share how small changes require magnitudes of effort not to express the merits of the feature. As a developer who works with product owners a lot and often get asked how I can build things quicker (I'm sure many can relate). I wanted to provide something useful to other developers that easy looking things are not actually easy to build, so thanks for flagging.
With regards to the user script, yeh that's been around for some time and was the seed for this idea. It's just taken a long time to get that from such a small audience to a mainstream one. It doesn't downplay it in my opinion, just shows how far we've come.
I am continually impressed by the markup Wikipedia generates.
They've managed to pull in pretty link previews, scientific notation and a grid layout, whilst building a highly nested markup structure?
The remarkable part? Wikipedia works great inside a text browser like elinks. It works great in a modern browser. Without sacrificing the interactivity people have grown to expect.
Using IE11 with the emulator switched to IE5 I can assure you, it works in IE5. At least the main layout, no popup though :D Still equal parts scary and astonishing.
Wikipedia is a content-heavy website first, webapp only second. If it's written correctly, then of course it's going to work in IE5 - maybe with some parts of the layout looking ugly, maybe with some margins being wrong, some media not being embedded, but generally should be usable.
Nowadays it's fine for a webdev to not test their pages on IE5, but when the page is done right, there is no reason for it not to work in IE5, lynx, w3m or Netscape Navigator. Really, it's just a webdeveloper's job done right.
Nope, it's not "done right". It's a table layout from the nineties. But probably there's an api so noone would have to scrape a wiki page, I never needed to do that fortunately :)
And what exactly is not "done right" about that? If it displays the information it's supposed to in a clean and organised way, and loads as fast as any other website, then I couldn't care less if it's a '90's table layout' or using whatever the hot new JS framework is.
Try to read today's Featured Article in a text-to-speech program. The markup is so mangled it can't even read a complete sentence because it breaks anytime the text links out.
NVDA - aka the "2nd choice" - but I think it may have been a configuration issue on my end as the markup on the page, after looking into why NVDA was struggling with it, is just a <p> with some <a> in it which NVDA should handle fine.
Just taking a quick look at the MacOS article posted earlier in this thread, the whole page uses tables exactly as tables should be used: for tables. How do you suppose tables should be implemented?
I've seen plenty of idiotic examples of tables being implemented with a bunch of styled <div>, probably because people keep parroting the idea that tables are bad because table based layouts are bad.
Wikipedia's markup is just terrible for trying to do any sort of scraping or analysis. I once tried to write a script that pulled the latest version of macOS from the sidebar of this article[1] and I gave up because it was difficult and brittle in a way that made it nearly impossible. I'd probably have better results parsing the HTML with a regex. Likewise, I know a friend who literally had to scrap an entire project because Wikipedia made it so difficult to get the text of an article without non-word entities in it.
Oh, I know. The markup is incomprehensible, but not to a render engine. It doesn't even seem to impact loading speed. It generates amazing machine-text.
As for scraping... Parsing the hell that is wikitext is all you can do. Or apparently, pipe it through a text browser.
That's an interesting idea, and one that I hadn't thought of, but I'd place it closer to matching HTML with regex than actual "parsing". I might use it if I'm really desperate though.
Have you tried using the mediawiki API [1], or any of the alternatives?[2]
I don't know how well they work, but the built-in parser should give you the text without markup. And since they switched to Parsoid [3] to support the Visual Editor, the've polished the wikitext formal specification so all instances of markup have a well-defined structure.
I've also had to parse Wikitext. The fact that there are 54 parsers in various states of disrepair listed here (and I have written a 55th) is not because people really like reinventing this wheel; it's because the complete task is absolutely insurmountable, and everyone needs a different piece of it solved.
The moment a template gets involved, the structure of an article is not well-defined. Templates can call MediaWiki built-ins that are implemented in PHP, or extensions that are implemented in Lua. Templates can output more syntax that depends on the surrounding context, kind of like unsafe macros in C. Error-handling is ad-hoc and certain pages depend on the undefined results of error handling. The end result is only defined by the exact pile of code that the site is running.
If you reproduce that exact pile of code... now you can parse Wikitext into HTML that looks like Wikipedia. That's probably not what you needed, and if it was, you could have used a web scraping library.
It's a mess and Visual Editor has not cleaned it up. The problem is that the syntax of Wikitext wasn't designed; like everything else surrounding Wikipedia, it happened by vague consensus.
{{Infobox website | name = Hacker News | logo = File:hackernews_logo.png | logo_size = 100px | type = [[News aggregator]] | url = {{url|https://news.ycombinator.com/}} | screenshot = File:hn_screenshot.png | registration = Optional | programming_language = [[Arc (programming language)|Arc]] | founder = [[Paul Graham (computer programmer)|Paul Graham]] | launch date = {{start date and age|2007|02|19}} | current status = Online | owner = [[Y Combinator (company)|Y Combinator]] | language = [[English language|English]] }} '''Hacker News''' is a [[social news]] website focusing on [[Computer Science|computer science]] and [[Startup company|entrepreneurship]]. It is run by [[Paul Graham (computer programmer)|Paul Graham]]'s investment fund and startup incubator, [[Y Combinator (company)|Y Combinator]]. In general, content that can be submitted is defined as "anything that gratifies one's intellectual curiosity".<ref>{{cite news | first = Paul | last = Graham | title = Hacker News Guidelines | url = http://ycombinator.com/newsguidelines.html | accessdate = 2009-04-29 }}</ref>
Which isn't very easy to parse either. From a cursory search, a better format doesn't seem possible without using a 3rd party like dbpedia.
I tried it for OSX, and it actually just returns a redirect statement to MacOS. So expect your tool consuming the API to break if you don't handle that in advance.
And then when trying it for MacOS, I can't actually find the version info anywhere in the response data. So you couldn't even get that data without scraping the page.
I hit the same thing recently, but that's basically what Wikidata was founded for - and I'm sure it has the latest version of macOS. It's really easy to fetch Wikidata data using the Wikidata API (my example: https://gitlab.com/Flockademic/whereisscihub/blob/master/ind... )
If you're just interested in a single value, using the SPARQL endpoint[0] is probably still more simple, since you don't have to filter out deprecated statements, for example.
I have a lot of goodwill toward wikimedia, but trying to use wiki data made me question my life choices. It doesn’t help that the official API endpoint Times out for anything mildly complicated. (As in a simple aggravation or sorting in the query)
https://en.wikipedia.org/wiki/MacOS has a footnote after the build number. That led me to https://developer.apple.com/news/releases/. I guess that doesn’t do semantic markup, and I didn’t look at the html at all, but it looks like it could provide you what you want fairly easily (likely not 100% reliably if automated, but chances are Wikipedia‘s somehow keeps up to date involves humans, too)
These are not hand-written pages, and their output is actually pretty clean compared to the crazy things I've tried to scrape. They have tons of APIs to access the backing data, and that should be your first stop.
Even if you insist on scraping, in your case you're just looking for a <td> whose immediately preceding <td> contains the text "Latest Release", and that's something any XPath-based scraper can give you straight out of the box[1].
A more resilient choice, if you still insist on (or have to use) scraping, is use the underlying template data - a regex is good enough in that case[2]
> Even if you insist on scraping, in your case you're just looking for a <td> whose immediately preceding <td> contains the text "Latest Release", and that's something any XPath-based scraper can give you straight out of the box
Sure, until it changes. Here it is in Jan 2016 when it was included in the opening paragraphs as the text "The latest version of OS X is <scrape here>".
Then around September 2016 it was moved into the sidebar using the template you linked. It looks like that template has been a consistent and reliable element for this since 2012, but then why was it only used in the OSX infobar in middle/late 2016? How else would anyone have known to find it?
And this is just OSX, what if OP wanted a web page that tracked the latest stable release for 20 different OS's? It ends up being pretty frequent maintenance for a small project.
I can't help feeling like there is a lot of tool blaming happening when the wrong tools were used in the first place. Wikipedia is pretty easy to scrape general blocks of text (I'm the author of an IRC bot which did link previewing, inc Wikipedia) but if you need specific, machine readable, passages which aren't going to change sentence structure over the years then you really should be getting that information from a proper API which cateloges that information. Even if it means having to buikd your own backend process which polls the websites for the 20 respective OSs individually so you can compile your own API.
Using an encyclopedia which is constantly being updated and is written to be read by humans as a stable API for machines is just insanity in my honest opinion.
Agreed. It's some mix of the XY problem plus the self-entitlement of "if I had the idea, then it should work."
Yet the classic HNer confuses this for inherent weaknesses in the underlying platform that they then need to share lest someone has something good to say about the platform. And they'll often be using words like "terrible", "garbage", and "I hate..."
But again, that's the wrong tool for the job so of course it's not going to be well suited. When it's that obvious of a wrong tool saying it's terrible is still kind of silly. It's like saying hammers are terrible at screwing things or cars make terrible trampolines.
> Even if it means having to build your own backend process which polls the websites for the 20 respective OSs individually so you can compile your own API
One caveat there, a page like that for MacOS doesn't exist. Scraping Wikipedia may be insane, but it's often the best option. You can scrape macrumors or something, but then you're still just parsing a site meant to be read by humans. You also still risk those 20 OS websites changing as much as Wikipedia.
Indeed but I was thinking of endpoints that have remained relatively static because they have been auto generated or a history of scraping. Some Linux distros have pages like that (even if it's just a mirror list).
But my preferred solution would be using whatever endpoint the respective platform uses for notifying their users of updates.
This strikes me as a solved problem but even if you can't find a ready to use API then I'd probably sign up to a few mailing lists, update my own endpoint manually and offer 3rd party access for a modest subscription.
Either way, scraping an encyclopedia for an English phrase to parse strikes me as the worst of all the possible solutions.
> I can't help feeling like there is a lot of tool blaming happening when the wrong tools were used in the first place.
Well, let's be fair: it's a bit surprising that a series of clear, readable key/value pairs in that Wikipedia "MacOS" infobox table can't be delivered by their API as JSON key/value pairs.
Using their API I can generate a JSON that has a big blob sandwiched in there. With the xmlfm format[1] that same blob has some nice-looking "key = value" pairs, too. Funny enough, those pairs for some reason exclude the "latest release" key.
Anyway, is there any case where a <tr> containing two columns in the Wikipedia infobox table doesn't hold a key/value pair? That just seems like such a valuable source of data to make available in simple JSON format.
Of course that is out of date and not in sync with the Wikipedia article. But there's public query services you can use to fetch stuff from there, you wouldn't need to parse html.
I think some of your issues are just inherent to the fact it's a wiki rather than the design of the markup. I mean I could edit the page just now from "Latest release" to "Latest version" or some such - it's just how wikis are.
That preview window has been a lifesaver. Honestly, as someone with ADD (or ADHD or whatever it's called these days), Wikipedia is a fucking minefield. I regularly have many Wikipedia articles open in sometimes ten or twenty different windows, each with anywhere from twenty to fifty tabs (I open a new window to delineate a completely new tangent, or if opening a new tab will cause the tab icons to disappear, otherwise I open a new tab in the current window -- I like tabs and make heavy use of Session Buddy and The Great Suspender). The preview window has really cut a lot of the extraneous BS out of my evening-destroying rabbit holes. I figured it was probably a difficult thing to develop, but if anyone involved with its creation passes by this lowly post, please know that you have my sincerest gratitude for making such a meaningful, useful tool.
But oddly enough, I found that Stackoverflow's "hot questions" or whatever thing is equally distracting.
I'm on a professional software developer network, and then I see a super interesting and legitimate question aaaaaannnddd... I'm in a rabbithole.
Don't know if it's helpful or not for you, but I found an extension that limits the maximum amount of tabs you can have open at a given moment, I set it to 3-4, it forces me to decide what link I do or do not want to click on. Makes me conscious of my unconscious browsing habits, might be useful for you too: https://addons.mozilla.org/en-US/firefox/addon/max-tabs-web-...
Oh, yes, SO's hot network questions is a hardcore distraction for me, too. Even for things I really don't care about! Like all those workplace drama questions (do so many people really think going to HR is going to do them any good at all?). The extension you linked is a very interesting concept, something I hadn't thought about using before. But I like the idea of paying a little bit of thought up front to help keep things from exploding down the line. Thanks!
The extremist view in this sense is that tabs in general are a bad model for navigation. If all the pages you choose to visit are first-level citizens in your environment (windows) then you think about them more actively. A browser like https://surf.suckless.org simplifies the browser abstraction well in these regards. I have found it is nearly impossible to get common browsers to work without tabs. This kind of endeavour probably begets a correct window manager like https://i3wm.org
I strongly agree. I had to stop using Surf because of its ancient rendering engine which butchers a lot of the sensible parts of the modern web, but I do miss the tabless part of it.
Edit: Also because it does not have Pentadactyl. My dream browser would be tabless and with sensible and powerful Vim bindings. Ideally built on an engine of Common Lisp too...
Have you looked at luakit? It's also based on webkit2gtk but it's extensible with Lua; I love the simplicity of suckless tools but when a functionality that seems good must be patched in it rarely ends well.
Also regarding Vi keybindings check out vimb maybe?
SO's hot network questions was so bad that I enabled my ad-blocker on SO and added a custom rule to hide that part of the page. At least now when I go to find an answer on SO without falling in a 30-60 min rabbit hole.
Omg, do you remember the milk boiled in electric kettle incident? That's the only time I've seen something get posted to Workplace and then have follow up questions go to (iirc) Interpersonal Skills and then Physics.
Been there. That's why I rarely comment on StackOverflow; it could easily become an addiction, and I can't exactly add it to /etc/hosts like I can other distractions!
Back in the day I learned Javascript to create a Firefox extension called budaneki[1] that does basically that. It got quite popular but I abandoned it later since I no longer needed and didn’t have a business model.
Today I’m very happy with the Safari on MacOS as you’re can preview links. I like the Wikipedia implementation a lot, but as a Safari, I’m already used to have it everywhere.
As another person with ADHD I've found the Tabs Outliner extension works best for me - it allows you to view tabs in a tree, label/group them, search for tabs, open/close tabs/groups/windows in one go, and most importantly the tree of tabs persists across sessions, so it can be used for bookmarking, suspending, organising and locating tabs depending on your usage - you can export it as HTML, and for a fee you can have it backed up on Google Cloud.
My work tree has somewhere over 500 items and my home one has several times that many, but it's easy to find things and keep them for later :)
I had no idea what this was talking about, and it appears to be because they've defaulted it to off for existing logged-in users. Maybe that's a way of reducing pushback.
In case you want to turn it on (or off), it's under Preferences->Appearance->Page previews. I think I'll probably leave it off personally. I like the previews that have already existed for a while in the mobile app, but on desktop not so sure.
That's what I meant, the previews are on by default for not-logged-in users, but appear to be off by default for logged-in users (or at least the preference was set to 'off' for me).
Perhaps you had enabled the beta feature and when the feature went to production the setting was kept enabled? Check under Preferences>Appearance>"Reading preferences".
Hmm, that could be it, since it's showing up as enabled for me. I have "Automatically enable all new beta features" on, so I guess I was just betaing this feature for a long time.
As the major other php wiki implementor, phpwiki, I can add my input to this.
I've implemented such an ajax page preview and also a page inliner (for expanding page trees via ajax) about 10 years ago. It was major work, because you essentially send a stripped down page in xml, so it needed some architectural changes to separate the various page templates properly.
In the end it needed 2 months work. phpwiki has a proper template design and its plugins cannot ever destroy a page layout or harm security.
mediawiki on the other side is horribly undesigned spaghetti code, with no proper templating and plugin integration, so it needed a few years more. It's like parsing html with regexp.
You can switch to the classic Navigation popups gadget,[1] which has a lot more configuration options (including links that shows the history or whole article text in the popup).
Wow. Had just read that and then saw the feature first time while browsing over a list page. Was moving my curser down the list and when ever I wanted to click a link, the above link hat popped up the layer, highjacking my click and leading me to the wrong page.
What a great way of destroying the user experience with a beautifully over-engineered feature that is utterly crap while actually trying to use the underlying page.
Thanks an awful lot for breaking the ability to use the site as I am used to and making it impossible to scan with the curser as anchor for my eyes.
I have a habit to select some text in a page when I'm reading it. And I hate websites that trying to immediately interact with me when I'm selecting a text (usually it's "fix a typo" or something similar).
Hate is a pretty strong word and kind of irrational.
Textselection was probably not intended as reading aid, so don't be disappointed if it is abused to actually, you know, select text to do something with it.
I agree, user scripts can be presumptuous and what not. I used to read with text selection the same way, and even reacted repulsed at advertisement hover pop-ups. But somehow I don't do it anymore, so I don't care as much.
"a [...] over-engineered feature that is utterly crap"
I'm not usually trying to police this kind of thing, but is there a way you could have phrased this without discrediting the work of a lot of people whose goal is to help others? I'm sure you'd get both a little bit hurt inside and defensive when someone in your team calls your code "utterly crap."
That said, I'm very sure they will be happy to hear about your feedback.
If the Wikimedia Foundation's goal was to help people, their time and money would be much better spent hiring professional / full-time editors to QC their content. Features like this hovering preview are peripheral to their goal of providing quality content that can also be updated by the general public
As someone who works on the team that built this feature, thank you for saying this.
As for feedback, we've had 4 years of it and welcome more.
Check out the FAQ and if you have something constructive to say, leave a note on the talk page.
Have you tried this in a more text based article? I was reading through something lengthy last night and I thought these pop ups were a lifesaver. They're like a TL;DR, you can avoid the context switch of actually clicking through. Sometimes even just the picture was enough to go "oh ok!".
Also personally I'm prone to going down a wikipedia rabbit hole and if last night was any indication, I think these popups will help stop that.
Sounds like you hit an edge case. Personally in that situation of a list of links I would just move the cursor outside the list. For me at least a minor change in behavior in some edge cases is worth what is otherwise a really awesome new feature.
I think I have these turned off, since in Safari I can Force Touch on links to preview them in a similar fashion. This has the benefit of letting me choose where I want to stop reading, instead of cutting a sentence off at some arbitrary point.
> You have to manually highlight phrases, even if it's already hyperlinked together, to force-click them
Huh, that's not the behavior I see with Force Touch. Hyperlinks automatically come together, and there's some sort of heuristic for detecting word clusters such as names or places.
I hate that I don't have the bar on the left to be able to switch to a different language conveniently. I use it all the time and I've no idea if it's even accessible at all in the mobile version. The mobile version also wastes a ton of screen real-estate but I guess that's fashionable these days.
I really enjoy Wikipedia but the #1 item on my feature wishlist is "redirect me towards the non-mobile version of the site when I click a mobile link on the desktop".
Yeah I know, I just didn't feel like going through all that while lying in bed at 4am. In any case I was thinking a cropped one would be better (hence the 'snip') — so here it is in all its desktop-edited glory:
Don't worry, they've also removed the ability to switch to other languages on the normal Wikipedia.
The sidebar shows some major languages (German, Hindi etc), but not the ones I'm trying to learn. Clicking the "more" button then has the most ridiculous UI ever: "Suggested languages"! What is the point of suggesting Yiddish to me?!
Sidenote, if—like me—you actually prefer the desktop theme, and would like the opposite: to use it on mobile. There is a mobile-friendly version of it in the works, but not yet available. You can try the in-progress version on your mobile here: https://test.wikipedia.org/wiki/Main_Page?mobilaction=toggle...
This is useful feature, but do note for some class of wikipedia surfing this is a net-negative:
For the case when I came across a subject I knew not a lot about I would keep queuing them up, leading to an array of pages I'd read about a topic, leading to a deeper understanding about the topic/domain. With this feature, the probability that a page would be queued up would go down.
Sometimes going down the wiki rabbit-hole is the best form of time-sink.
Not to mention another probable reason: Mediawiki's codebase is a mess and should be rebuilt from the ground up, if possible not in PHP. I once had to build an extension for it and it still gives me the creeps.
I'm not a fan of PHP as a language, but given the community has been working with PHP for 16 years, it would be odd to switch suddenly to an entirely new language and expect support and adoption.
The codebase is an absolute nightmare though, and a ground-up rebuild would be great. I wonder though about it having a similar affect to the Wordpress codebase: people who recognise the mess stay away completely, and people who don't contribute, leaving a contributor base who isn't really equipped (or extremely willing) to do a quality, maintainable rewrite.
I suspect any rewrite attempt would be doomed to end up being an unmaintainable behemoth.
A better approach would be to focus on secure integration tools and API entry-points, to make users less entrenched and solely dependent on the MW software.
I know some people don't appreciate it, but I really liked the preview. I feel it lets you get the gist of ancillary topics so you can understand the main article better, without having to switch contexts completely.
254 comments
[ 13.3 ms ] story [ 1089 ms ] threadIt's pretty cool :).
Apparently, it went into beta in 2014[1].
[1]: https://blog.wikimedia.org/2014/03/26/Hovercards-now-availab...
In any case, they had something 2 years ago but it was blocked by the community for not being good enough.
I've been using it about a year now, and it has radically improved my experience reading Wikipedia.
As you point out, it's had a smoothly working link preview feature all along, as well as a beautiful, usable reading experience. Not flashy or over-designed, just clean and elegant. I get a little caught off-guard now when I see a Wikipedia page without it.
Either way I love this feature.
https://stackoverflow.com/a/48527419/4398037
Documentation: https://en.wikipedia.org/api/rest_v1/#!/Page_content/get_pag...
Uhm, no. It just means that people are hovering over links with their mouse. It does not imply any opinion about the previews.
> The original idea was conceived four years ago
When I was active at Wikipedia/Wikibooks 12 years ago, there was a user script floating around that did the same thing, except I'm not sure if it included an image. (Mediawiki allows a user to define custom CSS and JS that get embedded in every page of their user session.)
I don't mean to express dislike or downplay the hard work that went into this feature, just to add some context.
When you evaluate features using engagement metrics, there are only two possibilities. If the metric is high, users love the feature. If the metric is low, users don't know the feature exists, and more alerts or "unread" badges must be added to help them learn.
If the metric is high, users are spending too much time on it. Also, it is responsible for every single frustration that users have with your product.
If the metric is low, the feature can be safely removed (see: Windows Start menu).
That turned out really well...
Whoever is responsible for putting the touch start screen on Windows Server is responsible for 90% of my frustrations...
Numbers are helpful, but sometimes they can be misinterpreted to mask the why.
No-no-no. Stop right there. "Engagement metrics" are the worst kind of metrics. Engagement means next to nothing. It just means that a user interacted with something. Was it good? Was it bad? Was it intentional? Was it by mistake? "Engagement metrics" answer none of that.
And yet... They are the easiest metrics to collect and too many companies use them as if they were meaningful.
https://m.mediawiki.org/wiki/Special:MyLanguage/Wikimedia_Re...
Not sure what it says about them that they're mentioning worthless numbers instead of the way more useful data they got back during this survey.
They had better metrics than just number of API requests
According to https://stats.wikimedia.org/EN/Sitemap.htm , English Wikipedia gets 88K views per minute.
I, too, think either that number is wrong or this wasn't a feature available to all users.
I also agree that using this metric as affirmation the feature is liked is dangerous; count me among the many here inadvertantly contributing without enjoying the feature.
This response is pure sophistry.
this is a desktop feature. in general, mobile traffic > desktop traffic.
we’d need wikipedia’s browsing statistics be sure, since some sites see different ratios than others. What if 1:8 wikipedia visits are on desktop? That would make the 5K/minute much more significant.
It soon became known as Navigation Popups[2], and is still available today.
The main documentation for Page Previews mentions Navigation Popups.[3]
[1]: https://en.wikipedia.org/wiki/User:Lupin/popups.js
[2]: https://en.wikipedia.org/wiki/Wikipedia:Tools/Navigation_pop...
[3]: https://www.mediawiki.org/wiki/Page_Previews
I also have to wonder how much bandwidth Wikipedia is going to end up using to display unneeded previews.
But that's exactly what these preview popups are for! A bit heavier than the plain URL, but much more useful and friendlier.
(EDIT: I see there's a bug in that it displays the preview even if you don't stop the mouse there. Still, this can be lighter than requiring people to click through to the full articles, considering the preview can tell you what you need or that the link is not relevant for you, and slows you going down the rabbit hole to more links. Maybe it should be located at the bottom of the screen like the plain URL popup though?)
This is interesting. There's an external arrow for external links, so I'm still good with this use case for inspecting links; for internal links I've found myself hovering where I previously clicked (and loaded) an additional page at least 50% of the time. Where I'm OK with a quick paragraph description and can then decide if the linked paragraph requires / inspires a deeper read, about 50% of the time.
I think this is a net reduction of bandwidth for my personal use-case. Wide A/B testing would reveal more, obviously.
Something that just happens accidentally is a bug, no matter how useful it might be if it were not happening accidentally.
When you go from reading the Atlantic, The Economist, The Washington Post... any content site... then begin to read a Wikipedia entry everything you know about reading an article no longer applies. You are now forced to change what you do.
This is just the most basic no no in web design - unplanned interactions, forcing a user to interact, forcing a user to actually think about the interface.
The developers have just forced every person who wants to consume content on Wikipedia to do it differently than on every other content site.
And there are literally countless millions of people who will have no idea how to disable it, who use computers every day but have no idea how to change something.
Just an incredible UX failure.
in my case every single time was by accident whilst moving the mouse around, off of other text I was trying to read.
frankly, its bloody annoying
it covered the text i was reading
the search for yet another "disable" setting begins....
I think the best place for these controls are usually on the feature itself. I don't want to have to search in some independent preferences UI every I want to see if something can be tweaked, but it makes sense to offer it there as well.
Your inability to figure out how to disable it was already counted as success!
> the rates of disabling the feature are negligibly low — a strong indicator that people find it useful.
https://medium.com/freely-sharing-the-sum-of-all-knowledge/w...
— bad UX designers in 2070
I sincerely regret the use of that statement "people seem to like it" in my post. I've now removed it as I worry this confuses my message so thank you for pointing it out. This really trivializes all the work that went into A/B testing this and how we measured success. I really recommend a read of https://www.mediawiki.org/wiki/Page_Previews#Success_Metrics... Side note: the volume of traffic was also wrong by several magnitudes... actually 0.5 million)
My main motivation when writing this post was to share how small changes require magnitudes of effort not to express the merits of the feature. As a developer who works with product owners a lot and often get asked how I can build things quicker (I'm sure many can relate). I wanted to provide something useful to other developers that easy looking things are not actually easy to build, so thanks for flagging.
With regards to the user script, yeh that's been around for some time and was the seed for this idea. It's just taken a long time to get that from such a small audience to a mainstream one. It doesn't downplay it in my opinion, just shows how far we've come.
Thanks for reading.
They've managed to pull in pretty link previews, scientific notation and a grid layout, whilst building a highly nested markup structure?
The remarkable part? Wikipedia works great inside a text browser like elinks. It works great in a modern browser. Without sacrificing the interactivity people have grown to expect.
Nowadays it's fine for a webdev to not test their pages on IE5, but when the page is done right, there is no reason for it not to work in IE5, lynx, w3m or Netscape Navigator. Really, it's just a webdeveloper's job done right.
I've seen plenty of idiotic examples of tables being implemented with a bunch of styled <div>, probably because people keep parroting the idea that tables are bad because table based layouts are bad.
[1] https://en.wikipedia.org/wiki/MacOS
As for scraping... Parsing the hell that is wikitext is all you can do. Or apparently, pipe it through a text browser.
That's an interesting idea, and one that I hadn't thought of, but I'd place it closer to matching HTML with regex than actual "parsing". I might use it if I'm really desperate though.
I don't know how well they work, but the built-in parser should give you the text without markup. And since they switched to Parsoid [3] to support the Visual Editor, the've polished the wikitext formal specification so all instances of markup have a well-defined structure.
[1] https://www.mediawiki.org/wiki/API:Parsing_wikitext
[2] https://www.mediawiki.org/wiki/Alternative_parsers
[3] https://www.mediawiki.org/wiki/Parsoid
The moment a template gets involved, the structure of an article is not well-defined. Templates can call MediaWiki built-ins that are implemented in PHP, or extensions that are implemented in Lua. Templates can output more syntax that depends on the surrounding context, kind of like unsafe macros in C. Error-handling is ad-hoc and certain pages depend on the undefined results of error handling. The end result is only defined by the exact pile of code that the site is running.
If you reproduce that exact pile of code... now you can parse Wikitext into HTML that looks like Wikipedia. That's probably not what you needed, and if it was, you could have used a web scraping library.
It's a mess and Visual Editor has not cleaned it up. The problem is that the syntax of Wikitext wasn't designed; like everything else surrounding Wikipedia, it happened by vague consensus.
For example https://en.wikipedia.org/w/api.php?action=query&prop=revisio...
returns
Which isn't very easy to parse either. From a cursory search, a better format doesn't seem possible without using a 3rd party like dbpedia.https://www.quora.com/Does-the-Wikipedia-API-give-structured...
I tried it for OSX, and it actually just returns a redirect statement to MacOS. So expect your tool consuming the API to break if you don't handle that in advance.
https://en.wikipedia.org/w/api.php?action=query&prop=revisio...
And then when trying it for MacOS, I can't actually find the version info anywhere in the response data. So you couldn't even get that data without scraping the page.
https://en.wikipedia.org/w/api.php?action=query&prop=revisio...
[0] http://tinyurl.com/ya957wem
Alternatively, buy a Mac, set it to auto-update, have cron or launchd reboot it reboot it twice a day, and read the version info from the CLI after rebooting (https://coderwall.com/p/4yz8dq/determine-os-x-version-from-t...)
These are not hand-written pages, and their output is actually pretty clean compared to the crazy things I've tried to scrape. They have tons of APIs to access the backing data, and that should be your first stop.
Even if you insist on scraping, in your case you're just looking for a <td> whose immediately preceding <td> contains the text "Latest Release", and that's something any XPath-based scraper can give you straight out of the box[1].
A more resilient choice, if you still insist on (or have to use) scraping, is use the underlying template data - a regex is good enough in that case[2]
[1] e.g. http://html-agility-pack.net/ [2] https://en.wikipedia.org/w/index.php?title=Template:Latest_s...
Sure, until it changes. Here it is in Jan 2016 when it was included in the opening paragraphs as the text "The latest version of OS X is <scrape here>".
https://en.wikipedia.org/w/index.php?title=MacOS&oldid=69769...
And here it is in June 2016 where that sentence was changed to "The latest software version is <scrape here>"
https://en.wikipedia.org/w/index.php?title=MacOS&oldid=72528...
Then around September 2016 it was moved into the sidebar using the template you linked. It looks like that template has been a consistent and reliable element for this since 2012, but then why was it only used in the OSX infobar in middle/late 2016? How else would anyone have known to find it?
And this is just OSX, what if OP wanted a web page that tracked the latest stable release for 20 different OS's? It ends up being pretty frequent maintenance for a small project.
Using an encyclopedia which is constantly being updated and is written to be read by humans as a stable API for machines is just insanity in my honest opinion.
Yet the classic HNer confuses this for inherent weaknesses in the underlying platform that they then need to share lest someone has something good to say about the platform. And they'll often be using words like "terrible", "garbage", and "I hate..."
> Wikipedia's markup is just terrible for trying to do any sort of scraping or analysis.
I'd like to emphasize the "for trying to do any sort of scraping or analysis." Should we instead lie and say it's wonderful for scraping?
It's not an insult, it's the truth. If you want to build an app that automatically parses Wikipedia, it will not be easy.
One caveat there, a page like that for MacOS doesn't exist. Scraping Wikipedia may be insane, but it's often the best option. You can scrape macrumors or something, but then you're still just parsing a site meant to be read by humans. You also still risk those 20 OS websites changing as much as Wikipedia.
But my preferred solution would be using whatever endpoint the respective platform uses for notifying their users of updates.
This strikes me as a solved problem but even if you can't find a ready to use API then I'd probably sign up to a few mailing lists, update my own endpoint manually and offer 3rd party access for a modest subscription.
Either way, scraping an encyclopedia for an English phrase to parse strikes me as the worst of all the possible solutions.
Well, let's be fair: it's a bit surprising that a series of clear, readable key/value pairs in that Wikipedia "MacOS" infobox table can't be delivered by their API as JSON key/value pairs.
Using their API I can generate a JSON that has a big blob sandwiched in there. With the xmlfm format[1] that same blob has some nice-looking "key = value" pairs, too. Funny enough, those pairs for some reason exclude the "latest release" key.
Anyway, is there any case where a <tr> containing two columns in the Wikipedia infobox table doesn't hold a key/value pair? That just seems like such a valuable source of data to make available in simple JSON format.
[1] https://en.wikipedia.org/w/api.php?action=query&prop=revisio...
Of course that is out of date and not in sync with the Wikipedia article. But there's public query services you can use to fetch stuff from there, you wouldn't need to parse html.
But oddly enough, I found that Stackoverflow's "hot questions" or whatever thing is equally distracting.
I'm on a professional software developer network, and then I see a super interesting and legitimate question aaaaaannnddd... I'm in a rabbithole.
Don't know if it's helpful or not for you, but I found an extension that limits the maximum amount of tabs you can have open at a given moment, I set it to 3-4, it forces me to decide what link I do or do not want to click on. Makes me conscious of my unconscious browsing habits, might be useful for you too: https://addons.mozilla.org/en-US/firefox/addon/max-tabs-web-...
Edit: Also because it does not have Pentadactyl. My dream browser would be tabless and with sensible and powerful Vim bindings. Ideally built on an engine of Common Lisp too...
Also regarding Vi keybindings check out vimb maybe?
What’s frustrating is that this has been brought up as an issue on StackExchange and rejected as WONTFIX.
Edit: more on this: https://meta.stackexchange.com/questions/222721. Linked in one of the answer is an extension: https://chrome.google.com/webstore/detail/sidebaroverflow/lh...
There are also other solutions on that page.
They're like a soap opera for geeks
Just kidding, know how those rabbitholes are.
Today I’m very happy with the Safari on MacOS as you’re can preview links. I like the Wikipedia implementation a lot, but as a Safari, I’m already used to have it everywhere.
[1] https://addons.mozilla.org/en-US/firefox/addon/budaneki/
My work tree has somewhere over 500 items and my home one has several times that many, but it's easy to find things and keep them for later :)
In case you want to turn it on (or off), it's under Preferences->Appearance->Page previews. I think I'll probably leave it off personally. I like the previews that have already existed for a while in the mobile app, but on desktop not so sure.
I see these even when logged out.
I've implemented such an ajax page preview and also a page inliner (for expanding page trees via ajax) about 10 years ago. It was major work, because you essentially send a stripped down page in xml, so it needed some architectural changes to separate the various page templates properly. In the end it needed 2 months work. phpwiki has a proper template design and its plugins cannot ever destroy a page layout or harm security.
mediawiki on the other side is horribly undesigned spaghetti code, with no proper templating and plugin integration, so it needed a few years more. It's like parsing html with regexp.
But like my mom's spaghetti, it's my favorite. :)
Think you can make it better? https://wikimediafoundation.org/wiki/Work_with_us
I work for the Wikimedia Foundation, but this subtle snark is my own, and may not reflect the views of the Foundation.
I couldn't care less for the huge image in the popup layer, scrollability and extra content would be much nicer.
https://en.wikipedia.org/wiki/Wikipedia:Tools/Navigation_pop...
What a great way of destroying the user experience with a beautifully over-engineered feature that is utterly crap while actually trying to use the underlying page.
Thanks an awful lot for breaking the ability to use the site as I am used to and making it impossible to scan with the curser as anchor for my eyes.
Textselection was probably not intended as reading aid, so don't be disappointed if it is abused to actually, you know, select text to do something with it.
I agree, user scripts can be presumptuous and what not. I used to read with text selection the same way, and even reacted repulsed at advertisement hover pop-ups. But somehow I don't do it anymore, so I don't care as much.
I'm not usually trying to police this kind of thing, but is there a way you could have phrased this without discrediting the work of a lot of people whose goal is to help others? I'm sure you'd get both a little bit hurt inside and defensive when someone in your team calls your code "utterly crap."
That said, I'm very sure they will be happy to hear about your feedback.
As for feedback, we've had 4 years of it and welcome more. Check out the FAQ and if you have something constructive to say, leave a note on the talk page.
https://www.mediawiki.org/wiki/Page_Previews#FAQ
Also personally I'm prone to going down a wikipedia rabbit hole and if last night was any indication, I think these popups will help stop that.
Sounds like you hit an edge case. Personally in that situation of a list of links I would just move the cursor outside the list. For me at least a minor change in behavior in some edge cases is worth what is otherwise a really awesome new feature.
Wikipedia's is simple. And you can just disable it. Win/win.
Huh, that's not the behavior I see with Force Touch. Hyperlinks automatically come together, and there's some sort of heuristic for detecting word clusters such as names or places.
https://en.m.wikipedia.org/wiki/Main_Page
for desktop these days.
I much prefer it to the standard version.
I really enjoy Wikipedia but the #1 item on my feature wishlist is "redirect me towards the non-mobile version of the site when I click a mobile link on the desktop".
I'd snip a screenshot, but I'm on mobile...
If you've got a smart phone chances are you can probably take a screenshot, only hassle then is uploading it somewhere.
https://i.imgur.com/XQKiEIp.png
The sidebar shows some major languages (German, Hindi etc), but not the ones I'm trying to learn. Clicking the "more" button then has the most ridiculous UI ever: "Suggested languages"! What is the point of suggesting Yiddish to me?!
This feature is a godsend, I no longer need to scroll hundreds of languages to find the one I need.
I can see it sets uls-previous-languages in local storage, but if it had been working like this before today, I'm sure it wouldn't have annoyed me.
Sidenote, if—like me—you actually prefer the desktop theme, and would like the opposite: to use it on mobile. There is a mobile-friendly version of it in the works, but not yet available. You can try the in-progress version on your mobile here: https://test.wikipedia.org/wiki/Main_Page?mobilaction=toggle...
https://stackoverflow.com/a/48527419/4398037
Documentation: https://en.wikipedia.org/api/rest_v1/#!/Page_content/get_pag...
It wouldn't surprise me if they could. Not to say that automation isn't great, and for this purpose probably ideal.
But, selecting a thumbnail for every Wikipedia article seems like something the community could easily have done.
For the case when I came across a subject I knew not a lot about I would keep queuing them up, leading to an array of pages I'd read about a topic, leading to a deeper understanding about the topic/domain. With this feature, the probability that a page would be queued up would go down.
Sometimes going down the wiki rabbit-hole is the best form of time-sink.
I'm not a fan of PHP as a language, but given the community has been working with PHP for 16 years, it would be odd to switch suddenly to an entirely new language and expect support and adoption.
The codebase is an absolute nightmare though, and a ground-up rebuild would be great. I wonder though about it having a similar affect to the Wordpress codebase: people who recognise the mess stay away completely, and people who don't contribute, leaving a contributor base who isn't really equipped (or extremely willing) to do a quality, maintainable rewrite.
I suspect any rewrite attempt would be doomed to end up being an unmaintainable behemoth.
A better approach would be to focus on secure integration tools and API entry-points, to make users less entrenched and solely dependent on the MW software.
https://grafana.wikimedia.org/dashboard/db/reading-web-page-...
The variety of metrics and the sheer volume of those is awesome to explore! (e.g. frequent peaks to 20M requests per minute)
You can see the specific dashboard for the Page Preview feature here (Last 6 hours):
https://grafana.wikimedia.org/dashboard/db/eventlogging-sche...