Is artificial intelligence permanently inscrutable? - <AUTHOR> http://nautil.us/issue/40/learning/is-artificial-intelligence-permanently-inscrutable <comment><USER2> This is not just an issue for neural nets, but also for brains. Our interpretations of our own actions should always be considered posthoc rationalizations in the absence of some falsifiable experiment being conducted to demonstrate the validity of the interpretation. Human brains are excellent at creating a coherent story about the world they experience based on the data at hand, thus we suffer the same kinds of issues, mitigated only by the fact that we have inherited developmental programs that have been subjected to a huge variety of adverse situations that have rigorously tested their performance (by killing anything that failed).

<comment><USER3> You're hand-waving a real problem by asserting rather misanthropic ideas with scant justification.

Show some child a cat and ask why it's not a crocodile. They will be able to explain it through the differences in shape, color, behavior and other features of those animals. Whether you consider it post-hoc is unimportant. The explanation is still real and relevant.

So people _can_ explain their deliberate reasoning. Also, reason about reasoning. If they truly can't, it's called gut feeling and no one rational trusts those for solving complex problems with important outcomes. Especially at scale.

Neural networks, at least right now, have no capabilities of this sort. There are some attempts at visualization, but they are inherently limited, because they must make assumptions about the domain of the problem.

<comment><USER4> Most actions people take are not the result of deliberate reasoning.

You may be able to explain why a cat is different than a dog, but your brain doesn't go through that categorization process before recognizing a cat.

<comment><USER5> How do you know?

<comment><USER6> The intermediate steps don't usually bubble up to conscious levels.

Sometimes I "know" a design is bad. Explaining why to others requires stepping through _a_ process that May or may not be the one my brain used to make that approach "feel" wrong.

</comment></comment></comment></comment></comment><comment><USER7> The pneumonia-asthma example seems to be an example of a Simpson's paradox [1]. The doctors acted on a strong (accurate) belief about asthma sufferers contracting pneumonia and acted in such a way that the data obscured an actual causal link (asthma as an aggravating factor to pneumonia). This is opposed to the canonical Simpson's paradox where doctors acted on a strong (inaccurate) belief about severe kidney stones [1a] and again produced lopsided data that hid the best treatment option until the paradox was identified.

Humans have a very hard time uncovering so-called "lurking variables" [2] and identifying such paradoxes. I don't see how a neural network (or other machine learning tool) could do so on their own, but I don't know that much about machine learning. So, I guess I have two questions for the experts out there:

* If all training data is affected by a confounding variable, can a machine learning algorithm identify its existence, or is it limited by only knowing a tainted world?

* Once we have identified such lopsided data and understood its cause, how do you feed that back into your algorithm to correct for it?

\---

[1] [https://en.wikipedia.org/wiki/Simpson%27s_paradox](https://en.wikipedia.org/wiki/Simpson%27s_paradox)

[1a] [https://en.wikipedia.org/wiki/Simpson%27s_paradox#Kidney_sto...](https://en.wikipedia.org/wiki/Simpson%27s_paradox#Kidney_stone_treatment)

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

<comment><USER8> > Once we have identified such lopsided data and understood its cause, how do > you feed that back into your algorithm to correct for it?

This is tackled in the recently popular field of study called 'counterfactual inference'.

[http://leon.bottou.org/talks/counterfactuals](http://leon.bottou.org/talks/counterfactuals)

</comment></comment><comment><USER9> The answer is no. The problem is, is that we don't trim the neural networks of their spurious connections and instead we're stuck staring at these fully (visually) connected layered networks.

Once you start to trim out the spurious connections you start to see that you are left with a logic design with integration/threshold circuits instead of straight binary circuits that we're used to seeing. There are even certain universal network patterns what will emerge to perform different functions just like in binary circuit design.

I wrote a paper about this in 2008 that's now been cited about 150 times. It's using Artificial Gene Regulatory Networks instead of Artificial Neural Networks, but the math is the same and the principle still holds:

[http://m.msb.embopress.org/content/4/1/213.abstract](http://m.msb.embopress.org/content/4/1/213.abstract)

<comment><USER10> Around 2006 - 2008 I participated in a Research Experiences for Undergraduates program at an AI lab. I used to get into arguments with grad students when I asserted it was intuitively obvious that given a neural network which recognizes two features, it should be possible to extract a trimmed network which recognizes one feature but not the other.

</comment></comment><comment><USER8> The trick to accurate interpretability is to decouple accuracy from explanations.

Just like an International Master commentator can explain most of the moves of a Super GM, so can an interpretable simple model explain the predictions of a very complex black box model.

The work by Caruana referenced in this article actually culminated in a method to get both very accurate models and still retain interpretability.

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

[http://www.cs.cornell.edu/~yinlou/projects/gam/](http://www.cs.cornell.edu/~yinlou/projects/gam/)

More recently there was LIME:

[https://homes.cs.washington.edu/~marcotcr/blog/lime/](https://homes.cs.washington.edu/~marcotcr/blog/lime/)

And there are workshops:

[http://www.blackboxworkshop.org/pdf/Turner2015_MES.pdf](http://www.blackboxworkshop.org/pdf/Turner2015_MES.pdf)

We will get there. 'Permanent' is a very long time and in the grand scale of things, deep learning is relatively new.

</comment><comment><USER11> When I try to explain neural nets (specifically in vision systems) to people I basically explain how you take inputs in the form of images, label pixels/pixel groups in the images with what you want them to output in the future, and then do that thousands of times and continue to test the results.

Critically though, I will say something to the effect of "but if you try and break the net open and see _how_ this specific net came to it's result, it will look like spaghetti"

So it's a roundabout way of saying "junk in; junk out." That holds true for _any_ learning system, including human animals. The thought process of humans is inscrutable thus far, and I think that future computing will be similarly inscrutable if we do it correctly.

</comment><comment><USER12> I think this issue of "Explainable Machine Learning" and interpretability is just going to get more and more important as ML grows. It will also be important for verifying ML-based systems - another problem area.

See [1] for a discussion of both.

[1] [https://blog.foretellix.com/2016/08/31/machine-learning- veri...](https://blog.foretellix.com/2016/08/31/machine-learning-verification- and-explainable-ai/)

<comment><USER13> I really disagree and think the whole "There's no way to gauge results!" meme is low-impact FUD. FUD that isn't particularly dangerous so people that don't know any better just believe it (like python can't be performant because of the GIL or macs are better than PCs or some other inanity).

> As exciting as their performance gains have been, though, there's a > troubling fact about modern neural networks: Nobody knows quite how they > work. And that means no one can predict when they might fail.

Nonsense! Cross validation. Develop hypotheses, develop subsets of data to prove or disprove given hypotheses, observe how the network reacts. All of these people complaining about not being able to understand what's going on are either reporters, bloggers, or machine learning dabblers looking to say something seemingly unconventional.

From your linked article, which gives more specifics as to the argument:

> Because ML systems are opaque, you cannot really reason about what they do.

Yes, it is possible to reason about a system even if it is "opaque"; the discipline is called reverse engineering. Or the scientific method.

> Also, you can't do modular (as in module-by-module) verification.

You _can_ do "modular verification" in a variety of ways. Start with analyzing the behavior of each layer and how that changes as you incorporate more layers. It's beyond the scope of this comment to go into it beyond surface level, but there are a lot of papers written about it, google "analyzing neural network hidden activations" or something.

> And you can never be sure what they'll do about a situation never > encountered before.

Humans can never be sure what they'll do about a situation they haven't encountered. Or engineers. They can simulate the events that they can think of, but we can also do that with a neural network.

> Finally, when fixing a bug (e.g. by adding the buggy situation + correct > output to the learning set), you can never be sure (without a lot of > testing) that the system has fixed "the full bug" and not just some > manifestations of it.

Fixing the "full bug" is often not something that can be done in traditional software development "without a lot of testing". Machine learning works the same way.

If you want if/then statements, use a decision tree. If you want strong accuracy on predictions, use a neural network. It helps to know what you're doing when verifying results. You will run into trouble if you don't know what you're doing, as per common sense.

<comment> semi-extrinsic If someone wants an analogy:

Nobody understands exactly how painkillers (aspirin, paracetamol etc.) work on the molecular level. Yet they are generally held to be quite useful.

Edit: electroconvulsive therapy is an even more extreme example; we have _no clue_ how it works, but it's very effective on severe depression. We only know it works because some Italians back in the olden days, before ethics committees were invented, decided to electro-shock a bunch of "crazy people" to see what happened. The reason they tried it was that electroshocking of pigs for slaughter had been observed to give a temporary anaesthetic effect.

<comment><USER14> So how do we get the first sick volunteers for Dr. Neural Network?

<comment><USER15> AI's been in medical diagnosis for a long time and many people have been treated by it already. There was a news article a month or two ago from IBM for using Watson to do it, and it struck me as obviously a PR piece because "an AI system diagnosed a patient" is breaking news somewhere circa 1980, not now. Its scientific content was zero.

<comment><USER16> Indeed. But circa 1980 they would have been using expert systems, which typically were able to justify their reasoning.

</comment></comment></comment></comment></comment></comment><comment><USER17> The human brain also does massive dimensionality reduction on very large amounts of data, and a lot of unconscious processing, with much of it being beyond our capabilities of conscious introspection.

I think eventually, within a couple of decades, we will have AI that correlates well enough with human thought process, and has enough knowledge of the world, to be able to introspect and explain in various levels of detail, in natural language, images and other human readable constructs, why it has reached a certain conclusion. And we will be able to experimentally verify those explanations.

</comment><comment><USER18> I've been saying that ML is much like alchemy than science. They've pretty much given up to understand the underlying mechanism because it's so complex, but that doesn't stop them experimenting because they still get something that looks like a result. And hey, they can get paid for it.

Eventually it might grow into a full-fledged science, but it will probably take an awful lot of time.

<comment><USER19> I disagree about the underlying mechanism being complex. Machine learning algorithms are a class of equation-based systems and strategies for configuring these equations for a specific task. All our math and reasoning tools still apply to this class of algorithms, in principle.

Where we pass into alchemy though is the interplay of these basic components with each other and the parameters they encounter while running, this is where complexity happens. Part of this lies in the very nature of the tasks we use them for: we basically push a cart of raw data in front of a set of "AI" solvers and expect them to do something with it. When that doesn't work, start over, tweak parameters, and try again.

I agree that there is no sufficiently useful intellectual framework for creating these artificially intelligent components, and that shows not only in the uneven success rates and performance, but also in the surprising fact that experts in very different AI systems can usually create components with similar performance characteristics for a given problem, despite using very disparate strategies.

</comment></comment><comment><USER20> Isn't this all simply about correlation vs causation? Machine learning can find strong correlations and we can make predictions based on those correlations, but at the end of the day, the machine knows nothing about what is causing any of it, and hence is "inscrutable".

So it is up to us to fill the gap in our understanding because that is what machine learning ultimately says about the subject. It tells us what we don't know. If we knew all about the subject, our predictions would match the predictions of the machine because there is only one reality we're both observing. But if there is any gap, then the machine is telling us what we don't know, not what it (of all things) knows. It's just crunching numbers. It doesn't "know" anything.

</comment><comment><USER21> Interesting article. Some things are weird. I don't know why a support vector machine is ranked better than Bayesian nets, or why they are both worse than ensemble methods w.r.t. interpretability.

However, I think the human should not be in the loop. The network should have another semantic layer that serves communication. It can be done from the ground up like Steels or Vogt have been doing.

In other words, yes we need insight, but I prefer it through introspective networks. The network should be able to explain itself.

<comment><USER22> Some people, for example medics and civil engineers, are held legally liable for the decisions that they make. If they are to use machines that help them make those decisions (and mostly they would like to due to the terrible business of killing people) then they have to be able to understand what they are being told to do, or they have to trust it enough to bet their futures on it. If the machine is literally infallible then you can imagine option b being exercised, but being honest, if you were being threatened with five years of jail and you didn't understand why it was telling you to do something would you sign it off?

<comment><USER23> Note the same logic applies to a self-driving car.

</comment></comment></comment><comment><USER24> This isn't unique to neural networks at all. There was a machine learning system _designed_ to produce interpretable results, called Eureqa. Eureqa is a fantastic piece of software that finds simple mathematical equations that fit your data as good as possible. Emphasis on the "simple", it searches for the smallest equations it can find that works, and gives you a choice of different equations at different levels of complexity.

But still, the results are very difficult to interpret. Yes you can verify that the equation works, that it predicts the data. But why does it work? Well who knows? No one can answer that. Understanding even simple math expressions can be quite difficult.

One biologist put his data into the program, and found, to his surprise, that it found a simple expression that almost perfectly explained one of the variables he was interested in. But he couldn't publish his result, because he couldn't understand it himself. You can't just publish a random equation with no explanation. What use is that?

I think the best method of understanding our models, is not going to come from making simpler models that we can compute by hand. Instead I think we should take advantage of our own neural networks. Try to train humans to predict what inputs, particularly in images, will activate a node in a neural network. We will learn that function ourselves, and then it's purpose will make sense to us.

There is a huge amount of effort put into making more accurate models, but much less into trying to interpret them. I think this is a huge mistake, because understanding a model lets you see it's weaknesses. The things that it can't learn, and the mistakes it makes.

<comment><USER25> I appreciate the sentiment of your comment, but, what part of a neural net isn't interpretable? Indeed, they do require more careful examination compared to traditional learning techniques. You can examine the receptive field of each node to infer what it detects for.

</comment></comment><comment><USER26> No, but Nautil.us, with its mandatory tracking cookies, is.

<comment><USER27> You should try self-destructing cookies.

</comment></comment><comment><USER28> We're using these things and we're not even sure how they work. Love it.

At least we should have a standard for characterizing their accuracy or something like that ...

<comment><USER29> > We're using these things and we're not even sure how they work. Love it.

Similar to the human brain in that respect. Ironic that the human brain used itself without understanding how it works to eventually create something it uses without understanding how it works.

<comment> rm_-rf_slash Except human brains are validated by other human brains to be capable of performing a given task. The validations come in many forms with varying degrees of accuracy for the task required. Ex:

-college degree (Doctor)

-employee referral (engineer)

-FizzBuzz (engineer again)

-licensing exam score (driver)

-popular election (supreme commander of the armed forces)

<comment><AUTHOR> The same validation scheme(s) can be applied to AI as well. That doesn't mean their inner workings are any more or less penetrable, just that they pass some minimal threshold of competence.

E.g., AlphaGo is clearly good at Go. Yet it makes moves that can appear inscrutable to a human expert.

(NB: I'm not arguing that inscrutability is or is not an issue for AI systems, just suggesting that third-party validations don't meaningfully address the issue one way or the other.)

<comment> rm_-rf_slash Exactly. I think trying to validate end-to-end is tail-chasing. Reminds me of Adam Curtis' BBC documentary "The Trap," whrein people create a limited theory of human behavior based on game theory, but the attractiveness of numbers results in the reformation of society to better fit those numbers, even if they don't fully represent human behavior and leave us worse off than before.

It's like trying to create an AI to play chess but the creators focus so hard on keeping it from making moves that result in its losing the queen that they forget that the objective of chess is to win.

</comment></comment></comment></comment></comment><comment><USER30> Maybe the community needs a little simulated annealing. It seems the communal views, approaches, and focus are stuck in a local optimum.

Think Different! O'well.

</comment><comment><USER31> To label so-called causative factors or even actual relationships (in a shifting...virtual...hyperspace) among potential relationships is a separate task than to make meaningful predictions or predictable changes. The Universe is inherently a system-less set of potentials. The __strongest system is the one that is indeterminate in its methodologies. Systems are survivors of reduction processes.

</comment><comment><USER32> I can't even understand why deep learning creates better predictions than regular neural nets. How does adding layers change anything?

<comment><USER33> In principle a shallow NN (1 hidden layer) can approximate any function. But it has a tendency to overfit and just "memorize" the inputs. The basic idea of adding additional layers, is that the early layers can learn very low-level features of the data, and later layers combine the low-level features into higher-level features. This tends to make the models generalize well.

A standard example is for a face detection algorithm. The first layer will do edge detection, the next layer will combine edges into corners and simple shapes, the next layer will maybe use those shapes to look for features like eyes, noses, mouths, etc., and then the next layer will maybe combine those features to look for a whole face.

I wrote a more detailed answer here:

[http://stats.stackexchange.com/questions/222883/why-are- neur...](http://stats.stackexchange.com/questions/222883/why-are-neural- networks-becoming-deeper-but-not-wider/223637#223637)

</comment></comment><comment><USER34> Adrian Thompson's 1996 paper was about Genetic Algorithms. A poor overfitting example considering the whole article is prominently about Artificial Neural Networks. Thompson's FPGA components were trained at room temperature and the creatures were unable to function well when the temperature deviates too much from 10 deg. C.

</comment><comment><USER35> Artificial intelligence shows little promise of developing any time soon but still shows promise over long term development.

<comment><USER36> AI has been ten years away for over 10 years so.. it's just around the corner now!

<comment><USER37> Yes, but these days, it can actually identify whether or not a photograph contains a bird.

</comment></comment></comment><comment><USER38> _"What machines are picking up on are not facts about the world," [Dhruv] Batra says. "They're facts about the dataset."_

This seems analogous to 90% of (random, unreplicable) science these days.</comment>


Death of the Relational Database 2010 - <AUTHOR> http://whydoeseverythingsuck.com/2010/08/death-of-relational-database-2010.html <comment><USER2> Another kid who thinks the web is the entirety of computing.

 _There are several early products and technologies that implement graph database technology, including the one my company is developing_

Those who forget history are doomed to repeat it, first as tragedy, then as farce.

<http://en.wikipedia.org/wiki/Information_Management_System>

IBM did this in 1966. Yes, _66_.</comment>


/e/ plans to sell refurbished smartphones with Google-free Android - <AUTHOR> https://liliputing.com/2019/05/e-plans-to-sell-refurbished-smartphones-with-google-free-android.html?ut <comment><USER2> Odd brand name. I thought it was a 4chan forum.

That said, I'm glad someone is taking the baton on this challenge, and I wish them the best.

<comment><USER3> Naming themselves e.foundation is one thing, but explicitly naming it "/e/" does seem a bit odd.

For reference for those unaware (likely many of you), /e/ is the 4chan board dedicated to 'ecchi' content, where ecchi is loosely defined as a 'slang term in the Japanese language for playfully sexual actions' ([https://en.wikipedia.org/wiki/Ecchi](https://en.wikipedia.org/wiki/Ecchi)).

Apart from the name, will be interesting to see how well they can succeed with a "Google-free Android", which is much easier said than done.

<comment><USER4> Perhaps it's a reference to the type of content you're intended to consume using this phone... somewhat like how the private browsing mode of browsers has been called "porn mode".

<comment><USER5> Aha! ...Surely enough, seeing creative memes and jokes like this is part of the reason for me to be online... Now some 4chan denizens have already started making NSFW memes about this project, and I genuinely believed it was a just a meme initially.

But what an unfortunate name it is... You absolutely cannot be associated with these things if you don't want your project to be the next victim of some trolls' plans for the post-modern performance arts or drama, e.g. [0], [1], or [2]. I hope they'll pick up a better name soon.

[0] Don't be fooled by Apple ads that tell you to bend your iPhone 6

[https://www.dailydot.com/upstream/4chan-iphone-6-bend- prank/...](https://www.dailydot.com/upstream/4chan-iphone-6-bend-prank/?tw=dd)

[1] 4chan is at It Again With Their Trolling of iPhone Users

[https://cheezburger.com/316165/4chan-is-at-it-again-with- the...](https://cheezburger.com/316165/4chan-is-at-it-again-with-their- trolling-of-iphone-users)

[2] A split within the Tox project

[https://lwn.net/Articles/651003/](https://lwn.net/Articles/651003/)

> _" The Tox project was started in mid-2013 by users on the 4chan message > board."_

</comment></comment></comment></comment><comment><USER6> Google-free Android already exists, it's called Lineage OS

So, What's the difference between this and LineageOS?

<comment><USER7> One thing I noticed is that Lineage OS (and others) pings Google servers to check that the internet connection works. Which was hilarious to find out in China, where I'd connect to Wifi and it'd tell me I have no internet.

You can disable this check through ADB and then go manually into Firefox and go to [http://detectportal.firefox.com/](http://detectportal.firefox.com/) to open up wifi login portals. It's a bit of drag - but it works

It's crazy to think Google knows when every Android user logs into a wifi.. I'm not sure how much info can be inferred from the ping - but still

<comment><USER8> You can also keep the check enabled but change the pinged URL via adb[0]. The check expects a HTTP 204 response which can be easily set up on a personal vps using apache or nginx.

[0] [https://android.stackexchange.com/questions/186993/captive-p...](https://android.stackexchange.com/questions/186993/captive- portal-parameters)

</comment></comment></comment><comment><USER9> I love the idea of this, but what's the market?

Wouldn't the people interested in this kind of thing mostly be capable of doing this themselves, i.e., not willing to pay the premium?

<comment><USER10> As people (including geek types) age, they tend to wish for simpler, more functional technology. They may still care about privacy, but may prefer more support and ease-of-use. That is likely there market.

Unfortunately, I think it is the current generation of geek types that will care most about privacy, and so they may be a good bit ahead of their market.

</comment></comment><comment><USER11> The cheapest model is 279€...I think they are missing the point here. The audience which is ready to pay those prices, won't buy refurbished phones...

[https://e.foundation/e-pre-installed- smartphones/](https://e.foundation/e-pre-installed-smartphones/)

<comment> em-bee i'd love if they get brand new midlevel phones and re-sell them for a premium with /e/ preinstalled.

<comment><USER12> Is that not what they're doing? If they did follow your plan, the phones they sold would be "refurbished phones".

</comment></comment></comment><comment><USER13> Is the proprietary parts of the phone (such as the cellular modem) still supported with firmware updates?

</comment><comment><USER14> When you buy a refurbished phone from a third party, you are usually buying a broken phone that a customer returned under warranty or traded in. These phones tend to boot up OK and pass startuo health checks, and then crash or have component failures (battery, mic, etc) within a few hours or if the weather gets hit or humid.

<comment><USER15> On the flip side a refurbished item was inspected by a human and deemed to be functional. A new item was probably last touched by a robot.

<comment><USER16> And manual testing is so much more reliable than automated testing, right?

<comment><USER17> For _hardware_? I'd say it probably is, yeah.

<comment><USER18> There are lots of functions in the modern cellphone. I am sure they are checked on the factory (or by parts manufacturer), and I don't think people who refurbish phones test them all. Examples I can think of:

\- Microphone and button on your 3.5mm jack

\- Both Bluetooth data rates

\- Every special function of MicroUSB connector (like MHT and whatever else you might have there)

\- Second microphone (used for noise cancellation)

\- Low-light camera performance

\- Flash memory spare cells

\- Thermal stability (does it overheat?)

\- Battery capacity

\- Every frequency band works

I can believe that manufacturer-refurbished phones are probably tested fairly comprehensively -- after all, the same people designed the original testing procedures.

But would an unrelated store do a comprehensive cell phone test? Or are they just going to turn the phone on, make sure that the screen looks fine, make a single call (in the nice, quiet office not far from the cell phone tower) and call it done? Somehow I suspect the latter.

<comment><USER19> I have bought a few used phones, and there is always something quirky that makes you wonder if you got a lemon. Sometimes it is just existing manufacturing faults, but how can you know?

An example: the WiFi connectivity is unexpectedly poor on a second hand phone, which could be caused by dozens of different issues, and some of those issues could be due to being dropped, liquid damage, poor remanufacturing, or component drift...

We bought a refurbished PC recently, and while upgrading the SSD, I noticed a shield around the CPU was completely misfitted: manufacturing fault or refurbishment error?

</comment></comment></comment></comment></comment></comment><comment><USER20> I use a Xiaomi Redmi S2 purchased in China. Simplest way to run G-free and its damn fine equipment. #justsaying

<comment><USER21> Hmm; would I rather Google have access to my data, or the Chinese Government?

<comment><USER22> Also, the American government/5E.

<comment><USER23> I know for sure that world politics is truly a very grim state of affairs when I view the American government as less of a threat than Google or China.

</comment></comment></comment></comment><comment><USER24> How is this better than buying a refurbished phone yourself and flashing microG+lineageOS on it?

<comment><USER25> How is Dropbox better than rsync+vps? A lot of innovation in tech consists of making things that are straightforward for a technical person to do and making them trivial for an ordinary person to do.

</comment></comment><comment><USER26> I wish they included models with removable batteries, but I think the last Samsung phone to have it was the Galaxy Note 4 in 2014.

</comment><comment><USER27> Why don't they support the Samsung S8, when they support the S7 and S9? How odd.

<comment><USER28> I own a s8. There are no working custom ROMs for it, samsung decided to make that particular phone unusable without their stock build. I will not buy Samsung again.

<comment><USER29> Hey, do you know what the technical problem is? And thereby also what the change in the S9 is that allowed it to happen again?

Edit: Good old XDA, it never changes. From a thread about an unofficial Lineage build:

"/* What's working _/

Audio

Bootanimation

Brightness Level

Bluetooth

Microphone

MTP

Wi-Fi

LED

All sensors except fingerprint reader

SD Card

Capacitive buttons

/_ What's not working _/

Bluetooth audio

RIL (calls, sms, microphone, data) _works only in first boot

NFC

Camera

Fingerprint reader

Torch

Wi-Fi Hotspot"</comment></comment></comment>


Composer is now a first-class Eclipse citizen - <AUTHOR> http://blog.dubture.com/2013/04/composer-is-now-first-class-eclipse.html

<comment><USER2> For those that don't know, Composer is PHP's darling of a dependency manager.

I've completely stopped using PEAR and managing outside dependencies by hand - Composer has completely changed how many developers and projects work, and is one of the biggest reasons for people adopting the PSR-0 standard.

</comment><comment><USER3> Just a sidenote: People in Germany cannot watch the video on <http://composer.dubture.com/> because of music rights.

 _sigh_

(and yes, I know about proxtube - just thought it'd be interesting for the project)

</comment><comment><USER4> how many PHP developers really use _Eclipse?_

<comment><USER5> Well, Zend Studio and Aptana are eclipse-based, and there's PDT - so I'd say a decent chunk.</comment></comment>


BitBucket vs GitHub - <AUTHOR> https://www.atlassian.com/software/bitbucket/comparison/bitbucket-vs-github <comment><USER2> I know this was written by Atlassian, but I wanted to chime in to say that using BitBucket + Jira has been fantastic. BitBucket in general has just been a better UX than GitHub ever was.</comment>


Facebook and Instagram are updating themselves outside of Play store (2017) - <AUTHOR> https://www.reddit.com/r/Android/comments/6aycy1/facebook_and_instagram_are_updating_themselves/ <comment><USER2> A couple of my devices have Facebook in the stock bloatware; it can be disabled on a per-session basis, but it cannot be removed (without rooting).

Even though I have auto-update for apps disabled, the bloatware apps can update _whenever they want_ , so it's typical that shortly after I power on a device, it will go through one or more update downloads and installs I can't prevent... even if I'm using a metered hotspot.

</comment><comment><AUTHOR> Its 2018 now and i just got this weird side-update on my (excellent) Xiaomi.

I have Instagram installed, but never install FB. Just got notified that "FB App manager" has updated a new Instagram version.

Yuck</comment>


Mongorito - MongoDB ODM for Node.js - <AUTHOR> http://vdemedes.github.com/mongorito

<comment><USER2> Looks interesting, but (as so often with node libraries) a little more focus on why people should use _this_ package would be nice. :)

</comment><comment><USER3> How does it handle sub documents? This is something I have found no node.js library does well.

Also what about relations?</comment>


Art of Manliness: A Great Blog for the Man in You - <AUTHOR> http://crenk.com/art-of-manliness-a-great-blog-for-the-man-in-you/

<comment><USER2> Why not link directly to the blog, rather then some other one saying how good it is?

Edit: Based on all your submissions, are you just spamming your own blog?

<comment><USER3> Right? Every. Single. Submission.</comment></comment>


Ask HN: Remote workers, what's your backup plan? - <AUTHOR> Remote workers, what's your plan if your job disappears, for whatever reason, and you are unable to find a replacement, locally or remote, with commensurate salary?  Is this even a concern for you? <comment><USER2> Why would this be only a concern for remote workers? You'd have the same potential issues if your local job disappeared for whatever reason, with similar potential courses of action available.

<comment><AUTHOR> I had a longer response written out, but to simplify, I think the risk is if remote work ever becomes hyper-competitive, falls out of fashion, or otherwise not able to fit ones needs. I speculate that's far more likely to happen in the remote than local job marketplace.</comment></comment>


Ask HN: How should a Kickstarter work with its backers? - <AUTHOR> Hi Hacker News readers! I'm the marketing person for a startup that making a sustainable alternative to chemical glowsticks which is powered by bioluminescence.
It looks like we will reach our Kickstarter goal very soon so I had a question for all you awesome people. How should a small startup communicate/keep in touch with their Kickstarter backers? Were there things other folks did that you liked or disliked? What else should we keep in mind?
Also I'd be happy to answer you questions if you have any!
Otherwise I hope you all have a wonderful day.
Link here: https://www.kickstarter.com/projects/pagexrage/eco-friendly-glow-stick-powered-with-bioluminescence/description <comment><USER2> Post tiny progress updates at least every two weeks so your backers never feel abandoned. Make bigger announcements for major milestones.

<comment><USER3> This.

Always communicate, but never spam. I don't need an email again, if nothing really happened and you just let my inbox explode with 100 crappy gifs.

But four weeks without anything is also bad! I _want_ to see you making progress and things are going well.

And explain everything! If you decide to make a thing different, just don't announce it – say why you made this decision.</comment></comment>


Whitespace - <AUTHOR> http://compsoc.dur.ac.uk/whitespace/ <comment><USER2> FWIW I made a Whitespace compiler for .NET as an exercise a few years ago. It works with Microsoft .NET and Mono, and emits compiled MSIL code.

<http://spacesharp.batard.info/>

</comment><comment><USER3> Here's a list of languages in the same vein:

[http://en.wikipedia.org/wiki/Category:Esoteric_programming_l...](http://en.wikipedia.org/wiki/Category:Esoteric_programming_languages)

</comment><comment><USER4> It's not brainfuck* though, is it?

* <http://www.muppetlabs.com/~breadbox/bf/>

<comment><USER5> aren't whitespace, brainfuck* and ook! the same languages (just differently named keywords)?

</comment></comment><comment><USER6> Amusing as this may be it's not very impressive, since it's easy to code any program in any language as sequences of whitespace and then simply decode before passing it to the translator or compiler.

<comment><USER7> My favourite example of which is perl's Acme::Bleach <http://search.cpan.org/dist/Acme-Bleach/lib/Acme/Bleach.pm>

</comment></comment><comment><USER8> The wars over source code formatting must be epic!

</comment><comment><USER9> I can't wait for a printed book about this new language.

</comment><comment><USER3> It's also interesting to note that you can select all text to "see" the whitespace code, although that only works for me in Firefox, not in Chrome.

<comment><USER5> no, you can't. you see the just the silhouette of the code, not the while code itself - because when selected, tabs and multiple spaces rougly look the same.</comment></comment>


Bisected: The Unfortunate Reason Linux 4.20 Is Running Slower - <AUTHOR> https://www.phoronix.com/scan.php?page=article&item=linux-420-bisect&num=1 <comment><USER2> In case people don't like the headline style (leaving out the reference to the answer), the answer given at the end of the article is new Spectre mitigations.

We new that speculative-execution mitigations would sometimes reduce performance, and evidently they do. :-(

</comment><comment><USER3> This was known. [https://lwn.net/Articles/765837/](https://lwn.net/Articles/765837/) reports 21% performance impact and the plan was to handle STIBP as an opt-in security feature. I am not sure why that was not furthered in the patches that have actually been committed to Linux, as I did not follow them closely.

<comment><USER4> Apparently the way to turn this and other mitigations off is the following mouthful:

        pti=off spectre_v2=off l1tf=off nospec_store_bypass_disable no_stf_barrier

Would it make sense to have a single flag to "run insecure but fast" that we can use on pure development machines, test servers and the like? My Intel development server only runs code I choose.

<comment><USER5> Hey boss, I don't understand why the code works in devel but fails in production?

<comment><USER6> You're implying (with unnecessary snark) that:

1\. Development machines should be configured identically to production machines. (Do you install a GUI and development tools on your production servers?) Occasional differences in behavior between development/production are par for the course, and is why staging environments are commonly used.

2\. The mitigations affect the execution result of code likely to be developed/executed at a typical software shop. AFAIU the attacks are timing- based, and won't affect valid code that's not specifically looking to exploit them.

<comment><USER7> try convincing a corp sec dept in large org to sign off on disabling anywhere.

</comment></comment></comment></comment></comment><comment><USER8> Intel was supposed to have 20-30% advantage on single thread performance over Amd. Now I guess single or multiple thread AMD is better on Linux. I don't know why it makes me giddy thinking of the coming consumer wars between the 2.

<comment><USER9> This is how it should be. And this is going to net positive thing for AMD.

If performance takes a hit by about 20% it is going to be noticeable. Next up I think people will start looking to upgrade to a faster CPU just to get back to last week's performance metrics. They might now consider AMD.

If AMD finds this affects them less they should sponsor security researchers writing proof of concept exploits to convince people that that turning off the mitigation is an absolute no-no, so it will for force people to take a performance hit and go shopping for CPUs.

</comment></comment><comment><USER10> Is there a comparison table of CPU vulnerabilities? I would like to know which CPU has the least vulnerabilities or the best performance after patching.

From what I have read so far is seems that AMD CPUs have had the fewest vulnerabilities/slowdowns? But I can't be sure since I haven't seen a complete comparison (including these new vulnerabilities).

<comment><USER11> I don't know of any comparison table. There are two family of vulnerabilities at play when talking about Spectre and co:

\- The general Spectre family, which affects most (if not all) CPUs built with speculative execution.

\- Meltdown and L1TF, which only affects Intel CPUs due to them delaying security checks until after speculation has taken place.

AMDs, ARMs, etc. that use speculative execution are going to be vulnerable to at least some variant of Spectre (there are 4 variants known right now). ARM published a table[0] explaining which of their CPUs are vulnerable to which variants. I'm not aware of any such table for Intel or AMD.

Microsoft published some interesting tables[1] explaining which mitigation protect against which Spectre variant, and under which thread models they operate.

[0]: [https://developer.arm.com/support/arm-security- updates/specu...](https://developer.arm.com/support/arm-security- updates/speculative-processor-vulnerability)

[1]: [https://blogs.technet.microsoft.com/srd/2018/05/21/analysis-...](https://blogs.technet.microsoft.com/srd/2018/05/21/analysis- and-mitigation-of-speculative-store-bypass-cve-2018-3639/) (scroll down for the tables)

</comment></comment><comment><USER12> Latest test ( 17 November 2018 ) :

"The Spectre/Meltdown Performance Impact On Linux 4.20, Decimating Benchmarks With New STIBP Overhead"

[https://www.phoronix.com/scan.php?page=article&item=linux-42...](https://www.phoronix.com/scan.php?page=article&item=linux-420-stibp&num=1)

</comment><comment><USER13> According to this [1], the coffee lake refresh has hardware mitigation to meltdown variant 3 and variant 5 (which are only a few of all the things).

Would that hardware mitigation reduce this performance loss?

[1]: [https://www.anandtech.com/show/13400/intel-9th-gen- core-i9-9...](https://www.anandtech.com/show/13400/intel-9th-gen- core-i9-9900k-i7-9700k-i5-9600k-review/2)

</comment><comment><USER14> Is Intel already selling CPUs which don't need these patches?

<comment><USER15> Not in x86 architecture.

<comment><USER16> Then in which architecture?

<comment><USER17> They still sell Itanian, I don't think Spectre/Meltdown affect that product line.

<comment><USER18> *Itanium, and they would likely suffer from the same attacks (maybe not due to being a completely different architecture, but being from thw same company, not sure if there isn't crosspolination between the two), but dont think anyone has looked at them due to small market pressense.

<comment><USER19> I would expect the opposite. Meltdown and Spectre both make use of peeking at implicit state that chips hang on to in order to optimize microcode; the entire goal of Itanium was to offload this optimization from the chip to the compiler.

A little Googling found an analysis from someone more knowledgeable than myself that backs this up: [https://secure64.com/not-vulnerable-intel-itanium- secure64-s...](https://secure64.com/not-vulnerable-intel-itanium- secure64-sourcet/)

tl;dr Meltdown takes advantage of out-of-order execution, which Itanium simply doesn't have. Spectre makes use of speculative execution, which Itanium only has in a version too limited to support the attack.

I'm not an expert in this field so I can't attest to the credibility of this analysis. The Spectre part in particular sounds a little hand-wavy but it might just be over my head. But it aligns with my intuition, which is that the simpler and more explicit architecture doesn't have as many places where data can accidentally end up.

</comment></comment></comment></comment></comment></comment><comment><USER20> This is somewhat unfortunate for older-gen hardware. The difference between chugging-along but usable vs 20% reduced performance is crippling.

<comment><USER21> I was thinking that it might be an overall large boon to Intel due to all the new computers everyone will buy...

</comment></comment><comment><USER22> 1.3-1.4x slowdown is a lot more than I expected (I know it's for synthetic benchmarks but still...)

Can someone explain (or link to an article) how a tweak to HT branch prediction heuristic can have such a huge impact on performance?

<comment><USER23> The impact is big enough that one would suspect the microcode simply disables indirect branch prediction, so you pay a 16-20 cycle penalty per branch. Indirect branches just aren't frequent enough to explain such a regression via say a simple reduction in prediction resources.

I can test it once I get the new firmware.

<comment><USER24> > Indirect branches just aren't frequent enough

aren't vtable calls / function pointer calls indirect branches ?

<comment><USER23> Yes, they are (at least when the compiler cannot devirtualize them) - but they make up a fairly small fraction of the total instructions in a typical program - and probably very small in something like cinebench, which also showed a big regression.

<comment><USER24> > but they make up a fairly small fraction of the total instructions in a > typical

but if their cost increases by a large factor... besides, in any large compiled program, the core would certainly be based around some kind of programmable pipeline, and these would generally be implemented like this unless they wrote their own JIT compiler.

<comment><USER23> Yes - but for their cost to increase by such a large factor, the only obvious thing I can think of is that their prediction is disabled.

I didn't follow your comment about a "programmable pipeline". I don't think many or any of the Phoronix benchmarks are based on a pipeline with indirect branches at their core.

<comment><USER24> > I don't think many or any of the Phoronix benchmarks are based on a pipeline > with indirect branches at their core.

I think a bunch are. e.g. for instance FFMPEG / libavfilter which is basically a node graph set up at runtime. Don't know for cinebench since it's closed source, but Blender present in the benchmarks is also based around a nodal rendering architecture. Stuff like PHP / CGI also heavily depend on function pointers for their behaviours - PHP with its plugin architecture, and CGI where all web requests go through FPs : [https://github.com/php/php- src/blob/master/main/fastcgi.c#L8...](https://github.com/php/php- src/blob/master/main/fastcgi.c#L880).

<comment><USER23> Right, I think I understand what you are saying about "pipelined" implementations. Sure, I can believe that at a high level there are some indirect branches to implement some kind of processing pipeline: but you'd have thousands or millions of instructions doing the heavy lifting for each chunk of data that passes though the pipeline, for every branch that you need to take to get to the next stage.

So I still doubt that that indirect branches are "dense" in those benchmarks: it just doesn't make sense since the core work they are doing are highly tuned encode/decode/whatever kernels, even if there is a control layer over top of that using indirect branches.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> The lede is literally the last line in the article:

> _But why is it slower? More work on f &#!_#(# Spectre! _

<comment><USER26> There is a second page: [https://www.phoronix.com/scan.php?page=article&item=linux-42...](https://www.phoronix.com/scan.php?page=article&item=linux-420-bisect&num=2)

</comment></comment><comment><USER27> No mention of the fact that AMD seem unaffected?

<comment><USER28> It's mentioned in two different places in the article.

<comment><USER27> Indeed, though the headline seems kind of odd to me given that it's specifically an Intel problem as far as I can tell, it'd be nice to have _some_ mention in there (even if people following this can guess anyway).

</comment></comment></comment><comment><USER29> I don't like how these Scepter mitigations are being rolled out with no cost/benefit analysis. On a client machine, I'd rather just disable Javascript than pay a 30-50% performance penalty for mitigating these vulnerabilities.

<comment><USER30> I would rather wait for reports of dangerous JavaScript exploits in the wild, myself. Considering that no real-world exploits of Spectre and related attacks have actually been reported, the odds that I'll fall victim to such an exploit without hearing about it in plenty of time to mitigate it are in the millions to one.

Instead, everyone has to pay the performance tax proactively, regardless of their individual threat model. That is not how this sort of thing should be handled.

<comment><USER31> Would you like a nuclear powerplant to be ran with this kind of approach to safety? Given the amount of possible targets and how unreliable people can be at assessing what risk they're exposed to, having mitigation active by default is obviously the only sane answer.

<comment><USER32> Somehow I doubt nuclear power plants run (unmodified) Linux kernels released in the last 5 years

<comment><USER33> Exactly... they're running on XP so it's all good

<comment><USER34> When I went to Sellafield they had Win3.1 on the fuel rod chopping machine in the reprocessing plant (admittedly in '97!)

</comment></comment></comment></comment></comment></comment><comment><USER35> If you could turn off speculative execution completely I bet that would eliminate all the security concerns, but performance would be abysmal. The Linux kernel really can't be a "one size fits all" type of thing --- an environment where no mutually untrusting code is run has very different security requirements from shared cloud hosts, for example. Personally I think it's all a bit overblown, probably due to owners of the latter environments.

</comment><comment><USER36> Why is so much code being added to a kernel?

<terms of lines of code changed with more than 354 thousand lines of new code added at the end of October when this merge window opened.

<comment><USER37> Someone once had the great idea that drivers should be in the same codebase as the kernel. Crazy, I know.

<comment><USER38> It doesn't seem crazy to me that something that runs in kernel mode and uses kernel APIs should be in the kernel codebase. What are the downsides?

<comment><USER39> Why should drivers necessarily run in the kernel? With appropriate abstraction for interrupts, DMA, etc. much of the work could be done in userland.

<comment><USER38> That's true, but it's AFAICT a separate question.

The question I was responding to was: "accepting that, rightly or wrongly, Linux drivers run in kernel mode, does it make sense for them to be in the source tree?"

</comment></comment></comment></comment></comment><comment><USER40> Big win for AMD!!!

<comment><USER41> It's times like this when I'm glad I went with a Ryzen chip instead of whatever Intel has on offer. Not only do I get a ton of cores, but now my chip performs better than the competition!

The only real problem I've had has been with soft lockups, which I was able to solve by disabling a power saving feature on the CPU. If AMD doesn't mess things up, they can really catch up to Intel in the next couple years while Intel is working on fixing their issues.

</comment></comment><comment><USER42> Think I will wait at least 1-2 more years for all this to shake out before I buy a new computer.

<comment><USER43> You'll get a much better deal anyway if you do that. I never buy the current generation of hardware. Much better value per dollar to buy one or two generations old. Unless you absolutely need bleeding edge performance.

</comment></comment><comment><USER44> Does the article not actually mention the reason? (I mean, I know it's STIBP, but it never says that?

<comment><USER45> it's on page two. Why a short article like this has pages though...

<comment><USER46> I saw the social buttons and assumed end of article, very bad design.

<comment><USER47> me too!

</comment></comment></comment></comment><comment><USER45> previous: [https://news.ycombinator.com/item?id=18474289](https://news.ycombinator.com/item?id=18474289)

</comment><comment><USER37> I assume this is not a problem if I disable hyperthreading?

<comment><USER48> Probably you'll lose more performance.

<comment><USER49> As always, this depends on your workload.

<comment><USER37> As of today still most of the software I use seems to get stuck in one core of my CPU when calculating stuff so I'd argue that by enabling HT I'm _losing_ performance.

<comment><USER48> That's not really clear from the article, but I suspect that performance drop is from multithreaded software. And sure, if you are observing performance degradation with hyper-threading, there's 0 reason to keep it enabled. OpenBSD guys suggest to turn it off after all.

<comment><USER50> The article claims a 30% perf slowdown with PHP. The majority of PHP workloads are single threaded. That causes me to suspect this impacts single core workloads too.

<comment><USER3> Yes, on some processors basically it's _as if_ all userspace was recompiled to use retpolines. Enabling STIBP promises that one thread cannot influence the indirect branch predictor's operation when the sibling runs; on those processors the indirect branch predictor is completely disabled, which is an inefficient but valid way to implement STIBP semantics.

</comment></comment></comment></comment></comment></comment></comment><comment><USER51> I'm just sitting here waiting for all the security fiasco to stop ruining performance for ridiculous unpractical attacks. Just a matter of time, the pressure for better performance in a world where moore's law is getting stuck will eventually cause every sane person to throw these ridiculous patches out of the window.

If the choice is between unsecure but fast to secure and slow, the default should be fast. Let applications who care about side channel deal with it their way, why the fuck should everything be so slow just so that few apps which actually care about side channel will be secure?

<comment><USER52> And I'm sitting here waiting for the industry to start taking security seriously. These are not ridiculously unpractical attacks. These are attacks that have been hypothesized for years and are only now getting attention because people finally started to create (public) demonstrations. I would be shocked if there were not already non-public exploits based on these vulnerabilities.

The only reason these attacks even have the appearance of being unpractical is because there are so many other areas of our computing systems that are even easier to attack.

The only reason we are in this current Spectre et. al. mess is that CPU vendors choose to prioritize performance over security, and we now have to live with their bluff getting called for another hardware generation or two. I suspect that the performance impact will be far less when the fixes are done during the hardware design process, instead of figuring out how to bolt them on after the fact.

Ultimately, I think we are overdo for a new computer architecture (both in terms of security and performance, we are being encumbered by the need to keep new architectures backwards compatible with old ones).</comment></comment>


Ask HN: Continue contracting or take F/T? - <AUTHOR> Ok so after 2 years of contracting independently (software development) I'm looking at an F/T job.
Contract extension:
5 months (already did 7 months previous contract)
$70/hr ~ $11,200/mo before tax
15% corporate tax (ontario)
15% dividend tax
large stable company, dreadful environment (very old school),
some good people though and autonomy on how I approach my projects
open concept office means often times hard to focus, pretty dreadful days, end up wasting my evenings
F/T job:
$90/k year
completely remote
allows me to travel a bit
allowed me to be approved for a mortgage
teammates I work with have been there for a decade,
pretty stable company
benefits (dental, eyeglasses)
I want to experiment a little bit more before I settle down (I'm 30). The remote job is less money but it provides me a ton of freedom in how I structure my day. It would be imperative that I work on my side projects in order to make the most of it. I'm not sure which way to take because I don't really know what I'm after right now. Just looking for some common sense opinions. <comment><USER2> Since you are an independent contractor you have more flexibility and can move on to something else that you like very quickly, since you are picking your clients. Once you take a regular salary job you may like it for awhile, but eventually being your own boss will creep back up and you will also see that your earning potential in the short and long term will deteriorate faster which does not happen as fast as a contractor since you can increase your rates to keep up with inflation, rise in taxes, bills, etc as you see fit. If you want to work remotely define this in your next contract. As an employee you do not have much negotiating power and do not set the terms, as an independent contractor you have more negotiation power. Also, remember that in a salaried job you may not get a bonus or a raise, normally raises are a low 3% which is gobbled up by taxes which takes you down near 1.5% raise. You also do not have the capability to work overtime and be guaranteed to get paid for every hour you work.

I recommend sitting down and doing more number crunching and compare the benefits you have as an independent contractor versus a salaried employee. As an independent contractor you should be adding the costs of your profit margins, dental, health, car insurance, investments, emergency savings, vision, vacations, training, certification, continuing education, hardware, software, sick pay, etc into your hourly rate and projected costs in your proposals.

Just running some rough numbers ($70 x 40) x 52 = $145,000 - 30% = $101,920, which is not much for software development especially in a major city (your underpaid). I would recommend charging more and finding a better client. Normally you should be able to get $140/hour which would be ($140 x 40) x 52 = $291,200 or $24,266.67/month before taxes. If taxes is 30% then you have around $203,840.00 a year or $16,986.67/month which is a comfortable rate for a good software engineer that is a contractor (Their own business). You may have to adjust that rate if you are still starting out but it should not go under $100 an hour ($208,000 - 30% = $145,000 or $12,133.34/month).

Companies know going in that a contractor will cost more because they are their own business, they are counting on it since you should be more experienced or specialized than someone they hire as an employee. The worst thing you can do is underbid/under value yourself and the quality you provide. If you do not like the client find a higher quality one, normally the really good clients will pay more and keep you on contract longer due to the quality you provide and capabilities that are not available from an employee. You also have the wonderful opportunity to have multiple clients at one time if you choose.

</comment><comment><USER3> A neutral observation:

Qualifying for a mortgage seems inconsistent with being in 'before I settle down' mode.

Good luck.</comment>


Ask HN: What have been your experiences using Piracetam? - <AUTHOR>

Recently, I have heard and read some interesting things related to the usage of Piracetam as a cognitive enhancer.
It would prove rather useful to have the opinion of other hackers, whose most important asset lies between their ears.
What have been the benefits/side effects you have experienced? Would you recommend taking it, considering the pros and cons of its consumption? In which doses do you ingest it?
All this in order to make an informed decision about taking it, or not. <comment><USER2> my mom is using it (1200 mg / day, 400 mg each morning, afternoon and evening)

her neurologist prescribed it because my mom got stroke and got clogged artery near neck. she got little oxygen to her brain. the mri shows black areas in her brain.

my uncles (a lot from my mom's family are doctors) describe piracetam as merely vitamin or nootropic, it doesn't cure anything

i'm not sure whether it's safe to completely dismiss piracetam for her. last year her dose was 2400mg/day. after hearing my uncles i decided to reduce it to 1200mg/day and never seeing the neurologist anymore (his prescriptions are mostly vitamins, dha, ala, omega3, etc) because i don't see value in it

anyway so far, nothing bad happened after reduction. it's probably safe to be completely independent from nootropic and using diet + exercise as natural alternative

</comment><comment><USER3> I took it in college. It made me smarter. No doubt about it. I'd take some and have to run off to the library to lookup things in back issues of journals such was my thirst for knowledge.

It was potentiated like CRAZY by coffee and adderall.

</comment><comment><USER4> I took it for a few weeks last year. I didn't notice any more improvements than I'd notice just from being well hydrated.

</comment><comment><USER5> I didn't notice anything.</comment>


NYC mayor demands $600M refund on software project - <AUTHOR> http://www.itworld.com/software/179037/nyc-mayor-demands-600m-refund-software-project <comment><USER2> _CityTime was launched in 2003 at a budget of $63 million, but costs swelled dramatically as the project stumbled along for nearly a decade._

From $63M to $600M? I would have thought that ppl may have noticed when the costs doubled or tripled the budget. Almost 10x the original budget? That type of oversight must go pretty high up.

<comment><USER3> I've been on the wrong end of a couple of projects like this, and in my experience (not necessarily indicative of this case) the customer can be VERY at fault.

I've been dragged into 'feature acceptance meetings' that literally dragged out for weeks when testing of a new chat component devolved into a days-long discussion on whether the graphic in the header (provided by the customer) was appropriate. The unspoken issue proved to be that they didn't want us to use 'barren trees' in the picture of their building. We switched the photo used from one taken in winter to one taken in summer. This took something like 400 man-hours to resolve, after which we achieved signoff, but at the expense of having met budget.

Another instance on the same product was feature creep to the extreme. We had originally won a firm-fixed contract, meaning we would build products a, b and c for x dollars, and if it cost us more, it came out of our pocket. If it cost us less, we pocketed the profits. The customer decided, on day 1, that they actually wanted a lot more features than were described in the project scope defined, and that we won a legally binding contract to perform. Out of accomodation, we changed their product to a time-and-materials contract, meaning we had a fixed markup on labor and a minimal markup on hardware / tangibles. This then involved them dragging the project out for years longer than anticipated and signing invoices all the way, then griping at us on the budget near project completion and asking for a bunch of free labor (which is illegal under their new contract). The problem in that case was that the project management and senior execs changed repeatedly. We were at first working with their Office of Science and Technology, then with Information Services, then with Public Affairs. Each of these department changes involved swapping our equipment out so that we could have appropriately charged-back equipment to the appropriate department, which meant weeks of non-work. Each department had a different spin on what they wanted out of the project. We spent 8 months and thousands of man-hours implementing a very elegant services oriented architecture that could surface all of their legacy systems to a single web portal. Then we changed departments, and they literally told us to turn that feature off, and instead focus on a visual redesign. We implemented a single sign on service that we integrated with our product, but could be extended to work with literally every system in their enterprise. It was abandoned due to a department change.

During the first phase of the project, we'd worked with the customer to build out their data center. They wanted a new data center because the division that owned the project was going to be adding a bunch of other programs to integrate with what we were building. They spent over a year on construction, converting a service garage into a data center. They bought millions of dollars worth of EMC storage hardware and Cisco routers. Then they realized that they didn't have any budget planned for out-year maintenance, so they moved the venue. That was somewhere in the realm of $50 million dollars that was literally just thrown away, as the last I heard, they were re-converting the data center back into a garage.

In short, government contractors catch a lot of flack, because they control the visibility of these things. The contractors often can't speak to details of these projects due to security clearances or NDAs, and at the end of the day, the government is always happy to blame the vendor. It's well practiced, and designed with a variety of scapegoat clauses built in.

<comment><USER4> what? it took 400 man hours to replace a logo?

<comment><USER5> 400 man hours to _decide_ to replace a logo, big difference. That's what you get when you design by committee.

<comment><USER3> Exactly right.

Replacing the logo itself took all of about 30 minutes (receive new picture, digitally retouch, overlay onto background image, resize, play around with transparency, save to png.)

Also, bear in mind, the 400 hours is 400 man-hours, which is a cumulative number based on the number of people involved. If you've never done business with government, let me assure you, it was a lot more people than necessary.

<comment><USER6> Absolutely. The man hours can easily pile up when you do a conf call with a half dozen folks where majority of them are on mute 90% of the time.

I recently did contract work for an agency and had instances where a simple spacing or image resizing took days of work because the client or the agency would understand and then forget that I must crop and/or resize images for them all to be of one size.

</comment></comment></comment></comment></comment></comment><comment> n-ion Maybe some of you know, maybe some of you don't - but the real hero here in bringing these people to justice is Juan Gonzalez <http://en.wikipedia.org/wiki/Juan_Gonzalez_(journalist)> He did the reporting that led to the federal indictments. Went on to win the 2010 George Polk award for exposing them. [http://www.democracynow.org/blog/2011/2/22/juan_gonzalez_win...](http://www.democracynow.org/blog/2011/2/22/juan_gonzalez_wins_2010_george_polk_award/)

</comment><comment><USER7> _Although New York has "received a working system that will advance our management ability ... because the project was apparently tainted by fraud and kickback schemes, the City must be made whole"_

...

 _The city is also planning to launch a request for information (RFI) process in January in search of alternative timekeeping systems._

Wow. So they eventually got a working system. Now they're throwing it away and going to purchase a new one? Meanwhile turning 83 contractors into FTE's to maintain the existing system? This seems like complete craziness for something as commoditized as timekeeping software.

<comment><USER2> Timekeeping systems are actually extremely complicated. EXTREMELY sophisticated. The level of detail it takes to get one right is painstaking, and it is key to a city's survival. It's complex enough that you wouldn't understand it, nor would any auditor.

For that reason, I just started a new startup company: TimeKeep NYC. We specialize in timekeeping software for NYC area cities. Looking for employees now, especially ones who aren't snitches. Based on past products in this market, I think we can do quite well.

<comment><USER8> I'm curious, what are some of the complexities involved in a timekeeping system?

<comment><USER9> Things like varying overtime rates depending on time of day, accumulated hours, whether it's a holiday, different rates for depending on specific work assignments, etc. It's not as simple as a flat rate x number of hours. But it's nothing that hasn't been done before, either.

<comment><USER10> At first I was like, "wow this would take me five minutes to program". Now it's looking like a solid 20 minutes.

</comment></comment></comment></comment></comment><comment><USER11> Worked for subsidiary of SAIC contracting out to NYC government over a decade ago. Trust me when I say this is nothing out of the usual... project will go order of magnitude over budget constantly.

As for the requirements that drive these projects, typically they are written specifically to present the appearance of an open bidding process while allowing the departments to know ahead of time who will actually implement the contract because they are so specific in certain areas that only one contract can possibly fulfill them.

</comment><comment><USER12> Those who say that the city's payroll needs are complex are entirely correct. A city government that size will inevitably have a mind-boggling number of variations in the business rules that the software must model.

Yet $600 million? I've built accounting software, and though it wasn't as complex as what NYC needs, I'm 90% sure $600 million is astronomically higher than what a reasonable price would be.

What about the original price of $63 million? That still seems awfully high to me, but I'm not sure. Does anyone have an opinion on that?

<comment><USER13> I've never built a time keeping system, but this is how I put that number in perspective. For $63 million I can hire everyone who's ever been a Django core developer (people I've worked with, and who are excellent) for 5 years, at 500k a year... and there'd be money left over.

<comment><USER4> Building a time-keeping system for large city like NYC is many,many times more work than building web-framework like Django. It's not a technically complicated problem, but it has a different kind of complexity. That complexity comes complex business requirements, which have to be analyzed and implemented piece-by-piece.

</comment></comment></comment><comment><USER14> Some background on this:

 _Mark Mazer, CityTime consultant accused of scamming millions, has checkered past of investigations_ [http://articles.nydailynews.com/2010-12-23/local/29441786_1_...](http://articles.nydailynews.com/2010-12-23/local/29441786_1_citytime- project-mark-mazer-sexual-harassment)

 _CityTime Crook Pleads Guilty As Defendant List Grows_ [http://gothamist.com/2011/02/11/citytime_crook_pleads_guilty...](http://gothamist.com/2011/02/11/citytime_crook_pleads_guilty_as_def.php)

 _Mark Mazer Indictment [scribd]_ [http://www.scribd.com/doc/58405089/Mazer- Mark-Et-Al-S2-Indic...](http://www.scribd.com/doc/58405089/Mazer-Mark-Et- Al-S2-Indictment)

</comment><comment><USER15> How complicated must that piece of software have been for it to cost that much? For that kind of money it better be at least as complex as any OS out there.

<comment><USER16> my guess is most of the time was spent in analysis and consensus building being that it was for government. The code is surely atrocious

<comment><USER17> I would wager good money that you could supply thedailywtf.com with entries every day for a month from the code base of this project, easily. When you do the math it works out to something like $100 million a year, which implies a fairly large development team (hundreds of people, at a bare minimum).

It's really easy to waste money on big development projects of this sort. The bigger the development team the harder it is to manage, the less well it is managed the less productive it is in aggregate, and thus the less productive it is per salary-dollar. And these are not small effects. A small team of very talented devs can quite easily compete head to head with a giant team of hundreds of devs, precisely because of these scaling and management problems.

</comment></comment></comment><comment><USER18> that seems a little excessive even at 63 million...I'd bet if you gave a YC startup $1 million, they'd be able to do the project in 1 year.

<comment><USER19> See: <http://news.ycombinator.com/item?id=2716446>

<comment><USER18> with 1 million, you can afford to pay a thousand bucks to have someone translate that for you

</comment></comment></comment><comment><USER20> In case anyone wants to read up on the CityTime project, the VillageVoice had a pretty lengthy spread on it in January.

[http://blogs.villagevoice.com/runninscared/2011/01/this_week...](http://blogs.villagevoice.com/runninscared/2011/01/this_week_in_th_90.php)

</comment><comment><USER21> Funny, I did part of my M.S. coursework in Enterprise Management using SAIC as a case study in Enterprise Management Failures.

</comment><comment><USER22> Michael Bloomberg might have a point, but he really isn't in a strong position to complain about shitty overpriced software. Glass houses and all that.

<comment><USER23> What position are you in to declare the Bloomberg terminal 'shitty overpriced software'?

<comment><USER24> Just so people can put this in perspective, a Bloomberg terminal license costs approx $1750 per month, with a two year contract. The software basically gives users a fairly raw interface to financial data, analytics and an email/IM system.

In a sales call, the Bloomberg sales reps will demonstrate endless functionality of the terminal : there's a huge amount there. The dirty secret is, though, that most people use only 4 different functions (different people, different functions, of course). The big switching cost is that the email/IM is entirely proprietary : Everyone has to have a BBg terminal, because everyone else has one.

The software is probably as well written as you would expect from a company in a monopoly position. One thing in their favour : If they fundamentally changed the way the 'MSG' button worked, 50% of their users would complain.

<comment><USER23> Full disclosure I'm an intern at Bloomberg.

You're essentially correct on all points but clients tend to use many more than 4 functions though significantly less than the total number.

And with regards to IM and email, it should be noted that any user of a Bloomberg terminal can IM any other user anywhere in the world (there's no 'friending' or anything). Many, many trades are conducted over IM or 'IB' as it's called.

The most accurate analog I can think of to the Bloombeg terminal is Emacs. It has everything and the kitchen sink (News, dining suggestions, email, IM, sports updates, etc.) and clients are extremely particular about functionality. I have a cousin that's been a subscriber since 1997.

And with regards to code quality, I'm not sure how much I'm permitted to say, but the first Bloomberg terminal was released in the 1980s (this was before SQL existed). Also they maintain the largest private network in the world (they run a line to every terminal)... so all the things that go with that.

<comment><USER25> > The most accurate analog I can think of to the Bloombeg terminal is Emacs. > It has everything and the kitchen sink (News, dining suggestions, email, IM, > sports updates, etc.) and clients are extremely particular about > functionality.

Of course, Emacs is _free_. Do you think Bloomberg is susceptible to competition from a much lower-priced and much leaner startup?

<comment><USER26> Bloomberg terminal is a classic example of the <http://en.wikipedia.org/wiki/Network_effect></comment></comment></comment></comment></comment></comment>


Music lovers, here is an invite to join our streaming curation platform - <AUTHOR> http://whyd.com/invite/4d94501d1f78ac091dbc9b4d

<comment><USER2> So you have to use Facebook ? Besides, why are there so many new users (karma 0 accounts) on this thread ? Self-promotion through multiple accounts ? It's fairly obvious if you do that on HN.

<comment><USER3> I was wondering that myself. HN usually frowns upon one word replies as well.

Bottom three are all created within a minute of their first post...

</comment></comment><comment><USER4> I won't write about the service now, because I haven't used it yet, but quick and easy access to music from different channels like SoundCloud or YouTube seems interesting and is apparently working fine from my few clicks.

Bug spotted. Setting avatar in the profile doesn't work.

EDIT 1: Apparently it started to work (even without doing logout and login again).

I noticed also that after editing the track title and saving it's not updated in the view - I have to refresh the page to be sure, whether the change actually did happen.

EDIT 2: Changing e-mails doesn't require mail confirmation. While it may seem as PITA for many, it's good in avoiding mistakes and spamming accounts you don't really possess.

EDIT 3: And information about changed mail came where? To mail address used during registration. :) It would be fine if I got it delivered to my new address too, but I haven't.

<comment><AUTHOR> Yes a few users reported issues while trying to update their avatar... I'll have a look at that asap! Concerning the possibility to send "spam" to someone by setting the email address, we have had no complaints so far. Possibly thanks to selectivity of people who use the site because of the invite-only sign up.

</comment></comment><comment><USER5> You, guys, have very engaged friends who created accounts only to upvote your post.

Your platform is _NOT_ a curation platform it's a like-aggregator.

Finish your product then post on HN.

</comment><comment><USER6> Solid engineering! Definitely needs a mobile app though.

Question that might be out of the scope of this HN post: what are some of the most obvious monetization models for this kind of services?

Edit: Last.fm doesn't scrobble music? Why?

Edit 2: After spending sometime on it, I'm loving it even more. I would suggest some sort of a community or rooms feature where I can discover music from a specific genre or style.

<comment><AUTHOR> Thanks! Obvious monetization models for such services are: \- affiliation (sell concert tickets, based on your musical preferences, which is based on your activity on the site) \- sell "music influence network" data and/or promotion services to labels / bands \- sell subscriptions to third-party music services to broaden the range of music available on the site, especially for off-line / mobile consumption, or quality of audio Today, our focus is on building a good platform.

Our last.fm scrobbler was a quick "friday" feature, but I'm happy to investigate this issue with your help if you contact me (adrien at whyd dot com)

Genre-based communities/groups are on our roadmap. We are going to release a genre-based onboarding next week, in order to subscribe to more relevant curators.

</comment></comment><comment><USER7> Looks interesting, nice to see last.fm support out of the box. Could anyone quickly clarify what the difference between "adding" a song and "liking" it is?

EDIT: if you start playing a new song in a new tab it doesn't stop the old one.

<comment><AUTHOR> Adding a song allows you to add it to one of your playlist, or at least on top of your profile. Liking a song just makes it show up on the "likes" tab of your profile. In both cases, the person who posted the track is notified, and their counters increment. On the rankings (whyd.com/hot), only "adds" are counted.

</comment></comment><comment><USER8> Signup doesn't have SSL.

<comment><USER9> Do you have an invite for what.cd? I've been looking for one for ages lol.

</comment></comment><comment><USER10> Cool! You can even add Chinese songs!</comment>


Free server on LINODE Now  - <AUTHOR> http://www.linode.com/?r=3c9529d990720381498fb6972fa3d020df09965a

<comment><USER2> It's not free, it's a rebate (partial credit to be precise) for existing customers.</comment>


Ask HN: Anyone on HN running a web startup with 50K+ a year net profit? - <AUTHOR> <comment><USER2> I was 19 and in my first year of college when I finished my last contract programming job and started working for myself. I launched my first product with a $10 domain name and $17 web template for the site design. It made well over 50K in net profit its first year. I paid my way through college without debt, and run several profitable web apps now.

There are others on HN with similar stories. I recommend checking out the profiles of commentors. A lot of people have their sites in their bios so you can see what they've built.

<comment><USER3> I would love to have a chat with you about your experience, if you don't mind that is?

</comment></comment><comment><USER4> Definitely more than 50k/year net and growing at a nice pace. I'm a single founder, worked on my SaaS product nights and weekends, and been live almost a year and a half. Also, just quit my day job a couple of weeks ago so I can do what I love full time. My product: <http://www.bidsketch.com>

<comment><USER5> That is a nice product that fits in the category of something I had no idea I needed until I saw it.

<comment><USER4> Thanks; this is one of the challenges I run into with marketing and trying to find traffic sources. I've had good success with word of mouth, integrations and giving away free templates for users feeling the type of pain my product solves.

</comment></comment></comment><comment><USER6> Yes, quite a bit more than 50K/year, but we're only a web startup in the sense that we sell all our products via the web. Our 2 main products are an updater suite for Windows apps (<http://wyday.com/wybuild/> ) and licensing & online activation for Windows, Linux, and Mac OS X apps (<http://wyday.com/limelm/> ).

In short, we make development tools.

<comment><USER7> Woo, wyBuild! :)

</comment></comment><comment><USER8> Nope. I'm broke. Thanks for the reminder.

</comment><comment><USER9> My two startups, SmartFlix.com and HeavyInk.com, both clear this hurdle.

<comment><USER10> What kind of physical infrastructure to you have to handle all those physical goods (comic books and DVDs)?

PS, I really like SmartFlix.com. What a great concept!

<comment><AUTHOR> I would also like to know the answer to this question.

</comment></comment></comment><comment><USER11> By sometime next month we will break $50k for this year alone. We have some more work to do on two B2B license contracts to get our next couple of installment payments. We should be launching our B2C pay product by next month as well. So far, customers have donated $15k in the last year, so we expect to clear minimum 4x that much this year in recurring subscriptions.

The site in question (<http://ridewithgps.com>) is a niche site for cyclists, or anyone who wants a way to track their workouts using GPS. Garmin has a large line of fitness related GPS computers with wireless heartrate, pedal speed and instantaneous power output sensors, so the log files are fun to play with :)

It took three years of work, but I now have a real (small!) regular salary...

<comment><USER12> How do you compete with MapMyRun? Everyone I know uses that...

<comment><USER11> We don't suck as much. Have you ever used their sites? It's like someone loaded up every bad fad diet ad into a shotgun and pointed it at your face.

We get several messages a day from people along these lines - here is an example from yesterday I just pulled from our suggestions/comment submission system: "I love your site. After spending frustrating hours with Map My Ride, your site is so easy. And, even better is the Cue Sheet. Thank you."

</comment></comment></comment><comment><USER13> Please post this thread again in a few months. Fingers crossed!

</comment><comment><USER14> Yup. Single man hobby project turned profitable product. Niche SaaS, took about 10 months to clear the 50k hurdle, but I've done almost no marketing for it either.

</comment><comment><USER15> Was previously but sold the last startup. Currently working on another startup but haven't launched yet.

</comment><comment><USER16> Started two years ago 19K first year.

Still have few more months in the second year,already passed the 50K+ mark.

</comment><comment><USER17> Yes, including after pay + benefits for 2 FT founders (+ ~4 contractors). Started FT without profit or product 5 years ago. Bootstrapped. 1st hit profitability ~2 years after starting. Advertising biz model. Biggest hurdle was cold-starting growth with limited marketing budget.

I think that hits most of the questions I've seen in the thread.

</comment><comment><USER18> For those of you who have reached this milestone:

1) What type of business model did you use? (SaaS, ecommerce, etc.)

2) How long did it take to get there after launching?

3) What was the biggest hurdle you faced in getting there?

4) How many people were working with you?

<comment><USER18> Although I'm not quite at that point yet (very close)...

1) SaaS w/ monthly subscription

2) I'm about 8 months in and monthly revenue has finally ramped up to a point where, if I were to make this much each month, profits would be well over $50k

3) The biggest hurdle has been customer acquisition. The first chunk of customers I got through a deal when starting the company. The rest have been a struggle. Managing marketing efforts while still hacking all day is a lot of work. I also have no real internet marketing experience. One other hurdle has been dealing with a deadbeat co-founder.

4) I started with one co-founder but he has since gotten a job and I have quit mine. I'm working 100% full time on the startup and he hasn't contributed more than an hour in the past 4 or 5 months, so it's pretty much just me.

<comment><USER3> How did you figure out your pricing scheme and did you suspect people might need and pay for this before actually building it?

<comment><USER18> I got kind of lucky here because my company grew out of the failure of my old employer. They basically ran out of money and sold themselves to a very large company. That company didn't want a subset of the users, so we offered to purchase them. I just used the same pricing scheme as my old employer did to make the transition for the old users as palatable as possible to increase the amount of people that stayed on through the migration from my old company to my new company. It worked fairly well as close to 80% stayed on.

</comment></comment></comment></comment><comment><USER19> Niche SaaS & service hybrid product for a finance niche cleared that in 45 days. Have done slight pivots to retain a sustainable and healthy growth clip.

<comment><AUTHOR> would you mind elaborating on the niche/product? URL?

</comment></comment><comment><USER20> I would also like to add - how many of you started with 0 profit when you went full time doing it?

</comment><comment><USER21> No, I wish someone would help me learn how to do all this stuff. I'm not sure where I could begin with even doing a "web startup"

I'd need a lot of programming knowledge and I was not blessed with a computer when I grew up like a lot of you.

</comment><comment><USER22> I am.

</comment><comment><USER23> Yes, since 2002 :-)

</comment><comment><USER24> It depends on when a startup stops being a startup.

</comment><comment><USER25> The answer is obviously and indisputely, "Yes."

So it would be better to frame your question in a way which got the results in which you are actually interested.

Do you want to know which niches are being served by HN users? Ask. Do you want to know how to use SEO to turn your 10k net profit business into a 50k net profit business? Ask. Do you want to know if the majority of HN is starving wanna-bes? Ask.

This question in an exceptionally poor proxy for your real question.

<comment><AUTHOR> I'd like to edit my Q now, but I can't. :)

<comment><USER26> Well how about you ask it again in a reply and we all upvote it so that everyone sees it?

<comment><AUTHOR> The reason I asked is I asked a similar question a while ago, regarding "HN founders taking the leap from full-time to startup" and a lot of great responses about projects were posted, so I was hoping for a little inspiration for the most part and to see what new projects people are working on / succeeding with.

<comment><USER26> Well I'm currently full-time and I have had a hobby horse company slowly building up for the past year. It currently makes about £36k GBP in profit per annum, which means it's close to the point that with a tight belt I could jump.

The hardest thing for me isn't spotting or monetising the opportunity, but in balancing everything for a reasonable quality of life without burning myself out. That and discovering and handling the minefield that is running your own company and figuring our the finances, taxing, invoicing and asset management.

My company does community websites, forums and the like. I chose to start with areas I'm most interested in, but have avoided areas where there isn't an after-sales market. I aim making the lions-share of the revenue from affiliate schemes such as the eBay Partner Network, Amazon, and then Affiliate Window has a lot of companies running schemes specific to the communities I'm running.

I don't push the affiliates... I just aim to build the communities up to the point that enough conversation produces the links to used or new items that then produces revenue.

Once a community is successful, I look for another.

What I've discovered is that revenue earnings relate to purchase price of items, and that you can make significant money in high-value items sold through eBay. I would now recommend people look at cars, motor-homes, boats, etc sold through eBay, and then build affiliate based communities around those. Which means building communities who love and use those things, and affiliate earnings is a natural by-product of letting those people communicate.

There is a lot of money in affiliates with a low entry barrier so long as you can attract the people who will click on the links, and if you happen to have also attracted people who would post the links (you can auto-rewrite server- side to include the affiliate element) then you have a winner.

So that's what I do in my spare time (30 minutes per day), and it's wildly successful given the effort invested (I'm using off-the-shelf forum software).

I could even make this my job full-time, except I personally need more stimulus than just running a farm of community forums.

Also... beware the politics. If you can stick to a same-sex topic where people are unlikely to sleep with each other, you'll get a lot less politics.

<comment><USER27> How do you get it started? Do you have to learn something about the market and start posting your own content?

<comment><USER26> It's a community forum, so you need to have something to say and to know that the gap you're targeting exists.

In two parts this simply means:

1) You had better be interested in the topic

2) Check which other sites already exist and position yourself accordingly

My most successful forum is LFGSS <http://www.lfgss.com/> , which is London Fixed-gear and Single-speed... a cycling forum which luckily caught a trend before it got big. The positioning on that was that whilst other cycling forums do exist, others failed to recognise that cycling is a local activity and that cycling itself splits into various tribes and that even local activities only have appeal to one tribe. I love cycling, and I was riding fixed, so once I recognised that I could just start the London forum I was pretty much done.

To launch it I just went on to sites like bikeforums.net and announced in the most applicable place that I was starting something I hoped would appeal to the niche I'd highlighted. About 15 people signed up on day 1, just enough to have conversations between each other... and with about an hour a day invested in chatting and going on the odd ride I get it to the point of getting 30 > 50 new users every day and am now somewhere over 25,000 members with over half of them actively using the site each month and a unique visitor count (Google Analytics) of 250,000 per month.

My other forums aren't doing as well, but all produce revenue and the platform is already paid for by LFGSS.

It took me a while to work out the revenue model (get users first!), but once worked out they're doing fine.

Seriously though... I would look at eBay and find high value items (above $1,000 USD average) and ask myself which of those is something I'm interested in and could invest in for the near future (as in... treat as a hobby). Then create the site, and instead of thinking about the revenue and site, become a user and just contribute as you would if you were a user. The money follows that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> Yes, although we're now almost five, so not so much of a startup any more - although we are entirely self-funded (not through a lack of investment offers, just that we don't want/need it). Profits each year were $60k, 100, 30 (heavy re-investment), 180, and this year's on track to be our first million dollar year.

</comment><comment><USER29> Well, the answer is obviously "yes". I'm not sure what kind of elaboration you're looking for, here.

To be fair, though, we're a few too many years in to really be called a startup any longer.</comment>