Is Economics Research Replicable? Sixty Published Papers Say "Usually Not" [pdf] - <AUTHOR> http://www.federalreserve.gov/econresdata/feds/2015/files/2015083pap.pdf <comment><USER2> > The most common reason we are unable to replicate the remaining 45 papers is > that the authors do not provide data and code replication files.

> We define a successful replication as when the authors or journal provide > data and code files that allow us to qualitatively reproduce the key results > of the paper.

Well this is underwhelming. I mean, sure, they're talking about papers in journals for which sharing data and code is required when asked for, and so they have definitely exposed widespread ignorance of the rules, maybe even a refusal to adhere to them... but the replication that is being talked about is "can we download the data, press a button and get the same results the original authors did?" and not "can we run the experiment again or run the analysis independently and get similar or the same results?"

Personally I like the the distinction between replication (a new experiment but with the same setup), reproduction (corroborate using different methods) and re-analysis (download the data, run the code, maybe do some additional analysis). This paper is entirely about re-analysis, not about replication or reproduction. (Cf. [http://sequoia.cs.byu.edu/lab/files/reser2010/proceedings/Go...](http://sequoia.cs.byu.edu/lab/files/reser2010/proceedings/Gomez%20-%20Replication%20Reproduction.pdf))

In one sense, failed re-analysis means research cannot even clear the lowest possible bar: you can't even check if the analysis produces the numbers that are mentioned in the research. But in another sense, whether or not researchers manage to release their code or not is only very weakly associated with how good that research is. Research might "fail" re-analysis because no code was provided, but survive both replication and reproduction.

The authors compare their work with the Open Science Collaboration which recently pointed out so many unreplicable studies in psychology, but this is not a fair comparison at all. The Open Science Collaboration was a huge endeavor and redid a bunch of experiments from scratch. This is just asking authors "give me your data" and checking a mark "did not replicate" if they didn't.

<comment><USER3> While I agree with the bulk of what you said, I do think it's important to understand that the difference with the Open Science Collaboration isn't really what you said. In my opinion it may be worse.

Being a (somewhat disillusioned) economist, I've read some of these papers but certainly not all of them. What I can tell you is that there isn't an "experiment" to replicate. These papers seem to be mostly or entirely computational macroeconomics and econometrics. In stuff like this, they design a model (a simple example is the real business cycle model), pump random data into it and see how different changes effect the model (i.e. the relationship between the volatility of unemployment with the volatility of output) and do those relationships match what we see in the data?

The replication as you define it (and I agree with the definition), should be pumping new random data into the model and still yielding the same results. However, it still leaves a few big issues. Such as, are these relationships really in the data? Because some of those relationships change depending on the time frame. So it the results may actually explain what occurred, but they shouldn't be used to explain what will occur later.

For reproduction and re-analysis, for this research, they probably need to go together. If we've defined a mathematical model, then it should be possible to program that model across platforms and software and still yield consistent results with different sources of random input data. And for verification, I think this is really important. Because I know I've messed up my programs before and gotten completely reasonable output that turned out to be incorrect. The authors didn't exactly describe how much they verified the programs were doing what they were supposed to do.

Honestly, I don't know that I can make myself care too much about the output results from the model until we can agree on what things are important for the model to show in the past, present, and future. And in academic economics, these important characteristics are almost canon and untouchable.

<comment><USER4> _> they design a model... pump random data into it and see how different changes effect the model_

?!?!

This is such an odd way to demonstrate results about a model. For hypothesis testing or preliminary research, sure. But as a result?

 _> If we've defined a mathematical model_

...then the way that we establish properties about the model is by _writing a proof_.

What am I missing?

<comment><USER3> > This is such an odd way to demonstrate results about a model. For hypothesis > testing or preliminary research, sure. But as a result?

So these are typically some combination of dynamic and stochastic difference equations that are supposed to mimic the real economy and may not have any analytical solution. The goal is to include different types of shocks, different inputs, and different functional forms and run simulations to see if the output shows the same patterns as the real economy.

What we tend to find in these models is that we can easily get some of the characteristics to match while others do not: i.e. matching the volatility in unemployment while also matching the volatility in wages, output, consumption, etc.

This is more along the lines of trying to be engineers rather than mathematicians. Which I'm fine with. My issue is (1) the supposed relationships we are trying to match are not guaranteed across nations or time. Thus even if the model is describing a certain period of time very accurately, it isn't useful at all in general. And (2) we take these models and get the resulting parameter values from the simulation that is at best good at describing some of the stuff happening in the economy and treat them like they apply to the real world (an example parameter might be the risk aversion of consumers in the economy).

We then use these parameters to describe what changes should be made to the economy in the event of certain types of shocks.

And if I'm being honest, my biggest complaint for these models stems from the idea that they all need magical micro-foundations in order to be considered realistic. This stems from the Lucas Critique and is likely the biggest travesty of economics in its history as a science. It is along the lines of saying general relativity isn't realistic, because it needs to be built using quantum mechanics.

What absolutely kills me is that many economists obviously compartmentalize academic research from what they suggest doing in the real world (this can be seen by the fact that the majority of economists polled supported the stimulus in the U.S., felt that it helped recovery from the recession, or at least kept it from getting worse).

</comment></comment></comment></comment><comment><USER5> One of my favorite meta-analyses in this vein is the inverted funnel of Doucouliagos and Stanley [1] which investigates elasticity in the employment market. In particular, fractional change in employment / fractional change in minimum wage. The idea is that so many studies have been conducted on this topic that if you construct a scatterplot by putting N (study size) on the y axis and elasticity (outcome) on the x axis, then you get a funnel (wide at low-N, narrow at high-N) that can (arguably) reveal selection bias since selection bias will disproportionately affect the wide, low-N side of the funnel.

Of course, this technique can only be performed if you have not only large studies, but a large number of studies -- so large that you can resolve an empirical distribution of outcomes at several different N bands. It's therefore limited to a small number of topics. Still, it's neat to get quantitative insight into an effect that is usually unobservable.

[1] pdf page # 33 of [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.398...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.398.2297&rep=rep1&type=pdf)

</comment><comment><USER6> I find it kind of funny that people are _surprised_ by this.

Reading the paper, it also feels like the authors derive entirely the wrong recommendations from this result.

Seems like they have identified a set of reasonable problems they encountered in trying to reproduce these studies. Fair enough.

To think that the solution is just to add a lot of documentation requirements on the researcher to address those specific problems just seems totally naive.

This would inevitably act as a form of regulatory structure on top of all the gruff people have to go through to get results 'published.' In doing so, this would also add cost and complexity to an already archaic system, and in a way that does not deal with the underlying root causes that are creating these problems.

</comment><comment><USER7> The federal reserve study seems a little suspect. Not saying it is, but it's curious that it just happened to be 51% of the papers that were deficient. And, their methodology kind of glossed over their sampling strategy.

I wish the science community had better methods for documenting the entire scientific process and timeline. We live in an era where everyone has access to computers, but research results are still offered as paper documents. This provides a lot of opportunity to 'fudge the numbers' \- to re-write the hypothesis and/or methodology to fit the intended outcome.

Wouldn't it be much better if research results were stored in standardized file format that showed an unalterable timeline of all activity?

</comment><comment><USER8> Url changed from [http://www.businessinsider.co.id/federal-reserve-paper-on- th...](http://www.businessinsider.co.id/federal-reserve-paper-on-the- replicability-of-economic-studies-2015-10/), which points to this.

</comment><comment><USER9> In the end of the day, people need what they feel a better way to think and discuss before doing. It's only related to what options they have at the moment.

</comment><comment><USER10> Of course it's not replicable. There's simply too many external factors that can mess up any well meaning experiment.

<comment><USER11> So basically you're saying those experiments had no predictive power in the first place?

<comment><USER10> They have some. But its not about predictive power, its about replicable experiments like you have in the sciences...

Economics is a useful social science (it's what I study), but it has challenges that the more established sciences don't encounter...

</comment></comment></comment><comment><USER12> dismal science</comment>


Understanding of C-preprocessors [MSc thesis survey] - <AUTHOR> https://www.befragungen.ovgu.de/cprepsurvey/ <comment><AUTHOR> OP here. I received an e-mail this morning, asking whether I could fill in this survey. I am in no way affiliated with the author of this survey.

I decided to post it, because I thought some of the examples presented in the survey were interesting. They serve as examples of 'code smell' that could be prevented by either writing more portable code or introducing more layered designs.</comment>


Was YC demo day recorded? - <AUTHOR>

<comment><USER2> Another question: was anyone in attendance asked to sign an NDA before seeing the presentations of companies still in stealth-mode? Most bloggers aren't talking about the ones that haven't released and I was wondering if they're just being ethical or if they were prohibited from doing so.

<comment><USER3> No one had to sign anything. We just asked people verbally not to write about startups that aren't launched yet.

<comment><USER4> transparency in action. you can confirm it here ~ [http://dondodge.typepad.com/the_next_big_thing/2007/08/bosto...](http://dondodge.typepad.com/the_next_big_thing/2007/08/boston- vcs-gets.html)

</comment></comment></comment><comment><USER5> I doubt it - they don't record much else that goes on there, so that people can be candid. Makes sense, because the whole thing is put on for the benefit of the people there, be they buyers or sellers.

</comment><comment><USER6> Hmm, a good question was, how much would you have paid for a crack at Demo Day.

My Answer: 5% of my start-up. We're three months old.

</comment><comment><USER7> Yes, do tell; inquiring minds want to know.</comment>


Ogg founder moves to Mozilla to work on new video codec - <AUTHOR> http://gigaom.com/2013/10/15/monty-montgomery-joins-mozilla-for-daala/

<comment><USER2> This is excellent news.

Monty Montgomery is among my hero developers for nearly two decades now, building Xiph, Ogg, Vorbis, Theora, and the like.

Mozilla and Monty sounds like a wonderful match for creating free open source codecs, and bringing them to everyone.

Congratulations to Mozilla and Monty!

<comment><USER3> Don't forget cdparanoia!

</comment></comment><comment><USER4> Check out his fantastic demo pages for a look at the work being done on Daala. [http://people.xiph.org/~xiphmont/demo/daala/demo1.shtml](http://people.xiph.org/~xiphmont/demo/daala/demo1.shtml)

This is great news!

</comment><comment><USER5> Excellent news that H.265 has competition, but at the same time I am feeling a bit pessimistic. Consider Theora for example: Even if there is open source VHDL available for Theora, it was only implemented in Nios II and LEON processors and according to Wikipedia "there are currently no Theora decoder chips in production". Even a license free codec wasn't enough to attract interest from manufacturers.

Youtube delivers huge part of the "relevant" video material in Internet. And Google has their own video codec. Would they include Mozilla's codec into their browser (and smartphones) instead and start encoding videos in their own service with Mozilla's codec? Quite unlikely. At least the article doesn't mention anything about DRM, so would it be enough for Netflix?

<comment><USER6> I'm sure Google will be just as enthusiastic about incorporating Mozilla's new video codec daala as Mozilla is about adding Google's image codec webp.

<comment><USER7> Seems like a big case of NIH syndrome if you ask me.

<comment><USER8> Mozilla has studied WebP and found it to be worse than JPEG in many cases. [http://people.mozilla.org/~josh/lossy_compressed_image_study...](http://people.mozilla.org/~josh/lossy_compressed_image_study_october_2013/)

<comment><USER7> They also found HEVC-MSP "worse" in some metrics. Seems a red herring to me. WebP isn't just about replacing JPEG, it's about replacing GIF and PNG. Today, on the web, if you want transparency or animation, you have to choose much worse formats.

And why is it so awful to add WebP to the list of image formats gif, jpg, png, but we can have a much longer list of supported audio codecs? What is different about audio? Or video for that matter? The argument seems rather arbitrary and self serving.

<comment><USER9> I agree with this, I've never understood why Mozilla (are dragging their feet) when it comes to implementing webp.

It's hardly a huge maintenance burden, all development is done upstream and there's an easy to use c library implementation, and of course it's fully open source and royalty free.

</comment></comment></comment></comment></comment></comment><comment><USER10> Direct link to his announcement: [https://plus.google.com/110063726540320603118/posts/PdXWDAyT...](https://plus.google.com/110063726540320603118/posts/PdXWDAyTj2f)

</comment><comment><USER11> Should I stop refreshing this page hoping for more?

[http://www.xiph.org/video/](http://www.xiph.org/video/)

<comment><USER3> He said he's going to continue working on these videos. He actually has scripts for two more planned out.

Same exact job, just on somebody else's pay.

<comment><USER11> Sweet. They must take a ton of effort to make.

</comment></comment></comment><comment><USER3> Monty was one of the smartest engineers I worked with at Red Hat. Brilliant guy, quick on his feet. I'm a bit disappointed he's moving on, but at the same time, he belongs at Mozilla. Once all the engineers are in the same room, Daala is going to kick ass.

</comment><comment><USER12> So that's him living in MA working remote. He did not show up at monday meeting!

</comment><comment><USER13> Sorry to be the one to do this, but

Relevant XKCD: [http://xkcd.com/927/](http://xkcd.com/927/)

<comment><USER14> Situation: there are 0 free and libre state-of-art video codecs; Xiph is working on one supported by Red Hat and Mozilla.

Mozilla buys Monty Montgomery from Red Hat.

Soon: Situation: there are 0 free and libre state-of-art video codecs; Xiph is working on one supported by Red Hat and Mozilla.

... very relevant.

<comment><USER9> How are VP8/VP9 (webm) not 'free and libre'?

<comment><USER14> As I understand, Google can go evil and use its patents to impose certain restrictions, like killing potential independent VP10 project or messing with webm's royalty-free status.

<comment><USER9> Since Google are offering them under a _irrevocable_ royalty free licence I don't see how you could have come to 'understand' it that way.

Do you have any references to your claims?

</comment></comment></comment></comment></comment><comment><USER15> Oh no, please not ANOTHER codec in the mix. Hell, we don't have a single codec that works OOTB in all popular browsers without external software (I consider IE, FF, Chrome, Safari and their mobile counterparts). For now, it's WebM, Ogg and H264 which one has to transcode and store just for shipping a video to desktop and mobile.

And while we're talking about mobile, I'm sure that SoC decoding support will take not 2015 to arrive, rather than 2016 - give or take a couple more years because some patent troll will always dig up some dirt.

<comment><USER4> Please consider why we don't have a single codec that works OOTB.

H264 has all sorts of nasty licensing stuff, which Daala is not subject to. It should also avoid all valid patent claims because it is based on lapped transforms as opposed to DCTs.

also, Ogg isn't a codec... it's a container.

WebM is a totally different problem which is mostly not supported, my understanding is, by Microsoft and Apple due to political reasons. This isn't something that Daala impedes. It's probably even more politically possible to adopt Daala than WebM due to the origin (Xiph/Mozilla).

<comment><USER15> I know ogg is a container, I just never can remember the names of the individual codecs. And as a matter of adoption rates, which devices actually ship Ogg audio/video support? Next to none do it in HW.

And who guarantees that no one holds some "shadowed" patents on something just enough related to Daala to impede it? And... who says Apple won't f __k on standards like they do at the moment, did with Flash /X11/... before, and will ignore Daala while shipping their own stuff?

<comment><USER16> As far as I'm aware:

\- Apple support standard MPEG4 formats at the moment \- Flash was not a standard, and \- Apple don\t currently ship proprietary video or audio codecs.

Let's face it - Vorbis solved a problem that theoretically existed, but had minimal practical impact. The same applies to modern video codecs.

When the Ogg formats have provided genuine utility they are used (see e.g. Speex in Siri and Google products) - and what would be really nice would be a free-as-in-patents, hardware-supported, high-performance video codec which can be implemented by all major vendors. Maybe it'll turn out that way.

<comment><USER15> The problem is just that unless the US dumps their patent system, no one has any incentive to use FOSS codecs.

Hardware/SoC providers will focus on the "licensed" stuff because buying a license will protect you from IP lawsuits, and the content providers will also use the "licensed" codecs because the support is far more widespread (and well, for mobile you _need_ HW acceleration if you don't mind burning through the battery for a 2-minute cat video).

Long story short, as a manager of a company selling mobile handhelds, I would not give a dime about the "open" codecs because the risk of stepping on a patent mine is too high.

<comment><USER9> Both vorbis and flac are open codecs and are supported in a wide range of devices, like every Android device for starters, same goes for webm which is also open source and royalty free.

<comment><USER17> However, hardware support for WebM is very thin on the ground; the Tegra 4 is the only mainstream shipping SoC to have it, and the Tegra 4 isn't _that_ mainstream. That Android support uses the CPU, and thus hits the battery and performs poorly on older devices.</comment></comment></comment></comment></comment></comment></comment>


Life without line numbers for 6% smaller Go binaries - <AUTHOR> https://commaok.xyz/post/no-line-numbers/ <comment><USER2> [https://blog.filippo.io/shrink-your-go-binaries-with-this- on...](https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird- trick/)

This is great article instructing how to shrink the Go Binaries. Author is lead of cryptography and security team of Go Team at Google.

<comment><USER3> Completely agree.

I performed the steps in the article and reduced the output binary size from ~35 MB for raw go build to around 29 MB for go build with the ldflags all the way down to 8.3 MB for compressed with upx.

Really impressive results.

<comment><USER4> 35MB seems relatively small already. What do you get from an 8MB binary that you don't from one 4x that size?

<comment><USER5> > 35MB seems relatively small already

35 MB is huge! Are there any assets inside the binary?

<comment><USER6> > 35 MB is huge!

For context, 35MB is two and a half _boxes_ of high-density floppy disks. There were whole operating systems, complete with applications, smaller than that.

<comment><USER7> Aren't Go binaries completely static? That sort of is a large part of an operating system (the libraries minus hardware-related libraries) -- Just add a kernel (tens of MB) and whatever userland stuff you need to get your hardware to work (which could be "nothing" in some cases) and you're ready to go.

<comment><USER8> QNX used to be shipped on a single high density floppy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Since the Go compiler is so primitive you can strongly influence the size of the program by just restructuring it. An example: if you have a function that converts integer return codes to errors, and you have another function that calls it a lot:

      func codeToError(i int) error {
        switch i {
           case ...
           ...
        }
      }

      func stuff() error {
        if rv := callJunk(); rv < 0 {
          return codeToError(rv)
        }

        if rv := moreJunk(); rv < 0 {
          return codeToError(rv)
        }

        ...

        return nil
      }

You're going to get multiple whole copies of the inner function inlined into the outer one. This can add up, if the outer function is long and/or if the inner switch statement is huge.

You can save a lot of code by jumping through an adapter function instead, like:

      func callWithErrorsConverted(f func() int, g func(int) error) error {
        return g(f())
      }

... because now the compiler doesn't get to inline g into f. These things make a big difference in whole-program size. I wrote about it in the context of tailscale and protobufs here:

[https://paper.dropbox.com/doc/Bloaty-Puffs-and-the-Go- Compil...](https://paper.dropbox.com/doc/Bloaty-Puffs-and-the-Go-Compiler-- A4NFFR1SRcfOaz0kMw0ITuQ0AQ-YiblPOe6AD2tKfEj5RzFT)

<comment><USER5> I'm pretty happy I don't have to worry about such details in C and can rely on the compiler to do the easy optimizations for me.

<comment><USER9> It's not really a language problem, it's a compiler problem, so at least in the future we might get a compiler that recognizes error-handling idioms. Or we just get llvm? The language problems, like the performance-hostile calling convention, are harder to fix.

<comment><USER10> > It's not really a language problem, it's a compiler problem

This has never seemed like such a clear distinction to me. A language is essentially just an instruction set for a compiler.

<comment><USER11> Consider that a hobbyist C compiler isn't going to perform the same optimizations as gcc. Likewise, clang and gcc aren't totally equivalent, either, despite being based on the same language standard. Most languages don't have multiple compilers, but any non-commercial language can in theory have multiple competing compilers that don't give equivalent output for the same input.

<comment><USER12> Even commercial languages can have multiple competing compilers.

</comment></comment></comment></comment></comment></comment><comment><USER13> This didnt seem to change anything for me. I am currently using Go 1.14.4 (Windows), and after trying go1.15beta1, the resultant executables are actually larger.

Another thing Ive always found strange is people always recommend (-ldflags -w), when (-ldflags -s) gives smaller result, and (-ldflags '-s -w') is identical to (-ldflags -s).

<comment><USER14> Given the article is talking about DWARF debugging formats, I believe the numbers in the article are for Linux binaries. I'm not sure if Windows binaries store line numbers in the same way.

<comment><USER15> Doesn't Windows usually just use a .pdb file next to the exe/dll, containing the debugging information? So stripping debug information on Windows is just deleting (or not distributing) that file.

<comment><USER16> Yes, .pdb files are used by most toolchains for debug information on Windows.

No, Go doesn't use .pdb files.

On all platforms Go stores a significant amount of meta-data in the binary, in the same format so that they can access it using the same code on all platforms.

This information is used by the runtime. Precise garbage collector needs to know the layout of structures and stack to know which fields are pointers; To generate readable callstack Go needs info about function and where they come from (source code file name, position). etc.

A sidenote: you can convert DWARF debug info to .pdb using external tool which allows debugging Go programs with Windows native debuggers like WinDBG.

</comment></comment></comment></comment><comment><USER17> > You can usually save double-digit percentages by stripping debugging > information: pass `-ldflags=-w` to `go build`.

Is there a way to make `go build` for a particular project always use `-ldflags=-w`? Or do I have to remember to type it in every time (or hide my `go build` command inside a Makefile or `build.sh`)?

</comment><comment><USER18> How much better does a 6% smaller go binary perform?

<comment><USER9> Shrinking the line table will be irrelevant to performance. As I understand it, the tailscale binary has a hard size requirement to run as a VPN under iOS.

</comment></comment><comment><USER19> Your HTTP cert is invalid. Just a heads up.

<comment><USER20> It's fine for me and was issued May 26. The URL when I visited was [https://commaok.xyz](https://commaok.xyz)

<comment><USER21> His browser might have oppened the following link: [https://www.commaok.xyz/post/no-line- numbers/](https://www.commaok.xyz/post/no-line-numbers/) somehow.

It's serving a certificate for github.com.

</comment></comment></comment><comment><USER22> I wonder how much more from javascript minifying can be reused in this space.

<comment><USER23> Probably not much? Javascript minifying is about raw source code, whereas those are binary instructions + debug info.</comment></comment>


Rant: You think Apple has neglected its developers? The chrome webstore is worse - <AUTHOR> Rant: You think Apple has neglected its developers? The chrome webstore is worse
A few months ago I've submitted my first chrome extension to the chrome webstore. It wasn't an immediate success like I might have wished it to be, but it was a "scratch" your own problem kind of product and I was satisfied. I acquired some users, some were active some were not and I kept adding features that I felt were lacking. It was a side project I enjoyed immensely.
Then around a month ago I started my long and unresolved dispute with the chrome webstore team.
As it would seem, another developer has registered a trademark for the same name I was using for my product. Notice that when I submitted my add-on this trademark wasn't yet registered. Without any notice my add-on was removed from the chrome webstore. Even after I removed all references to the old product name, any visuals or textual content that might somehow be affiliated with the previous name were also removed. I kept submitting my add-on for approval, but every time my "review process" was denied without a single reason. Sometimes I received a general automatic email that directed me to the chrome extension developer policy and sometimes I didn't receive any email at all. All attempts to contact anyone at the team went unanswered.
Although this is a rant, if any of you had encountered this kind of treatment before I'd love to hear what you did about it. <comment><USER2> Google half-asses all of their products except perhaps AdSense. I'm not surprised you had such a bad experience.

The galling thing about Apple is that they make so much money off of their store (and charge developers so much). With the Chrome store, you're basically getting what you pay for.

<comment><USER3> I'd suggest you find a well known english speaking developer who seems to do well in the webstore that you think might have connections. Email them, say you really respect them and their work and ask if they have any advice or know who might be able to help you.

Simultaneously, make a blog post on medium about your experience. You have emails, you have logs of submissions, write up the whole thing with screen shots, redacting anything that you need to. Include what you want done in your situation, and recommendations so that your situation isn't repeated. Submit to HN.

IF all else fails, republish the code under a new name/account/email.</comment></comment>


Using Anki to Remember Everything You Read - <AUTHOR> https://superorganizers.substack.com/p/how-to-build-a-learning-machine### <comment><USER2> I do the same thing, but do not use readwise, just make them manually while im reading a book.</comment>


Ask HN: Stock options as a contractor? - <AUTHOR>

Hey there,
I guy I once co-founded a company with (which we firesold for a big of profit) has approached me to help with a new startup he is doing, but instead of self bootstrapping like we did last time, he's got some solid venture capital lined up.  Under no circumstances do I ever want to work as an employee for this guy again, however he wants me more in a consulting role to make sure the correct technologies are used from the get-go and some quick prototypes (something I'm good at at this domain).
As the backing seems solid, I'm pretty positive I can get a good rate on the consulting, but as this guy also seems to have an ass full of horseshoes, I'm wondering if consultants/contractors are ever offered options in a fresh startup?  I'm just trying to flesh out my knowledge before we finalize my rate.
Thanks. <comment><USER2> Yes, they are offered stock options, and it turns out to be of zero worth, much more so than even usual employee options (which are rarely worth anything themselves).

Employees have to be thrown some crumbs so they don't quit en mass and go to the competitor. But who'll watch out for you? At the next equity restructuring (which happens with every investment, loan or liquidity event), your equity will be chipped down, and it will be worth exactly 0 by the time the company is worth anything, if it ever is.

Either take actual shares at a huge discount (though, depending on how far along this guy is with, might be a tax problem for you - unless you plan to put it on your tax return at fair value, you need to speak with a CPA first), or actual cash money.

And, to echo tarr11 below: First, figure out your market rate first; that will give you an idea of the opportunity cost, without which you can't evaluate any offer.

</comment><comment><USER3> An ass full of horseshoes? What does that mean?

Finalize your rate first at market. Then, if you want to take his horseshoes, you'll have a cash value for them at least.

<comment><USER4> You've never had a horse shoe stuck up your ass? Me neither. It means you're lucky.

</comment></comment><comment><USER5> Don't take equity from someone you would not be willing to work for. It is not worth anything. The only thing worth considering (and it is still not a good idea) is convertible debt where you have the option to cash out on the next financing.

Ass full of horseshoes = Lucky, right?

</comment><comment><USER6> If a startup is giving away equity to consultants, then it's equity not worth having. Conversely, if you are a consultant and you are impressed with a startup sufficiently enough that you want their equity, they will probably not give it to you.</comment>


I want control of my data - <AUTHOR> http://www.scripting.com/stories/2007/11/23/iWantControlOfMyData.html

<comment><USER2> While they're at it, I want access to tons more data regarding content traffic than any social network currently provides. Myspace gives you a "profile has been viewed X times" feature, and for musicians there's a half-assed attempt to track plays and downloads. I don't think facebook does even that (I can't recall though, it might be buried somewhere in Facebook's clunky interface.)

</comment><comment><USER3> this is ironic coming from someone who's caused many people to lose data through his blog hosting service.</comment>


Transient ischemic attack (TIA) – Symptoms and causes - <AUTHOR> https://www.mayoclinic.org/diseases-conditions/transient-ischemic-attack/symptoms-causes/syc-20355679 <comment><AUTHOR> I'm posting this brief article because this may have happened to me over Thanksgiving. I first learned of TIA today from a friend who is a retired nurse. No one at the hospital where I underwent some expensive tests mentioned TIA as a possible cause of my symptoms.</comment>


Tinygo is now officially a Google sponsored project - hilbert- https://twitter.com/TinyGolang/status/1223887654158307328 <comment><AUTHOR> TinyGo is a project to bring the Go programming language to microcontrollers and modern web browsers by creating a new compiler based on LLVM.

[https://tinygo.org/](https://tinygo.org/)

</comment><comment><USER2> This is great news, as it is projects like these that prove that C doesn't need to be the only option available.

</comment><comment><USER3> Great, now we can kill it in 3 years.

Seriously speaking thought, does anyone have any benchmarks in this vs c?

I have used c in the past to build custom thermostats and would love to switch to go. Thoughts?

<comment><USER2> Given that Pascal, Basic [1], Oberon [2], Java [3], Ada [4] and C++ [5] already exist as alternative to C and Assembly, adding Go seems like has having yet another positive alternative.

Although not TinyGo based, F-Secure's Foundry hardware key runs Go in bare metal [6], they use their own runtime instead, TamaGo.

[1] - [https://www.mikroe.com/compilers](https://www.mikroe.com/compilers)

[2] - [https://www.astrobe.com/default.htm](https://www.astrobe.com/default.htm)

[3] - [https://www.microej.com](https://www.microej.com), [https://www.virtenio.com/en/portfolio- items/preonvm/](https://www.virtenio.com/en/portfolio-items/preonvm/)

[4] - [http://www.inspirel.com/articles/Ada_On_Cortex.html](http://www.inspirel.com/articles/Ada_On_Cortex.html)

[5] - [https://www.mbed.com/en/](https://www.mbed.com/en/), [https://www.arduino.cc/reference/en/](https://www.arduino.cc/reference/en/)

[6] - [https://www.f-secure.com/en/consulting/foundry](https://www.f-secure.com/en/consulting/foundry)</comment></comment>


Cracking satellites for high speed Internet (Feb 2010) - <AUTHOR> http://www.forbes.com/2010/02/02/hackers-cybercrime-cryptography-technology-security-satellite.html <comment><USER2> Fwiw, here are two slide decks of his from Black Hat '10:

17-slide version: [http://www.blackhat.com/presentations/bh- dc-10/Nve_Leonardo/...](http://www.blackhat.com/presentations/bh- dc-10/Nve_Leonardo/BlackHat-DC-2010-Nve-Playing-with-SAT-1.2-wp.pdf)

105-slide version: [http://www.blackhat.com/presentations/bh- dc-10/Nve_Leonardo/...](http://www.blackhat.com/presentations/bh- dc-10/Nve_Leonardo/BlackHat-DC-2010-Nve-Playing-with-SAT-1.2-slides.pdf)

<comment><USER3> Thanks a bunch, I was left wanting to read more about this. If there only was a video online of his presentation.

</comment></comment><comment><USER4> This is relying on the classical approach of the ground equipment operated by satellite operator or internet provider relying on satellite. The upstream and the downstream are independent from each other. Usually you have two independent channels for encapsulation : a DVB-S/DVB-S2 (with MPE encapsulation) on the downstream and a proprietary DVB-RCS (a strange concept for a standard ;-) on the upstream.

By so, it was somehow difficult to keep track of active terminal as packet encapsulation and decapsulation as this is often independent infrastructure doing so. By so, an attacker could benefit from this lack of state tracking, by injecting packet in one direction to have a functional transmission channel. This allows collateral attacks on the downstream when the traffic is unauthenticated and in clear (like some explained in the slides at BlackHat).

To limit such attacks, an authentication and encryption layer/scheme must be provided on the downstream (and a smaller scale, on the upstream). Some VSAT equipment suppliers implement such scheme (including protocol keys distribution scheme among terminals) but it's not regularly the case due to incompatibilities with existing terminals or other limitations.

<comment><USER5> I was under the impression that most satellite internet setups used regular phone lines instead of actually using a satellite uplink. Are we not talking about consumer setups here?

<comment><USER4> That was the case some years ago (and still for some old services). But a lot of new "DVB-RCS"-like services (e.g. , Newtec Sat3Play or Hughes broadband) now use the uplink as a return channel (usually in Ku or Ka band) instead of regular phone lines.

</comment></comment></comment><comment><USER6> OK... Now, how about control channels and "rooting" a satellite? Because there must be some communication from the ground for things like transponder relocation and attitude control.

<comment><USER7> Even better, how about enabling the military functions in all US commercial satellites? They all have military override abilities to serve as communication backups if the primaries are taken out during war.

<comment><USER6> I was more in the mood of transmitting a Monty Python's Flying Circus mega- marathon, but, sure, your plan would be fun too. ;-)

</comment></comment></comment><comment><USER8> This could be exploited to create small mobile "pirate datacenters." Such equipment could be mounted on a small truck or RV. An entire "pirate cloud" could be established with redundant datacenters going offline to relocate. I wonder if it would be easy to hide such uplinks amongst legitimate signals and avoid detection by police in a country like China.</comment>


10 Traits Entrepreneurs and Einstein Shares - <AUTHOR> http://cieasia.org/10_traits_entrepreneurs_and_einstein_share "You're no Einstein." How many times have you heard that in your life? When people have compared you to the great thinker, has it been in the spirit of sarcasm--Nice one, Einstein? Albert Einstein has become the benchmark by which everyone measures intellect, though few understand what made the man tick. Throughout his long life, the creator of E=mc2 (and one of a handful of people to know what it really means) indicated what he saw as the path to success through his words and actions. Entrepreneurs have more in common with Einstein than they think. Many of the traits that led him to be named Time magazine's Person of the Century--kind of an elite club--drive people to create businesses. Do you see a little of Einstein in you?<p>READ more here! http://cieasia.org/10_traits_entrepreneurs_and_einstein_share <comment><AUTHOR> This is one of the awesome knowledge you shouldnt miss!</comment>


Show HN: I built a news aggregator/knowledge graph - <AUTHOR> http://emergentdata.co <comment><USER2> Hi this is great! I have some questions.

I'm curious how you decided to model the data in your Neo4J database. How did you do the 'Suggested Readings' section? How does the cipher query look that drives that.

How do you like using AlchemyAPI? Is it doing all the NLP stuff for you?

<comment><AUTHOR> Alchemy is doing all the NLP. Each article is extracted for concepts and entities (as defined by Alchemy in their documentation). I normalize each term that is extracted in order to prevent duplicates (there are some duplicates that still sneak through so it still requires a little bit of data maintenance). So the way this looks is that their is one node for a term say "Machine Learning." In one article "Machine Learning" is a concept with a negative sentiment and high relevance and another article it is an entity with low relevance but positive sentiment. The relationships house the sentiment and relevance properties: (machine_learning)-[relevance,sentiment]-(article).

The suggested readings sections pulls the most relevant concept of that article and finds connected articles with the same concept at a high relevance. This way suggested articles are more than just key word hits. It's all about relevance. I'm still continuing to tweak this query and there's a lot more that can be done with it such as matching sentiment and emotion. As the dataset grows I'll look to add a feature that pulls a list of articles based on a cluster of highly associated entities.

As for Alchemy, I've tried a number of different NLP APIs and, in my opinion, none of them have come close to matching Alchemy's accuracy. It does make mistakes but at a low enough level that it's easy to manually correct.

<comment><USER2> Thanks for the background. I'm working on a similar project but currently parsing news articles using a collection of specific rss feeds and calling Google's NLP API with the text. It sounds like AlchemyAPI seems be a better fit in this case.

How are you finding Neo4J is handling the scale of reading and writing all these stories? I've had a positive experience so far but I'm only in the few thousands range.

<comment><AUTHOR> Neo4j handles read/write seamlessly I have found, but I'm only around 10,000 nodes and 20,000+ edges. I've heard use cases for Neo4j in the range of 50M+ nodes. My position on this is not whether Neo4j can handle it but whether your code and infrastructure can.

</comment></comment></comment></comment><comment><AUTHOR> Hi HN: I built a curative news feed covering advancements in technology and global issues. I'm utilizing Neo4j and AlchemyAPI, as well as some custom code, to create a knowledge graph in the background. Have a few ideas of additional features for the dataset but would love to hear some feedback.</comment>


Anti-Theft Sign in Alamo Square Hacked, Rewritten in Praise of #Yogabut - <AUTHOR> http://hoodline.com/2016/02/anti-theft-sign-in-alamo-square-hacked-rewritten-in-praise-of-yogabut <comment><AUTHOR> This report's from Feb, but I've seen more hacked electronic freeway signs in SF in the past week. Seems like CalTrans might need some security assistance.</comment>


Building Backbone.js/PHP based stack - <AUTHOR> http://verysimple.com/2012/05/25/build-a-backbone-js-application-with-php/

<comment><USER2> Nice, I think backbone and bootstrap type products are going to make builders like this more practical and common.

<comment><AUTHOR> thanks for checking it out!</comment></comment>


SNAP has left millennial investors underwater - <AUTHOR> http://nypost.com/2017/03/13/snaps-stock-has-left-a-bunch-of-millennial-investors-under-water/ <comment><USER2> Anyone buying Snap shares is Not an investor, but a speculator.

No profits. Significant losses. Net asset value negative. Shares have no voting component. No dividends for the forseeable future.

What a joke. Anyone that gave up their money for this worse than zero stock should consider themselves lucky for not having lost all of their money.

</comment><comment><USER3> A good reminder: Never ever ever buy a stock because you think the product is cool, or because you use it and like it. That's a bad reason. Honestly I would say just never buy an individual stock and stick with index funds.

<comment><USER4> Who decides what goes in the index funds?

<comment><USER5> The people who write the indices. Some are flakey and narrow, like the various Dow indices, now kept around for (dubious) historical comparisons and as headline fodder.

Some are broader and so slightly less dubious (S&P 500), or the larger n of the Wilshire 5000. Some aim for a different kind of breadth (e.g. MSCI).

All suffer from various epistemological problems (inclusion is largely on various market characteristics, e.g. mkt cap, volatility, etc), not to mention management challenges: e.g. ones like the dow are notoriously subject to weighting problems, not to mention splits; companies can change sector or of course merge or go out of business. So do you rebalance your index or not and by what criteria?

So you can pick what ever index floats your boat. Typically people pick very broad ones in the hope of an upward slope with minimal volatility. Black- Sholes would say that volatility is your friend but it hardly is for any normal investor.

<comment><USER5> Not sure why this basically factual comment would be downvoted.

</comment></comment></comment></comment><comment><USER6> It's irresponsible of the article to imply that the fault is with $SNAP here.

I suppose "people with no finance experience lose money buying stocks they saw on the news" makes for a less interesting headline.

</comment><comment><USER7> The stock is still above IPO price. This isn't exactly a Groupon or Webvan kind of meltdown... so far.

</comment><comment><USER8> First taste of a stock failure. It happens. I've never lost a crazy amount, but I have invested in stocks, only to see them crash and -- either later have more success or remain a complete failure. Live and learn. Best to just study the history of the stock and its value for society as a whole.

Not saying that it has absolutely ZERO value, but I definitely would've loved to see SNAP a bit more successful, and they probably did not know what it meant to become an IPO.

<comment><USER2> How is it a failure? Seems to have done the job it was set out to do: make the original owners wealthy, make bankers more rich. Still above/near the horrendous IPO price.

Seems like great success.

<comment><USER8> LOL.. it totally was a success to them :)</comment></comment></comment>


The sound of Erlang: How to use Erlang as an instrument - <AUTHOR> https://www.erlang-solutions.com/blog/the-sound-of-erlang-how-to-use-erlang-as-an-instrument.html <comment><USER2> Now take this and give each type of actor in your system a unique 'voice' so that they can all sing together when your program is running. I wonder if that would ever sound cool or just like noise.

<comment><USER3> I wrote a debugger plug-in a long time ago that used MIDI - it was actually quite useful.

</comment></comment><comment><USER4> Reminds me of this Clojure talk- [https://www.youtube.com/watch?v=Mfsnlbd-4xQ](https://www.youtube.com/watch?v=Mfsnlbd-4xQ)

Using functional composition to build a Bach canon out of pure sine waves.</comment>


Ask HN: How useful is buying a book for learning a framework / technology? - <AUTHOR>

I am a PHP web developer and I mainly deal in Codeigniter or CakePHP. I have tried a lot of times to learn Django but I am never able to cross the initial hurdle. Last time it went like, opened Django ebook + docs, went ahead up to fivish modules, couldn't get my head around a very peculiar app, website abstraction, unable to get a basic user registration and login set up, I ditched it and was back to PHP.  I think the problem is, the online material is somewhat lacking in practical examples on how to get started and this is not only with Django. I had the same problem with Symfony, C# and Haskell. I lose interest pretty fast once I am unable to build something or find something to build with technology.<p>Does anyone else feel the same problem? Does buying a book help? I think offline reading can be more pleasing than scrolling through web pages. There is an argument against books that things like Django change a lot in short time and book is outdated before you buy it. <comment><USER2> Well I do find it useful although in my experience it's boring. What I usually do is use the book/framework documentation to create a project which interests me, instead of the project described in the book.

Edit: This seems like a good resource [http://effectivedjango.com/](http://effectivedjango.com/)

</comment><comment><USER3> I buy and read a lot of programming books. For me reading books helps. I have a conscious plan about what I am trying to learn and using books is the fastest way to get there. It is true that there is nothing written in any programming book that I couldn't find on the online. The advantage of books over reading online documentation and blog articles is someone has curated and edited the content for me. I can sit down and start reading instead of spending a bunch of time googling things to figure out whats next.

One of the things I usually do is immersing myself in a topic. Buying a couple of books on a subject and going from one to the next. Starting with a more intro book and progressing to more advanced materials creates a very natural feeling learning curve. Since starting this my overall retention has improved greatly.

In-between the immersion cycles I read more general CS type books. It creates a nice mix of topical knowledge and theoretical knowledge.

Frameworks change at a much more rapid pace than the underlying languages. With ebooks you can usually find more up to date content than buying print books. Looking at the published date before buying is important. In the python space there are a lot of current books on interesting topics. There does seem to be a serious lack of Django titles that are current.

I buy most of my books directly from the publishers websites. Between informit.com and orally.com there is always some sort of 50% off ebooks sale going on. I have bought ~45 books this year and paid full price for 3 or 4 of them.

</comment><comment><USER4> I hadn't read many programming books until recently when I got a premium membership to TutsPlus (which includes a bunch of e-books).

I've actually been surprised how much I've learned while reading on public transit, without doing the programming right there.

I don't read a book and then go back to the computer later and know how to program using the framework or language, but you do learn a few things about form, structure, and often in particular, the reason why certain structures exist. This is often not covered in shorter form blog posts and other online sources.

So, yes, I think reading is effective in helping to learn a framework, but not just going through the examples. I actually find I will often skim most of the code samples anyway.

I also agree with weedow, I don't think building the example apps helps very much, I always create a different project where I am forced to figure out how to do things not exactly as they are set out in tutorials.

</comment><comment><USER5> I think it depends on the framework/language you are learning. Books sometimes have several advantages over tutorials online. Off the top of my head:

      - You have everything organized in one place.

      - You are sure they are accurate (they often have an errata posted online).

      - You don't bother searching for content online.

When I wanted to learn about Servlets/JSP/JSTL/Filters/DAO it was much easier for me to buy a book (Pro JSP 2) than to search for online tutorials, even though there are plenty. This book explained everything I needed to know about the subject.

As for programming languages, I don't really buy books because I find they're fairly easy to pick up once you know 2-3 (with the exception of books such as Effective Java). Don't forget there are also video tutorials which are an important resource.

</comment><comment><USER6> My rule of thumb is the further away from pure computer science you go, the less likely a book is useful and will stay on your shelf in the long run (and the presence of solid alternatives):

      - Frameworks: Only in rare cases should you buy a book, read the source code itself
      and/or online documentation.

      - Programming languages/paradigms: Only buy a book that gets into the nitty
      gritty (e.g. Effective Java, Programming in Scala) or helps you wade into a new
      language (e.g. Learn you some Haskell for great good, if you are new to Haskell).

      - Computer science-y books: Buy them all! (e.g. Hackers delight, introduction to
      algorithms, bayesian reasoning and machine learning, purely functional data
      structures)</comment>


How to recruit co-Founders for a bootstrapping startup - <AUTHOR> http://www.lovemytool.com/blog/2008/03/team-building.html

<comment><AUTHOR> I realize most of the recent YC posts have been on how to entice technical talents to join your startup and become co-Founders.

This post is actually more on the opposite which is if you have a reasonable good product idea, how do you screen the potential candidates so that you don't pick the wrong ones, and also, once you selected them, how do you build a coherent team out of the pieces.</comment>


What will happen when we run out of names for JavaScript frameworks? - <AUTHOR> https://medium.com/@danielkmak/what-will-happen-when-we-run-out-of-names-for-javascript-frameworks-6d91c6005d40 <comment><USER2> That's easy - use non-English names. I, for one, try to give Latin names where possible. I'm currently working on a SPA called "scriptare"[1] (which is Latin for "write"). The front-end part is called "calamus" (pencil) and the node.js back-end is "praeceptor" (teacher), and the ML back-end is "augur" (seer).

As luck would have it, I was just putting out a new version of our in-house MVC framework called "Compago"[2] (structure/framework in Latin). While it has been used in various versions since 2013, we didn't share it until 2015, and even then didn't document beyond the JSDoc comments since we are not interested in popularizing it.

[1][http://scriptare.com](http://scriptare.com) (in closed beta)

[2][https://github.com/scriptare/compago](https://github.com/scriptare/compago)

<comment><USER3> Swahili is a great language for finding good-sounding project names. Most words are easily pronounceable with a 'pleasant' balance between vowels and consonants, they just 'sound good'.

Take a word like 'rafiki', Swahili for 'friend'. That's a perfect name for some social platform. Or 'nena' \- which means 'speak' \- for a chat app. Just get a Swahili-whatever dictionary and you'll soon have more project names than you can shake a fimbo at. Fimbo is Swahili for 'stick', by the way.

<comment><USER4> "Rafiki" might bring up some problematic associations with Disney.

</comment></comment></comment><comment><USER5> Is there any particular reason not to use emoji? JavaScript is by specification a unicode language. I already have registered users in my system with pictographic name strings, why not software? Might be some introductory issues with logs and terminals and incorrect assumptions by developer tools, surely nothing we can't fix.

<comment><USER6> _\- Hey, I'm new to programming, which framework is the best for creating single page applications?

\- Hello, I believe .js is the best, but at work we use .js for its speed and flexibility. Other popular choices are .js, .js and .js. Hope I've helped!

\- That's great! Thanks a lot!_

Well, at least it's shorter, so there's that..

 _edit:_ Ok, that's the reason...

<comment><USER5> That's not a reason not to use emoji. That's a reason to drag an ASCII-centric communications medium into the Unicode era. We're in an time where application data is Unicode. You may wish to paste such data into a chat, or refer to people and organisations whose names aren't written in latin script.

When your chosen comms medium doesn't support those things, it should be updated.

<comment><USER7> Let's imagine that was a transcript of a verbal conversation. How would you pronounce the emoji? Facial expressions?

<comment><USER5> I've never been afraid to use interpretive dance in my presentations.

What actually happens: see Chinese. One broadly-speaking-unified set of logograms, 200 spoken dialects, of which a handful are widely adopted, and one has governmental primacy.

<comment><AUTHOR> I've had Chinese lessons and even Chinese people have problems understanding each other for example because of voice and voice emotions are so important. I think Chinese language shouldn't be role model for what IT world should be. :)

<comment><USER5> Oh, I agree, it's not a role model. I think it stands as an example of possible emergent outcome.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> "JavaScript and its earlier version — Java..." ???

<comment><AUTHOR> Have some distance and sense of humour man ; )

<comment><USER8> The article was mostly serious until then. Wasn't expecting a satire piece, caught me off guard.

<comment><USER9> Really?

It seemed pretty clear it was making jokes to me.

From just above the joke about JavaScript and Java:

> Whether they use it in their job or just to make coffee (coffee-maker).

> But it's not normal rapper like Eminem, it's more like:

or further above:

> Some describe its usage — like anti-ecological tree-kill, some not

> [Image of ducks/birds idk] JavaScript developers pictured trying to find > their way around in node_modules directory :(

I never got a serious feel at all.

<comment><USER10> You forgot the biggest clue, the title.

</comment></comment></comment></comment></comment><comment><USER11> At first, you can just start adding 'ly' to all new packages: _reactly_ , _reduxly_ , _expressly_ , _passportly_.

When that doesn't work any more, start prefixing names with 'get': _getmochaly_ , _getasyncly_ , _getunderscorely_.

After that, you need to start requiring at least 2 numerals, 3 capital letters, and 1 punctuation mark: _geTBab3!lY9_ , _Ge!ax1OSly2_ , _g3tW%b4acKlY_.

What could be more natural than _npm install --save-dev getBAB3l-prese!-sta &e-0ly_ ?

<comment><AUTHOR> Thanks for pointing out another trends and predicting new one! You're the saviour of JS-mankind!

</comment></comment><comment><USER12> next week on HN:

"Show HN: ćřàp - a JS framework to name your JS framework using UTF-32 characters"

<comment><AUTHOR> Why not UTF-512? :)

</comment></comment><comment><USER13> Namespaces solves this issue, no?

<comment><USER14> My thought exactly.

</comment></comment><comment><USER15> The real question here is, will the web, in anything resembling it's current form still exist in 20 years? 100 years? 1000 years? And if so, will it rely on ES2037, ES2117, ES3017? Books haven't changed much at all in the last 1000 years, and although it would be naive for us to expect the internet to say the same, there will likely still be a demand for fairly simple blogs and forums well into the future.

</comment><comment><USER16> Github.com will be the de facto canonical naming. It's already used in several language/packing systems, supported by others. And as the article points out, what other alternatives are there?

There are issues with this as is evident in Go projects using forks, etc which will have to get sorted out and evolve.

</comment><comment><USER17> The number of node packages there are is deceptive when it comes to measuring the js ecosystem. It's better to count how many packages are well referenced, which might be a number as low as 10k.

<comment><USER18> But even if the library is not used, once it's on NPM, the name is taken.

<comment><USER19> Not really, if a library is truly empty in NPM just contact NPM and they are nice enough and will give you the name if you are going to use it.

</comment></comment></comment><comment><USER20> Has anybody considered _not_ having a single global repository of JS packages? (Also, as usual, has anybody considered just not doing this whole JS thing?)

<comment><AUTHOR> Can you elaborate on this? What's the alternative to single global repository? By single global repository you mean NPM?

<comment><USER21> The alternative is many.

E.g. apt.

<comment><USER22> Even PHP manages to get this right - Composer uses the Packagist repository as a default but just about any git or svn repo with a URL will do.

<comment><USER23> npm supports git urls, too (or the even shorter user/project#tag if it is from github)

<comment><USER24> Composer also supports namespacing

</comment></comment></comment></comment></comment></comment><comment><USER25> Drug companies seemed to have run out of names a while ago and have resorted to barely pronouncible strings of mostly consonants. Like Xeljanz and Viibryd.

<comment><USER26> The reason for that is there are all kinds of rules about what you can name your drug. Can't sound like anything else. Can't suggest any effects it doesn't have. Etc. Made up words are pretty much the only safe bet. From there you want to make up a word that's memorable and short so it stands out and people remember it.

<comment><AUTHOR> Didn't know about such rules for drug naming. Clarifies a lot. Thanks for sharing.

</comment></comment></comment><comment><USER27> 26^30 = shitloads of possible names

<comment><USER18>
      $ pwgen -A0 30 10
      exeetoothoohohghohmixeinaeyigh aethahpoquielainogeorobeephoul
      cofeaphiwaeleedohphechiefeozei ahsohleiyahzithaacheibiechahth
      udiekomieheecohshohmupahshaese zaewetohheethohbocoocheikaikei
      keemokeebeejahjoomaengiopahshe oochephaekiethaehahshieshahsai
      poufifohjohtohdaiceghaizoenais aizeephahkongairiecogheegoedie

I expect all of these to be taken on NPM tomorrow, now that I posted them. :)

<comment><USER27> exeetoothoohohghohmixeinaeyigh

I know that. That's a Welsh town.

<comment><USER28> It is very improbably named then, since a) the top 5 letters found in Welsh placenames are N, L, A, E, and R, and b) there is no 'X' in Welsh.

</comment></comment></comment></comment><comment><USER29> See also: Pheonix, I mean Firebird, oops I mean Firefox.

</comment><comment><USER30> constonant-vowel-constonant-vowel-constonant-vowel-constonant

</comment><comment><USER31> The part of me that cares about my HN karma wants me to refrain from saying that I hope people stop making JavaScript frameworks well before we run out of names. JavaScript is a monstrosity that from a usability standpoint really has made the web worse and not better.

I would love a web without js tracking, scroll bar hijacking, browser back/forward hijacking, delayed modal popups, useless animations that bring my Oneplus 3T to its knees, etc.

I also would love a computing ecosystem where nodejs didn't enable every journeyman web designer to try their hands at bringing all that cruft to the desktop.

I find the UX improves significantly with noscript.

<comment><AUTHOR> Oh, this is very uncommon point of view :) Be prepared to be eaten, you're on JavaScript grounds!</comment></comment>


The Second Wave of Japanese Desktop Publishing (2000) - <AUTHOR> https://atadistance.net/2020/01/11/the-second-wave-of-japanese-desktop-publishing/ <comment><USER2> The inability to get things in Japanese to "look right" in HTML might be on explanation as to why so much public information here is distributed as PDF or more often low quality JPEG. Most events, and even important pandemic information is far too often inaccessible to anyone using a screen reader, or wanting to copy text into a dictionary or translator.</comment>


PlayBook allows JIT-compilers - <AUTHOR> http://stefan.arentz.ca/blog/2012/02/24/playbook-jit/

<comment><USER2> Interesting read. Liked your other article on accessing the Playbook shell as well.</comment>


Twitter announces Reasonable Scala compiler with the focus on compilation speed - <AUTHOR> https://github.com/twitter/reasonable-scala <comment><USER2> Re: compilation speed, a story with happy end: Achieving 3.2x Faster Scala Compile Time

Diagnostics:

\- A method takes an implicit parameter to be filled in by the compiler

\- the Scala compiler synthesizes an argument for that parameter using macros

\- instead of using an existing value in the implicit scope

Conclusion: that's why a small source file took so long to typecheck.

Details at [https://jobs.zalando.com/tech/blog/achieving-3.2x-faster- sca...](https://jobs.zalando.com/tech/blog/achieving-3.2x-faster-scala- compile-time/)

</comment><comment><USER3> Releated Work[1]

[1] [https://github.com/twitter/reasonable- scala/blob/master/rela...](https://github.com/twitter/reasonable- scala/blob/master/relatedwork.md)</comment>


WebP: A new image format for the Web - <AUTHOR> http://code.google.com/speed/webp/

<comment><USER2> Here's a post from the Chromium blog [1], which has more details. It also states how Google is already using it in Gmail, Picasa and instant search previews.

Google is in a great position as they can write a spec, release a browser implementing the spec and update their sites (which account for a substantial portion of the web) in such a short time. In essence, there is no "chicken and the egg" problem of who goes first.

This also happened with SPDY [2], which Chrome already supports and most Google sites now use instead of HTTPS (for Chrome, at least).

I think we can expect Google to do everything they can to make the web faster.

[1] [http://blog.chromium.org/2011/05/webp-in-chrome-picasa- gmail...](http://blog.chromium.org/2011/05/webp-in-chrome-picasa-gmail-with- slew.html)

[2] <http://www.chromium.org/spdy>

<comment><USER3> I agree that Google wants to make the web as fast as possible and as good as possible because it's directly in their interest so they have incentive to do it. They are mostly a web company after all.

On the other hand Apple and Microsoft don't really _have to_ want to make the Internet as fast or good as possible. They either do it to support a different agenda, like not needing Flash, or from a defensive point of view, like Microsoft with IE9. But when it comes to choose between what they really care about, they won't choose the web. That's why Apple hasn't made the embedded browser as good as the main one, and Microsoft would rather use more proprietary stuff to couple with their browser, like DirectX.

My point is it feels natural to these companies to use the web only to help their main objective indirectly, which is different than simply wanting to make the web better, while in Google's case, it feels natural to them to want to improve the web because that interests them directly. So when it comes to who really wants to improve the whole web the most, I'd trust Google.

</comment></comment><comment><USER4> I made a QuickLook plugin for it: <https://github.com/dchest/webp-quicklook>

</comment><comment><USER5> I can understand Google's reason for making and promoting WebM, but is there really a need for another image format? Yes, it may be X% smaller than JPEG for the same image quality, but does that really matter? Compared with video, the bandwidth for serving images is practically nothing, and even with universal adoption by browser and operating system vendors it will still be years before you can rely on all your clients having WebP support.

<comment><USER6> I don't think there's any reason not to try to improve something even if its satisfactory. Image formats are no exception - I don't think JPEG is the best that can be done and I hope we have better options moving forward.

<comment><USER7> It doesn't matter. Get over it. Leave it alone. Let it go.

There is a need for better image formats for photography, for gigatextures, for voxels, for specialized cases, but not for general web use. This problem is solved. Move along.

ASCII has served us well, it's still used now, and even though it's broken in a lot of ways, UTF-8 addresses most of those to a degree that's satisfactory enough we don't need people _inventing_ new character encoding systems.

Between GIF, PNG and JPEG you have what you need. Don't cry over a few wasted bytes or a few smudgy pixels.

<comment><USER8> I could say the same thing about H.264. Why should we bother making better video codecs for general movie viewing use? Let it go. We can just add more data layers to Blu-rays.

And it's not like JPEG or ASCII or UTF-8 or anything we use today is going to suddenly disappear if we add new browser support. Why not strive for excellence?

</comment></comment></comment></comment><comment><USER7> Until they sort out the video tag and the audio tag they should keep away from messing up the img tag in the same way.

<comment><USER8> Introducing a new image format won't "mess up" anything. And even if they were doing a stellar job with the video and audio tags, it would have no bearing on WebP.

</comment></comment><comment><USER9> So does this mean that Chrome will drop support for JPEG, PNG and GIF? I mean, that was the case with the video tag.

<comment><USER10> Chrome only dropped support for H.264 because it would incur patent fees which many consider incompatible with the way web technology has developed previously.

They didn't, for example, drop support for Theora which like the image formats you name, is older and has less advanced compression technology but is still "free" in many senses that some consider important for interoperable web technologies.

</comment></comment><comment><USER11> How is WebP better than JPEG XR (HD Photo) which already has an ISO standard?

<comment><USER10> JPEG XR appears to be aimed at being a less resource intensive alternative to JPEG-2000 for camera manufacturers and semi-pro photographers. WebP seems to be setting itself up to be used to deliver images via the web.

Currently XR has a lossless mode, 4:4:4 color support, tiling and alpha which make it more featureful than WebP but those have all been announced for future versions with some features having experimental implementations already.

On the other hand XR, at least the currently available encoders, seems to perform very well under PSNR tests but fails compared with even JPEG in SSIM tests.

<http://sites.google.com/site/dlimagecomp/ms-ssim-results>

It also worth noting that being an ISO standard holds far less status ever since Microsoft bent the procedures beyond breaking point for OOXML.

<comment><USER11> I don't see an ISO standard as being less than it was. I think the big win for JPEG XR is that their are some pretty good people who built it. If camera manufactures adopt it, then I think it is going to be the default. I don't see any real advantage to WebP.</comment></comment></comment>


Is there a common theme in the submitted YC apps? In other words, does YC get a good sense of what's brewing in the startup world?  - <AUTHOR>

<comment><AUTHOR> I ask because I think it would be fascinating to just read through all the submissions!

<comment><USER2> Not sure if it would ever appear among YC apps, but you could probably make a very appealing submission by devising a way to give eye massages from the computer monitor. :)

<comment><USER2> Actually, I'm back to propose this very system. Takers welcomed! Or suggest your improvement.

Load YC apps into document reader. Put a timer in the page, and capture onclicks, onkeypresses, and onscrolls. Compute "stress level." When stress level high, dim screen, start swirling through various soft colors and natural scenery, and play embed sound file (in sexy voice of your choice): "Close your eyes. Relax. You are happy. Your limbs, they feel deep, and tired. You're in a beach, the breez... zzz... zzz" Detect snoring sound. Play sponsored embed sound file (in sexy voice of sponsors choice): "You want to buy this. Now."</comment></comment></comment>


Ask HN: Recommendations for point and click web scraper - <AUTHOR> My brother wants to do some web scraping and wants a non programming interface (he has a betting system he wants to automate :-) ), I was thinking a point and click interface. The ideal solution would extract to a spreadsheet on a schedule and added bonus run from a command line. He's not a programmer but does excel and some SQL, I recommended using Python but he's not keen on that - are there any web scrapers that you can just click and set up automatic schedules that people would recommend?
A google turned up these two which seem reasonable but a recommendation would be nice
https://www.grepsr.com
https://www.webscraper.io
Thanks <comment><USER2> I have used a service from Octoparse for one of my clients. it costs them a little under $100 a month. Pretty easy to set up. Runs in the cloud and then downloads to client database 2 or 3 times a day. After a couple of problems early on it has been pretty reliable.

I know they have a trial or freemium version that might be sufficient for your brother. It won't run in the cloud but rather from your brother's local machine.

<comment><AUTHOR> Thanks I'll mention it to him, the free one might do the job - I think $100 a month might give him pause.</comment></comment>


Automatic Flushing: The Rails 3.1 Plan - <AUTHOR> http://yehudakatz.com/2010/09/07/automatic-flushing-the-rails-3-1-plan/ <comment><USER2> I've been doing some research for this earlier, and my conclusion was: This is _very hard_ , if not impossible, to implement automatically. The main problem is that it's impossible to handle exceptions correctly without making the whole stack aware of it.

Currently, when an exception occurs, the system can simply change the response (since the response hasn't been sent to the client yet, but is only buffered inside the system). With this approach, a response can be in x different states: before flushing, after the 1st flushing, … and after the xth flushing. And after the 1st flushing, the status, headers and some content has been sent to the client.

Imagine that something raises an exception after the 1st flushing. Then a 200 status has already been sent, togeher with some headers and some content. First of all, the system has to make sure the HTML is valid and at least give the user some feedback. It's not impossible, but still a quite hard problem (because ERB doesn't give us any hint of where tags are open/closed). The system also need to take care of all the x different state and return correct HTML in all of them.

Another issue is that we're actually sending an error page with a 200 status. This means that the response is cacheable with whatever caching rules you decied earlier in the controller (before you knew that an error will occur). Suddenly you have your 500.html cached all over the placed, at the client- side, in your reverse proxy and everywhere.

Let's not forget that exceptions don't always render the error page, but do other things as well. For instance, sometimes an exception is raised to tell the system that the user needs to be authenticated or doesn't have permission to do something. These are often implemented as Rack middlewares, but with automatic flushing they _also_ need to take care of each x states. And if it for instance needs to redirect the user, it can't change the status/headers to a 302/Location if it's already in the 1st state, and therefore needs to inject a <script>window.location='foo'</script> in a cacheable 200 response.

Of course, the views _shouldn't_ really raise any exceptions because it should be dumb. However, in Rails it's very usual in Rails to defer the expensive method calls to the view. The controllers sets everything up, but it's not until it needs to be rendered that it's actually called. This increases the possibilty that an exception is raised in the rendering phrase.

Maybe I'm just not smart enough, but I just can't come up with a way to tackle all of these problems (completely automated) without requiring any changes in the app.

<comment><USER3> It does require changes in the app, but app authors who need this kind of performance benefit will be willing to accept that hit. The solution is far better than the alternatives:

\- Allowing users to flush manually (people screw this up real bad) \- Changing the rack spec (allowing for #each on the body to be lazily yielded, and terminating on nil or the like) \- Moving to an always async stack (totally kills most users)

Yes, there are plenty of issues with this, and I agree with your concern, but it is also something which can have a marked effect on performance for users. It's also worth noting that a well componentised partial can render an error in-place of the partial itself, for example, rendering a page that contains the whole layout, and a single red box of errors (say a render of the _new partial can be added to the buffer after a _create fails, instead of rendering the success box). Yes, that requires some refactoring of the application (rather than using for example, the standard 302 approach).

It's also worth noting that a larger class of applications that would find this actually useful should generally have reasonable test coverage and code maturity. Whilst this isn't always the case, we also don't protect users from eval, and other evil tools, in ruby or rails.

<comment><USER2> From the post:

 _For Rails 3.1, we wanted a mostly-compatible solution with the same programmer benefits as the existing model, but with all the benefits of automatic flushing_

And from there he goes on with very specific implmentation details and the only caveat is some API change. This gives the impression that this is something you can easily enable for any app.

I just want to point out that 100% automatic flushing is pretty much impossible with the current state of Rack/Rails, and there's still plenty of work before there's anything _near_ flushing support in Rails.

In addition, everyone should be aware of the trade-off you're making with flushing (potentially sending 500 responses as 200 Ok etc.)

<comment><USER3> Yeah, I had already told Yehuda about the potential concurrency issues for apps switching over to this, as fibers are stacks and stack switching can lead to concurrency issues, especially dropping in a re-ordering of the render chain like this. He said this is another of the reasons it should be optional.

I'm surprised he didn't raise this in the article, but I guess the article was more about how it could work, than how it will in the final build, or how it should in all cases.

I've got to disagree partially, or at least present a different point of view about the 200/500 argument. It could be considered acceptable for the response to be a 200, as the server has not completely errored out, it is only a portion of the response that has errored, and at the application level. It seems that some apps would return a 500 in this case, and then render a page, suggesting that the server and app are broken. This is really something that could very quickly turn into a bikeshed discussion, but you can probably see my point even if you don't agree (I'm not sure I agree in all cases, but it is food for thought).

As you probably well know, I've been doing the async on rails and other frameworks game in ruby for about as long as anyone else that's publicly producing code in this arena (in ruby), and I have to say that this solution that they came up with is actually far better than most of the other hacks. It would be really nice if ruby had performant generators for yielding, but without them, we're left with less options. This fiber approach is getting us pretty close, and I think it's worth exploring, even if it turns out to be a bad idea for most people.

The Rack API won't really ever change significantly for the better in this arena. People don't seem to want to lose the simple #call returning a tuple protocol, and without making that either: a) asynchronous (in as much as not relying on a return value, but a call to a response object), or b) some significant changes to the contract for body, we can not really optimise many ways to provide both simplicity and reasonable levels of granular control of IO. ryah of node.js fame was writing an IO driven server years ago when I was first working on the async rack hack that is in thin, zbatery, rainbows and flow. We had a lot of discussions back then about how best to fit this stuff into the Rack API. We both desired to use something similar to Enumerator#next, but this would never fit much better into the existing setups, and as already noted, is not very performant by default.

As you say, this is not trivial, but I would argue that this means we need to experiment with more approaches, as neither of the currently presented solutions (my async api, and this fiber api) are ideal, nor is buffering large volumes of response data in memory, or taking a bigpipe / highly ajax style approach.

<comment><USER2> I see your point and I agree that it's possible to make your app gracefully handle exceptions. However, there's no way Rails can automate it for you: you still have to carefully design your app to handle it.

If Rails can help you make it _easier_ , that's great, I just don't see how it's a _mostly-compatible_ solution as Yehuda wrote in the post.

I fully agree that we should explore this option, but at the same time we should make people aware of the trade-offs and not present it as some setting you can simply enable by _config.automatic_flushing = true_ (which makes Rails do all the hard work).

Yehuda didn't even mention the word _exception_ in the blog post, so I wasn't sure if was aware of the issues or not.

</comment></comment></comment></comment></comment><comment><USER4> So how does this work with Rack? Unless I'm mistaken, you have to return the body all at once, which entirely negates the benefits here. I don't see Rails mandating that an asynchronous server be used (i.e. Thin, Mongrel2, etc.), so I'm rather confused.

<comment><USER2> In Rack you need to return a body which responds to #each (which yields strings); it doesn't need to return the body all at once:

        class Dummy
          def initialize(controller)
            @controller = controller
          end

          def each
            @controller.render.each { |part| yield part }
          end
        end

        @body = Dummy.new(self)

<comment><USER4> Aaaah, and the work is done within #each and not within #call. I see. The only issue is if you have a middleware that modifies the output, because unless you're careful and/or you're doing something extremely minor near the start of the page, it'll all be processed in the middleware rather than the server. So the server still gets it all in one piece, and so does the client.

</comment></comment></comment><comment><USER5> From Yehuda on twitter: "BTW: Those who have brought up issues with exceptions/status codes re: flushing, you're right, but it's not specific to the fiber solution"

</comment><comment><USER6> Cool idea. It's one of those "cheap" speed boosts which are always nice to find/have.

It'd be nice to see this implemented in Django as well...

</comment><comment><USER7> This encourages having SQL queries initiated by the view, after the header has rendered. This seems antithetical to MVC to me.

<comment><USER8> Not really, in Rails, you might have this controller code:

@things = Thing.where(:it => "good")

And this view code:

<% for thing in @things %> <%= thing.name %> <% end %>

But the SQL query doesn't fire in the controller. It gets kicked in the view when you "for x in y"

Concerns still wonderfully separated.

<comment><USER7> Not really, in Rails, you might have to do more than just retrieve some models. For instance, you might have to load up the current user, grab some stuff from memcache, check with your SSO system to validate the session, and then retrieve the data pertinent to the current request. Then, you might have to make some data modifications (which will create transactions and hit your db.) Finally, the view rendering can begin.

In only the trivial cases can you defer the actual SQL queries from being performed before the view is rendered.

<comment><USER9> I don't get your point. Just because you may have to do some things in a before_filter or whatever doesn't mean you need to do all things there. As far as accessing stuff out of memcached is concerned, there's no reason that can't also be deferred to the view.

Claiming that lazy loaded queries is only a benefit for "trival cases" is a strawman. It's a hugely powerful functionality for ActiveRecord that you can utilize in many ways, and would be very hard to implement without low level support.

Cached attributes can often easily be made available via concise single model methods that operate transparently without the controller OR the view needing to know they are cache-backed. Plus, even if you are loading stuff out of memcached in the controller, it's going to be fast, because that's the whole point of memcached.

ActiveRecord meanwhile, normally takes a huge percentage of rendering time. Being able to defer those queries while still allowing the controller to declare them is actually a huge combination of performance flexibility and separation of concerns. Previously, if you wanted to defer them "cleanly", you'd have to create model methods, but even there you would have to pass params through somehow or generally do something uglier than what you have to do now.

<comment><USER7> These are my assumptions:

1.The performance goal is to return http & html headers as quickly as possible.

2\. Business logic belongs in the models, as triggered by method invocations from the controller.

3\. A good deal of time is spent on business logic and request handling (authentication / set-up / before_filter stuff.) Often, this requires network I/O to backend systems (or databases.) While some data retrieval is necessary only to render the view (and can thus be deferred gracefully,) other times your application logic depends the completion of these lengthy requests in order to complete the desired state modification.

4\. Since we want to return the headers as quickly as possible, we can either a) figure out how to send the headers before the controller or b) figure out how to delay the processing until after the controller.

\---

I think that that a) is better than b).

I like views that exclusively take data and format it for output. I like having the core business logic in the models, and I like having the system guards and request setup concentrated in the controllers. This way, I can have an exhaustive understanding of the tasks performed by an action without having to read through all of the views and their partials.

If we hide some of the processing within model actions and call those model actions from the view, then I no longer can assume that all major processing / I/O has happened by simply reading the controller and the model methods it invokes. Instead, I also have to read all of the views.

This violates the expectations I have about processing times and MVC.

If instead, we could detect the requested format and return immediately with the headers, then we could perform the overwhelming majority of the processing while the browser is busy downloading static assets.

<comment><USER9> There definitely is something that bothers me about using fibers in order to hide an important optimization detail from the developer, and I agree it would be better to have explicit control.

However I see the core team's point that they don't want to completely overhaul the API in a way that's going to break arguably a majority of existing apps, and at the same require the developer to pay attention to more details than may be necessary.

However on the topic of breaking expectations about processing times, I couldn't disagree more. To me, the main benefit of MVC (or any architecture choice) is in isolating responsibilities, not isolating code execution. It's not a big mental leap to conceive of a ActiveRecord relation as declaring some data that's needed that may or may not be actually queried, depending on if the view needs it. This helps your MVC separation, because it means you don't need to extract view logic from your template just to make sure the controller doesn't load something unnecessarily. Lazy execution of this form is a very powerful optimization technique, just ask any Haskeller.</comment></comment></comment></comment></comment></comment>


Show HN: Flying Logos – Exclusive Logo Animations with Sound Design - <AUTHOR> https://flying-logos.com <comment><AUTHOR> Any comments or suggestions are much appreciated. I'm particularly interested in opinions on quality & pricing. For example, should I put pricing on the front page? Is the pricing too low or high?</comment>


Creating a portable demo environment to showcase MFA on a Windows 8 tablet - <AUTHOR> http://blogs.technet.com/b/tlgs/archive/2012/06/19/guest-post-creating-a-portable-demonstration-environment-to-showcase-gemalto-s-otp-windows-logon-with-directaccess-on-a-windows-8-tablet.aspx

<comment><USER2> Multi-factor authentication is needed more than ever. With security breaches ranging from bank accounts to unauthorized access for viewing secure documentation, stronger security rules should be of importance. With the majority of corporate users on a Microsoft platform, the Windows8 platform will serve as a springboard for security awareness.</comment>


Proust and Science Fiction - <AUTHOR> http://crookedtimber.org/2017/07/18/lost-time/ <comment><USER2> A very science-fictional (or anti-science-fictional) passage from Proust is:

> A pair of wings, a different respiratory system, which enabled us to travel > through space, would in no way help us, for if we visited Mars or Venus > while keeping the same senses, they would clothe everything we could see in > the same aspect as the things of the Earth. The only true voyage, the only > bath in the Fountain of Youth, would be not to visit strange lands but to > possess other eyes, to see the universe through the eyes of another, of a > hundred others, to see the hundred universes that each of them sees, that > each of them is; and this we do, with great artists; with artists like these > we do really fly from star to star.

R. A. Lafferty has a delightful short story with this very premise, appropriately titled "Through other eyes": [https://archive.org/stream/Future_Science_Fiction_47_1960-02...](https://archive.org/stream/Future_Science_Fiction_47_1960-02#page/n67/mode/2up)

<comment><USER3> For a really hard SF look at this sort of thing take a look at Peter Watts' Blindsight.</comment></comment>


Ask HN: Concerns about Bitcoin - <AUTHOR>

Bitcoin has been on a tear recently with great potential, and I'm really excited about it. But I have some legitimate concerns that I can't quite figure out:
1. Is the rising price of bitcoin sustainable? Sounds to me like a bubble in making, with the influx of speculators and crazy buzz around it. How much further can the price go up, before it goes south and comes crashing to the ground, or will it be able to stabilise? You won't want to be holding any bitcoins when the bubble does burst.
2. Bitcoin has no governmental control which is a core strength but is also a weakness. Who's to stop you from creating your own 'high yield fund' ponzi and disappearing with the money? That's a big concern on its own.
3. Bitcoin is a great investment with high yields, judging by the rising prices, but not a great currency for spending. Until, Amazon starts accepting bitcoins, only then will consumers take it seriously. Otherwise, great currency to invest in.
Pretty big concerns but not too sure what you guys would think of these. Cheers. <comment><USER3> 1\. No. It is a short lived bubble. Treat it like a penny stock.

2\. Lack of regulation is a fundamental issue.

3\. Bitcoins do not qualify as an investment. It is pure speculation. Like betting on who wins the 2015 World Series.

I would not put more than a hundred dollars into it. Nothing is keeping this currency safe from security and internatikn issues. Treat it like a penny stock.

</comment><comment><USER4> Look at the history. It's not sustainable and will eventually crash.

It might be worth it to make a quick buck, but I wouldn't put your life savings in it.

</comment><comment><USER5> 1\. Yes - in the long term

2\. Not sure I understand this question. I do think governmental threat is real, but I'm not seeing anything too threatening on the horizon, and it would need to also be on the global scale. But even then, look how much luck they've had with piracy (not much).

3\. There are two things here. I don't like that it's growing this fast either, since it does make it less useful for spending it, and this may seem counter-intuitive, but at the same time, it's raising a lot of awareness and I think it's making many businesses consider it as a "real currency" - <USER2> not right now if it keeps growing at $5 per day or whatever, but when it stabilizes a bit more.

The second thing is that it _will_ stabilize eventually, but I wouldn't expect it to be a "permanent stabilization" in the next few years. If this is indeed a bubble, then it will probably drop to who knows how much (probably still $20+ though, at the minimum), stay like that for a few months, or a year, and then start rising again as people start using it, and those companies who've heard of it during its "boom" now want to start using it.

I know a lot of people see the rise of Bitcoin's value as "unbelievable" and wonder how could this be. But as with any currency, what matters is if people _trust_ that currency enough to transfer their hard earned dollars into it. It's not that different than people buying Facebook Credits (or some other virtual currency) because they _trust_ Facebook to sell them stuff (whether virtual or real) for those credits.

With potentially millions of people wanting to put their "real" money into Bitcoin and trust into it, it's very _natural_ for the value of Bitcoin to grow this much, especially with so few of them around (typical supply and demand forces here).

But as I said above, the fact that Bitcoin gets to be worth a lot of dollars, doesn't surprise me, just how _fast_ it's doing it. If Bitcoin was worth $1 million by the end of the year, without any real changes in the ecosystem (like say China adopting it as its national currency, or anything like that), then I _would_ be worried, because it would seem too much like a bubble, without any serious adoption behind it. But being worth $1 million/bitcoin within the next 20, 30, 50 years - then I could see that happening.

<comment><AUTHOR> Thanks for the quick reply. But one quick question just popped up. How can the prices be rising so fast? You don't see the USD having such magnitude of changes even in 10 years. So big issue is who's going to regulate the prices? Market forces? Are they up to the job with so many speculators just there to make a quick buck? Another big concern.

And it's a 'currency', meaning you are supposed to spend it to buy stuffs. But now everyone are getting all they can like skyrim hoarders, hoping to make a quick buck. I can't forsee any sane merchants using it as a form of currency. Who's to say that the price won't go up by $10 the next day or come crashing down? Your bitcoin can be worthless or a boost in revenue just because 'market forces' say so. Horrible form of currency but great form of investment. Cheers.</comment></comment>