Asterisks in Python - <AUTHOR> http://treyhunner.com/2018/10/asterisks-in-python-what-they-are-and-how-to-use-them/ <comment><USER2> This is one of those areas where I find Python a little contradictory. About 50% of the time it's "explicit is better than implicit" and "there should be one and only one good way" and then the other half of the time it's "here's this cool feature for doing something you could do a different way that looks like hieroglyphics and nobody understands but you should totally use it because it's awesome!

<comment><USER3> This is one of the things that gets me about Python.

It makes this big noise about being a super-friendly form of executable pseudocode, but then you open any code example and the first thing you see is two asterisks and the mysterious word "kwargs" (a Swedish dessert perhaps?).

I wouldn't mind except for all the haughty pretense about Python being a language that doesn't do this sort of thing. Dear Python, get a grip, you're just another ASCII-abusing interpreted monstrosity like Perl, you just decided to make programmer life suck with whitespace instead.

<comment><USER4> Aside: Swedish does have the word 'kvarg', which is a product made out of sour milk. Some people eat it for breakfast but personally I can't stand it.

<comment><USER5> This is legitimately my favourite comment of the day.

</comment></comment></comment></comment><comment><USER6> I've been programming with Python for over a decade. I mostly understand, but I do try to avoid when possible for maximum clarity. Expanding function variables is fine and clear enough, but multiple levels deep in a comprehension and it can get pretty thick to try and keep it all straight. This article is nice that it covers all the patterns I've seen.

<comment><USER7> Honest question: why would anyone make a list comprehension that's multiple levels deep? Isn't the purpose of comprehensions to provide quick-and-dirty inline for loops, where a full for loop is too verbose?

<comment><USER8> People who come from math backgrounds often becomes infatuated with complicated list comprehensions when they realize that they can be used as set-builder notation. {(x,y) for x in range(10) for y in range(10) if y == 2*x}

<comment><USER9> I use stuff like that. But my rule of thumb is that I try and make it readable by breaking it up into multiple lines and using indentation. If I can't make it readable, then I will consider another way of writing it. This is mainly for self preservation, since I'm likely to be the person who has to read it later.

</comment></comment></comment></comment><comment><USER10> Unrelated to the article: the 'x' on the newsletter popup doesn't work on mobile. Makes the article very difficult to read. If the author is reading this, you should fix that!

<comment><USER11> Thanks for reporting this issue!

</comment></comment><comment><USER12> > print(*more_numbers, sep=', ')

This alone makes me appreciate print as a function in py3.

<comment><USER13> Now how much nicer would it be if even more things were functions, rather than special syntax like here? This can be done with an `apply`.

<comment><USER14> I think the star syntax is a lot nicer than `apply`. Python actually had an `apply` builtin, but it was deprecated in Python 2.3.

<comment><USER13> Apply, and first class / higher order functions in general are good in languages where they compose well. Python's * won't compose well.

<comment><USER15> To add a small footnote to the existing replies to this comment: A related, but slightly different, function in the `functools` module (part of the Python standard library) is the `partial` function. It is like apply() but returns a function instead of calling the function and return its return value:

        f1 = partial(f, 1, 2)
        f2 = partial(f1, 3, 4)
        f2(5, 6)  # equivalent to f(1, 2, 3, 4, 5, 6)

It also supports kwargs.

</comment></comment></comment></comment></comment><comment><USER16> The single * way to specify keyword only arguments is a total monstrosity.

<comment><USER17> It's a logical and consistent outgrowth of the existence of *args, and having (finally) allowed parameters after that (which would be keyword-only). I'm sure you could make up other ways to do it, but not that they'd be any better.

</comment></comment><comment><USER18> Whats with the / in the help for sorted?

        Help on built-in function sorted in module builtins:

        sorted(iterable, /, *, key=None, reverse=False)

<comment><USER19> That is curious, it looks like it might just be a type-o in the documentation. Since it is written in C and not python, it is not automatically generated. But I don't know enough C to say for sure, maybe someone else can.

[https://github.com/python/cpython/blob/9dfa0fe587eae3626ffc9...](https://github.com/python/cpython/blob/9dfa0fe587eae3626ffc973680c6a17f35de3864/Python/bltinmodule.c#L2203)

<comment><USER20> Nope. It represents positional-only arguments. You can have positional-only arguments for C function but not Python functions. Just a weird Python wart.

</comment></comment></comment><comment><USER19> my favorite cheat is using __locals() with string formatting something like this:

      def example_cheater(color, flavor, age):

          template = 'I am {age} years old and I like to wear {color} hats and eat {flavor} icecream'
          return template.format(**locals())

Obviously a contrived example, and it can be argued that using locals() is not very pythonic, but I think it makes the code look much nicer.

<comment><USER21> In python 3.6 and up, that becomes

        def example_cheater(color, flavor, age):
          return f'I am {age} years old and I like to wear {color} hats and eat {flavor} icecream'

Even nicer!

<comment><USER22> Does this trip up pylint?

<comment><USER23> Trips up Vim's syntax highlighter.

</comment></comment></comment></comment><comment><USER24> So this is like the rest and spread operator in javascript (`...`).

An interesting observation is that while python has separate operators for lists ( * ) and dictionaries ( * * )—javascript has only `...`.

> You need to be careful when using __multiple times though. Functions in > Python can't have the same keyword argument specified multiple times, so the > keys in each dictionary used with __must be distinct or an exception will be > raised.

This is not an issue in javascript, the unpacked object with repeated keys takes the value of the last one.

        {...{a: 1}, ...{a: 2}}
        // => {a: 2}

edit: formatting

<comment><USER25> I suppose both observations are reminiscent of the fact that Python has language-level support for named parameters. Given that named and sequential parameters are treated differently everywhere in Python (sequential params must be provided, keyword args are optional, amongst other things), it would be extremely surprising behaviour if the run-time type of the value being spread determined what kind of spread happened.

In JavaScript, the surrounding syntatical context solely decides if it's an object or array splat. But since Python has 2 kinds of parameters, to preserve obviousness when reading code using splats, they went with 2 operators for each parameter kind, and then separated list and dictionary splat analogously.

<comment><USER26> > it would be extremely surprising behaviour if the run-time type of the value > being spread determined what kind of spread happened.

The other reason to distinguish * and double-* is because * works with any iterable, and dicts are themselves iterables (of their keys). So you can actually use * on dicts, it just does something different:

       >>> d = {'a': 1, 'b' : 2}
       >>> [*d]
       ['a', 'b']

You could arguably say that only * makes sense here since it's a list context. But then, as you say, function calls would still be ambiguous because they support both positional and named arguments. This keeps it all unambiguously consistent in all contexts.

</comment></comment></comment><comment><USER27> Side note... Why does everything needs to be bold on that page? It made reading it very difficult.

<comment><USER11> I'm curious about what browser you're using.

Side note: I typically bold many sentences in my articles, but this is the first article in a while where I actually bolded nearly no words at all. I wonder what my other articles look like in your browser.</comment></comment>


Mary Meeker's 2014 Internet Trends - <AUTHOR> http://www.kpcb.com/file/kpcb-internet-trends-2014

<comment><USER2> TLDR:

1\. Still more runway for smartphone usage - 30% mobile penetration

2\. Tablets growing with plenty of penetration opportunity - 400M+ tablets vs. 800M Laptops and 1.6B smartphones

3\. Mobile internet install base will be 10x desktop install base

4\. More mobile, more security problems

5\. Things aren't so bubbly when compared to 2000

6\. Youtube is teaching your kids and that's a good thing (my words)

7\. Healthcare will hopefully get better with technology

8\. People love chat apps and sharing videos + pics

9\. Apps are unbundling: "There's an app for that..."

10\. Turn all your content into lists and you will strike social distribution gold (my words)

11\. Apps will save you time, money, find your next love, and do everything else for you same day by removing the friction of human interaction.

12\. Any bitcoin based chart looks like a hockey stick (my words)

13\. Big data slides - real time, sensors, cloud, data mining

14\. Hardware costs down, cloud usage up

15\. Online video is big and will be on your TV too

16\. China

17\. Drones

</comment><comment><USER3> Once again, awesome analysis. Highlights for me

\- great breakdown of timespent/adspend per medium showing huge potential for ads on mobile and overspend on print

\- the tablet/phone boundary is being stretched by Korea with very low 'tablet' use but high phablet use

\- clear age division on transition to online on-demand TV

\- music switching to subscription with collapse of pay per track

\- video consumption grows and grows on mobile

</comment><comment><USER4> Tablet growth still booming, while iPad growth has slowed considerably and is causing analysts to rethink importance of iPad/tablets.

Slide 96 helps tell the story - cheap generic tablets market in underdeveloped countries as tv supplement/replacements.

<comment><USER5> iPad growth has slowed as it was originally designed as a high end device, so most people who would buy one have bought theirs (same with those replacing computers with them). It's hard to justify spending the money on something that only offers a slight portability upgrade on a MacBook Air unless you do something with it unique, like read comics.

The interesting piece is overall tablet use growing, as the non-iPad options continue to improve and offer a cheap alternative for doing things like going to a coffee shop or browsing on CalTrain.

</comment></comment><comment><USER6> 'Ain't bout what you walk away from, it's bout what you walk away with.' -Lil Wayne

I'd summarize the end of this report (which for me is the best part with):

a) it doesn't matter if you're first-generation or second-generation as a founder b) if your app or site or service can participate in China, you have 10x booster thrusters.

<comment><USER7> The China piece is a big insight. Huge population! I think the overseas strength is what made WeChat so valuable.

</comment></comment><comment><USER8> I figured this might appear on hacker news soon enough. If anyone has any questions about the tech behind this microsite (although it is pretty straightforward) let me know. We developed the site and the hosting to account for an enormous amount of traffic in a very short period of time. So far everything is working fine.

<comment><USER9> when I tried to view using firefox, the cpu bar kept high eating all the memory and unresponsive. I saw in firebug net tab that every slide was being fetch from slideshare in a loop. Does not happen in chrome.

<comment> Dorian-Marie I can confirm that Slideshare is eating all CPU, maybe use Speaker Deck: [https://speakerdeck.com/](https://speakerdeck.com/)

<comment><USER10> Or start using HTML for slides. like with text and stuff, not images.

</comment></comment></comment></comment><comment><USER11> Such poor design for mobile. Almost unusable on a nexus 4. Ironic given the emphasis mobile gets in the presentation.

<comment><USER8> I'm interested to hear the feedback. We did the design for the site and tested it extensively on mobile. What issue are you seeing? My email is in my profile if you want to drop me a line.

edit: The slideshare embed is having some issues on mobile and desktop unfortunately. Very slow. They are working on it.

<comment><USER12> It was unviewable due to the slowness. Just linking to the PDF on a static webserver somewhere would have been far superior.

<comment><USER13> We added a link to the pdf beneath the slidedeck. We should have considered doing that in the first place - hindsight is 20/20.

It's listed above but here it is again: [http://www.kpcb.com/file/kpcb- internet-trends-2014](http://www.kpcb.com/file/kpcb-internet-trends-2014)

</comment></comment></comment></comment><comment><USER14> From Slide 9: mobile usage as a % of web usage is now 25%. It was 14% last year.

This seems contrary to what we hear about native apps dominating smartphone usage. Obviously that web usage isn't "HTML5 Apps" per se and I'm sure apps dominate services like Facebook, Yelp, etc ... but that number and growth seems very significant.

<comment><USER15> I think everybody's stats are getting thrown out by the tendency of iOS browsers (at least) to refresh page just about every time app or tab focus changes.

<comment><USER4> I suspect that's unlikely - most analytics are focused on time-based sessions, where refreshes don't matter.

</comment></comment></comment><comment><USER7> An open question - is Mary Meeker still taken as seriously as she was 15 years ago? I don't talk to enough people in the investor community to know either way.

<comment><USER16> Mary and others like Steve Milunovich at Morgan Stanley were in a rather unique place and time 15 years ago because the Internet was just becoming this very-important-thing and very few people really understood it. Today's a lot different. That said, this presentation is widely viewed as pretty important annual snapshot of certain trends. Note though that Mary is at KPCB [Edit: Corrected] these days so her focus is presumably a bit different than when she was employed in financial services.

<comment><USER17> I think you mean KPCB, or else she still would be in financial services of a sort.

<comment><USER16> Duh. You're right of course. Corrected.

</comment></comment></comment></comment><comment><USER18> If this is called "analysis" then there is no hope.

<comment><USER19> Indeed. In fact it's just a tad below what passes for state-of-art proprietary "analysis" for clients in that industry. You'll never, _ever_ see error bars in those graphs, for instance; nor any non-hand-waving rationale for the implicit fungibility assumptions behind most (if not all) of their claims about "potential" \---like the notorious "~$30+ bn mobile market opportunity / print is overspent" one in slide 15, which blithely assumes that the value of user engagement with ads per unit of _time_ spent ought to be the same regardless of the medium: be it a tiny smartphone screen in the middle of a stressful subway commute, or a full-page glossy magazine ad with enclosed perfume sample on a weekend evening.

Apart from the satiric element of such analytic uselessness though, I like these reports for what they reveal about the industry's collective anxieties and fixations --- _tablet tablet tablet, social social social, ads ads ads, data data data, china china china_. _Cf_ for instance, in slide 90, this eye- opening jewel:

 _Biggest Re-Imagination of All = People Enabled With Mobile Devices + Sensors Uploading Troves of Findable & Sharable Data_

If that is their "biggest re-imagination of all", then as you say there is no hope, indeed.

</comment></comment><comment><USER20> not a word about soundcloud, one of the fastest growing trends in 2014

</comment><comment><USER21> Original PDF: [http://s3.amazonaws.com/kpcbweb/files/85/Internet_Trends_201...](http://s3.amazonaws.com/kpcbweb/files/85/Internet_Trends_2014_vFINAL_-_05_28_14-_PDF.pdf)

<comment><USER8> I recommend this url instead. It will redirect to the PDF file and will always redirect to the most up to date version:

[http://www.kpcb.com/file/kpcb-internet- trends-2014](http://www.kpcb.com/file/kpcb-internet-trends-2014)

<comment><USER22> Alright, we'll change the url to that. Previous url: [http://www.kpcb.com/internet-trends](http://www.kpcb.com/internet-trends).

</comment></comment></comment><comment><USER23> The 'Made in USA' slide (10) is nonsense. It shows a shift from non-USA OSes, Symbian and Linux to 'Made in USA' OSes, Android, iOS and Windows phone. But Android is built on Linux!

"USA controlled" may be a better way of putting it.

<comment><USER24> Android has a Linux kernel, but most of the OS is not what you'd find on a normal Linux desktop distro. It was started by Android, Inc. in California and is now developed almost entirely by Google.

<comment><USER23> HN is going downhill because more and more users down-vote comments not because they are fallacious or illogical, but because don't like them.

sp332's comment is fair, as far as I know, but so is mine. _Android is a Linux distribution according to the Linux Foundation, Google 's open-source chief Chris DiBona, and several journalists._[1] "We assess the initial effort needed to adapt the Linux kernel into Android and found that 99% of the function-alities of Linux kernel 2.6 were reused into Android, and only 0.7% of the reused files were modified to implement the requirements of Android."[2]

I said the slide is "nonsense" because it is inconsistent in how it counts Linux-based OSes.

[1] Wikipedia. [http://en.wikipedia.org/wiki/Android_(operating_system)](http://en.wikipedia.org/wiki/Android_\(operating_system\))

[2] Adapting Linux for Mobile Platforms: An Empirical Study of Android. [http://swat.polymtl.ca/~foutsekh/docs/era-khomh-foutse- adapt...](http://swat.polymtl.ca/~foutsekh/docs/era-khomh-foutse-adapting- linux.pdf)

</comment></comment></comment><comment><USER25> It's a nit perhaps but being as this is technical stuff I'd prefer the standard SI prefixes rather than MM and the like used in some beancounting.</comment>


For CIA, truth about torture was an existential threat - <AUTHOR> https://firstlook.org/theintercept/2014/12/10/cia-truth-torture-existential-threat/ <comment><USER2> What I'd like to know is: when will all the people who are guilty of these terrible crimes, as well as the ones who lied to Congress about it, be tried for those crimes?

Will the US as a nation really condemn torture? I hope it will, but I fear it won't.

</comment><comment><USER3> Such truths have been told before, going back at least 40 years, and the CIA is still there. Certainly they didn't want the news out, if that's what you mean.</comment>


Apple Is Using Sass, And They're Doing It Wrong - <AUTHOR> http://blog.kaelig.fr/post/51078221503/apple-is-using-sass-and-theyre-doing-it-wrong Today Apple redesigned the homepage of the online Apple Store. I was having a look at their code and I found out some interesting code smells that apparently even the most skilled developers will commit. <comment><USER2> > _That's 7 levels deep (sic.). On top of being quite inefficient and > generating a large amount of code, these styles are completely un- > reuseable._

That's kind of the whole idea.

It's supposed to help to not mess other parts of the page when they change something.

Their page design is not supposed to be overall consistent and re-usable. They are supposed to be able to do long or surgical changes to any individual section at whim, without affecting anything else -- having sections with a unique new look weeks before updating anything else, or creating special purpose looks for different sections.

For this purposes, reusability and less nesting would be a nightmare.

<comment><USER3> Even if you don't care about reuse, wouldn't it make more sense to just do a selector like ".my-completely-and-totally-unique-class-name" instead of nesting so many levels deep?

<comment><USER4> If you want to see how that turns out, check out ExtJs thousand line sass files. Nesting or namespacing is DRY 101 in my book and I prefer my projects with this as well.

</comment></comment></comment><comment><USER5> This is off topic, but in the recent months there has been an influx of these informative blog posts with animated gifs that are not really relevant to the information. Is this just a side effect of being a Tumblr user/community member? The more snarky pictures, the higher your view count/loyalty?

I ask, because they are distracting and shred any seriousness laid out in the article. Some of these articles are rich in content, but reading them at work with flashing/animated nonsense feels like I am viewing Reddit to people passing by.

<comment><USER6> I hate to say it, but I agree completely. Forgive me for wanting engineering articles to look like... engineering. I wonder if this is just a generational thing. I don't have a bucket full of GIFs to drop on an article.

It seems to be tapering off lately, but it used to irk me greatly when a technical blog article would have a bunch of random photos stitched in that had absolutely nothing to do with the content.

</comment></comment><comment><USER7> I think a lot of this is more that apple doesn't give a damn about reuseability, they care about perfection. If the promo after father's day has an image that goes over the border by 3px, they'll write it from scratch.

<comment><AUTHOR> They care about perfection on the surface as well as below the surface. This release doesn't meet both these criteria.

<comment><USER8> I don't think it's actually true that Apple cares about "perfection below the surface".

<comment><USER9> It might not be perfect, because what ever is? But the interior of the Macbook Pro, Mac Pro, and other hardware suggests otherwise:

[http://www.ifixit.com/Teardown/MacBook+Pro+15-Inch+Retina+Di...](http://www.ifixit.com/Teardown/MacBook+Pro+15-Inch+Retina+Display+Mid+2012+Teardown/9462/1)

Similarly, the filesystem on OS X. As far at the Mac parts go, while the BSD folders have visibility toggled off.

<comment><USER10> Oh give me a break, Apple products are nowhere near perfection. They do plenty right, but plenty of their stuff is awful (just like every other company out there). Finder is awful. The calendar and notes app are awful. One of the ugliest things about Apple is the constant insistence by users that everything Apple does is perfection.

<comment><USER9> I didn't say they're perfect or anywhere near perfection. I could go on at length about the myriad things that annoy me: Finder, HFS, software update crammed in the App Store, iOS lockdown.

All I did say is that they absolutely do _care_ about what's below the surface. Parts that a fraction of a fraction of folks will ever see are given loving attention far beyond the norm. Do most or any other manufacturers color coordinate battery warning labels, PCBs, etc., down to the cm^2 headphone jack?

</comment></comment></comment></comment></comment></comment><comment><USER11> What is wrong is that I can't zoom on your website. Typos won't scale.

It's really a big accessibility problem. I can't read this article without using the Chrome inspector to change styles.

And I'm far from being visually Impaired.

Sorry, but it must be said.

<comment><AUTHOR> Thanks very much for this feedback. I removed this limitation and you can now zoom in. I am very sorry, as this is something I've been willing to fix for a long time.

<comment><USER12> > this is something I've been willing to fix for a long time

I'm guessing English isn't your native language, so this is a diction note:

You should say "I've been _wanting_ to fix". "willing" is strictly correct, but it conveys that you've been waiting for someone to ask you to fix it. "wanting" conveys that you knew about the problem but hadn't found the time to deal with it.

Hope that helps.

<comment><USER13> Nitpick: your explanation works for the far more common term "willing", an adjective. But, through it may sound awkward and very few people would use it this way, could it not also be the participle of "to will"? In this interpretation the use of "willing" is totally correct.

(Also, before saying that I've written this out of some foreign notion of English and that I just wouldn't understand, my own native language is English.)

<comment> qu4z-2 It's technically correct, but it sounds weird and non-native to me. It requires me to jump through mental hoops to explain how it makes sense. For easy communication, I'd recommend sticking with "wanting" in this situation.

(though I'm not averse to using awkward phrasings or the like in casual situations where clear communication isn't the number one priority. At the moment I'm on a crusade to bring back "thrice" and {h,th,wh}{ence,ither}. )

<comment><AUTHOR> Thanks! I actually moved to the UK exactly one year ago to improve my speaking/writing English skills, and every suggestion helps. I hesitated when writing this comment and went for "willing" because it sounded good (not a very good way to choose what word to use…).

</comment></comment></comment></comment></comment></comment><comment><USER14> _> Your code is so much better than most Fortune 500 companies, which is why hundreds of developers (perhaps more) are viewing the source of Apple.com ..._

Let's hope these hundreds of devs don't look too closely. Referencing 11+ seperate JS files in <head>, among them unminified libraries, isn't exactly best practice. They violated all the rules:

1) Combine! 1 CSS + 1 JS are usually enough.

2) Move JS to the bottom if possible!

3) Minify!

(I'm talking about www.apple.com, not the store.)

</comment><comment><USER15> Everyone is doing _something_ wrong.

I'm starting to wonder about using checklists for deployment (yes, your deployment should be automated. You still have to go through the checklist at least once). There are lots of them out there, but they seem pretty pretty general, mostly. There are also a lot that are internal to a given company, used for a specific application.

It seems like there should be an intermediate level, though. Just like any OSS project is expected to have a readme and a changelog, it should also have a CHECKLIST.txt. Drop it into your checklists directory (or have a script that collects them for you) when you add a library to your project, and go through them all before releasing.

</comment><comment><USER16> Things that Apple's customers care about include: Whether the website reliably displays on their device. Whether or not they can successfully browse and buy Apple's latest products. How fast the site loads.

Things that Apple's customers don't care about at all include: The code. Or whether or not that code "smells".

This would be an interesting story if it spoke in terms of something important. "Here is how Apple could probably boost sales by 0.1% by optimizing their SaSS" would be a good story. "Here is how to make the Apple Store load 25% faster by optimizing its SaSS" would be a good story.

But "here is how Apple could make their SaSS more aesthetically satisfying to the 0% of visitors who will pay more to read higher-quality code in the Web Inspector" is, at best, an academic exercise.

Production code exists to solve problems, and its quality is not merely a function of the code itself, but of the time constraints, the budgetary constraints, and the magnitude and urgency of the business opportunities. How many millions of dollars of product did Apple's "bad" SaSS sell in the time it took to critique it?

<comment><AUTHOR> I agree that code should not be a goal in itself, but you miss the point.

Apple is preaching engineering excellence through their campaigns and products. In the Apple World, the quality of a product is not something you assess only depending on the money it makes.

</comment></comment><comment><AUTHOR> Today Apple redesigned the homepage of the online Apple Store. I was having a look at their code and I found out some interesting code smells that apparently even the most skilled developers will commit.

If one of their developers is reading this I am happy to help with Sass architecture and best practices.

<comment><USER2> > _I was having a look at their code and I found out some interesting code > smells that apparently even the most skilled developers will commit._

Your use case is not Apple's use case.

They're not designing Flickr, some blogging service or some news site.

The smells are there for a reason. The pages and styles are not to be reusable -- they are meant to be easily replaceable on a per page / section basis.

<comment><USER17> > The smells are there for a reason.

What reason is there for CSS that is commented out? Or for redundant prefixes? Or for debug to be left on and to have a bunch of comments and paths from the build structure?

<comment><USER18> >>> Or for debug to be left on and to have a bunch of comments and paths from the build structure?

So you can debug problems being seen only in the production version?

<comment><USER17> Let's hope Apple's not that lazy.

</comment></comment></comment></comment></comment><comment><USER19> We've started experimenting with Sass for Wikipedia as well, and it's now in MediaWiki core. Check out mediawiki.ui in the core resources (git.wikimedia.org).

Right now we're only using it for our upcoming signup/login redesign, but it's available for use elsewhere and will probably start popping up on other interaces. We debated whether to even include the Sass files and associated errata at all though, to be honest.

<comment><AUTHOR> Thank you for sharing, I am glad that more and more organizations are using such powerful tools.

Also: it's Sass, not SASS.

<comment><USER19> Edited accordingly.

</comment></comment></comment><comment><USER20> Next time some person says that CSS is good enough and SASS/SCSS is unnecessary. Yeah this.

<comment><USER21> Each have their place, and if you can't write good good CSS then your SASS is going to be just as rubbish.

<comment><USER22> What's good CSS, apart from minimizing performance impact by keeping to some rules?

<comment><USER23> What's good code apart from minimizing performance impact by keeping to some rules?

</comment></comment></comment></comment><comment><USER24> I don't think Apple is doing _anything_ right on their website. I've recently come across parts of it built in 2006 on perl scripts, running hand in hand with the AppleID code running today. The backend must be horrifying.

</comment><comment><USER25> Is this any surprise from the team that takes the store offline to add products?

<comment><USER26> That's more marketing and hype than technical limitation.

<comment><AUTHOR> There actually used to be a technical reason for it. Updating the servers all over the World required a propagation delay. Nowadays I don't know.

</comment></comment></comment><comment><USER27> This article would be improved tremendously if you told me what Sass was.

<comment><AUTHOR> You're right, since the audience reading the blog is usually a crowd of developers I did not think I should mention it. Sass is a CSS preprocessor, used for better stylesheet authoring. You may find more information here: <http://sass-lang.com/>

I also added a link to the Sass website in the first part of the post.

</comment></comment><comment><USER28> Seems like everyone wants to make a name for themselves by knocking on others on HN instead of showing their own awesome work.</comment>


Founder of Simple Warns Silicon Valley Pals: Don't Ruin Portland - <AUTHOR> http://www.wweek.com/2015/11/11/tech-entrepreneur-alex-payne-warns-his-silicon-valley-pals-dont-ruin-portland/ <comment><USER2> "Do as I say, not as I do."</comment>


Can Life Exist in 2 and 1 Dimensions? - <AUTHOR> https://arxiv.org/abs/1906.05336 <comment><USER3> Couldn't help but think of the book Flatland and the parts about two- dimensions.

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

<comment><USER4> The Planiverse by A. K. Dewdney is also a great read on this subject - <USER2> less of an allegory than Flatland and focuses more on what the physiology and society of 2D life might look like. Worth a look.

<comment><USER5> I had this book, it had fun illustrations and thoughts about a hypothetical world.

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

</comment></comment></comment><comment><USER6> Good luck living in a world without stable orbits and without a cross product. Stable orbits only exist in 3 dimensions [1]. Cross product only exists in 3 and 7 dimensions [2] thanks to quaternions and octonions.

[1]: [https://en.wikipedia.org/wiki/Bertrand%27s_theorem](https://en.wikipedia.org/wiki/Bertrand%27s_theorem)

[2]: [https://en.wikipedia.org/wiki/Seven- dimensional_cross_produc...](https://en.wikipedia.org/wiki/Seven- dimensional_cross_product)

<comment><USER7> Good luck assuming that life needs a planet and an orbit. All you need is a way for particles to make explicit decisions and experience some sort of consciousness (but even that is debatable, since few life forms on earth seem to have that).

And I would even question that you need particles. Particles might just be what we can experience in 3 dimensions.

I always find it funny how humans are so eager to draw generalized conclusions based on their own meager 100 years of scientific existence. We should be more humble and realize that we know jack shit about anything.

<comment><USER8> I had a similar reaction to you. People seem to have very limited imaginations when thinking about the types of things that could exist. Or maybe the title is incomplete. Maybe the paper is saying something more like, "Could life exist in a plane that otherwise has the same or very similar physics and chemistry as the universe?" In which case I could understand the skepticism about life's existence.

<comment><USER9> OP was referring to an orbit in the dynamical systems sense: [https://en.wikipedia.org/wiki/Orbit_(dynamics)](https://en.wikipedia.org/wiki/Orbit_\(dynamics\)) which is far more general. It simply refers to a dynamical system where the trajectory of a particle repeats. If you have a system of particles in 2D space, governed by central forces between the particles, you won't have any particles that behave periodically in general, regardless of what those forces actually are. (There's actually some caveats to that statement. I believe the theorem OP's quoting assumes that the system has rotational symmetry, but giving up that symmetry may or may not actually give you stable orbits). Having some underlying periodicity is pretty important for more complex structures to emerge, otherwise it's just random chaotic motion.

<comment><USER10> I mean, there are obviously a huge number of caveats associated with that, to the point that it's meaningless when we ate discussing "possible universes". There is no rule that a n^-2 force cannot exist in a 2d universe... which would obviously result in stable orbits.

I mean come on, we have forces in our universe which are not n^-2. All this proves is that gravity couldn't work in the same way in a 2d universe..... so?? Heck, what about discrete universes? What about nonlocal universes?

</comment></comment></comment></comment></comment><comment><USER11> Very interesting take on this in the novel Death's End by cixin lu

<comment><USER12> He's first name is Liu.

<comment><USER13> Isn't it customary to put a Chinese person's family name first?

<comment><USER14> I think this is pointing out a typo rather than prescribing an ordering.

</comment></comment></comment></comment><comment><USER15> 1\. Life can exist in 3D.

2\. A 2D or 1D computer can simulate life in 3D.

3\. Therefore, life can exist in 2D or 1D.

<comment><USER16> > A 2D or 1D computer can simulate life in 3D.

Can it? I'm not familiar with the limitations of lower dimensional computation, but it sounds like a fascinating subject.

<comment><USER17> [https://en.wikipedia.org/wiki/Rule_110](https://en.wikipedia.org/wiki/Rule_110) A Turing Complete 1-dimensional cellular automaton.

Also Conway's Game of Life is a rabbit hole you could literally spend your whole life studying.

<comment><USER18> That is life like but I would not call it life.

<comment><USER19> That's the issue with this question. What is life? Common definitions would never think to consider anything other than things in our 3D physical world.

Can Life Exist in 2 and 1 Dimensions? Sure, if we're willing to define "life" generically enough. If not, then no.

</comment></comment></comment></comment></comment><comment><USER20> This reminds me of the problem of designing digestive tracts for m-dimensional creatures in an n-dimensional ambient space. For example, if Pac-Man had had an anus, he would have split in two (without additional biology keeping him together).

<comment><USER21> That is like solving a 2D problem using a 3D technique. Think outside the box. An organism doesn't really need a digestive tract. You can digest/absorb externally.

<comment><USER22> Alternatively, your hypothetical digestive tract can split and rejoin around the food being processed as it moves through the tract so that at no point in time do you have an open path from one end to the other.

<comment><USER23> I would call this a 2D amoeba. In 3D, they eat and excrete pretty much as you describe.

</comment></comment></comment></comment><comment><USER23> Is that AND? "&" and "+" aren't the same thing. (even in that sentence, 'plus' and 'and' aren't synonymous. Replacing 'and' with 'plus' completely changes the meaning...)

Everything about the way the article is written suggests it is about the potential for 2D life occurring in 3D space, and nothing about single dimensional realms.

Consider graphene, a 2 dimensional fabric in 3D space. I'm sure this is closer to the point.

PLUS, versus AND.

<comment><AUTHOR> Original title of paper as published and posted: "Can Life Exist in 2 + 1 Dimensions?"

<comment><USER23> You wrote "and" where it is a plus. That isn't in the title of the publication.

</comment></comment></comment><comment><USER24> Title is incorrect. It's 2+1 dimensions, 2 space and 1 time, not "2 and 1 dimensions."

</comment><comment><USER25> Vaguely related, but enjoyable read,

[https://en.wikipedia.org/wiki/Dragon%27s_Egg](https://en.wikipedia.org/wiki/Dragon%27s_Egg)

"The Cheela develop sentience and intelligence, despite their relative small size[...] and an intense gravity field that restricts their movement in the third dimension."

I read it based on another HN post ...

</comment><comment><USER26> Life in 2D couldn't have an esophagus or an intestinal track. Then the organism would be split in two. Maybe you could have an organism that surrounds something and spits it out after sucking up the nutrients.

As to 1D life, I find it hard to imagine an organism that could be 1D and exist.

I didn't read the paper, though.

<comment><USER27> [https://66.media.tumblr.com/2e04d006ac322f0b8556e376df8e81d5...](https://66.media.tumblr.com/2e04d006ac322f0b8556e376df8e81d5/tumblr_o4f4xgLAK61rhdt2to5_1280.jpg)

</comment></comment><comment><USER28> For a - very - humourous social critic related to the theme, I highly recommend: Flatland, by Edwin Abbott. A book from the 18. cen. with very actual insights to it.

<comment><USER29> I am borrowing Flatland/Sphereland from the Library, just finished Flatland last night, read the intro by Isaac Asimov for Sphereland. Sat the book down and had some deep contemplation.

</comment></comment><comment><USER30> We know that life is possible in two dimensions. A.K. Dewdney writes about his encounter with Yendred from the planet Arda in his novel _The Planiverse_.

<comment><USER31> You are getting downvoted probably because people aren't familiar with _The Planiverse_. While technically a novel, it isn't just fiction -- the author goes into great detail how physics, chemistry, and life could work in two dimensions. In fact, that's actually the point of the book -- the story is just there to string the explanations together.

</comment></comment><comment><USER32> By holographic principle we may be a 2d hologram, so the answer is yes. Also, why could there not be a real 2d universe with intelligence in it? Not that this one is less strange anyway

</comment><comment><USER33> I've never understood why we think we live in 3 dimensional world.

Let's put aside time, brane dimensions, etc

But just from a human experience perspective, there are so many more dimensions than X,y,z. Color for instance. Or sound, or touch, or smell.

From a data science perspective, we treat each additional column in a table as an additional dimension. This isn't metaphorical, it is reality as we best define it.

</comment><comment><USER34> The fundamental premise of the title seems misleading to me. Life existence doesn't depend on dimensions, it's perception that does. As the author later says, the paper is predicated upon an anthropic consideration of reality: if it can't be observed or compatible with the human mental model, then it doesn't exist. Has that been proven to be the case?

<comment><USER35> Life depends on dimensions up to some point too. The most typical example is that, in a 2D world, there cannot be organisms that consume food, because the digestive tube would split the organism in two.

<comment><USER36> What about a permeable membrane? I.e. an organism absorbing nutrients through a wall that still maintains structure?

<comment><USER37> The whole concept of a permeable membrane, i.e. essentially stuff that has holes but still is "one piece" (something like a sieve or strainer or colander or net or anyhing of the kind), is something that IMHO requires 3+ dimensions. In two dimensions if a membrane has two or more holes then it's not a single membrane anymore.

<comment><USER36> > The whole concept of a permeable membrane, i.e. essentially stuff that has > holes but still is "one piece" (something like a sieve or strainer or > colander or net or anyhing of the kind), is something that IMHO requires 3+ > dimensions. In two dimensions if a membrane has two or more holes then it's > not a single membrane anymore.

By what reasoning would it not be a single membrane in two dimensions, but it would be in three dimensions? As far as I can tell your only support/reasoning is found when you write "IMHO"...

<comment><USER37> In 3 dimensions, the sieve/strainer/colander is an object that's connected with itself despite having holes. There's material that goes around the holes.

In 2 dimensions, the membrane is essentially a line (or a linear sequence of objects) - if that line is interrupted in one space to let stuff through, then it's not connected anymore, it's two separate lines with nothing linking them, it's broken with no possibility to connect "around the hole" because any connection around the hole requires the third dimension, and any connection through the hole closes that hole.

<comment><USER36> Thanks for the clarification that makes sense.

<comment><USER38> It actually doesn't make sense. A circle with a 1D point missing from its edge is the same as a sphere with a 2D hole in it. Both have material connected "around" it in another dimension. For a sphere the connection wraps around the hole and for a circle the connection wraps around the point (comprising the entirety of the circle's edge).

<comment><USER37> This fails with more than one hole (as I said in the inital comment, two or more). A circle with two 1D points missing breaks apart, a sphere can have an arbitrary number of 2d holes and still be fully connected.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER39> Another relevant question, Can any kind of engine exist in 2 and 1 dimensions?.

If there is no work (as in disposanle energy), there is no life.

<comment><USER29> Gliders in the Game of Life, clever people exploring GoL have made forms that can pull or push patterns along.

</comment></comment><comment><USER40> The only life form we know has DNA and the DNA is a 3D molecule. With our current knowledge, it doesn't seem possible.

<comment><USER38> DNA is not a 3D molecule. DNA is a molecule which can be represented as 3D. It can just as easily be represented with one or even two fewer dimensions without losing any information.

By the holographic principle, there may be no such thing as "3D" except as a concept for conscious minds to make sense of reality.

</comment></comment><comment><USER41> One thing to bear in mind is that while the papers tend to just elide over it with some references, and the popsci representations of these discussions tend to skip over this either because they don't think anyone else will understand it, or the authors don't understand it themselves, is that there are assumptions built into these declarations, and it can help to dig into them. It's not a bad thing that there are assumptions; they're entirely necessary to make the questions something amenable to serious analysis, since the infinite space of all possible physics isn't really something we can speak about intelligently except in some really limited ways. But you do want to keep that in mind as you read these things.

Generally some physics are carried over from the real universe, and you want to look at how much. For instance, in this case, we carry over a very general- relativity-inspired gravity, which is then modified anyhow since GR-gravity wouldn't work. I've also seen another paper which was based on the premise "Assuming the basics of string physics are correct and we only vary the number of spatial and temporal dimensions, is life possible?" It's an interesting question, but "assuming the basics of string physics" is a big beginning. It doesn't invalidate the results, you just have to consider the results in the context of that.

The objection to 4-space is that you can't have any stable orbits with an inverse-cube law of gravitation. As for the natural question "why can't we just assume inverse square gravity then, if we're trying to build a universe where life could exist?", and the answer is, you can! But you make it very hard on yourself to write a sensible, published paper in the process, because you've taken a huge step away from all known gravity theories and you're now on your own.

I've often mentally noodled around with the idea of a two-dimensional universe based on a cellular automata theory, but in which one of the things the cells can do is be split in half (or quarters) somehow, with some defined mechanism for interacting with the original outer cells, and then the ability to further recursively split inside, and where the clock ticks, say, twice as fast in the split cells, so you end up with a universe that is (presumably) Turing complete, and participants may end up with the ability to perform infinite computations in finite time due to the split mechanisms. Presumably, if something like this could be defined, some sort of life could run in it; it seems to me than any Turing-complete (suitably modified with our often-also- elided assumptions about being finite-but-large-enough to act more like a Turing machine and less like a state machine, even if it is finite) environment can support life, on some level or other, even if by simulating some other more congenial environment. And the space of "physics" that permits Turing machines strikes me as very, very large compared to the space of "physics" that is "like ours, but just slightly tweaked". But you can't really get a math-heavy physics paper out of that idea.

<comment><USER42> I've been experimenting with 2d life, simular to cellular automaton, but with floating point directions, called PPS:

[https://youtu.be/gaFKqOBTj9w](https://youtu.be/gaFKqOBTj9w)

</comment></comment><comment><USER43> Definitely 2, since the life of a cell is encapsulated by the the motion of atoms. A spheroid cell converts to a circular plane with ease. All life is comprised of cells, so a 2D plane of life without depth will likely work.

One dimension would have to resolve all interactions to waveforms with the ability to pass through solid objects. So it would probably mean violating physical laws as we understand them. Things would need to seemingly teleport to different points within the dimension, I think.

Either that, or the single dimension is reduced to binary digits, interchangeable, without identity. Then, it's not really teleportation. It's more like kinetic transfer in a newton's cradle, like croquet balls or billiard balls. Spherical cows, perhaps.

</comment><comment><USER44> Assuming that you accept that the fundamental particles have a negligible third-dimensionality: chemically, the limitation to planar molecules seems very limiting.

</comment><comment><USER45> What about 4+1 and higher? I think it already does and we just perceive in 3 spatial dimensions to be able to process information in an easily digestible format.

<comment><USER46> There are problems that arise in 4 + 1, such as how gravitational orbits aren't really stable and the force between the electrons and the nucleus is too strong to allow chemistry to exist as it does.

<comment><USER47> You are absolutely right, but do check out Greg Egan's "Diaspora" for a hard scifi that tries to get around that constraint.

More seriously, and slightly less scifi, you can have more than 3 spacial dimensions and still have stable gravity/electromagnetism if the topology of these dimensions is a bit weirder (very small periodic dimensions for instance).

</comment></comment></comment><comment><USER42> 2d life simulator:

[https://youtu.be/I6bHpJ2GV0Y](https://youtu.be/I6bHpJ2GV0Y)

</comment><comment><USER48> A two dimensional being can't eat. Its digestive tract necessarily divides it into two distinct pieces and the being falls apart.

[https://preview.redd.it/8fvwyefjav601.jpg?width=640&crop=sma...](https://preview.redd.it/8fvwyefjav601.jpg?width=640&crop=smart&auto=webp&s=4d5bb23d2e39d53d6b3cda77d5496c4302ee34df)

<comment><USER49> [https://users.renyi.hu/~daniel/tmp/noitdoesnt.jpg](https://users.renyi.hu/~daniel/tmp/noitdoesnt.jpg)

<comment><USER29> That's a pretty slick solution there.

</comment></comment></comment><comment><USER50> I believe this was answered on a 1997 Halloween episode of The Simpsons.

</comment><comment><AUTHOR> Commentary: [https://www.technologyreview.com/s/613788/life-could- exists-...](https://www.technologyreview.com/s/613788/life-could-exists- in-a-2d-universe-according-to-physics-anyway/)

</comment><comment><USER51> _____ __ ____ __ __ __ _ _ __ __ __________ _ __ __ __ ___ __ _ _ ______________ __ __ _ _ ______</comment>


Search Bangs - <AUTHOR> https://duckduckgo.com/bang <comment><USER2> ddg is my default and this is the killer feature for me.

I type in "houston !gmaps" and right to google maps focused on Houston. I copy paste "[error] !so" and get relevant stack overflow search, "[actor] !imdb" etc.

<comment><USER3> But if you type "dragon book amazon" into Google, it will do exactly what was intended. No bangs needed.

To make matters worse, if I type "dragon book" into the Amazon search bar directly, I'm getting the wrong results.

(Both searches done from a fresh incognito tab.)

<comment><USER4> How do you know what was intended? Amazon is more than just a domain name.

</comment></comment></comment><comment><USER5> I have keyword searches [1] set up in Firefox for the sites I want quick access to. It does the same thing, but is browser-based.

[1] [https://support.mozilla.org/en-US/kb/how-search-from- address...](https://support.mozilla.org/en-US/kb/how-search-from-address-bar)

<comment><USER6> I use ddg, but I also have a bunch of keyword searches in firefox too (about 25) because they've been supported for longer than ddg and I seem to spend more time in the URL bar than the search box. It was a joy to find the keyword search extension for firefox [1] that provides a context menu and let's you highlight text on a page and choose from one of your keyword searches from a ciontext menu.

[1] [https://addons.mozilla.org/en-US/firefox/addon/keyword- bookm...](https://addons.mozilla.org/en-US/firefox/addon/keyword-bookmarks/)

</comment></comment><comment><USER7> I use bangs very frequently and quite like them.

Probably the ones I use most are !gh to search github or !npm to search npm (although npmsearch.com is often more useful).

One thing I wish I could do was combine the first-result bang (!) with other bangs (like !gh). That would translate into "take me to the first result on github for these search terms..."

<comment><USER8> Good idea but I think that wouldn't be practically possible. We redirect you to third-party sites but we don't know what the first results on those sites are.

Technically I suppose it's possible to "scrape ahead" and get the top result in the background before redirecting the user, but some sites change search results based on your profile/behaviour so it could be inaccurate. It may also be against those sites' terms and conditions.

<comment><USER9> What about sort of appending site:GitHub.com and going to the first result there? Not always the first result you'd see, but it might work okay.

<comment><USER8> Now that's an interesting idea. It's already possible using the `\\` trigger, e.g.:

[https://duckduckgo.com/?q=\getusermedia+site%3Astackoverflow...](https://duckduckgo.com/?q=\\getusermedia+site%3Astackoverflow.com)

but a short syntax such as `\\!so getusermedia` is a potential alternative. I'll suggest it to the team.

<comment><USER10> Ah, now I see why that was happening to me in the past. I was doing a search to find out about a command in some program that began with a backslash (a search query like: \COMMANDNAME), and was wondering why I kept being redirected to some random website.

<comment><USER8> Ahem, sorry about that! That's our "I'm feeling ducky" trigger: [https://duck.co/help/results/syntax](https://duck.co/help/results/syntax)

</comment></comment></comment></comment></comment></comment><comment><USER11> Is there a really good in-depth up-to-date comparison somewhere between duckduckgo and google?

For example: I don't see any advantage in those search bangs, simply searching "shoes amazon" on google will do the job, or if I really want to search a specific site one can easily do "shoes site: amazon.com", and considering all the other things google can do...

duckduckgo might do some of those things, some of those even well, but I don't know, therefore the question about a detailed comparison... in google:

search literally by using quotation marks "to be or not to be", show weather, stocks, definitions, times, calculate anything, you can even do stuff like "notebook 200$..300$" which searches in that specific price range, currency and number conversion, exclude some search terms, flight information and lots more... whenever I read of something about supposedly awesome duckduckgo- features, it seems like the author(s) don't know a lot about google's capabilities... or I guess don't mention it on purpose. Many don't know about google's capabilities I guess, and then they might go "look what duckduckgo can do", ehm "google has been capable of that for x years"...

and by the way: last I checked google was immensely superior in search term results (even without the bubbling effect)

<comment><USER12> _simply searching "shoes amazon" will do the job, or if I really want to search a specific site one can easily do "shoes site: amazon.com"_

The search bangs take you directly to the search implementation of the site in question. Sometimes this is preferred to a Google search. If you try "!amazon shoes" on DDG and "amazon shoes" on Google, you can see the difference. Basically, in any case where you would type something into a site's search box (instead of Google's), it saves you a click or from having to navigate to that site first.

<comment><USER11> Oh I see... just tried it, k, can see why some like that feature, I actually think it's something a search engine isn't supposed to do, but ok, thanks for the hint :)

<comment><USER13> @neurobuddha has also been blogging about specific !bangs which is even more enlightening - [https://news.ycombinator.com/item?id=11773901](https://news.ycombinator.com/item?id=11773901) (his post is currently buried below, but he totally deserves all the karma!)

</comment></comment></comment></comment><comment><USER14> I was pleased to discover the Qwant[0] search engine recently and have found its results to be a significant improvement over those provided by DuckDuckGo. It also has some support for bangs (but the bang must be at the start of the query). I've come to rely a lot on bangs and would love to see this further supported; coincidentally I submitted feedback to them about this earlier today.

[0] [https://www.qwant.com](https://www.qwant.com)

</comment><comment><USER15> This has been around for years

<comment><AUTHOR> It was even discussed on HN four years ago: [https://news.ycombinator.com/item?id=4260964](https://news.ycombinator.com/item?id=4260964)

</comment></comment><comment><USER16> I've run into a few bangs that no longer work. I tried reporting the broken bangs on Twitter and the DDG bug reporter, but I received no reply and they're still broken.

I'm surprised DDG doesn't have automated monitoring of every bang API they use. They should have daily or hourly health check queries to confirm valid HTTP responses or even expected search results.

<comment><USER8> Hi. Do you have a list of the bangs that don't work for you? I can forward them to be looked into.

<comment><USER16> Thanks!

* !d20srd (D&D reference search) and its alias !d20 are 404. There is also !srd, which searches the same site but actually works. These bangs should be merged.

* !zillow (real estate search for an address) will show the neighborhood the address is in, but not the exact match. Search for the same, pre-populated address on the site shows the exact match. This is a problem with the way DDG is encoding of the search terms.

* FIXED: !blekko still existed (and was broken) even though the service had been shut down after the company was acquired by IBM.

<comment><USER8> Thanks for the details. I've reported the d20 ones - there was also !d&d that should go to the same site.

For Zillow, it seems appending "_rb" to the end of the address makes it work so I've requested that. We do get hundreds of !bang suggestions and updates though, so it make take a little while.

</comment></comment></comment></comment><comment><USER17> Okay, this is pretty damn neat.

I just searched for "!a laptops" and was sent straight to Amazon's laptop search page.

</comment><comment><USER18> I prefer Google's built into Chrome where you start typing (e.g.) amaz then let it autocomplete then press <tab> then search away. Easier than remembering bangs and gets me a headstart on somewhere I know I'm already going (youtube is another good one)

</comment><comment><USER19> !gview is one of my favorite, quick pdf reader when the embedded ones fail to render correctly.

</comment><comment><USER20> Good. Hat off to the Duckduckgo team. It's my major search engine now.

</comment><comment><USER21> This is pretty cool. I'll start using DDG specifically for this feature as I can never remember the full path for search queries on different sites that I go to

</comment><comment><USER22> My most used bangs: ! (go to the first result) and !g (perform search on Google). Occasionally, I'll use !w (Wikipedia).

They really make it easy to get to where you wanted to go.

<comment><USER23> !gis (google image) and !gri (reverse image) are both quite useful.

<comment><USER24> A shorter bang to search google images: !i

<comment><USER23> Thank you! I had assumed !i was ddg images for some reason.

</comment></comment></comment></comment><comment><USER25> I use `!rustn` because it's more convenient than actually loading my local copy of the rust documentation.

</comment><comment><USER26> Isn't this an old feature in DDG. I have used this two years back. Even added a !sulekha

</comment><comment><USER27> !w for wikipedia is my favorite.

</comment><comment><USER28> It's cool but I believe it will be better to have even autosuggest site specific. I mean if I search for !a shoes it should suggest me content from Amazon not from anywhere else.

</comment><comment><USER29> Pretty neat. I was curious how a general search would work on a travel site but '!kayak iah' or '!kayak houston' just dumps me on kayak.com after a few redirects.

</comment><comment><USER30> Wish Google would support this. Then again I've already become accustomed to writing !g at the end of all my search queries.

I love bangs, but DDG's results are still very subpar

<comment><USER14> Sorry for the meta post but I don't understand why your comment was down voted. It seems a few people in this thread have been down voting any criticism of DDG, which is a misuse of the feature.

</comment></comment><comment><USER31> So what is the difference between this and google's "site:"? The latter works for any site, there is no need for a custom list of 8000 sites.

<comment><USER32> Google `site:wikipedia.org` search (which also works in DuckDuckGo) uses Google's interface and index, i.e., you get a Google search results page. With Search Bangs, you get a search results page using that uses a websites own engine, e.g., it's filling out a search term with a template like `[http://wikipedia.org/?search=*`](http://wikipedia.org/?search=*`).

This is actually very old idea that used to be implemented in various browsers and extensions. Here's a support page for Fireboxes implementation, which might still work[1]. Personally, I do this on OS X with LaunchBar Search Templates[2], which is nice because it's browser agnostic.

[1]: [https://support.mozilla.org/en-US/kb/how-search-from- address...](https://support.mozilla.org/en-US/kb/how-search-from-address-bar)

[2]: [https://www.obdev.at/resources/launchbar/help/SearchTemplate...](https://www.obdev.at/resources/launchbar/help/SearchTemplates.html)

</comment></comment><comment><USER33> I would love a native mac client for this.

<comment><USER34> Like a browser? I'm confused at what else it could be.

</comment></comment><comment> esc-ape There comes me with system wide keywords self customized on Alfred. Best productivity tip you can get

</comment><comment><USER35> Duck Go !Bang: [http://duckgobang.com](http://duckgobang.com) is a blog that tests bangs (some listed on Duck Duck Go are broken) and showcases the most useful ones.

Bangs are such a cool search hack, I wonder why more people don't use it.</comment>


Major Microsoft Outage - <AUTHOR> Xbox Live And Teams are down. Not sure what else is affected. <comment><USER2> Everything is working fine for me (from India). Able to access outlook, teams and Azure resources.

Could it be ISP issue in any region?!

</comment><comment><USER3> Azure status page isn't reporting anything yet. [https://status.azure.com/en- us/status](https://status.azure.com/en-us/status)

</comment><comment><USER4> Can confirm, see same outage -- started about 20 minutes ago (US East).

</comment><comment><USER5> Same here, everything is down. Azure, Office, Bing, etc.

<comment><USER6> Where were you located?

<comment><USER5> Nashville. I got a notice on my Azure Dashboard that East and East 2 were effected. So I'm sure it was mostly an east coast/southern problem.

</comment></comment></comment><comment><USER7> Outlook and Teams working fine for me in Los Angeles.

</comment><comment><USER8> Legit question, if it is a regional issue, can using a VPN to another Geo be helpful here in getting access to the affected services?

<comment><USER9> Yes/no. It depends how the services are distributed. For example if this is actually one region that has the issue and your data is stored there, accessing another region's gateway won't help you. But if the service is completely replicated / distributed and it's only the networking of your closest pop that failed, then a VPN helps.

<comment><USER10> Even if it's not completely replicated a VPN might help. For example maybe the local frontends are broken but the local backends are fine. Or maybe the problem is the BGP routes are bad between your ISP and your local frontends, but the BGP routes from your ISP to your VPN and your VPN to the frontends near the VPN are fine.

</comment></comment></comment><comment><USER11> Australia said nah mate, all good down here.

</comment><comment><USER12> Teams works here in the SF bay area, so does the XBox win10 app. Probably a regional services outage

</comment><comment><USER13> Judging by downdetector MS had some issues from ~10pm - 11:30 Eastern. Seems to be better now.

</comment><comment><USER14> Outlook online / Teams / Azure seem OK in France.

</comment><comment><USER15> All fine for me. In Mountain View, CA.

</comment><comment><USER16> I'm not affected at all lol.

<comment><USER17> HN is weird. 5 of the 6 comments in this thread at the time of posting are all talking about whether it is or isn't down for them. This is the only one that is downvoted and it has been downvoted multiple times. It's probably due that single "lol" at the end.

<comment><USER18> It doesn't have geography to be minimally informative.

<comment><USER19> My comment does and it's even further down ;)

<comment><USER20> I didn't vote you down but the comment was a bit ambiguous. It's not clear whether "nothing here" means "no access" or "no problems".

<comment><USER19> I felt "Nothing here" was good enough vs "Same here". Guess not. Fuck those people. Thanks :)

<comment><USER21> The problem with "Nothing here" is the ambiguity - does that mean "no issues here, the service is up" or "no availability here, the service is down"?

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Nothing here. Germany</comment>


Why Medical School Should Be Free - <AUTHOR> http://www.nytimes.com/2011/05/29/opinion/29bach.html?_r=1 <comment><USER2> The article was written by two persons, who, by the descriptions of their credentials at the end of the article, have a very weak background in economics. Following the article's suggestion of "making medical education free, while charging those doctors who want to gain specialty training" still leaves open the question of how many M.D.s will want to engage in primary care, leaving unaddressed "the chronic wage gap between primary care providers and specialists." And when the article says, "For the plan to work, it will also be critical that medical schools do not start raising tuitions just because people other than their students are footing the bill," it basically announces that the plan won't work.</comment>


The Lesson of Anthem Blue Cross  - <AUTHOR> http://www.nytimes.com/2010/02/19/opinion/19fri1.html?ref=opinion

<comment><USER2> I'm crossposting my comment from a very similar Reddit thread (although that thread was more about "omg, insurance companies are teh evilz"). Hopefully I get some more meaningful discussion about it here.

\</comment><comment></comment><comment>

Insurance companies are not money piñatas. They are insurance. The premise is that you have a low probability of having a massive expense. You pool your money with others (via the insurance company) to cover it if it happens to be you who gets unlucky.

The insurance model falls apart when somebody is already sick. Then it's no longer a low probability of having the expense, it's almost guaranteed. So now insurance is the wrong financial model. Charity, or a publicly funded option is, since it becomes a moral issue (we don't let people die of stuff we can fix), rather than a financial (I pay in a bit, possibly need large payout).

That's not to say they aren't evil, and want their profits, and go out of their way to be dicks about it, but all the hubbub about existing conditions just shows that insurance is the wrong model for health care coverage.

I fully support a public option, which is effectively an insurance company that also has the moral backing of paying for blatantly unprofitable cases. It won't be perfect, and might suck in many cases, but it sure would be much better than any insurance based health care system could be.

<comment><USER3> Exactly: the incentives are wrong for everyone under an insurance model. Healthier people have an incentive to leave the risk pool and/or only keep catastrophic coverage, increasing premiums for everyone less fortunate. Insurance companies have no incentive to insure anyone who seems like a high risk, i.e. due to a pre-existing or likely-to-emerge condition. Consumers have no incentive to manage their own care expenses or make decisions for themselves, because if they have insurance they're not really paying the full costs. Insurance companies have incentives to deny care whenever possible. Hospitals and doctors have an incentive to charge uninsured people more than insurance companies so that the insurance companies can provide a value-add and because they have to make up for all the care provided to un-/underinsured people who can't pay their bills.

If you believe that a wealthy society like ours has a moral imperative to take care of its poor and sick and elderly, then the insurance model is hopelessly broken. It doesn't mean there's some perfect model out there that has perfectly aligned incentives and no moral hazard, just that this one is probably one of the worse ways to organize things.

If you don't believe that there's any such moral imperative, then that's an entirely different debate.

</comment></comment><comment><USER4> _The less healthy are staying with Anthem, where their higher medical costs are driving up premiums._

The new healthcare bill is great, except of course if you are young, healthy, and don't need insurance at all, in which case, your premiums will go up and you will be _forced_ to buy insurance or face fines.

And, because the health care laws in congress will require a maximum premium variability of 2-3x, meaning the most expensive insurance plans (for older unhealthy people) can only be 2-3 times the cost of the cheapest ones (for young, healthy people) then what I predict the insurance companies will do is dramatically increase premiums for the young to keep the upper end of premimum costs, which are currently 10x or more than the cheapest, right where they are and raise the lower levels to come in line with 1/3 of the most expensive.

Essentially, this health care bill legally requires young healthy people to buy insurance at high rates to pay the medical bills for the older people.

It's a TAX on the YOUNG to care for the OLD.

<comment><USER5> it's impossible to buy non-group health insurance for a planned pregnancy. and there's enough scary stuff that COULD happen that you wouldn't want to be pregnant without. Old people have medicare. It's young people who have any medical needs at all who are screwed by the current system.

<comment><USER2> Please refer to my post below that starts out with "Insurance companies are not money piñatas". Explain why a planned pregnancy is a candidate for an insurance payout?

(not that I don't think pregnancy should be covered, just not by an insurance company, but by a morally based public plan without the profit motive, or insurance model).

<comment><USER5> actually I think a profit-based insurance model is the problem. you cannot take care of shareholders and patients at the same time.

but since you have a profit-based model, excluding planned (or unplanned for that matter) pregnancies from coverage is the same problem as excluding pre- existing conditions. insurance companies cherry-pick the risk pool to increase profits - they only want to give insurance to people unlikely to need it.

for private insurance to provide any social value, you need a large risk pool that includes healthy and high-risk patients, and the insurance companies must be required to actually cover people who need medical care.

the healthy can't be allowed to opt out, and the insurance companies can't be allowed to decline coverage to anyone in the group.

<comment><USER2> your last line is basically a public plan like I suggest, except run by the private sector, with direct payments instead of taxes. We basically agree on the shape of the solution, if not the specific implementation.

But expecting insurance companies as they currently exist to pay for pre- existing without that kind of tradeoff is like crashing your car into a pole, then walking down to state farm and being like "ohh, I need car insurance, full coverage, and pay for my repairs. I don't expect my rates to be different because of that though".

And really, a planned pregnancy is mostly a pre-existing condition. I wonder why there aren't any supplemental policies for complications though. Something that wouldn't cover the expected stuff, but would cover real medical complications.

<comment><USER6> Pregnancy might be something that's by choice, but that practically everyone will go through. Do we really want a society where only the rich can afford to have kids?

</comment></comment></comment></comment></comment></comment><comment><USER7> No way, California and money problems.. Never saw that one coming. </sarcasm>

downvote away but you know its true.</comment>


Rate my Startup: SnapBill - Automated recurring billing - <AUTHOR> Hey guys,
We're a small team from South Africa that have finally decided our startup is ready for release (been in private beta here for a while).
* Our main focus is on creating Services, and selling them. Once you add a new service to your account, we'll automatically generate signup forms (based on custom fields you specify) and deal with all the monthly invoicing.
* We do provide standard invoicing (ala Freshbooks/co) but its not our focus at all and is purely intended for the once-off invoices recurring billing companies need every so often.
* We only support PayPal for automated payments at the moment, but more support is coming soon - promise!
I'd love to hear any thoughts or comments anyone has.
http://www.snapbill.com <comment><USER2> I am reading the homepage but don't understand why I would use this.

Sentences like this don't help: "SnapBill is an online invoicing and billing system with service provisioning capabilities." Compare with the writing here: <http://aws.amazon.com/fps/>

Your explanation here ("Our main focus is on creating Services, and selling them.") isn't really clear either. Find a good way to explain that main focus in 2 sentences, and put that on top of the page.

</comment><comment><USER3> I write this in the hope it will be taken constructively: I think you desperately need a good information architect and copywriter to redo your home page, tour, etc.

I have spent much of the past two days looking at various options for recurring billing and related automation for a start-up. It sounds like your service ought to be of interest to me, right now.

Unfortunately, I have absolutely no idea after scanning your home page and tour page what your target market is. Are you aimed at invoicing for freelancers/agencies with a few repeat clients? Monthly billing for end users of subscription web services?

You have written a lot (probably far too much) on your home page and tour page, but without enough detail about what your service _actually does_ to decide whether it's worth investigating further. For example, you mention tax, but not whether you automatically handle VAT based on location (without which you aren't going to get very far here in Europe). You mention payment collection and credit cards, but without a clear statement of your level of PCI DSS compliance and whether clients need to handle any card data on their own systems to use your service (without which you probably aren't going to get very far at all).

You aren't short of buzzwords and transparent marketing drivel, though, and there are a few silly spelling errors and the like as well. That all paints a very unprofessional picture given that you're asking clients to trust you with vital financial matters.

For what it's worth, I did spend about 15 minutes looking over your site before writing this post, partly to try to be honest but constructive in the criticism, and partly out of genuine interest. In roughly the same amount of time looking at the web site of another business this morning, I had confirmed that they offered broadly the service the start-up was looking for, identified most of the details about how the start-up's pricing plans could be implemented using their system, identified a few specific details to ask about and an e-mail address where the questions could be sent if and when the start- up was ready to explore more deeply, worked out approximately what the monthly costs would be for adopting the service, and begun exploring the customisations and APIs to see whether they could address any of those questions I mentioned before.

On a more constructive note, your site does look attractive, and I expect most of the bad impression it made on me really could be overcome quite quickly with a bit of professional help to structure the content, so that the important details come across and the general feel is more professional service and less budget store TV ad.

<comment><AUTHOR> Point taken, we are going to get a copy writer to go over the site as soon as possible.

<comment><USER2> You should be able to do this yourselves. (Good copywriters that understand your business are very very, _very_ hard to find.)

Here's a random example paragraph:

"The SnapBill billing system is a fully-featured online billing automation engine. The system is secure and easy to use.Sending invoices, quotations and statements for recurring or subscription based services has never been so simple. Add your own services to SnapBill and allow your clients to order them via a branded and secure online order centre. Accept payment from your clients through any of our supported payment collection channels."

So what did you just tell me there? "We let you easily bill people, send invoices and accept payments". That's a much better sentence, but even that you can remove because by the time we've arrived at this paragraph we know that you do online invoicing and payments. In other words: remove this entire paragraph. And most of the homepage is like that.

Another example: your first paragraph:

"SnapBill is an online invoicing and billing system with service provisioning capabilities. SnapBill is perfect for all businesses, especially those providing services requiring an automated recurring or subscription billing system and payment collection facilities."

Are you trying to say that this is aimed at Saas companies? Then just say it. No real person will understand that paragraph, at least not anyone you'd want to date. Just say something like (if I am right): "Invoicing and billing for online subscription services."

Remove redundancies and marketing speak.

As an example, "SnapBill is perfect for all businesses, especially those". Read that twice. You're basically contradicting the first part of the sentence (perfect for everyone) in the second part (perfect for some especially).

So guidelines to do your own copy-editing:

1\. Remove, remove, remove. Remove words. Remove filler. 2\. Think what you're trying to say. With every sentence and paragraph, what are you trying to say. Then say it as clearly as you possibly can. 3\. Show it to target audience and ask what questions they're trying to answer. Then answer those.

Good luck!

<comment><USER3> > (Good copywriters that understand your business are very very, very hard to > find.)

FWIW, this is why I also suggested an information architect. First you need to figure out what the relevant information is, and to separate introductory material for the home page and tour from finer details for prospects who need to know more about specific areas. Then you need to present that information clearly and in a suitably professional voice. These are different goals, though of course they are related.

<comment><USER2> Much appreciated (since I am an information architect) :)

To do this yourself, find your target audience (some of them in this thread), and call them on Skype. Put a screensharing app. Have them go over your site and speak-out-loud, focusing on what the info is that they want to find. Don't talk a lot yourself, the only words you should be saying are "why do you say that" and "what are you thinking/looking for now?". Make HEAPS of notes. Then have them go over your competitors sites. Make HEAPS of notes. After each call (don't wait, don't go for lunch) immediately have a long discussion with your team. Make a long list of things they are trying to answer.

Do this with 2, 3 people in your target audience (then send them an Amazon gift certificate of 100$), and you should have enough information to make this work.

Better than hiring a consultant :)

</comment></comment></comment></comment></comment><comment><AUTHOR> Clickable: <http://www.snapbill.com>

</comment><comment><USER4> Too much on the home page. Pick the top four features which you feel will appeal to your target market and feature those solely on the front page, with a 'more detail' type link so those who are interested can find out more.

You need more than a copywriter, you also need a more modern design. It's rather dated in a funny sort of way. Take a look at some of your rivals to get an idea of what modern looks like. (freshbooks.com)?

Modern web application sites focus intensively on helping the user make up their mind within seconds as to whether to continue investigating your service, which is why the Take a Tour button, and Try it Now options are so prominent on most web app sites.

It's not that you're doing it wrong, it's just that you're giving yourself an uphill battle to attract and sign potential customers.

Hope that helps for a starter. :)

</comment><comment><USER5> Good luck guys, eager to see a SA startup make it big (well post Thawte at least)

</comment><comment><USER6> Small thing: I think having the name be the first item in the title is much better as far as tab navigation:

"SnapBill - Online Invoicing and Billing System" as opposed to the current "Online Invoicing and Billing System - SnapBill"

</comment><comment><USER7> One more piece of UI advice, the "Tour, Packages & Pricing Sign up!" menu is not visible enough. I find myself constantly looking over it while on pages other than the home page.

S

</comment><comment><USER8> I would also look into doing an automatic video about your product and do a quick demo reel. (no sound)

</comment><comment><USER7> Great stuff guys! well done, looking forward to seeing more about SnapBill in the media

<comment><AUTHOR> We've got a lot in the pipeline :D

</comment></comment><comment><USER9> Rock on Jaco. Great to see some Safrican representation on here with great products.

</comment><comment><USER10> Amandla

<comment><AUTHOR> Awethu!

<comment><USER11> <http://en.wikipedia.org/wiki/Amandla_(power)>

(for the interested)</comment></comment></comment>


How fair do you think time estimate within 30% is? Plus/minus 20% if over 3 days - <AUTHOR> Today our boss came up with a "reorganization" to "improve efficiency". He expects us to estimate time needed with max 30% deviation, and max 20% deviation if it's over 3 days. Software projects.
* * *
Background (SPOILERS)
boss is an old programmer, an American client is outsourcing its work to us. The work is two repos: a) IE-compatible Javascript without Babel or Node (ES5), b) Python 2.7 with no unit tests, no dev database, lots of "except: pass". Both repos are centered around a god class, functions often 100,200,300+ lines , no documentation, very few comments, superficial but nitpicky code reviews, one or maybe two questions answered per day. <comment><USER2> It's not exactly fair.. and also not likely without extensive time spent doing the estimation, like sure - you can be more precise, but the more precise you need to be, the longer it takes you to frame the estimate.

Two books help with methods of doing this.

Rapid Development: Taming Wild Software Schedules: [https://www.amazon.com/Rapid-Development-Taming-Software- Sch...](https://www.amazon.com/Rapid-Development-Taming-Software- Schedules/dp/1556159005)

Software Estimation: Demystifying the Black Art [https://www.amazon.com/Software-Estimation-Demystifying- Deve...](https://www.amazon.com/Software-Estimation-Demystifying-Developer- Practices/dp/0735605351)

This likely does mean you'll need to be allowed to deploy automated test cases, develop documentation and the entire nine yards, because it's going to be far harder to hit any reasonable deadline if you don't have a known development pipeline.

You'll need to reduce your uncertainty as much as you can to even have a chance - and even then, things will still blindside you and double (or more) the actual vs. the original estimate.

<comment><AUTHOR> We talked to him, and no. We won't be allowed.

<comment><USER2> Then take it up with his boss, fight him on it, or look for work elsewhere. It's unreasonable that you'd be adversely graded on something that industry has historically struggled with.

</comment></comment></comment><comment><USER3> I'd say that depends on how much effort he's willing to let you put into the estimates. It's often possible to de-risk estimates to that degree, but that basically requires putting in a significant chunk of the work up front to break the problem down and research all the unknowns.

If your boss wants that level of certainty, you should ask him to teach you how to achieve it and see how he thinks such a thing is possible. I'm not suggesting he's not delusional. Just that if you pick his brain and then ask how to deal with the types of uncertainty you're concerned about, you're more likely to get to a place where you and the boss are aligned. (This assumes your boss is an even vaguely reasonable human being, tho. YMMV.)

<comment><AUTHOR> FYI I politely asked him, and he snapped ~ "foolhardy" (not directly translatable).

</comment></comment><comment><USER4> How are the estimates used? Are they converted into _quotes_ that are stated to the client for pieces of work? What happens if you give an estimate, then 1 week later you learn new information, then have a new more accurate estimate? How will your boss respond to the new estimate? It is possible your boss is saying estimate but really meaning "quote".

Who owns the codebase? Does it belong to the client or to your boss? Is it in anyone's interest that the quality of the code be improved over time?

There is a conflict between efficiency and accuracy of estimates. If accuracy is a goal, you can improve accuracy at the cost of efficiency by giving very high estimates, then working slowly if the task turns out to be relatively simple.

The codebase sounds like a bit of a tar pit. You may be interested in reading Feathers' book "working effectively with legacy code". This describes patterns and tactics to use to get automated regression tests in place around applications, so that you can start to refactor confidently and add unit tests. You need time and support to work on these if the existing code is bad. It can be very slow going and hard work. If you cannot convince your employer to support some changes to start gradually improving code quality over time, you should look at options for alternative employment.

<comment><AUTHOR> I do own the book.

Only the issue here is, strictly Jira-oriented programming. You only ever modify lines that fall into your ticket. You don't lint, don't remove trailing spaces, insert missing semicolons. You DO.NOT.CLEAN.UP. It's not enough to have IE-compatible code that follows naming conventions, README.md and .eslitrc (used very sparingly). You must use arbitrarily chosen existing functions, and on code review you're given very vague suggestions like "use the function we have for that", or "eh". Files commonly over 3000, 5000 lines.

</comment></comment><comment><USER5> It's pretty easy to demonstrate that when most people are asked to do an estimate with 80% accuracy, they do estimates at 30% accuracy. There are studies on this, but make 5 people in a room do it and it's a lot easier to believe. People are really bad at estimating.

One trick is to make them really small chunks of less than 4 hours. When you add up the chunks they tend to average out quite accurately.

Estimations are quite a pain though. I've spent days doing and negotiating estimations of things that take less than a day to do. And one downside is Parkinson's Law - if you overestimate, it slows down development, and if you underestimate, it's far worse.

While you can make your estimations more accurate, you can't do it without putting a heck lot of effort and manpower... which defeats the purpose of doing it for efficiency.

<comment><AUTHOR> That's true as long as the people are not being bullied. In my case, I estimated something I barely worked on in an area of code I barely knew to take 2 weeks. When the boss left, the remaining 3 people kept telling me to estimate it to 5 days "because you know what boss thinks about 2 weeks". Then told me that 5 days is just an initial estimate and it can be later extended. I responded that likewise, 2 weeks can be scaled down and I'll be happy to be proven wrong. No response from them. I kept repeating the question.

</comment></comment><comment><USER6> Woof. This is how you continue to expand technical debt until it destroys the project. I'm hoping it is a smaller time window for projection, so you can ... never mind. I see there are no tests, dev environments, docs. Just make sure the check clears while you fly this pig all the way to the crash site.

(We went from the same sad state to having things more or less corrected. Every bit of code we touched, we added sanity testing, automation, etc. It took about two years, however, with 10-20% of the time fixing code/process stink)

<comment><AUTHOR> Over the course of the year I worked here, boss went from "yeah we'll eventually get unit tests, they will finally realize..." to downplaying my effort and difficulties, playing the authority card (programmer for 20 years), veiled threats by referring to my personal feedback report, convincing me that not having a single pull request reverted is not an achievement because everyone has one every now and then... not actually true, because early in my work here he called me twice after work about the reverts, only to find out later that it was somebody else's PR. I think he's a deeply manipulative individual and I'm jumping out of this company without a parachute (no another secured job), I have good reasons to afraid he would make me commit to these deadlines, blame for not achieving them, and fire me with a bad opinion. I need to make the first move.

I wanted an outside perspective to see if I'm perhaps overreacting.

I do believe this code is really fixable with some months of effort, but management will have none of it. Refactoring provides no perceived shareholder value for them. And I did try to clean it up, and tried to build support in our team for doing so. It's mostly political/organizational roadblocks. They want code monkeys. Code cleanups are viewed with deep suspicion even by code reviewers.

</comment></comment><comment><USER7> Yeah good luck with that.

Problem is, time is just _one_ variable. It's possible to hit every estimate spot-on, if you allow the other variables to change wildly (number of bugs, completeness of features etc). It's kind of like in quantum mechanics, where by knowing one property of a particle, you have to let go of all the others (maybe).

Anyway, I blogged about this a lot here, if it is any use: [https://riskfirst.org/Estimates](https://riskfirst.org/Estimates)

It seems wrong-headed to be insisting on this, so maybe education is the answer?

</comment><comment><USER8> Id read up on the agile methodologies and not so much the processes but why they exist. Estimates within 30% is waterfall and may not be the best approach for web apps. It might be better for the client and you to use an agile approach. Or if not at least an open dialog where you can say oh X will take longer because of this technical issue, but how about we also do Y and Z, which are things you can do easily the add a lot of value etc. coding to strict estimates all the time sounds like a horrible situation.

<comment><AUTHOR> Thanks, but we do have sprints and bi-weekly progress meetings and are ostensibly working using agile. I have my opinion on my boss and the whole situation, but I'm under a heavy reality distortion field and wanted an outsider perspective. The boss basically treats any estimate as a commit. And yes I did point out (not in front of boss) that this smells like Waterfall. Agile for requirements, waterfall for costs and deadlines.

<comment><USER8> The only thing I can come up with, if you want to stay in the job, is clandestine overestimation. Anything where you are an expert but no one else is, add some padding, which makes the overall estimate for the job generous.

<comment><AUTHOR> Yup, tried that until boss yelled at me. You can say any estimate that's low enough, or you'll get a stern "that's too long", or even "bullshit". After boss left my 3 team members piled on me to make the estimate 5 days instead of my 2 weeks, saying it can be later extended. I said then why not make it 2 weeks and shorten layer. No response.

The task _could_ take 5 days but it's a lottery. A bugfix in a convoluted system.

I would go with the 5 days, but I don't trust the boss. He never takes responsibility for any setback.</comment></comment></comment></comment>