k Becoming a hair stylist / Kate Bolick By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery TT955.L46 B65 2019 Full Article
k Sweet Home Cafe cookbook: a celebration of African American cooking / Albert G. Lukas and Jessica B. Harris, with contributions by Jerome Grant ; foreword by Lonnie G. Bunch III ; introduction by Jacquelyn D. Serwer ; in association with the National Muse By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery TX715.2.A47 L85 2018 Full Article
k Christopher Kimball's Milk Street: Tuesday nights / Christopher Kimball, J.M. Hirsch, Matthew Card, Michelle Locke, Jennifer Baldino Cox, and the editors and cooks of Milk Street ; photography by Connie Miller By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery TX833.5.K55 2018 Full Article
k A quick & easy guide to they/them pronouns / Archie Bongiovanni & Tristan Jimerson ; [lettered by Crank! ; edited by Ari Yarwood] By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery P279.B64 2018 Full Article
k Say nothing: a true story of murder and memory in Northern Ireland / Patrick Radden Keefe By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery HV6574.G7 K44 2019 Full Article
k Ottolenghi Simple: a cookbook / Yotam Ottolenghi, with Tara Wigley and Esme Howarth ; photographs by Jonathan Lovekin By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery TX833.5.O88 2018 Full Article
k Between Harlem and Heaven: Afro-Asian-American cooking for big nights, weeknights, & every day / J.J. Johnson and Alexander Smalls ; with Veronica Chambers ; photography by Beatriz da Costa ; food styling by Roscoe Betsill By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery TX715.2.A47 J64 2018 Full Article
k Womanish Black girls: women resisting the contradictions of silence and voice / edited by Dianne Smith, Loyce Caruthers, and Shaunda Fowler ; with a foreword by Joy James By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery HQ1163.W66 2019 Full Article
k Black is the body: stories from my grandmother's time, my mother's time, and mine / Emily Bernard By library.mit.edu Published On :: Sun, 11 Aug 2019 07:40:15 EDT Browsery E185.97.B337 A3 2019 Full Article
k Kicks: the great American story of sneakers / by Nicholas Smith By library.mit.edu Published On :: Sun, 18 Aug 2019 07:40:03 EDT Browsery GV749.S64 S58 2018 Full Article
k Trickster feminism / Anne Waldman By library.mit.edu Published On :: Sun, 18 Aug 2019 07:40:03 EDT Browsery PS3573.A4215 A6 2018 Full Article
k Hacking life: systematized living and its discontents / Joseph M. Reagle Jr By library.mit.edu Published On :: Sun, 1 Sep 2019 07:40:23 EDT Browsery HM851.R432 2019 Full Article
k Blueprint: how DNA makes us who we are / Robert Plomin By library.mit.edu Published On :: Sun, 15 Sep 2019 07:36:30 EDT Browsery QH438.7.P64 2019 Full Article
k Reluctant power: networks, corporations, and the struggle for global governance in the early 20th century / Rita Zájacz By library.mit.edu Published On :: Sun, 15 Sep 2019 07:36:30 EDT Browsery P95.8.Z267 2019 Full Article
k Herewith the clues / edited and designed by Boy Vereecken ; short story by Shumon Basar ; text by Laura Herman By library.mit.edu Published On :: Sun, 15 Sep 2019 07:36:30 EDT Browsery PN3448.D4 H47 2018 Full Article
k Reckoning: the epic battle against sexual abuse and harassment / Linda Hirshman By library.mit.edu Published On :: Sun, 22 Sep 2019 06:53:20 EDT Browsery HQ1237.5.U6 H57 2019 Full Article
k How long 'til black future month? / N.K. Jemisin By library.mit.edu Published On :: Sun, 22 Sep 2019 06:53:20 EDT Browsery PS3610.E46 A6 2018 Full Article
k The software arts / Warren Sack By library.mit.edu Published On :: Sun, 29 Sep 2019 06:46:09 EDT Browsery QA76.S2164 2019 Full Article
k Rest: why you get more done when you work less / Alex Soojung-Kim Pang By library.mit.edu Published On :: Sun, 6 Oct 2019 06:45:03 EDT Browsery QP301.P336 2018 Full Article
k Searching for Sylvie Lee: a novel / Jean Kwok By library.mit.edu Published On :: Sun, 6 Oct 2019 06:45:03 EDT Browsery PS3611.W65 S43 2019 Full Article
k Chicana movidas: new narratives of activism and feminism in the movement era / edited by Dionne Espinoza, María Eugenia Cotera, Maylei Blackwell By library.mit.edu Published On :: Sun, 6 Oct 2019 06:45:03 EDT Browsery E184.M5 C395 2018 Full Article
k Julep: Southern cocktails refashioned / Alba Huerta & Marah Stets ; photography by Julie Soefer By library.mit.edu Published On :: Sun, 13 Oct 2019 06:44:50 EDT Browsery TX951.H75 2018 Full Article
k Basque country: a culinary journey through a food lover's paradise / Marti Buckley ; photographs by Simon Bajada By library.mit.edu Published On :: Sun, 13 Oct 2019 06:44:50 EDT Browsery TX723.5.B36 B83 2018 Full Article
k Genetics in the madhouse: the unknown history of human heredity / Theodore M. Porter By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery HQ755.35.P67 2018 Full Article
k The dog: a natural history / Ádám Miklósi with Tamás Faragó [and five others] By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery SF422.5.M545 2018a Full Article
k The chicken: a natural history / Joseph Barber with Janet Daly, Catrin Rutland, Mark Hauber & Andy Cawthray By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery SF487.B185 2018 Full Article
k Unnatural selection / Katrina van Grouw By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery SF105.V24 2018 Full Article
k The House of Government: a saga of the Russian Revolution / Yuri Slezkine By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery DK601.S57 2017 Full Article
k Slime: how algae created us, plague us, and just might save us / Ruth Kassinger By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery QK566.K37 2019 Full Article
k Searching for inter-racial, interstitial, intersectional, and interstates meeting spaces: Africa vs North America / edited by Tendai Rinos Mwanaka By library.mit.edu Published On :: Sun, 20 Oct 2019 06:52:00 EDT Browsery PN6071.A45 S437 2018 Full Article
k Hanging out, messing around, and geeking out: kids living and learning with new media / Mizuko Ito, Sonja Baumer, Matteo Bittanti, danah boyd, Rachel Cody, Becky Herr-Stephenson, Heather A. Horst, Patricia G. Lange, Dilan Mahendran, Katynka Z. Martín By library.mit.edu Published On :: Sun, 27 Oct 2019 06:41:41 EDT Browsery HQ799.2.M352 H36 2019 Full Article
k Insomniac dreams: experiments with time / by Vladimir Nabokov ; compiled, edited, & with commentaries by Gennady Barabtarlo By library.mit.edu Published On :: Sun, 3 Nov 2019 06:37:50 EST Browsery PS3527.A15 Z46 2018 Full Article
k The new mind readers: what neuroimaging can and cannot reveal about our thoughts / Russell A. Poldrack By library.mit.edu Published On :: Sun, 10 Nov 2019 06:46:05 EST Browsery RC349.D52 P65 2018 Full Article
k Linkbait 43 By www.quirksmode.org Published On :: Tue, 25 Jun 2019 14:39:49 +0100 Back from hiatus. I’m starting up serious planning and writing of “CSS for JavaScripters” so this is a CSS-heavy linkbait, mostly filled with reminders to myself. Every-layout.dev is easily the most important CSS resource to be unveiled in recent months. (In fact, it was unveiled at CSS Day, which was a nice touch.) Serious, in-depth, algorithmic discussion of several popular CSS layouts and how to construct them with care. The 2019 State of CSS survey results. Contains several interesting gems. The figure that really surprised me is that 85% of the respondents is male. I thought CSS had a slightly higher ratio of women. Then again, maybe it’s the marketing of the survey that caused the disparity. (I never heard of it until I saw the results.) Or my gender guesstimate is just wrong. The CSS mindset: [...] the declarative nature of CSS makes it particularly difficult to grasp, especially if you think about it in terms of a “traditional” programming language. Other programming languages often work in controlled environments, like servers. They expect certain conditions to be true at all times [...] CSS on the other hand works in a place that can never be fully controlled, so it has to be flexible by default. It’s less about “programming the appearance” and more about translating a design into a set of rules that communicate the intent behind it. Leave enough room, and the browser will do the heavy lifting for you. Interesting turn of phrase that echoes my own thoughts on the subject. Expect to find this in The Book. Excellent overview of render blocking in CSS and how to avoid it. It’s simple, really, but there will be countless CSS programmers who need this sort of tutorials. Will also go in The Book. An older article, but Harry Roberts’s Cyclomatic Complexity: Logic in CSS remains one cornerstone of CSS understanding, and teaching. This one is mostly meant to remind myself of its existence; you probably already read it. Facebook lost 20% of its usage (likes, shares, and such) since the Cambridge Analytica scandal broke. This sounds great in theory, but what if the people who are harder to dupe are the ones who stop using Facebook, while the more gullible people remain? The average Facebook user would become more stupid, and Facebook would become even better at influencing its users. Also, Facebook should be regulated. Not as a media company, but as a drug. We all know third-party scripts are among the worst offenders when it comes to website performance. But how bad is it actually, and who are the worst culprits? Third-party Web provides useful answers and treeviews. Excellent overview of WebViews, their purpose, their tricky bits, and their diversity. Required reading for all five people who care about the browser market. [In Dutch] List of websites closed on Sundays. In an ultimate meta-move this list is only available on Sundays. (And why are these websites closed? Because their proprietors subscribe to the strict Dutch Reformed view that Sundays are not for media enjoyment. See this article about the SGP political party for more background information.) You shouldn’t do thing with tool, you should do other thing Have a tip for the next Linkbait? Or a comment on this one? Let me know (or here or here). Full Article Linkbait
k Book draft: overflow chapter By www.quirksmode.org Published On :: Thu, 17 Oct 2019 15:34:31 +0100 I am going to write a “CSS for JavaScripters” book, and therefore I need to figure out how to explain CSS to JavaScripters. This series of article snippets are a sort of try-out — pre-drafts I’d like to get feedback on in order to figure out if I’m on the right track. Today I present the first draft of the short overflow article. Feedback would be greatly appreciated. *** START EXCERPT *** "Web design is a constant battle against overflow." - Rachel Andrew Not knowing how tall something is is fundamental to web design. For instance, you cannot know in advance how long the texts will be that will be shown in your site. What happens if if the final text is much longer than the fake text you used during production? Or what if there's a wide image you hadn't counted on? In both cases the content of your blocks will become larger than you expected, and if you've given them a fixed width or height that might lead to overflow: content escaping from the block — or at least, attempting to escape. The easiest way to avoid overflow is not giving your blocks a fixed height in the first place. If you allow them to grow as tall and wide as they need to be you avoid quite a few problems. This short chapter discusses how to deal with overflow. CSS Is Awesome The most famous example of overflow is the "CSS is Awesome" meme that's been around ever since 2009. Born out of one web developer's frustration with CSS's overflow behavior, this meme took on a life of its own and became an example of what was wrong with CSS. Why would the 'Awesome' flow out of the box? Why should CSS be so complicated? Couldn't the box simply grow to contain the 'Awesome'? Sure it could! And it would, except that you specifically instructed the box not to by giving it a fixed width. You could have used min-width or flexbox — both are good in dealing with unexpectedly large content — but you didn't. No doubt you had good reasons, but since it was your decision, the onus of solving any resulting issues is on you. In these cases, the overflow declaration is your friend. The overflow declaration The overflow declaration allows you to define what to do with content that overflows its box. It has four values, visible, hidden, scroll, and auto. The default value is visible, and that's the one that causes the 'CSS is Awesome' effect. overflow: visible means that you allow the content to spill out of its block. Although that keeps the content readable, it also means the content might overlap with the block below or to the right of the affected block, which can be very ugly. When calculating the position of other blocks, the browsers' layout algorithm uses the width and height of the box you defined, and disregards the fact that content may be spilling out of the block. In fact, at that point in the algorithm the browsers have no way of knowing that the content overflows. [FACT-CHECK THIS] Thus, when calculating the position of the next block the browsers place the block exactly where it should be given the height of the previous block and the margins of both. They do not pay the overflow any mind, wbich may cause the overflowing content to overlap the content of the next block. Sometimes this is what you want — or rather, what you’re forced to live with. More often, though, you want to either generate scrollbars or hide the overflowing content entirely. overflow: hidden hides the overflowing content. This creates a pleasing visual effect, but now there's no way for the user to get to the content. Therefore, hidden is something of a nuclear option: necessary in a few cases, but to be avoided whenever there's a better way of handling the situation. overflow: scroll and overflow: auto generate scrollbars. The auto value generates scrollbars when they're necessary, while scroll scroll value always does so, even when no scrollbars are needed. If scroll always generates those ungainly scrollbars, even when they're not needed, and auto only generates them when necessary, why would you ever use scroll? The reason is that a content change that generates or removes a scrollbar can be quite ugly. Suppose you have a block with overflow: auto that initially does not need scrollbars. Then a script adds a lot of content to the block, causing overflow, and thus the generation of a scrollbar. Not only is this quite ugly in itself, but on some systems [BE MORE SPECIFIC] the scrollbar itself takes up about 16px of width and thus narrows the content area, which may lead to the reflowing of the text and even more overflow. And when the content is removed, all of that happens in reverse. All this can give a quite jarring effect. For instance, see the position of the word "serves" in the two screenshots below. The creation of a scrollbar forces it to the next line, and that might be something you want to avoid. The easiest way of preventing that effect is by giving the block overflow: scroll from the outset. Sure, the scrollbars may not be needed, but if they are there's no moving around of the content. Block Formatting Context [This is a practical tip that readers need to know about.] An overflow value of anything but visible will create a new block formatting context. In old-fashioned float-based layouts it is sometimes necessary to create a block formatting context in order to contain a bunch of floats. (Just nod wisely for the moment; we'll get back to this.) The easiest way of doing this is to add overflow: auto to the block, even though the block has no set height and the content will never actually overflow. So if you're working in an old codebase and encounter a bunch of unexplained overflow: auto (or hidden) declarations on blocks that have height: auto, remember that they're meant to keep a float-based layout working properly. Only remove those overflows once you switched from floats to a modern layout system like grid or flex. If you do not intend to switch, leave the overflows in place as well. Related declarations In addition to the overflow declaration, there are also overflow-x and overflow-y declarations. They do what you'd expect them to do: they set the overflow on only the horizontal x-axis, or only the vertical y-axis. Otherwise they work exactly like overflow. Also, iOS supports overflow-scrolling: touch, which enables momentum-based scrolling for overflowing elements. Without this declaration (or, more precisely, with the default overflow-scrolling: auto in place), overflowing elements scroll normally, i.e. they stop scrolling as soon as your finger leaves the screen. Android devices always use momentum-based scrolling, so they do not need this declaration. It doesn't hurt them, either, so it's perfectly safe to use. [TEST] *** END EXCERPT *** The ending is a bit abrupt, but I'm not entirely sure what to say next. Also, I'm not yet sure which chapter will come next, so I can't write a segue. Anyway, please let me know what you think. I'm especially looking for feedback from JavaScript developers who are not all that good at CSS. Full Article CSS for JavaScripters
k New browser on the block: Flow By www.quirksmode.org Published On :: Tue, 21 Jan 2020 12:01:18 +0100 2020 is only three weeks old, but there has been a lot of browser news that decreases rendering engine diversity. It’s time for some good news on that front: a new rendering engine, Flow. Below I conduct an interview with Piers Wombwell, Flow’s lead developer. This year alone, on the negative side Mozilla announced it’s laying off 70 people, most of whom appear to come from the browser side of things, while it turns out that Opera’s main cash cow is now providing loans in Kenya, India, and Nigeria, and it is looking to use 'improved credit scoring' (from browsing data?) for its business practices. On the positive side, the Chromium-based Edge is here, and it looks good. Still, rendering engine diversity took a hit, as we knew it would ever since the announcement. So let’s up the diversity a notch by welcoming a new rendering engine to the desktop space. British company Ekioh is working on a the Flow browser, which sports a completely new multi-threaded rendering engine that does not have any relation to WebKit, Gecko, or Blink. The last new rendering engine to come to the desktop was KHTML back in 2000 in the form of the Konqueror browser. Later Apple adapted KHTML into WebKit. And then Google forked WebKit to become Blink. And ... well, almost everyone browses with a KHTML descendant now. Let’s not forget how it all began. It is far too early to tell if Flow will have a similar impact, but the news was reason enough for me to conduct an interview with lead developer Piers Wombwell. PPK: Hi Piers, could you please introduce yourself? PW: I’m Piers Wombwell, the co-founder of Ekioh, the company behind the Flow browser. I’m also the architect of the project and one of the software engineers on it. Why did Ekioh decide to create a new browser? In 2006 we started developing an SVG engine for user interfaces in the set-top box market. No existing browser was full-featured, or was fast enough on the low-powered set-top box chips available at the time. User interface developers wanted HTML, but couldn’t get the performance they needed, especially in animations. SVG seemed better suited to user interfaces as there was no time spent in complex box model layout. A user interface running on our SVG engine was much faster than any of the HTML browsers at the time and was very popular in this niche market with millions of STBs running it across most continents. Over the next six or so years, STB chips started to move to multi-core GPUs, at the same as TV resolutions were moving to 4K. HTML was becoming fast enough on set-top boxes. On the other hand, a 4K TV has four times as many pixels as an HD TV, and a multi-core GPU doesn't make each individual core any faster. Thus, a single threaded browser won’t really see any significant speed improvements. That's why we decided to make Flow multi-threaded. Dabbling with HTML/CSS layout seemed equally fun technically as building an SVG browser, so that’s been the main focus since. It started off being an XHTML/CSS layout engine on top of SVG, but we got carried away and over time moved to full HTML. But, really, I suppose we did it because it would be fun to do it. How far along is Flow? Can people download it and use it right now? Well, it can render and interact with Gmail quite well. It’s pretty much perfect on a few sites we’ve targeted as focuses during development, but it struggles with many others. We only started implementing HTML forms in the last few months in order to log into Gmail. It’s not yet available for download as I think we need to address the usability of it first. It currently needs a configuration file tailored to your computer, and has no toolbar. You don't want a toolbar for TV interfaces, so we never implemented one. For which platforms is Flow currently available? For Mac, Linux, and Android. Plus, of course, for the set-top boxes that are our main market, most of which run Linux. As to Windows, none of us run Windows so its development is untested and lags behind a bit, but I’ve just compiled a version and it seems to work. Is Flow open source? It’s not. There’s no current plan for that as we don’t have a large corporation backing our development. Which JavaScript engine do you use? We chose Spidermonkey in 2006, and as far as I recall it was because of both licensing and a documented embedding API. It was around the time that TiVo were having arguments over the GPL. The paranoia over that also ruled out use of LGPL licensed libraries for a few years. The core browser code is abstracted away from any Spidermonkey APIs, largely so we could handle upgrades over the years - we can still handle its legacy garbage collection model quite happily. What are your long-term goals with Flow? The primary goal is stability, followed by getting more websites rendering perfectly in Flow. They generally fail because of either layout bugs or missing JavaScript APIs in Flow, so we have to solve those. Even for the embedded market, getting as many websites working as possible improves our confidence that a new HTML user interface will function correctly, first time. Our roadmap is very flexible, usually because of commercial needs, but also we prioritise what’s interesting to a developer at that given time. You said Flow is multi-threaded. Which tasks exactly are divided among the multiple threads? HTML and CSS parsing is single-threaded, as is JavaScript (if you ignore WebWorkers). It’s the layout, primarily word wrap of text, that is done in parallel. Several caveats apply, but in general, two paragraphs can be laid out in parallel since they don’t impact each other apart from their vertical position. We wrote some technical papers on this process. Is the word wrap of paragraphs the computationally most expensive part of laying out an HTML page? Yes. Each letter is a separate rectangle, plus you have word wrap rules for groups of letters. It’s also probably the hardest to achieve, so it's a good place to start. Desktop browsers haven’t touched layout, and have instead concentrated on making whole components run in separate threads. Is Flexbox one of the caveats you mentioned? There are multiple passes across the tree, all in parallel. We first calculate, in parallel, essentially the min-content and max-content widths of each paragraph, flexbox or table cell. Once we have those constraints, a relatively quick pass (not in parallel for that one flex box) works out the final widths of each box. But we can handle multiple flexboxes in parallel, or one flex box and a paragraph outside the flexbox, and so on. How integral is multi-threading to Flow and its architecture? Could you remove it? Would other browsers be able to copy Flow's multi-threading? Multithreading can be turned off with a config setting. I suspect it’s always going to be easier to rewrite the layout code with multithreading in mind than rework existing layout algorithms - Mozilla took that approach that with Servo, rather than rework Gecko. The new layout engine could then, in theory, be combined with the rest of an existing browser. Can you give an example of tricky problems you encountered while creating this browser? Many sites, Gmail being a good example, were very frustrating as the JavaScript can be so large and obfuscated. It’s almost impossible to tell what they are doing, and much of the debugging was educated guesses as to what it was trying to do. Thankfully, the web platform tests help us make sure we are compatible with other browsers once we figured out the blocking bug or missing feature. We can’t realistically pass these tests 100% as they test such a huge set of APIs - it would take us years to catch up with other browsers so we can only focus on what is used by priority websites. And something that was much easier to implement than you thought? The HTML parser. I first wrote an HTML parser back in 2002, and back then there was no detailed specification of how to handle badly-nested elements. We spent so much time writing test cases to figure out what desktop browsers did in each situation, and trying to behave the same. Ten years later, the detail in the WHAT-WG specification was amazing, and it was perfectly possible to write an HTML parser that is completely compatible with all other browsers. And a feature you decided not to implement for now? HTML forms. A TV user interface doesn’t use most, if any, of the features of HTML forms so it was a very low priority. We started adding them because they are needed for general web browsing, but they are not complete. We haven’t yet implemented WebGL or IndexedDB because they are not used on most of the websites we’ve tried. Obviously Google Maps uses WebGL and Google Docs uses IndexedDB but both have fallbacks. Implementing more features to allow a larger number of websites to work is a priority. What is Flow's UA string? For the Mac version, it's the following: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) EkiohFlow/5.7.4.30559 Flow/5.7.4 (like Gecko Firefox/53.0 rv:53.0) The strings vary depending on the device, but the "EkiohFlow" and "Flow" strings should always occur. Why do you emulate Firefox? I assumed it'd be Chrome. We’ve spent ages on that UA string… I could probably write a blog post about it. Essentially, I copied Chrome. Things mostly worked. Then I hit the Instagram site, which decided to use ES6 features based on the UA string. I changed it to FireFox’s, using the version of SpiderMonkey that we were using (53 in the build you have), and the site worked. Then I added more afterwards (the rc:53) to get us to the more modern Google login box. The UA string isn’t final at all but its choice is full of compromises. Ekioh creates browsers for set-top boxes. What is Flow’s main purpose on set-top boxes? It is used to render the UIs created by the box’s vendors, and not for actually surfing the web. But we don’t always get to see the UIs the vendors create, so being able to render all HTML flawlessly is the goal. That way, UI developers can do as they please. Does the average set-top box have a browser meant for surfing the web? Sort-of, but not really. I have a 2012 Sony TV with that functionality, but it was useless then and is useless now. IR has a significant lag, and that makes TV remotes far too painful to control a TV browser with. I don’t recall any modern TV/STBs that let you have open internet, but they probably exist. I can’t imagine anyone seriously using them. Flow also runs on TVs and embedded devices. Could you give a few examples of embedded browsers? And TV browsers? Back before we started our SVG engine, there were many HTML 4 browser engines for the TV market, such as ANT Fresco and Galio (which I also worked on), Access’s NetFront, Oregan, Espial and Opera. For the non-TV market, we have replaced Internet Explorer Mobile on a line of Windows CE devices. These days, almost all embedded browsers are based on Blink or WebKit. What are your main competitors in the TV and embedded browser markets? The main competitors to Flow are Blink and WebKit. Most STB providers often do their own port of one of these browsers. WebKit can be optimised for these low-powered devices, but Flow is usually able to out perform other browsers, and in the areas it’s not as fast, we can usually optimise it. In a strange way, we also compete with ourselves - we offer our own embedded WebKit-based browser that is more feature-complete than Flow. The same developers work on maintaining and improving that. Thanks for this interview! You’re welcome. Full Article Browsers
k Linkbait 44 By www.quirksmode.org Published On :: Mon, 16 Mar 2020 13:36:31 +0100 Links in times of chaos. Laura Schenck, whose thoughts on programming CSS are very interesting anyway, discusses a project where she had to battle specificity. Key thought: Specificity breeds, much like conditionals breed in imperative languages [...]. Adding specificity is adding conditional logic. Once you start adding that logic, the code-base snowballs and it becomes difficult to understand, and thus difficult to maintain. She also asks if anyone who writes CSS should understand specificity to this degree. My answer is a firm Yes, just like you're expected to understand if- and for-loops when programming in any other language. Rachel Andrew ponders the pros and cons of CSS4. She is afraid that people will get confused by “CSS4” because several articles said there will never be a CSS4, and the version number 4 does not align with the version numbers of existing modules. Although both are true, I seriously doubt whether the people that “CSS4” is aimed at (those I call the torso and long tail of the CSS world) are aware or care. To me, this argument is overly legalistic, in the sense that it doesn’t matter in the real world. A much more important argument is that the announcement of “CSS4” will make people expect a list of new features that work in all browsers. In itself that’s great, and I think it would be really helpful, but the problem is that someone will have to decide what goes on the list and what does not — and the CSS WG is already stretched thin and cannot spare the time to do this. Maybe we need a community effort to help them? Worth thinking about. Interesting Twitter thread on why CSS is perceived as simultaneously very simple and very complicated. Because we think it's a simple language, we don't dive deep into it like we do with "real" programming languages. background: blue; makes the background turn blue, why should we bother diving in? But then it's time to build a layout and suddenly the combination of user agent styles and a lack of understanding in the fundamentals of CSS makes things break, or not behave how we expect them to. Yup. Mostly for myself: the difference between defer and async on script tags. Or, as Nicholas Zakas puts it: Do it now: <script src> Do it later: <script defer src> I don’t care when you do it, just not now: <script async src> Coil, the web monetization company, offers some interesting but too-much-under-the-radar thoughts on probabilistc revenue sharing. The idea is simple: if A, B, and C cooperate on a to-be-monetized article, and A is allotted 60% of the revenue, B 25% and C 15%, you simply add those probabilities to your payment pointers. Eventually a tool will draw a random and assign a specific payment to a specific author, but for now you can use a script to emulate that behaviour. Google proposes to sunset the User Agent string by freezing its version number and removing device information. The purpose here is to make fingerprinting (combining UA string, IP address, TCP/IP settings, device information and a host of other bits and pieces to accuratenly identify a web user) more difficult. The UA string will be replaced by client hints that give web developers some information about the browser, device, and platform. These hints will likely be more generic than the UA string, and thus hamper fingerprinting. The second problem with UA strings is the eternal arms race between clueless web developers and browser vendors, where web devs start using a certain badly-written browser detect, which forces browsers who want to end up on the good side of it to adjust their UA string, so that it gathers more and more cruft. (This is the reason every single browser string out there still starts with Mozilla.) I do not see this arms race go away. For instance, if the new Flow browser wants to defeat new browser detects written with client hints by clueless web developers, it will most likely be forced to announce itself as Chrome. Worse: we lose the ability to accurately identify it as Flow. As a result, new browser stats will make it appear as if Chrome is even more dominant than it actually is. Maybe we need another field Sec-CH-RealUA or something, where the browser can use its true name. On the other hand, that will be more fodder for clueless web developers and will perpetuate the arms race. In any case, to me it seems that more-or-less-accurate browser statistics will be the most important casualty of this switch. Related links (mostly for myself): client hints as currently implemented; discussion on a previous Safari attempt to do something similar; Blink intent to ship Mozilla and KaiOS Technologies are going to cooperate on future versions of KaiOS, the operating system for “smart feature phones” (read: cheap phones) that’s based on Firefox OS. Included in the article is a whole list of features Mozilla will work on, but they essentially boil down to keeping KaiOS updated for the ever-evolving web. Broadly speaking, these updates will mean many first-time internet users gain access to more of the web’s advanced digital services on devices that are affordable, reliable, and secure. Remember: KaiOS is aimed at not-so-rich people from emerging markets. As of May 2019 there were about 100 million devices out there. That’s piss poor compared to iOS and especially Android, but let’s see if their use explodes or not. Have a tip for the next Linkbait? Or a comment on this one? Let me know (or here or here). Full Article Linkbait
k 從滬港通到深港通 : 互聯互通與香港新機遇 = Shanghai-Hong Kong Stock Connect and Shenzhen-Hong Kong Stock Connect : opportunities for Hong Kong / 編著彭琳, 梁海明. By lib.cityu.edu.hk Published On :: Wed, 1 Mar 2017 3:33:25 Location Multiple Locations Call No. HG5802 .P46 2017 Full Article
k Cladocera : family Eurycercidae (Branchiopoda : Cladocera :Anomopoda) / by Alexey A. Kotov & Eugeniya I. Bekker. By lib.cityu.edu.hk Published On :: Tue, 6 Jun 2017 8:36:45 Location Circulation Collection Call No. QL444.B83 K67 2016 Full Article
k Nuclear tracks and radiation measurements [electronic resource]. By lib.cityu.edu.hk Published On :: Tue, 6 Jun 2017 8:36:45 Publisher Oxford ; New York : Pergamon Press, c1982-1985.Location World Wide Web Call No. QC787.N78 Full Article
k Nuclear tracks and radiation measurements [electronic resource]. By lib.cityu.edu.hk Published On :: Tue, 6 Jun 2017 8:36:45 Publisher Oxford : Pergamon Press, c1993-c1994.Location World Wide Web Call No. QC787.N78 Full Article
k Nuclear tracks [electronic resource]. By lib.cityu.edu.hk Published On :: Tue, 6 Jun 2017 8:36:45 Publisher Oxford ; New York : Pergamon.Location World Wide Web Call No. QC787.N78 Full Article
k Nuclear track detection [electronic resource]. By lib.cityu.edu.hk Published On :: Tue, 6 Jun 2017 8:36:45 Publisher Oxford ; New York : Pergamon Press, 1977-1978.Location World Wide Web Call No. QC787.N78 Full Article
k Around 30 Indian institutions are working to develop a nCoV-19 vaccine By www.thehindubusinessline.com Published On :: Fri, 08 May 2020 14:45:30 +0530 A few of them are expected to move into clinical trials later this year. Full Article Science
k Indian Psychiatric Society joins TikTok to share tips on mental health during Covid-19 By www.thehindubusinessline.com Published On :: Fri, 08 May 2020 13:23:02 +0530 The coronavirus-induced lockdown has been coined as the world's biggest psychological experiment by the World Economic Forum. The spread of the pandem Full Article Science
k Bharat Biotech to spearhead CSIR-backed Covid-19 therapy efforts By www.thehindubusinessline.com Published On :: Fri, 08 May 2020 14:45:21 +0530 The Hyderabad-based Bharat Biotech International Limited (BBIL) would lead a project to develop human monoclonal antibodies as therapy for Covid-19 i Full Article Science
k Solar power generation problems, solutions, and monitoring / Peter Gevorkian (Vector Delta Design Group) By prospero.murdoch.edu.au Published On :: Gevorkian, Peter, author Full Article
k Geschichte und Restauration der Kirchlichen Kunstdenkmale in Neusohl By reader.digitale-sammlungen.de Published On :: Mon, 27 Apr 2020 13:12:02 +0100 Autor: Ipolyi, Arnold Erschienen 1878 BSB-Signatur 2 Art. 34 br URN: urn:nbn:de:bvb:12-bsb11362348-7 URL: http://digitalisate.bsb-muenchen.de/bsb11362348/ Full Article
k A branch-and-bound algorithm for multiobjective mixed-integer convex optimization Stefan Rocktäschel By library.mit.edu Published On :: Sun, 1 Mar 2020 07:37:39 EST Online Resource Full Article
k Arakelov geometry over Adelic curves / Huayi Chen, Atsushi Moriwaki By library.mit.edu Published On :: Sun, 1 Mar 2020 07:37:39 EST Online Resource Full Article