The Anti-Mac Interface (1996) - <AUTHOR> http://www.nngroup.com/articles/anti-mac-interface/ <comment><USER2> One thing that almost always gets overlooked when critizing / trying to innovate on Xerox Parc-like interfaces, is discoverability. Look at departures from this interface (or predecessors of it) and you'll almost always find a system where it's hard for users to discover what they can do and how their actions will affect the state. Most prominently:

* iOS style gestures

* Office Ribbons (where has my feature XY been moved to? I guess I have to google now..)

* CLI (what does parameter -p do again?)

* Metro style swipes

* Voice commands

The only interface that has _improved_ on discoverability so far, is OSX, especially with its integrated spotlight search in each application's help menu.

What I'd like to see is a CLI that (a) understands objects by default (i.e. PowerShell) and (b) is discoverable, for example by using mouse interactions when you're trying to learn.

(a) would mean that the command line applications become much easier to compose. Imagine something like list / dict comprehensions in the command line:

ls | [entry.created for entry in $@ if entry.filename[0] == 'a'] | sort

(b) would mean that you could hover each of the commands above, inspect the possible parameters, default values, examples without having to execute anything. The whole interface could get much richer as well, for example if the output of your commands is a list of objects that have the same attributes (e.g. `ls`), it would display it in a table where each column is sortable using _gasp_ the mouse.

<comment><USER3> The Office Ribbon is notable for being designed entirely for discoverability. What it lacks is familiarity.

[http://blogs.msdn.com/b/jensenh/archive/2005/09/14/467126.as...](http://blogs.msdn.com/b/jensenh/archive/2005/09/14/467126.aspx)

> Office "12" consolidates all of the entry points into one place: the Ribbon. > So if you're trying to find a feature and don't know where it is, the scope > of your search is drastically reduced. Click on the leftmost tab, and click > across the tabs until you reach the end. That it. It's either there or it's > not--there are no other "rocks" to look under, no other places we've hidden > functionality. We've found in early tests that people find it easier to > discover how to do new things in the Ribbon, and they're more apt to explore > the UI looking for better ways to get things done.

<comment><USER4> My favorite path is that (MS Word):

1\. Click the tiny icon in the bottom right corner of the styles widget. It will open essentially the same widget, but as a vertical list and with a few additional controls; this is what we're after.

2\. At the bottom there are three nearly identical buttons without labels. Click the 2nd one from the left (the tooltip says "Style Inspector"). This will open another floating window. We don't need it per se, but, again, it has extra controls that we need.

3\. At the bottom of the window there is another set of unlabeled buttons. We need the first one (tooltip "Reveal formatting"). (Note that the icon is also very similar to the three icons in the previous panel.) Click it and you'll get the "Reveal formatting" panel. This is our target

4\. Now close the other two panels. You're ready.

I write code to create reports in MS Word XML and I need this panel to see if I'm getting the code right (i.e that all non-obvious flags like "keep with next" are in place). I know no other path to this widget. And since I don't write such code often, I keep forgetting how I get to this panel. E.g. yesterday I tried to find it, but failed. It's good I saw you reply and made another effort to retrace the steps :)

I totally think a classic Mac-like menu consisting solely of text would provide better discoverability here.

<comment><USER5> Microsoft Word makes it pretty easy to find commands. For your example, I did the following: Click on 'Help' menu, type 'reve', press down arrow to select 'reveal formatting' and the actual menu item (in the 'View' menu) is highlighted, press 'enter' to enable. This is in Office 2016 for OSX.

<comment><USER2> That's what I meant. It's not a MS Office but an OSX feature. AFAIK the windows version still doesn't let you search through its ribbons.

<comment><USER5> OK, fair point. So is there nothing like that available in Windows? I had thought Win 7 and 8 had similar features, but maybe only for the desktop, not applications?

</comment></comment></comment></comment></comment></comment><comment><USER6> _We predict that people who have grown up with computers will be much more capable as computer users than the current generation of users. Thus, they will be able to use (and will in fact, demand) expressive interfaces with advanced means of expressing their wants._

How unfortunate that this did not turn out to be the case, and I think it's likely that is because most people liked the "simple and easy" Mac-like UIs with no learning curve, and didn't want to grow beyond them.

The point about "user control" is odd though, since that's basically the exact opposite of the Apple philosophy today, and even the older Macs seemed more opaque and with less user control than the PCs of the time.

<comment><USER7> > The point about "user control" is odd though, since that's basically the > exact opposite of the Apple philosophy today, and even the older Macs seemed > more opaque and with less user control than the PCs of the time.

As an advanced user, I don't _want_ more control. I want defaults that are good enough that I never want to change them.

Every hour I spend tinkering with my computer, is an hour I didn't spend achieving useful work. Sometimes yak shaving is useful, most of the times it just keeps me from getting anything done.

<comment><USER8> Why not both? I want good defaults, and also the ability to change the things that I might want tweaked for whatever reason down the line. A powerful preferences interface is the software equivalent of opening up the hood of a car -- just because I want it to run well doesn't mean I'm not gonna poke around.

<comment><USER7> About your cars reference, there's a funny segment from an old Top Gear where the presenters beat everyone at the modified cars drag strip race using a stock Bentley.

Everyone else poured thousands of hours and thousands of dollars into their car. James May showed up with a stock Bentley - a big fat comfortable car - and won the day.

<comment><USER9> I suspect there is some hidden context there that hid his chances of pulling that off, in classic Top Gear asshole style.

</comment></comment></comment></comment></comment><comment><USER10> > We seem to have settled on the WIMP (windows, icons, menus, pointer) model, > and there is very little real innovation in interface design anymore.

It's an interesting exercise to compare this to the mobile platforms, e.g. iOS. Windows are gone. Icons are here. Menus are changed. Pointer is changed too (your finger is pointer, not an abstract arrow).

Though on OS X desktop I don't see any innovations at all! May be I'm missing something? Windows, icons, menu, pointer, that's all. Probably gestures are an innovation, but it isn't used widely except in operating system windows manager and Safari. Can we think of a tabs as an innovation? I never really liked them, I believe that tabs could be replaced by better window management. It's something that tied to application now, but it should be tied to a window manager and probably in better ways.

Desktop user interface is definitely stagnating, if we're talking about OS X. I don't know much about new Windows releases, but in Windows 7 it was the same story.

<comment><USER11> _> Windows are gone_

Ehhh, yes and no; as mobile OSes have gotten more multitasking-friendly they've moved towards the "card" metaphor, in which each app runs in a card and there's some method for shuffling between them. And a card is really just a window that's maximized 100% of the time. (Which is how most general users use windows on the desktop, so they're not losing much.)

<comment><USER6> Hopefully the reason for a lack of windows on mobile devices is because their screens are too small to manipulate them effectively with a finger.

 _Which is how most general users use windows on the desktop, so they 're not losing much._

I've noticed this too, and it's puzzling - I've seen people maximise browsers on large monitors and end up with a narrow column of text surrounded by tons of blank space, or the more difficult-to-read extremely wide lines of text. Why don't they resize their windows to a comfortable width, and also gain the advantage of being able to interact with the other things outside the window?

I very rarely maximise any windows, but usually have several of them arranged such that I can see the important bits of each one and switch between them easily. One thing I do a lot is comparing the information in different windows, so perhaps it's entirely natural that I do this. It's definitely better than the alternative of switching repeatedly between full-screen windows and memorising their contents...

<comment><USER12> I maximise windows to eliminate distraction. I'd rather finish reading the article I'm reading, for example, and then Cmd-Tab to something else, rather than obsessively glancing at a Gmail window a dozen times through the article.

More the multitasking, the more stressed I get. One thing at a time is relaxing, and more productive. Feeling frantic doesn't result in any more work, or higher quality work, being done, after all.

I maximise windows even on my 30-inch monitor. Recently, I've switched to full-screen. I wish I could tell OS X to launch apps full-screen by default. Windows should, for me, be the exception, not the norm. This is one aspect where mobile OSs are superior, for me.

<comment><USER9> I seem to recall a old article that compared the usage of unix shell with that of ones daily life.

Could have been written by someone that trained older people on how to use computers.

This by showing how the shell task controls (ctrl-z, bg, fg) mapped to real life tasks.

Say you have a long running task, ctrl-z and bg makes it continue in the background. That i believe he likened to putting on a kettle in the morning. when either is done there will be someone sort of notification, and until then you don't really have to care about it.

Similarly you find something in the mail that you may want to deal with later. With physical mail you put it somewhere that you can see as you move around the home. With the shell you get the jobs command, and if you try to log out without ending them you get a warning.

This all going by memory.

</comment></comment></comment></comment></comment><comment><USER13> The proposed alternative: "The central role of language" using "a pidgin language for computers." Sort of like talking to Wolfram Alpha or Siri.

So far, that hasn't scaled well. Doing anything complicated through such an interface is painful. Works fine for the easy/banal stuff, which is why it's successful in the phone space.

<comment><USER14> The better alternative might be something more like this: [https://www.youtube.com/watch?v=8SkdfdXWYaI#t=9m](https://www.youtube.com/watch?v=8SkdfdXWYaI#t=9m)

</comment></comment><comment><USER15> Perhaps it's an interesting examination of co-evolution between the computer, the GUI, and the and user, but the central thesis is silly. If the inversion process you use to arrive at "anti-" statements is poorly defined, you are free to make them mean anything you wish. In this case, they were made trivially equivalent to the aforementioned evolution. There's nothing wrong with this except that the author then expects us to accept the validity of the core principle on the basis of its correct post-dictions and thereby extend credence to its pre-dictions. Nice try.

<comment><USER16> Did you notice that it was published 20 years ago.

<comment><USER15> Yes, I did.

</comment></comment></comment><comment><USER17> This is an interesting fossil of an extinct branch of UI. Mobile touch UI fulfilled a small number of these suggested changes, and mostly for good reasons:

1\. UI has been sliding toward metaphor and abstraction, away from "reality" because aping reality on a screen doesn't work.

2\. Direct manipulation is good, and it got better with touch. Babies grok it. So can your PHB. Apps need more of it.

3\. Ever eat in China? Several spoken languages. Menus have pictures and you can point if you don't share a spoken language with the waiter. This works. It is often faster than using voice assistants and commands.

4\. He gets this one right: consistency is overrated. Be instantly learnable and explorable. OTOH Android is trying to bring a dress code to the bazaar.

5\. OK, good. WYSIWYG has given way to a "reflow" compromise. Nobody think in terms of printed pages anymore. BUT Nielsen's love for XML-based markups is weird. They all suck and I have the scars, from O'Reilly's book production workflow, to prove it.

6\. Nielsen gets this the most right. Anticipation of user needs suffuses modern mobile OSs.

OK, and so on... I also think he gets modelessness wrong. Give you boss vi. "It's really good, I use it all the time." See how that works out for you.

</comment><comment><USER18> Microsoft Bob anyone?

[http://toastytech.com/guis/bob.html](http://toastytech.com/guis/bob.html)

</comment><comment><USER19> >the characteristics of the Internet desktop

Something like... "Ycombuntu"? [https://www.urdesk.net/desk?l=yc](https://www.urdesk.net/desk?l=yc)

Granted, it _looks_ just like a Macintosh, but there is much, much more to it than meets the eye. I am going to start really getting into some of those language concepts pretty soon (help needed)!

To see the site with my sales pitch to HN thrown in at the beginning: [https://www.urdesk.net/desk?l=yc&r=1](https://www.urdesk.net/desk?l=yc&r=1)

</comment><comment><USER20> I have often pondered, that if it were possible for me to transcribe every thought that I had into words or actions immediately, how both wonderful and at the same time, frightening that would be.

</comment><comment><USER21> The natural language interaction they suggest is partially satisfied by Google (or, in general, web search). Most information you want can be found in this way, and we don't have any issues of allowing an undo mechanism or being interactive with the user because searching the web involves no mutation of the state of your computer or anything. And Google search results freely change and improve without the user's knowledge..

</comment><comment><USER22> Their theme looks deceptively old and simple, making me think it's an abandoned website but it's not. Very appreciated.</comment>


Ask HN: Selling B2B Software to a Chinese company - <AUTHOR>

So my start-up sells B2B software for small to medium-sized companies, primarily productivity tools for researchers.<p>Now an institute in China is interested in the software but they are insistent that they want to host it on their servers. Pros/Cons? Yes/No? <comment><USER2> rambling late night thoughts from someone who has done lots in China:

Do you expect more customers in China? If so, find a partner in China to handle sales there.

I would expect most any Chinese customer to want to have your solution hosted in China..either by themselves or at least through a China based server. They do have good reasons for hosting it themselves that have nothing to do with stealing your product.

You will always risk your product being copied. This is a good reason to find a China partner that manages this process for you.

B2B software sales in China is an "ok" market. Chinese companies do spend money on specialty software and there is usually a purchasing officer at a company that makes money off the process of spending money. If you do not understand how this works, best to find a local partner.

Ultimately though, even if they do copy your product, it may not effect sales to other markets.

<comment><AUTHOR> Thanks jhancock. It is true that it may not affect sales in other markets but I was hoping to make money from sales in china for my company!:)

</comment></comment><comment><USER3> They want your source and will almost certainly pirate it:)

<comment><AUTHOR> Thanks! yeah, thats what I was thinking but was hoping that people would say otherwise/offer reasons why they would be insistent on hosting it locally.</comment></comment>


How Bilingual Babies Sort Out Language - <AUTHOR> http://www.nytimes.com/2011/10/11/health/views/11klass.html

<comment><USER2> A few years ago when I started having kids, my wife and I were friends with a couple whose parents were each second generation American Chinese. The mother's parents' native language was Cantonese, the father's was Mandarin. They wanted their kids to learn their familes' languages, so the mother would speak Cantonese to the children, the father would speak Mandarin, and they figured the kids would pick up English from everyone else.

Once their oldest son came up to me and asked for something in (I think) Mandarin. I told him in English, "I can't understand you, what do you want?" and I could almost see the wheels turning inside his head: oh, this guy doesn't know Mandarin, better try Cantonese. So he said something in Cantonese and I said the same thing in English and I think I blew his mind. His eyes got really big and he kind of backed away from me, the way kids do when something's scary and fascinating at the same time, and ran to get his mom.

He speaks perfect English now, so I guess it all worked out.

</comment><comment><AUTHOR> My four year-old son is bilingual and he is also learning Mandarin songs and some words in his daycare. Although I have read about the incredible ability of young children to learn up to 5 languages at a time in many linguistics courses, I'm still totally amazed.

From my cursory observations, it seems like learning the words is te easy part, the grammar is harder to acquire. Up to perhaps three years old, when he was talking Turkish to us you could easily understand that the underlying grammar was English, he was just filling the slots with different words. Now, he has both grammars fairly down (he's making the cute verb past tense over- generalization mistake, though, i.e. all past tenses are regular with -ed).

His language skills seem to be superior to his friends in both languages. This is one data point, of course), but I think learning 2-3 languages at once is beneficial in language development.

</comment><comment><USER3> It's really fascinating. At 2 months old, my daughter reacted differently when people spoke German around her instead of the English my wife and I primarily speak at home. It's the same reaction when my wife and I speak German to her as well, so she's almost certainly not reacting to "new" people. Now, we're trying to speak bilingually as often as possible (which is hard as hell because neither of us is fluent in German - merely conversational). Hopefully it will stick and our daughter will still get some benefit.

<comment><USER4> It'll stick better if each of you are consistent with the language you use when speaking to her. Even if it's not your native language, one of you make the leap and talk to her only in German

(My wife and I are raising our daughter English/Mandarin bilingual.)</comment></comment>


Show HN: Counsel – Platform to crowdsource advice and answers over a VoIP call - <AUTHOR> https://play.google.com/store/apps/details?id=com.bazzingalabs.adviceapp

<comment><AUTHOR> Please try out the app and tell me what you think. I would be happy to answer your questions and doubts.</comment>


Teen anti-gun activism is killing the profitability of NRA TV - <AUTHOR> https://shareblue.com/nra-tv-parkland-activists-shut-down/ <comment><USER2> Thoughts and Prayers for them in these challenging times.</comment>


Appeals Court: No Hacking Required to Be Prosecuted as a Hacker - <AUTHOR> http://www.wired.com/threatlevel/2011/04/no-hacking-required/ <comment><USER2> There's a lot wrong with this law and certain interpretations thereof, and a lot of room to debate its appropriate reach, constitutionality, etc. But this particular objection -- that you don't need to "hack" to be prosecuted as a "hacker" -- seems strange to me, seeing as the law _never uses the word hack_ [0]. It's not a "hacking" law, but a "fraud and related activity" law.

It refers repeatedly to situations wherein a person "accesses a computer without authorization or exceeds authorized access"; the law doesn't care if that access was gained through technically impressive means (sophisticated cracks based on zero-day exploits) or mundane means (an employee misusing access).

[0] <http://www.law.cornell.edu/uscode/18/1030.html> , ctrl-f hack. It's not there.

<comment><USER3> From the article: _The case against Drew hinged on the government's novel argument that violating MySpace's terms of service was the legal equivalent of computer hacking and a violation of the CFAA._

This could mean that websites that have Terms of Service agreements preventing linking to their site could constitute a Federal crime with mandatory jail time? That doesn't seem right to me.

<comment><USER4> Linking to a site does not involve accessing any other computer. The terms of service can show that certain access is unauthorized, they can't _make unrelated activities into_ computer access.

</comment></comment></comment><comment><USER5> Volokh conspirator Orin Kerr has some good commentary on this: [http://volokh.com/2011/04/28/ninth-circuit-holds-that- violat...](http://volokh.com/2011/04/28/ninth-circuit-holds-that-violating- any-employer-restriction-on-computer-use-exceeds-authorized-access-making-it- a-federal-crime/)

</comment><comment> alok-g >> unless the object of the fraud and the thing obtained consists only of the use of the computer and the value of such use is not more than $5,000 in any 1-year period

Going from $4999.99 to $5000.00 turns it from nothing to a federal crime! If we engineers were making such stupid algorithms, nothing these law-makers use in their daily lives would work!

<comment><USER3> On the other hand, you would be complaining that the law was 'too broad' if it only defined it as a 'significant amount' or something equally as nebulous.

<comment> alok-g "Make everything as simple as possible, but not simpler." - Albert Einstein

There are more options besides making it over-simple, or leaving it incomplete (nebulous).

</comment></comment></comment><comment><USER6> This is why I never sign those stupid HR forms.

When I was asked these sorts of things I asked two questions:

1\. Am I required to sign this in order to maintain my employment?

2\. Can you put it in writing that I am required to sign this to maintain my employment?

It never gets past question 2.

<comment><USER7> What's the result? Do you usually get fired for no specified cause?

<comment><USER6> I was threatened with firing once unless I started coming in at 9 am. I had never come in before 10 am and I suspect it was because the company figured I couldn't risk my job after having some legal problems. Didn't bother showing up at their requested time and a couple months later (on the ides of march, you can't say I'm not poetic) I tendered my resignation after another star programmer quit. I got yelled at because apparently I wasn't supposed to call their bluff when they were in no position to back it up.

The day before my notice was up they decided it was ok for me to continue my normal schedule.

</comment></comment></comment><comment><USER8> I'm a Brit, and live in the UK but I do access US based computer systems so I suppose I could be subject to this law.

>accesses a computer without authorization or exceeds authorized access

There are two possible meanings of 'authorized access' here. One is authorization by the computer's security system, e.g. file access permissions. The other is authorization according to a contract of some kind. The court in this case used the latter interpretation.

Were the judges even aware that this term could be interpreted in more than one way? What was the intention of the original law in this regard, did it indicate which interpretation(s) were intended?

</comment><comment><USER9> Completely insane!</comment>


My company is post-revenue. - <AUTHOR> http://jessicamah.com/blog/?p=953 <comment><USER2> Is the phrase "post-revenue" standard? This is the first time I've seen it (as far as I can recall, at least), and it seems wrong -- my first thought was that "post-revenue" meant "we used to have revenue, but not any more".

<comment><AUTHOR> I've heard it a quite few times and it's always struck me as an odd turn of phrase, but

      Pre revenue: before revenue.
      Post revenue: after [first] revenue.

probably makes sense in start up schema. I don't love it though.

</comment></comment><comment><USER3> Jessica Mah seems like a very talented individual - certainly very entrepreneurial (though she doesn't like the term for whatever reason). This may be the first of her startups to post any revenue, but it's a huge step.

All the best of luck, and hopefully you'll be "post-profit" soon!

</comment><comment><USER4> Fonts look horrible with FF on Windows, but fine on safari. It's probably because you're messing with the letter spacing.</comment>


Lambda's debt-swapping partnership is disappearing from the internet - <AUTHOR> https://www.theverge.com/2020/2/12/21135134/lambda-school-students-edly-isa-debt-swapping-partnership-shares-investors <comment><USER2> Assuming investors in these ISAs are rational/smart, they'll take into account the likely outcomes before deciding how much they're willing to pay.

So, even if Lambda sells each ISA the moment it's signed, they're still just as incentivised to do a good job. Because the sale price will be determined by the expected cash flows which, in turn, are affected by how good a job Lambda school does.

It seems just like any other form of factoring: you've got receivables which are due in the future, and you're willing to take a haircut to get paid sooner.

I don't know whether Lambda school provides a good service and/or whether the ISAs they offer are a good deal for the students.

But the point of the article is that selling the ISAs or pools of ISAs weakens incentives. I don't see how that follows. If anything, it makes incentives stronger: if Lambda does a bad job, this will affect the money they receive _today_ (via sale of ISAs) rather than money they'll receive over time (from student incomes).

<comment><USER3> The WIRED article that Verge references points out a few ways where securitized debt could provide perverse incentives, particularly in terms of cost/quality of the teaching:

[https://www.wired.com/story/how-we-learn-lambda-income- shari...](https://www.wired.com/story/how-we-learn-lambda-income-sharing- agreements/)

> _Still, that points to a more complicated "incentive alignment" than is > often described. Deference to outside investors might encourage a school to > issue lots of ISAs and keep instructional costs low, for example, betting > high margins on a few successful students will subsidize the other > agreements, says Julie Margetta Morgan, a fellow at the Roosevelt Institute > who studies student debt. That's especially true if it proves difficult to > link students with jobs. But Allred insists the incentive structure that > aligns the interests of individual students with the school's isn't broken. > "We still hold the bulk of the risk," he says. Allred doesn't tell staff > which student's contracts have been financed._

That said, I don't know enough to think that CDOs in themselves are bad, or in any way unusual or suspect. But Lambda and Edly refusing to comment and taking down pages about the CDOs and investments, as DHH tweets about them, makes me very confused and suspicious.

<comment><USER2> The example given "betting high margins on a few successful students will subsidize the other agreements" is a possible strategy, but that strategy could be attractive/optimal regardless of whether the ISAs are sold.

What about the ISAs being sold to third parties affects the incentives? Whether or not thet sell the ISAa, Lambda school should be trying to maximise the margin between the cashflows from the ISAs, and the cost of running the program.

</comment></comment></comment><comment><USER4> We desperately need an accreditation system for these schools, stat.

FAANG continues to scramble for newhires; what if they created a nonprofit that audits and accredits coding bootcamps, to juice up the pool of candidates? Right now it's a massive gamble to sign up for one and hope you're not being scammed. Once perception catches up to reality it might poison the very idea of bootcamps in the public consciousness.

<comment><USER2> "We desperately need an accreditation system for these schools, stat."

I don't know the details, but I like the sound of the approach taken by Make School: [https://www.dominican.edu/dominicannews/dominican- announces-...](https://www.dominican.edu/dominicannews/dominican-announces- computer-science-partnership-with-make-school)

In short, Make School partners with an already-accredited university, under a scheme which provides it a path to becoming accredited itself.

</comment></comment><comment><USER5> I've seen a lot of folks criticizing Lambda. As far as I can tell, they actually offer a chance at a much better life, with no upfront fees - something even accredited and reputable universities are unwilling to offer. If ISAs offer lamda better cash flow that doesn't affect the students in any way, is it really such a bad thing?

<comment><USER4> This recent investigation (from the same site) is relevant: [https://www.theverge.com/2020/2/11/21131848/lambda-school- co...](https://www.theverge.com/2020/2/11/21131848/lambda-school-coding- bootcamp-isa-tuition-cost-free)

> From the beginning, however, the online class wasn't what Surber or her > classmates had expected. The instructors changed week to week and often > seemed to have no idea what the students had already covered. The curriculum > advertised on the website never fully materialized. The online portal where > they were supposed to find their homework assignments rarely matched up with > what they were learning.

There are good coding bootcamps, and ISAs can work if they're done right, but there's also a whole lot of abuse going on in this space right now.</comment></comment>


Putting (my VB6) Windows Apps in Windows 10 Store - <AUTHOR> http://www.hanselman.com/blog/PuttingMyVB6WindowsAppsInTheWindows10StoreProjectCentennial.aspx <comment><USER2> Too bad you still need a Microsoft account to use the store, besides sideloading. That's a deal breaker for me, at least on the desktop (I know you can login separately on each app).

1) How good is the sandbox? I followed the links but how battle-tested is it? What if you put an already sandboxed Chrome inside UWP, does it basically use almost the same calls or there are some extra benefits? Besides FS isolation.

2) Can I browse the "sandboxed disk" (including registry files) and export everything? So I can make backups or restore it later.

3) Does it stop apps from installing intrusive things? Some bank plugins use like 30% of my CPU on idle, run a lot of services on startup, so I have no option but to use a VM.

I'm really curious about all of this and there's almost no hype around it. All I see is people talking about walled gardens, privacy concerns (that I have too), how they screwed in the past with GFWL, Windows 8. But downloading software from 3rd party sources in 2016 is just awful. I want the Linux package manager experience. I don't trust any 3rd party like Ninite, Chocolatey, and they have like 10% of all the software I need anyways.</comment>


Ask HN: Books on Agile development for non-developers? - <AUTHOR>

What book(s) would you folk recommend on agile development for non-developers?<p>thanks. <comment><USER2> It's not clear if you are asking for a management book or a programming book. Assuming you want to hack, my question to you is What do you want to accomplish? That would drive which sort of development book we're talking about. Then I would ask How much do you know about programming? Nothing at all? If you don't understand concepts like 'object-oriented' then I bet we're getting ahead of ourselves if we start talking about agile.

I think you need to pick a language. Not knowing much about your situation or your goals, I suppose I'll just recommend one: Agile Web Development with Rails - 3rd Edition, just came out.</comment>


The Sad Death Of An Adjunct Professor Sparks A Labor Debate - <AUTHOR> http://www.npr.org/2013/09/22/224946206/adjunct-professor-dies-destitute-then-sparks-debate <comment><USER2>
      Duquesne officials say there are no immediate plans to
      allow adjunct professors to unionize, despite professors'
      vote to do so.

I was under the impression unionisation usually happened against the wishes of employers?

It's hardly realistic to expect employers to act with their employees' best interests at heart.

<comment><USER3> _It 's hardly realistic to expect employers to act with their employees' best interests at heart._

This is a little harsh. Many companies do put their employees first, so that they can keep the best ones. They just have to be in a position to capture some of the value from the added talent. Universities aren't always in a position to do that.

Unions can come with other problems such as reduced flexibility of the work force, which in today's high-change environment for schools could be crippling.

One should ask the deeper question - why are there so many underpaid adjuncts? The oversimplified answer is that we're subsidizing the production of too many Phds with non-transferable skills.

<comment><USER2>
      This is a little harsh. Many companies do put their
      employees first, so that they can keep the best ones.

I agree that employers often act in employees' best interests when there is no more profitable alternative.

<comment><USER3> In knowledge industries, it's frequently a case of long term versus short term interests. Take training... It rarely pays off in the short term (when you have the cost) but it frequently does in the long term. Another example is severance. It doesn't pay in the short term, but abusing folks on the way out doesn't pay in the long term either.

</comment></comment></comment></comment><comment><USER4> The sad thing is that the article is correct; that is HIGH for an adjunct salary. When I finished my postdoc I applied to a few adjunct positions. The salary would have been $2100/class, which, after factoring in the time needed for preparing for the class, traveling, lecturing, being available for office hours, grading, etc, would have come out to well below minumum wage. No thank you very much.

</comment><comment><USER5> Here's my beef with the story. I feel bad for the lady and all. But why didn't she use any of the safety nets available to her? Medicare, social security, etc? Did she have kids she could turn to? At bottom, she was a lady who decided she should be able to live independently, turning away help apparently, teaching a few French classes a year. Why is that the employer's fault? Just because she was old?

I'm all for having a social safety net, but I think it should be a last ditch remedy. People should save up for retirement, have kids who can support them, and only if all that fails should the safety net kick in. I think the government should have done something for her here, but it's not the employer's fault.

Finally, I find the implication that we should care more because she was educated. I'm much more concerned about the uneducated person who works as a day laborer and doesn't have the opportunity to pursue a career that might result in a secure retirement.

<comment><USER6> > People should save up for retirement, have kids who can support them, and > only if all that fails should the safety net kick in.

Saving up for retirement's not really practical when you're on such a limited wage.

I can't agree with the kids thing either. People should have kids because they want to show them the world - as children they reasonably expect to love and cherish - not as some cynical insurance scheme.

> Why is that the employer's fault? Just because she was old?

It would be the employers fault whether or not she was old, exploiting people in that manner is pretty disgraceful. It's just that as she aged the probability of negative consequences increased.

<comment><USER5> At the end of the day, love doesn't support 80 year olds who didn't save for retirement. Working adults do, either those people's kids or other people's kids. With respect to the latter, traditional families can support older people much more efficiently than the model of paying enough state pension for them to live independently.

<comment><USER6> I think it would be wrong even if you're right. My point was that you shouldn't have children as a cynical insurance scheme as an absolute, it's cruel to bring unloved people into the world.

But if you're looking for pragmatism:

If you don't love them, children seem likely to be a bad investment. Having children isn't free. It's actually one of the more expensive things you can do. Both for yourself and for society. The USDA estimated cost of raising a child to 18 in the US in 2011 as $169,080 (dual parent family, lowest income bracket mentioned)

[http://www.cnpp.usda.gov/Publications/CRC/crc2011.pdf](http://www.cnpp.usda.gov/Publications/CRC/crc2011.pdf)

$169,080 (accounting for predicted inflation, actually closer to $212,000) is a quite substantial pension fund, especially if you invest it early. $169,080 is £105,509 - that's enough to buy a flat outright; I mean you wouldn't, you'd buy several flats with partial mortgages and leverage expected rent to expand, but still. $169,080 is a new degree in a better class of work.

It seems probable, if you're coming from a low income family and have been neglected, that you wouldn't even be _capable_ of it financially - poverty is highly correlated across time; poor areas tend to stay poor.

I'm inclined to think it would be better to invest the money that might be spent on those kids over their lifetime (and all the worse for the state if the kids themselves live in poverty from an expense perspective) into a fund to provide a better pension for the potential parents. It's true that working adults provide for people, but the money that creates those working adults can be more efficiently applied. It's better to have a new company funded that provides employment to ten or twenty people and adds value to the economy than it is to have another person for whom work doesn't really exist.

And this is before we get to the motivation of the children themselves:

Because, even from a pragmatic perspective, love is valuable. If your parents don't love you, why would you love them? And if you don't love them, it's hard to see why you'd support them. Living with your parents once you're an adult is very difficult even when you think they're okay people.

<comment><USER7> Not to mention - you're assuming your children will grow up, move out, establish themselves, become very successful working adults, have enough money to support you and their own children (which are their "responsible financial future investment,") and then wish to support you also.

These are all crazy assumptions.

What if your children are born with disabilities and can't work and require care for the rest of their lives? You might be able to provide that care, but they might also need expensive professional care. The State might have to step in anyway. What if they move away? They might not be able to move closer even if they wanted due to circumstances, like being in the military for example. What if they can only find work part time, or minimum wage? What if they are lazy or depressed and won't work and don't want to move out of the house? What if they get into drugs? What if they become homeless? What if they simply don't want to help you financially? They actually do have free will. They might be willing, but not able. They might be willing, but upset they you expect them to help you financially. What if they have medical problems also? What if they die young, before you? They might have an accident, and lose their ability to work.

I know of people where all of these things happened. These aren't super rare occurrences. If you think these can't happen, think again.

Having children with the expectation or even assumption they will provide some kind of services (financial or otherwise) to you in your old age is extremely unfair to the children and to yourself.

<comment><USER5> > These are all crazy assumptions.

They're really not. Even western society relied on them almost exclusively to support old people until just 60-70 years ago.

<comment><USER7> No. Only life on farms where children were labor, and not since the industrial revolution.

The United State's page on the history of Social Security gives us some more information:

[http://www.ssa.gov/policy/docs/ssb/v66n1/v66n1p1.html](http://www.ssa.gov/policy/docs/ssb/v66n1/v66n1p1.html)

>The Great Depression was clearly a catalyst for the Social Security Act of 1935, and some of its provisions—notably the means-tested programs—were intended to offer immediate relief to families. However, the old-age insurance program—the precursor to today's Old-Age, Survivors, and Disability Insurance, or Social Security, program—was not designed specifically to deal with the economic crisis of that era. Indeed, monthly benefit payments, under the original Act, were not scheduled to begin until 1942. In addition, from the beginning, the Social Security program has embodied social insurance principles that were widely discussed even before the onset of the Great Depression.

>Although the Great Depression was a catalyst for the creation of the Social Security program, the idea of social insurance predated the committee's work and the Depression. As early as the 1880s, Germany had built a social insurance program (one requiring contributions from workers) that provided for sickness, maternity, and old-age benefits.1 Some authors have linked Germany's early adoption of social insurance programs to its rapid industrialization in the latter half of the 19th century (Schottland 1963, 15; Schieber and Shoven 1999, 17). A significant period of industrialization and urbanization also preceded the advent of social insurance programs in the United States. In 1880, the populations of farm and nonfarm workers were about equally balanced, but by 1930, workers in farm occupations accounted for only 21 percent of the workforce (Census Bureau 1956, 195).

>As the nation industrialized, increasing numbers of Americans depended on wage income (and less on family-based structures typical of a farm economy). Further, Schieber and Shoven (1999) argue that wage income, even before the Depression, was volatile. From 1905 to 1909, the nonfarm unemployment rate varied widely (ranging from 3.9 percent to 16.4 percent), with a similarly wide range (4.1 percent to 19.5 percent) occurring from 1920 to 1924 (Schieber and Shoven 1999, 19). Older workers, in particular, often bore the brunt of economic downturns.2 Cyclical swings in the economy were not the only concern. Lost wages due to disability, death, or retirement were also seen as problems not adequately dealt with by the structures of an industrial economy. Academic and political interest grew in social insurance plans that would smooth out the volatility of income or, said differently, insure against fluctuations in labor-market income.

Second of all, the life expectancy in 1935 was 61.7. Lots of people work until 61.7.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I always find it amusing when media outlets try to gin up controversy by pointing at other people arguing and saying something like "Hey, there's a big debate over here!"

Never mind that they have this huge megaphone, that they choose which stories to run or not, and that it's in their best interests to have as many people as possible arguing about it in public as possible while linking to their article -- the faux storyline is that some other people think some issue is important.

I think education in the U.S. is in bad enough shape already. The last thing it needs is more vested interests with political agendas involved.

</comment><comment><USER7> 75% of college instructors are adjunct professors? REALLY? That's the most surprising statistic I've read in a long time. We only had a couple in my school, and they were pretty temporary positions.

</comment><comment><USER9> It's ironic that the full name of the university is "Duquesne University of the Holy Spirit".

</comment><comment><USER10> It's worth reading the school's response before you let the Crowdist media whip you into a hive-mind:

[http://www.post- gazette.com/stories/news/education/duquesne-...](http://www.post- gazette.com/stories/news/education/duquesne-disputes-claims-over-death-of- adjunct-professor-704143/)

<comment><USER11> So they knew she was in a bad place financially and still terminated her contract? There's not much to their response that changes this story. They didn't dispute her lack of benefits or the amount of her wages and they confirmed that she was in financial distress (so much so that the priests invited her to live in campus housing but still later the university stopped employing her).

<comment><USER12> Is the University not allowed to terminate contracts of staff "in a bad place financially"? That makes no sense. The college clearly reached out and tried to help her. The pay their adjuncts better than most and why would a part time professor teaching a class or two per semester have benefits? She was also 83 and died of cancer. This was not a 30 year old professor working full time, who couldn't afford treatment for a cold and died. It's a sad story, but the outrage seemed misplaced.

</comment></comment></comment><comment><USER13> Why didn't she get a full time job?

I can't see how the school is responsible for her horrible career and long term financial planning.

If you're making $10,000/year is the US, while having an education, it's your own damn fault.

<comment><USER14> She was 80. For a woman born around 1930, getting a job as a French teacher was more than she'd be expected to do. Her circumstances have more to do with the US social safety net than her planning a poor career.

But it does highlight the fact that working in academia can be a worse career than working in retail.

<comment><USER15> > the fact that working in academia can be a worse career than working in > retail

I agree; it is exploitative.

But why do people keep showing up to do it? For every person who quits finally there are another dozen lined up to take the job. Perhaps that may be a little exaggeration, and no doubt it varies by region and subject matter, but people doing adjunct work must be getting compensation that is not salary or else why are they doing it? (Maybe I should say that I work in higher ed; I've often been puzzled by people's motivations about this.)

<comment><USER16> > But why do people keep showing up to do it?

Social status. Nobody gets looked down upon when they say that they're an adjunct professor at a university.

And of course it's rewarding and stimulating work.</comment></comment></comment></comment>


Ask HN: Was your college degree a necessity to get a job as a developer? - <AUTHOR>

I was wondering whether or not a college degree is a "must have" for applying and getting hired in big companies. Do self-taught courses (which cover all the subjects studied in entire syllabus, plus a lot more) count as qualification when they are hiring, say, "Bachelors in CS or Equivalent!? I would like to know about hiring criteria of startup companies like TreeHouse, Coinbase, GrooveHQ, SoundCloud, etc. and bigger giants in the market.
I understand that non-tech companies never hire people without desired academic qualification but tech companies?
Is dropping out of a CS degree from a good college saying "I also want startup thrill" a good idea? Or a stupid idea?
Can you please share your experiences in software industry that relates to academic qualification? <comment><USER2> First, when you read "Bachelors in CS or Equivalent!?", the equivalent part usually means "work experience". So if you don't have a CS degree you need the equivalent work experience.

I'm a non-college grad and I think my career up to now has been pretty successful. It was hard for me, much harder than it should have been if I had a CS degree. I had to work 2 or 3 times harder than anyone else just to keep up at times. I found that it wasn't the course material that I lacked since I read pretty much the same books as them. What took me a long time to realize is that all my colleagues were using the same terminologies and most importantly were "thinking" the same way. The majority of them had either a CS or a physics degree of some kind.

Now that I'm in a position of hiring many developers I'm not against hiring individuals without degrees, but it definitely helps. I've hired two developers without degrees. Both are super bright people but are struggle to keep up as I did.

All that said, IMO it's who you know not what you know, no matter of your background. You can get a job in a "big company" without a CS degree if you have the skills and you know the right people. I did it by attending a bunch of meet-ups to find people with the same interests as me. I made friends that were working for these "big companies" who got me interviews, etc...

I would stay in college if I were you. I didn't go but should have.

</comment><comment><USER3> > Is dropping out of a CS degree from a good college saying "I also want > startup thrill" a good idea?

Stay in school and finish your degree. There will still be plenty of thrilling startups to work for (or found) when you graduate. I _know_ when you're 20 another two years of school seems like an eternity - but take it from someone who dropped out and didn't go back to complete his degree until he was in his 30's: you are _much_ better off having one.

</comment><comment><USER4> I'm coming to the end of a computer science degree. While I think I could have reached a similar level of practical knowledge if I had taught myself, there are many aspects that I wouldn't have even known about, or wanted to study, which have actually helped me become a better programmer. Even if on a day-to- day basis I don't think about discrete mathematics, compilers, real-time systems, and other things that I've learnt during my degree, having an appreciation for them, and knowing the theory behind certain things helps me loads.

I remember tasking to a software developer who works in a startup, after dropping out of university in the first semester. He has loads of practical experience, has committed to big open source projects, so clearly knows his stuff. I told him how I thought it was funny that Perl's regular expressions were actually Turing complete.

Everyone on my course who I've told this to has found it very amusing, and it really is quite funny if you know the computer science theory behind regular expressions, but this developer stared at me blankly, clearly not understanding it at all. I thought that was as shame, because although I don't write regular expression engines every day, knowing about the differences between classes of languages has influenced my design decisions in software, security considerations, and more.

You don't need a college degree to work as a developer, and that appears to be more and more true all the time. But it could take you many years to achieve the background knowledge, and you will need to put in a huge amount of effort to learn things yourself that you may find irrelevant or boring at the time, because the pay-off in practical application doesn't come until much later.

</comment><comment><USER5> It's not a must have but it's a filter that will be applied by HR, recruiters and the like.

The benefit of having the degree is an exposure to a wide range of ideas you might not otherwise get - everything from logic gates up to application software, and theoretical concepts which may have no immediate application but enhance you're understanding of the field. I've never written a compiler, designed hardware, done any serious graphics work, or applied any theoretical computer science, since my undergrad courses in those subjects, but I'm a better developer for those experiences.

</comment><comment><USER6> Short answer is no. I'm a professional software engineer, and did not graduate with a CS degree.

I did, however, graduate with a Liberal Arts degree. I was a Studio Arts major. I've been coding since a young age and am (mostly) self-taught.

If you graduate with honors from a top (or very good) CS department, you will have money thrown at you.

I'd suggest staying in school. Steve Jobs dropped out because he didn't know what he wanted to do with his life, and didn't want to waste his parents money. Bill Gates dropped out because he and Paul Allen were utterly certain they were developing the next most important thing the world had ever seen. Zuckerberg already had a rapidly growing site and interest from heavy-hitters.

Certainly don't just drop out for a wild-ride on someone else's coattails (i.e., joining a startup just for the thrill). There are plenty of good thrills to be had in college, anyway.

I fell into the not-entirely-sure-what-I-wanted-to-do camp, and it took me a long time after college to find something that I was passionate about, and could also earn a living at. But, my degree has always been invaluable to me. Like others here are saying, take courses outside of your comfort zone and apply yourself. Start and finish side projects.

Good luck!

</comment><comment><USER7> The answer to the title question in my experience has been no. I have a CS degree, but never ran into a company irrational enough to care about it either way.

As for whether dropping out of a CS degree is a good idea, that greatly depends, not least on your costs in time and money.

If you're going to not get a degree the ideal way to do it would be to skip all of college and some or all of high school, which would give you back 6 to 8 of the best years of your life for self-study and getting moving on a career; that could be far more valuable than a degree. Conversely if you've gone nearly all the way through the system and are currently halfway through final year in college it would make no sense to drop out at this stage.

Money also matters. In America particularly, if college will entail crippling yourself with debt you will only be able to get out of by permanently emigrating, you're probably better off just saying no. On the other hand if a high-status college offers you a full ride scholarship, it's probably worth your while to take it.

</comment><comment><USER8> My degree was in philosophy (from a good college), but I had to work my way up from being an administrative assistant (at a big engineering firm) into development positions. The starting pay was less, I never reached parity with my engineering degree peers. I went back and got a CS degree after (an MS).

It's important to think about these decisions in terms of your career arc. You're in college now, probably finding the same thing that I did when I started an undergraduate degree in CS, (that it is incredibly easy and plays to the LCD of developers).

I remedied this by switching to a major that challenged me. I grew in areas where I needed to (writing and analytical thought).

You might try taking classes outside of your major too. Stick with the CS major, but try to stretch yourself.

Another great option is to start a side project. You have time, something that is diminishing once you are done with school. College is a great (if expensive) startup incubator, and projects look great on the resume.

</comment><comment><USER9> To partly answer your question;

In the context of Software Development you can get into wherever you want if you have enough references, be it your contributions to open-source softwares, your past job experience etc.. pretty much everything that proves you can get stuff done and cause as few as trouble possible.

To understand my point throughly, you need to understand that most people -if not everybody- wants some form of determinism. Understand that the people who hires you has practially no way to know for sure how useful you will be to them, so the things you have done in the past has to stand for you. You can view a college degree simply as a reference that is supported by your college indicating that you know some things, which implies you are likely to perform better than the other Joe which doesn't have a degree.

A college degree is the safest, easiest and most reliable way to weigh a canditate's ability, though its not the perfect method, more importantly it is not "the" method.

</comment><comment><USER10> 'Is dropping out of a CS degree from a good college saying "I also want startup thrill" a good idea? Or a stupid idea?'

Instead of dropping out, you could simply take some time off from college. Pursue an idea or a skill for the duration of a semester instead of spending time in the classroom; you can go back to college at the end of your sabbatical. You may want to check with your college if you have to notify them of your temporary absence so they don't think you dropped out entirely (never done this before so just playing it safe). I wish I had done this. I would have taken sabbatical after my second or third year to build up skills that I enjoyed. It would have also helped for applying to internships or full-time jobs that require some level of experience. In addition, I would have used that time to work on other life skills like fitness.

As others have said, complete the degree to play it safe.

</comment><comment><USER11> Stay in college, and keep your education fairly broad, polymathy is getting back into fashion.

I cannot get a minimum wage job mainly because I am overqualified.

I cannot get a higher paid job because I lack specific qualifications.

I cannot afford those specific qualifications because I cannot get a minimum wage job.

If in a few years you happen to find yourself in this scenario, it is unlikely you will get any help at all. Firstly it is hard to fit someone like myself into a particular social group that is considered disadvantaged, and also I get prejudice from both left and right. In my last job I was considered as a threat by people in higher positions, while people at the same level as myself thought I was arrogant and uncooperative. You can't win sometimes.

This shitty situation can only be resolved by bootstrapping a job, which is one of the main reasons that I teach myself programming.

</comment><comment><USER12> I did a one year masters conversion course (popular in the UK around the time of the dot com boom).

Ten years on, I would say 80% of my knowledge is self taught, and being able to learn yourself is a valuable skill. I now work with a lot of bioinformaticains, many of whom are self taught. Some of them are good coders, many are not. I think doing a good course did teach some good principles about how to write better quality software, which seems to be missing from many self taught programmers.

</comment><comment><USER13> At big companies credentials matter. Typically it is the HR dept who find potential recruits to interview. They use that CS degree as a filter. Yes it is still possible to get a job without a degree but it is harder. My advice is to stay in school.</comment>


Wikimedia in Iraq has nearly 12M subscribers free of mobile data charges - <AUTHOR> https://blog.wikimedia.org/2017/02/28/wikipedia-zero-iraq/ <comment><USER2> This is a clear violation of net neutrality principles, but it's also clearly a good thing for the Iraqi people. How do those in the hard-core NN tent square that circle?

To sidestep any straw-man arguments about war zones, different country, etc; What if this were implemented in Appalachia to give access to wikipedia to the poor an uneducated there?

<comment><USER3> NN is about preventing one competitor from getting an unfair advantage. So unless you view Wikimedia as having a competitor, or some future potential competitor, this doesn't really violate any NN principles.

In essence, if we're all OK with Wikimedia having a monopoly on what it is that Wikimedia does then there is no problem.

Going back to the roots of the ICC(predecessor to the FCC) trains could carry USPS mail at different rates than other cargo. The USPS had a government sponsored monopoly on mail delivery. However, rate discrimination between similar cargo from different parties was prohibited. This is the basis for our concept of common carriers and NN.

<comment><USER4> NN is a pretty loosey-goosey principle that mostly just means "I don't like Comcast". There's also some partisan political football mixed in, and in the EFF's case, sizable donations from content providers like Google who want to preserve a strong bargaining position when buying bandwidth.

<comment><USER5> Not merely "I don't like Comcast", though I (and a huge portion of their customers) _really_ don't like Comcast.

It is the very high potential, one might even say certainty, that if given the opportunity to hobble their competitors in the entertainment space and to give themselves a massive advantage, they will do so.

The telcos and cable operators in the US have never been anything but monopoly or duopoly players. They don't know how to compete on any other field. If they are given the gun with which to shoot Netflix (for example) in the head (or demand ransoms that only major players can pay), they will likely pull the trigger the same day.

So, no. It's not about disliking Comcast, it is about knowing with confidence that the internet will be harmed, maybe drastically, by giving Comcast (and a few others who play according the same rules) the ability to do so.

</comment></comment></comment></comment><comment><USER6> Wouldn't net neutrality supporters be enraged because all data is not being treated equally now? Upstart wikis will never be able to compete!

<comment><USER7> You kid, but as much as I like Wikimedia (and as much as I would like to access Wikipedia free of mobile data charges), I think this objectively makes it harder for projects in the same field to compete, even if just a tiny bit.

I like to think I'm a net neutrality supporter, but when my mobile plan included unlimited data for the carrier's own music streaming service, I started using it and the unlimited data came in really handy. I used other streaming services much less because of that; Spotify, for example, didn't stand a chance of seeing my money.

I guess you can't have your cake and eat it too...

<comment><USER8> There is a pretty big difference between a charitable non-profit organization and a proprietary music streaming service.

<comment><USER9> Sure, but the barrier for the ISP to allowing the same thing for a proprietary music streaming service has been lowered.

This is, apart from the utility that it brings, advertisement for the operator:

> Wikimedia recognizes the user is on that operator's network and serves a > banner on the top of the page indicating free data courtesy of their mobile > operator, which reinforces a positive brand experience for the operator. [0]

It's not inconceivable that the ISP would do similar deals with $music_streaming_service. Maybe for some payment.

[0] [https://wikimediafoundation.org/wiki/Wikipedia_Zero](https://wikimediafoundation.org/wiki/Wikipedia_Zero)

</comment></comment></comment></comment><comment><USER10> So how long till someone makes a VPN that uses Wikipedia edits as the underlying communication channel? The latency would be on the order of seconds but the throughput would be decent.

To those of you who think I'm joking, it's already been done with DNS lookups so why not here too?

<comment><USER9> Way ahead of you

[https://motherboard.vice.com/en_us/article/wikipedia-zero- fa...](https://motherboard.vice.com/en_us/article/wikipedia-zero-facebook- free-basics-angola-pirates-zero-rating)

<comment><USER11> Here's the HN discussion: [https://news.ycombinator.com/item?id=11358846](https://news.ycombinator.com/item?id=11358846)

</comment></comment></comment><comment><USER9> Does this mean users of this thing will not be able to substantially edit wikipedia, because they won't be able to cite sources ?

Or check sources ?

Because if they get free access to wikipedia _only_ that would be the case.

If, on the other hand, only people who are already subscribers don't get their wikipedia traffic counted, then that seems a small improvement at best.

<comment><USER12> Damn that is a good point that I hadn't thought of.

This version of wikipedia puts a lot more faith in the editors because users can't check sources.

</comment></comment><comment><USER13> Meanwhile in People's Republic of China, a peaceful (as in not troubled by war) country, People's access to Wikipedia still depends on the mood of those in power...

<comment><USER14> China has been at war with its own people for generations now.

<comment><USER15> Every government (Or at least, the people they represent) is at war with its servants.

</comment></comment></comment><comment><USER16> I would much rather see devices fitted with full dumps of the text content of Wikipedia(s). The english Wikipedia is just 60 Gigabytes for heaven's sake!

<comment><USER17> Most smartphones in Iraq probably have 4–16gb of storage, and 64gb flash storage would be prohibitively expensive for most Iraqis. The English Wikipedia is 60gb, but that's without _any_ multimedia. The total size of all media in Wikimedia Commons is 23 terabytes.

We could create a minified version of the Iraq Wikipedia that could be around 40gb, but many will not want it, so we'd have to sell Wikipedia phones and non-Wikipedia phones.

You could sell copies of the minified Wikipedia on microSD cards, but a 64gb microSD card still costs about $20, but that price is out of reach for most in the war torn country.

Then there's the issue of updated content. One of the main uses for Wikipedia is learning about current events, current status of crises, recent elections, recent deaths, etc. You wouldn't really be able to do that with this system.

<comment><USER18> The Arabic ZIM file of February 2017 is 5.4G. [http://wiki.kiwix.org/wiki/Content_in_all_languages](http://wiki.kiwix.org/wiki/Content_in_all_languages)

</comment></comment></comment><comment><USER19> > Wikimedia recognizes the user is on that operator's network and serves a > banner on the top of the page indicating free data courtesy of their mobile > operator, which reinforces a positive brand experience for the operator.

I would like to know just how different Wikipedia Zero is. Can people still make accounts and contribute articles with this service?

<comment><USER9> From the same article:

> Through the Wikipedia Zero program, mobile data fees are waived for > subscribers of participating mobile operators so that they may read and edit > Wikipedia without using any of their mobile data.

</comment></comment><comment><USER20> Is invading them not enough? Does the US have to force an encyclopedia of Lord of the Rings trivia on them too?</comment>


Stop using 'short' for line and allocation sizes (2013) - <AUTHOR> https://git.kernel.org/cgit/editors/uemacs/uemacs.git/commit/?id=fa00fe882f719351fdf7a4c4100baf4f3eab4d61 <comment><USER2> And then: "Don't use 'char' for number of lines" (2014: [https://git.kernel.org/cgit/editors/uemacs/uemacs.git/commit...](https://git.kernel.org/cgit/editors/uemacs/uemacs.git/commit/?id=8841922689769960fa074fbb053cb8507f2f3ed9))

</comment><comment><USER3> "32,767 characters in a line should be enough for anyone."

I guess there's one constant with humans and infrastructure - people will always find ways to hit its limits.

<comment><USER4> "And if you have a line that is longer than 2GB, you only have yourself to blame."

Typing in machine code programmes for the ZX81, and ZX Spectrum consisted of REM statements with 1000s of zeros, which then you had to poke the machine code from data statements. Converting magic numbers, to magic.

</comment></comment><comment><USER5> This is actually an unfortunate patch... it rearranged lines for no particular reason, and scrambled the comments without updating them: they were multi-line sentences and referenced each other's positions.

The original code:

     	struct line *b_dotp;	/* Link to "." struct line structure   */
     	short b_doto;		/* Offset of "." in above struct line  */
     	struct line *b_markp;	/* The same as the above two,   */
     	short b_marko;		/* but for the "mark"           */
     	struct line *b_linep;	/* Link to the header struct line      */

The new code:

      	struct line *b_dotp;	/* Link to "." struct line structure   */
     	struct line *b_markp;	/* The same as the above two,   */
     	struct line *b_linep;	/* Link to the header struct line      */
     	int b_doto;		/* Offset of "." in above struct line  */
     	int b_marko;		/* but for the "mark"           */
     	int b_mode;		/* editor mode of this buffer   */

<comment><USER6> Even though Linus wrote _" it probably made sense 30 years ago as a way to save a tiny amount of memory"_ the rearrangement probably is to optimize structure layout.

If a pointer is 8 bytes and an int 4, the old structure typically (this is compiler dependent) would be 40 bytes, the new one 36.

But yes, that should have been two commits, and he should have updated the comments.

This also is somewhat of an argument for giving the compiler the freedom to choose filed order, as the order that is optimal for memory usage isn't the best for human understanding.

<comment><USER5> > If a pointer is 8 bytes and an int 4, the old structure typically (this is > compiler dependent) would be 40 bytes, the new one 36.

Ah: I actually did work out the alignment math, as I considered that as a reason to reorder the fields, but I was hoping that the goal would have been only to do that if the change was making the struct even larger (which it doesn't) and failed to think about a 64-bit computer :(. However, I personally don't consider "save four bytes per window" to be a particularly compelling reason to rearrange fields (which seem to have been put in that order more for semantic purposes than compression), and yeah: the real issue is that this is all in one patch and scrambled the comments :(. It is essentially at best a an unrelated optimization that seemingly didn't even notice how it broke the comments. (BTW: an issue with having a compiler decide the field order is that you then make separate compilation and sharing structures between libraries really really hard.)

<comment><USER6> It would be simple to either have compiler directives that control structure layout or (a bit more limited) some way to indicate that the compiler should keep your field order (just as, in Pascal, the 'PACKED' modifier to a struct directs the compiler to omit most padding)

Also, since Linus worked on kernel code a lot, that reordering probably was like a knee reflex; it didn't involve his brain. His brain wrote that we shouldn't be bothered by this in an editor, but his spine made the edit, anyways, and, apparently, his spine doesn't read comments.

</comment></comment></comment></comment><comment><USER7> Why not fixed-size ints - uint8_t, etc. from stdint.h? I've not been using C for a while, so I wonder what the viewpoints are regarding this.

<comment><USER8> You typically want to use the native integer size for something like this, for the code to be more portable. The native integer size should really be int, but it's not defined as such in the standard. My preference at the moment:

off_t for file offsets

ptrdiff_t for memory offsets (vs. size_t for unsigned)

int for return flags

A problem with this is that printf does not have sizes to match these.

<comment><USER9> But then you get different behavior depending on the platform, which doesn't seem any more portable to me.

<comment><USER10> I'm in the "never use fixed size integers unless needed"-camp. For example, if you write code that's supposed to run on an 8-bit computer (something embedded) as well as your 64-bit desktop, it makes no sense to limit yourself. For example, say that you know that your number will be between 1-200, you could use uint8_t. But why not use int? It will be the native width of the platform, and likely to be faster. Calculations on an 8-bit int can be slower than 64-bit ints on your 64-bit CPU, because the CPU might have to mask out the relevant part of the register to only operate on your 8 bits. And you don't gain anything by writing uint8_t, you still need to occupy a register on your CPU (which will be 64-bit). The behavior of your program will be the same on both platforms.

<comment><USER11> In practice, how much of my code is going to be run on an 8-bit CPU? Zero. I'd rather have the clarity and consistent behavior of explicitly typed ints than pre-optimize for something that will almost certainly never happen.

<comment><USER12> There were so many bad programmers who assumed 32 bit machines would last forever, that now we're stuck with compilers that don't default to 64 bit ints even building for 64 bit targets.

<comment><USER13> This will bite you if your code depends on int being 32 bit (for example if you depend on overflows or use asm). If your code explicitly uses an int32, this will always be true.

Silently increasing the size of an int is more likely to break things than it'll be helpful. If you really want an int to be 32 bit on a 32 bit machine and 64 bit on a 64 bit machine, make it explicit (e.g. intptr_t for pointers)

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Stupid question: why not unsigned int?

<comment><USER15> In my experience with languages that have both signed and unsigned ints, but have no overflow or underflow protection (which is pretty much all of them), you really want to use signed ints so that you can write assertions that numbers you expect to be positive are positive. You can't do that with unsigned ints since they are all by definition >= 0, so you always end up finding bugs where suddenly you've got MAX_INT - 34 floating around in your program horking things up with no easy ability to tell there's a problem early.

A uint that actually threw an exception or something if you tried to underflow it would be useful, but most unsigned ints nowadays aren't all that useful.

<comment><USER5> You still have to deal with wraparound all the way off the bottom of the negative end (which is absolutely possible: these kinds of massive additions and subtractions have been the basis of various exploits, often involving array math), and so you need to solve that problem anyway; but now you also have to constantly verify the number is positive, and it is extremely common to see checks in the wild which only verify that a sized index is less than some maximum :/.

</comment></comment></comment><comment><USER16> > And if you have a line that is longer than 2GB, you only have yourself to > blame.

This is why I like languages like Lisp: by default, integers are only limited by the amount of memory available (as an example: (- (expt 2 1024) (expt 3 27)) → 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356321998626652229).

For efficiency one can of course limit things to fixnums, and in a kernel one would want to be careful not to let reading a file eat all memory — but that's all doable in a Lisp.

</comment><comment><USER17> For structs where there are only a dozen or so in memory at any one time, this makes sense.

For structs where there are thousands, or millions, in memory using the smallest type required to get the job done will improve performance because you will fit more data into the cache.

<comment><USER18> Only if makes the overall structure actually becomes smaller. A bunch of these shorts were surrounded by fields whose alignment means that changing to int results in no increase in the overall size of the structure. In fact, I think some of them actually got _smaller_ due to reordering the fields to be more alignment-friendly.

<comment><USER17> Struct packing is something you can control at the compiler level. In gcc, you can add __attribute__((__packed__)) to your structs.

<comment><USER18> That can add a performance penalty. If it didn't, compilers would always pack tightly, after all.

In any case, these particular structs don't have any special packing applied.

</comment></comment></comment></comment><comment><USER19> I wonder if uemacs is now that rarest of beasts, a piece of software that is actually _done_.

Edit: apparently it has no undo. The rules:

1) Linus does not make mistakes

2) In the event of Linus making a mistake, see rule 1

3) ...

4) git reset --hard HEAD

</comment><comment><USER20> This reminds me of my first job (in ECAD/EDA) where microemacs was part of the design process. We had microemacs "programs" (like macros) which post- processed the output from other CAD tools. Microemacs had an internal C-like (interpreted) language, and combined with the fact that it ran on DOS and Windows 3.1 made it sort of suitable for this. However I really hope those have been replaced now.

</comment><comment><USER21> So has Linus learnt another editor, as threatened??

<comment><USER22> He had one commit to uemacs after that, in 2014 (with a similar objective). Either he gave up after that or that fixed all his problems so far...

</comment></comment><comment><USER23> It was astounding to me when I watched that talk and he mentioned this issue. Part of me still hopes he uses this same editor.

</comment><comment><USER24> Well, it is called MicroEmacs for a reason ...

</comment><comment><USER25> Original Title, for Posterity:

"Linus has been polishing a turd for two years"

<comment><USER26> It's turds all the way down.</comment></comment>


To HN Veterans: Happy Veterans Day - <AUTHOR>

Happy Veterans Day. Thank you for your service and Semper Fi.
Your political bearing should not matter when acknowledging someone who decided to put their life on the line without asking for anything in return. All politics aside, one must appreciate the men and women who made the ultimate sacrifice for reasons greater than themselves.
SF, USMC 2000/1-2006, MOS 0321 <comment><USER2> Thank you. USN 1975-1981, IC1

And Happy Veterans Day to the rest of you.</comment>