Recall on Kids' Tylenol Motrin Zyrtec Benadryl - <AUTHOR> http://children.webmd.com/news/20100502/recall-of-kids-tylenol-motrin-zyrtec-benadryl The NDC numbers are listed for all the over-the-counter meds that are no good (they are hard to find on the box or bottle). <comment><AUTHOR> Here is the copy and paste of all recalled OTC children medicines. Sorry for the all-caps, it comes from the bulletin that way and I tried to format it to make it a little more readable, but believe I have failed. I did go through line-by-line to make sure that all the numbers matched up correctly.

Product name is first, followed by the NDC number.

 _Note, the NDC number is either on the box, bottle or both, typically located at the top, is written in not so easy to see font and, just as frustrating, is typically black text printed on the same color as the marketing/label color.

It would be friendly if this was always printed in a white box with black text.

\</comment><comment></comment><comment></comment><comment>---- TYLENOL INFANTS' DROPS \</comment><comment></comment><comment></comment><comment>----

CONCENTRATED TYLENOL INFANTS' DROPS 1 OZ. GRAPE FLAVOR </comment><comment> 50580-144-01

CONCENTRATED TYLENOL INFANTS' DROPS 0.5 OZ. GRAPE FLAVOR_ \</comment><comment> 50580-144-15 _CONCENTRATED TYLENOL INFANTS' DROPS 0.5 OZ. GRAPE FLAVOR is also included in JOHNSON'S Baby Relief Kit.

CONCENTRATED TYLENOL INFANTS' DROPS 1 OZ. CHERRY DYE FREE </comment><comment> 50580-167-01

CONCENTRATED TYLENOL INFANTS' DROPS 0.5 OZ. CHERRY FLAVOR </comment><comment> 50580-143-15

CONCENTRATED TYLENOL INFANTS' DROPS 1 OZ. CHERRY FLAVOR </comment><comment> 50580-143-30

CONCENTRATED TYLENOL INFANTS' DROPS 0.5 OZ. GRAPE - HOSPITAL </comment><comment> 50580-144-18

CONCENTRATED TYLENOL INFANTS' DROPS 0.25 OZ. GRAPE - SAMPLE </comment><comment> 50580-144-40

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment> CHILDREN'S TYLENOL SUSPENSIONS \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>

CHILDREN'S TYLENOL SUSPENSION 2 OZ. CHERRY BLAST FLAVOR </comment><comment> 50580-123-02

CHILDREN'S TYLENOL SUSPENSION 4 OZ. CHERRY BLAST FLAVOR </comment><comment> 50580-123-04

CHILDREN'S TYLENOL DYE-FREE SUSPENSION 4 OZ. CHERRY FLAVOR </comment><comment> 50580-166-04

CHILDREN'S TYLENOL SUSPENSION 4 OZ. GRAPE SPLASH </comment><comment> 50580-296-04

CHILDREN'S TYLENOL SUSPENSION 4 OZ. BUBBLEGUM FLAVOR </comment><comment> 50580-407-04

CHILDREN'S TYLENOL SUSPENSION 4 OZ. VERY BERRY STRAWBERRY FLAVOR </comment><comment> 50580-493-04

CHILDREN'S TYLENOL SUSPENSION 1 OZ. CHERRY BLAST FLAVOR - SAMPLE </comment><comment> 50580-123-01

CHILDREN'S TYLENOL SUSPENSION 4 OZ. CHERRY BLAST FLAVOR - HOSPITAL </comment><comment> 50580-123-03

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----- CHILDREN'S TYLENOL PLUS SUSPENSIONS \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. COUGH & SORE THROAT CHERRY FLAVOR </comment><comment> 50580-247-04

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. COUGH & RUNNY NOSE CHERRY FLAVOR </comment><comment> 50580-249-04

CHILDREN'S TYLENOL PLUS DYE-FREE SUSPENSION 4 OZ. COLD & STUFFY NOSE GRAPE FLAVOR </comment><comment> 50580-253-04

CHILDREN'S TYLENOL PLUS DYE-FREE SUSPENSION 4 OZ. COLD & COUGH GRAPE FLAVOR </comment><comment> 50580-254-04

CHILDREN'S TYLENOL PLUS DYE-FREE SUSPENSION 4 OZ. MULTI-SYMPTOM COLD GRAPE FLAVOR </comment><comment> 50580-255-04

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. FLU BUBBLEGUM FLAVOR </comment><comment> 50580-386-04

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. COLD GRAPE FLAVOR </comment><comment> 50580-387-04

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. COLD & ALLERGY BUBBLEGUM FLAVOR </comment><comment> 50580-390-04

CHILDREN'S TYLENOL PLUS SUSPENSION 4 OZ. MULTI-SYMPTOM COLD GRAPE FLAVOR </comment><comment> 50580-391-04

\</comment><comment></comment><comment></comment><comment>--- MOTRIN INFANTS' DROPS \</comment><comment></comment><comment></comment><comment>---

CONCENTRATED MOTRIN INFANTS' DROPS 1 OZ. BERRY DYE FREE </comment><comment> 50580-198-01

CONCENTRATED MOTRIN INFANTS' DROPS 0.5 OZ. BERRY DYE FREE </comment><comment> 50580-198-15

CONCENTRATED MOTRIN INFANTS' DROPS 0.5 OZ. BERRY FLAVOR_ \</comment><comment> 50580-100-15 *CONCENTRATED MOTRIN INFANTS' DROPS 0.5 OZ. BERRY FLAVOR is also included in JOHNSON'S Baby Relief Kit.

\</comment><comment></comment><comment></comment><comment></comment><comment>----- CHILDREN'S MOTRIN SUSPENSIONS \</comment><comment></comment><comment></comment><comment></comment><comment>-----

CHILDREN'S MOTRIN SUSPENSION 4 OZ. BERRY DYE FREE </comment><comment> 50580-184-04

CHILDREN'S MOTRIN SUSPENSION 2 OZ. BERRY FLAVOR </comment><comment> 50580-601-02

CHILDREN'S MOTRIN SUSPENSION 4 OZ. BERRY FLAVOR </comment><comment> 50580-601-04

CHILDREN'S MOTRIN SUSPENSION 4 OZ. TROPICAL PUNCH FLAVOR </comment><comment> 50580-215-04

CHILDREN'S MOTRIN SUSPENSION 4 OZ. GRAPE FLAVOR </comment><comment> 50580-603-04

CHILDREN'S MOTRIN SUSPENSION 4 OZ. BUBBLEGUM FLAVOR </comment><comment> 50580-604-04

CHILDREN'S MOTRIN SUSPENSION 1 OZ. GRAPE SAMPLE </comment><comment> 50580-603-01

CHILDREN'S MOTRIN SUSPENSION 1 OZ. BUBBLEGUM SAMPLE </comment><comment> 50580-604-01

CHILDREN'S MOTRIN SUSPENSION 1 OZ. BERRY SAMPLE </comment><comment> 50580-601-01

CHILDREN'S MOTRIN SUSPENSION 4 OZ. BERRY HOSPITAL </comment><comment> 50580-601-50

CHILDREN'S MOTRIN SUSPENSION 4 OZ. COLD BERRY FLAVOR </comment><comment> 50580-902-04

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment> CHILDREN'S ZYRTEC LIQUIDS IN BOTTLES \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>

CHILDREN'S ZYRTEC 4 OZ. BUBBLEGUM SYRUP </comment><comment> 50580-721-04

CHILDREN'S ZYRTEC DYE FREE 4 OZ. GRAPE SYRUP </comment><comment> 50580-730-04

CHILDREN'S ZYRTEC SUGAR-FREE DYE-FREE 0.5 OZ. GRAPE </comment><comment> 50580-730-15

CHILDREN'S ZYRTEC SUGAR-FREE DYE-FREE 0.5 OZ. BUBBLEGUM </comment><comment> 50580-721-15

CHILDREN'S ZYRTEC SUGAR-FREE DYE-FREE 2 X 4 OZ. BUBBLEGUM LIQUID </comment><comment> 50580-721-08

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---- CHILDREN'S BENADRYL ALLERGY LIQUIDS IN BOTTLES \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>----

CHILDREN'S BENADRYL ALLERGY 4 OZ. BUBBLEGUM FLAVORED LIQUID </comment><comment> 50580-535-04

</comment><comment><USER2> Fun. The only value the name brands have over generics is an assumption that they are going to put the right dose in, and not use untested ingredients. That's why you pay extra, because they are not going to fuck around with ways to cut costs.

But I forgot, this is America. Buy generic, I guess...

<comment><USER3> Assuming generics are availble. In plenty of countries generics are confiscated on import because the 'brands' have sued the manufacturers of the generics.

For instance:

[http://www.thepharmaletter.com/file/46800/eu-commissioner- de...](http://www.thepharmaletter.com/file/46800/eu-commissioner-designate-de- gucht-questioned-on-generic-medicine.html)

In lots of countries they simply are not available at all.

</comment></comment><comment><USER4> The NDC number seems to be a very "broad" number, (they seem to be recalling ALL of the outstanding products in these lines) as opposed to recalling some lots from some factories. That's probably good from a safety perspective, but unfortunate in terms of hassle (I'll probably be throwing away a lot of unaffected product).

All of my kids' medicines were affected (9 bottles, 4 different kinds), and a friend found the same.

The official site of the recall: <http://www.mcneilproductrecall.com/>

The form to fill out if you'd like your money back: [https://www.mcneilproductrecall.com/page.jhtml?id=/include/c...](https://www.mcneilproductrecall.com/page.jhtml?id=/include/contact.inc)

I filled it out yesterday, and haven't heard a response yet. That's unfortunate, since they could at least have an auto-responder acknowledging receipt.

<comment><USER3> > All of my kids' medicines were affected (9 bottles, 4 different kinds), and > a friend found the same.

9 bottles and 4 different kinds of medication for your children ? Wow, they must be very ill then, I'm really sorry to hear that. Good luck with that!

<comment><USER5> Naw, not those medications. Basic baby loadout is: Tylenol (teething, bad colds), Benedryl (mostly "oops, guess he's allergic to that!"), Motrin (my wife appreciates that Tylenol and Motrin are processed by different parts of the body and switches between them so as not to overload one of them; perhaps excessively cautious, especially as we don't use a lot anyhow, but hey....), and gas-suppressant (Mylecon).

I do not know how parents lived before gas suppressant. Well, I do, actually, and I am glad that we have these things. So much "colic" of the past is actually covered by one of these three basic medicines. (Though by no means all of it.)

And, that's four. Make sure you have a supply of at least all three kinds on hand at all times, because you do not know when you will be quizzed at 3am. If you're not sure what's up, the gas suppressant seems pretty harmless (directions are roughly "Use at will not more than 20 times a day", and we've never even come close to that), followed up by one of the pain suppressants. (It may seem terrible to just squirt pain suppressant down someones throat if you're not sure that's the problem, but remember we're dealing with people who are absolutely incapable of telling you what's up... you _have_ to guess. Also, no, we are not hiding chronic problems. It's pretty much always been teething, which our child has taken harder than some, though not particularly hard. A couple unpleasant days, then a couple of clear weeks, is the usual pattern for our kid. And honestly, side effects for occasional usage of Tylenol or Motrin are basically nil.)

(Basically, what all these parenthetical are boiling down to are "If you don't have kids, I'm not interested in your theories" and "You don't have enough evidence to decide whether I'm overmedicating based on this post, so stuff it, and also see my first point." What you _ought_ to be seeing here is someone who is actually concerned and thinking about the issues and has a lot more data about the local situation than you do. And not you specifically, jacquesm, just people in general who are always so quick to judge based on two quick paragraphs with nowhere near the necessary data to actually judge....)

<comment><USER3> Ok, happy to hear it's just 'regular kids' stuff. You had me worried for a bit there. I've spent way too much time in the childrens ward of a hospital recently and there is nothing sadder than sick kids.

As for the people that modded me down above, what's wrong with you?

<comment><USER5> I would have thought the same thing before I had a kid, or at least the thought would have crossed my mind.

Sometime I really need to sit down and write the list of things that nobody told me about raising kids. I started having kids at 30, so the list isn't things like "Hey, they cry a lot" or "you lose a lot of sleep"; I had that figured out. It's the relatively short list of things that still were a surprise. The necessary pharmacology loadout is one of them; we learned the importance of anti-gas the hard way. (That is, if I could go back, we'd reach for that a lot sooner and a lot more often. Like I said, it's essentially harmless if you're wrong and it came up a lot.)

<comment><USER3> I could have used some of that with my son about 16 years ago, he would cry for days on end and it would drive us completely bonkers.

It's so hard to have a child that is obviously in pain and that you can not communicate with other than holding him and trying to somehow comfort him.

It let up after about 4 months and the relief was immense.

He's heavily asthmatic so using medication pretty much all the time there is still a chance he'll grow out of it but that's lessening year by year. He's in the middle of a growth spurt at them moment, in spite of a serious lack of superstition I'll keep my fingers crossed.</comment></comment></comment></comment></comment></comment>


ISRO to launch Google satellite - <AUTHOR> http://www.asianage.com/india/isro-launch-google-satellite-300 <comment><USER2> This is a great example of how investing in space can have returns for India. You often find comments in such articles saying that India should be focusing on poverty alleviation, healthcare, and infrastructure instead of investing in a space program. The problem with this strategy is that India (and developing countries in general) will always be playing catch-up to other countries; And without finding new sources of wealth, India will be hard pressed to obtain the necessary resources to uplift itself from poverty. Another thing these commenters fail to point out is that most of the countries that are rich today got where they are not by funding massive welfare programs, but by expanding into new frontiers in search of wealth.

So the strategy today's developing countries should be following is to find new frontiers in science, technology, entrepreneurship to create wealth while in parallel trying to provide basic facilities to their people. Developing countries are in some ways like startups- Perpetually strapped for cash and resources, struggling to stay afloat and facing tough odds. The key for them is not to try to compete in areas where others already dominate, but to disrupt them (by trying drastically different approaches) or to seek new fields. Microsoft didn't try to compete with IBM in mainframes, they went for the then-burgeoning PC market. Apple is the world largest corporation not because it competes head-on with Microsoft in the PC market, but because it disrupted mobile. Similarly, space is a good avenue for India to compete in, where there are few incumbents and where India can exploit its natural advantages (such as it's eye for cost-saving and huge, inexpensive talent pool).

Updated: Edited to removed lines that detract from main point.

<comment><USER3> I'm in favour of space and scientific exploration as the next guy, but it is incorrect to equate basic sanitation and education with a welfare state. It seems pretty obvious to me that providing everyone with clean water and sanitation will have far greater economic (and social) impact than giving a very small number people access to very advanced technology.

India has some of the worst sanitation conditions in the world. You and I take clean drinking water and sewage treatment for granted.

There is a pretty strong case that educating women, giving women control of their reproductive systems, and giving women good hygiene, sanitation, and toilet facilities is the best possible way to lift populations out of poverty.

[http://www.iamin.in/en/mumbai-north/news/mumbai-ranks- second...](http://www.iamin.in/en/mumbai-north/news/mumbai-ranks-second-worst- sanitation-conditions-claims-new-survey-46547)

[http://www.globalpartnership.org/education](http://www.globalpartnership.org/education)

[http://www.pbs.org/independentlens/half-the-sky/economic- emp...](http://www.pbs.org/independentlens/half-the-sky/economic-empowerment/)

[http://thinkprogress.org/economy/2014/01/09/3138901/rubio- ma...](http://thinkprogress.org/economy/2014/01/09/3138901/rubio-marriage- poverty/)

[http://www.globalpovertyproject.com/our-policy- focus/](http://www.globalpovertyproject.com/our-policy-focus/)

[http://www.unwater.org/worldtoiletday](http://www.unwater.org/worldtoiletday)

[http://www.wateraid.org/uk/what-we-do/the- crisis/women](http://www.wateraid.org/uk/what-we-do/the-crisis/women)

<comment><USER2> I am not saying that India should take all its money from education and sanitation and put it in rockets and r&d. I am not speaking against welfare programs either. I am saying that the whole attitude that "India shouldnt have a space program until everyone has toilets" is self-defeating and means that India will never have a space program, and probably never have enough toilets either.

The core of my point is that a small percentage of the budget should be kept aside for r&d in science and technology (and also to encourage entrepreneurship) because the returns from such endeavours can be tremendous. If you put x dollars to buy a toilet you will only ever get 1 toilet but if you invest x dollars wisely you could in time pay for a hundred toilets.

<comment><USER4> I think it depends a bit on the ideology the government wants to follow in which one to prioritise.

I assume one favours lifting people out of poverty through opportunity of economic opportunity (subsidising R&D at the expense of other industry). The other is to lift people out of people through welfare (subsidising sanitation through the expense of other industry).

The latter would definitely help in the more immediate term but wouldn't be sustainable. It's a hard pill to swallow but prioritising a better economic climate may be better in the longer term.

There is also another way to look at it where the improvement in sanitation can improve living standards, thereby improving the economy through a different root of the problem. I think the government is taking an approach that uses less welfare.

I would favour the space plan since the ISRO currently has a very high launch success rate and an incomparable cost. For India and the world as a whole it is more optimal to promote its development. The material/'hard cash' export value of launching satellites can help more in the longer term to subsidising sanitation than approaching it directly and sooner.

</comment></comment></comment></comment><comment><USER5> Antrix has done a great job of marketing secondary payload opportunities. Many university-satellites have been launched by PSLV; they've become the de-facto small-satellite launch provider in a lot respects. My alma mater has launched a couple of satellites successfully [1], with the first one, Delfi-C3, launched from Sriharikota in 2008 (still operational!).

Europe has been trying to push Vega [1] as the European offering in this market. It's exciting to see how the launcher space is developing, especially for small payloads. I know a few startups that are targeting this space because of studies, like undertaken by SpaceWorks [1][2], that point at the expected explosion within the coming 5 years.

Given that I'm working on space debris risk mitigation at the moment, I'm looking at this from a somewhat different perspective. Most small-satellites to date have been launched to low enough orbits that they can meet the 25-year de-orbit guideline without too many issues. With the commercial market rapidly expanding though, there are a lot of applications that require higher orbits, and that's when space debris becomes a huge issue. Keeps me in a job!

All in all, great news for ISRO, and hopefully a sign of more international collaboration and commercial expansion in the years to come.

[1] [http://www.delfispace.nl](http://www.delfispace.nl)

[2] [http://en.wikipedia.org/wiki/Vega_%28rocket%29](http://en.wikipedia.org/wiki/Vega_%28rocket%29)

[3] [http://www.sei.aero/eng/papers/uploads/archive/IAC-14.E6.1.3...](http://www.sei.aero/eng/papers/uploads/archive/IAC-14.E6.1.3.pdf) (PDF)

[4] [http://www.sei.aero/eng/papers/uploads/archive/SSC14-I-3_v1....](http://www.sei.aero/eng/papers/uploads/archive/SSC14-I-3_v1.0.pdf) (PDF)

</comment><comment><USER6> There are some good developments giving an international exposure to Indian space research. Another commendable achievement is the Team Indus winning a $1 million prize money [1] as a part of Google's Lunar X-prize, for achieving significant milestones. They are mostly a team of fresh IITians mentored by a few senior guys [2] - entrepreneurs, enthusiasts and technology and industry veterans who started this. This was the only team from India participating in the X-prize, and is one of the 5 teams internationally to be selected for the first round of funding, from amongst other well funded entities. Incidentally my company Sasken [3] has provided the team with space in our Bangalore office for their operations and it is indeed exciting to see them succeed.

[1] [http://yourstory.com/2015/01/team-indus-from-india-wins- goog...](http://yourstory.com/2015/01/team-indus-from-india-wins-google-lunar- xprize/) [2] [http://www.teamindus.in/about- us/](http://www.teamindus.in/about-us/) [3] [http://www.sasken.com](http://www.sasken.com)

</comment><comment><USER7> A couple of months ago, I met a brilliant scientist[1][2] who runs a space startup in India that specializes in brokering deals to launch non Indian space payload on ISRO's launch vehicles. Her company is called Earth2Orbit[3], although I am not sure whether this deal was brokered by them.

[1] [http://travel.cnn.com/mumbai/susmita-mohanty-indias-own- moon...](http://travel.cnn.com/mumbai/susmita-mohanty-indias-own- moonwalker-142324)

[2] [http://www.earth2orbit.com/people/people.html](http://www.earth2orbit.com/people/people.html)

[3] [http://www.earth2orbit.com/index.html](http://www.earth2orbit.com/index.html)

</comment><comment><USER8> Skybox can sell live satellite video, I saw a demo last week that was pretty dramatic. They are currently very limited by having one satellite.

Suddenly I realize the importance of the Google investment in SpaceX to launch 700 internet service satellites. Surely those could include cameras. Will we get realtime Google Earth?

<comment><USER9> Ah yes, Google, working hard to make '1984' a reality for the purpose of profits and advertising.

<comment><USER10> It is still cheaper compared to 1984 standards.

</comment></comment></comment><comment><USER11> Now we're talkin. If ISRO pulls this off the space industry will be officially Bangalored.

</comment><comment><USER12> Crowdfunded military intelligence in near future? People interested in what's happening on some specific place putting their money to pool and purchasing live video feed from the region?

</comment><comment><USER13> Big validation in the age of space madness. Keep them coming team ISRO.

</comment><comment><USER14> Time for the outer space research to get big at Isro bAngalore,India

</comment><comment><USER15> Did someone say Skynet?

</comment><comment><USER16> Is it INSURED?

<comment><USER17> I am sure it is insured.

However, PSLV, ISRO's rocket has the best success record in the world. It has launched 71 satellites so far. 40 of these where of non Indian so this is not the first time ISRO is launching a non Indian satellite. It took Chandrayaan to moon and Mangalyaan to mars. I am sure Google's satellite is in safe hands here.

<comment><USER18> Looking up "yaan" \- Hindi for vehicle.

<comment><USER19> Yes, it's like a generic word for this purpose. An instrument/machine that moves, or takes you or stuff from one point to another.

You can put it like "chandra" (moon) + "yaan" and it becomes "a vehicle that goes to the moon; or is built for a purpose related to moon"; or "vaayu" (air) + "yaan" and it becomes an air-plane. "jal" (water) + "yaan" and it's a ship.

In our trains there are "shayan" (sleeping) + "yaan" \- here it means "coach", i.e. sleeper coaches as opposed to those sitting coaches.</comment></comment></comment></comment>


Tufte CSS - <AUTHOR> http://www.daveliepmann.com/tufte-css/ <comment><USER2> I think this:

a) looks like a reasonable simulation of Tufte's print style

b) is missing the point Tufte tries to make

Tufte isn't saying you _have_ to make your presentation look like his, his basic thesis is "don't add unnecessary things that take away from the clarity of your presentation" and he's made a name by critically analyzing other people's presentation and work to show where they've gone overboard and why that detracts from the message they're trying to show.

I've sat in his class, read his books and website and followed him for years. His approach and critical analysis of web sites is actually fairly different from print. He understands that the web is a different medium and should be approached differently. His critiques of ESPN and various weather websites are _fascinating_ not because he complains they aren't using enough whitespace or don't follow his print style, but because he actually likes how they clearly and concisely present summaries of dense, compact information.

I'm afraid this comes off a little like cargo-culting Tufte, going through the ceremony without actually grokking his meaning.

<comment><USER3> Yes, the first thing I've thought looking at the page on the computer was "I wonder how that looks on my iPhone." I've tried: not easily readable, for me.

<comment><USER4> Is it not the case that san-serif fonts are better on screen and serif better in print? Seems a bit strange that the webpage uses serif.

<comment><USER5> Again, this statement just seems like cargo culting when taken as a rule.

The reason san-serifs were better on screen is that screens used to have lower DPI's, and thus can't actually show the serifs as well as on paper.

In the old days of CRT's and 72 dpi screens, the serifs would be distorted because the display can't show details fine enough. In those cases, san-serifs get you around the problem of low dpi screens.

Nowadays, with retina and high dpi displays, serif fonts can look as good as in print.

Just be aware of why these guidelines exist. It's not always a firm "it has to be this way" hard rules.

</comment></comment></comment></comment><comment><USER6> Cute idea. Needs a better example document to really be judged properly (for example, this document has a far too many large and imposing headings), but in any case, some comments:

Would be better with less leading, a smaller text size, smaller left margin, and more characters per line. This current version has a text block more like a newspaper column width than a book, and the large type and unnecessarily generous leading (especially in block quotations!) make it feel a bit like a children's book. Not much content fits on screen at any time.

Small caps shouldn't be used with a typeface/browsers that don't properly support them and just shrink capital letters instead, they just look spindly and bad. Either find a real small caps font, or skip the idea. Likewise for italics: use a real italic font instead of a browser-generated oblique version of the roman font.

If you want it to look like a nicely typeset book, use an indented first line for new paragraphs rather than a blank line.

Lots of other parts need tweaks, but it would take making several sample documents and then judging how the parts interact.

Final note: Tufte's books don't look good because of the basic style choices, but because of the incredible care and attention he puts into writing and composing them. Crappy content is not going to suddenly become amazing when a different stylesheet is slapped onto it, and any document that aspires to be as pretty as a Tufte book is going to take many hours of manual composition.

<comment><USER7> I find that columns with smaller width and larger text are far more readable - any text that is the raison d'être for the page should be readable first, with worries about looking like a "children's book" becoming second concern.

"Critics who treat 'adult' as a term of approval, instead of as a merely descriptive term, cannot be adult themselves. To be concerned about being grown up, to admire the grown up because it is grown up, to blush at the suspicion of being childish; these things are the marks of childhood and adolescence. And in childhood and adolescence they are, in moderation, healthy symptoms. Young things ought to want to grow. But to carry on into middle life or even into early manhood this concern about being adult is a mark of really arrested development. When I was ten, I read fairy tales in secret and would have been ashamed if I had been found doing so. Now that I am fifty I read them openly. When I became a man I put away childish things, including the fear of childishness and the desire to be very grown up." - C.S. Lewis

<comment><USER6> I don't have anything against children's books; I love children's books! If the goal is to fit 2 sentences on a page with a big picture and individual letters that are easy to discriminate to help when just learning to read, then large text is a perfectly reasonable part of the design. Large widely spaced text is just not necessarily appropriate for other types of material, where fitting more text on the screen is an important design feature.

This is especially relevant when we're talking about Edward Tufte: Tufte devotes a huge portion of his books to emphasizing that information presentation is improved when more information is presented in a smaller space, to facilitate references and comparisons between different items/sections. "Information wants to be spatially adjacent so as facilitate comparisons made within the common eyespan of the viewer."

As a concrete comparison, here's what fits in my browser view in this "Tufte CSS" document: [http://imgur.com/iLNgoaU](http://imgur.com/iLNgoaU)

Here's what fits on a page in an Edward Tufte book: [http://imgur.com/dTLcDx2](http://imgur.com/dTLcDx2)

<comment><USER8> This will obviously depend upon what device you're using, but hold a book up in front of you at about the distance you would typically read it (this should be MUCH closer than your screen!). Now compare the size of the text (admittedly, this is tricky because of focus, but it's just about possible) - the font size in the example is pretty much exactly the same as in a typical book, for me at least.

Designers have, for a long time, thought that 'small text is cool/looks better' but there has been a pushback on this by web designers over the past few years. Maybe even HN will one day update its styles for readability; at least a shorter line-length/larger leading would be a great start.

</comment></comment></comment></comment><comment><USER9> Honestly, this is really rough. The impulse is admirable, but the implementation has a lot of rough edges and ugliness. A web author looking for good typography is going to be better served reading Butterick's Practical Typography ([http://practicaltypography.com/](http://practicaltypography.com/)).

<comment><USER10> It doesn't have the meticulous shine of Tufte's books, but this is a straightfoward CSS guide. It's a starting point, don't you think?

Butterick's implementation is more than a CSS guide though, right? I thought his design was to show off the power of Pollen[0], his online-book-publishing system.

[0] [http://pollenpub.com/](http://pollenpub.com/)

<comment><USER9> It's a starting point, but a starting point that directs users to fake italic, fake small-caps, mismatched mono text, inconsistent apostrophes, and ugly underlines. (Oh, and sidenotes and other margin content just disappears on a phone.) If you're going to start from a template, it at least shouldn't lead you astray in multiple ways.

<comment><USER11> It also doesn't maintain your current position in the document if the viewport changes width, which... I'm not even sure how you break that. The user agent usually does a very good job of handling scroll position.

There's a lot of stuff you'd want to clean up before you let Mr Tufte see it.

<comment><USER12> I'm not sure what browser(s) or site(s) you're referring to, but just now double checking a few sites in current FF and Chrome I don't see them maintaining scroll position at all. I realize that this agrees with my developed expecations for text heavy pages. Text reflow as the page narrows dominates the viewport position -- content getting longer effectively pushes the viewport up the page. To the user, content appears to flow "downward" as the page narrows.

Do you have an example of a site and/or browser that exhibits the behavior you're describing? I'm quite curious if there's an approach to structuring a page that preserves position sensibly.

</comment></comment></comment></comment></comment><comment><USER13> Tufte-Latex, mentioned in the article, is a really nice template that produces some gorgeous Latex handouts with very little effort (I've used it a couple times when I wanted something to not look like the standard Latex article class). I thought it worth linking here for those that didn't read the link: [https://tufte-latex.github.io/tufte-latex/](https://tufte- latex.github.io/tufte-latex/)

<comment><USER14> I agree -- I use that template for writing most of my documents now.

It's also available to try out online on Overleaf if you don't fancy installing LaTeX: [https://www.overleaf.com/latex/templates/handout-design- insp...](https://www.overleaf.com/latex/templates/handout-design-inspired-by- edward-tufte/dtsbhhkvghzz)

(Note: I'm one of the co-founders of Overleaf, so any feedback appreciated, thanks!)

<comment><USER15> I went to one of Mr. Tufte's workshops several months ago, and I do believe he mentioned Overleaf while discussing LaTeX. I must admit I had forgotten about it until just now, so thanks for the reminder. It looks like a fairly slick interface (and a nice solution for what I recall was a relatively painful problem i.e. installing and using LaTeX).

<comment><USER14> Thanks -- yes, I believe he's used Overleaf in his workshops for the past couple of years (starting back when we were called writeLaTeX). The Tufte handout and book templates are ones we use again and again when we're asked for examples of such layouts, and they're very popular.

As an interesting tidbit re Overleaf, we recently passed the 3 billion pages compiled mark :) If you stacked up all those pages, you'd have a pile that's (roughly!) the height of Pluto: [https://www.overleaf.com/blog/219-youve- created-three-millio...](https://www.overleaf.com/blog/219-youve-created- three-million-projects-and-counting-dot-dot-dot)

</comment></comment></comment></comment><comment><USER16> Resizing the window reduces the user's desired font size: I don't know how many web readability rules this breaks.

If the user then increases the font size, the web page obliges, expanding beyond the window boundary, yet doesn't provide a horizontal scroller! Very bad.

The thing is: Tufte's style isn't designed for webpages. It's designed for books. Books have defined margins, a fixed size, and pages with a defined length. (Good) web pages don't necessarily have any of that. This is where sidenotes fall down, for example: the CSS author has to jump through a variety of hoops, breaking various conventions, in order to make them usable when the user narrows his window width.

</comment><comment><USER17> It's very nice looking.

Everyone criticizing the implementation, here, let me help you:

[https://github.com/daveliepmann/tufte- css](https://github.com/daveliepmann/tufte-css)

</comment><comment><USER18> I like the idea but turned away when I saw those ugly fake italic headings. Never italicize fonts that are missing italic type styles.

<comment><USER19> Sorry! Does this help? [https://github.com/pyrocat101/tufte- css/commit/0a810a7d5f470...](https://github.com/pyrocat101/tufte- css/commit/0a810a7d5f4707941c6f9fe99a53ec41f50a5c00)

<comment><USER18> No need to say sorry :) It does help, awesome!

</comment></comment></comment><comment><USER20> For a typography-centric project, it pains me to see that you're not including the proper italic version of the font used in the article, forcing my browser to do ugly guesswork [1].

[1]: [http://i.imgur.com/CNBSMVH.png](http://i.imgur.com/CNBSMVH.png)

<comment><USER19> I feel your pain. I think Linjie Ding's contribution resolved the issue, let me know your thoughts: [https://github.com/daveliepmann/tufte- css/pull/8](https://github.com/daveliepmann/tufte-css/pull/8)

</comment></comment><comment><USER21> Personally, I feel like the text is too big.

Medium's site is already on the upper end of what I consider to be a usable font size (22px), and this is even larger (24px). At some point, larger type makes it difficult to quickly scan the page.

For comparison, even Tufte's own site is rendered with a 16px font.

<comment><USER22> The font appears to scale (in a step function?) related to pixel-width of your window. Try using a narrower window. (This may or may not be related to retina resolution. I didn't read the code to find out.)

<comment><USER23> The font size _does_ scale, in ways I find quite annoying. Smaller scaling range would likely be better. Or stick to device/user defaults.

</comment></comment></comment><comment><USER24> Needs sparklines.

[https://www.edwardtufte.com/bboard/q-and-a-fetch- msg?msg_id=...](https://www.edwardtufte.com/bboard/q-and-a-fetch- msg?msg_id=0001OR)

<comment><USER19> At the moment I think sparklines are outside the scope of this project. However:

[https://github.com/daveliepmann/tufte- css/issues/22](https://github.com/daveliepmann/tufte-css/issues/22)

</comment></comment><comment><USER25> I love the margin diagrams, and would happily use this for print based output, but I fear the mobile world would have meant Tufte would redesign his approach to suit the smaller uni-column world, and the best layout on page is very different to that on a four inch screen

<comment><USER26> Looks quite good on desktop, but even on my Note 3 -- the space used for sidebars take _way_ too much horizontal space.

It will take some work, but with proper collapsing rules for narrow screens, this would be very nice.

One problem might be (as others have indicated) that what works in print doesn't have to be the best solution for digital -- especially where the page size/width (window size) can vary substantially. Personally I typically give my web browser 2/3 of the screen on my laptop, half on my desktop -- unless I'm using it for reference in which case my "work window(s)" \-- terminal and/or editor get the 2/3 width slot.

This layout would therefore be useless in code documentation for my use-case -- the window would be ~50% padding, with an anemic main-column that'd be almost unreadable due to fitting only a single word per line.

[ed: At the very least tufte.css and/or latex.css should enable/use CSS3 _hyphen_ s in order to get word hyphenation that is a little more like LaTeX, and not completely broken! As is the ragged right is painful in narrow viewports.]

</comment></comment><comment><USER27> I've always taken a liking to sidenotes, but the main problem with them is they are complicated by Markdown's rendering of footnotes.

It's great for many other purposes, but a lot of people will probably prefer doing things in Markdown.

<comment><USER28> I use sidenotes very heavily in my book[1], which is written in Markdown[2]. Instead of putting the contents of the asides in the middle of a paragraph, I pull them out into separate <aside> tags. Inside the paragraph, I have a little <span> with a name to indicate which text the <aside> should be positioned to line up with.

There is some CSS to put the asides on the side[3] (with a ton of variations to make it play nice on mobile). Then there's a bit of JS to correctly line them up with <span> markers[4]. It was a bit more effort than I expected, and I don't like having to rely on JS, but the output is really nice, I think.

For example, take a look at this chapter[5], and try resizing your browser window or hitting it on a mobile device.

[1]: [http://gameprogrammingpatterns.com/](http://gameprogrammingpatterns.com/)

[2]: [https://github.com/munificent/game-programming- patterns/blob...](https://github.com/munificent/game-programming- patterns/blob/master/book/introduction.markdown)

[3]: [https://github.com/munificent/game-programming- patterns/blob...](https://github.com/munificent/game-programming- patterns/blob/master/asset/style.scss#L207-L253)

[4]: [https://github.com/munificent/game-programming- patterns/blob...](https://github.com/munificent/game-programming- patterns/blob/master/html/script.js#L24-L42)

[5]: [http://gameprogrammingpatterns.com/double- buffer.html](http://gameprogrammingpatterns.com/double-buffer.html)

<comment><USER12> I like how your asides move into paragraph flow as the page narrows. The Tufte CSS page hides the sidebar content completely as the page narrows, which eliminates access to crucial information.

(Aside: I really love using the Mobile Design View in Firefox and Chrome for inspecting responsive behavior. You can drag the viewport size by hand, or switch it to presets that represent target devices easily. All while keeping the full width of the browser pane for developer/inspector UI. FF even has a nice toggle shortcut, ⌥⌘M on OS X.)

<comment><USER23> Another responsive sidenote implementation, screenshots:

[http://imgur.com/a/TXpis](http://imgur.com/a/TXpis)

<comment><USER29> > screenshots

What help. /s

<comment><USER23> Basic sidenotes [http://codepen.io/dredmorbius/pen/OVmKZX?editors=110](http://codepen.io/dredmorbius/pen/OVmKZX?editors=110)

 _Not_ responsive, but @media queries on width and re-scaling width, margin, background colour, and border colour is what gets you that.

Motherfucking Website. No sidenotes. but other bones of my basic design. [http://codepen.io/dredmorbius/pen/KpMqqB](http://codepen.io/dredmorbius/pen/KpMqqB)

Daniel Bos's sidenote implementation: [http://loadingdata.nl/waves/](http://loadingdata.nl/waves/)

(Degrades nicely for non-CSS viewers, _not_ responsive.)

</comment></comment></comment></comment></comment></comment><comment><USER30> One of the things I love most about Tufte is the way _his text introduces every single graphic_. He tells you what he's about to show you; then he shows you. This stands in stark contrast in most books where the figures are only very loosely coupled to the text. I didn't realize how jarring I found the convention until Tufte! And it makes perfect sense in hindsight: why did we think it's okay to put figures "within a page or two" of the relevant text?

This handout, by contrast, doesn't do this, and so it throws away something that, to me, is central to Tufte's appeal.

<comment><USER19> That's a great point. I added some text to the demo document making that point, but I don't have actually relevant graphics or figures to add to it. If you have any suggestions for wording, just email me or open a GitHub issue. Cheers!

</comment></comment><comment><USER31> I like it as a starting point, a minor sidenote though: What you perceive and describe as bright red links, code and sidenotes is for me, as a color blind, almost indistinguishable from the body text if it wasn't for the underlines and monospaced font. Those off-black and red colors are for me just very similar dark hues on an off-white background. If you want to highlight these elements the current red does a poor job for colorblind people like me.

<comment><USER32> I'm colorblind as well, and did a little double-take when I read this comment, but I think you misunderstood. "Other forms of text—for instance, links and code—are slightly lighter and sidenote numbers are bright red to distinguish them from inline text." Only the sidenote numbers are bright red.

<comment><USER33> Yes, I can confirm to you that only the sidenote numbers are colored.

</comment></comment></comment><comment><USER34> Well done. Though shouldn't the sidenotes use HTML5's <aside></aside>? How does the vertical alignment of sidenote callout and sidenote work?

<comment><USER35> I agree.

It looks like sidenotes are floated right and given negative right margin. ([https://github.com/daveliepmann/tufte- css/blob/master/tufte....](https://github.com/daveliepmann/tufte- css/blob/master/tufte.css#L120-L129))

</comment></comment><comment><USER36> I must have missed something. Since when does HTML have elements called article and section?

<comment><USER37> HTML5 introduced article, section, footer, nav... and many other semantic elements

</comment></comment><comment><USER38> I hope someone follows this up with Doumont CSS.

[http://www.treesmapsandtheorems.com/](http://www.treesmapsandtheorems.com/)

</comment><comment><USER39> This would make a great IPython notebook style as well...

</comment><comment><USER40> To the haters: this looks like something you could hand tweak to get a great result.

<comment><USER41> They're not haters. This is the type of discussion you should expect when discussing typography. It may seem like endless nit-picking, but it's the sum of nit-picking over all the tiny details that adds up to great typographical design.

I understand this type of thread doesn't really fit HN's "no gratuitous negativity" guideline, but IMO there's really no other way to constructively discuss typography. The whole field is made of attention to excruciatingly tiny details, but taken together, it adds up to great and beautiful design. It's one of the things I love about it.

Maybe note that none of the criticisms are entirely dismissive or unnecessarily harsh, but well-argumented, just about tiny details.

</comment></comment><comment><USER42> This seems like an okay idea, but does anyone feel that the italics used in the headings (font family: ETBembo) are generated and are quite ugly?

<comment><USER43> The italics are basically the only thing that looks OK here: [http://i.imgur.com/H9X3Hpl.png](http://i.imgur.com/H9X3Hpl.png)

Linux/Firefox FWIW.

<comment><USER44> Linux / Firefox has long been the most horrible combo for font rendering - check out Chrome on OSX [http://imgur.com/jsHwIk7](http://imgur.com/jsHwIk7)

<comment><USER45> Seems fine with Linux / Firefox for me:

Work: [http://paste.click/LKBLqt](http://paste.click/LKBLqt)

Home: [http://paste.click/zfhnYG](http://paste.click/zfhnYG)

</comment></comment></comment></comment><comment><USER46> I'm surprised how critical people are on this thread.

Perhaps it touched a nerve because there are quite a lot being done in a relatively small space that makes it look messy.

An option would be to show some features that gel together and list the others in the git markdown page.

<comment><USER47> For lack of a better word, this implementation is half-assed. If the whole point is typography that's both gorgeous and legible, then you had better dot your i's and cross your t's, and this doesn't. As a very simple example, look at the capital B here in the _name of the font_ :

[http://snag.gy/yup65.jpg](http://snag.gy/yup65.jpg)

There's a chunk missing at the top, and it looks like crap! It _should_ look like this:

[https://upload.wikimedia.org/wikipedia/commons/4/49/BemboMT....](https://upload.wikimedia.org/wikipedia/commons/4/49/BemboMT.svg)

Now I understand full well that it's very difficult to make something that looks good on every OS, browser, screen size, resolution, yadda yadda -- but in this case, that's the entire point!

</comment></comment><comment><USER48> great implementation of tufte's look, though i disagree with much of what tufte believes is great information design.

<comment><USER49> Could you elaborate? What struck me was the limitation to two levels of section/subsection. Perhaps I'm deluding myself, but I _think_ I prefer my information in clearly layered abstractions, with the presentation following the contours of the abstractions.

</comment></comment><comment><USER50> Tufte-LaTeX link: " ... the style of Edward R. Tufte and Richard Feynman."

Woah! wait a minute. Style of Richard Feynman? When did Feynman get involved with typography/typesetting work?

<comment><USER51> It's referring to the Feynman Lectures on Physics [http://www.feynmanlectures.info/](http://www.feynmanlectures.info/), he was presumably involved in the presentation aspects of that (the books I mean, not the site).

</comment></comment><comment><USER52> I don't know who Edward Tufte is, but this seems to me like a place where we could be living rather well without classes.

More on that:

* [http://www.smashingmagazine.com/2012/06/19/classes-where-wer...](http://www.smashingmagazine.com/2012/06/19/classes-where-were-going-we-dont-need-classes/)

* [http://fiatjaf.github.io/classless/](http://fiatjaf.github.io/classless/)

<comment><USER53> You might want to educate yourself. He's rather well known.

[https://en.wikipedia.org/wiki/Edward_Tufte](https://en.wikipedia.org/wiki/Edward_Tufte)

<comment><USER52> "Educate"? Are you serious? Knowing famous people is education now?

<comment><USER54> AT the very least, knowing why some people are famous in their industry or field.

</comment></comment></comment></comment><comment><AUTHOR> GitHub: [https://github.com/daveliepmann/tufte- css](https://github.com/daveliepmann/tufte-css)

</comment><comment><USER55> I really like it. Unfortunately, it is not clear what license ETBembo carries, if any. In fact Tufte indicated that ETBembo is not public. So it may not be legal to use it. I think that Dejavu serif is an acceptable (superior?) substitution.

Source: [http://www.edwardtufte.com/bboard/q-and-a-fetch- msg?msg_id=0...](http://www.edwardtufte.com/bboard/q-and-a-fetch- msg?msg_id=0000bm)

</comment><comment><USER56> Would have been nice if they had updated it more for the web. When I make my browser very narrow, for example, the side figure is squished so tiny it is unreadable. Good web sites are reactive and would have moved it below the section at that point instead of keeping it at the side. Seems like they just aped a book style and ended up with something not good for the web.

</comment><comment><USER57> My feeling is that it looks great compared to most of the stuff I see on the web. It's a good start for a plain minimalistic website. The content needs more work (one "Tufte's" is fine, while the other don't) and all "don't" have incorrect '.

</comment><comment><USER41> Something wrong with the centering in my Firefox (v39, Linux) browser: [http://i.imgur.com/8t95PQS.png](http://i.imgur.com/8t95PQS.png)

Similar thing happened to the full-width image.

I'll try to submit it to the Github.

<comment><USER19> Sorry for the trouble. Both of these should be fixed now. The second table style PR wasn't fully tested in FF.

</comment></comment><comment><USER58> I don't think Tufte ever uses top and bottom borders for tables. Also, the delimiter below the heading should not be so bold; it's usually a very thin line.

<comment><USER19> Thanks for the input. This spurred me to make some changes to tables: [https://github.com/daveliepmann/tufte- css/commit/c46b8b516a0...](https://github.com/daveliepmann/tufte- css/commit/c46b8b516a06537f7f40106e0ebd1aed752c4ba4)

</comment></comment><comment><USER59> Biggest issue for me is that on mobile all the side notes go away (on portrait) and there is no fallback.

</comment><comment><USER23> First: I very much admire the spirit and concepts presented here, even where specific aspects strike me as less than ideal. In a world of Web designs which are both grossly overwrought _and_ fragile, this is a compelling antidote.

 _Specific designs are born of their environment_

Tufte's principles are born of their medium, and both message and format change as medium does. Understanding the _why_ and _wherefore_ is far more important than the _what_ of design.

 _Borrow but don 't ape_

So take the _concepts_ and use those which are applicable. But allow yourself leeway as well. Constraints of pagesize, contrast, and other aspects make some of Tufte's suggestions less advisible for online. I find the grey-field charts translate poorly, for example.

 _Layout doesn 't fix bad writing, but it helps most, and exposes bad_

 _Good_ writing can be killed by bad layout and presentation — this is a frequent observation in HN comments on overstyled articles. _Middling_ writing, with good, well-structured layout, becomes easier to read. _Bad_ writing lies naked on the screen when shorn of its shielding raiment. I've found that small changes — drop-cap initials and a bold first line, help in acquiring content particularly when presented in a "cards" view. Quite the accidental discovery, but one I find very useful.

[https://ello.co/dredmorbius/post/QGKKdiuqUw6O7ROl-V3uJA](https://ello.co/dredmorbius/post/QGKKdiuqUw6O7ROl-V3uJA)

Yes, much of the beauty of Tufte's books comes from the _totality_ of how they're architected: ideas, structure, presentation, layout, typography. But incremental steps _help_.

 _Embrace and Accept Medium Properties_

Paper is fixed size. Online is dynamic. Inks are expensive, colour moreso. Pixels and rgba values are cheap, though _too_ much flash is distracting. Images can offer zoom for detail on hover or click.

Sections. While Tufte uses only chapters and section headings, his books are _also_ divided into Parts. As are Feynman's _Lectures_ as I recall. In practice you'll find at least three, and frequently four, levels of hierarchy may need support: Part, Chapter, Subsection, and SubSubSection. Technical writing may have more levels of hierarchy.

Font sizes: _show deference to the user 's stated preference, if it exists_. If not, _prefer rem and em units_ to _px_ or _pt_. Yes, MSIE back support and broken Android implementations mean you'll need workaround fixes, but you can at least build em/rem units in as your base.

Font faces. I take exception with much of the font-bigotry noted here. I honestly Just Don't Fucking Care most of the time, though I find online font choices are occasionally _spectacularly_ poor. Generally I prefer a decent, _widely available_ , and _good enough_ font for online presentation. Excessive fucking with dynamic Web fonts leads to many pages _which fail to render text at all_ on older devices.

Colour. Text should be high, though not extreme, contrast. A _slightly_ creamy background is preferable to lighter text. For _Web-specific elements_ , particularly hyperlinks, some affordance indicated by colour is helpful. Also joining related items (e.g., sidenotes and related text).

CSS counters. These take the manual tracking out of identifying content and references. Sections, headings, references (side / end notes), figures, tables, images, etc., can all be automatcially numbered. This is useful (though not universally supported).

Graceful degredation. A challenge with any UI/UX enhancement is that various clients don't support all features. Degrading _gracefully_ , and providing maximum possible content _and_ structure, really helps. (My own sidenote experiments fail somewhat in this regard.)

:hover, :active, and other interactive elements. While the design shouldn't _rely_ on these (see above), _offering additional hints by way of these mechanisms_ can be useful.

Contrast. Provide it. ContrastRebellion is a frequently referenced site.

 _Accomodate Variable Viewports_

Responsive design is pretty much a necessity these days, and it's easier than you think.

In the case of Tufte.css, some principles, such as ample whitespace, make sense _in the context of print where sizes are rigidly defined. For online content, sidebars, sadly, fail to remain viable as viewport widths shrink. My solution was to transition sidenotes to what are effectively callouts, with a gradually increasing background shading to identify these, as viewport size decreases.

Or rather, in a mobile-first design, you build callouts which become marginal sidenotes as space _increases _.

_ What HTML/CSS Needs*

References. Seriously. Why are we hand-tooling fucking endnotes / sidenotes, _still_?

Robert Nystrom's _Game Programming Patterns_ <aside> sidenotes are interesting, see his comments elsewhere. I'm not fully sold, but these could prove useful.

A client-manipulable comments / discussion aspect is another element that I'm finding myself increasingly wanting, something that is structured by way of data (author, date, references, subject), but whose ultimate presentation (flat, nested, collapsed, semi-threaded, etc.) is ultimately under client control.

 _HTML5 is an awfully good start_

 _A grab-bag of some of my own experiments_

I've been playing with many of the ideas presented here as well as others.

Sidenotes: [http://imgur.com/a/TXpis](http://imgur.com/a/TXpis)

Motherfucking Website — this is the bones of my own preferred site layout, though it lacks the responsive elements and much of the polish (which I'm still working on): [http://codepen.io/dredmorbius/pen/KpMqqB?editors=110](http://codepen.io/dredmorbius/pen/KpMqqB?editors=110)

HREF sidenotes: similar to the reference sidenotes I use, and incorporating elments: ::before and ::after content, counters, and negative-margin offsets. [http://codepen.io/dredmorbius/pen/XJGwQv](http://codepen.io/dredmorbius/pen/XJGwQv)

Ello CSS implmentation of HREF sidenotes: [http://i.imgur.com/YA0cCNs.png](http://i.imgur.com/YA0cCNs.png) [http://i.imgur.com/QNygLE8.png](http://i.imgur.com/QNygLE8.png)

Sample site design with table formatting: this adds greenbar and a current- line indicator but otherwise borrows from Tufte's table concepts.

[https://www.reddit.com/r/dredmorbius/comments/3832wx/occupat...](https://www.reddit.com/r/dredmorbius/comments/3832wx/occupation_classifications_growth_and_change_over/)

</comment><comment><USER60> Nice job ;)

</comment><comment><USER61> nice share and creation</comment>


ClamOne - An Open Source Linux Front End to the ClamAV Antivirus Engine - <AUTHOR> https://github.com/ClamOne/ClamOne <comment><AUTHOR> This software is designed to provide a more complete desktop antivirus experience. Including real-time threat detection of events monitored by the ClamAV backend.</comment>


Ask HN: What to Do with All the Trash? - <AUTHOR> All the waste. Do you ever think about it? How to take this stuff and make something great again <comment><USER2> Stop making it.</comment>


McCarthy Math - <AUTHOR> http://habs.sdf.org/mccarthy-math/ <comment><USER2> Nice write-up!

I find it interesting that the original LISP had commas between list entries, while all "real" LISPs use spaces.

I also like how they introduce lists straight away, rather that starting with pairs and constructing lists from that. I always found that to be a distracting detail. Yes, it highlights the simplicity: You don't need lists, all we need is pairs! But even that is not true: You don't even need pairs, because you can construct them from plain, primitive functions.

However, I find it strange that all examples are long strings. Nobody reads LISP code that way. Proper indentation would help a lot with readability. In particular, the similarity with the provided Python samples would become more apparent.

<comment><USER3> IIRC clojure also allows , as discarded separators

</comment></comment><comment><USER4> google cache link: [http://webcache.googleusercontent.com/search?q=cache:WjVCXyP...](http://webcache.googleusercontent.com/search?q=cache:WjVCXyPa69QJ:habs.sdf.org/mccarthy- math/+&cd=1&hl=en&ct=clnk&gl=ca&client=firefox-b) (bcs site wasn't loading for me)

</comment><comment><USER5> Thanks for posting this! Got a few emails about it and was wondering where they came from. I've always wondered about taking it further i.e. with decimal representation, and would love any references on the topic if anyone knows some.

</comment><comment><USER6> SDF is an awesome service, but I just hate their BBS interface. I was just a few years too young to have been into that subculture and it always seems neat, but dammed if I don't hate using any BBS I've ever used.

So awkward and unintuitive.

<comment><USER5> Yep, SDF is awesome! I too was too young to be a part of the BBS world at its peak, and I agree that 'com' and 'boards' are pretty confusing for me at times. But using it as a cheap IRC client, web host, email server, and VPN (over SSH if you don't want to be a VPN-level member) has been super useful for me, and it's nice knowing there's a community behind it that's been around since the 80s.</comment></comment>


Hamlet Was Wrong – Hiring Nihilism in Actiom - <AUTHOR> http://revisionisthistory.com/episodes/49-hamlet-was-wrong <comment><AUTHOR> Since Silicon Valley interviews are a hot topic here, I thought Malcolm Gladwell's podcast episode on hiring nihilism might be of interest. It was slightly strange to hear Gladwell talk about our inability to judge candidates while advertising ziprecruiter, but besides that a very interesting episode.</comment>


Systemd Absorbs "su" Command Functionality - <AUTHOR> https://tlhp.cf/lennart-poettering-su/ <comment><USER2> Thank the deities for Theo de Raadt. Some consider him to be an asshole, but he's my kind of asshole!

I love OpenBSD. I know it's too limited to be for everyone, but it suits my purposes quite well. And I can confidently assert that, for as long as Theo is the not-so-benevolent dictator for life, that OpenBSD will _never_ have anything as messy and complex as systemd.

What I don't understand is how the vast majority of the Linux community is not just allowing, but encouraging, systemd to continue to grow without bound.

<comment><USER3> You can't argue with Poettering. He writes technically superior solutions for extremely edge-case problems and then markets them fiercely, dismissing people as stupid if they prefer the caveman's way [e.g. UNIX]. To disagree is to say you prefer a kludgy unintelligent mess. Which, we do. But you don't win points in a feature-comparison pissing contest for that.

Theo is basically who Poettering would be if he forked Linux (and was less whiny). He probably hasn't because it would be a ton of work and few people would use it, and he couldn't benefit from the base of support of the Linux ecosystem. There's a lot of crap out there that's Linux-only now, or officially only supports certain distros. It makes much more sense to convince someone to shoehorn your code into their distro than to make your own.

Few desktop users ever notice it, most server admins aren't really that knowledgeable, and most devs just write userland code. I think most people don't think about how much more of a headache things have become. After all, hasn't Linux/UNIX always been a headache, relatively speaking?

<comment><USER4> > Theo is basically who Poettering would be if he forked Linux (and was less > whiny).

These personal insults make it difficult for people to take the anti-systemd crowd seriously.

</comment></comment></comment><comment><USER5> The actual article is here (it's linked in the /. page)

[https://tlhp.cf/lennart-poettering-su/](https://tlhp.cf/lennart-poettering- su/)

As usual, it's a much more reasoned, moderate, thoughtful, and cautious response to a deeper issue than just 'trying to take over the whole operating system'.

IIUC, there's no suggestion to deprecate su, but to provide a more predictable rights elevation (which includes flipping to a different or less privileged uid/gid) using an additional feature that's implemented in one of the systemd components.

<comment><USER3> The apologist's response is sometimes difficult to grok. Here, let me translate:

 _" Really guys, it's obvious he's not trying to take over the operating system. He's only saying it's full of flawed obsolete technology which in some technical or user-specific way doesn't make sense, so he's going to replace it all piece by piece until it's eventually impossible to recognize the operating system as 'Linux', or even UNIX-like. It's just a gradual conversion into a completely different OS, not a takeover at all. What's the big deal?"_

<comment><USER6> It is ok that you do not understand the issues being dealt with here, you just have to say so.

<comment><USER7> Your comment is content-less. Based on it, I could say exactly the same to you.

The discussion would benefit if you would take the time to post a _new_ comment with a meaty discussion of the technical merits of rolling this into systemd vs. doing the work to write a PAM module that behaves in the required manner.

Bonus points if you can point out how this su replacement comports with the systemd proponents' continual refrain that "All parts of systemd that live outside of PID 1 are optional; you don't _have_ to use them!". :)

I look forward to your post! Heated, substance-less discussions are tiresome.

<comment><USER6> RE: "vs. doing the work to write a PAM module that behaves in the required manner." \- That's easy, the functionality necessary to create a clean login in a container is beyond the scope of what PAM does.

<comment><USER3> Define clean login? I'm not aware of such a spec.

In fact, the author of the change, Lennart Poettering, says nothing about wanting to have a login, much less a 'clean' one. They have login functionality already. He only mentions that the way su provides the user a shell as the super-user is 'very unclear' and 'weakly defined', and thus the tool has a 'broken concept'.

The reason this was even written was a bug that systemd introduced. As i'm sure you're well aware, $XDG_RUNTIME_DIR is an environment variable used by the XDG base directory specification to specify a directory that the user's applications can write state to, and is destroyed on termination of the session. The pam_systemd plugin apparently fails to do this because it tries to create a new session when they're already running in a session.

Oh hey, look. There's a PAM module that handles setting this variable, too. [https://apps.ubuntu.com/cat/applications/raring/libpam- xdg-s...](https://apps.ubuntu.com/cat/applications/raring/libpam-xdg-support/)

As i'm also sure you're aware, 'su' is not intended to be a login program. That's what login is for. What Poettering was confused about is defined by the source code for su, in su-common.c of util-linux:

 _" Run a shell with the real and effective UID and GID and groups of USER, default `root'."_

And that seems to be what 'su' does. Hmm.... yeah, this is definitely a very unclear and weakly defined concept. I can see now why Poettering had to implement a new tool for systemd to fix a bug with pamd_systemd not being able to create a session, and the user not knowing how to use the xdg-support pam plugin. Stupid UNIX!

As to another user's comment about how 'su' works: if you use it without the login-simulation feature, it only changes HOME and SHELL (and USER and LOGNAME if not becoming superuser). With login-simulation, it changes HOME, SHELL, USER, LOGNAME, PATH, leaves TERM alone, and deletes all other environment variables.

This is seen as a bug, which I can understand, if you're running 'su' in a complicated new system with new features which need special care to support. In such a case one would normally patch the application to include support and not reinvent the wheel, but that requires working with other people, which isn't really systemd's strong suit.

<comment><USER8> In effect, something su was doing broke whatever infosec voodoo systemd was trying to do to keep track of "sessions".

Part of this was what path that xdg variable got set to, so in their infinite visdom the systemd devs decided to clear it whenever su was run.

This in turn lead to various programs curbstomping user files as root (in particular Gnome ones, surprise surprise).

At this point in time it seems like one would do best to stay well away from anything related to Systemd, Gnome, Freedesktop and Fedora. The mixing of roles in those groups is downright worrying (i wonder how many times i have seen someone use a Gnome blog to port straight RH/Fedora news, even though the latter surely has their own blogging facilities).

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Lennart's basic premise for doing this is quite wrong. Not completely groundless, but still substantially wrong. He writes:

> [su] will given you kind of a shell, and it's fine to use it for that, but > it's not a full login, and shouldn't be mistaken for one.

Well, yes, by default. But... that's what "su -" is for. Gives you new root shell as a treat, complete with env clean-up and running root's preferred shell interpreter.

Granted, having to type two extra characters each time is mildly annoying, but hardly a good reason to produce grand claims like "su is really a broken concept".

</comment><comment><USER10> The Freedesktop foundation is starting to scare me. I feel like all of their projects, in aggregate, are heading in a direction I do not know if I like.

<comment><USER8> Look into its history, it got fired up by Havoc Pennington out of RH. Sadly it seemed to work at first, but now it is basically a tool for Gnome/Fedora to bludgeon the rest into submission by sheer weight of code.

Frankly it seems that Linux has grown its own "internal" MS. A massive, overfed gorilla in the form of Red Hat. And it is now swinging its weight around, thinking it has "won" some kind of unix war. Sadly it may well be right, as there is few that can match it in the amount of man hours it can throw at a project.

Damn it, [https://github.com/subuser- security/subuser/issues/216](https://github.com/subuser- security/subuser/issues/216) is a "blog" entry related to Docker that holds a mention of such weight throwing.

"A number of developers from RedHat were once very involved in the project. However, these developers had a very arrogant attitude towards Docker: They wanted docker changed so that it would follow their design ideas for RHEL and systemd. They often made pull requests with poorly written and undocumented code and then they became very agressive when those pull requests were not accepted, saying "we need this change we will ship a patched version of Docker and cause you problems on RHEL if you don't make this change in master." They were arogant and agressive, when at the same time, they had the choice of working with the Docker developers and writting quality code that could actually be merged. Another thing they often said was along the lines of "systemd is THE ONE AND ONLY INIT SYSTEM so why do you care about writing code that might be portable?" Or "even though the universal method works with systemd now. A redesign has already been planned in systemd, so do it the new systemd way and don't be portable."(This is in response to the fact that Docker writes to cgroups, and systemd would like to be the "sole writter to cgroups" some time in the future.)"

<comment><USER10> Thank you for the link. This makes Freedesktop seem almost sinister.

<comment><USER8> I do believe it was started with the best of intentions (but the road to hell is paved with those and all that).

Its just that one party involved in all this has better lines of communications, more funding, and apparently a fervent belief that their solution is always the right one.

End result is something of a unconscious steamrolling of everyone else.

</comment></comment></comment></comment><comment><USER11> Systemd is still hungry...

[https://imgur.com/gallery/D1XK8nk](https://imgur.com/gallery/D1XK8nk)

<comment><USER4> This comment is content-free.

<comment><USER7> Nah. Systemd started out as "just an init system". It has grown and grown since those days, ages ago.

One day, systemd _will_ eat udev:

Kay Sievers on Tue, 3 Apr 2012:

"After udev is merged into the systemd tree you can still build it for usage outside of systemd systems, and we will support these builds officially. In fact, we will be supporting this for a long time _since it is a necessity to make initrds (which lack systemd) work properly_." [0]

(Emphasis mine.)

[0] [https://lwn.net/Articles/490413/](https://lwn.net/Articles/490413/)

<comment><USER8> Gentoo started eudev in part because extracting udev from the larger systemd project became too cumbersome. Each time there was a update the process changed enough to break attempts at automation, apparently.

the Linux From Scratch team adopted eudev for their non-systemd edition ("classic") for a similar reason.

<comment><USER7> Yeah, I know. Due to inertia, I'm _still_ using sys-fs/udev and will _probably_ continue to do so until Sievers makes good on his implied threat.

<comment><USER8> i seem to recall that some interfaces had been moved from udev to libsystemd, or something, recently.

<comment><USER7> Then, perhaps the time for migration to eudev is nigh! :D

I haven't followed the udev saga in a _very_ long time. I _do_ know that I have =sys-fs/udev-224-r2 installed and I _don 't_ have systemd installed. I also don't have any executable files on my system named "systemd".

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> "machinectl" ? if the commands were actually sensibly named it would be less bothersome.

<comment><USER13> You can alias it to whatever you want, but the name is reasonable in context. machinectl is the interface to systemd-machined which is used to manage the host system, containers, and virtual machines in a consistent way.

I've got a bunch of RHEL systems at work and I've just aliased all the -ctl commands.

If you want to open a shell on a container you would run "machinectl shell my- container-1"

</comment></comment><comment> iso8859-1 Why link to Slashdot? @dang, please fix this?

<comment><USER14> It's usually faster and more effective to send an email to firstname.lastname@example.com .</comment></comment>


Ask HN: How do you hackers maintain personal relationships? - <AUTHOR> I learned to 6 years ago, Although I don't consider myself a decent programmer, learning to code has helped me a great deal in understanding problems and approaching problems systematically.
Most of the world seems to be thinking not based off of logic but through thinking patterns inherited from their environment/society. Especially in personal relationships people are generally not as logic driven. In my life sometimes my friends and girlfriend are sloppy, sometimes I am sloppy but I seem to be making decisions based on logic on everything and completely forgot my old lame way of thinking. Although I have a healthy social life, have a lot of laughs every day. I get called machine or robot sometimes. Sometimes I am afraid they are right. (Not literally!)
How do you hackers/programmers who are driven by logic keep friendships and relationships? <comment><USER2> I don't believe humans are logical creatures otherwise learning advanced math would come easy (I'm sure there is a flaw in that type of thinking). Do you happen to be on the autism spectrum?

Unfortunately I'm not driven by logic and I have difficulty maintaining friendships. They are work. It takes a lot of time to build a good friendship. It takes a lot of effort from both parties to regularly check up and see how the other is doing. Scheduling hangouts, etc.</comment>


PIC, PIE and Sanitizers - <AUTHOR> https://mropert.github.io/2018/02/02/pic_pie_sanitizers/ <comment><USER2> Minor nit - inside a given compile object (library, framework, main executable) with PIC all accesses are performed using a pc relative address not a table lookup. The performance impact should be no where near 10%. In fact on arm pc relative addresses are /faster/ as loading an absolute address requires multiple instructions (if nothing else it hurts the icache).

More seriously the use of a offset table is an implementation detail.

On macOS at least dyld directly patches the majority of cross-object calls and accesses through stubs, either converting access to a direct absolute address or a assembly stub that tail calls to the correct place. (Very much a generalization here :) )

So yes if your code is extremely heavily limited by call and load overhead from accessing another library you'll see a real perf impact. But at that point you should be asking why you're calling such a lightweight function so much that the call overhead itself is a problem.

<comment><USER3> The 10% quoted was for x86-32 specifically, which does not have PC-relative addressing modes (x86-64 on the other hand does). In x86-32 PIC code compiled by GCC for example you will see a lot of calls to __i686.get_pc_thunk.bx to obtain the PC value in a general purpose register which can then be used for address generation.

<comment><USER2> I don't really consider 32bit builds to be something that you should be considering these days -- you should really be building x86-64 at this point. iOS is 64-bit only, macOS is warning devs about 32bit compiles, I refuse to believe that windows is still pushing 32bit. I can't imagine building linux 32bit at this point -- seriously, why would you throw away that perf?

</comment></comment></comment><comment><USER4> I've been following for a while the CMake issue #14983 ([https://gitlab.kitware.com/cmake/cmake/issues/14983](https://gitlab.kitware.com/cmake/cmake/issues/14983)), which doesn't really get much attention but affects the behavior of the feature POSITION_INDEPENDENT_CODE. As it is, it's not very reliable because it misses adding the flag '-pie' to the linker step, which AFAIK should be done to generate a proper PIE executable.

All this became relevant to me while integrating some Sanitizer CMake modules in my projects: [https://github.com/arsenm/sanitizers- cmake](https://github.com/arsenm/sanitizers-cmake) where I opened an issue to talk about the subject ([https://github.com/arsenm/sanitizers- cmake/issues/13](https://github.com/arsenm/sanitizers-cmake/issues/13)).

Turns out Qt seems to depend on some obscure / not very well documented behavior of PIC instead of PIE, so their builds would break if using '-pie', or at least that's what I understood. In summary I'm amused how such a seemingly simple operation is getting so much time and complications to implement properly.

I'm happy to see more conversation about this topic, because as of now it is still somewhat difficult to grasp and use correctly.</comment>


NeoTabs: Accessible-Tabs jQuery Plugin revamped - <AUTHOR> https://github.com/PascalPrecht/jquery.neotabs.js A new re-written version of Dirk Ginader's Accessible-Tabs plugin. Feedback welcome! <comment><USER2> It'll be nice if I could get a demonstration page without having to clone the repo.

<comment><AUTHOR> Updated gh-pages branch, re-try and checkout the examples: <https://github.com/PascalPrecht/jquery.neotabs.js#examples>

</comment></comment><comment><USER3> I find surprising that you seem to have put a lot effort into writing a comprehensive README.md and submitted to Hacker News and yet, there is no "easy to find" demo or screenshot. I suggest you immediately set up a demo on the gh-pages branch and link to it at the top of your README. Anyways, take this as friendly and in any case, thanks for publishing this.

<comment><AUTHOR> Yeap you're right. Acually, you can simply clone the repo and open the examples in the browser. Nevertheless there has to be a demo page. I'll build one. Promise. And thanks for the feedback!</comment></comment>


Revisiting Sutton Hoo, Britain's Mythical Ship Burial - <AUTHOR> https://www.newyorker.com/magazine/letter-from-the-uk/revisiting-sutton-hoo-britains-mythical-ship-burial <comment><USER2> I'm from Suffolk - my school used to go here on school trips. The funny thing about the site is that it's basically just a hill in a field now, so needless to say it was a massive letdown for eight-year-old me who was expecting to see a massive Viking longboat. The tourist centre is nice though.

<comment><USER3> The helmet seems pretty impressive.</comment></comment>


History of Flash and Ilford Flashguns - <AUTHOR> http://www.photomemorabilia.co.uk/Ilford/Flash_History.html <comment><USER2> I love huge, detailed, well sourced, documents like this. They are often on obscure or not "mainstream" topics. I often think that these kinds of writers are essentially the important historians of our age. As long as this document survives, a hundred years later someone can read it and understand the details of the history of flash photography. People rarely think about just how important someone's obsession over a "weird" or "pointless" topic can be for the historians of the next century.

I love the way individual web pages and blogs allow anyone to become a thorough historian like this. This is the kind of thing that put stars in the eyes of the dreamers in the infancy of the internet. Though you could argue that anyone could print a small amount of their own work ever since the printing press, the bar has significantly been lowered.

</comment><comment><USER3> This may be covered in the article, but flash bulbs are still used where you want a lot of light but don't want to bring in a lot of equipment (battery packs, etc). For example, they're still used in cave photography. You set the camera down on a tripod, open the shutter, and fire off a few flash bulbs in the cave.

<comment><USER4> Neat, I didn't realise they were still used.

Related to flashes, but not to these flashbulbs, always thought these looked cool (airgap flash) - [http://www.techphotoblog.com/tpb-67/](http://www.techphotoblog.com/tpb-67/)

</comment></comment><comment><USER5> I have many fond memories of discovering that in a pallet of equipment that I had bought for $10 at auction was a couple of cases of flash bulbs (it came from SRI where they had used these in some sort of high speed photography setup).</comment>


Uritrottoirs: Open-air urinals in Paris cause uproar - <AUTHOR> https://edition.cnn.com/2018/08/14/europe/paris-urinal-intl/index.html <comment><USER2> Life imitating art once again - [https://en.m.wikipedia.org/wiki/Clochemerle](https://en.m.wikipedia.org/wiki/Clochemerle)

( The BBC adaptation, available on DVD, is also excellent IMHO )

</comment><comment><USER3> I'm not a fan of open-air urinals. That said, on the subject of gender inequality, almodt all public urination (at least, from my anecdotal experience) is from males.

</comment><comment><USER4> Great, but Not In My Back Yard!</comment>


WebUSB connects devices directly to the browser via the web - <AUTHOR> http://react-etc.net/entry/webusb-connects-devices-directly-to-the-browser-via-the-web <comment><USER2> I can imagine being about to read and write to USB devices from a webpage might be interesting, though I'm not sure how many people would trust it. I've played with the idea already by writing a Chrome app using the USB API - [https://developer.chrome.com/apps/usb](https://developer.chrome.com/apps/usb) \- it works really well.</comment>


Forget about Users Focus on Profit Instead - <AUTHOR> https://taylorpearson.me/profit/ <comment><USER2> This title seems different than the content of the article - which says nothing about users.

That said, I can't pass up the opportunity to say "of course making money matters." Especially in an environment where raising your next round isn't the way (anymore) to profit from a business venture.

All the companies that touted their active monthly user count as a way to raise cash are panicking because their investors are now waiting for those users to be monetized.

But of course, "users" is still a mantra because there are a lot of high valuation tech companies that used un-monetized users as a basis of their pricing or marketplace growth.

These companies will fail if they can't monetize their base - and then the myth of "users" will disappear in the same way that "simply having a .com" meant you were worth millions in the late 90s.</comment>


Corecursive Podcast – Unproven Tech with Sean T Allen - <AUTHOR> https://corecursive.com/055-unproven-with-sean-allen-1/ <comment><AUTHOR> I found this a good listen, about how Wallaroo Labs came to use Pony. The requirements he talks about are just really interesting from an engineering perspective - 1ms 99.9 percentile response time, millions of requests per second. I also found it interesting that he positioned Pony as Rust plus a high performance actor-based runtime.</comment>


Julia v1.2 - <AUTHOR> https://discourse.julialang.org/t/julia-v1-2-0-has-been-released/27742 <comment><USER2> Bit late to the party here, but here's a thing that's been bugging me: as a veteran of many deep learning frameworks, I'm 100% convinced of many of the arguments put forward in "Tensors Considered Harmful" [1].

Basically, I can summarise the argument as: for complex, real-world projects involving multidimensional arrays, having to remember which dimension means which thing, and track these through various tensor transformations, is the 21st century equivalent of how prior to high level programming languages we had to manually track which registers we we were using to store what quantities, and how this changed in different parts of a program.

It was the real dark ages of programming, and we're in that same place with a lot of complex deep learning models now.

So my question is: has this been discussed at all in the Julia community? Is this on anyones radar? Since one of the core competencies of Julia is array processing and elegant metaprogramming, I would hope that it can gracefully absorb the idea of named array axes in a way that feels natural and complete, and could start showing up in ML frameworks like Zygote and Flux down the line...

[1] [http://nlp.seas.harvard.edu/NamedTensor](http://nlp.seas.harvard.edu/NamedTensor)

<comment><USER3> There are a bunch of packages exploring ideas around labelled dimensions, although we are still far from the vision of caring as little as we do about registers:

* [https://github.com/JuliaArrays/AxisArrays.jl](https://github.com/JuliaArrays/AxisArrays.jl) * [https://github.com/davidavdav/NamedArrays.jl](https://github.com/davidavdav/NamedArrays.jl) * [https://github.com/invenia/NamedDims.jl](https://github.com/invenia/NamedDims.jl) * [https://github.com/rafaqz/DimensionalData.jl](https://github.com/rafaqz/DimensionalData.jl) * [https://github.com/ITensor/ITensors.jl](https://github.com/ITensor/ITensors.jl)

While these don't pass dimension labels along in the type, there are also a number of Einsum-like packages which should work on any storage order, and could be taught to interface with such types:

* [https://github.com/Jutho/TensorOperations.jl](https://github.com/Jutho/TensorOperations.jl) * [https://github.com/under-Peter/OMEinsum.jl](https://github.com/under-Peter/OMEinsum.jl) * [https://github.com/mcabbott/TensorCast.jl](https://github.com/mcabbott/TensorCast.jl)

</comment></comment><comment><USER4> This release got delayed a bit but I think it was for great reasons and really showcases the straights of the Julia community and core developer team.

My understanding (please correct my if I'm wrong somewhere) is that in Julia, for releases which are supposed to be non-breaking such as 1.2, the Julia devs run the test suites of every registered Julia package on stables versions and then on their release candidate and then go through any regressions and identifies any unforeseen breakages that occurred and then either fix them in the Julia release candidate or if the package relies on an internal implementation detail which is not guaranteed to be stable, they will often try to help the package owners fix the regression. That's seriously impressive and while I'm sure it happens in other languages, I hadn't heard of a programme like that and thought it was worth mentioning here as the happy reason why this release was delayed.

<comment><USER5> This process is common for modern languages with modern tooling and that's a good thing.

The Rust project has a tool called `crater` that can build all crates in crates.io and run their tests, a process that takes a couple of days. It also has a github bot that allows running crater on PRs on demand.

This is super super useful and something that all programming languages should have. It allows you to:

* make sure that a new Rust release doesn't break code that compiled with old releases.

* assess the impact of a PR implementing a breaking change (e.g. due to a bug fix)

* obtain quantitative data about language usage for language evolution.

This last point is probably the most impactful. When I was working on C++, a question like "How much people are doing X?" would often come up.

What did we do? Stakeholders in C++ meetings would travel back home, grep their codebases for the X pattern, and report back 6 months later. And that's it. That's all evidence we were hoping to get. And this was often super biased due to different coding guidelines and styles in the different companies.

In Rust, you open a PR that makes doing X trigger a compilation error, schedule a crater run, and get a list of all places in all crates in crates.io where the error is triggered. This gives you quantitative information about how often is X done in the wild, and you can then go and analyze the code doing X and obtain even more information.

It's hard to convey how important this is. You'll never have to read discussions about "I've never seen X in the wild" vs "I see X in the wild all the time". Those discussions make no sense when you have a tool that can actually tell you the answer. Every programming language being evolved today should have something like this.

<comment><USER6> Don't you run into sampling bias this way since not everything is published on crates.io? (I'm not saying that having that tool is a bad thing, just saying that maybe that tool doesn't give you the actual answer ...)

<comment><USER7> There's no better data set, and it's not a big assumption to assume closed source/unpublished code has roughly the same usage patterns.

</comment></comment></comment></comment><comment><USER8> Good work and keep it up.

A nice language for scientific computing after Fortran (some might hate it, but I liked it during my CS studies).

I hope Julia succeeds like Python. I have been using Python for quite a while for scientific computing, machine learning and as general purpose language for web services development. I wanted to use Julia for some machine learning problem for predicting prices (time series forecasts), but familiarity and tool support of Python always kept me back and with Facebook's Prophet (fbprophet) library I could do it easily.

I will definitely give Julia a try in coming months. I like this competition and innovation in scientific computing.

<comment><USER9> > _some might hate it, but I liked it during my CS studies_

Isn't a lot of the frustration regarding Fortran aimed towards libraries written by PhDs who don't know a thing about writing maintainable code (because that's not their specialty - not their fault really) and on top of that are so intelligent and specialized in their own field that you end up with even more impenetrable code, while also being dependent on said library because nobody else understands the problem domain in question to the same degree as those PhDs did (emphasis _did_ , to make things worse[0]) when they wrote the library?

That sounds like a frustration layer cake to me, but it's not exactly the language's fault.

[0] [https://medium.com/@fjmubeen/ai-no-longer-understand-my- phd-...](https://medium.com/@fjmubeen/ai-no-longer-understand-my-phd- dissertation-and-what-this-means-for-mathematics-education-1d40708f61c)

<comment><USER10> I recall at my first job improving a PHD candidates Fortran code that ran experiments on our various mixing rigs.

His initial code's interface was "?" and you entered integer numbers to execute various functions, and there where multiple levels here so you had to memorise the numbers and where you where in the program :-)

I added prompts (with Mixed case Hollerith statements) that showed the options at each level and what they did.

This was to reduce the risk of a botched run which when we scaled up to 1:1 in an 8-1 m dia tank could cost £20k - the cost of a small flat at the time

</comment></comment></comment><comment><USER11> Release notes: [https://github.com/JuliaLang/julia/blob/v1.2.0/NEWS.md](https://github.com/JuliaLang/julia/blob/v1.2.0/NEWS.md)

</comment><comment><USER12> Julia has very well thought syntax and runtime

I hope to see it succeed in the server-side web development area

<comment><USER13> There is [https://genieframework.com/](https://genieframework.com/) for a fullstack framework.

<comment><USER12> Awesome, thanks.

</comment></comment></comment><comment><USER14> Does anyone know where Julia has been deployed for production use cases at companies? Understand it's quite an undertaking but seems like the fast computations might make it seem worthwhile in certain industries?

<comment><USER15> Julia isn't really well suited for production environments. And by that, I mean on some server or something. In finance it's gaining marketshare as an exploratory analysis tool for traders and quants though. The code is typically productionized in C++ or whatever in the same way Python or Matlab code is.

<comment><USER7> Is this a common thing? I'd argue it's an anti-pattern, similar to how we prefer devops over splitting purely development and purely operations nowadays.

At least the times I've seen it the first authors proclamed it as done and "just need to port it for production" only to find out pesky things like massive amounts of bugs (no testing in the originals) or unusable performance problems (turns out what you can do on a 64-core cluster overnight is not suitable for doing realtime)

<comment><USER16> Whats the alternative? Write it with prod in mind, when you don't know if the idea is actually viable, and end up erasing a lot more time/code if it fails?

The idea for exploratory programs is just to see if the core idea is actually viable in the first place, before spending time on things like making it robust/fast.

Ofc, if you could make it robust/fast for free/cheap, then it makes sense to call it an anti-pattern — you made it fragile for no good reason — but I'm not clear on how to obtain robustness/speed without quite a bit of work

<comment><USER7> My preferable alternative would not be to use a totally different toolchain for prototyping and production, and making the people responsible for the prototype also responsible for bringing it to production.

I've heard all kinds of arguments against it, but they mostly boil down to "data scientists/analysts/whatever" can't be arsed to bring it to production (or "do not have the right skill set") and vice-versa for software developers.

I've seen much more success with a developer and less-technical person working closely in a team and bringing a project from prototype to production together.

<comment><USER15> A lot of the time, you'd just be wasting the developers time. In finance the research quants are going to have to test and explore dozens of ideas before even one is suitable enough to actually deploy in production. It doesn't make sense for the quant and developer to work closely together in C++ or whatever when there's a high likelihood that the trading idea doesn't work in the first place.

Also, the quant often isn't good enough at computer science to actually develop a production system himself. And even if he was good enough, it isn't his comparative advantage so he probably should be focusing on research.

</comment></comment></comment></comment></comment></comment><comment><USER17> I've recently switched to Julia for all my side projects and I'm loving it so far! For me the killer feature is the seamless GPUs integration

<comment><USER18> What do you mean by seamless GPU integration, is it some specific package?

</comment></comment><comment><USER19> I have heard a lot of nice things about Julia and I've decided to learn it.

Can someone point me to excellent resources/tutorials for learning Julia?

I mean I can search Internet but I am not sure I'll stumble upon really good tutorials (I don't want to go through Medium or TutorialsPoint kind of tutorials).

Any help?

<comment><USER20> The best place to start is this list of resources: [https://julialang.org/learning/](https://julialang.org/learning/)

Excluding the university course listings, I think most of the resources there should be up-to-date (post Julia 1.0).

Once you have a basic feel for the language, the forum (discourse.julialang.org) and Slack are both very welcoming.

<comment><USER19> Thanks a lot!

</comment></comment></comment><comment><USER21> Honest question - why did authors feel like creating new langauge instead of contributing/expanding something that exists, ie. Crystal seems to be extremely close to what Julia offers, or am I wrong? Are there any fundamental decisions that put Julia above Crystal?

<comment><USER22> Ignoring the Crystal issue that others already answered, why didn't Julia developers instead create a kick-ass JIT for Python or R?

And the answer to that is that the semantics of the language were designed from the start for efficient JIT'ing. Thanks to the language design, Julia can get close to C performance with a comparatively simple JIT approach (resolve types, compile a function statically with LLVM just like C, then use multiple dispatch to select the right function at runtime (simplified, yes, but roughly like this)). Compare this with all the tracing JIT heroics that Javascript implementations or PyPy pull, while still getting performance far from what Julia achieves.

<comment><USER23> Actually, it will choose the right function to dispatch at compile time. In fact if it will in certain occasions even erase all function call and replace with the final output and even remove unaccessible branches from the generated code.</comment></comment></comment>


Ask HN: What's Your Favorite Movie? - <AUTHOR> <comment><USER2> The Matrix, if you go by how many times I've watched it.

Other strong contenders include

V for Vendetta

Rad

Vision Quest

Tron:Legacy

Hackers

Sneakers

Antitrust</comment>