Why OCaml, why now? (2014) - <AUTHOR> https://spyder.wordpress.com/2014/03/16/why-ocaml-why-now/ <comment><USER2> Nice post! There are a lot of good reasons to use OCaml over Haskell which are more compelling than "JavaScript", though. A few of them are:

1\. modularity (and now that they have added generative functors à la SML, you can have true abstraction)

2\. benign effects: in Haskell "proper", you do not have effects; rather you have "codes" for effects, which get interpreted into effects by the RTS; this rules out the possibility of, e.g., using effects to implement a semantically pure interface. On the other hand, OCaml has _actual_ effects, which can be used in an open-ended way to implement all sorts of functional interfaces.

3\. strictness: arguments abound about whether laziness or strictness is better; for me, it comes down to the fact that with some pain, you can embed laziness in a strict language with effects, but you cannot embed full-on ML- style strictness into a language like Haskell; moreover, strictness-by-default permits _safe_ uses of benign effects.

I'd call Haskell an expression-oriented programming language, since the types end up classifying expressions and algorithms (i.e. the particular "effects" you used get put into the type). Whereas I'd say (OCa)ML is a value-oriented language, since values (canonical forms) are considered separately from general expressions (canonical and non-canonical forms); moreover, implementation details don't end up in the types, so you can really consider them to be classifying values and functions (i.e. equivalence classes of algorithms, not algorithms themselves). This is largely orthogonal from strictness vs laziness, but as soon as you add partiality in, strictness becomes the only tractable way to have canonical-form-based meaning explanations for the judgements of the theory.

P.S. My day job is writing Haskell. (In case the Pedagogical Brethren wish to come and "correct" me.)

<comment><USER3> I generally prefer programming with immutability, but I certainly appreciate the ability to use "benign effects" in my programs. Besides the case for performance, I have applied a strange combination of benign effects, GADTs, and functors to generate a sort of "proof of type equality" between two values passed into a framework, each of which are not known to the framework because they're passed _into_ the framework by two separate clients of the framework. At that point, I had the ability to reason about two values with arbitrary and potentially distinct types, as either being not the same (None), or the same Some(x, y) with x and y having the same type.

I have no clue if there's a more elegant way to do this (edit: there probably is), but even I (as a n00b) was able to figure out how to do this by using benign effects. There's only a single mutation in this library - but it was such a critical one that made everything else possible.

I'm curious about the reason for preferring generative functors over applicative functors. It seems like both could have valid use cases. Could you point me to a writeup that explains why you believe generative functors are superior?

<comment><USER2> After numerous discussions with Bob Harper (and reading Derek Dreyer's work, who has been the biggest proponent for applicative functors), I have come to understand that there are only two compelling use-cases for applicative functors:

1\. higher order functors.

2\. modular type classes

Higher order functors are kind of cool, but IMO Standard ML does not seem to be suffering too much from the lack of them. I'm not too interested in it, since it gets super gnarly super fast, and this happens to be pretty much the main use-case for applicative functors. I suspect that most use-cases of higher order functors in OCaml could be reformulated to be first order, with a lot less monkeying around in the module system. There may be compelling use- cases though.

The other use-case is possibly a version of modular type classes that behaved a bit more like Haskell's. The idea is that if functors are going to be applied automatically during elaboration to provide something like type classes, you'll get MkWelp(S) called in multiple places, and you would prefer that any type members of the resulting structure be compatible. Applicative functors would do this.

I am not too convinced by this use-case, though I could see that people would find it useful.

In all other cases, generative functors have the correct semantics. Pretty much the whole use-case of putting abstract types in a functor is that you can then reason intensionally about them (i.e. distinguish them based on their access path). This is super useful, for instance, if you have a notion of "index" or something and you want to prevent yourself from using indexes from one table in another one, or something along those lines.

This is what the Scala people mystifyingly call "path dependent types". It's just generative abstraction.

So maybe it is an interesting feature to have applicative functors, but these should be added post facto, and generative functors should be the default. OCaml now supports generative functors if you add an extra () parameter; it's strange syntax, but it's good enough for me! :)

<comment><USER2> lps25:

> Consider the case of a set implemented as a binary tree. The type of such a > set should be parametrised by the type of the elements and the ordering > used. With applicative functors this is the case as your set type will be > `Set(O).t` where `O` is a structure containing the type and the ordering. > With generative functors each individual set type is abstract -- so the type > itself is not parameterised by the ordering.

You make a good point about this not being strictly about type classes. But I'd say that the issue is only a problem in the presence of implicit resolution, since otherwise, you can just bind the result of the functor to a structure once and be done with it. It becomes an issue with type classes, because you don't have the choice to share a single structure during elaboration.

IMO, the generative version is still better for most use-cases (pure or not), but it's nice that you can have both in OCaml.

<comment><USER3> >> since otherwise, you can just bind the result of the functor to a structure once..

My understanding was that of lpw25's. I wanted to use applicative functors in the same way type classes (or OCaml's modular implicits) would make use of them, but even without type class's implicit resolution (explicitly specifying them). I agree there isn't too much difference from doing the same with generative functors, but the main difference is, as you said, I would need to find a place (some appropriately accessible location in the namespace) by which to access the result of these generative functor applications, and that's just an extra point of friction (if I understand correctly). It's not the end of the world as you said either way because we can do either.

Thanks for the help, jonsterling/lpw25.

</comment></comment></comment></comment></comment><comment><USER4> > The first question I usually get ... is "Why not Haskell?".

> The answer is JavaScript.

My current favorite language for this is Elm[1]. It compiles to JS, is based on Haskell, and has a few simple differences between either[2].

Elm doesn't let you use the tons of available Haskell libraries, and makes it slightly painful to integrate with JS. But it's the coolest thing for the web so far. And here's why:

It uses a completely declarative state machine to model a fully interactive and complete GUI! This is the dream React.js and Om didn't even know they were heading towards! And yes, it is as good as it sounds.

[1]: [http://elm-lang.org/](http://elm-lang.org/)

[2]: [http://elm-lang.org/learn/FAQ.elm](http://elm-lang.org/learn/FAQ.elm)

EDIT:

Also, Elm fixed Haskell's awful syntax record name collision problem, and awesomely too!

<comment><USER5> Purescript[1] is also gaining some traction and even has a pretty nice looking book out. [2]

It has some changes however; most notably it's strictly evaluated rather than lazy, and there are differences in how it handles type variables. [3]

Personally though, I've grown more fond of F# than Haskell; I only wish the documentation for Websharper and Funscript was more solid.

[1] [http://www.purescript.org/](http://www.purescript.org/) [2] [https://leanpub.com/purescript/read](https://leanpub.com/purescript/read) [3] [https://github.com/purescript/purescript/wiki/Differences- fr...](https://github.com/purescript/purescript/wiki/Differences-from-Haskell)

<comment><USER4> Elm is actually 3 things rolled into one:

1\. an language very similar to Haskell

2\. a set of runtime libraries

3\. a technique for modeling a GUI as a declarative state machine

PureScript only competes with #1 and #2 here. Where Elm really shines is #3, which #2 helps with a lot.

Technically #3 could be done in any language. But it really helps to model it in such an expressive language with immutable data and no side-effects (except via Signals).

<comment><USER6> I won't argue that Elm does anything other than an exemplary job at #3, but it is worth noting that there are some interesting efforts to build similar functionality in PureScript libraries:

[https://github.com/paf31/purescript- thermite](https://github.com/paf31/purescript-thermite)

[https://github.com/kRITZCREEK/reactive- psc](https://github.com/kRITZCREEK/reactive-psc)

[https://github.com/bodil/purescript- signal](https://github.com/bodil/purescript-signal)

[https://github.com/michaelficarra/purescript-demo- mario](https://github.com/michaelficarra/purescript-demo-mario)

[https://github.com/mechairoi/purescript-frp- rabbit](https://github.com/mechairoi/purescript-frp-rabbit)

To me, this is the benefit of PureScript - yes, you have to do a little more work, because you don't get these things for free from the compiler and tools, but you gain complete control over your application structure. You're not forced to work in some ambient Signal category.

</comment></comment></comment></comment><comment><USER7> I think the author doesn't give enough credit to things that OCaml has that Haskell doesn't have: a powerful module system (ie, functors), polymorphic variants/subtyping, etc.

<comment><USER3> There's a bunch of other nice features of OCaml such as named arguments, fast compile times, strictness, c-types, and reasonable records. To achieve (some of the feature in) Elm style "structural subtyping" records in OCaml you use the more verbose "object" keyword which is just a record with row polymorphism. Most choose to stick with standard records because they compile to more efficient code.

I think the ML module system (in OCaml and other languages) is very powerful because it allows you to abstract and operate not only on types but also on values simultaneously. F#, Haskell, and most others lack this but it would be great if they were to officially adopt it. OCaml is also very easy to learn and I seriously recommend Real World OCaml - it's free online and excellent.

<comment><USER8> Total agreement about most of those things, but I want to indicate that Haskell has some amount of row typing available via libraries like Vinyl and it certainly has c-types.

<comment><USER9> the most recent vinyl version (0.5) [https://hackage.haskell.org/package/vinyl-0.5](https://hackage.haskell.org/package/vinyl-0.5) winds up being a REALLY nice balance of flexibility, good type inference, and a few other things.

Its actually simple enough that for a work project I decided it would be simpler to write a custom version of the same datastructure just to avoid extra deps. (and because I needed some slightly bespoke invariants)

<comment><USER2> :) Thanks! And yes, I don't know about Anthony, but my intention has always been for Vinyl to be a proof-of-concept for what happens when you try to make a clean, minimal & well-factored HList experience; my motto is, "Now build your own Vinyl".

</comment></comment></comment></comment></comment><comment><USER10> Unless start-ups or top companies [0] start adopting OCaml, I doubt its rise would be meteoric. Take go-lang, for example. It performs no better than Java on JVM, but is gaining tremendous traction because Google is putting all its weight behind it. I believe C# gets far less credit than it deserves... and MSFT knows exactly what its doing by open sourcing it. I digress. I feel, one is better off investing time in Clojure or Haskell (if functional programming is what one is after), both of which are gaining a lot more traction in the industry and the academia compared to OCaml.

I can speak from what I observed here at Amazon... which did try and make use of Erlang (due to its excellent concurrency model) at one point, but gave up (Simple DB is powered by Erlang, but its successor DynamoDB is JVM based). At least Erlang had its chance... OCaml community within Amazon is non-existent. Whereas Clojure (plenty of traction within due to STM on JVM, I guess) has plenty going for it, as does Nodejs and go-lang. All of these plaforms are popular due to the strong community presence both within the company and at other tech power houses.

I'd also like to point out that the current crop of volunteers behind ocaml.org [1] are doing a really great job of evangelising OCaml.

[0] [https://ocaml.org/learn/companies.html](https://ocaml.org/learn/companies.html) and [http://clojure.org/Companies](http://clojure.org/Companies) and [https://wiki.haskell.org/Haskell_in_industry](https://wiki.haskell.org/Haskell_in_industry)

[1] [https://ocaml.org/about.html](https://ocaml.org/about.html)

<comment><USER11> _Take go-lang, for example. It performs no better than Java on JVM, but is gaining tremendous traction because Google is putting all its weight behind it._

That's definitely a large factor. But let's not forget that Go already took off when it was barely beyond being a 20% project. Go also fills some niches, three particular ones I can think of are:

\- People who like Java, but favor the UNIX approach of small programs over the JVM.

\- People who like Python or Ruby, but need more performance.

\- People who like C, but want garbage collection and some extra safety in some of their projects.

Add to that that Go is trivial to learn for anyone with a Java, C, or C++ background. Of course, it takes some time to learn all the idioms, but someone who knows languages with C-like syntax can start writing Go programs productively within a day.

<comment><USER12> > People who like Java, but favor the UNIX approach of small programs over the > JVM.

Ah, that must be why the golang toolchain does not support bloated enterprise features like dynamic linking, so a hello world binary ends up almost 2MB. Go UNIX!

</comment></comment></comment><comment><USER13> Now that .net is going cross platform, I see a great future of f# (another variant of ML family). Its got multi processors support too.

<comment><USER14> I think most people who wanted a cross-platform, VM-based, corporate- ecosystem-integrated ML derivative with good concurrency support have already found Scala :P.

<comment><USER15> The problem with Scala is that you don't just get ML -- you have to accept everything else that comes along -- so F# can be a more comfortable choice.

<comment><USER16> It might be easier to accept the additional parts of Scala, because the creators didn't design them to be an tacked-on, intentionally horrible feature. (OO in F#/OCaml anyone?)

Plus, sane typeclasses and higher-kinded types. :-)

<comment><USER17> I agree and I think F# would look a lot more attractive to functional programmers if it had some type of polymorphism other than the C#-like generics and traditional OO subtyping.

I can understand not choosing to go the ML route "down the Functor rat hole" as one of its developers said. But then it also chooses not to do the simpler type classes either. Apparently a proper impl would need CLR changes which is a downside to the reified generics, they are baked in as C#/VB imagined them. That leaves a language that conceptually is very close to C#/VB, with a somewhat different syntax.

I find either of typeclasses or an ML-like module system far preferable for _expressing_ abstractions than traditional ("left-biased") OO, even if OO can (clumsily) get the same results in other ways.

Or I may have missed some developments in F# since I last looked. I really hope so, F# does have a lot going for it.

</comment></comment></comment></comment></comment><comment><USER18> One thing I don't like about OCaml is that I always find myself writing the same things, like "to_string" functions for my variant types (although there must be some ways to alleviate this burden).

Also, when your programs use abstract data types you lose the benefits of pattern matching. In that case, I'm happier with languages like Go or Ada with a friendlier syntax.

<comment><USER8> If you have an ADT but want pattern matching, try Scott Encoding.

For instance, here we have Option

        module Option = struct
          let scott (some : 'a -> 'r)
                    (none : 'r)
                    (opt  : 'a option) =
            match opt with
            | Some a -> some a
            | None   -> none
        end

For Option, since it's non-recursive, the Scott Encoding and the recursor/inductor/Church Encoding are identical. Here's a linked list, though

        module LL : sig
          type 'a t
          val fold  : ('a -> 'r -> 'r) -> 'r -> ('a t -> 'r)
          val scott : ('a -> 'a t -> 'r) -> 'r -> ('a t -> 'r)
        end = struct
          type 'a t = Cons of 'a * 'a t | Nil
          let rec fold cons nil = function
            | Cons (h, t) -> cons h (fold cons nil t)
            | Nil         -> nil
          let scott cons nil = function
            | Cons (h, t) -> cons h t
            | Nil         -> nil
        end

Anyway, the pattern should be more clear now. These provide effectively "functionalized" pattern matching which you can apply whenever you need. In particular, you can think of these as expressing a (potentially partial) "view" of the abstract type. For instance, my linked list might have not been a linked list exactly but instead some kind of tree, but `scott` and `fold` let me expose a "view" of that tree as though it were a linked list.

<comment><USER19> If you look at this from an "expression problem" point of view, this version with the records-of-functions is very similar to OO programming. But without inheritance, classes and so on.

<comment><USER8> I'm very much a fan of that POV. I think OO has a lot of mythology, but the technology is relatively similar to something like OCaml or Haskell. Classes are essentially just functions which return "structures".

Inheritance and open-recursion/dynamic binding are usually what remain. I'm not terribly sure I miss them.

</comment></comment></comment></comment><comment><USER20> I honestly don't get how people can claim that Haskell is unusually hard to learn. I started learning Haskell with zero functional programming experience, and after getting over that initial pure+functional learning curve (which took two or three weeks of casual learning), it was smooth sailing. Haskell is actually a very simple language compared to popular languages like python or C++; you just have to do a bit of thinking to get out of the procedural/imperative/impure mindset.

I especially don't understand how people get tripped up by laziness. 99.9% of strict code will work with no changes in a lazy environment. The rest usually just needs a slight tweak to avoid memory leaks.

To anyone considering undertaking the modest effort required to learn Haskell, I completely recommend it. My code in every language has tangibly improved.

<comment><USER21> Keep in mind that writing something like this is not actually going to be perceived as helpful to most people who may have difficulty with Haskell. Consider a couple of possibilities.

First, you may be unusually quick, gifted, clever -- whatever you might want to call it. In this case, the new concepts in functional programming might come easy for you. That's great, but to people for whom they don't come so easily, this could easily be considered discouraging, or else bragging.

Second, consider that maybe you haven't advanced as far in learning Haskell as you think you have. In my estimation Haskell can take you up an abstraction ramp, that has no clear and obvious "end." As a research language, higher up that curve is some really mind-blowing stuff. So unless you're SPJ or beyond, I wouldn't be quick to claim that Haskell isn't "unusually hard to learn."

Third, you may be a stage in your life where you can put a lot of free time into learning, but recognize that not everyone is there. In my twenties, I worked much more than full time, and in my spare time worked on yet more programming, teaching myself other languages and environments. Really in retrospect it's fortunate I didn't damage my physical or mental health more than I did. But not everyone is in that boat now. In particular people who are older and have "work/life balance," who are professionals in some form of software development, may find that their employment doesn't offer them much in the way of opportunities to learn another language, and the life part of that work/life balance doesn't allow much time to do so.

Me, I'm somewhere partway up that ramp and proud of how far I've come (I feel like I can use at least simple monads now) but still very aware that there is a lot I don't fully grok (currently trying to get my mind around arrows). And I agree, I completely recommend it, but just maybe don't be so glib to claim it is not hard.

<comment><USER20> >Keep in mind that writing something like this is not actually going to be perceived as helpful to most people who may have difficulty with Haskell

No, but hopefully it well help people who have yet to learn Haskell that not everyone thinks it's particularly difficult. I'm not interested in convincing the people who've tried and given up on it.

>That's great, but to people for whom they don't come so easily, this could easily be considered discouraging, or else bragging.

So what do you propose? That I pretend it's really hard for me, even though it's not? What effect do you think that's going to have?

>So unless you're SPJ or beyond, I wouldn't be quick to claim that Haskell isn't "unusually hard to learn."

You don't have to be SPJ to learn Haskell (or talk about how hard it is). Do I have to be Stroustrup to pass judgement on how hard it is to learn C++?

>In particular people who are older and have "work/life balance," ... and the life part of that work/life balance doesn't allow much time to do so.

I obviously don't mean that Haskell is easy for every single person in the world to learn; I mean that, as far as languages go, it's relatively easy enough to learn. If I didn't have enough time to learn Haskell, I also wouldn't have enough time to learn C++ or Python.

> but just maybe don't be so glib to claim it is not hard.

Again, what do you propose? Lie and tell people that it's super hard, so I don't hurt their feelings if they can't figure it out?

<comment><USER22> Maybe consider a little humility first.

<comment><USER20> Does it demonstrate a lack of humility to be honest about how difficult something was for me? I'm sorry my truthful assessment offends you. If humility means pretending things are harder than they are, then I guess I don't have any humility.

<comment><USER23> Whether we find it offensive or not isn't relevant. Your comments are degrading to those who find it difficult, and you are actively hostile when they complain or we point this out.

Your attitude is one I see too often in the FP community, and well-meaning or not it holds us all back.

<comment><USER20> >Your comments are degrading to those who find it difficult

Again, what do you propose I do about it? Should I never say anything positive about anything, lest I offend someone who had a bad experience?

>Your attitude is one I see too often in the FP community

Which attitude is that? Optimism?

<comment><USER23> > Should I never say anything

Well if you can't understand why your phrasing turns a positive idea into making somebody feel bad, probably.

> Which attitude is that? Optimism?

A version of it, yes. The "if you don't find it easy you are the problem" attitude.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> I wanted to like OCaml, mainly for working with Unikernels. When I looked at the syntax it just looked very arcane, which was discouraging.

<comment><USER10> Might come handy in case you want help yourself get over the seemingly cryptic syntax: [http://rigaux.org/language-study/syntax-across- languages/](http://rigaux.org/language-study/syntax-across-languages/)

</comment></comment><comment><USER14> If it's about what's well-supported for compiling to Javascript, does scala.js becoming non-experimental change the landscape?

<comment><USER23> I knew about scala.js when writing the post (although it was still experimental at the time) but I didn't mention it because I don't like Scala. It looked promising when I first saw it, but then I had to write some production code in it.

My opinion now is that if you're forced to use the JVM then Scala is one of the best options. But that's a low bar, given the choice I would pick something else.

</comment></comment><comment><USER25> Is there anywhere that I can track the status of the multicore runtime and modular implicits?

<comment><USER26> Multicore: [https://github.com/stedolan/ocaml](https://github.com/stedolan/ocaml)

Modular implicits: [https://github.com/ocamllabs/ocaml-modular- implicits](https://github.com/ocamllabs/ocaml-modular-implicits)</comment></comment>


ShowHN: a minimal Torrent search-engine experiment (it scrapes trackers for you) - <AUTHOR> http://getmetorrents.com

<comment><AUTHOR> Creator here. It's obviously a scratch-my-on-itch weekend project. I'm curious to know what you think about it, and what you would improve. Thanks!

</comment><comment><USER2> I like the clean interface. No fuzz, beef only!</comment>


Ask HN: ARM board for your DIY home NAS?  - <AUTHOR>

Due to what I consider high price for a comercial NAS, what options are available besides Raspberry PI to build yourself a home NAS using an ARM board. It would be nice to have a SATA port and of course Ethernet port. <comment><USER2> <http://cubieboard.org/> has a SATA port but it's not shipping yet.

This is a recent post from a blog I read: [http://dangerousprototypes.com/2012/10/09/arm-board- comparis...](http://dangerousprototypes.com/2012/10/09/arm-board-comparison- chart/)

and the linked to chart has SATA as a feature and it seems to be pretty thin on the ground.

<comment><AUTHOR> Too bad it's not shipping yet, I will keep it in mind. Thank you.</comment></comment>


Open Letter to a Car-Addicted City (2014) - <AUTHOR> http://www.planetizen.com/node/72068/open-letter-car-addicted-city <comment><USER2> I recall in ~2009 my university (UWaterloo) had a referendum to increase tuition by $50/term (now $80/term) to increase city bus routes to the university and provide free service to students using your student card. I voted against it because I could easily carpool and was against another mandatory fee.

The vote was fairly controversial and passed by a narrow margin. But since the service was improved to every 15 minutes and I was already paying for it I started using the service and shortly stopped driving to school altogether.

By the time I graduated I really loved the system since it really improved my commute and really regretted voting against it. I just checked and now the approval is at 94% for the UPass.

<comment><USER3> This is the dilemma in a car society - whenever you ask people what they want, it's more roads and parking spaces. People can't even imagine how a good public transit can improve their lifes, including that of the remaining road users.

I think the solution is just for everyone to visit a place with a good public transit network and live there for a few months - in the US I can only think of New York. Exchange student programs should be mandated anyways, to mend the cultural gaps within the nation.

<comment><USER4> My parents would say the trains are dirty and shake their head.

So hard to get people in the US to like public transit :(

<comment><USER5> Because trains are dirty in the US.

Go to Vienna, ride a train, and then go to San Francisco, and ride BART. Its night and day. Vienna had clean trains with a smooth ride. BART seems to always be dirty, and the cars screech like banshees.

Its a vicious cycle. No one wants to fund trains, so they fall into disrepair. The then get a bad rap about being in disrepair, so no one wants to fund them. If you want a real villain, blame the oil companies that bought up local trains and dismantled them in the first half of the century.

<comment><USER6> > If you want a real villain, blame the oil companies that bought up local > trains and dismantled them in the first half of the century.

That's quite a claim, considering air travel's hand in killing train companies. You have a citation for that?

<comment><USER7> I thought this was well-known:

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

<comment><USER6> First, streetcars aren't trains. They're good at circulating people around an urban center, but not for getting them in and out.

Second, even that article indicates streetcar systems were well on their way to death before the conspiracy started.

Third, the participation of oil companies in it was tangential; it was auto manufacturers who drove it.

<comment><USER3> As someone who's lived in Zurich, here's the main advantage of streetcars vs buses: They get their own reserved space in the middle of the road. That makes them very reliable and on-time like trains (assuming good planning / operations). That's why they're still popular in places with good service, and new ones are getting built.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> A car gives you privacy and freedom that trains and buses cannot. It's your space that you control; you're not forced to share it with strangers. You control the music, the temperature, and the route you take. You talk on the phone about whatever you want without worrying about being overheard. You can fill your trunk with a cart-full of groceries and drive it home. When you want to get somewhere, you can immediately get on your way. No train schedules, and no late buses. You drive home every day to your reasonably priced house, an appreciating asset that you own and that comfortably fits you, your spouse, and children.

There's a reason why even in dense cities with great public transit and walkable neighborhoods, the rich choose to be driven everywhere.

<comment><USER9> Also, if you have multiple kids and all the stuff associated with them (stroller, bags, etc), you're going to want a car.

What would you rather do - spend 45 minutes on public transit with two screaming kids and all your groceries, or drive your own car 15 minutes to the store?

<comment><USER10> You're taking the kid to the store either way, which seems like the hardest part. And I've noticed that my urban friends really trim down their kid-gear compared to my suburban friends -- city dwellers use a small stroller (or no stroller and a child carrier wrap) and a small bag with essentials, suburban dwellers use a stroller the size of a Mini Cooper (which they hauled around with a full sized SUV) with several bags of "essentials".

When I lived in the city, both of the grocery stores near me offered home delivery -- you drop off your bags at the front desk and schedule a delivery later this afternoon, so no need to carry them home or take them on transit.

But it was a dense enough city that you didn't take transit there, you'd just walk.

They had some kind of dial-in grocery shopping service as well that you could use to call in an order for delivery... but nowadays, online shopping seems to have solved the problem of shopping with children.

</comment></comment></comment><comment><USER11> Why even allow cars in the cities? The air will be cleaner without them. Have parking spaces outside the center and then automatic electric shuttle trains to transport people in.

Walking and biking in the city center with lots of green areas.

No cars means clean air and safe traffic. Air pollution from cars is a silent killer.

<comment><USER12> I'm guessing it never snows where you live, and nobody ever needs to buy more than one bag of groceries at a time?

<comment><USER13> Snow is even more of a reason to get rid of cars. A car-less city with underground subways/metros and integrated residential/light commercial districts sounds like a dream. No more shovelling, no more plows, no more going outside during the cold wind! I would love to be able to go from my house to the grocery store and work and the movie theatre (or whatever else) without ever having to set foot outside. This is possible for some people in Toronto and a few other big cities (that I know of) but not the common case.

<comment><USER14> Remember downtown Minneapolis being like that for obvious reasons. I think a lot of people in the Minneapolis area have heated garages so essentially you can park in a garage downtown, walk around the skywalks between the downtown skyscrapers, and never have to set outside.

I was only there for the Superbowl and never actually walked one, so maybe it's not so convenient.

</comment></comment></comment></comment><comment><USER15> Speaking as someone who is from Vancouver, it is very hard for me to see it (or cities like it) as a good example. Congestion has skyrocketed there, and many people are wasting 5-10 hours a week in traffic delays because of infrastructure which does not match citizens' needs.

City planners have wreaked havoc on cities with their continual obsessions with fads; maybe they should focus on helping people get what they want instead of trying to change people.

<comment><USER16> So if what people want are car-based cities that work well, what should a city planner do? Take measures to limit growth? Massive taxes on new construction?

The city I grew up in had a population of around 27,000 people 30 years ago. I think it's roughly the same today. Unsurprisingly, traffic and parking work about as well today is it did when I was a teenager.

<comment><USER15> The Greater Vancouver Regional District is made up of many municipalities, so if only one limits growth, the others will probably absorb that additional population (causing increases in congestion).

Additional taxes on new construction would exacerbate any traffic problems by pushing people out to the suburbs (, especially with Vancouver's already high housing prices). I would argue for precisely the opposite: allow for much greater construction everywhere, with fewer restrictions. City planners' efforts to 'sculpt' a city usually involves restricting supply to force people to live where the planners want them to, which drives up prices and drives population to suburbs.

<comment><USER16> Luckily for me, the suburbs are exactly where I want to be.

</comment></comment></comment></comment><comment><USER17> This is part of the reason many European cities are so walkable and livable, they were designed for people rather than vehicles.

<comment><USER18> I think a couple of things have helped their cities compared to the US. Their cities developed and grew before cars became locally mass-available and our move to the city (from farms) more or less coincided with the rise and availability of cars to consumers. Especially post-wwii. Plus, in suburban Europe, you see more cars. However, in cities, which developed before cars, they have lots of public transit with the requisite higher density housing.

<comment><USER19> "Suburban Europe" is sort of a tricky concept. In most countries, you have the outskirts of cities, and then you have the countryside with towns and farmland. You generally need to own a car in the latter areas, though you also typically get half-decent bus service.

Even in the UK I don't think there's anywhere that truly resembles American suburbia, with its vast sprawling acres of large houses and large yards where it's actually impossible to safely walk anywhere. It's a uniquely inefficient design.

<comment><USER18> True, in Europe as in advanced east Asian countries, the urban rural/agrarian transition is usually more abrupt. One side of the road is development the other is fields. However, Marseilles, for example [I imagine outer London and beyond has areas exhibiting suburban detached housing tracts] do have suburbs and if you want some mobility you need an estate sedan or the like to get things done.

<comment><USER20> There are some "suburbs" in the UK, but they're much more compact than American ones, and usually still have some local shops and public transport.

</comment></comment></comment></comment></comment><comment><USER21> I have an idea: stop making people commute to work. Half of the folk who hop in their cars every morning to spend two hours in traffic have no business going anywhere - their line of work doesn't require them to be in any specific place.

</comment><comment><USER22> [2014]

Here's the 2016 update of the "Walkscore": [https://www.walkscore.com/cities- and-neighborhoods/](https://www.walkscore.com/cities-and-neighborhoods/)

1\. NYC

2\. San Francisco

3\. Boston

...

7\. Washington DC

This list makes a lot more sense than the 2014 list.

<comment><USER23> To me, SF does not seem particularly walkable, bike friendly, nor transit friendly (it is ranked #2 for all). It isn't terrible, but #2 in the nation?

<comment><USER24> I think that might speak more to the dismal state of cities in the rest of the country, rather than SF being particularly good.

</comment></comment></comment><comment><USER25> I think the reason many people refuse use public transit, me included, is because it is costly, the service sucks, and it takes twice as long to get anywhere. The foul smell and filthy conditions that too often accompany the public transportation experience aren't good selling-points either.

Where I currently live, the high-speed commuter trains, which only stop at a handful of hubs, come every 30 minutes during the morning and evening rushes, and then once an hour outside of those times. Even then, sometimes the train goes all the way to my destination, but other times, it stops and goes out of service half-way there, so I end up having to wait for 30 minutes for the next train.

Regular trains, that stop at every station, arrive every 15 minutes, and are NOT coordinated, meaning that instead of being able to transfer by jumping off one train and walking across the platform to get on another, or waiting just a minute or two, I end up standing around for 12 minutes for the transfer train to arrive.

In my case, I can drive to work in 40 to 50 minutes in heavy traffic, or I can take the train and get there in an hour and a half each way.

Furthermore, rail passes are a joke where I live. They don't sell a pass for just the commuter train, or just between two commuting points. Instead, you have to buy the premium pass, which includes bus, train, and commuter rail services to everywhere the transit authority goes. I don't need that! A monthly commuter rail pass costs $198.00. I drive a Toyota Avalon Hybrid, and a rail pass ends up costing me about $100 more a month that I spend on gas.

If we want to make public transit attractive, it has to be cheaper and faster than driving, otherwise nobody with an ounce of economic sense will do it. I lived in Japan for a number of years, and the train system there is one of the best in the world. It is cheaper and faster to use the trains there, so most people do. I never wanted to own a car while I lived in Japan. In their society, especially in big cities, it is cars that don't make economic sense. This is what must take place for a public transit society to exist in America, in my opinion. We can't provide an abysmal experience for riders, and expect anything to change.

<comment><USER26> > If we want to make public transit attractive, it has to be cheaper and > faster than driving, otherwise nobody with an ounce of economic sense will > do it.

Hell, I would take either one of those--cheaper OR faster. Where I live and work, public transit is neither of those.

</comment></comment><comment><USER27> Posted this on an Uber tread the other day:

I live in New York, frequently travel to suburbs around the country and world, and have not missed for a second the driver's license I gave up almost 5 years ago.

It's not always seamless, but neither is driving. A shockingly good trade, already, and one that will only get better as cars drive themselves.

<comment><USER28> Although taking Uber isn't any different than having your own car -- as far as highways being over-capacity.

Uber may save on parking density, but not traffic density.

[http://www.sfgate.com/bayarea/article/San-Francisco- traffic-...](http://www.sfgate.com/bayarea/article/San-Francisco-traffic-Uber- Lyft-SFMTA-blame-10791265.php)

(Maybe your argument is that you normally walk/bike/train, and use Uber for rare special situations?)

<comment><USER29> Although not having a car makes one more likely to use public transit, even if you take uber most of the time.

</comment></comment></comment><comment><USER30> Self driving buses will be smaller, more flexible, and less of a hindrance to traffic than current buses, because there will be no need to amortize the cost of a driver over so many passengers.

Self driving cars will reduce the cost of Uber-like services as well, and lower the cost of tunneling (self driving cars will mean higher capacity and smaller shoulders and lanes, and electric cars will mean less ventilation required). Going underground is the best way to increase travel speeds and reduce friction between pedestrians and vehicles. Cities should look more like Venice.

<comment><USER31> Venice is sinking and floods regularly, by the way.

</comment></comment><comment><USER32> The car of the future fixes many of the problems, and it fits right into existing infrastructure. Think autonomous electric single/dual occupant taxis (2+ per lane).

We are still a ways off, but this is where things are headed.

We might not need the parking, but the roads will be useful.

<comment><USER33> This piece is centered on congestion and moving from a place to another, but the discussion on how to manage cars in a city extend beyond that 'moving' part.

Roads are also the target of a lot of rethinking, and the model where whole blocks of the city are completely closed to motorized circulation got traction in a few big cities already.

</comment></comment><comment><USER34> If I were making decisions in a city that was currently car-centric, I would wait until the effects of self-driving cars are better understood before making dramatic changes.

If we get fleets of on-demand self driving cars in cities that are currently car-centric, many of the disadvantages of car transportation will be ameliorated. A 45 minute commute by car is no fun, but when the car is able to drive itself and you've got high speed wireless data access, it probably won't be so bad.

<comment><USER35> If a self-driving car makes driving more palatable, people will buy homes behind even longer commutes, and you get even more traffic (more miles driven per day). The throughput capacity of a road (cars per hour) will not improve much, so they may even make congestion worse.

<comment><USER34> I think it's too early to be sure of the effects.

A widely available fleet of self-driving cars may help the last-mile problem with public transportation (how do you get from, say, the subway station to your workplace or from the subway station to your house). If this makes public transportation easier, this may decrease miles driven per day.

Will self-driving cars reduce the accident rate, and the congestion that results from traffic slowdowns near accidents?

Will self-driving cars make better use of less obvious travel routes and avoid bottlenecks in the road network?</comment></comment></comment>


9 Reasons I No Longer Use 500px - <AUTHOR> https://www.mrussellphotography.com/blog/9-reasons-i-no-longer-use-500px/ <comment><USER2> Between Flickr dying, instagram being Facebook, and 500px being, well the post is still spot on… I'm not sure what a nice place is for looking at and sharing pro/semi-pro photography. Seems like the comodtization of photography is both a blessing and a curse when it comes to the social sphere of (pro) photography

<comment><USER3> Where do we go now? Instagram was enjoyable until adds we're showing up every third post.

<comment><USER4> Hmm... 1px? behance?

</comment></comment></comment><comment><USER5> It should mention 2015 in the title.

</comment><comment><USER6> I wish I could view only the landscapes from the Popular page, instead of people. That's the reason I don't look at the site so much any more.

<comment><USER7> You can filter by category. [https://500px.com/popular/landscapes](https://500px.com/popular/landscapes)</comment></comment>


Ask HN: How to build a personal landing page? - <AUTHOR> Okay, so I got a domain with my personal name (http://korbinian-michl.de/) about two years ago. Since then I linked a mostly empty Tumblr page to it, which says: Hi. This guy does things on- and offline.<p>Now I want a simple landing page. Some text what I am doing, some photos, links to my social media stuff and that. But I need help. How to do it? I never "build" website outside the wordpress.com and tumblr universe. Any help is appreciated. <comment><USER2> I highly recommend Bootstrap and Github Pages. S3 also works but is a little more complex to setup in my opinion. Bootstrap gives you abstractions in the form of CSS classes to help you quickly build a website. The other helpful beginner feature is the vast array of Bootstrap themes, templates, and addons. The ubiquity of Bootstrap has spawned a thriving ecosystem of resources and tutorials even if modern web developers may sneer at it.

</comment><comment><USER3> Use Gitlab Pages to setup a homepage (learn some git basics as a side effect).

Official Tutorial: [https://docs.gitlab.com/ee/pages/README.html](https://docs.gitlab.com/ee/pages/README.html)

My write-up, geared towards beginners: [https://automizzen.com/blog/setup- gitlab-pages/](https://automizzen.com/blog/setup-gitlab-pages/)

I suggest using Hugo to build your site after setting up Gitlab Pages: [http://gohugo.io](http://gohugo.io)

</comment><comment><USER4> Create and download your landing page here: [http://launchaco.com/build/](http://launchaco.com/build/).

Download the files and Host them at Github Pages.

Edit the html with your copy.

All of it (HTML and how to create a Github Pages site) is very easy to learn googling it. And it is free.

</comment><comment><USER5> If you have any coding experience, (you don't really need any experience). I would recommend the following:

1) Get a free html5 single page template

2) Edit the site with your customization

3) Get a s3 bucket and upload your website files there

4) Use route 53 to redirect your domain to this bucket

5) NOW YOU HAVE A SITE!

If you are interested in more details, I wouldn't mind writing something up, I was planning on writing a blog on this anyways.

<comment><USER6> You can skip the S3/route 53 step by using something like [http://surge.sh/](http://surge.sh/)

</comment></comment><comment><USER7> I can recommend to use Hugo [0] as static website generator. They have plenty of themes [1] to choose from. You can still adjust it with basic knowledge in HTML/CSS. Afterwards you can chose where to host it. You can use Github Pages [2] for free or pay for a service like DigitalOcean [3]. I wrote a technical cheatsheet [4] on how to setup your own website with these ingredients.

\- [0] [https://gohugo.io/](https://gohugo.io/)

\- [1] [http://themes.gohugo.io/](http://themes.gohugo.io/)

\- [2] [https://pages.github.com/](https://pages.github.com/)

\- [3] [https://www.digitalocean.com/](https://www.digitalocean.com/)

\- [4] [http://www.robinwieruch.de/own-website-in-five- days/](http://www.robinwieruch.de/own-website-in-five-days/)

</comment><comment><USER8> Sounds like you need something similar to one I got for myself; [http://halilk.com](http://halilk.com)

It looks pretty simple at first glance. One TLDR sentence about my self. If visitor wants to see more, I expose more info on a bootstrap modal, such as showing the last ten book I read that I retrieve thru Goodreads API which is essentially populated from my kindle.

I also expose useless information like the last song I've listened on Spotify. There is also an Instagram footer showing random 8 photos at the bottom of the page along with the other social links.

Hosted at GitHub pages implemented with pure JS + Bootstrap. Feel free to copy and customise as you wish; [https://github.com/ibo549/ibo549.github.io](https://github.com/ibo549/ibo549.github.io)

</comment><comment><USER9> Don't forget [http://motherfuckingwebsite.com/](http://motherfuckingwebsite.com/).

</comment><comment><USER10> If you only want a welcome page and no articles, the easiest way is to use [http://about.me](http://about.me)

</comment><comment><USER11> I recently made a thing that can do this for you in < 60 seconds: [https://www.typa.io](https://www.typa.io)

<comment><USER12> fyi, the site does not load with 'www'. You may want to fix the A record and CNAME settings.</comment></comment>


House lawmakers pass bill to regulate airplane seat size, legroom - <AUTHOR> https://www.cnbc.com/amp/2018/09/27/airplane-seat-sizes-would-be-regulated-in-faa-law.html <comment><USER2> I'm 6'3" (190.5cm) and I really hope this actually makes an improvement. I've been on planes where my upper leg (from butt to knee) literally doesn't fit in the space provided - and that's _without_ the person in front of me putting their seat back.

Honestly, all I want is transparency: Every seat listed should have all the stats about it posted with the ticket price, _by law_. Right now all consumers have to compare is price and arrival times. If I was able to filter and sort by legroom or seat width in addition to price? I would be able to make my own decisions about my discomfort level in exchange for saving some money.

<comment><USER3> Do you use Google's flight search? Somehow they have a seat-pitch measurement (I have no idea how they get this data). I have used it to make decisions.

<comment><USER4> See [http://seatguru.com](http://seatguru.com)

</comment></comment></comment><comment><USER5> Is there an economic term to describe the type of market that the airline industry seems (from my point of view)?

It seems like operating an airline is such a capital intensive industry that once you've established yourself you can 'ignore' certain norms of competition and innovation.

Commercial air travel doesn't seem to have undergone much innovation since the Concorde failed. Domestic flights don't seem much faster or more comfortable than 10 years ago, and service has arguably gotten worse as usage has continued to increase. Airline travel is still so useful that many customers will simply take what is offered because in many cases travel by other means is not possible.

It does not seem like a monopoly because there are many competitors, but I don't know how to describe what I perceive in market terms.

<comment><USER6> IMO while I don't know the term, what has happened is buyers don't have good transparency on what they are getting for their money, and as a result the market has hyper-optimized for cost. When you aren't sure whether the more expensive ticket is going worth it to you, people take the cheaper ticket.

The hotel industry sort of has this problem too- it's hard to know what you're getting- but the concept of "stars" helps ameliorate the effect somewhat.

<comment><USER7> What transparency is missing? All the airlines disclose their seating configurations. There's SeatGuru. Google Flights even shows the pitch right in the search results.

<comment><USER8> SeatGuru is not run by the airlines and is not entirely accurate. It frequently shows configurations that will not match your airline or specific configuration.

If airlines wanted to be transparent and encourage competition, they would disclose the seat measurement config alongside the price.

<comment><USER7> You're never going to get a perfect guarantee. The airlines have to have the ability to swap aircraft at the last minute and that may mean delivering different pitch than originally shown.

Do passengers want the extra inch or do they want to arrive on time? I'm betting it's the latter.

<comment><USER9> > Do passengers want the extra inch or do they want to arrive on time? I'm > betting it's the latter.

On-time with a partial refund for not getting the seat they'd paid for is an option, too.

</comment></comment></comment></comment></comment></comment><comment><USER10> Non-AMP link: [https://www.cnbc.com/2018/09/27/airplane-seat-sizes-would- be...](https://www.cnbc.com/2018/09/27/airplane-seat-sizes-would-be-regulated- in-faa-law.html)

</comment><comment><USER10> It looks like this is aimed primarily at safety considerations, and not at comfort. So I don't see this dramatically making airlines more pleasant to fly on.

What I found most astonishing in the article was the baseline for evacuation:

> Current FAA rules require airlines to evacuate in 90 seconds or less.

Is this even vaguely realistic? Aside from blowing a hole in the side of the plane at every row, this seems completely infeasible.

<comment><USER11> Here is a video of an A380 evacuation test. 873 people evacuated from a plane in 79 seconds. Of course, this relies a lot on your passengers not all trying to bring their luggage with them like a bunch of morons (which unfortunately does happen).

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

<comment><USER12> Everyone participating in those tests knows what's happening and how to do it. The only variable they don't know is which exits will be blocked. It's like doing UX testing with the project team and giving it a pass.

And it's not 'moronic' to want to take money, ID, medicines and valuables in an emergency in a foreign country. The airline certainly isn't going to help afterwards beyond paying the pitiful per-bag compensation.

<comment><USER11> >Everyone participating in those tests knows what's happening and how to do it. The only variable they don't know is which exits will be blocked. It's like doing UX testing with the project team and giving it a pass.

You clearly have no idea what you're talking about. People chosen for these tests are chosen from a random sample of the public, including people of all ages, athleticism, knowledge of airplanes, etc. They are only told that that will be participating in a plane evacuation test and will need to go down a slide. Other than that, they are only given the same safety briefing that _every passenger on every commercial flight_ gets. Airline employees or those with pre-knowledge of the evacuation procedures are expressly forbidden from participating in the test. It's not like these are some "evacuation experts".

The test also has other stipulations, such as requiring some passengers to carry dolls to simulate carrying children, at least _half_ of the emergency exits are blocked off, all lights are turned off, and various pillows/bags/debris is spread across the airplane aisles to simulate conditions in a crash.

>And it's not 'moronic' to want to take money, ID, medicines and valuables in an emergency in a foreign country. The airline certainly isn't going to help afterwards beyond paying the pitiful per-bag compensation.

You're in a life-or-death situation where the options are to try to grab your bag with your certainly replaceable money, ID, and medicines, possibly killing yourself and/or others in the process, or leave them behind? Yes, it is absolutely moronic to even attempt to take them.

</comment></comment></comment></comment><comment><USER4> Spirit's seat pitch on their A320's is 28 inches. From polling people I know, anyone around 6'2" or more flat out can't fit their legs in without "man spreading" into their neighbor's seat.

Compare Southwest, also a relatively low cost carrier, at 31 inches of seat pitch.

<comment><USER13> Spirit is a lot cheaper than Southwest.

<comment><USER4> Depends. Certainly if you don't bring a carry-on ($35) or any checked baggage ($30). And don't print your boarding pass at the airport, either ($10). The bag charges go up $10 each as well if you don't do that from home. Prices are all each way, so assuming a carry-on and one checked bag, Spirit has to be $130 "cheaper" to be the same cost for a round-trip.

</comment></comment></comment><comment><USER14> Poor people will now pay more for airlines tickets.

The safest concerns of this are hilarious. Planes are already the safest transit by a wide margin.

This is similar to the congressman who wanted a law to make 1 checked bag free. Yes, make the most price sensitive people force to subsidize this cost. They are no longer rewarded with cheaper flights. (This cost has to go somewhere so all ticket prices would go up.)

</comment><comment><USER13> This is the worst sort if market regulation. It's based on the fantasy that you can legislate markets to be better, rather than just different. Here, the market has chosen cost over comfort. All the legislature is doing is replacing peoples' revealed preferences with their own.

<comment><USER15> Almost everything on a plane is regulated (for good reason!), I think we'll survive.

<comment><USER16> It used to be that the fares themselves were regulated. It's only relatively recently that a market for fares has existed at all. Guess what deregulation of fares did for consumers?

</comment></comment></comment><comment><USER17> Well that's one way to get attention to important issues, have a few congresspeople get personally inconvenienced by it. It seems like a lot of tall people get elected so even better in this case.

Now, if we could just get them to pay for college and healthcare (like normal Americans) at this stage of their careers we might really get somewhere!</comment>


Amazon's Best Books of 2014 - <AUTHOR> http://www.amazon.com/gp/feature.html/ref=s9_acss_bw_hsb_BHP1021B_s1_n?docId=1002993971&ie=UTF8&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-2&pf_rd_r=1BSAYKG97QA85HGQ3YK2&pf_rd_t=101&pf_rd_p=1968745842&pf_rd_i=10207069011

<comment><USER2> Sigh, another fabulous list of books to wish I'd read but won't have time to read.</comment>


The State of SQL Education - <AUTHOR> http://chartio.com/blog/2013/07/the-state-of-sql-education

<comment><USER2> The whole slant against "the business intelligence community" is just uninformed IMO. I think that there's another side to this that the author neglected to mention: self-service BI. The people who the author claims need a "SQL education" might be better served by a well designed OLAP structure that has a solid, easy-to-use front-end that allows users to find out what they want without having to resort to SQL at all. Microsoft has made great investments and strides in Excel, Excel-based tools (like PowerPivot), Report Builder, and SharePoint (to name a few) that really make it quite easy to browse relational, tabular, and multidimensional data. Does it help to learn SQL? Probably. Is it a barrier to entry? Sure, at some places. However with tools like PowerPivot it's becoming less about "learning a new language" and more about "just getting to the data".

These tools are "magic beans" or other marketing BS - they're very real tools that work great.</comment>


Ask YC: A startup blog or vlog? - <AUTHOR> In a few weeks I am starting my startup and I really want to document and share all steps of my progress. I was wondering what do you prefer, reading a daily blog or watching a daily video (like Loic Le Meur does)?<p>Please let me know your thoughts, and if you chose video, any recommendations on a good affordable camera? <comment><USER2> Blog. I hate vlogs and podcasts b/c I can't scan them to see if the content is worthwhile. Good luck!

<comment><USER3> Second that. Who's got time to watch video? Plus, text gets indexed, and you can search it.

</comment></comment><comment><USER4> I'm going to go with blog, but for a different reason that what I've seen so far. Blogs will put less stress on you (or whoever ends up with the duty of writing it) than a vlog will.

Blogs can be written from anywhere, on any computer, and in bits and pieces. You could write an update in an airport terminal, at your home, at your work, or in the park.

A vlog will require a quite location, a solid chunk of time, and in most cases a pre-written script, which could have probably just gone to your blog in the first place.

I suppose vlogs could put a more personal face on the startup, which may or may not help you connect with your customers. If you think it would help, you could create vlogs much more infrequently than the blogs, maybe just for large milestones in the company.

Interesting side note: Even though they broadcasted live 24/7 for a while, Justin.tv also had a blog. I'm not sure exactly why, but I'll bet that elad's point about blogs being indexed had something to do with it.

<comment><AUTHOR> Thank you, you've touched a point which didn't cross my mind, but is very valid, and that is time. I like the idea of using a blog for the frequent posts and video for those big milestones.

I feel there is an importance to put a face to my company because I believe I can better share my enthusiasm and passion.

</comment></comment><comment><USER5> Only a tiny percent of the population has the appearance, poise, voice, and snappy copy-writing abilities required for video. Actually, even national- level broadcasters still need a team behind them. You're assured of looking like an amateur if you do video.

</comment><comment><USER6> _"... In a few weeks I am starting my startup and I really want to document and share all steps of my progress. I was wondering what do you prefer, reading a daily blog or watching a daily video ..."_

Text.

The written word works best because your readers can search, read and print text. It is difficult to get Video to work because it costs $$$ to make it look good. This has nothing to do with getting a message across to an audience. It just sends the message - _"I have money and time to burn on hardware"_. Having said that If you have a reasonable audio setup ~ <http://podcastacademy.com/shows/detail1600/> plus a good speaking voice, I'd recommend doing a podcast on topics that you personally have researched, discovered. I'd suggest converting only your best ideas into a podcast. It hits the middle ground between text and video.

I think the biggest hurdle for doing anything but a blog is the technical/experience hurdles. Not everyone has the voice and experience of a Doug Kaye. Not everyone has the technical chops of Justin.tv

</comment><comment><USER7> A blog is definitely the way to go. I had the same dilemma when I wanted to start blogging about the start-up I'm working on. The vlogging approach is really time consuming and over the last 4 months I've only done a couple to go alongside the blog. Videos are a good way to mix it up and maybe attract people that don't like reading blog. They're also great for sharing with friends on Fb etc, but given the time it takes they're better as an occasional feature to a regular blog. This gives them some novelty value too.

</comment><comment><USER8> Blog when you think appropriate, vlog when appropriate, no need to choose a priori. Try stuff out, get feedback from your users, then decide.

</comment><comment><USER9> 99,843% of the time I hit content online that is video only, I immedietely hit the back button. Unless it's funny.

<comment><USER10> > 99,843% ...

is that out of %100,000?

<comment><USER11> Actually, yes it is. Europeans tend to use a comma instead of a period as a decimal marker, e.g. 0,3 instead of 0.3.

</comment></comment></comment><comment><USER12> Neither. Focus on building your product and your business and forget about blogging.

<comment><USER13> AGREED... with video you have two options:

1) stare straight into the camera and emote-- but this makes for awful video content that nobody will endure.

2) take advantage of the visual medium-- you'll make compelling video but it will take SO DAMN LONG to produce that your startup will wither and die.

I blew 10k on hvx200, arris, and audio only to learn: focus on the startup, focus on the startup, focus on the startup.

Everyone likes to be famous and on tv because thats what our culture drills into us. Think about all the kick ass products you respect... how much do they blog? vlog? I didn't think so.

<comment><USER14> _Think about all the kick ass products you respect... how much do they blog? vlog? I didn't think so._

This can be incredibly hard for the mind to accept. I used to work in the cell phone components industry. In a fab, you begin to realize how many incredibly talented engineering careers are spent designing and integrating parts that will _never be seen_ by you, the person who carries them in your pocket.

It's weird because that anonymity also works in _reverse_ : The software that I wrote back then has played a crucial role in producing _over half a billion_ parts, for half a billion handsets... and I never really notice, unless I pause to think as I'm doing now. A really astounding percentage of humanity has been touched by my work [1], and they don't know, and they certainly don't care, and _I_ barely even think about it.

[1] Not that this makes me particularly special. There are many thousands of fab techs and engineers who could say the same. Many of you can say the same.

</comment></comment></comment><comment><USER15> Blog. Let your audience maintain control.

</comment><comment><USER16> Blog, without a doubt.

Unless you've got an extremely compelling reason to use video, there's no question that the written word is the way to go.

</comment><comment><USER17> blog. faster to read than to listen.</comment>


Show HN: A free and open-source budgeting app you can self-host - <AUTHOR> https://github.com/inoda/ontrack <comment><USER2> This seems really cool but as I am not a rails developer it seems that I don't know how to even install it on a server of mine. It would help if you could provide installation instructions.

<comment><AUTHOR> That's good feedback - I've added installation instructions to the readme!

</comment></comment><comment><USER3> Nice work so far.

It would be great to show a comparing to other tools (such as YNAB).</comment>


Ask HN: How does the White House prevent Obama's emails from being forwarded? - <AUTHOR>

A recent CNN article describing Obama's new email device had this line: "According to a report in the New York Times, security precautions make it impossible to forward an e-mail from the president."<p>Does anyone have a guess as to how this works? Perhaps the emails are viewed through a web browser? In any case, it would seem that the analog hole defeats the purpose of the security measure. <comment><USER2> It's never impossible to forward an email. Heck, you can simply take a screenshot and forward that along (or even write down the contents and re-type it). A forwarded email is just as suspect as a screenshot that can be photoshopped.

I think the way that they prevent it is that you'll get fired if you do it. People who work in the White House are usually people who a) want the sitting president to do well and b) want a career path that will get them to even better things than they're at now. A big Obama supporter isn't going to forward an email that might be embarrassing unless it's something like an order for human children to be served at a banquet. Likewise, if you want to someday become a congressperson or become a big(er) deal in DC, you don't want to get a reputation as "that guy that spews everything you don't want public".

So, really, you only need slight precautions to make sure that email isn't forwarded. The kind of precautions that would let a hacker easily bypass it, but you wouldn't accidentally forward something.

</comment><comment><USER3> Probably Information Rights Management in Outlook (Office):

<http://office.microsoft.com/en-us/help/HA101029181033.aspx>

I have no inside knowledge, though, but I doubt they built their own system.

And you can still take a screenshot with a third-party program, and myriad of other ways to get around it. If you read it on the screen, you can forward it -- just takes a little more work.

<comment><USER4> I think their concern is only aimed toward accidental forwarding of mail anyway, which IRM would take care of. If someone wants to leak info, it's really no longer an IT security issue.

</comment></comment><comment><USER5> I doubt they implement or worry about technology to absolutely prevent anything the president ever emails from ever leaving the office. Copy + Paste into a new email solves that pretty cleanly.

The issue however, is what if someone unknowingly or accidentally forwards something the president wrote? There's easy-to-setup and use technology in pretty much all mail servers to check for and prevent that.

(I'd find it super neat however, if there were a program that took all of the president's emails and inserted extra random spaces/punctuation/etc. so that if there WERE leaks, they'd be identifiable.)

<comment><USER6> They only let him email people with iPhones. That way they fix the copy+paste hole.

</comment></comment><comment><USER6> I bet they told the handful of people who have his email address "Of you every forward a message you will no longer be able to email the President".

That would probably work well enough.

</comment><comment><USER7> Sounds like something these guys might have dev'd: <http://www.vaporstream.com/></comment>


AnyPerk (YC W12)  Raises $8.5M in Series A Funding - <AUTHOR> http://techcrunch.com/2015/02/02/anyperk-a-platform-for-delivering-perks-to-employees-raises-8-5m-in-series-a-funding/

<comment><USER2> congrats @tarof and team!</comment>


Ask HN: what should I teach high schoolers about web? - <AUTHOR>

I am a volunteer TA at a high school AP computer science class.  I volunteered to do one session on web programming.  What should I do?  I want it to be interactive and have them actually write code.  I was thinking have them do something in js fiddle.  Any ideas or recommendations?  I can't install anything on the machines but they all have chrome on them.  So it will have to be some cloud IDE of sorts.<p>They are into YouTube, reddit and twitter so maybe something with using their APIs??? <comment><USER2> Show them how awesome Tampermonkey can be - they will love that.

</comment><comment><USER3> \- How much time do you have? If you have about an hour or 2, (since you want interactivity + code), I wouldn't mind bringing in an Arduino and have them control it through the web or with code. Something along this line ~> [http://www.instructables.com/id/Create-an-internet- controlle...](http://www.instructables.com/id/Create-an-internet-controlled- robot-using-Livebots/) but cut short. That will be cool.</comment>


In defence of the P-value - <AUTHOR> https://scientistseessquirrel.wordpress.com/2015/02/09/in-defence-of-the-p-value/

<comment><USER2> This defense of P-values is akin to how a certain type of computer programmer tends to defend bad design decisions, like "if you accidentally typed `rm -rf /` and it wiped out your entire system, then you're an idiot, learn to use your tools".

Thing is: even statistics professors often don't manage to interpret P-values and confidence intervals the way they should. (See e.g. "Students' misconceptions of statistical inference: A review of the empirical evidence from research on statistics education") You're almost automatically forced into a sort of double talk where you write about P(D|H0) but deep down you'd really like your readers to think it's about 1-P(HA|D).

When a tool can be used correctly (if handled very delicately and by a true expert) but practically encourages you to abuse it, at a certain point "it's not the tool, it's you" stops being a convincing excuse, and you've just got to say: fuck it, we need better tools.

<comment><USER3> At some point research is going to be hard - after all, if it were easy to discover someone would have done so already. Sure, we should always strive to improve our tools - but that's also hard. Throwing up our hands and stopping research is not an option. So what do we do?

Is there a better alternative? If the P-value is the frying pan then Bayesianism is the fire; you don't get a standard library of tools appropriate to different situations, you get one powerful tool that has to be applied correctly, and for the part that really matters in the contentious cases - choice of prior - you're almost completely on your own.

Release your raw data. Use simple, standard analyses; do them once and do them right, and stay the hell away from subgroup analysis. It really isn't too hard to get the statistics right - it's just very easy to let yourself slip, especially when your future funding/career depends on it.

<comment><USER2> Power analysis and confidence intervals have their own problems, but they're already a vast improvement over p-values. No need to go all-out Bayesian straight away – though certainly, if we can get the software to a point where that would be possible for non-statisticians, that'd be awesome. (Bayes factors help when you don't want to fix a prior.)

For anyone who's interested to read more about this middle ground approach, "The Essential Guide to Effect Sizes" by Paul Ellis is an awesome introduction not just to power analysis but to better statistical practice and statistical reporting that sticks to the frequentist tradition.

Also, I don't feel subgroup analysis is necessarily the problem, at least not when you apply any of the available corrections for familywise error rates (Bonferroni and Tukey's HSD being two of the more well known). This often comes up in medical research, e.g. [http://www.badscience.net/2009/04/a-frankly-thin- contrivance...](http://www.badscience.net/2009/04/a-frankly-thin-contrivance- for-writing-on-the-fascinating-issue-of-subgroup-analysis/) \-- but in those cases subgroup analyses are performed with bad intentions, a whole other problem!

A bigger issue, perhaps, is drawing inferences from hypotheses that came up when analyzing the data in the first place – it's very appealing but it's also wonderfully circular in its logic and why in machine learning circles it's become almost self-evident to split up the data into training and test sets.

<comment><USER4> >machine learning circles it's become almost self-evident to split up the data into training and test sets.

This is great for predictive modeling but how does this work for analysis of experiments?

<comment><USER2> Not experiments, but observational data is often analyzed using regression, the poor man's predictive modeling :-)

</comment></comment></comment></comment></comment><comment><USER5> This is about more than mere p-values. This is a fundamental problem of tools themselves. Using a programming language, hammer, or stats tool incorrectly courts disaster.

But some tools are better than others about teaching people how to use themselves correctly. Math tools like the p-value are really hard, because most scientists are not math people - they want a quick solution, whereas statistics requires deep understanding. P-values are just so appealing as a magic number. An apt anology is the late 90's PHP people who just wanted a solution now, rather than designing a robust application for the future. The question then becomes:

1) How can build tools that lead people toward the correct decision, or at least avoid the unambiguously wrong ones.

2) If we can't do 1, we need to spend more time educating users, and figuring out why they make the wrong decisions regarding a tool.

Unfortunately, I can't say these are easy, or even possible problems to solve. We just do the best we can.

</comment><comment><USER6> The most important thing your P-value "doesn't do" is tell you if your underlying model structure is correct.

In particular, the actual value of your P-value is dependent on the underlying distribution, which rather begs the question.

This is the biggest issue with the P-value in the context of social science or commerce.

For physical systems, where God[1] actually makes sure that your distributions, errors, etc are normal, it's pretty awesome.

[1] [http://en.wikipedia.org/wiki/Central_limit_theorem](http://en.wikipedia.org/wiki/Central_limit_theorem)

<comment><USER4> >The most important thing your P-value "doesn't do" is tell you if your underlying model structure is correct.

It wasn't meant for that though. It is meant as a value to look at which gives an indication of the probability that what experimental procedure you are performing is causing a differentiation between groups. It is just one indication among many diagnostics to run on a model.

>For physical systems, where God[1] actually makes sure that your distributions, errors, etc are normal, it's pretty awesome.

Non-parametric tests have been around for quite some time.

</comment></comment><comment><USER7> I'm going to go for the embarrassing question, but I don't understand p-values or how to design a study. Any pointers gratefully recvd

If I understand correctly, let's say I am concerned Earths gravity is increasing underneath Kent school buildings this stunting kids growth.

I decide to test this by making a statistical survey with a p-value in it.

We shall sample the heights of 10,000 randomly chosen children from 10 counties, one of which is Kent (so 1,000 kids from each school district)

My null hypothesis is that there is no gravitational anaomloly and so the height distribution should be equal or the mean height should be equal or ...

So I get a bit lost here.

What is 95% significance ...

<comment><USER8> Going by the wikipedia article, a p-value is the probability of getting a result "at least as extreme" as what you observe under some hypothesis (in practice, the null hypothesis, however defined). Imagine we're spinning a spinner to get one of two values ("red" or "blue"), and we think a good null hypothesis is "red and blue are equally likely outcomes of this spinner". Spinning 500 times, we "should" see 250 of each, but obviously the odds of that are quite low. So if I spin the spinner 500 times and see 400 reds and 100 blues, what does that mean?

Under the null hypothesis, the odds of that result are (0.5)^400 * (0.5)^100 * (500 choose 400). The first step in calculating the p-value is to decide which outcomes count as "at least as extreme"; the obvious candidates are (1) any result with 400 or more reds; and (2) any result with 400 or more of either color. (1) is better for talking about the hypothesis "this spinner is biased towards red", and (2) is better for talking about the hypothesis "this spinner is biased". Obviously, under the null hypothesis, the p-value calculated for (2) will be twice as large as the p-value calculated for (1), which will have implications for the publishability of your results, so you should choose (1) and, if necessary, adjust your hypothesis to suit. ;)

Anyway, in principle, you add up the odds of all the outcomes that count as "at least as extreme" as the result you observed, and that total is your p-value. You can report "under the null hypothesis, there is less than a 5% chance of observing this result" (p < 0.05), and the person after you in the chain can report "it is at least 95% likely that the spinner is secretly Republican", and the press can handle things from there.

Now, you've got a very interesting example going on in your question, because your null hypothesis specifies that the height distribution of children in a county is due to the local gravity. (Is this a reasonable null hypothesis? No.) So if you do your survey and find that Kent kids are taller, and the difference in mean height is significant at the p < 0.03 level, you can say "we reject the null hypothesis with 97% confidence". The predictive part of your null hypothesis says "the height distributions are identical in every county", and that's pretty easy to calculate about. Your rejection is perfectly justifiable! But, a reporter could then look at the phrasing of the non-predictive part of your hypothesis and report "97% chance of a gravitational anomaly in Kent", which would be unjustifiable; if Kent kids are taller, I'd look at factors like nutrition and genetics long before I even considered the possibility of a gravitational anomaly. The lesson here is that rejecting the null hypothesis "there is no gravitational anomaly and therefore the height distributions of children in every county will be identical" doesn't allow you to conclude "what do you know, there is a gravitational anomaly after all!", even though the rejection was fairly legitimate.

<comment><USER7> So the nice diagram with a small area of 2nd std Dev filled in is showing all the results of throwing a dice that get a result at least as extreme as the observed result.

So if I throw a dice 60 times I would expect a fair dice to come up with 10 1's, 10 2's etc. if it came up with 50 1's I could say that I reject the fair dice hypothesis with a confidence of

(Thinking)</comment></comment></comment>


Git immersion - a simple git tutorial - <AUTHOR> http://gitimmersion.com/index.html

<comment><USER2> I am surprised it didn't cover reverting back a file to old version:

1\. Check the diff: git diff <commit hash> <file>

2\. Revert back: git reset <commit hash> <file>

</comment><comment><USER3> This was pretty popular on HN last year: <http://news.ycombinator.com/item?id=2104872>

<comment><USER4> Glad it's re-posted. I missed it last year, and it's exactly what I needed. It's making me fairly proficient in a very short time.

</comment></comment><comment><USER5> I found this on github a while ago: <http://rogerdudler.github.com/git-guide/></comment>


Aim is more miss than hit for investors as it marks 20th anniversary [2015] - <AUTHOR> https://www.ft.com/content/5c1c3ba6-1513-11e5-9509-00144feabdc0 <comment><USER2> This FT article dates from June 19, 2015. AIM launched on June 19, 1995 - hence this was a 20-year anniversary piece.

<comment><AUTHOR> I've edited the title to include the date.

</comment></comment><comment><AUTHOR> It's paywalled, but AIM is the London Stock Exchange's less regulated sibling, the Alternative Investements Market, and the main claim from the article is:

> " _close to 3,000 companies have listed on Aim, but 72 per cent of them have > never produced a return for investors, according to professors Elroy Dimson > and Paul Marsh of the London Business School. Worse still, nearly one in > three Aim companies have resulted in shareholders losing 95 per cent or more > of their initial investment._ "</comment>


Pg_shard – PostgreSQL extension to scale out real-time reads and writes - <AUTHOR> https://github.com/citusdata/pg_shard <comment><USER2> At work we're in the midst of rolling out a sharded Postgres platform based on [http://www.craigkerstiens.com/2012/11/30/sharding-your- datab...](http://www.craigkerstiens.com/2012/11/30/sharding-your-database/), with the sharding implemented at the application level. The biggest piece of complexity in that post is around designing the sharding in such a way that you can gracefully add more shards later.

Having read the pg_shard readme, it's not clear to me how it addresses that issue. I'd need to have a really clear idea how to handle scaling my cluster before committing to a sharding solution.

<comment><USER3> We'll update our FAQ with a detailed answer to this question.

As a summary, the user specifies the shard and replication count as they are sharding their table. For example, if you have 4 nodes, you may pick 256 as the initial shard count. That way, you'll have ample room to grow as you add new nodes to your cluster.

When you pick 256 shards over 4 worker nodes, pg_shard will create them in a round-robin fashion. Shard #1 will go to node A and B, shard #2 will go to node B and C, and so forth. This has the advantage that when one of the worker nodes fail, the remaining 3 nodes evenly take the additional work. Also, when you add a new node to the cluster, you can gradually rebalance some of the shards by moving them to the new node.

<comment><USER4> We have used sharding for managing time series data e.g. 1 shard per day. Is there a way this could work i.e. where the number of shards continually grows?

<comment><USER5> That use case isn't yet handled by pg_shard: the plugin currently supports only hash partitioning and what you've described is range partitioning. This is certainly on our immediate feature list, as range and hash partitioning cover a variety of use cases.

However, CitusDB _does_ support range partitioning and has a _\stage_ command that will create new shards from incoming data. If you periodically load data that corresponds to a particular time range (hour, day, week), CitusDB can easily handle creation of additional shards during each load.

</comment></comment></comment></comment><comment><USER6> It's great to see this released as open source (LGPL) -- looks like a really useful extension.

I've always been a fan of using PostgreSQL wherever possible, and this extends "where possible". As a YC S11 batchmate especially, I'm really proud of all the great contributions Citus Data has made, and what a useful tool CitusDB is (a bunch of other YC companies use it).

</comment><comment><USER7> Huge fan of Citus Data. Their column store for postgres is really useful for building data warehouses:

[https://github.com/citusdata/cstore_fdw](https://github.com/citusdata/cstore_fdw)

</comment><comment><USER8> I wonder how it compares to the slightly more well established Postgres-XL.

There is definitely a different approach being taken as Postgres-XL has a supervisor/loadbalancer, and pg_shard seems like every node is capable of doing all actions.

Excited to see it evolve.

<comment><USER9> Postgres-XL has cluster-wide transaction support, this doesn't.

<comment><USER10> And cluster wide JOINs as well.

</comment></comment></comment><comment><USER11> Having a master node which delegates all the queries sounds like a single point of failure. Could this be avoided by having a failover master?

<comment><USER5> Hey, Jason from Citus Data here (one of pg_shard's authors).

Yes: if you have high availability needs, PostgreSQL's streaming replication feature can mitigate this failure risk by providing a hot standby for your master; otherwise, regular backups of the master can suffice (pg_shard's metadata is stored in regular PostgreSQL tables).

See our documentation page for more answers to questions like this: [http://citusdata.com/docs/pg-shard](http://citusdata.com/docs/pg-shard)

<comment><USER12> We have something similar in house, it is basically proxy that runs on our app-server and our app connects to. It will then parse incoming queries and route queries to the correct schema/server base on the WHERE clause (also supports INSERT). We would like to on open source it, but right now it specific to our needs (e.g hard coded hash function).

</comment></comment></comment><comment><USER13> I don't see any documentation around schema migrations. How is that normally solved on the Petabyte level?

<comment><USER14> Do you use Postgres at the Petabyte level? Does it perform OK?

</comment></comment><comment><USER15> If you want more details about pg_shard, have a look to this blog post.

[http://www.databasesoup.com/2014/12/whats-this-pgshard- thing...](http://www.databasesoup.com/2014/12/whats-this-pgshard-thing.html)

It explains a bit more what it does and doesn't

</comment><comment><USER16> Comparing this a bit with Postgres-XL, how mindful of data locality do I have to be when querying? Looks like this drops right in for existing apps, but I'd be concerned about long-term performance if I didn't tailor my app code.

<comment><USER3> You don't need to worry much about data locality with pg_shard. It's designed to push the computation to the data, and as such, abstracts away most data locality concerns. The only exceptions are complex analytic workloads such as distributed joins; and CitusDB offers an easy upgrade path to remove those concerns.

Another difference with Postgres-XL is that pg_shard is an extension to PostgreSQL, rather than a separate product with different components. As such, you can just compile and load it into standard Postgres, and you're ready to go.

</comment></comment><comment><USER17> Nice work. But I wonder how they handle table alterations, I couldn't see they mentioned on the docs. Is it possible at all? If it is, since pg_shard doesn't support transactions, what if alteration fails ?

<comment><USER5> Table alterations are not supported: if we're missing this in our docs I'll be sure to make that more explicit. They're certainly in the list of things we'd like to support.

At the moment, our customers who do need table alterations accomplish them by using a script that propagates such changes to all worker nodes.

</comment></comment><comment><USER18> Wondering if any CitusData folks can speak to whether this is being used for production workloads anywhere yet. If so, could you speak to the size/throughput of those deployments?

</comment><comment><USER19> We have a sharding mechanism in our PHP framework and also Node as well, which can actually split shards which become too "hot" as determined by you. The whole system is online during splitting and only a small part if the system goes offline for 1 second before the final switchiver. No need to pre shard in the beginning, it actually splits according to usage later, into an unlimited number of shards.

</comment><comment><USER20> Awesome work, I should give this a spin.

One of the issues I can see already is being able to support existing applications, especially ones that have transaction heavy workflows. I have the same issue with Postgres XC, supporting transactions, but not supporting savepoints.

But this looks like a completely different use case for postgres, as a sort of pseudo-noSQL type db.

</comment><comment><USER21> This is another evidence of how extensible and flexible is PostgreSQL. Great work!

</comment><comment><USER22> Very cool to see this open sourced.

Any advice on migration process? Transferring a high write-throughput postgres instance to a multi-pg deployment with pg_shard feels pretty daunting.

</comment><comment><USER10> Gotta love how they opensource bits of their product.

<comment><USER23> And at a glance there's a clear upgrade path to their commercial product, hopefully adding to a sustainable business model.</comment></comment>


First look at Lytro  - <AUTHOR> http://mashable.com/2011/10/19/lytro-closer-look/

<comment><USER2> That's some really innovative technology. Wondering what happens if those images were focused in real-time with eye-tracking system.

<comment><AUTHOR> That could be great addon for lytro.</comment></comment>


Pg: I've never met anyone with a gut feel for exponential growth - <AUTHOR> https://twitter.com/paulg/status/1235247452145451013 <comment><USER2> This person should look harder. I know plenty of people used to operating at exponential growth and the growing pains it implies. Plenty of financial and biological systems require it.

The realistic view is also that nothing stays at exponential growth forever. It usually tapers off until something changes. Yet people demand everything stays the same with growth year-on-year at same rate. Past performance does not imply future performance but useful patterns can be found if you pay attention.

Extrapolation requires experience. Easy way or hard way.

</comment><comment><USER3> Worse still, exponential growth combined time-lagged observations (e.g., asymptomatic infection period, lack of testing, bureaucratic delay in reporting, etc.).

If you wait until it _seems_ like the right time to act, you will have waited far too long.

</comment><comment><USER4> nearly everything I've expected to grow exponentially has eventually ended up being sigmoidal.

Also every physics person I studied with who worked on radioactivity has a gut feel for exponential growth and decay. Every statistician, and every computer programmer. Also most biologists. He probably just interacts with a lot of normies.</comment>


Ask HN: How have you dealt with taxes (U.S.) and algo crypto trading? - <AUTHOR> For those who have algo traded crypto currencies in the last year or so, has the tax burden (U.S.) been too unbearable to make it worthwhile?  The IRS is one of the most powerful and terrifying government agency, so I am having fears that may be unfounded.  I plan on talking to an tax authority of some sort, but wanted to get some feedback from the community who've been through this.
Here is my dilemma:
I have promising code I'd like to start trialing, but when I do the math, it only makes money assuming no taxes per trade, which I haven't factored in.  That's because I can't grok the taxes, and how they will be calculated.
Given my naive understanding of how it is supposed work, it's possible even though I might gain fractions of a bitcoin by end of day, I could owe the IRS thousands of dollars I didn't make.
Here is a toy scenario (numbers are fake to keep it simple):
1) 10:00 am: 1.0 BTC -> 1.1 LTC (trade 1 bitcoin for 1.1 litecoin)
2) 11:00 am: 1.1 LTC -> 1.2 BTC
3) 12:00 pm: 1.2 BTC -> 1.3 LTC
If the value of BTC, is $1000 at 10 am, then rises  to $2000 at 12 pm, that is a gain of $1000.  By buying the LTC at 12 pm, it seems I would owe taxes on the "gain" in BTC of $1000, even if I only gained 0.2 BTC ($400).  As I understand it, the taxes are owed based on the relative gain in dollar value, not on absolute bitcoin gain.
The taxes could easily wipe out any gains, or worse, cause me to owe money I didn't make. I can't decide whether even to  test the code, as I fear accidentally incurring a high tax bill.
1) Are my fears unfounded?
2) If I make thousands of these tiny trades per day, could I potentially owe more in dollars than I virtually gained, or am I seriously mistaken?
3) In practice, I'll be trading other currencies too which are not traded against the dollar.  How have others estimated the dollar value of such currencies at the time the trade was executed? <comment><USER2> The IRS treats cryptocurrencies as property, just like stocks. The standard rules for capital gains/losses apply when you buy/sell/exchange it. For more details, read the IRS guidelines:

[https://www.irs.gov/pub/irs-drop/n-14-21.pdf](https://www.irs.gov/pub/irs- drop/n-14-21.pdf)

<comment><AUTHOR> Yeah, I've read that.

</comment></comment><comment><USER3> You only pay tax on net gain.

As with anything to do with tax, you should consult with an tax accountant or EA who 'specialize' in trader taxation.

<comment><AUTHOR> I am fairly certain that is not correct. When you buy a virtual currency with another virtual currency, that is a taxable event, and you have to estimate the basis for tax using the currency gain in dollars. Or that is what I have understood from their guidance docs.

I do plan on talking to an accountant with specialty in this, obviously, just trying to figure out what others have experienced to see if my thoughts are off.</comment></comment>


Are You a Tech Company? - <AUTHOR> http://www.theawl.com/2014/09/are-you-a-tech-company

<comment><USER2> Its interesting because a successful apparel e-commerce company from India, Myntra call themselves technology company first, apparel company later.

This goes on to show the importance that companies that have predominantly online presence have to give to technology.</comment>