Privacy Icons - <AUTHOR> http://www.azarask.in/blog/post/privacy-icons/

<comment><USER2> I think any "bad" actors will simply display the easier-to-achieve privacy icons and not display poor privacy icons (this is contrary to the authors opinion that bad actors will decide to display none at all). The issue is consumers will start to see "black circle with green ring" and associate it with good privacy, whether or not the site displayed all 5 or only 1 or 2 of them.

To summarize, it is worse for a consumer to be misled about a website's privacy policy than to not display one at all.

<comment><USER3> A lot of scummy sites use static "secure site" logos which have no backing in order to deceive the user into believing the site has some sort of security in place. These mimic the geotrust and hacker safe logos typically but I've seen all kinds. Bad actors have no problem misleading consumers by duplicating common "indicators" of positive reputation and are already actively doing so. A new set of privacy icons would just as easily and quickly be deployed to deceive consumers further.

</comment></comment><comment><USER4> Ever tried to resize them to 32x32 pix? I bet you can't even read them @ 64x64 pixels.

The idea is nice tho.

</comment><comment><USER5> I'm wary of this. Are the bad guys _really_ going to be honest about what icons they display? (edit: I realize I'm repeating what's written in the article)

</comment><comment><USER6> You know how you sometimes run across a set of icons which immediately spark universal recognition? Ones which are visible at any size, that are language and culture independent? For me, these don't come close.

How I'd make things clearer is mostly by eliminating the "person in document" graphic and focusing on the rest. So the "your data is never sold" icon, it's a dollar sign in a circle that has a diagonal slash trough it... like the creative commons non-commercial icon. For "your data may be sold" there is no slash. Similar for law enforcement. The others I don't have a lot of ideas about, but I would think that "AD" (for example) doesn't translate well into other languages. Would Japanese users recognize what that means?

</comment><comment><USER7> I like the idea behind the icons, however these tend to be judgement calls, or at least prone to being "optimistically" interpreted by interested parties.

<comment><USER8> I honestly don't see how "length of time data is stored", "whether or not data is sold to third parties", "whether or not data is shared with advertisers", and "whether or not data is shared with law enforcement when not legally required" leaves room for a judgement call.

At least, not one that would stand up in a courtroom.

<comment><USER7> Well there is a lot of wiggle room in those definitions, for instance

Length of data store: under what circumstances is what data stored, performance data, explict user data, all data, some subset of personal information, access logs, and for how long?

whether or not data is sold to third parties/whether or not data is shared with advertisers: notice the "Besides the information exposed via on-page advertisement" exemption, thats a very broad avenue of information sharing, with things such as Google analytics, which if you used, under this exemption would be perfectly fine to say "you don't share data with 3rd parties". However, via such a service you would be sharing a very large amount of information indeed.

whether or not data is shared with law enforcement when not legally required: Nearly impossible to verify, and even if it was verifiable, very hard to stop, i mean look at the AT&T wiretapping situation for instance.

<comment><USER8> > _Length of data store: under what circumstances is what data stored, > performance data, explict user data, all data, some subset of personal > information, access logs, and for how long?_

Note that everything in the article is about personal information. It's an obvious question to say "Do you store personal information for more than _X_ months?". It's also very straightforward to say that "If you say you delete all personal information after _X_ months, but store some subset of personal information indefinitely, you are _lying_."

> _whether or not data is shared with law enforcement when not legally > required: Nearly impossible to verify, and even if it was verifiable, very > hard to stop,_

So what? It's "very hard to stop" _any_ privacy violation. Google could turn around and sell every single bit of data they've gathered about you, and _there is nothing you can do to stop them_. The whole point of privacy laws is to provide a deterrent to such activity and to provide recourse for those who have been wronged by it.

Similar to how the law doesn't stop burglary from happening, instead it provides a deterrent to burglary and an avenue of recourse for those who have been burgled.

Being "very hard to stop" isn't relevant.

<comment><USER7> > It's an obvious question to say "Do you store personal information for more > than X months?

still the question is, what exactly qualifies as "personal information", many seemingly irrelevant things can be used to identify you, login ip addresses, session ids, login frequency, Its a term with holes the size of Montana.

> Being "very hard to stop" isn't relevant.

I will concede this point, but uncovering cooperation can be a near impossibility

<comment><USER8> > _still the question is, what exactly qualifies as "personal information", > many seemingly irrelevant things can be used to identify you, login ip > addresses, session ids, login frequency, Its a term with holes the size of > Montana._

"Personally identifiable information" is not some nebulous term that means whatever the writer wants it to mean, it has a pretty strict legal meaning.

"Information which can be used to distinguish or trace an individual's identity, such as their name, social security number, biometric records, etc. alone, _or when combined with other personal or identifying information which is linked or linkable to a specific individual_ ".

<comment><USER7> >when combined with other personal or identifying information which is linked or linkable to a specific individual

Take a look into data de-anonymization techniques, this can encompass basically any stored information at all. This is not at all a clear issue.

(pdf warnings)

<http://www.cs.utexas.edu/~shmat/shmat_oak08netflix.pdf>

<http://iseclab.org/papers/sonda-tr.pdf>

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> The icons aren't loading for me. Is there a mirror?

</comment><comment><USER10> I was disappointed by the lack of an icon to represent "data is never shared with law enforcement."

<comment><USER11> In America law enforcement can get a court to issue a warrant if they can prove just cause. You could refuse to comply with the warrant, but you'd be jailed.

Besides, I want police using the Internet as an investigative medium. I just want them to get a warrant. The real problem we have these days is when companies roll over for the government and give them whatever data they want without just cause.</comment></comment>


Google selling glass for one day - saiko-chriskun http://www.theverge.com/2014/4/14/5615058/google-glass-update-improves-battery-removes-video-calls

<comment><AUTHOR> I'm in.</comment>


Gridless: a responsive HTML5 and CSS3 boilerplate - <AUTHOR> http://thatcoolguy.github.com/gridless-boilerplate/

<comment><USER2> I have this nagging suspicion that this whole "responsive HTML" movement is driven largely by a desire for a layout that works on (a) an average desktop screen and (b) on an iPhone / smartphone. And so instead of designing two separate sites, let's design something that looks good on (a) and (b), and also has an intermediate state that we pass through when resizing the window between (a) to (b). Nobody would actually care for these intermediate states (because, frankly, who does routinely browse on a desktop at 500px in width?), but since we _can_ generalize, let's do it. And also let's call it some fancy name and put some theory behind it.

Point being - I don't see a point in responsive layouts.

There are two extremes - the desktops and the small-screen mobile devices. These cover 99.9% of all users. Designing an uniform solution for both is not too alike to building a File I/O framework to hide the differences between reading from the local file and one on the FTP server. Sure it is nice, but why? It just conceals the important differences and creates whole bunch of new problems.

<comment><USER3> I absolutely do browse at about 500px width on workstation (with 30" 2560x1600 displays).

I typically resize my browser window when reading this site, for example. For reading text, a fairly narrow column is easier to read (and easier to stack next to a bunch of work-related windows too).

I just measured how narrow HN gets and it is 535px (Safari, typical font settings).

Even if we were to stipulate that I am a weirdo and that most people using a PC leave the browser wide, I still don't think you are correct on the numbers. Even just considering smartphones and PCs, we really do already have a huge variety of screen resolutions, already. Consider that 320, 480, 640, 960 are the possible pixel widths of just the last two models of iPhone. Then throw all the other smartphones with different screen technologies and slightly different screen sizes, and you get just about every meaningful increment from 320 up to 960, and now you are in laptop PC territoty.

Throw in the upcoming iPad clones, plus (I hope) a new crop of decent 7" tablets, and I don't think your 99.9% estimate is even close (I'd hazard a guess of something like 75% and decreasing, but who knows).

So, while I don't personally make websites, I do use a lot of them (on screens ranging from 3.5" to 30"), and I really appreciate the responsive HTML movement as a customer.

</comment></comment><comment><USER4> Looks good, I've got few questions for you:

\- Why put respond.js in the footer? (H5BP puts it up in the head with the call to Modernizr)

\- Why self-close your meta and link tags if you're using HTML5?

\- Why doesn't the image in the demo resize as you resize the window? (img { max-width: 100%; } fixes that)

<comment><AUTHOR> 1\. Respond.js is not in the footer, it is inside the <head> tag. See here: [https://github.com/thatcoolguy/gridless- boilerplate/blob/mas...](https://github.com/thatcoolguy/gridless- boilerplate/blob/master/index.html) 2\. HTML5's syntax is not very strict, but I prefer closing void elements because I think it improves readability. 3\. I chose not to add any responsive image style by default because of IE problems and Windows' rendering. I'm thinking of adding that soon.

<comment><USER4> ahh, my bad on #1 - it's early :)

The source formatting kinda threw me off with the entire head being tabbed and the empty body, maybe add a little dummy HTML inside the body like the H5BP?

</comment></comment></comment><comment><USER5> Interestingly, the github page that the marketing page is hosted on, is quite responsive.

Just resized it to all different sizes and it still looks good.

Even the code snippets fold gracefully.

</comment><comment><USER6> To be honest, if compass doesn't have it I just dont care at the moment.

<comment><AUTHOR> I don't really see the need for a Compass version right now, but you can try to port it anytime. It'll be easy, since Gridless doesn't have any pre-made grid systems or classes.

</comment></comment><comment><USER7> I must ask, why the name "Gridless"? Surely HTML/CSS frameworks and grid systems are completely different things? The name almost seems to suggest that the use of a grid is a bad thing. Just the way I perceived it :)

<comment><USER8> _The name almost seems to suggest that the use of a grid is a bad thing._

I checked out the demo, expecting to see some nice use of grid layouts but without the dreaded "silly classes."

But no. I see some OK-looking forms and tables in a fairly linear structure.

Indeed, true the name, it _is_ gridless.

Do you need a framework for that?

"Beautiful typography with a vertical rhythm."

Even granting "eye of the beholder" and all that) , there's actually not much rhythm going on here.

</comment></comment><comment><USER9> Awesome! I have been thinking about making something like this, but it looks like you did a better job than I would have. Responsive design is an idea who's time has come.

<comment><AUTHOR> Thanks :) I really think responsive web design and one web is the future of web design. There are some situations where a specific mobile website will be needed, but in the (near) future these will be very rare IMHO. If you have any cool ideas let me know with a pull request or something.

</comment></comment><comment><USER10> On a slightly unrelated note, I think the term 'responsive' is unnecessarily overloaded. I thought there were some performance problems with the normal HTML5 boilerplate !

Could 'screen adaptive' or 'multi-screen' be a better name ?

</comment><comment><USER11> Loved the test page. Good work!

<comment><AUTHOR> Thank you! It's still a work in progress and I'll be adding more information on it gradually.</comment></comment>


You're going to kill someome - <AUTHOR> http://albertmcwilliams.com/post/54015994028/youre-going-to-kill-someone

<comment><USER2> If this were true given the ratio of drivers of cars to cyclists there shouldn't be any cyclists left. So "you're going to kill someone" is simply not true.

I'm both a driver and a cyclist. If there is anything that will help cyclists then it's not a bunch of yelling and baseless scaremongering but a requirement that drivers put some time in on a bicylce as part of their driving examination, in traffic. That way they get to appreciate from a first person perspective what it is like to be totally unprotected while tons of steel are zooming around you.

As for cycling in the United States: Don't. The country just simply does not have the infrastructure to deal with the very few cyclists there are and the general mindset of drivers there places cyclists somewhere along the line of a target to hit (or a deer to avoid but which it is fine to squash otherwise).

One thing that would help America instantly would be to have a nationwide law that states that if you hit/injure/kill a cyclist you are automatically in the wrong, no matter what the situation. That would have the same effect on drivers as kryptonite has on superman.</comment>


C++ and the Culture of Complexity - <AUTHOR> http://blog.greaterthanzero.com/post/58482859780/c-and-the-culture-of-complexity <comment><USER4> A lot of the nominal complexity of C++ is the result of the very precise control it offers over software behavior. In many programming languages this level of control is not even expressible. That extra level of control only seems like unnecessary complexity until you are designing software systems that require this level of control. At a minimum, precise control of memory management is absolutely essential for things like servers and database engines if performance matters at all.

That the author thinks C++ is competing with Go betrays a narrow perspective. There are many important things you can do in C++ that are not possible in Go, in part because of the features that make C++ "complex" that simpler languages do not have. As an obvious example, the renaissance of C++ for high- performance server systems is based in part on the fact that garbage collectors are a major drag on performance for these kinds of codes.

Which is not to say that C++ is not excessively complex, just that the author seems to lack an understanding of why some of that complexity is essential functionality.

<comment><USER5> Personally I think the notion that C++ offers "precise control" as you call it is overrated. For instance flexible memory allocation is touted as an advantage, but in practice this is limited by the fact that there is only one global implementation of new the operator.

Over the long term I think Go is going to offer a much more sane environment for implementing high performance servers.

<comment><USER6> C++ does allow overriding the new operator, actually.

It also allows for running _just_ the constructor in an area of already- allocated memory, if you're particularly crazy.

With that said it's hard to argue that Go makes concurrency easier at this point, which can certainly make it more useful for many of the types of problems programmers are seeing today.

<comment><USER5> I realize this, but you can't provide multiple global implementations of new.

It is difficult to implement multiple allocation strategies in the same application. In another time, I actually did quite a bit of work in this area: [http://accu.org/index.php/articles/1308](http://accu.org/index.php/articles/1308)

<comment><USER7> You can just provide an allocate() static method and destroy() method on your object that use placement new and call the destructor manually. Or don't and just use placement new/manual destructor calling yourself.

Are you trying to argue that C++ programs can't use custom allocators because of language restrictions? That's demonstrably false; Gecko and WebKit, just to name a couple of C++ codebases I'm relatively familiar with, use custom allocators everywhere.

<comment><USER5> Fair enough. My point was poorly made, and truthfully it has been along time since I've done significant C++ work. But it is difficult for the users of libraries like the STL to mix and match their allocation strategies, so for all practical purposes, most applications end up using the default implementation, or a single override of global new.

<comment><USER8> Actually if you may create a policy for a particular type by implementing operator new at the class level. I think you're not well informed, because C++ is the language that gives you the most flexibility to design memory management schemes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> C++, Java and JavaScript each have their own different kinds of complexities.

The complexities of C++ almost always arise out of the extremely high degree of power and flexibility it offers programmers.

The complexities of Java end up having to do with hyper-"architected" class libraries, rife with excessively-used design patterns to the point of being incomprehensible.

JavaScript's complexity arises due to core functionality that's missing (such as proper class-based OO, namespaces, and proper support for modularity), or core functionality that's limited in practice (like it's prototype-based OO), or core functionality that's unjustifiably broken (its comparison operators, semicolon insertion, its scoping, its type system, its awful standard library, among others).

Out of those three, JavaScript's complexities are by far the worse. The flaws are outright stupid to being with, and there's nothing that can really be done to avoid them in many cases. At least Java programmers can choose not to create and use bloated class hierarchies, for instance. And at least C++'s complexity offers superbly powerful features and excellent performance, and at least it's understandable how and why this complexity thus arises.

<comment><USER10> C++'s complexity does not arise from its power. With the exception of templates, C is just as powerful but far more orthogonal and simple.

E.g. the difference between references and pointers. E.g. the phenomenally baroque template syntax. E.g. phenomenally complex rules for multiple inheritance. Slicing problem. Syntax so hard to parse only a couple do it right. Lots of features that just don't carry their weight (operator overloading).

<comment><USER7> > Lots of features that just don't carry their weight (operator overloading).

Operator overloading is crucial for things like graphics and bignums—basically, heavy math operations over anything that isn't a primitive.

<comment><USER10> Its a trick pony. I don't think that use is enough to carry its weight. Also, abusing it immediately in the streams library just encouraged people to find elaborate nonsensical uses for it.

<comment><USER6> Operator overloading is very useful in the context of generic code though (through templates).

I've programmed C++ for probably more than a decade now and I've been bitten by many of its features at some point, but operator overloading would rank right near the bottom of my burn list.

It _can_ be abused, that's for sure, but so can many C features.

</comment></comment></comment></comment></comment><comment><USER11> Being a recovering C++ programmer who wrote some very clever code while younger and very dumb code while older, if you think Java gets out of your way perhaps you should try Scala or Clojure. Talk about getting out of the way, these LAn guages are something of a wonderment. Every day I get to code in them is a good day. It's true, you won't have the "power" of C++ but if you need that there's C.

<comment><AUTHOR> Author of blog post here: I haven't found the time to do much with Scala or Clojure, but my impression so far agrees with what you say. Thanks for reminding me: I need to seriously try out Scala _and_ Clojure!

</comment></comment><comment><USER12> To be fair, the c++ programmer can also use reference semantics via pointers. Granted, garbage collection is not built into the language, but if desired, we can always write java-style code by using pointers for everything and using the Boehm collector. I don't know why we don't do this more often, most c++ codebases seem to have large sections that would benefit from such a style.

But when we want to use value semantics, for whatever reason, the more complicated value copy is, to some extent, just intrinsically complicated. In java, Object.clone basically has all of the same problems -- you sort of know what you'd like it to do for any given object in any given context, but you've got to read code to figure out what is actually going to happen.

<comment><USER7> > I don't know why we don't do this more often, most c++ codebases seem to > have large sections that would benefit from such a style.

Because you will sacrifice performance over Java's GC. For maximum performance you really want precise garbage collection on both stack and heap, with generational concurrent operation and a two space copying collector in the nursery. Boehm can't provide this, because the language is not designed for GC.

<comment><USER13> > you really want precise garbage collection on both stack and heap

This might be a dumb question but what run-times have a garbage collected stack? I Googled around but did not really find anything.

<comment><USER7> I don't mean a garbage collected stack per se (though since you asked, SML/NJ has this, as do several Schemes). What I mean is that precise stack maps or register tagging is used so that the roots can precisely be found on the stack.

</comment></comment></comment></comment><comment><USER14> Given what we know today, yes a new language is warranted.

The reason I've stuck with C/C++ is because everything I've ever written still works. Meanwhile my friends are playing with new languages every year (and all the books, classes, and conferences to go along with them). All the new syntax's seemed driven by corporations vying for mindshare ( _money_ ), not the betterment of our industry.

Give us a _real_ alternative that is community driven and standardized. It needs to compile everywhere, have the option of a great IDE, and have libraries that make sense. We don't need another cute or toy language (JavaScript's 10 day incubation that I'm stuck living with now). Until then ... C++ is what we have.

<comment><USER9> Rust has the most potential at being a true successor to C++. But it's not very usable at the moment (it suffers from far too much change within the language and standard libraries), and it will still take a lot of work before it is a production-grade language.

<comment><AUTHOR> Author of blog post here: Interesting that you say that. I came really close to saying in the blog post that Rust could be the alternative to C++ that I am looking for. But then I decided that I know way too little about Rust at this point to make that statement.

<comment><USER6> The one thing with Rust is that it seems to me to also offer so much fine control on memory ownership that it would start to develop its own set of "gotcha"s.

With that said I'm looking forward to seeing progress on the language as I think we've been needing a systems programming language where you can express ownership semantics as part of the language itself, and have the compiler check those for you.

</comment></comment></comment></comment><comment><USER15> Totally agree. C++11 was a huge disappointment to me - rather than taking to opportunity to make changes that would help attract new C++ programmers, the committee decided to allow the "C++ nerds" to pile on even more complexity to their already overwrought libraries ( _cough_ boost _cough_ ).

<comment><USER9> C++ is a tool for power users, not a popularity contest.

Changes to the language should not be done just to attract more users. This is especially true if these new users would be today's PHP, JavaScript and Ruby users. The C++ community is much better off without these kinds of programmers.

It's much better for people to use C++ when they realize that they need the powerful functionality it offers, rather than dumbing down C++ in a way that'll make it attractive to less-skilled developers.

<comment><USER16> "It's much better for people to use C++ when they realize that they need the powerful functionality it offers"

Relevant anecdote: I know a number of C++ programmers who said they would use Haskell / Python / etc. to "prototype" a system, then switch to C++ when they needed what C++ has to offer. None of them made the switch back to C++ and their "prototypes" became finished products.

<comment><USER17> > None of them made the switch back to C++ and their "prototypes" became > finished products.

This is because the _vast_ majority of the time people's claims of performance requirements are complete BS. If you're writing true system software (an OS kernel, a database, an MQ system, etc) then shaving microseconds _is_ going to matter because 10s, 100s, 1000s or even more applications built atop or using your code will be leveraging the minor gains you are creating. If you're building "Misc App X" then it's probably not going to matter.

<comment><AUTHOR> Author of blog post here: That has been my experience as well. People tend to overestimate their performance requirements. Then, in the name of improving performance, they do all kinds of things that bring down their productivity and increase the complexity of their code (choosing C++ as the programming language is one of those things), but they never verify if any of those things really made enough of a difference, if any, to create value.

Another thing I noticed is that of those people who do have serious performance requirements (OS kernel etc.), many choose C over C++. We all know what the most famous example is. I have no experience in this area. I wonder if there is any data on the use of C vs. C++ vs. other languages like Go in that realm.

</comment></comment></comment></comment></comment><comment><USER18> That quote by Bjarne Stroustrup: "I--and my colleagues--needed a language that could express program organization as could be done in Simula...but also write efficient low-level code, as could be done in C."

in _Masterminds of Programming_ , p.2 (Interview with Bjarne Stroustrup) O'Reilly Media, Inc. (2009)

A truly great read...

<comment><AUTHOR> Author of blog post here: Thanks! I'll add that to the blog post.

</comment></comment><comment><USER19> This is one of those articles that really resonated with me although I feel a little uncomfortable admitting it. I think C++ is a great language but what Becker says rings true to me. Of course I've always been of the "safe-subset" mindset, e.g. the project and team should dictate how fancy your C++ should be allowed to get.

</comment><comment><USER20> I'd like to see a language with the power of C++ without some of its complexity. As noted elsewhere in the thread [1], there are a lot of features that just aren't necessary for the combination of performance and expressiveness C++ offers; on the other hand, while C is simple and can usually offer equal or better performance, its lack of templates hurts its expressiveness badly.

But Java or JavaScript? If your performance needs are satisfied by those languages, great, but you're not the target audience - not today, anyway, now that those languages exist and are reasonably fast. But if not, good luck trying to beat the JVM into doing what you want. [2]

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

[2] [http://marc.info/?l=git&m=124111702609723](http://marc.info/?l=git&m=124111702609723)

<comment><USER21> If C++ was originally "C with classes," has anyone invented a "C with templates"? Might not be a bad idea.

<comment><USER22> I got the impression that's what the Clay language [1] was aiming for, but progress on it seems to have stopped around a year ago.

[1] [http://claylabs.com/clay/](http://claylabs.com/clay/)

</comment></comment></comment><comment><USER23> C++ is hard and complicated, but it's very useful if you're strict with it. I agree with the authors post though, there's a lot of inherent complexity that's non-trivial to solve and often leads developers to try and be clever rather than building strong software.

</comment><comment><USER24> The problem with C++ isn't complexity but _unnecessary_ complexity. As the author points out this is a cultural and not an 'inherent' problem (people who claim that a language like C++ _must_ be complex are simply wrong).

C++ did not start out as complex language, though. Quite the contrary. Just take a look at early C++ books. The turning point happened in 1995 when Stroustrup switched the C++ paradigm from object-oriented to the functional inspired 'STL paradigm' (remember 'multi-paradigm'?). Afterwards a clique of 'Boosters' (nomen est omen) took over the language development and bloated C++ to the current mess. In evolutionary terms: C++, a versatile mammal that developed into a dinosaur.

</comment><comment><USER25> > Trying to impress people with your code rather than with your software is a > sign of immaturity and bad engineering.

That depends on what you think is impressive. A project that has clear and simple code is impressive, in any way needlessly complex and difficult to understand code is not.

<comment><AUTHOR> Author of blog post here: Thanks, good point! What I meant was, "Trying to impress with the _complexity_ of your code..." I'll change that in the blog post.

</comment></comment><comment><USER16> "Few people would disagree that assignment between variables is part of the design of a language"

Perhaps so, but those that do disagree might be worth listening to:

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

</comment><comment><USER26> the wow effect in c++ 'yeah i can do this cool stuff i read about in another language also in in c++. i just have to use this fancy lib and its really cool what you can reach with templates.' i foud always stunning. anyway it is no good for efficiency - but having worked with c++ for some years makes you vety efficient in more simple languages. i ser following drawbacks of c++ - <USER3> default is very often not what you should do. this is the price for backwards compatibility this makes it hard for the novice but you get used to. - <USER3> incredible long build times esp when working with modern libs. how many hours did i spend waiting for the compiler and how many for optimizing ny precompiled headers. this is really a produxtivity killer. its has also historical reasons but i dont understand why no proper module system gets depeloped - the lack of support for runtime errors. for 7 years i have not seen a crashing java program without giving me a hint where it crashed. and actually i have seen far less total crashes. in c++ you do one small thing wrong and the whole program ends with an abnormal program termination and you dont have any clue what happened.

</comment><comment><USER26> the wow effect in c++ 'yeah i can do this cool stuff i read about in another language also in in c++. i just have to use this fancy lib and its really cool what you can reach with templates.' i foud always stunning. anyway it is no good for efficiency - but having worked with c++ for some years makes you vety efficient in more simple languages.

i ser following drawbacks of c++ \- the default is very often not what you should do. this is the price for backwards compatibility this makes it hard for the novice but you get used to. \- the incredible long build times esp when working with modern libs. how many hours did i spend waiting for the compiler and how many for optimizing ny precompiled headers. this is really a produxtivity killer. its has also historical reasons but i dont understand why no proper module system gets depeloped \- the lack of support for runtime errors. for 7 years i have not seen a crashing java program without giving me a hint where it crashed. and actually i have seen far less total crashes. in c++ you do one small thing wrong and the whole program ends with an abnormal program termination and you dont have any clue what happened.</comment>


Presefy PRO Launched - <AUTHOR> http://blog.presefy.com/presefy-pro-launched/

<comment><USER2> Promo Code: PRO13 will get you -50% discount on your first membership.</comment>


Alternatives to Google adwords? - <AUTHOR>

My business makes a good deal of its sales using google adwords, however it appears I've maxed out profitability with that ad provider and I'm curious as to whether there's any thing similar I could use to generate visits to my site with a pay per click basis.<p>I'ld want to target largely the UK market.. <comment><USER2> Hi Noel,

You can try BuySellAds, which is most probably the most popular alternative to Google Adwords. Then there are some other alternatives. Refer to the following for more information.

[http://www.ppchero.com/10-alternatives-to-google- adword/](http://www.ppchero.com/10-alternatives-to-google-adword/)

Hope the above helps.

</comment><comment><USER3> Well there are a few bigger ones that can drive traffic

Bing Ads : [https://bingads.microsoft.com/](https://bingads.microsoft.com/)

Facebook ads : [https://www.facebook.com/advertising](https://www.facebook.com/advertising)

Yahoo Ads; [http://advertising.yahoo.com](http://advertising.yahoo.com)

It really depends on what you are targetting, ie. you want to target based on location, interests etc. Also you should start to expand your keywords on AdWords, try split tests of different texts and see if you can bring your CPA down.

</comment><comment> kris-jagasia Give us some details on your product / service, as most advertising platforms are dependent on what you're trying to sell. For example, I've had some great results using LinkedIn but it was for a English conversation improvement product targeted towards professionals in a developing country (wouldn't have worked well for game download for example).

</comment><comment><USER4> If you wanted geo-targeting I've had good results from Facebook, Linkedin and Plentyoffish but you need to spend time on ad optimization to make it work well.

Reddit works pretty well but you can't geotarget on there.

Bing gave me a decent ROI but a tiny amount of traffic.

</comment><comment><USER5> What is your sales cycle? If it's longer, you can try re-engaging some of the AdWords visits that did not convert but showed intent on your website with retargeting? We use AdRoll and results are pretty good.

</comment><comment><USER6> Bing ads are surprisingly not terrible.</comment>


Lies that Losers Tell - <AUTHOR> http://www.bhorowitz.com/lies_that_losers_tell <comment><AUTHOR> This came across my twitter feed and it brought back a discussion about how to know your startup was in trouble. This is perhaps the best indicator, people start lying to themselves.

A reasonably good book on the topic is Bossidy's "Confronting Reality". In that book he has a lot of good anecdotes and techniques for testing whether or not you're lying to yourself but at the risk of spoiling it I'll share it hear, if you can't validate your business model with external realities (facts that your employees generally can't re-cast in a different light) you have a huge problem regardless of what people are telling you.

Similarly when your customers are converting or your life time customer value isn't where it needs to be for your startup's business plan to work, you need to figure that out right now.

If you see your upper management ignoring signs like this, that is a huge sign that your startup is not going to make it.

<comment><USER2> This makes sense. In business, it pays to be objective. But this effect is a coping mechanism that spans areas of life well beyond business. Similar to how everyone considers themselves an above average driver - narcissism/inflated sense of self keeps people in the gene pool. It is not a long term strategy, though, so the longer you lie to yourself, the more life will find your real level for you. I think that you can actually go a long time with this reality distortion - and the same narcissism can be implicated as much in success as in failure.

</comment></comment><comment><USER3> >「We would have won, but the other guys gave the deal away」

I agree with all others but not this one. Because I have to admit there are battles that cant be won. Or at least cant without major sacrifice. There are lots of companies, especially in Asia do these type of business, for faces or pride. It doesn't mean I cant win those battle. It is just the question, is it worth it. Or we better spend resources elsewhere. By resources I mean we could have spend time and energy or something else. And i dont use this as a excuse, but it is up to management to make that decision. Most of the time, I would decide to do something else. May be that is admission to defeat, But i call this not engaging to battle in the first place. The only thing that is limited is our time and energy.

P.S - And once you decide to go in battle, there is no such thing as "could have" won. If you loss, then you will have to judge what you did wrong. Not what others did right.</comment>


Ask HN: How do you learn to build substantial, real world apps? - <AUTHOR> I am learning to build apps in android. Most of the tutorials and even books I come across have quite small examples to follow, usually 2 activity files and 2 layout files. Honestly, the progress to build a substantial app is a bit slow because the projects are so small. It feels like being stuck as a beginner.
Looking at examples of most apps, they are usually made up of 10+ class files serving the app. I want to know what resources are out there that help you make the move from learning to build an app by showing you the basics to something substantial with architecture and design patterns - not necessarily spelt out but present nonetheless.
I want to know how you made the jump to 10+ files in a project, what resources are out there that lead you to get to that level? <comment><USER3> It sounds cliche, but "scratch your own itch".

My group of friends used to run a pool where we would handicap NFL football games and pay out prizes to the top 10-15% of finishers each season. The pool grew big enough to the point where it was a pain to manage manually, so I ended up building a small app where we could create new pools, users could sign in and make / edit picks, it would track the standings, etc. It would scrape the final scores/results of NFL games to grade everyone's picks, and each Tuesday it would scrape the consensus lines to set the spreads for each weeks slate of games.

Im not really sure "how" I made the jump per se, it just became one of those things I couldn't wait to work on. Anytime I ran into difficulty it was like getting stuck in a video game, I would try new things until I fixed it. Gradually over time things started to fit into place and a functional (but clunky) web app emerged.

It wasn't pretty (this was a long time ago), but it worked, and we used it for our pool for a few seasons without a hiccup. I still remember the afternoon I made the "final" commit as one of the happier moments in my career.

<comment><USER4> You don't achieve success by somehow avoiding failure, rather you repeatedly fail (in small, safe ways), grow, and learn.

Perfect is the enemy of good. Your tech doesn't need to play buzzword bingo out the door, it just needs to solve the problem.

</comment></comment><comment><USER5> This is exactly what I'm covering with my Semicolon&Sons screencasts.

Basically I've run a profitable production web app for 10 years (~14k LOC, 200k monthlies, revenue higher than any day-job I could get) as well as a few Android/IOS apps.

Now I'm creating videos where I show various real-world aspects of writing software in the context of my own production code - e.g.

\- architecture

\- rapid response systems to production errors

\- dependency choices

\- data integrity guarantees

\- integration testing systems

\- softer stuff, like optimizing for SEO and on-page conversion.

There's not enough non-beginner material out there and I hope to help fill that gap in resources.

They're all available here: [https://www.semicolonandsons.com/series/Inside- The-Muse](https://www.semicolonandsons.com/series/Inside-The-Muse)

<comment><USER6> I really like the videos, your content is very inspiring for a wannabe indie hacker, keep going! by the way, a piece of unsolicited advice, add some king alert for the subscription form, I added my email but after clicking it nothing happens.

<comment><USER5> Thanks for the advice -- will add that to the auld backlog.

</comment></comment></comment><comment><USER7> Clone an existing app.

You'll very quickly bump into real-world problems you've never solved before, both in implementing the requirements of the app and in organising your code as the implementation grows.

Plus the design is already done for you (which honestly feels like cheating, as it removes an entire aspect of the app you normally have to worry about in parallel with the rest of the implementation), so you'll also get experience working to a design spec.

I've been scratching some of my own itches while learning Flutter, which has resulted in a bunch of apps with a small number of screens, without user auth or any complex API usage. A workout timer (2 screens), a simple trivia game (3 screens), a remote control (~5 screens), a sound/video/image board for SEN kids (7 screens in a single ~3000 line .dart file)…

Then I tried cloning the app my gym was using to post workouts and log results before it closed down due to COVID-19 - boom! [1] Just from this one app I've gained experience with Firebase Auth, Cloud Firestore, Cloud Storage, co- ordinating and navigating between 24 screens and counting, CRUD screens, screens with multiple user permissions in play, sharing editable data between multiple screens, some fairly complex dynamic display logic in the workout editor, creating bar charts with user statistics, implementing specific little interactions the original app has (like smoothly sliding a comment input into view as you scroll down and sliding it out as you scroll up) and umpteen other things I can't think of right now.

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

<comment><USER8> This only works if you're extremely honest with yourself about the constraints and you earnestly work through all of the edge cases and UX. If you don't have the experience to know what those constraints are, you will likely miss many things that go into what it takes to build a solid product.

It's so easy to ignore the real-world concerns of a product by just cloning the visuals, sticking a ribbon on it, and calling it a day.

I find this to be a valuable exercise in moderation, but at some point you'll need to build some products from scratch (and I'm not even really talking about the code itself) to gain the requisite experience.

<comment><USER9> I really don't have this problem at all when working on personal projects--my problem is very much the opposite. Deep down, what I want to do at my job but never have time to do, is create something _absolutely perfect_. So when I'm working on a personal project, which has no time constraints, I work through the edge cases and UX _far_ more than is necessary or reasonable. That level of perfectionism is why all my personal projects always feel almost-done.

</comment></comment></comment><comment><USER10> I think you're looking for a process or heuristic in how to "make the jump" to a large collection of files which typically represent a more _robust_ app.

What you'll find is that it doesn't typically exist.

Unless your app is following a particular category of app (is it a todo app, mostly crud, is it just a skin over a bunch of read only APIs, is it a game?) your app will grow organically and as the complexity grows you'll naturally start breaking things up, realising certain parts can be generalised where it'll be useful not to one, two or even three other bits of code but dozens (don't be afraid of a little repetition, MUCH better to repeat 5 lines of code thrice than to create another function).

Also with more complexity and simple volume of code, testing becomes indispensable. At some point it becomes difficult to foresee how interdependencies in the code might be affected if you change something.

Running a suite of tests will save you lots of time. And you need test files for that.

If you're looking for __the way __to get you more organised I'd recommend building a test for every function you write. It's very interesting how that changed my code suddenly every bit of code I wrote felt independent but connected, it was also nice to feel like at any time I could feed a function some dummy /simulated data and it'd spit out the same output. There was no hidden state being mutated somewhere else. No global vars.

</comment><comment><USER11> Just create an app you want to use and keep adding features. You will end up with a large app that is ridiculously complicated and needs refactoring. Do the refactoring so it can become better maintainable.

Do that Asian for a number of projects and you will see that every project looks different, maybe better maybe more complicated than it should.

<comment><USER12> I don't know what Asians have to do with it lol (I know it was an autocorrect), but while this is a long term approach, it would definitely be the way to go IMHO. The experience and reflection are key

<comment><USER13> 28:00 [https://www.youtube.com/watch?v=04gsgRsH0yY](https://www.youtube.com/watch?v=04gsgRsH0yY)

</comment></comment></comment><comment><USER14> What you are asking about has nothing to do with Android development, so you won't find that tutorial.

It is Software Engineering. SE, will be a bit generic and won't directly talk about making an Android app. So you will have to take generic principles and apply them to a specific domain.

</comment><comment><USER15> I just copied things I already knew about. I did a tutorial for a side-shotter flash game. Then I made a breakout/arkanoid clone, which was much harder for me. Then I made "Tetris with a shop to buy blocks". That one took me almost a month.

The code was ugly, but each project got more sophisticated than the one before and showed me the value of certain techniques (after having done things in a more difficult way without them).

Tutorials are fine, but you really need to work on your own projects afterwords and use what you've learned. You'll get stuck and have to struggle through parts, and in the process learn quite a bit. Start with smaller projects and work up to bigger ones.

</comment><comment><USER16> Mobile developer here, who published several apps on the stores.

Do not worry about the size of your app. Managing decoupled apps is way more annoying then conciseley written ones. And by the phrasing of your question I assume you are projecting the complexity of the codebase to the capabilities of the app.

My piece of advice is the following: When developing for mobile modularize the functionalities by screens and aim for a strong coupling within them. Even when the functionalities are growing (proportional to the success of the app, that is), you will not often see too many similiarities between them and the redundancy is factored out easily.

Only when starting to develop a larger app which shares multiple screens across it could make sense to bundle differently. In this case, you want to structure the codebase by your tests. Most of the time, reusing a screen creates plenty pitfalls, which can simply be avoided by not reusing.

Due to grouping the functionalities by screens, issues will mostlikely not be related to eachother. Also, in my experience, libraries introduce more issues then solving, so trying to keep the app barebone will often result in a smaller download size and a more robust app.

When applying these thoughts properly a larger app could look like the telegram client! [https://telegram.org/apps#sourcecode](https://telegram.org/apps#sourcecode)

</comment><comment><USER17> Well I have not done any android development, and I know Java has some specific quirks around classes, so maybe this isn't very helpful.

In my general development experience the amount of files/classes/functions/modules/whatever you use is really just about organizing your code in a way that makes it easier for you to work on one part of the code at a time. The idea being that once you know you have part of your code working the way you want it to, then you can forget about that part and focus on the next bit.

As far as when and where to do those splits, it's not always obvious, but it comes with experience in the language, and a greater understanding of what you want your application to be. When in doubt, just get it to work as best you can. Then when you find yourself digging through a giant method to debug 4 lines that could stand on their own, or copy/pasting a blob of code that could be a function, or just wishing to yourself that there was a library that did exactly what you needed, then take a step back and think about how to make it better.

Sometimes the solution won't present itself until you have to go back and make changes years later. In that case, fight the urge to throw it all away and start over, but remember the pain for your next project.

</comment><comment><USER18> As others have said, try to clone something already out there! But start as small as possible.

Like, for Instagram. First, just the scrolling list of images. Then, images with text under them. Then, a tab bar with images and a profile. After enough of this, a basic skeleton will form and you'll start hitting the fun edge cases: how do you edit a user's comment? How do you make sure user data is always in sync? How do you handle _every possible_ API error that you might get, and _communicate_ that simply to the user?

Open source projects are also a great reference. As an iOS dev, I'm biased, but I've heard Android code tends to err on the side of "meh, it works", even in large projects, so be on the lookout for that. Software architecture tends to be fairly consistent across platforms in my experience anyways.

</comment><comment><USER19> The biggest change for me was adopting clean code practices.

What it meant in practice is writing functions as a collection of calls to other smaller functions. Each function does only one thing. I spend most time on naming objects, functions, and variables. It is hard in the beginning to not use non-descriptive names, but then you have to re-read that code and mentally rename it each time in your head while struggling to understand what it does.

Writing test code to validate shorter functions becomes fluid. When you can easily understand your code and can depend on it not breaking, you will find it's easier to add features and expand existing features.

You will find many good talks on YouTube, but they really summarize what they wrote in books.

One good exercise is to reimplement built-in language algorithms like sorting and string manipulation from scratch.

</comment><comment><USER20> Since you have the basics, expand on that.

Build a more complex app that you would use.

So pick out a hobby or something that interests you that an app would improve your experience with.

Plan out the requirements/scope and start building it.

Building any app you're going to run in to things that you won't find a tutorial for, or you might have to combine a few tutorials to create it.

That's the best way to learn, is just taking on something and building it.

If you don't have any ideas, ask a friend or family member if they could use an app. You'll learn even more if someone else is telling you what they need/wish it could do.

Good luck expanding your skills.

</comment><comment><USER21> I don't mean to sound glib, but you just keep implementing the functionality you need to accomplish the end result you want. However large the number of classes is fairly meaningless.

Perhaps I'm missing something?

<comment><USER22> I guess one of @smckk's main points is that when one looks up tutorials and guides they tend to be introductory. Meaning they don't go to intricacies of critical refactors to introduce major new functionality etc.. i.e. I think @smckk wants to see how people approach the thinking about changes beyond the "initial build".

@smckk the closet thing I can think of that may help you is to visit large company's engineering blogs that sometimes do small to large writeups on big changes in their architecture, code organization style, etc. It's not as detailed as seeing the actual changes line for line but it can help guide your thinking of taking a piece of non-trivial code to another level of non-trivial code if that makes any sense.

<comment><USER21> That makes sense. But to me those are largely functions of experience with a toolset/platform that are expanded with product iterations and not something to dwell on.

</comment></comment></comment><comment><USER23> Every activity is basically a mini app. Take a gym log for example. It has an activity for recording an exercise. It also has an activity for viewing the list of exercises in a workout. It has an activity for viewing a list of workouts. It has activities for editing each of those lists, discovering new workouts, watching videos of exercises, taking notes on particular sets, and adjusting settings. Maybe it includes social features, graphing, reporting, etc. But whoever wrote it started with just a couple of activities and grew it up.

</comment><comment><USER24> Part of 'software engineering' is the wisdom of how to organize a large project. There are books on the subject, some of them good. One place I worked had a book club that met one lunch a week to talk about them and what we liked and discarded from each book. Ultimately I feel I've learned a lot by doing over my 20 year career; so, go for it, make it messy on the first draft, figure out how it would be better organized, make it better. I still do first- drafts all the time.

</comment><comment><USER25> Tbh I would suggest joining a company that's working on something that sounds interesting to you and has a strong sense of providing mentorship.

Like you mention there aren't tuts on complex systems as a single thing. I'd say because complex systems solve quite specific things and usually delve deep into domain specific problems that aren't of interest to people outside that domain

</comment><comment><USER26> If you try to look for any sort of standard approach to Multi-tenant apps or even performing billing per API call there aren't good resources probably because they are worth keeping to ourselves resources. The same goes to DB migrations without losing requests & how to build your app with scaling in mind.

</comment><comment><USER27> I would start with frameworks. You'll learn how a well structured app looks while also having the reward of building something cool.

There needs to be more books on concrete software development principle that fill the gap between basic software dev 101 and software design patterns.

Like practical books on building an app.

</comment><comment><USER28> Came across this project demonstrating modern Android development best practices in a reddit discussion:

[https://github.com/igorwojda/android- showcase](https://github.com/igorwojda/android-showcase)

</comment><comment><USER29> Try search for open source Android apps in Github, and study their code and architecture there.

Hell, my own Android app has just 1 Activity and it is making me money (just a cup of coffee haha) everyday, does this counts as real world app?

<comment><USER30> I'm curious, is that money from ads? or in app purchases? Thanks!

</comment></comment><comment><USER31> Start reading about and understanding design patterns. Then look at some non- trivial, open-source Android apps, see how they are put together. What elements do they use? How do they pass messages and share data?

</comment><comment><USER32> For Ruby on Rails, check this out [https://www.railstutorial.org/](https://www.railstutorial.org/)

</comment><comment><USER33> You can intern at a dev company, is that something you are interested in?

</comment><comment><USER34> Incrementally.

<comment><USER35> To elaborate on this, you should start with an idea of what you want to build and find the most bare bones implementation you can find. For example, for [https://gif.com.ai](https://gif.com.ai) I knew I wanted to build a MEAN stack app so I found a simple (a very very simple) MEAN stack project on GitHub with a few Express routes for view rendering. This became the baseline of the entire architecture. From there I followed pretty much the same paradigm I was presented with to build the rest of the app. You end up with multiple files, or large code structures after a lot of iteration. Removing is as important midway through as implementing new code. The process is organic. You just build it up, and work on it daily.

</comment></comment><comment><USER36> > I am learning to build apps in android. Most of the tutorials and even books > I come across have quite small examples to follow, usually 2 activity files

Two activity files? That's a lot. With Jetpack Navigation, you can have substantial real world apps using one Activity.

I have programmed Android apps professionally for a number of years, from substantial, as you describe it, apps for Fortune 100 companies, to smaller apps for much smaller companies.

There are two things to consider looking for examples - one, is you want an app using modern Android architecture. That it is using coroutines would be one of the main markers of this. Also it would probably be using Navigation, View Models, and Live Data. It would be written in Kotlin, of course. The architecture being MVVM, or possibly Clean Architecture with use cases. Possibly using Dagger for dependency injection.

You might find some older substantial, real world apps using architecture and design patterns, but they might be ones not used much any more - maybe an app written in Java that made direct non-Room access to SQLite to get and retrieve local state (or, forbid, Shared Preferences), maybe Volley to access a web API, Asynctasks to do background work, Loaders to load data - none of this is current best practice, and much of it is deprecated.

If I had the choice of a model to be a small, modern example app, or a several years old out-of-date substantial, real world app, I would choose the basis to be the smaller, more modern app.

Google has some example apps. I think this is a decent one - [https://github.com/android/architecture- samples](https://github.com/android/architecture-samples)

Both the main branch, and the slightly more out of date dagger branch.

This has all the architecture you need for a bit. The main thing it is lacking is network access, but you can learn that from other Google example apps.

What is architecture in an Android app? It can be thought of as a few things. One is just a clear line from the ultimate authority of state (say a web API) to the I/O of a screen. You tap a view, it goes to a fragment, under the management of an activity and navigation - and the fragment sends data to a ViewModel, which sends data to a repository, which sends that data to a remote data source. There might be a response which filters the other way. So a clear separation of UI and state model, and a clear line of transmission between them.

Another way to look at Android architecture is in the clean sense. You have a model for state which does not change much - organization-wide (like enterprise-wide business) data models and rules which are the same across the organization. These do not change much, and have no dependencies on classes apt to change. Dependent on these organization-wide, system-wide shared data models are data models that are specific to your particular app - <USER2> specific data models and rules. Dependent on these application specific rules/models are interface adapters like presenters (or view models, or repositories). Then dependent on these interface adapters would be the UI, web API and DB layer - the framework layer.

In both of these, architecture is the protection of the platonic ideal of the critical data structures used from the flittering volatility of the input and output of UI. In the case of clean architecture, it is protection from the specific framework dependencies needed to store and retrieve data model state as well.

In terms of design patterns, you make use of them in Android when needed - from singletons ("objects" in Kotlin), to adapters (particularly for RecyclerViews and such), to observers (used for Live data).

In terms of large and substantial apps, once you break out into different teams working on different parts of the app, you will usually (although not always) have the app broken into different modules for different features of the app. As your main concern seems to be apps which have more than ten files in a project, I take it you are not talking about apps so large they cross this threshold into one with multiple modules used by different teams in an organization within one app.</comment>


'Anemic' iPhone 8 demand drags Apple shares lower - <AUTHOR> http://www.reuters.com/article/us-apple-iphone/anemic-iphone-8-demand-drags-apple-shares-lower-idUSKBN1CO1E7?feedType=RSS&feedName=technologyNews&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+reuters%2FtechnologyNews+%28Reuters+Technology+News%29 <comment><USER2> Apple Stock is up 34% in the last year [1].

Its only over the last 2 months that it is very slightly down or flat.

Seems like iPhone 8/X was already priced in the stock and its going mostly as expected.

[1] [https://www.google.com/search?q=apple+stock](https://www.google.com/search?q=apple+stock)

<comment><USER3> The story is about a near-instantaneous ~23 billion dollar drop in the market cap of Apple after reports of production slow-downs; at least that's the story several analysts are telling. Your comment is very insightful and puts this drop into perspective (i.e. it's not that big of a drop), but the reality is some major investors clearly found the news unexpected.

<comment><USER4> $23 billion sounds big, but it's less than 3%, and assigning a cause to _any_ stock market movement is fraught with peril.

<comment><USER5> Stocks are oscillatory by nature! At least some people understand this caveat. Not to mention the X comes out soon, and it'll probably rocket again.

</comment></comment></comment></comment><comment><USER6> The current iPhone line up is to broad. There's currently five different models of iPhone, not counting the Plus models.

Introducing the X, and the 8 seems like a mistake that only serves to confuses customer, or worse, make them reconsider their actual needs. I don't think most owners of the iPhone 6, 6s or 7 are displeased with their phones, so there's no need to replace them. If they break, then why not save the money and buy the cheaper option, which have served them well until now?

The beauty of the iPhone marketing, as least initially, was that there was at most two models to pick from. It makes the choice much easier for the customer and made the sales figures for then new models look better.

<comment><USER7> My first thought upon the unveil was that the 8 might not have a great market and might get classified as the 'poverty phone' as absurd as that sounds. Given that new model iPhones are already a luxury good, splitting that on price so substantially seems... strange. If you're buying a luxury phone, dropping hundreds of dollars on one... are you going to be satisfied with anything less than the X? Are the social status symbol needs the consumer is trying to meet with those phones going to be met with an 8?

<comment><USER8> Yes it reminds me of when the Xbox 360 released a $100 cheaper stripped down "Core Pack" without a harddrive, headset and other things. It was mocked by gamers and the enthusiast game press and labelled (not very appropriately) the "retard pack."

<comment><USER9> To be fair, losing the hard drive was a pretty big deal, regardless of the verbage using colloquially. To many it seemed like a maneuver to try and get unknowledgeable buyers (parents and grandparents)to get the better deal. Which they would then have to buy the peripherals later on down the line.

</comment></comment></comment></comment><comment><USER10> My iphone 6 is probably on its last legs. The X phone is too expensive and not available anyway. The 8 isn't that much of an improvement on the 7, so if I don't want an X, I'll probably save money and go with a 7. Sluggish sales for 8 are not surprising.

<comment><USER8> Same. I have a 5s and I'm tired of running out of storage space, so it's time for an upgrade.

As a Mac fan, I follow Apple news, but even though I watched the press conference I've forgotten if there were any substantial benefits to the 8 over the 7 other than presumably faster specs and a mildly better camera. Seems pretty similar.

I definitely feel no need to grab the 8, and the 7 (or even 6s) seem like good options when one considers the price drops.

<comment><USER11> Just put in a (bigger) MicroSD-card...

Yes, this is tongue-in-cheek, however it does remind me of the famous "I need a new car, the tank is empty" (or, in earlier times "the ashtray is full") quote of senseless consumption. Hardware-wise those devices should be able to last much longer than this, were it not for the planned obsolescence of limited memory space, OS-update mandated slowdowns and eventual abandonment.

Hardware can last a long time if it is made to last. It can remain useful for many more years than the 2- or 3-year update cycle. My phone is 6 years old, I'm typing this on a 13 year old laptop, both still work fine for daily use. Both have user-replaceable parts, both can be upgraded.

Both run free software.

<comment><USER10> The problem is that the combination of an old iPhone and a new OS tends to suck. And batteries wear out.

</comment></comment></comment></comment><comment><USER12> I will never understand the decision to name the new model "ten" instead of "ex". It made the iPhone 8 _two_ generations obsolete before it even arrived.

Either way, demand for the X will inevitably shift this blip in the other direction after it hits the streets and people see it in action.

<comment><USER13> It's the 10th anniversary of the iPhone.

<comment><USER12> They have no excuse. They painted themselves into this corner before with Mac OS. Not to mention the history of abject failure of anniversary edition Macs.

</comment></comment></comment><comment><USER14> Not a surprise.

People who want the latest and greatest are waiting for the X.

The 8 isn't big enough of a jump over the 7 so many will keep their 7 or if they have an older model will simply buy a 7 to save money.

<comment><USER15> Side by side, the 8 is impressively faster than the 7. I don't know about cameras or anything, but the CPU upgrade was no joke.

<comment><USER16> sure, but for 99% of what most people do, web,text,maps. Is it appreciable?

<comment><USER17> There is no upper bound on what "web" will require of hardware. Web developers will see to that.

</comment></comment></comment></comment><comment><USER18> Steve Jobs revitalized Apple by streamlining the product line and guaranteeing high quality. Tim Cook has done exactly the opposite. Makes me really sad

</comment><comment><USER19> Reading all those stories of lagging iphones after upgrading to ios11 really makes me start to believe in planned obsolescence... has anyone seen an article giving any kind of concrete proof of a company such as apple doing that ?

</comment><comment><USER20> Apple hasn't done enough to make me want to upgrade from my 6S . Should I break/lose my 6S, I may even replace it with another one and pocket the price difference between the newest models.

Many of the more interesting features are in the Plus sized phones (cameras), which I'm just _not_ in the market for. My pockets aren't getting any bigger no matter how many features they add, and I'm not convinced the iPhone X will be a UX improvement over Touch ID yet.

</comment><comment><USER21> I upgraded to a 6s (from a 4!) as soon as they came out. The girlfriend got a 7 as soon as they came out, then got a 6s after she broke the 7. Neither of us see any reason to upgrade any time soon (we both buy our phones outright so that's a nice chunk of change). I would _like_ an iPhone X -- just because it's "cooler" \-- but I really can't justify spending that much for it when I have a 6s that works just fine.

</comment><comment><USER22> I think the demand for the iPhone X will be tepid. It is too expensive and no popular apps require that much CPU/GPU horsepower. My iPhone 7 still works great.

<comment><USER23> Expensive is a relative term.

For someone who can afford an iPhone+ and usually not the lowest storage capacity, iPhone X is clearly affordable/manageable.

The whole iPhone line up has a price anchoring effect pushing the buyer to consider the next slightly expensive option, from iPhone SE all the way to iPhone X. I know many who are waiting for X, which is ideal for the Snapchat generation of (literally) rich kids as well as the ones who want the most sought after gadgets.

I think the 7+ sales really gave Apple an idea about how much customers were/are willing to spend.

The current price of iPhone X is positioning Apple well for selling an iPhone X+, when/if that ever happens, they can just reduce the current iPhoneX price by $50 and have an X+ for $50 or $100 more.

With the product and price lineup Apple has, its set for a great year in 2018. If $AAPL goes down, imo its a great chance to get a few.

</comment></comment><comment><USER24> I did get the 8, because I was moving up from a 5. I had pretty poor battery life on the 5 somehow - it would drop to 1% from 20-30% instantly! And performance was manageable but not great with the latest iOS version and apps (like Google Meet which is needed for work).

Overall, I went for the 8 believing it will have good overall standing in the long run, in terms of performance and battery life, as opposed to the 7.

</comment><comment><USER25> I have a 6P. I had been thinking about getting a 7 because I wanted the NFC stuff for metro cards. Looking at the cost of a used 7 vs a new 8 and taking into account the speed differences I will likely get an 8. There is no wow factor that is driving this however. My 6P was fine for everything until I put IOS11 on it at which point it lags so badly.

</comment><comment><USER26> I have a 7. I may get an 8; but since I know the X is coming out soon, I figured I'd wait a bit longer.

I wouldn't be surprised if lots of people are in a holding pattern like I am. Not long after the X comes out, some pent-up demand will avail itself on Apple's supplies of both the 8 & the X right through Christmas.

</comment><comment><USER27> It seems that the iPhone 8's sole reason for existence is to cater to the conservative crowd and prevent a backlash of public opinion when Apple takes things to far in a way that that segment considers too radical.

Apparently those people contrive not that big of a percentage and everyone else is holding on till iPhone X.

</comment><comment><USER28> Apple has been iterating on the same phone body for too long. For better or worse Apple had a reputation for pushing design limits over and over, yet the last 3 models (6/7/8) have looked exactly the same. The X is what the 7 should have been. Two years too late and $200 too expensive.

</comment><comment><USER29> They should have split the release into 6 months like Samsung (S vs Note) . Call the iPhone 8 the iPhone 7S and then 6 months later release the iPhone X under the name iPhone pro or something like that.

</comment><comment><USER30> You can't even pre-order the X yet. The demand for the X around my neck of the woods is massive.

</comment><comment><USER31> Sort of article that will be pointed to when Apple inevitably breaks sales records yet again.

</comment><comment><USER32> How is it "anemic" when it's pretty much sold out everywhere?

<comment><USER33> "everywhere" NYC/BOSTON/SF is not everywhere...

<comment><USER32> It's even sold out online, on the Apple store. You have to wait 2-3 weeks to get one.</comment></comment></comment>


Ask HN: Hacker-friendly Toys/Puzzles - <AUTHOR> I am a freelancer who works from home/coffee shop/etc. Recently, it has dawned on me that my productivity receives a good boost whenever I take small breaks from the task I'm working on and play; I have heard someone recently refer to this as "cognitive snacking".<p>I have been playing a few video games, but I'd love suggestions for puzzles or hacker-friendly "toys" that would let me take a break from staring a screen. So far I've thought of a Rubix cube or Lego Mindstorms, but would love the community's suggestions for additional (intellectually stimulating) distractions. <comment><USER2> A collection of small, but strong, magnets is an endless source of fun. Just keep them away from your electronics.

<comment><USER3> Agreed. They're called "Bucky Balls" <http://www.thinkgeek.com/geektoys/cubegoodies/bbe8/>

</comment></comment><comment><USER4> I got that : <http://www.perplexus.net/>

<comment><AUTHOR> That looks awesome. Thanks¡

</comment></comment><comment><USER5> Think Geek has a good selection: <http://www.thinkgeek.com/geektoys/>

</comment><comment><USER6> Basic legos.</comment>


Ask HN: Help three founders mediate a dispute - <AUTHOR> ALFRED, BRIAN, and CHARLIE are three friends who have worked together on and off over the last 8 years.
Alfred and Brian started OLDCO about a year ago (Jan 2009). They had some modest successes but hadn't hit anything out of the park.
A few months ago (Nov 2009), Charlie, an independent consultant, had a meeting with VC-ONE in which they suggested a business they would be interested in funding. Charlie thought that he, Alfred and Brian would make a pretty awesome team to chase this opportunity, and he got all three friends together with VC-One to make a pitch.
Alfred and Brian put OldCo on hold and the three guys started NEWCO in Jan 2010. They pitched VC-One and got a term sheet.  However, during the diligence process, VC-One got cold feet and backed out of the deal. Alfred and Brian went back to OldCo and Charlie went back to consulting.
VC-One had gotten to know Alfred and Brian during this process, and introduced them to VC-TWO, who they thought might be interested in investing in OldCo. They pitched (Feb 2010) and got a term sheet. At this point, VC-One and VC-Two decided they would like to co-invest in OldCo. So they did a joint financing in Mar 2010.
When Alfred and Brian told Charlie about the financing, Charlie was upset.
Charlie believes that he should be compensated for the introduction to VC-One. He feels like the ethical thing to do is receive some cash and stock in OldCo because of his role.
Alfred and Brian are grateful for the introduction, but don't believe it merits compensation. They feel like people make introductions all the time, and that, among friends, the appropriate rewards is gratitude and karma.
We are Alfred, Brian, and Charlie, and we're hoping that HN can help us find common ground. We've tried to distill the situation to a minimal set of facts; if there are any questions we'll address them individually in the comments.
If YOU were in charge of the universe, how should Charlie be compensated? <comment><USER2> Cash compensation is out of the question. The start-up needs it/will need it and will create more value out of it than Charlie could.

2% goes to Charlie if he is willing to continue to support his friends as an "advisor" and promises to bury the hatchet.

1% goes to Charlie if he wants no part of it, but promises to bury the hatchet and buys beer.

0% goes to Charlie if he's being a douche bag about the whole thing.

</comment><comment><USER3> I'm guessing from the way this story is told that it was posted by A or B and not C, but if it's exactly as described here it would not be normal to give C anything. The startup world is full of intros and I've never heard of anyone being compensated for one.

<comment><USER4> > The startup world is full of intros and I've never heard of anyone being > compensated for one.

No, seriously? You've never heard of brokers that will go from one VC to another trying to find funding for a company they represent based on a success fee?

I don't know or have any affiliation with this company but these guys are working just like that: <http://www.intelligentfunding.com/>

There are numerous others.

<comment><USER5> _You've never heard of brokers that will go from one VC to another trying to find funding for a company_

That is minor league C-lister stuff that only people who read blogs like ReadWriteWeb get involved with. It's the tech world equivalent of paying to be in a modeling agency.

<comment><USER4> Raising funding is hard work, especially if you do not know the circuit and are busy keeping your start-up afloat. To have someone that will take the 'leg work' out of it in return for a small percentage on a no-cure-no-pay basis can be very good.

People like that usually have a reputation to protect, they'll pre-screen the start-ups they represent and they'll do their best to bug their VC network only with those start-ups that they themselves deem worthy of funding.

Y combinator is 'minor league', we're not talking 5 to 15K here, but roughly up to a million or so.

Paying to be in a modeling agency is paying up-front, this is a construction where both parties win _if_ a deal can be made.

There are sleazy variations on this scheme where the broker demands exclusivity or other tactics to gain control of the start-up based on their inexperience but that's definitely not all of them.

<comment><USER5> I spent 15 years in Silicon Valley startup scene and respectfully disagree. Anyone advertising themselves as a VC matchmaker for a fee is looking for chumps.

The good VCs have their own people on staff whose job is to go drinking with the cool startup kids. (they are usually classified as an EIR)

<comment><USER4> I'm not in the US at all, but in the Netherlands.

edit: Maybe that qualifies all of this as 'minor league C lister stuff' ;)

<comment><USER5> I'm afraid I'm ignorant of how the biz works in the rest of the world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> C doesn't deserve compensation for the introduction alone. Maybe he could get something if he had some part of OldCo's intellectual property (e.g. he wrote some code, etc.). The "startup world" is still just business. Consider the same situation in another industry:

Imagine A, B, and C were members of a rock band and C goes solo. C later meets with Record Label 1 who is interested in a country trio. A, B, and C reunite as a country trio and pitch their demo to the record label who declines. A and B then return to the rock band, and C goes solo again. Record Label 1, now well-acquainted with A and B, introduces them to Record Label 2, who, along with Record Label 1, signs A and B's rock band. I doubt any band would ever be expected to give up a portion of future royalties to a former member (unless he had rights to songs, recordings, etc.).

</comment><comment><USER7> If finding VC-One or VC-Two is something that OldCo truly could not have physically accomplished without Charlie's help/introduction, and OldCo was looking for investors, then yes, OldCo does owe Charlie something. By accepting investment, OldCo has accepted this responsibility.

If finding VC-One or VC-Two is something that OldCo could have reasonably expected to accomplish on its own, then Charlie should be thanked for the intro (possibly including a night of beers and wings) but no other monetary compensation is required.

Personally, though, I would be inclined more towards the sharing. It's a friends thing. I would not feel ethically bound to do so though, so if Charlie approached me all pissed off and righteous about it, he can kiss my silk- wrapped butt.

</comment><comment><USER8> Charlie should get a pat on the back, and feel good he was able to help out his friends.

He should be ashamed for feeling so greedy.

</comment><comment><USER4> Alfred and Brian should make Charlie part of the original deal on the condition that Charlie will pull his weight as originally envisioned. Having one or two investors does not make a difference.

The investment should have been in 'newco', but since that's a done deal and no longer possible you can work out the ratio of shares that Charlie had in 'newco' and how big a chunk of the post-investment old-co that is.

If Charlie prefers to stay outside the whole thing his introduction to the VC should be worth about 1 to 2 % of the amount raised, payable as a consultancy fee from the money actually invested.

</comment><comment><USER5> Charlie should get nothing. Such is life.</comment>


A 69-year-old man asks to be declared 49, claiming age is as fluid as gender - <AUTHOR> https://www.washingtonpost.com/nation/2018/11/08/year-old-man-asks-be-declared-claiming-age-is-fluid-gender/ <comment><USER2> It sounds like he didn't mean it seriously, but I'm willing to discuss the concept seriously.

Some of us think gender shouldn't necessarily be tied to the body one was born in or currently inhabits (that is, gender != sex).

Is there a concept of age that is separate from the number of years the body has physically been in existence?

Don't we sometimes say of an adult "he has the emotional development of a 5 year old"?

What would happen if, as with gender, we bifurcated the terms for physical vs mental age?

<comment><USER3> The dutch man talks about age discrimination on Tinder; I imagine that only in recent times has record keeping gotten so omnipresent, and that people have always had more margin to play with their age +/\- a few years.

And yet we cannot lie about it much for long. As if there's a hidden clock somewhere, related to rotating around the sun but barely not. Perhaps those in the future will develop a biological clock, but then we go back to the old question of whether this dutch man is wanted less because of age. Is age just the number on his government ID card?

Why can one fudge age, but only a little?

<comment><USER4> In Argentina everyone has a national ID, that in particular is used to vote. Until ~1950 only the men had it, and they got it during the conscription.

In ~1950 the government gave all the women also an ID to vote, and the age was self reported because the official records were a mess (most of the records were only the baptism date keep by the church).

Many of the old women subtracted 5 or 10 years from their real age :).

</comment></comment></comment><comment><USER5> Whether deliberately or not, this claim belittles the civil rights struggle of the transgender. All humans age, but only a minority have a gender identity that does not match their assigned sex.

I only hope that the discussion of this silly claim results in more people gaining greater understanding of transgender issues.

</comment><comment><USER6> I think in this situation age is like sex and the concept the subject calls age is really like mindset or mental age, which would be more like gender.

Although many states will amend drivers licenses so that sex is recorded as the subject's gender [0].

[0] [https://en.wikipedia.org/wiki/Transgender_rights_in_the_Unit...](https://en.wikipedia.org/wiki/Transgender_rights_in_the_United_States)

</comment><comment><USER7> This guy is well known in the Netherlands. He became popular as positive energy guru with his catchphrase Tjsakka, somewhere at the end of the previous millennium. And is known as a entertainer and media attention seeker by almost all Dutchmen. Nobody here would be surprised by this and think it is one of his new jokes.

</comment><comment><USER8> Well, death is not that fluid though...

<comment><USER9> I don't think he is dead. A dead man would probably not care about his age.

<comment><USER10> He was dead previously but now he is transdead after petitioning to have his death certificate changed.

</comment></comment></comment><comment><USER11> Sure, why not... But you also have to come out of retirement and give up any SSI because you're no longer old enough to collect, and your senior discount -- kiss that goodbye...

</comment><comment><USER12> Next up: teenagers trying to change their age to past the legal drinking age / age of consent.

</comment><comment><USER13> It is interesting that some things are fluid, like gender, something science has proven beyond a doubt, but age and race are not. I would love to just call myself 27 for the rest of my life.

</comment><comment><USER14> He's obviously trolling, but he does have a point. If gender is fluid why is it so important for trans people to _look_ like women, or men? Is it a necessity? Then why adopt distinct _male_ or _female_ features, genitalia which do not work as intended? So, is it just cosmetic? Then why are they modifying their bodies? Just to feel well and free? Same goes for this guy. He's feeling like he's much younger than he actually is. It's both a necessity and a cosmetic change in his birth certificate. Hell, let's kick off some studies to verify whether more people feel younger than they are. Sadly, I don't know any trans person to ask them how they feel and why they feel that way, in person.

<comment><USER15> Please don't feel that the best way to figure out what a trans person feels like is to find one and ask them. Why do you think they want to educate a stranger?

Instead, read one of the many, many articles on this topic. Written by trans people or trans-friendly people who specifically _do_ want to educate strangers.

Here's a "Q&A as a trans advocate's nuanced perspective on Trans 101 questions." \- [http://www.transadvocate.com/a-trans-advocates- perspective-o...](http://www.transadvocate.com/a-trans-advocates-perspective- on-trans-101-questions_n_14906.htm)

Here's a recent blog post on trans advocacy which gives "definitions that are in common use among people that seriously study gender" \- [https://freethoughtblogs.com/pervertjustice/2018/10/13/andy-...](https://freethoughtblogs.com/pervertjustice/2018/10/13/andy- lewis-gendered-gotcha/)

There are blogs, podcasts, YouTube channels, and more.

<comment><USER14> Talking is the best way, believe me. Writing things up is easy. But talking is sooo much more revealing and effective, that I started to prefer talking over reading hours and hours of the same explanation. Being a trans person is much more of an individual thing, so to avoid generalization I'd like to ask a trans person, in person, what they feel like. I don't want to be _educated_ , I'd like to _know_ and to _understand_.

<comment><USER15> The trans people of the world are not your personal tutors!

If you don't even care enough to read the basics, why should they think that you care enough to really understand them?

And there are writings from untold thousands of trans people, with different views, so it's not like reading will only give you generalizations. You'll get thousands of specifics.

</comment></comment></comment></comment><comment><USER16> > "He is just himself," he said. "Trump is the first one who is honest. He > shows his emotion on Twitter, saying to everyone, 'Shut up.' He's a new kind > of person."

Someone who tells everyone else to shut up is nowhere near a new kind of person.

</comment><comment><USER17> Flagging for off topic and not relevant. I don't come to HN to see stuff like this.

</comment><comment><USER18> The transgender issue has essentially broken science by grossly politicizing it. I think people should be allowed to live and choose whatever labels they want, even though my personal opinion is that there are only two genders. I think if the law is going to allow someone to change their gender, then age and race should be also on the table. If gender, which is supported by hard science, is flexible then what isn't? We have to make a decision between personal freedom and science.</comment>


Something Important Is On The Horizon In The Music Business - <AUTHOR> http://avc.blogs.com/a_vc/2008/04/something-impor.html <comment><USER2> I'm really getting tired of all these pundits who have a magic crystal ball.

Services can stay irrationally bad for a very long time. He's making ridiculous speculations about the spread of broadband over the entirety of the United States without even considering why the USA doesn't _already_ have the kind of bandwidth Europe and Japan have.

Just because there's a potential for something to occur doesn't mean it will happen. Do you remember microformats? People like Jakob Nielsen had chubbies for that crap for years. It never materialized even though it kind of seems like a good idea.

Just because you throw money at people for a living doesn't mean you know what the fuck you're doing.

</comment><comment><USER3> A grad student I know said he might work at his friends' very secret startup this summer. All he said is that it'll revolutionize the music business, it has the full support of several record companies, they got half a million from vc's just for the idea, and apparently radiohead is tangentially involved. I don't know if it's good or bad to have so many cooks in the kitchen before they've written a single line of code... but anyway, maybe it's something like fred's talking about.

</comment><comment><USER4> "Everyone of my generation has had their favorite radio stations. Everyone of my kid's generation will have their favorite web music services. There will be hundreds of them."

Why would there be hundreds of them? Unlike radio stations, web streaming services aren't limited to one song at a time. With network effects it seems a few services would dominate.

(Otherwise a good article. I'm typing this while listening to thefeelgood.com)

<comment><USER5> There can be many successful online radio sites, catering to different tastes. I never use one and only one. Sometimes I use pandora, sometimes musicovery, sometimes somafm, sometimes imported digital. Depends on my mood, and what I am looking for.

<comment><USER6> But that's an artificial distinction. There's no stopping somafm or imported digital from hosting other types of music (other than servers).

</comment></comment></comment><comment> a-priori What's to stop Apple from adopting this business model? They already have the music database, and the streaming capability (for song previews).

I'm not commenting on the value of this business model, just that the article seems to imply that Apple will be left in the dust when the music industry goes this way.

</comment><comment><USER5> "These services are coming to mobile phones, probably in the next year we'll all be listening to pandora or last.fm in the gym on our phone instead of our limited library on our iPod."

This is already here. You can get XM Radio, MobiRadio on ATT and Sprint phones, and Pandora (on Sprint only so far), and there are many services (verizon has it's own streaming music).

</comment><comment><USER7> The article amounts to saying one thing, streaming is getting popular.

But so what? People will still buy a house even if they can also rent it. Renting and owning will always coexist.

Also, if streaming gets popular, then a million people will be doing it. So, instead of putting up a mp3 for download, now people will use some streaming service to stream it. What do the label companies get? They have the same piracy and control issue like before.</comment>


Firefox Private Network (VPN from Mozilla) - <AUTHOR> https://fpn.firefox.com/vpn <comment><USER2> "You can only subscribe to the VPN from the United States"</comment>


HN Parents Have An Average Of 1.7 "Little Startups" (Infographic) - <AUTHOR> http://jeff.io/posts/hacker-news-little-startups

<comment><USER2> Comparing against the fertility rate is completely meaningless. The fertility rate includes all the people who have zero children; and it also counts the children people have over their _entire_ lifetime.

<comment><USER3> Agreed.

I'd even go a step further and say the number itself is meaningless. What's the sample size? The stand. dev.? But most importantly, the sampling method sucks.

<comment><AUTHOR> The sample size is low. As I mentioned in the blog post, it was admittedly a crude method of getting data.

But it was a fun exercise for me to create this. Hope some people get value out of it.

I'm getting a steady stream of HN parents sending in their surveys so we'll see if we can get a better sampling size. Send yours in if you can spare a moment away from your 1.7 kids! :D

<comment><USER2> The sample size is the least of your problems. A huge but biased sample is pretty useless, and as araneae says, your sampling method sucks.

<comment><AUTHOR> All very good points. Thank-you all for your feedback.

</comment></comment></comment></comment></comment><comment><AUTHOR> If you're a HN parent please fill out the survey so I can get some better data :) [https://animikii.wufoo.com/forms/hacker-news-little- startups...](https://animikii.wufoo.com/forms/hacker-news-little-startups/)</comment>


Schneier on Obama Discussing Security Trade-Offs - <AUTHOR> http://www.schneier.com/blog/archives/2008/10/barak_obama_dis.html

<comment><USER2> Schneier has purged all purely political comments, restricting the thread to discussion of security trade-offs only.

I wish that more people in charge of blogs and discussion sites maintained a focus like that: While Slashdot's anything-goes discussions have their place, so do focused conversations in which irrelevancies aren't allowed to intrude.

<comment><USER3> It is a little funny though to write a post praising Obama, and then ban all political comments.

</comment></comment><comment><USER4> The ability to understand and explain the 'big picture' of security that Obama displays in this comment is certainly confidence inspiring. To me, at least!

</comment><comment><USER5> Unfortunately, Schneier is not a security expert, just a layman. He's a mathematician who somehow believes he's qualified to talk about a wide range of security topics. He's not.

<comment><USER6> Name anyone else who is similarly (or more) qualified that started writing about complicated security issues that laymen and management can understand.

<comment><USER7> For that matter, name anyone else who expects the Spanish Inquisition.</comment></comment></comment>