The best bug tracking system. Don't raise bugs, write an automated test - <AUTHOR> http://www.makinggoodsoftware.com/2010/02/23/the-best-bug-tracking-system-dont-raise-bugs-write-an-automated-test/ <comment><USER2> Here are 4 real-world bug reports, in their entirety. Anybody care to rewrite them as automated test cases for me?

      * "Try it Now" button sometimes drops below the "Learn More" button in FireFox

      * Capitalization inconsistent in top nav

      * Popup blockers occasionally stop the App window from opening properly

      * Wierd timeout errors clumped around 1:00 am every few nights

      * Accounting needs to be able to call up weekly income reports

In my experience, it's actually pretty rare to find a bug that can be wrapped in a test case without actually discovering and fixing it in the process. Most things that end up in the bug tracker are either cosmetic, wierd "solar activity" things, or disguised feature requests.

<comment><USER3> Whenever the unit testing comes up, people always cite GUI issues as untestable. But it should be pointed out that in Fred Brook's usage of the terms, this is an _accidental_ problem, not an _essential_ one. GUIs are hard to test not because GUIs are hard to test, but because _your GUI doesn't contain provisions for being tested_.

Nothing stops a GUI from being very queryable. Nothing stops you from being able to query the locations of two widgets and making assertions based on those locations. Nothing stops you from getting text back out, or verifying fonts, or verifying the lack of overlap, or lack of popups... except that GUIs are written to be opaque monoliths, graveyards of data. This is correctable, but not by the end programmer.

So it is true that GUIs are untestable, but this doesn't _have_ to be true. But it's going to take a conscious effort by QT or GTK or someone to _make_ their GUIs testable before anything will change.

(I acknowledge your other issues; don't agree with all of them but the GUI issue is what I'm passionate about.)

<comment><USER4> As a Rails developer doing a fair amount of TDD and some BDD, I have a first- hand view of the state of the art of view testing for the web. Tools like webrat, selenium and cucumber are compelling because they hold the promise of end to end testing.

I'm really glad that people are working on solving these hard problems, _but_ , I'm also a designer and usability guy, and I can tell you that these tools are still very very crude. You know the sayings "when all you have is a hammer everything looks like a nail", and "use the right tool for the right job"? Well, to developers, code is the hammer. Developers (especially consultants) would like to believe that if they write a cuke test and it passes, then their job is done. But the fact of the matter is that test code is not free to write or even to run, and the amount of things that a QA person is actually testing when they click through an application is several orders of magnitude more coverage than an state-of-the-art acceptance test gives you (this may change eventually, but it's an AI-level problem).

I see a lot of value for the initial acceptance tests that verify basic flows, but they are _just one tool_ in your belt. Usability testing and QA provide orthogonal _human_ perspectives that provide more bang for your buck then increasingly fine-grained automated tests. Think of it like this, automated tests take your product from complete failure to mediocre, but design, usability testing and QA can take it from mediocre to great.

I've seen brilliant programmers get obsessed with "all green" to the point that they do all their work without firing up a browser, and miss dozens of terrible usability flaws that would be immediately obvious the first time you click through.

None of this is in any way disparaging of GUI testing per se, but just that it has limitations which I've seen ignored for the sake of code fetishism.

<comment><USER5> Not sure if it's any different or better, but Project Sikuli (<http://groups.csail.mit.edu/uid/sikuli/>), an api for scripting visual actions in guis could be useful for testing layout and interaction.

Here's an example of using it for unit testing a gui: [http://sikuli.org/documentation.shtml#examples/TestJEdit.sik...](http://sikuli.org/documentation.shtml#examples/TestJEdit.sikuli/TestJEdit.html)

</comment></comment></comment></comment><comment><USER6> And of course, the testing for any bug can be easily automated. Not!

Look, some things are very easy to test in unit tests: Does sin(180) return the right value? If I do operation X on supposedly const object O, does O have the same value before and after?

And some things are incredibly hard: Does this MP3 sound right after compression? Does the typography for this combination of letters look right? Is the user interface responsive enough? What about the crash that only occurs in just the right hard-to-duplicate circumstances?

Why is it that these hard core test advocates always seem to assume that all bugs are of the former sort?

<comment><USER7> > Does this MP3 sound right after compression?

A quick check for this would be to have a bunch of wav files that demonstrate different properties that the encoder is supposed to compress on, run them through the encoder, and then read them back out through a standard decompressor, and then verify that the waveforms match within a tolerance. With any release, you'll want to do some manual testing, but you can gain higher confidence on small changes between milestones.

> Does the typography for this combination of letters look right?

Same sort of thing, generate a bitmap from the output, compare against a pre- approved sample using a heatmap to determine differences.

> Is the user interface responsive enough?

Define what responsive means in quantitative terms. For most interactions, you're going to want sub 200 ms. For stuff where you want the user to wait, you'll have to define wait times ahead of time. Maybe you make changes that cause the latter to break because of a significant change in what you're doing, but it's good for people to know about that ahead of time, right?

> What about the crash that only occurs in just the right hard-to-duplicate > circumstances?

Hey, nothing's perfect. But this objection is tautological. It's only hard to duplicate because you don't understand it yet.

<comment><USER8> "verify that the waveforms match within a tolerance" The problem is, that is not easy. Determining how close two pieces of audio sound is the majority of the lossy audio compression problem. You can of course check if you're output is bitwise identical, but when it isn't, you need ABX testing. With people.

<comment><USER9> Yes, it looks like manual test.

BUT, when QA team found problem, you can create automated test case, which will look for that particular problem only. Right?

For example, QA noticed "clicks" every few seconds in resulting sound. Is it hard to create automated test case for that?

<comment><USER8> I'm not sure how hard it would be to create a reliable test for clicks. Depends on the type of click, I suppose. Some would be fairly easy to detect (e.g., "for .1s, all samples output are 0, with loud samples on both sides"). Though I'm guessing that would actually result in plenty of false-positives, and would be a fairly carefully tuned (and thus fragile) test case.

A better approach might be to detect it in the frequency domain, after performing an FFT (that instant drop to 0 will generate a lot of energy on both sides). I suspect you'll still need the careful tuning; after all, a sudden burst of energy on your FFT could be a click, or it could be a cymbal.

Not sure how well this would work, I've never tried it, though it sounds like some fun code to write.

</comment></comment></comment></comment></comment><comment><USER10> This wouldn't work for:

* Public bug trackers

* GUI applications, where writing automated tests is difficult or infeasible. (how would you write a test case for "icon is upside down"?)

* Abstract bugs, such as performance-related bugs or feature requests

* Nondeterministic or otherwise unusual bugs

I'd love to live in a world where all bugs were easily reproducible and even a non-programmer could write a test case. A quick glance over my issue tracker reveals this is not the case.

</comment><comment><USER11> Raising the cost for reporting bugs might people want to avoid reporting bugs.

I found I hardly every used a bug tracker I had installed on a slow server, because it was so slow. So I don't think making bug submission even slower would be a good thing.

<comment><USER12> It also raises the literal dollar cost for QA people. If you have a large QA operation, you're probably paying semi-skilled non-programmers. If you have to get QA people who can code enough to write a test, they'd cost a lot more.

</comment></comment><comment><USER13> Yea, because all testers are capable of writing software tests and because all bugs warrant the effort to write a test...

Not sure what this is doing on HN, really.

<comment><USER14> Well, while I certainly agree that this is perhaps a way off in terms of technical capability, that won't always be the case perhaps. I'm not talking about everyone learning to code, that's dead in the water.

But systems which allow business people to define their own acceptance and test criteria exist now - tools like Fitnesse, etc. I'm not saying this is feasible today, but a future can be envisaged where writing a repeatable test which determines whether a function works as desired is within the domain of less technical users.

<comment><USER15> If you let people without a development background write tests it's easy for them to say something to the effect of (X > 7) and (X < 4). More generally insuring that there are no conflicts in your requirements is a very hard problem.

</comment></comment></comment><comment><USER16> _Communication problems: Sometimes the description of the bug is poor, or the developer misunderstands the problem._

-> Maybe more effort should be placed on improving communication skills for your company? This will greatly improve many other aspects of your business - not just bug logging.

 _Regression testing. This process requires the handover of code back and forward between QA and development, this causes versioning problems and duplicated testing effort._

-> why? Maybe more effort should be placed on improving communication skills...

 _Low robustness. The process doesn't guarantee that the error will appear again in the future._

-> Neither would buggy automated tests - or whom do you need to hire to test the tester?

 _Bureaucracy. Traditional bug tracking systems switches the team focus to bureaucracy from quality_

-> If you care about your product quality and your other team members development goals it's not bureaucracy it is quality. Can't see past mistake occurrences, thus don't see the system as meaningful. Rather the focus should be to take the current system seriously and work on improving it.

</comment><comment><USER17> Reporting bugs is already tedious. Sometimes more (eg when requiring an account), sometimes less. Asking for a test case would surely reduce the number of "bug reports" to abysmal figures.

</comment><comment><USER18> Most synchronization issues in multi threaded applications can't be automated. Also there are bugs triggered by a specific state of the application that is complex to encode in a test.

</comment><comment><USER19> my company is developing web applications that are used by companies to optimize internal processes. i recently found out about selenium and this tool is just great. i wasn't aware that it is possible to write tests for even complex and heavily ajax driven web interfaces. roxxx. don't get me wrong, it is indeed a lot of work to write those tests. but once written they'll save your time and more important, your life. give it a try.

</comment><comment><USER20> Bug Trackers also play an important prioritisation role - a central location to decide what work is most important right now.

If we wrote only unit tests, pretty soon someone would hack up a system to take the names of the tests, and put them in a list. It would be called testzilla.

</comment><comment><USER21> If you are developer and doing TDD or some sort of automated testing (which you should!) and if you are not writing automated tests for bugs, you are doing it wrong anyway!

If the bug is GUI inconsistency, looks crap on my mom's computer sort of bug, then you can't automate anyway. Assuming you testers' mom haven't got serial ports.</comment>


How Far Do Mountain Bikers Travel? - <AUTHOR> http://www.technologyreview.com/blog/arxiv/26074/ <comment><USER2> Couldn't you combine the GPS with an accelerometer to perform dead reckoning. You could also verify the altitude roughly from the GPS using the longitude & latitude to lookup the altitude from elevation data (<http://vterrain.org/Elevation/SRTM/>)

<comment><AUTHOR> I think the point was that the finer grain measurement you take the greater your total as you go up and down the essentially fractal landscape.</comment></comment>


What Pigeons Teach Us About Love - <AUTHOR> http://nautil.us/issue/33/attraction/what-pigeons-teach-us-about-love <comment><USER2> "I have been feeding pigeons, thousands of them for years. But there was one, a beautiful bird, pure white with light grey tips on its wings; that one was different. It was a female. I had only to wish and call her and she would come flying to me. I loved that pigeon as a man loves a women, and she loved me. As long as I had her, there was a purpose to my life."

\- Nikola Tesla</comment>


Peak map: Visualize the elevation of any area using a ridgeline chart - <AUTHOR> https://github.com/anvaka/peak-map <comment><AUTHOR> [https://anvaka.github.io/peak- map/#11.19/52.2305/8.9095](https://anvaka.github.io/peak- map/#11.19/52.2305/8.9095)

This is one of my favorite spots on the map. The mountainrange is dividing a big part of the north from southern region called Westphalia. Only one river breaks through it allowing for an easy way across the mountains. The citys name at that spot is Porta Westfalica which is Latin and means "gate to Westphalia". I think this visualization illustrates the reason behind the name very well.

<comment><USER2> Thank you, very interesting geography. Any theories on how the river broke through the mountain range, i.e. the timeline for the erosion?

From my speculative chair, it looks like the river existed before the ranges.

<comment><USER3> This is a water gap, a feature which is commonly formed from a river older than the mountain range. In combination with that older river, in this case, the specific location was caused by "subrosion (a general expression applied to karst processes influencing the course of a river) and..meltwater channels at low altitudes" (Rohde 1994, Martini et al 2002-page 285).

\-- [https://en.wikipedia.org/wiki/Water_gap](https://en.wikipedia.org/wiki/Water_gap)

\-- [https://onlinelibrary.wiley.com/doi/book/10.1002/97814443042...](https://onlinelibrary.wiley.com/doi/book/10.1002/9781444304299)

\-- Rohde P, 1994. Weser und Leine am Berglandrand zur Ober- und Mittelterrassen-Zeit E&G Quaternary Science Journal 44(1): 106–133, DOI 10.3285/eg.44.1.10.

<comment><USER4> This makes me want to play with Chaim Gingold's Earth Primer!

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

Earth Primer is a science book for playful people. Discover how Earth works through play—on your iPad. Join a guided tour of how Earth works, with the forces of nature at your fingertips. Visit volcanoes, glaciers, sand dunes. Play with them, look inside, and see how they work.

Earth Primer defies existing genres, combining aspects of science books, toys, simulations, and games. It is a new kind of interactive experience which joins the guided quality of a book with open ended simulation play.

Features:

• Discover how Earth works through play.

• The forces of nature are at your fingertips— make volcanoes, shape sand dunes, form glaciers, sculpt mountains, push around tectonic plates, paint with wind, heat up magma—and more!

• 20 different tools to unlock.

• Richly interactive geological simulations.

• Sandbox mode.

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

[https://www.wired.com/2015/02/a-sandbox-for-the- anthropocene...](https://www.wired.com/2015/02/a-sandbox-for-the- anthropocene/)

[https://vimeo.com/116182914](https://vimeo.com/116182914)

[https://www.youtube.com/watch?v=qtsf3nRFfwk](https://www.youtube.com/watch?v=qtsf3nRFfwk)

</comment></comment></comment></comment><comment><USER5> Hey there, I'm the author of the tool!

Just wanted to chime in and say thank you for the sharing and love!

Have a wonderful start of the year!

<comment><USER6> Great work. Did you coin "Joy Map" or is that already a thing?

I'm assuming its a reference to Joy Division's iconic Unknown Pleasures cover [0] by Peter Saville?

[0] [https://www.radiox.co.uk/artists/joy-division/cover-joy- divi...](https://www.radiox.co.uk/artists/joy-division/cover-joy-division- unknown-pleasures-meaning/)

<comment><USER7> >the image is a reinterpretation of the image of radio waves from the first discovered pulsar. The original was illustrated by Cornell grad student Harold Craft in his 1970 PhD thesis and subsequently published in the Cambridge Encyclopeadia of Astronomy. [0]

[0] [https://www.esri.com/arcgis-blog/products/arcgis- pro/mapping...](https://www.esri.com/arcgis-blog/products/arcgis- pro/mapping/joy-plots-in-arcgis-pro/)

Pretty cool that the album was inspired by the visual representation of the first discovered pulsar!

Apologizes if your link already says that. I cannot open it due to work filters I think :/

</comment></comment></comment><comment><USER8> Nice! Really reminds me of the Unknown Pleasures album by Joy Division.

Edit: Just noticed it's called a "joy plot" in the repo.

<comment><USER9> The R community started out calling these "joy plots" (after the Joy Division album) but then people found out about the association of "joy division" with the Holocaust ([https://serialmentor.com/blog/2017/9/15/goodbye- joyplots](https://serialmentor.com/blog/2017/9/15/goodbye-joyplots)) and so now they're called ridgeline plots.

<comment><USER4> Oh dear, that's also bad news for joysticks and the red "Joy Button" on the Thinkpad keyboard.

[https://news.ycombinator.com/item?id=21757484](https://news.ycombinator.com/item?id=21757484)

(But then again, since when did IBM ever shy away from selling their products to Nazis?)

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

<comment><USER10> No it's not. "Joy" isn't a bad word. Joysticks seem to be fine.

It's specifically that the band "Joy Division" was named intentionally after a regrettable piece of history, and "joy plots" are named because of a Joy Division album cover.

Words aren't bad -- it's the meaning and derivation behind them. Etymology matters.

<comment><USER4> Do you think the Mac OS System 7.1 user interface designers at Apple should have called that grinning penis-like thing with a rash on the tip the "Control Strip"? It's just such a bad name, on so many levels.

[https://news.ycombinator.com/item?id=21870821](https://news.ycombinator.com/item?id=21870821)

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

>The Control Strip is a user interface component introduced in the "classic" System 7 Macintosh operating system. It currently exists as part of the Touch Bar interface in macOS.

[https://en.wikipedia.org/wiki/Fortifications_of_the_inner_Ge...](https://en.wikipedia.org/wiki/Fortifications_of_the_inner_German_border#Control_strips)

>In the West, the control strip became known as the "death strip" (Todesstreifen) because of the shoot-to-kill orders given to the border guards. The East Germans preferred to call it by the more euphemistic name of the "action strip" (Handlungsstreifen). It was also nicknamed the Pieck-Allee ("Pieck Avenue") after East Germany's president Wilhelm Pieck (1949–60).

<comment><USER10> Show evidence that the Mac OS control strip was named after German war fortifications.

Instead of it clearly just being a literal _strip_ of _controls_.

Clearly you're not going to find any.

This is my point. Etymology and history matters.

Also, gratuitous genital analogies don't help to make anyone's case here.

<comment><USER4> Show your evidence that "Joy Plots" were named after the Freudenabteilung. Yet you support the R community changing the name.

Clearly you're not going to find any evidence that the R community named the plots after the Freudenabteilung.

Instead of it clearly just being an innocent literal reference to the name of the band who produced a famous album cover that inspired the plots.

If your point is that etymology and history matter, then why are you saying that it matters for the R community, but not Apple?

By your inconsistent logic, it's not OK to criticize Apple for naming the Control Strip even through they may not have realized the historical meaning of Kontrollstreifen at the time, but it's OK to criticize the R community for naming Joy Plots after the name of a band instead of Freudenabteilung. Why the Widerspruch und Doppelmoral?

Your own words contradict your point: 'This isn't about "cancelling". It's about something being in bad taste in the first place, even if the originator hadn't been aware of it.' Yet now you're saying that because Apple was not aware of the dark meaning of "Control Strip", it's wrong to criticize that name. Pick a lane, and stick with it.

My point is that IBM declined to name the input device that Ted Selker invented the "Joy Button", even though that's what he originally wanted to call it (if not the "Keyboard Clitoris" or "Control Knob"), so they named it the "Trackpoint" instead. And that was most likely to avoid any sexual connotations, not about Nazi allusions.

Yet IBM has an unabashed well documented history of marketing and selling computing machinery to Nazi Germany that facilitated the Holocaust, which substantially enabled them to identify, round up, and murder many Jews and other persecuted minorities (not to mention their contracts with the US Government to help round up Japanese people into internment camps). So by IBM management's logic, Nazi are fine upstanding customers, but sexual references in product names are a no-no.

Please be a Joy Button, not a Control Knob!

<comment><USER10> > _Show your evidence that "Joy Plots" were named after the Freudenabteilung._

Huh? Joy plots were named after Joy Division (because of their album cover), which was named for what happened in the Holocaust.

The chain of derivation is crystal clear and 100% undisputed.

The Control Strip is named after a strip of controls. There's zero evidence of derivation from something else.

End of story.

I don't know why you're continuing to talk about genitals or IBM. They have zero to do with this.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I spent some time (but not enough) to add a tilt slider. Ultimately what it did was change the renderRows fY calculation to:

      let fY = y - Math.floor(scale * (height - minHeight) / heightRange) - r * tilt * 0.1;

Of course, this creates blank space at the bottom, but I think it makes things a little more interesting without fudging too much with the scale and getting sharp peaks.

When I find more free time, I can flesh it out and make a PR, but I love this idea. Thanks for sharing it!

<comment><USER5> Thank you!

<comment><USER4> I also thank you for sharing! In reading your code to learn from your work, I noticed a little optimization you could use, that applies to other 2d canvas code in general:

CanvasRenderingContext2D has save() and restore() methods you can call to re- use partial paths. So instead of making the path and closing it to fill, then making it again without closing it to stroke, you can make it once without closing, save the graphics state, close the path, then fill, restore the graphics state, then stroke! That is a classic idiom from PostScript (draw, gsave, fill, grestore, stroke).

That should save a bunch of JavaScript looping and spooning points through the 2d context api. (It's the individual lineTo calls that are expensive, because of all the overhead of JavaScript<=>C bindings, not stroking or filling the actual lines. And there's no way to provide an array of points all at once, like with WebGL.

(At least SVG made the right decision, inspired by VML, to put all the points of a path in one attribute string, instead of using individual XML elements for each point.)

[https://developer.mozilla.org/en- US/docs/Web/SVG/Element/pat...](https://developer.mozilla.org/en- US/docs/Web/SVG/Element/path)

Once you get into native code, it's fast even if there's a lot to do (i.e. calling ctx.stroke once), but jumping in and out of native code a lot (i.e. calling ctx.lineTo a thousand times) is slow.)

Thanks for sharing the code, it's inspired me! (I'm trying to figure out how to rotate and otherwise generally transform the direction that the lines scan across the depth map and screen, to get a Max Headroom effect! Maybe somebody with deep shader-fu could suggest an out-of-the-box way to render it in hardware with WebGL, to apply to live video!)

Come to think of it, you could just draw the ridges directly as polygons with WebGL, and that would be quite flexible and performant!

I haven't tested it yet, but here's the new drawPolyLine from createHeightMapRenderer.js:

Original:

[https://github.com/anvaka/peak- map/blob/master/src/lib/creat...](https://github.com/anvaka/peak- map/blob/master/src/lib/createHeightMapRenderer.js#L95)

Optimized:

        /**
         * Draws filled polyline.
         */
        function drawPolyLine(points) {
          if (points.length < 3) return;

          let smoothRange = getSmoothRange(points, smoothSteps);
          points = smoothRange.points;

          // Create the unclosed path.
          ctx.beginPath();
          ctx.moveTo(points[0], points[1]);
          for (let i = 2; i < points.length; i += 2) {
            ctx.lineTo(points[i], points[i + 1]);
          }

          // If line's height is greater than 2 pixels, let's save
          // the graphics state, finish and close the path, fill it,
          // then restore the graphics state:
          if (smoothRange.max - smoothRange.min > 2) {
            ctx.save();
            ctx.lineTo(points[points.length - 2], smoothRange.max);
            ctx.lineTo(points[0], smoothRange.max);
            ctx.closePath();
            ctx.fillStyle = lineFill;
            ctx.fill();
            ctx.restore();
          }

          // Now finally stroke the unclosed path.
          ctx.strokeStyle = lineStroke;
          ctx.stroke();
        }

There was a classic "Grandfather Clock" posting from Glenn Reid at Adobe (author of the "Green Book" on PostScript language program design) to comp.lang.postscript that really opened my eyes about writing code in interpreted languages like PostScript (and JavaScript, while JIT'ed at runtime, still makes calling native code expensive), and balancing optimization with readability:

Here's Glenn's "Green Book", which was like a bible to me, and still is quite relevant to canvas 2d context programming -- see especially page 9, section 1.5, Program Design Guidelines, page 72, section 4.6, Optimizing Translator Output, and page 99, chapter 7, The Mechanics of Setting Text:

[https://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDF](https://www- cdf.fnal.gov/offline/PostScript/GREENBK.PDF)

>page 9: 1.5 Program Design Guidelines

>There are a few items that may be kept in mind while implementing a driver for a PostScript device. As with most software development, the most difficult part of writing programs in the PostScript language is the design of the program. If the design is good, implementing it is easy. If the design is poor, it may not even be possible to correctly implement it. Below are some helpful items to keep in mind when writing your software. All of them are explained more fully within the text of this book; this is only an attempt to prime the pump before you start reading:

>• Use the operand stack efficiently. Pay particular attention to the order of the elements on the stack and how they are used.

(Using the stack efficiently by designing fluent words that chain and dovetail together elegantly in pipelines (and systematically writing line-by-line stack comments) instead of using named variables in dictionaries is good idiomatic PostScript and Forth, aka tacit programming or point-free style, the stack- based equivalent of fluent interfaces.)

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

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

>• Avoid unnecessary redundancy. When a program is produced, check for many repetitive steps that perhaps could be condensed. Keep identifiers short if they are to be transmitted many times.

(Only create paths once!)

>• Use the PostScript imaging model effectively. When printing, a document must be translated into the language of the printer. This includes a philosophical adjustment to the nature of the PostScript imaging model.

(Use the graphics state stack!)

>• It is better to translate into the PostScript imaging model than to maintain another set of graphics primitives using the PostScript language for emulation.

(The hardest problem I ever tried (and failed) to solve properly with PostScript was making a printer driver for rendering user interfaces drawn with X11 using a combination of bitmaps and lines. Because of X11 "half open" pixel rounding rules versus PostScript's "stencil paint" model, they just don't line up right when you zoom into them, and there's no fudge or compromise that works in all cases. Here is my commented-out failed attempt:)

[https://github.com/mmontone/garnet/blob/1652af38f76b1c4efb19...](https://github.com/mmontone/garnet/blob/1652af38f76b1c4efb19bc31cfbae9197817a786/src/ps/ps.lisp)

        line-color line-cap line-join dash-pattern
        thickness
        % dup -1 ne { .5 add } if % fudge outline width thicker
        StrokeShape

Half Open:

[https://www.sciencedirect.com/science/article/pii/B978008050...](https://www.sciencedirect.com/science/article/pii/B9780080507552500786)

Stencil Paint:

[http://www.chilton- computing.org.uk/inf/literature/books/wm/...](http://www.chilton- computing.org.uk/inf/literature/books/wm/p005.htm#c5p3p1)

>page 100: Note: There is one principle to keep in mind when deciding upon an algorithm for setting text. The longer the string presented to one of the show operators, the more efficient the system is likely to be. This is because the PostScript language built-in operators, such as show, widthshow, and ashow, operate essentially at compiled speed once they have been invoked. Each moveto or div operation performed must first be interpreted, which is significantly slower.

Glenn's post in a comp.lang.postscript discussion about PostScript programming style and optimization:

[https://groups.google.com/forum/#!search/%22glenn$20reid%22$...](https://groups.google.com/forum/#!search/%22glenn$20reid%22$20%22grandfather$20clock%22/comp.lang.postscript/i4NcunJGFkU/Boxz_6s-T3cJ)

        From: Glenn Reid (Abode Systems)
        Newsgroup: comp.lang.postscript
        Subject: Re: An Idea to Help Make Postscript Easier to Read (and Write)
        Date: 10 Sep 88 17:26:24 GMT

        You people tend to forget that the PostScript language is interpreted.
        It is well and good to use tools to convert to and from PostScript,
        but it is not quite as "transparent" as we all might think.
        I like to think of a big grandfather clock, with the pendulum swinging.
        Each time pendulum swings, the PostScript interpreter gets to do one
        operation.  The "granularity" of the clock is nowhere near the speed
        of a microprocessor instruction set, and any comparison with assembly
        languages doesn't make sense.

        The difference between:

                0 0 moveto

        and

                0 0 /arg2 exch def /arg1 exch def arg1 arg2 moveto

        can sort of be measured in "ticks" of the interpreter's clock.  It's
        not quite this simple, since simply pushing a literal is faster than
        executing a real PostScript operator, but it is a rough rule of thumb.
        It will take about three times as long to execute the second of these
        in a tight loop, and about five times as long if it is transmitted and
        scanned each time.  My rule of thumb is that if you have roughly the
        same number of tokens in your stack approach as you do with your 'exch
        def' approach, the 'exch def' is likely to be much more readable and
        better.  Otherwise, I usually go with the stack approach.

        One other thing of note is that if you have too much stack manipulation
        going on, it may well be symptomatic of a problem in the original program
        design.

        Also, most procedures don't do any stack manipulation at all, they
        simply use their arguments directly from the stack.  In this situation,
        it is especially wasteful (and confusing, I think) to declare
        intermediate variables.

        Compare:

        % sample procedure call:
                (Text) 100 100 12 /Times-Roman SETTEXT

        % approach 1:
                /SETTEXT { %def
                    findfont exch scalefont setfont moveto show
                } def

        % approach 2:
                /SETTEXT { %def
                    /arg5 exch def
                    /arg4 exch def
                    /arg3 exch def
                    /arg2 exch def
                    /arg1 exch def
                    arg5 findfont arg4 scalefont setfont
                    arg2 arg3 moveto arg1 show
                } def

        Which of these is easier for you to understand?

        Anyway, I think the discussion is a good one, but let's not forget
        that PostScript it is an interpreted language.  And I don't think
        it is terribly hard to use and understand, if it is written well.

        Glenn Reid
        Adobe Systems

<comment><USER5> Thank you for sharing this! I think it is a very cool trick. Unfortunately it didn't work for me. Seems like whether path is closed or not is not persisted during `ctx.save()` operation: [https://developer.mozilla.org/en- US/docs/Web/API/CanvasRende...](https://developer.mozilla.org/en- US/docs/Web/API/CanvasRenderingContext2D/save)

Which causes the bottom closing line to appear where it shouldn't. Here is a simple jsbin to reproduce: [https://jsbin.com/luzatuteha/1/edit?html,js,output](https://jsbin.com/luzatuteha/1/edit?html,js,output)

<comment><USER4> Wow, bummer -- that's a surprise and disappointment to me that the canvas 2d API isn't more like PostScript in that way. Filling then stroking the same path is a very common operation.

NeWS's dialect of PostScript (but not standard Adobe PostScript) had currentpath / setpath operators to save and restore the current path as a first class object, so you could use it any number of times later in different contexts. I wish the canvas 2d api had that too, plus some set operations on regions.

[http://bitsavers.trailing- edge.com/pdf/sun/NeWS/NeWS_1.1_Man...](http://bitsavers.trailing- edge.com/pdf/sun/NeWS/NeWS_1.1_Manual_198801.pdf)

It'd be fun and worth coding up a WebGL renderer, I think! Then you can pass all the points in one big chunk of memory, and draw it from any direction, with lighting and shadows!

</comment></comment></comment></comment></comment><comment> jo-m I once made something similar for audio FFT waterfall plots: [https://jo-m.ch/repos/waterfall-plot-webgl/](https://jo-m.ch/repos/waterfall- plot-webgl/)

(Github: [https://github.com/jo-m/waterfall-plot- webgl](https://github.com/jo-m/waterfall-plot-webgl))

</comment><comment><USER12> A weird feature in the California Central Valley. Everything is flat for miles and miles but there's this one circular pile of badlands near Yuba City. [https://anvaka.github.io/peak- map/#10.68/39.233/-121.7921](https://anvaka.github.io/peak- map/#10.68/39.233/-121.7921)

</comment><comment><USER7> Cool, very pretty visualization. I might have to get a mug of the mountains I live in :)

<comment><USER5> Thank you :)!

</comment></comment><comment> ur-whale It's nice at a large enough away distance, but not so great if you zoom in.

[edit]:

Here are the alps, quite nicely rendered (kind of reminds me of a Tolkien map of middle earth).

[https://anvaka.github.io/peak- map/#6.31/46.111/10.14](https://anvaka.github.io/peak-map/#6.31/46.111/10.14)

But here's a zoomed in rendering (of Sudtirol / Dolomites), no so great IMO:

[https://anvaka.github.io/peak- map/#10/46.148/11.4086](https://anvaka.github.io/peak-map/#10/46.148/11.4086)

<comment><USER4> Devil's Tower:

[https://anvaka.github.io/peak- map/#14.63/44.59011/-104.71462](https://anvaka.github.io/peak- map/#14.63/44.59011/-104.71462)

Mt Fuji Crater:

[https://anvaka.github.io/peak- map/#12.89/35.36449/138.72709](https://anvaka.github.io/peak- map/#12.89/35.36449/138.72709)

</comment></comment><comment><USER13> Pretty cool!

After tweaking a little bit of settings (reducing height settings to low), get a very interesting graphics for Asia+Europe - quite a few majestic mountain ranges there.

Coffee cup result:

[https://www.zazzle.com/map_mug-168739066664861503?t_map_iid=...](https://www.zazzle.com/map_mug-168739066664861503?t_map_iid=0ba39b28-8e96-44be- be6e-a1890833089d&ed=True&r=5252314)

</comment><comment><USER14> I'm sure I read someone asking a question on how to do something like this recently, I wonder if this was built in response to that question.

<comment><USER5> I just saw a lot of them lately popping up on Reddit as static images. So I made the interactive version

</comment></comment><comment><USER15> Sweet! I must be very incompetent, but how does one get the image to Zazzle to make a mug? I don't see a button anywhere...

<comment><USER5> Refresh the page, make your chart, close formatting options and wait for 5-10 seconds. The button should appear.

Typing that out made me think I might have made a mistake by hiding print functionality too far. I just didn't want to be too aggressive showing this option

</comment></comment><comment><USER16> Lovely. Feature request... two sliders for X/Y offset, to solve the issue where path of a river and height data don't match after changing height scale with overlay opacity under 100 (e.g. see [https://imgur.com/a/ipm1ixb](https://imgur.com/a/ipm1ixb) )

</comment><comment><USER17> I would not suggest getting Chicago made into a mug:)

[https://www.zazzle.com/map_mug-168739066664861503?t_map_iid=...](https://www.zazzle.com/map_mug-168739066664861503?t_map_iid=fa2604b5-3850-4d42-8160-2b7371f84a4d&ed=True&r=7919833)

<comment><USER5> I found in cases like this increasing the height scale produces more appealing results :)

</comment></comment><comment><USER10> This is seriously so cool! I love simple clever tools like this. And playing with the sliders lets you do lots of cool effects too.

I wonder what happened to Greenland, though? It's just... not there.

Also -- especially for printing -- an "export to SVG" option would be amazing.

<comment><USER5> Hi there. I'm the author of the tool. Thank you for the kind words!

The data has a few bugs, I shouted out to the data provider here:

[https://twitter.com/anvaka/status/1214222926070730758?s=19](https://twitter.com/anvaka/status/1214222926070730758?s=19)

Hopefully they will find time to fix it

</comment></comment><comment><USER18> two things leap out to me based on this.

1\. Feels like almost all the mountain ranges are almost joined up.

2\. These large Islands are much more mountainous than one would naturally expect.

</comment><comment><USER19> I gotta say the bonus section of the README is my favorite part. Could of had a referral link of where to buy cool map mugs from :)

<comment><USER5> The idea was that you can design products yourself. Once the map is fully rendered and settings window is closed there is a small link appears that allows you to print the results.

I think I did terrible job here by hiding it too far. For me it is a struggle between usefulness of the feature and level of annoyance it could bring to those who are not interested

</comment></comment><comment><USER20> Doesn't quite get negative elevation right, visually. The Netherlands just drops off the map. Otherwise great website!

</comment><comment><USER21> Pretty cool. Nobody thought so yesterday tho... [https://news.ycombinator.com/item?id=21969708](https://news.ycombinator.com/item?id=21969708)

<comment><USER5> It's always a game if chance.. I think I have tones of cool stuff that nobody ever going to see or care

</comment></comment><comment><USER22> Not wishing to disrespect the coding that went into this, but I don't see the point? The "standard" map used by the author already shows a visualisation of the area concerned, I'm not exactly sure what this magical plot style brings to the party other than a different way of drawing the same type of thing.

<comment><USER7> what do you mean by the standard map? The one before you press "draw the height map"? Or is there another one I'm missing.

If it is that map then the point is that it looks way better with the height map as you can actually visualize the height of mountain range relative to others. This isn't really discernible with the original map.

<comment><USER23> What I'd like to see is comparison and motivation relative to contour line maps, which are what I would consider the conventional way to show topography. I find these plots somewhat bizarre in comparison.

Are these joy plots more accessible to novice viewers somehow? To me, contour lines provide a very clear understanding of terrain but I admit I am pretty fluent in reading them. They bunch up to show steep slopes and cliffs, but give a much clearer sense of slope direction and more subtle topography like bowls, saddles, and stream beds.

I cannot really recall how I first experienced them as a novice. I was a child looking at USGS quadrant maps of the Sierra Nevada.

<comment><USER7> I think that this is more useful at showing height on a massive scale. Contour lines seem more generally useful, I agree, but looking at say the Appalachian mountain range on this zoomed out is much more appealing and intuitive than looking at the same scale using contour lines or another method of showing off height. I can also quickly compare the height of those mountain ranges to the Rockies.

Also it's just cool. I'll talk to my friend who does this type of thing professionally and ask his opinion. He is on vacation though. I was trained to read contour lines in boy scouts and I hike a lot since I live in the mountains, so I am quite comfortable with them too. I think this one is just a cool way to represent the data. I think the only time it is better is showing of height and height on a massive scale that are simply too big for other types of maps to be easily understood at a glimpse.

I'll challenge you to find a good map showing off the height of the Appalachian region, as I can't find one and really want to after seeing this. The one those tool can provide is quite cool in comparison to every one I can find. My friend would probably be a good person to ask in that regard.</comment></comment></comment></comment>


Why the Navy Needs Disruption – Now - <AUTHOR> http://www.huffingtonpost.com/steve-blank/why-the-navy-needs-disrup_b_11259302.html <comment><USER2> Quote:

      This is the second of a two-part post following my stay
      on the aircraft carrier USS Carl Vinson. Part 1 talked
      about what I saw and learned - the layout of a carrier,
      how the air crew operates and how the carrier functions
      in context of the other ships around it (the strike
      group.) But the biggest learning was the realization
      that disruption is not just happening to companies,
      it's also happening to the Navy. And that the Lean
      Innovation tools we've built to deal with disruption
      and create continuous innovation for large commercial
      organizations were equally relevant here.</comment>


Ask HN: What are the pros and cons of hiring a ghostwriter for a sci-fi novel? - crypto-jeronimo <comment><AUTHOR> I've had a few novels ghostwritten so these are my feelings.

Pros:

It'll get done faster than you doing it. The last novel I had ghostwritten was probably 10k words/week. When I write I churn out 500-1k/day and I don't write 5 days a week.

It'll probably be cheaper. Writing a 100k word book would take me ~100 hours. Getting one written is probably $~2k. On the high end that's $20/hr, which I can easily out earn via freelancing or time spent marketing existing books.

Cons:

It'll be close to your idea but it won't hit all the marks. I've got a grand world building idea. No matter what I present they'll probably miss some of it. Chances are I can go back and re-write/tweak some of it.

If you do a sequel the voice can change. The previous ghostwriter may not be available.

They can bail mid project. I've paid money to one for a book. They start and send a chapter or two. Then I never hear from them again. I can usually get a refund if it's an incomplete submission. But, it's a pain overall.

Quality is hit or miss. I've found some good ghostwriters for a good rate. I've found some terrible ones for 5x the price. Even if you get a sample it could be fake/from someone else. Or they could outsource it even further. I know someone who "Does ghostwriting" for 3-5c/word and they outsource everything to someone doing it for 1c/word. He runs it through one of the automated grammar checkers and passes it along.

<comment> crypto-jeronimo Thanks - these are great insights!

Would you mind sharing some websites - based on your own experience or otherwise - where one could find "legitimate" (in quotes because it's, somehow, definition-specific) ghostwriters?

And, perhaps, if you wouldn't mind giving a reference to a sample list of requirement documents (provided by the person who's requesting the work) and, possibly, guidelines for preparing those (e.g., in terms of format etc.)?</comment></comment>


Machine Zone Having Players Revolt? - <AUTHOR> Machine Zone's popular game, "Game of War" has upset players so much that players have started a boycott against them.
What does a company have to do that upsets players so much that they cease to spend, after previously spending over $500k?
The answer?
- Have a game that has terrible lag
- Have terrible customer service
- Create a feature release that accounts that have spent $50K+ become obsolete with in a month.
Is this the new attitude/future of mobile gaming?
Also, with the terrible lag and customer service, how will this affect the CEO of Machine Zone's future in helping New Zealand with the transportation.  If his technology can't fix lag in a mobile game, how will it hold up with a country's public transit system?
If anyone plays Game of War, what are your thoughts and feelings on what is going on?  Leave a comment below. <comment><USER2> I read once that GoW was so successful because in the beginning it took strategy and networking to succeed, and that brought in a different customer base than most gaming platforms. Business professionals, high earners, military veterans. The problem with having those folks as a customer base is they expect to be treated like intelligent individuals, which Mz refuses to do. The requests being made are basic, fundamental customer service issues. MZs response to push harder for more spending, even to create an entire day's worth of events around paying equal to a large mortgage was the worst possible idea, yet they continue with it. Now they have new business ventures, and in one article said they are excited to see where GoW is at in 2017. As a dedicated player of 3 years, I find it hard to believe that GoW will last that long with their current trajectory.

</comment><comment><USER3> The amount I've spent isn't the issue. It's def significant though. MZ made me obsolete after spending 35k+. They release SO many things, in a very short period of time. To keep up and stay at a competitive level, you would need to spend several thousand dollars each week at the current rate MZ is going. It's been this way for months now. I deleted the app yesterday and walked away from this game. I've never been a gamer. This was the first (and last) game I've ever got involved with at this level. They suck you in, then keep you trapped. They are professionals at getting more money out of people. Spending isn't the problem. The problem is how MZ treats their customers. I've never seen customers treated this bad in my entire life. Email responses are nothing more than an automated response that has nothing to do with the email you sent. There is no freedom of speech in GOW. You could have a $50,000 account and if you slip up and use a word like; ban, boycott, etc.. They will lock the account and you will be out of the $50,000 you invested. Corruption at best. To try and explain the level of corruption, and shady shit they do, can't be explained in a blog. If you aren't familiar with the game, it will be impossible to understand. It's literally sickening what MZ does. It would take a book to explain everything this company has done to thousands of players. Players with accounts over $100k are quitting at an alarming rate. MZ only care about money. They don't care about their product. They are trying to milk every dollar they can out of GOW before it dries up, then they will repeat the exact same thing with Mobile Strike.. I can't wait for Karma to pay them a visit. Worst business tactics I've ever seen. It's never been about spending for the players, it's about respect and appreciation. Two words MZ knows nothing about. GREED has ruined this game and MZ. They could still be VERY profitable by listening to the players and giving the players (majority) what they want. I hope this blog spreads like a wild fire .. So many others that will chime in. Then, when it does, MZ will start in with the threats, etc etc

</comment><comment><USER4> I have played the game for about 9 months and spent just under 16k. During that time 2 glitches ( which ) happen OFFTEN cost me to loose all my playing tools and have to rebuild, in turn, spend more money to rebuild. I sent messages to the customer service, and the replies were auto replies, and did NOTHING! They send out more building blocks only to get the bigger accounts to suck up the power, but to get it, yes,they must pay to buy the games packs at $99 a pop, plus fees. And when you complete the new updated challenges, you can rest a sure that new more challenges will be issued that the costs quadruple to get than the prior, and that continues throughout the time I've played. In theory that's all business runs in I'm kind of OK with it however, when these new challenges come out the cost of doing it more than 10 to 15 times cost of the prior challenges. That is the problem with the game. In between these challenges with technical problems never get fixed. The game of war is a game of two cities that battle and kill all troops and get points for that. But the problem is the game legs, shuts off, kicks you out, and leaves your city defenseless while trying to log back on and getting error messages. Constant gaming problems while trying to log back in and CAN'T!!! All while you are being zeroed by active players on the game. And when you send a message to customer service about just what happened they pretty much tell you there's nothing they can do and in the fine print of their terms and conditions say any technical problem is not their fault. Zeroed by active players on the game. And when you send a message to customer service about just what happened they pretty much tell you there's nothing they can do and in the fine print of their terms and conditions say any technical problem is not their fault. So with that being said,they pretty much tell you to bad and they know they have others that will spend the money that you don't & if you stop playing another will be there to fill your void. I hope people will take this into heart and not play the game of war or mobile strike the same game just different icons. Their customer service has to change and get more responsible and more importantly take care of the paying players. Well good luck everyone.

</comment><comment><USER5> I spent to much money on a couple of accounts in game of war and I'm just so upset with how MZ handles any problems there is, every response from their customer service is pretty much the exact same as the last! I 100% support the movement of the boycott and hope that it gets so much attention MZ will actually fix the game instead of making every upgrade impossible for the little guys to reach!!!

</comment><comment><USER6> Too many lags lately and a couple new releases within about a week have stopped for now. Thinking to spend few packs for only one new released item is ridiculous for the game. If players continue to spend, MZ will continue to release some other expensive and ridiculous items. It's easy money making for them, so why not to release.

</comment><comment><USER7> Please join us in posting your thoughts on how MZ can improve the game as we Boycott purchasing packs: [https://www.facebook.com/groups/255177908182731/](https://www.facebook.com/groups/255177908182731/)

</comment><comment><USER8> I love this game and the boycott is dumb

<comment><USER2> What a worthwhile post

</comment></comment><comment><USER9> If you all recall Umpa lead a boycott to only get threatened with a lawsuit if he did not end it. For you that don't know Umpa he was king of SW after stayalive stepped down. So yes a very large spender. Not to the lvl of stay ( that spent over a million on the game ) but close. We have lost so many great players due to this players that have well over 100k in the game. To keep up to the highest lvl of play is insain now day 2 new cores in 2 weeks ( takes aleast $1k to make a brand new core) building lvl 22-23 March tree 14 this is in the last few months that is about $15-20k to max all. This is a drop in the bucket. This compiled with lag and poor customer service no wait none existent.</comment>


How Inflight Wifi Works - <AUTHOR> http://thepointsguy.com/2015/11/how-in-flight-wi-fi-works/ <comment><USER2> "Prior to the integration of in-flight Wi-Fi, most airline passengers passed their time at 30,000 feet completely disconnected from the world below them — but these days, that's a highly uncommon occurrence."

Am I missing something here? 99% of the flights I take don't offer Wi-Fi, and in most cases not even power outlets. And those that do have Wi-Fi seem to be charging 30% of my monthly internet bill to provide it for a mere few hours. Like, no thanks.

<comment><USER3> While its been a long time since I've been on an airplane _without_ Wi-Fi, I don't often see power outlets. And as you alluded to, most of the time its $10 for the duration of that flight, whether its 5 hours or 30 minutes.

<comment><USER4> What airline are YOU flying? I am usually on a 737 built before cell phones were invented. I consider myself lucky if the SkyMall hasn't been stolen, let alone in-flight Wi-Fi.

</comment></comment></comment><comment><USER5> Jet Blue just rolled out free wifi to most of their US-based flights... and while it was pretty slow, I could still RDP into my work computer to answer emails and read HN. That was pretty sweet. You can pay $10 to get "gaming" speeds but I didn't test it out. I'd imagine most pings being >200ms. Has anyone tried it out?

<comment><USER6> I work for ViaSat (the satellite provider for FlyFi)! You'll never have latency fast enough for "gaming" speeds, as your signal has to travel halfway to the moon and back meaning a physical limit of at least 500ms. Not good enough for gaming, but streaming/torrents/large downloads work great.

<comment><USER7> "I work for ViaSat"

Well, well, well...

So, does viasat use different beams for the airplane links than the normal ground based, satellite consumers ?

I assume yes, since most of the beams for ground users are _stupendously_ oversubscribed, such that you can't even open gmail or load your banks website during a lot of the business day.

Our solution for rural Internet used to be a plain old T1 from AT&T @ $450/month, and we replaced it with 12mbps viasat at $149/mo ... and there isn't a day that goes by that I don't wish we had that T1 back ...

</comment></comment></comment><comment><USER8> Does anyone have details on the ground based cell networks used for some planes? Are they partnering with a provider like Verizon Wireless to use their existing service, which I don't believe is the case unless they are aiming their antennas into the air on certain towers for them. Or do they just lease space for their own antennas on towers and aim them upwards? and then pay for bandwidth, etc?

<comment><USER9> GoGo is the big ground-based provider. GoGo uses a network of cell towers that point up rather than down. An antenna under the plane connects to towers much like civilian cellphones. [1]

By contrast, Row 44 (used by Southwest and some international carriers) is a satellite-based system. An antenna on top of the plane connects to a geostationary satellite. [2]

Other services do one or both of the above. [3]

[1] [https://en.wikipedia.org/wiki/Gogo_Inflight_Internet](https://en.wikipedia.org/wiki/Gogo_Inflight_Internet) [2] [https://en.wikipedia.org/wiki/Row_44](https://en.wikipedia.org/wiki/Row_44) [3] [https://en.wikipedia.org/wiki/OnAir_(telecommunications)](https://en.wikipedia.org/wiki/OnAir_\(telecommunications\))

<comment><USER10> Last I heard, GoGo (previously Aircell) used an MPLS network to shuttle traffic between a few hundred AT&T cell sites they were using for their equipment, but that was years ago.

</comment></comment></comment><comment><USER11> Of all the things I want on a plane, WiFi ranks a lot lower than having a consistent power outlet at my seat. There's nothing worse than having Wifi but a laptop that can only last a % of the flight.

<comment><USER12> I'd love to see an airline get rid of seat back TVs entirely and just provide power outlets instead. There are already systems that let you stream movies for free over in-flight wi-fi - given that most of us have a smartphone (if not a bigger screened device) the experience would probably be better.

Would suck for those without smartphones, though. Maybe they could lend out crappy Android tablets to that minority of customers.

<comment><USER3> I was recently on an Alaskan Air flight which did just that. It had no TV's on the plane, but power outlets right on the back of the seat. For all of their in flight entertainment, they directed you to their app or site once you connected to the in flight Wi-Fi (for free). I ended up not using it and reading instead (the free content wasn't great) but I really liked the idea and it seemed to work great just poking around, as I did.

</comment></comment></comment><comment><USER13> While on a flight recently, I realized... Why doesn't Google sponsor free in- flight WiFi? It would be much easier than Google Fiber or Project Loon, and it would let them deliver more ads to a fairly wealthy group of people.

<comment><USER14> Because the (American) airlines will say no. Or, they will accept the offer and then charge $12 per seat anyway. I think they get perverse joy out of nickel and diming people to death. When not-uncomfortable seats are a premium feature, there's nothing they won't charge for.

<comment><USER15> American travelers tend to purchase tickets based solely on price. If your consumers are very price conscious, you move as much as you can out of the base price.

Don't blame airlines in the US, blame airline customers.

Personally, I like the nickel-and-dime scheme, as you call it. I rarely take cross country flights. My typical travel is 3-4 hours of flying at the most. I absolutely prefer a cheaper base ticket price, because I don't care if they give me crappy food for "free" in that time frame. At 6'2", I fit comfortably even in Spirit's closely-spaced seating. I travel very light and typically have a single bag.

For me, a lower base fare with extra charges for the rest is something I prefer. I am very happy that the US air-traveling market agrees with me and has pushed the industry in this direction.

<comment><USER16> They haven't even bothered to try. 3" more legroom for $40? No. Human-sized seat? I'd pay double the price. But I'm not going to pay 5x as much.

<comment><USER17> _They haven 't even bothered to try._

Sure they have. All three of the big legacy US airlines have some form of extra-legroom economy: American has Main Cabin Extra, Delta has Comfort+ and United has Economy Plus.

The problem is those seats cost more, and people shop for airfares based solely on the price they see in a search engine.

Airlines have tried all sorts of tricks to get people to buy the nicer seat. They've tried showing it to you as an option at booking. They've tried offering it as an upsell afterward. They've tried offering it during check-in. They've tried branding it as a separate fare class labeled "premium" but still a reasonable-looking price.

It's entirely due to passenger behavior at this point: people will grumble and complain and whine about the legroom and the lack of power and the extra fees for everything, but the next time they book a ticket they'll still just sort by lowest fare and pick that.

<comment><USER16> I specifically mentioned that I was looking for a human-sized seat, not more legroom. I'm not unusually tall, I'm an average-sized male adult, and I'd like to have somewhere to put my arm. I don't really enjoy having my elbows pinned to my sides for 4 or 6 or 14 hours.

<comment><USER17> Wider seats take up more space, which means fewer seats which means less revenue. And there's no way they'll give that up; they're facing competition both domestically and internationally now from sardine-can aircraft layouts on low-cost carriers.

So these days, US-based airlines have standardized on a width of 17-18 inches in economy class. Used to be long-haul international flights would have slightly wider seats, but now they're aiming to get 10-across seating in economy and you can't do that with 18-inch-wide seats.

If you want a wider seat, your options are to pay for first class or (if traveling internationally) pay for premium economy on a foreign carrier.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> This paragraph is absurd. Not sure if the author was excessively exaggerating or this is true. Can someone who's a domain expert or is familiar with the device to clarify why in-flight WAPs are 10x more expensive but 10x more fragile? Cosmic rays?

    		Called Wireless Access Points (or WAPs), these black boxes
    	function similarly to Wi-Fi routers that would be found in a
    	home, but because they're on an airplane, they cost 10 times more
    	and break 10 times more easily. Each WAP is connected by a
    	QuadRax cable, which is essentially formed of wires within wires
    	within wires.

<comment><USER19> Can't speak to the fragility, but when a home WAP typically only costs $50, a 10x increase in cost for an aerospace item is trivial.

<comment><USER20> The fragility bit doesn't seem too unreasonable. Being encased in the hull of a plain means drastic temperature variations, air pressure variations and TONS of vibration.

</comment></comment></comment><comment><USER21> Funny story: some in-flight WiFi services give you a different price based on your user-agent (high for phones, higher for tablets, highest for desktop browers). Fortunately no one can change that...

<comment><USER17> If you fly a lot and are consistent in your choice of airline, typically you can buy an unlimited-use pass that renews monthly for a flat fee.

If you don't fly often, I know you can prepay for a pass for your flight before leaving home on most services. Though for my use case (flying 75,000-85,000 miles/year on average) the monthly pass is absolutely cheaper.

</comment></comment><comment><USER22> What's with the insistence on demand for streaming music or video on a plane? Do these people also forgo packing a suitcase and just rebuy everything as needed?

<comment><USER23> Are you saying that they should pre-download movies and music to listen to on the plane?

I use Google Play for music because it's pretty okay at letting me cache local music on my phone, but I have no idea how well Rdio, Spotify, or Pandora do that. I don't think there's a way to do it on your computer at all, so if you only have a work phone that you don't keep music on, streaming music might be your only option if you don't want to listen to one of the 13 channels provided via the crappy in-seat audio jack.

<comment><USER24> >Are you saying that they should pre-download movies and music to listen to on the plane?

Um, yes? It doesn't really seem like a huge deal. On the other hand, I have a fairly large music library on my phone and carry a tablet for movies and other things.

<comment><USER23> Netflix and Hulu don't support offline caching as far as I'm aware. And I can't run cat5 from my house to a flight. And buying a season of something to download from, e.g., Amazon seems silly when Netflix and Hulu offer it as part of their regular service - now _that 's_ like forgoing to pack a suitcase and just buying things on the go again.

<comment><USER24> Amazon does support offline caching--at least on their own tablets. And there's almost always a season of something I want to watch that isn't available streaming. I've also been known to rip DVDs and import them. The bottom line is that I can find plenty of things to watch that don't require double-buying.

</comment></comment></comment></comment></comment><comment><USER25> does anyone know a highly reliable mobile satellite internet solution? price is less-ish of an object but i've been looking for something to take with me on extended camping trips and remote locations to do work or for emergencies (also thinking of buying property somewhere without good wired internet).

haven't found much so far except for extremely expensive (5-figure) expedition type rigs.

<comment><USER26> I'm interested in this too. I could take a lot more camping trips if I could video chat w/ coworkers from remote locations.

<comment><USER27> I'm kind of glad this is a limiting factor on techies in the wilderness.

</comment></comment></comment><comment><USER28> It used to feel like a sanctuary going on a plane and being forced offline, no social media, no emails, no ads, no constant poking of my dopamine receptors. One of the last refuges.

<comment><USER29> I thoroughly enjoy driving due to the fact that I know I can't do anything productive on my phone or computer. It's one of the few times I can relax myself and enjoy the experience...something that is dwindling on airplanes as the WIFI technology gets better and better.

</comment></comment><comment><USER30> _Formally used for military communications_

Probably should be formerly.

</comment><comment><USER31> I mainly do trans-pacific flights. In such long (>12h) flights I can't use wifi even if its on offer, as it chews through precious battery time too fast. I would kill for plane seats with power plugs, or even just USB power.

<comment><USER16> I typically find I can get ~6 hours on most modern laptops, which means far more hours than I have the patience to stare at a computer screen for.

<comment><USER32> Last time I flew internationally, I brought a 2015 macbook pro retina with a hard drive full of videos. I only ended up getting 4 of the advertised 9 hours run time running VLC with the brightness turned all the way down. Luckily, there were power outlets hidden under the seats. I don't understand why power outlets aren't the number 1 selling point for airlines that have them.

<comment><USER33> _I brought a 2015 macbook pro retina with a hard drive full of videos_

Not clear which exact model you have. Some have a discrete AMD GPU which would take more power.

Also it's not clear what format your videos were in. If it's something like DVD rips, then it could have been MPEG-2. I don't think Intel GPUs have any hardware support for playing that back. Also VLC probably doesn't take advantage of any CPU support for playing back video.

You should do a little more research. Your reported performance seems disappointing. You should be able to do much better. For example the current model 13" claims:

       Up to 12 hours iTunes movie playback

Notice they don't mention VLC there. :) So you might have to transcode your video into a format that iTunes supports.

<comment><USER32> It's the low-end 15" model with Intel Iris 6100 integrated graphics, and the files were mostly H.264. I suppose I could have played them in iTunes, but I made a conscious decision to never run it.

</comment></comment></comment></comment></comment><comment><USER34> If they don't offer free wifi, just use DNS tunneling ;)

<comment><USER35> I got 10-15 _second_ round trip time to the ground using DNS tunneling on Southwest's inflight WiFi

<comment><USER36> Anyone tried ICMP tunnelling? :)

<comment><USER34> They were blocking ICMP on United last time I checked (4 days ago). If I pinged a website, the ip would come back, but the pings would timeout.

<comment><USER36> Ah, that's a pity. I might try it when I fly next. Wish there was a website that displayed the airline along with which different tunnelling methods worked. I'd pay for that :)

</comment></comment></comment></comment></comment><comment><USER37> > initial page elements will take up to a second to appear.

This happens to me too on my home 50Mbps connection.</comment>


Focus by Firefox, a Content Blocker for iOS - <AUTHOR> https://blog.mozilla.org/futurereleases/2015/12/08/announcing-focus-by-firefox-a-content-blocker-for-ios/ <comment><USER2> We just pushed the button on stage at the Mozilla All-hands. It should by live in most countries now.

[https://itunes.apple.com/app/id1055677337](https://itunes.apple.com/app/id1055677337)

Ask us anything you want to know about this product.

Also, keep an eye on the Github repo.

[https://github.com/mozilla/focus](https://github.com/mozilla/focus)

We are still watching the Keynote but will flip the switch soon.

<comment><USER3> What's the two-word summary of why I'd want to use this app over one of the other content blockers?

<comment><USER4> Again, can't sum up in two words, but can sum it up in two points. This would be better because:

* It's by Mozilla, and it's more likely (probability wise) to be maintained and kept up-to-date than those that happen to be a single person's hobby project.

* I believe that big players in the web like Mozilla and EFF (eff.org) really fight for us, the common people. :) The more these things become popular, especially from bigger names, the better the chances of the whole ad-tracker-privacy ecosystem to improve for our good.

<comment><USER5> what about besides "known household name"? any technical merit? anything you know you do better than the alternative, for a fact?

and in the process of fairness, any other blocker doing anything better that you plan to add to yours?

<comment><USER4> Technical merit? I don't really know. This is based on the open source tracker list from Disconnect (disconnect.me).

FWIW, I was never into paying for an ad-blocker on iOS since that comes with its pitfalls. I have tried a couple of other free ones, and I did like Adblock Fast [1], the one I was using until Focus by Firefox and the one I still have. It's open source and is available for Chrome (not iOS), Opera (not iOS) and Safari (iOS 9). I'd suggest reading through the GitHub page to see some stats as well as the philosophy (of not making money or compromising it with acceptable ads). [2]

[1]: [https://itunes.apple.com/us/app/adblock- fast/id1032930802](https://itunes.apple.com/us/app/adblock-fast/id1032930802)

[2]: [https://github.com/rocketshipapps/adblockfast](https://github.com/rocketshipapps/adblockfast)

<comment><USER5> I always used someonewhocares.org host list on my wireless modems to protect my IOS devices (which never leave the house anyway, since they exist only to test apps/sites for people like you that do not value device ownership :)

the list that site provides blocks practically every single ad, malware, etc. But it is not very practical to keep up to date.

</comment></comment></comment></comment></comment></comment><comment><USER6> "Currently, Focus by Firefox only works with Safari, not Firefox for iOS. This was not our choice—Apple has chosen to make content blocking unavailable to third party browsers on iOS. We are exploring how we can provide this feature on Firefox for iOS and will deliver it as soon as it's possible."

The main reason I went back to Safari after getting Firefox for iOS.

<comment><USER7> >Apple has chosen to make content blocking unavailable to third party browsers on iOS.

Someone has some context to this? I am using Ad-Blocker Browser on iOS and it blocks ads just fine.

<comment><USER8> is it doing its own ad blocking or is it doing ad blocking as a safari ad block extension? There is a very specific high-performant ad block mechanism in iOS now.

<comment><USER9> If it's anything like the ones I looked at a while back, it goes through a proxy to strip the ads. So all of your web browsing goes through a 3rd party. I'm no technical wiz on such things, but I can't think of how else it _could_ work without being an Apple-approved Safari extension.

<comment><USER10> It could run a local proxy on the device itself, perhaps. I know iPhone apps can expose HTTP servers to other devices on WiFi for file sharing, so I wouldn't be surprised if you can expose it to localhost too.

<comment><USER9> Mm, good point, and given that I actually wrote a baby web server for serving up docs a _long_ time ago, I'm disappointed that it didn't occur to me. In fact, I wonder why more don't do that. All of the ones I looked at (and it's hardly an all-encompassing list) seemed to do it through a proxy that the dev hosted.

</comment></comment></comment></comment></comment></comment><comment><USER11> I'm so confused here - I thought Apple added the ability to create content blockers to reduce revenue on the web so that more content providers resort to ADs and they get a bigger slice of the pie.

Why would Mozilla help them in their goal? Wouldn't it mean less reliance on the web and less Firefox in the long run?

What am I missing here?

<comment><USER12> Mozilla is no longer an ideological organization, if it ever was one. This gets them media attention and may attract more donations, which will perpetuate the organization's existence.

<comment><USER13> _Mozilla is no longer an ideological organization_

[Citation needed]

<comment><USER12> This is one example. Pocket is another.

</comment></comment></comment></comment><comment><USER14> As the original developer of Disconnect, on which Focus's blocking is said to be based, I (with my development team) created a new, open-source ad blocker for Chrome, Opera, and iOS called Adblock Fast ([http://adblockfast.com/](http://adblockfast.com/) and [https://github.com/rocketshipapps/adblockfast](https://github.com/rocketshipapps/adblockfast) on GitHub) because I think Disconnect became abandonware after I left the project a year and a half ago – there was one commit made to Disconnect in 2015 ([https://github.com/disconnectme/disconnect/commits/master](https://github.com/disconnectme/disconnect/commits/master)).

<comment><USER15> Is there any reason I should switch to this from AdBlock Plus?

Edit: I see the chart comparing the two on your github page. Are you planning a firefox version?

<comment><USER14> Yes, see the benchmarks and last FAQ on [http://adblockfast.com/](http://adblockfast.com/).

Edit: Yes to Firefox as well, see [https://github.com/rocketshipapps/adblockfast/issues/23](https://github.com/rocketshipapps/adblockfast/issues/23) for timeline.

<comment><USER16> how does it compare to ublock?

</comment></comment></comment></comment><comment><USER17> ...and they don't provide a link!? Oh well.

Still, I welcome this move from Mozilla. Been wondering what to use since 'Peace' was removed.

<comment><USER18> [https://itunes.apple.com/app/id1055677337](https://itunes.apple.com/app/id1055677337)

It's still propagating through the various servers, so it may not be available in your region right now.

</comment></comment><comment><USER19> "Apple doesn't abuse its power" _only allows a Firefox content blocker in safari_

<comment><USER20> And try changing the default browser on your iPad - not possible. I don't know why Apple gets away with anti-competitive behavior that MS was hauled over the coals for two decades ago.

<comment><USER3> Try _obtaining_ a different browser on your iThing. It can't be done (unless you build one and sideload it through Xcode, or jailbreak). There are "third- party browsers" out there, but they all use the same engine as Safari, by decree of Apple.

However, the reason why Apple gets away with it while Microsoft doesn't should be obvious if you're at all familiar with Microsoft's history and current market share numbers. (Hint: MS got hit for anticompetitive behavior when they owned ~95% of the PC OS market. Apple owns maybe 15% of the world smartphone market.)

<comment><USER21> Are there any iOS browsers available that can be installed via sideloading that do not use the Safari engine?

<comment><USER3> It looks like Chromium can build for iOS, although without much of a UI. I'm not sure about Firefox, as their official iOS version (which is just a UI for the WebKit engine, of course) makes it hard to search for.

<comment><USER22> [https://wiki.mozilla.org/Mobile/Gecko- iOS](https://wiki.mozilla.org/Mobile/Gecko-iOS) links to [https://hg.mozilla.org/users/tmielczarek_mozilla.com/gecko-i...](https://hg.mozilla.org/users/tmielczarek_mozilla.com/gecko- ios/) which exists, again without much of a UI. The build instructions are in the wiki.

</comment></comment></comment></comment></comment></comment><comment><USER23> If I may be permitted a n00b question, what are the advantages and disadvantages if any to having more than one content blocker enabled? When I installed this didn't have to disable Crystal, which I already had. Do they just sort of function in series?

<comment><USER24> I believe so. You just end up with more rules which slows the process down more and more. Apple tries to be intelligent about it, but at some point if you quadruple the number of rules installed it's probably going to take longer to search them for matches.

</comment></comment><comment><USER5> Spending so much time on a platform that you have no control and is sure to undermine you is a waste of open source project resources. Specially one that is handled indirectly such as mozilla nowadays.

if it were users submitting patches or bugreports, by all means! Spend all the time in the world to make your IOS experience better. But people donate, and the people living off that money choose arbitrarily to spend those resources on IOS, that is just plain irresponsible.

<comment><USER25> > But people donate, and the people living off that money choose arbitrarily > to spend those resources on IOS, that is just plain irresponsible.

Note that when people donate, they're donating to the Mozilla Foundation, an entity that does _not_ work on Firefox directly, but does advocacy, outreach and education work. This is where your donation goes.

Mozilla Corporation (which is solely owned by the Foundation) works on Firefox (Desktop, Android, iOS, Focus, etc), and does not benefit from the donations that are sent to the Foundation. That work is funded almost entirely by revenue generated by partnerships with search providers.

People who want to donate to the corporation do so via patches, bug reports, testing, documentation, evangelism, etc.

(Full-disclosure - I'm a Mozilla Corporation employee, but speaking for myself and not on behalf of the company)

</comment></comment><comment><USER26> For those saying they can't get it - give it time to propagate through the App Store server caches. Usually it can take a couple hours from a "Ready for Sale" to actually being visible in different regions.

</comment><comment><USER4> Questions to the people from Mozilla who're here. How or why is this different from efforts like Privacy Badger (from EFF)[1] when you look at what gets blocked, the methodology used to update the blacklist, etc.? Was there any collaboration with other prominent players working in this area (I only see that you're using disconnect's list)?

Please note that I'm not talking about implementation details like the creating and maintaining a content block list for Safari vs. a browser extension on the desktop.

[1]: [https://www.eff.org/privacybadger](https://www.eff.org/privacybadger)

</comment><comment><USER27> They're now favoring Firefox branding over Mozilla branding?

<comment><USER28> Makes sense seeing as they're focus -- no pun intended -- is pretty much Firefox and its various incarnations throughout desktop and mobile. Expanding their most visible brand to include their entire suite of browser based technologies doesn't sound like a bad idea to me.

<comment><USER29> I'll take "Focus by Firefox" over "Firefox Live 360" any day. ;)

</comment></comment></comment><comment><USER30> Pardon me as I don't understand this blocking analytics or ads thing yet. Wouldn't a small web business which relies on Ad money be killed with this move ? Wouldn't someone who wants to provide content for ad money eventually have to pay Apple some cut for displaying ads on app. Wouldn't it drive the prices of ad as a result which would hurt small business who looks at internet advertising for their growth strategy ?

<comment><USER31> Ads are a stupid payment method anyway. It only pays up to a few cents per view at most. What if you want to be paid a little bit more? Overhaul your complete monetizing scheme?

<comment><USER30> Sorry but ads are a very effective and proven way for a web business to generate revenue. That is all together a different discussion on what is an effective way to monetize your web business. But my question is for small business or startups which already have a revenue and relying on that ad revenue. How will they be affected ?

<comment><USER32> The bottom has fallen out of the ad market recently. Anyway, content blocking is still opt-in. That means most people will never enable it, and the people who enable it are probably not going to click on your ads anyway. But most importantly, if users are going out of their way to avoid paying you, your business model is plain broken. No point trying to prop it up by banning ad blockers.

<comment><USER30> I wanted to stay away from the discussion weather ads are effective or not business model. My question was what would happen to the smaller sites who still monetize through ads.

<comment><USER32> But isn't that the same question? If ads make enough money, then they're "effective". If they don't, they're not.

<comment><USER30> What is not enough money for you could be enough money for someone else. It is hardly a basis for anyone to judge other's judgement.

<comment><USER32> Of course. So we can't possibly answer your question. Maybe they will be killed and maybe they won't.

But my point is, it's not Apple's fault at all. It's also hardly the fault of the ad blockers. It's all due to the users who intentionally install them and use them for their browsing. It's the users who are making the decision to block ads.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> For those who don't want to wait till this propagates through the App Store CDNs, try

[https://itunes.apple.com/app/id1055677337](https://itunes.apple.com/app/id1055677337)

Or try [https://itunes.apple.com/{countrycode}/app/id1055677337](https://itunes.apple.com/{countrycode}/app/id1055677337) with the two character country code for your country put in the {countryside} placeholder

For example, it would be

[https://itunes.apple.com/de/app/id1055677337](https://itunes.apple.com/de/app/id1055677337) for Germany

[https://itunes.apple.com/fr/app/id1055677337](https://itunes.apple.com/fr/app/id1055677337) for France

[https://itunes.apple.com/in/app/id1055677337](https://itunes.apple.com/in/app/id1055677337) for India

and so on

</comment><comment><USER33> > This was not our choice — Apple has chosen to make content blocking > unavailable to third party browsers on iOS

Like, the Firefox authors can't block content in their browser because Apple?

<comment><USER34> Apple won't let full third party web browsers into iOS, all web browsers have to use the Mobile Safari engine underneath. Apple added ad blockers to iOS but will only permit them in Mobile Safari proper. Third party "browsers" aren't permitted to use the ad blockers you can install in iOS.

<comment><USER35> Admittedly, I'm quite ignorant of the laws related, but wouldn't this be grounds for an anti-competitive lawsuit (even if the App Store terms specifically say so)?

<comment><USER34> Those laws only apply to monopolies. Apple doesn't have a monopoly in any market segment, so they engage in quite a few anti-competitive behaviors that would be illegal if they were a monopoly. That's why Microsoft got in trouble for bundling Internet Explorer with Windows even though end users could install any browser they liked while Apple is free to require iOS users only use Mobile Safari or a browser UI running on top of Mobile Safari (Chrome, Firefox, etc on iOS).

</comment></comment></comment></comment><comment><USER36> Anyone with knowledge care to compare and contrast this with Antelope [0]?

[0] [https://itunes.apple.com/us/app/antelope-free- adblocker/id10...](https://itunes.apple.com/us/app/antelope-free- adblocker/id1039622141?mt=8)

</comment><comment><USER37> Can it block 7254k images as well?

</comment><comment><USER38> This is awesome! If there was a similar blocker for Mac, I'd totally use it. Although, I'm not sure why it is called "Focus".

But hey, this way I can share my Firefox plugin called Focus ( [https://addons.mozilla.org/en-US/firefox/addon/focus-by- caba...](https://addons.mozilla.org/en-US/firefox/addon/focus-by-cabana-labs/) ) - it lets you block websites so you can focus on your work :). Also available for Chrome ( [https://chrome.google.com/webstore/detail/focus-by- cabana-la...](https://chrome.google.com/webstore/detail/focus-by-cabana- labs/jgfmjlneealoganlfgionjllmcadobjh) ) =)

</comment><comment><USER39> Note that if you search for "Focus" in the app store, you won't get any relevant results in the first several dozen apps. I did "focus ad blocker" and that found it.

</comment><comment><USER40> Crystal is messing it up these days as I see ads these days with Crystal enabled. I think they are taking money to let ads through. Will Firefox do the same if you get money from Google?

</comment><comment><USER41> Apparently content-blocking is not enabled for iPad 4th Gen, because I can't any of the apps. A thoroughly useless device.

</comment><comment><USER42> Looks like AppStore is still updating this in inventory. Might take 30-60 minutes more before we can download.

<comment><USER42> App is live

</comment></comment><comment><USER43> Searching for it in the app store on my phone returns nothing. I had to message myself the link to get to it.

</comment><comment><USER44> They can't build it into firefox on ios but how about building it into firefox on other platforms?

<comment><USER45> That's what happened? This is the new Tracking Protection feature. By default it's only in private tabs but you can just enable it globally in about:config.

</comment></comment><comment><USER46> This is totally aimed at Google haha

</comment><comment><USER47> I can not find it in the Colombian appstore, is it available worldwide?

<comment><USER48> Now it should be in app store. Downloading now from Russian store

</comment></comment><comment><USER49> I can not find this on the german App Store. Does anybody have a link?

<comment><USER4> Try [https://itunes.apple.com/app/id1055677337](https://itunes.apple.com/app/id1055677337)

Or try

[https://itunes.apple.com/{countrycode}/app/id1055677337](https://itunes.apple.com/{countrycode}/app/id1055677337) with the two character country code for {countrycode}

For Germany, it would be

[https://itunes.apple.com/de/app/id1055677337](https://itunes.apple.com/de/app/id1055677337)

</comment></comment><comment> nv-vn can somebody explain why they need to use the Apple APIs to block content in their own software? will apple simply not allow them to put it on the app store otherwise?

</comment><comment><USER50> "focus must be enabled in settings"

Where in settings is it enabled?

<comment><USER51> It should guide you through this, but settings > Safari > content blockers, like all others. That'll list blockers installed including this one, toggle to enable whichever you like.

</comment></comment><comment><USER52> Title should be "iOS" instead of "IOS" (Cisco's router operating system).

</comment><comment><USER53> Why is it Focus by Firefox and not Focus by Mozilla? Mozilla is the name of the company, Firefox is the name of one of Mozilla's products. So a software program was created by another software program?

This type of illogical branding is becoming typical of Mozilla these days. It's a shame because the web really needs browser leadership from an organization that isn't a multinational corporation.

<comment><USER54> I mean no offense, but out of all complaints I've heard about Mozilla's work on Hacker News, this is probably the stupidest. What the web really needs is less vitriol against those that actually do something.

<comment><USER55> Not really. This irks people (rational or not) who are put off by inconsistencies with naming and branding. I understand _why_ the Firefox brand was chosen, but it feels "messy". We'll get over it.

<comment><USER54> Please explain why on such a project announcement that parent comment is the second one in the thread (instead of technical discussions, platform limitations, privacy, trackers, alternatives, you know, things that would actually make sense). I'm having a hard time right now to not liken HN to a cesspool and this time the offense is intended.

</comment></comment></comment></comment><comment><USER56> A 7MB png on that page (4418x3206) - that'll be the first thing I want to block…

<comment><USER57> So you're judging the quality of an iOS app on how well-optimised the images on its website are?

This is not a website you're going to visit regularly, or probably even more than once (except to show all your friends how badly optimised this image is).

Based on this logic, I probably shouldn't have bought the car I have now, because the brochure was printed on really thick paper.

<comment><USER3> I see no quality-judging in that comment.

</comment></comment></comment><comment><USER58> Sounds neat. Would really enjoy installing and trying this out.

However, I can't for the life of me find it. Here's what I tried: -Searching for "focus" in the app store. Unsurprisingly, a thousand things came up that were not this.

-Searching for "focus firefox". No results.

-Searching for "focus by firefox". No results.

-In hopes that the article might have a link to the app in the app store, going to that in my phone's browser. No Luck.

-Googling "focus firefox" and looking in various news articles. Found a link in venture beat but it said the item I'm looking for isn't available in the US store.

Hopefully it will be easier to find when it gains some traction?

<comment><USER59> We literally just clicked the "release" button in the last five minutes. The blog post went out a bit early.

</comment></comment><comment><USER60> And why I would never buy an iOS device.

<comment><USER61> Do feel free to frequent all stories about iOS and continue to spread the word about your buying preferences. It is a wonderful use of your time.

<comment><USER62> Just like the grandparent spread the word about his browser preferences....?

<comment><USER63> it seems nearly impossible to believe that you honestly feel that the OP and the reply are talking about the same topic. One is discussing experiences with the platform discussed in the article, and one is the "I don't even have a tv" comment in another guise. In case it isn't clear to you, "I don't even have a tv" doesn't contribute anything to the conversation.

<comment><USER62> It seems nearly impossible to believe that you don't think they are talking about the same topic. One is discussing a platform, and the other is stating why he won't use that platform. I respectfully disagree that it's not contributing.

<comment><USER63> The contribution is "this person does not use iOS" which is not particularly helpful in any way, and has resulted in an off-topic metabranch. This is the very definition of not contributing to the discussion.

<comment><USER62> The contribution is an implied "I think that stance by the manufacturer is ridiculous, and I won't even engage them." It's helpful because it highlights the ridiculousness of the manufacturers system. Sure, it could have been articulated better, but I think it's still contributing.

> which is not particularly helpful in any way, and has resulted in an off- > topic metabranch

I would say that your statement has done more to forward this metabranch than the original statement ever did.

</comment></comment></comment></comment></comment></comment></comment><comment><USER64> So basically, this is going to lead to a rise in "Sponsored Content".

<comment><USER65> Hasn't it already? ;)

</comment></comment><comment><USER58> If Nick is really the one who wrote that piece, it's sad that the Vice President of Firefox doesn't know about image resizing and optimization.

<comment><USER59> That's quite a leap just to get to an ad hominem attack.

The way we have WordPress configured _should_ have handled this automagically. I'll look into why it didn't.

<comment><USER58> I wasn't trying to personally attack the guy, it was just surprising that an article by one of the heads of a major tech company wouldn't have something basic like that taken care of.

I'd recommend the tinypng plugin ([https://wordpress.org/plugins/tinypng-for- wp/](https://wordpress.org/plugins/tinypng-for-wp/)), which will do the optimization (though not resizing) automatically for you.

Edit - More downvotes, someone is having a tough morning.

</comment></comment></comment><comment><USER66> How about a button that lets me choose a FireFox build using 100% OSS and which includes zero built-in user data capture technology?

<comment><USER67> Sounds like you might best be served by writing your own web browser, so you can be absolutely certain it won't track you.

<comment><USER66> Yeah, totally good idea. No idea why I didn't just think of that rather than hold Mozilla accountable to living up to their stated mission.

<comment><USER45> Data capture including things like telemetry or monitoring user adoption (does everyone on a specific HW config suddenly stop using the product?) is essential in being able to develop a product on a large scale that Actually Works. All of those things can be disabled in Firefox and they go to great lengths to explain what is tracked and how to disable it.

I'm pretty sure that keeping the product usable and working is part of their mission too.</comment></comment></comment></comment>