Urbit language tutorial, chapter 0 - <AUTHOR> http://urbit.org/docs/dev/hoon/tutorial/0-nouns <comment><USER2> Really should lead with an end example then deconstruct how it works. But I get the feeling they are trying to be intentionally obtuse, either to show off cleverness or as performance art. Perhaps that's a bit cynical.

<comment><USER3> >But I get the feeling they are trying to be intentionally obtuse, either to show off cleverness or as performance art

Same here. I really don't see the point of renaming well known and defined concepts

<comment><USER4> We're not trying to be intentionally obtuse. In general, we try to only create new names when the old names are for a sufficiently different concept. Perhaps we go slightly too far in doing this, but much of the "the terms are alien" feeling comes from the concepts beings actually different than you're used to.

This is the start of a bottom-up style tutorial, but if you're interested in a top-down tutorial, may I suggest this one from one of our open-source contributors: [http://hidduc-posmeg.urbit.org/home/pub/hoon- intro/](http://hidduc-posmeg.urbit.org/home/pub/hoon-intro/)

<comment><USER5> > In general, we try to only create new names when the old names are for a > sufficiently different concept.

You renamed the godforsaken PUNCTUATION, man. What exactly is the different concept behind an equals sign in Urbit that you have to call it tis? Or the colon, what conceptually did you change about the colon that it's got to be a col or the comma that it's a com?

<comment><AUTHOR> How many times a day do you want to say "percent equals" or "tilde ampersand," rather than "centis" or "sigpam"? Worse, you may not spend a lot of time reading code out loud, but when you read your brain still thinks the sounds.

Of course, you're free to prefer keywords to digraphs. But sometimes I worry that there's a reason the 787 looks just like the 707 [1], and it's not at all about airplanes...

[1] [http://idlewords.com/talks/web_design_first_100_years.htm](http://idlewords.com/talks/web_design_first_100_years.htm)

<comment><USER6> > How many times a day do you want to say "percent equals" or "tilde > ampersand,"

Zero if I can help it. Even if I'm talking about code aloud, I normally do so semantically, saying what the code is _doing_ , because people are more than capable of reading the code itself. (Same premise as commenting code.) If I'm actually reading the exact symbols aloud, a rare occurrence, then I'll say things like "mod equal" or "mod eq", "tilde and", etc. If I'm reading "#include <stdio.h>", I'll say "include standard I O", not "pound include space angle s t d i o dot h angle newline".

> Worse, you may not spend a lot of time reading code out loud, but when you > read your brain still thinks the sounds.

No, it absolutely doesn't. Learning to _avoid_ reading-aloud internally is one of the first things taught in speed-reading of prose, and the same concept applies to programming.

> Of course, you're free to prefer keywords to digraphs. But sometimes I worry > that there's a reason the 787 looks just like the 707 [1], and it's not at > all about airplanes...

That may be, but what you've done here is on par with APL saying "you need a completely non-standard keyboard and character set to program this language", but worse.

If you want to introduce new names for symbols, that's a separate exercise from trying to make a new programming language; the latter is quite hard enough.

<comment><AUTHOR> But _worse_?

I assure you that we're not shipping Urbit with non-standard keyboards printed with "com" rather than ",". If these syllables rub you the wrong way, you're perfectly free to pronounce them any way you like.

Most people aren't speed-readers. I am, but only because I learned at an early age. I don't know anyone who speed-reads code in the sense you mean.

<comment><USER7> The grandparents post's first argument about semantic reading was much more important than the speed reading bit.

<comment><AUTHOR> This works fine for C, which is a keyword language.

What you'll find if you look at Hoon is about 100 combinator runes, which are digraphs like "%=" ("centis") or "|-" ("barhep"). (There is of course a power- law usage distribution -- a few common runes dominate.)

If we had to invent and remember semantic names for each of these runes, that binding would really be a lot of work to remember. We could say "mutate" instead of "centis" and "loop" instead of "barhep". Remembering these bindings would be quite a lot of work.

Of course, we could use reserved words directly; you can experiment with translating Hoon into reserved words. (The earliest experiments used keywords with a sigil, like ":loop".) To my eye the keywords look hideously verbose and are easily confused with symbols.

You also lose the ability to classify, say, "|=" and "|-", as closely related runes. This is especially useful with unusual, rarely used runes; what is "|/"? You might not know, but you know that it starts with "|", so it makes a core.

<comment><USER6> > If we had to invent and remember semantic names for each of these runes, > that binding would really be a lot of work to remember.

So is remembering what all the runes do; if the names and the functions relate, they're both easier to remember.

<comment><AUTHOR> The runes (a) help you remember the combinators, and (b) are two characters long.

To get to reasonably precise, meaningful keyword bindings for this set of combinators in particular, perhaps you'd be replacing ":-", ":_", ":+", ":^", ":*", and ":~" with ":pair", ":reverse-pair", ":triple", ":quadruple", ":tuple", and ":list" respectively. This is a pretty benign and easy case, and you may have to trust me on what kind of hash this search-replace alone would turn a Hoon file into. Then again, I suppose it all looks like hash to you.

Language design is hard; you can't please everyone. Probably the best-case scenario is that you please some people, and the rest are dragged kicking and screaming. And that's a best case.

<comment><USER6> No, I actually think that having combinators like that makes sense; it's a perfectly reasonable (and very APLish) design choice to Huffman-code those kinds of operations as combinators. I've worked with Haskell code that makes extensive use of symbolic combinators, and once you get used to a given set, code using them can become much _more_ readable. And using symbol pairs where related operations have related symbols makes even more sense.

I just don't think it makes sense to invent fanciful names for them based entirely on their symbology, rather than their function.

It's your language; you can call things whatever you want. But I've seen many languages that I would like to succeed fail or grow very slowly because they failed to engage well with prospective users. And when you already have a nearly-asymptotic learning curve, why add _more_ to it?

<comment><AUTHOR> We're at a pretty shallow level of disagreement here, because you'd just add descriptive names to the combinator definitions. I'm not sure this would improve the learning curve much if at all, but it couldn't hurt much either.

As I always say, there's a difference between real and apparent learning curves. I don't think your perception of the apparent learning curve is wrong. But some things are easier than they look; one of those things is remembering associations. I've seen a good number of people walk the real learning curve for this language, and it's not that steep. Hopefully reality also gets a vote.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm finding this tutorial really hard to follow. It doesn't track my mental state very well; each successive sentence that qualifies an idea doesn't follow from the last one to me.

I'm struggling to describe this phenomenon exactly, but I want to try because I'm interested in quantifying it. So here's an attempt:

When I'm reading a tutorial to a new idea, a qualification needs to follow naturally. If you tell me "this is an A", and then follow it with "note: it's not a B", that qualification only works if I would have thought, in my head "oh, is it also a B?" after the first sentence. Otherwise, I'm left in a tough spot: I _believe_ you that it's an A, but I don't trust that I know what an A is, because I'm apparently supposed to have realized that that suggested it could have been a B as well - because you just jumped in and pointed out that it wasn't!

So such a qualification is not just a clarification; it's also narrowing down the possible meanings of A. But I didn't know about all those meanings, because all I have is the word 'A' right now, and I don't understand the complexity of that yet.

Here's a specific example:

"A noun is an atom or a cell. An atom is any unsigned integer. A cell is an ordered pair of nouns.

The noun is an intentionally boring data model. Nouns don't have cycles (although a noun implementation should take advantage of acyclic graph structure)."

As of sentence #3, it looks like a noun can contain cycles. I mean, it can be a cell, and a cell can contain nouns, so that seems like a cycle. Then, in sentence #5, I'm told they don't have cycles. What? Now I don't know what to believe. I thought I understood nouns, but I don't anymore. Then, in the parens, even more concepts are thrown in. Now we're talking implementations - but I don't know what we're implementing. And we're taking advantage of acylic graph structures. Taking advantage? To do what? And the word 'although' shows up. They 'don't' have cycles, 'although' we should take advantage of their not having cycles? Either this is mis-worded or there's even more context I'm missing.

.. anyway, that got wordy. Point is, almost every sentence in this article confuses me further, instead of confusing me less. There are no 'ah-ha' moments. It's just "huh?" after "huh?".

<comment><AUTHOR> Thanks for the detailed feedback!

 _As of sentence #3, it looks like a noun can contain cycles. I mean, it can be a cell, and a cell can contain nouns, so that seems like a cycle. Then, in sentence #5, I 'm told they don't have cycles. What?_

If we used the word "tree" and "leaf" here instead of "noun," would that help? "A tree is a leaf or a cell. A leaf is any unsigned integer. A cell is an ordered pair of trees."

It doesn't strike me that anyone reading this definition, even not knowing what a "tree" and a "leaf" are, would assume that a tree can have cycles. And then, two sentences later, if we say that a tree doesn't have cycles, I'd hope that that would settle the matter.

It's probably a mistake to bring implementation issues (like the fact that you can share a pointer rather than copying a subtree, thus creating a DAG [1]) into a discussion of this level, though. All kinds of people have different kinds of CS backgrounds...

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

<comment><USER8> So, on this noun/cell/thing..

As I'm reading it,

        noun := atom | cell
        atom := integer
        cell := (noun, noun)

So when you say "nouns don't have cycles", my problem is that I don't know what you mean by "don't". Do you mean they're not able to have cycles? (am I unable to write A = (A, A)?) or do you mean that you prohibit it? (that you check validate nouns to avoid cycles?) or do you mean that model prohibits cycles? (it appears to allow for A = (A,A), so I don't see that).

It helps to tell me it's a tree. It's okay to use the word 'noun' if that's the word for it, but telling me "nouns make a tree, where the leaves are called atoms and the non-leaves are called cells" \- that's far more useful than describing properties of trees without using the word tree.

When you mention the implementation details in "although a noun implementation should take advantage of acyclic graph structure", do you mean to say "therefore" instead of "although"? Because if nouns don't have cycles it makes sense that you can take advantage of that. The word "although", however, signals an exception, and the "although.." clause should say something that is somehow in opposition to the first part of the sentence. The nod to implementation details is probably unnecessary,but it would be harmless if not for that confusing word "although" that makes me think I've misunderstood something.

.. though, I'm really sleep-deprived today, so perhaps I am struggling to understand things that I would otherwise be able to parse. I dunno.

<comment><AUTHOR> "Nouns don't have cycles" in two senses.

Abstractly, a noun as defined is a tree and trees don't have cycles. So there! :-)

Concretely, the Nock interpreter, which Hoon compiles itself to, has no way to construct a "noun with cycles," like your A == [A A]. I sense that this is what's really bugging you. :-)

Of course, Nock is written in C and uses a C data structure. When we manipulate this data structure from C, we can certainly construct all the degenerate "nouns" we like. This generally results in a quick trip to the noun hospital.

I'm genuinely surprised at how few acyclic programming languages exist. True, there are plenty of algorithms with faster asymptotic runtime given cyclic/mutable data structures. There are lots of ways to manage this problem, though.

And both for persistence and network transmission, acyclic structures are just much easier to handle. You'll notice that all major network data models (XML, JSON) are acyclic, as are SQL and NoSQL databases alike. Cyclic databases exist [1] [2], but they're very much the exception.

And of course, acyclic data models mean you don't need a tracing garbage collector. Are doubly linked lists, etc, really worth a tracing garbage collector? Anyway, in a language/OS where transmitting and persisting state are core features, acyclic data seems like a pretty easy choice.

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

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

<comment><USER9> _Abstractly, a noun as defined is a tree and trees don 't have cycles. So there! :-)_

You shouldn't require the reader to make this inference. The 2nd order implications are far less obvious to the reader than to the writer. A good writer should never assume the reader will get it on the 1st mention. In fact, I'd hazard a guess that most of the time, when you've made such inferences while reading, that an author has subtly primed you to do so beforehand.

</comment></comment></comment></comment></comment><comment><USER10> Two pieces of feedback:

First, at the end of this I'm still rather confused about what molds are for, and it's implied that all will be explained in the next chapter. This is a tutorial, not the next great American novel: do not end chapters on cliffhangers! After finishing a chapter, the reader should be able to go back and fully understand every concept introduced in the text. Either expand this chapter to include a complete explanation of molds, or move molds into a separate chapter.

Two, you include this example of a mold:

++ span

      $%  [%atom p=@tas]

          [%cell p=span q=span]

          [%cube p=* q=span]

      ==

This is chapter 0 of a tutorial on Hoon: do not just include Hoon syntax with no explanation! I have some idea of what this function does from context clues, but I have no way of knowing if my intuition is correct. This is why pseudocode was created: use it! Here's my best guess of what that function does:

      function span_mold(noun n)

        if n is of the form (p,q)

            return [%cell span_mold(p) span_mold(q)]

        else if n is of the form @a

            return [%atom %a]

        else if n is of the form %b

            return [%cube b span(b)]

Is that right? I have no clue!

<comment><AUTHOR> It is right! You do have clue!

This is excellent feedback. Normally I'd agree with it. Ideally, this will be the last cliffhanger in the tutorial...

</comment></comment><comment><USER11> Long story short, this quote:

> Lisp masters beware: Hoon [a b] is Lisp (a . b), Lisp (a b) is Hoon [a b ~]. > ~ means nil, with value zero. Lisp and Hoon are both pair-oriented languages > down below, but Lisp has a layer of sugar that makes it look list-oriented. > Hoon loves its "improper lists," ie, tuples.

along with the knowledge that the people writing this like really strange names (tile, gate, vase, fish) and 2 part symbols (++ += =^) is all you need to know.

<comment><USER12> > _42 and 0x2a are actually the same noun, because they 're the same number. > [...] But semantically, 42 has a decimal span and 0x2a hexadecimal, so they > print differently._

A babbling load of twaddle which in and of itself wouldn't be a crime were the word "semantically" not involved as an abuse victim.

</comment></comment><comment><USER13> All of this can be neatly summarized as "a noun is either an unsigned integer or a pair of two nouns". The authors apparently love to give things funny names and weird syntax, but there's nothing here that Lisp didn't do 50 years ago. Let's see what happens in chapter 1, though.

<comment><AUTHOR> Yes! Although there are some things Lisp did 50 years ago, that aren't here. But this is less an improvement on Lisp, than a tribute to Lisp.

Chapter 1 should remind you less of Lisp. Although I do expect to hear "that's just caddadr"...

</comment></comment><comment><USER14> The "navigate to top" links in the upper left kept appearing and disappearing as I moved my mouse and scrolled around, and it's extraordinarily distracting to me.

<comment><USER15> Ditto. I even moved my mouse cursor on the right side of the window, hoping it would stop.

It didn't.

<comment><USER14> I just remembered that you can right-click it in Chrome and delete it from the DOM.

<comment><USER15> Keep forgetting that, thanks for the reminder.

</comment></comment></comment></comment><comment><USER16> Tududum, anyone's got it cached (Google has some JS only)?

%exit

/~zod/home/~2015.10.17..20.34.57..3a55/arvo/eyre/:<[1.104 9].[1.106 38]>

[%bad-beam %home]

/~zod/home/~2015.10.17..20.34.57..3a55/arvo/eyre/:<[1.103 9].[1.106 38]>

/~zod/home/~2015.10.17..20.34.57..3a55/arvo/eyre/:<[1.102 9].[1.106 38]>

/~zod/home/~2015.10.17..20.34.57..3a55/arvo/eyre/:<[1.101 9].[1.106 38]>

/~zod/home/~2015.10.17..20.34.57..3a55/arvo/eyre/:<[1.100 9].[1.106 38]>

<comment><USER17> Sorry for the interruption. Everything is being served from an Urbit. We have done okay under HN load in the past but may have just screwed up a hotfix.

For the time being, here's a paste of the markdown: [http://pastebin.com/G3zMqZN8](http://pastebin.com/G3zMqZN8)

<comment><AUTHOR> Back up.

</comment></comment></comment><comment><USER18> If you want to know what he is actually talking about, this may help: [https://popehat.com/2013/12/06/nock-hoon-etc-for-non- vulcans...](https://popehat.com/2013/12/06/nock-hoon-etc-for-non-vulcans-why- urbit-matters/)

</comment><comment><USER19> "FP for street programmers" sounds like a win.

Unfortunately I couldn't really understand anything else. My Lisp is rusty, but dotted pairs aren't something I usually have so much trouble following.

Is there a tutorial that's mostly code examples and not so much text?

<comment><AUTHOR> The next tutorial is a lot less wordy, and should hopefully shed a good amount of light backward on this one.

</comment></comment><comment><USER20> So basically this is a lot of syntax to add something resembling a type-system on top of a fundamentally un-typed language?

<comment><AUTHOR> Yeah, that's pretty accurate.

<comment><USER20> Possibly a silly question: did you consider using the complex integers (either as a + bi, or as (r, 2*pi/T)) instead of the natural numbers as the basis for Nock?

<comment><AUTHOR> Cells make you think of a+bi a little bit, but no.

(Actually I was very pleased when I realized that signed integers have no place in a fundamental interpreter.)

</comment></comment></comment></comment><comment><USER21> It looks like urbit isn't really "public" yet; they claim to be in "semi- closed alpha" still.

<comment><USER17> It's actually more open than it looks. The code ([https://github.com/urbit/urbit](https://github.com/urbit/urbit)) is available to anyone interested. Anyone can build and run a comet.

<comment><USER22> Can you explain what a comet is, exactly? If I were to setup my own "comet" would that mean that I'd have my own network, detached from the one the urbit developers are a part of?

I'm interested in playing with urbit, but I'd also like to try it with some people to talk to, and not on my own island.

<comment><USER17> A comet is an Urbit with a self-signed certificate. You're a part of the same network that everyone else is on. Comets are one of 2^128 possible addresses, so they're anonymous and disposable. For the time being it's possible to use a comet to come and talk with everyone. We're also glad to answer questions over email.

<comment><USER22> Thanks for explaining this. So invites are only for "planet" names?

I'm still having difficulties understanding the reasoning behind the different levels, explained in the white paper.

I've got it running, thanks for letting me know that I could just compile it and spin it up. I've been getting the newsletters for urbit and have been wanting to play with it. I didn't realize I could do that without an invite.

</comment></comment></comment></comment></comment><comment><USER3> curious: what's the underlying computational model for the language? the untyped lambda calculus? universal turing machine ? Or there's something new?

<comment><AUTHOR> Nock: [http://urbit.org/docs/dev/nock](http://urbit.org/docs/dev/nock)

</comment></comment><comment><USER23> Some languages are so disconnected from programmer needs and real life usefulness that they make me say "I'd rather learn assembler".

</comment><comment><USER24> How in the world do typeclasses work in Hoon?

<comment><USER25> I don't think Hoon's type system actually has a typeclass analogue. As far as I could tell, what it has is something like generics, but in a world where everything is ultimately a noun. IIRC, a previous iteration of the docs explained that "wet gates" (generic functions) are actually required to compile down to the same Nock when "instantiated" at a particular argument, modulo dead code elimination. Didn't look much like ad-hoc polymorphism to me.

A good example is Hoon's maps[1]. They're parameterized on type, but I'm pretty sure those types can't affect the runtime behavior by, say, specifying their own hash or comparison function. Instead, the map implementation[2] hardwires a couple of specific comparison functions[3] that effectively toss the type information and work in terms of the raw underlying nouns.

It is kind of weird that every type carves out a subset of nouns, even function types (or function "molds" or "spans" or whatever... I'll stop calling them types when the Urbit people stop calling it a type system). Hoon's C-flavor really shows when it makes the likes of strlen((char*)strlen) expressible in a purely functional way.

[1]: [https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...](https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoon.hoon#L421-L422)

[2]: [https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...](https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoon.hoon#L2530-L2751)

[3]: [https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...](https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoon.hoon#L1006-L1034)</comment></comment>


A queue of page faults (2014) - <AUTHOR> http://zeuxcg.org/2014/12/21/page-fault-queue/ <comment><USER2> On page zeroing, why does the kernel and CPU need to do this like any regular write? Shouldn't there be some fast-path instruction+RAM support to "zero this range"? The kernel can guarantee the page/lines are not in use elsewhere, right? So such an instruction can just wipe everything out. Or is just writing 0s detected and optimized already?

Same question for memcpy and stuff like that: shouldn't that be a CPU instruction instead of special code trying to detect which CPU and emit optimized instructions?

Is my model of these costs that far off?

<comment><USER3> Unless you have a system some kind of per-page tag in memory that indicates "should be zero", the CPU still has to write all the zero to RAM. This is limited by memory bandwidth.

On newer Intel CPUs, REP STOSB is highly optimized, but you still have to do the writes.

<comment><USER4> Because DRAM is (relatively) so slow, avoiding the _reads_ is a big gain. If you zero a large range of memory the naive way, the first write to each cache line _reads_ a cache line of data that likely will be overwritten by zeroes.

Problem is: how does the CPU know it doesn't have to do that read? REP STOSB may, but it isn't trivial to implement, as neither start nor end of the range to be processed need to lie on a cache line boundary.

PowerPC has the dcbz and dcbzl instructions which zero a cache line without reading the to-be-zeroed data (dcbzl was invented because real-world code assumed dcbz always zeroed 32 bytes. See [http://lists.apple.com/archives/darwin- drivers/2005/Apr/msg0...](http://lists.apple.com/archives/darwin- drivers/2005/Apr/msg00142.html))

<comment><USER5> The processor will try to do write-combining to fill entire cache lines, so it doesn't need to do a memory read. GCC already has a number of intrinsics to help with streaming data directly to RAM (helps to keep from evicting more important data from the cache).

The cache can be bypassed when doing a lot of writes. See section "Bypassing the cache" of [0].

That article says that memset() already uses cache bypassing instructions for large blocks.

0\. [https://lwn.net/Articles/255364/](https://lwn.net/Articles/255364/)

</comment></comment></comment></comment><comment><USER6> I'm surprised this article doesn't mention one typical solution to the problem of massive numbers of expensive page faults for large allocations: Pages bigger than 4K, which are supported on most modern operating systems. On Linux they go by the name "huge pages":

[https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt](https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt)</comment>


Startup launches 'first wearable health record' for Google Glass - <AUTHOR> http://www.reuters.com/article/2014/06/12/google-health-idUSL2N0OT1PL20140612

<comment><USER2> It's great to see some real app development happening in the pharma space. I was worried it was going to stay too novel and disconnected a tool to get any business traction.

The real problem, in my opinion, is that Google hasn't made a clear, public way for advertisers to get involved in the platform. That's one of the most innovative technical adopters and the one of the most free to spend speculative money. Especially with Google's core business, I'd have expected something more obvious.</comment>


TIOBE Index for October 2014 - <AUTHOR> http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

<comment><USER2> I always find the TIOBE Index fascinating, but mainly because I just _don 't get it_! I have no idea how any index can rank Transact-SQL (not even just 'sql') over JavaScript.

I'm not sure where the index pulls in its data, but if its putting a specific branch of SQL ahead of JavaScript, I've got to say I disagree.

It does, however, provide a really interesting comparison to the GitHub version of the popularity contest. This article shows quite a different picture: [http://adambard.com/blog/top-github- languages-2014/](http://adambard.com/blog/top-github-languages-2014/) (albeit a month or two stale now)

The most surprising thing I see from both these lists, however, is that even though we've had decades of programming-language progress, straight-up C still has a hugely strong showing. Sometimes simple is still the best, I guess!</comment>


Amazon hired an army of employees to say nice things about it on Twitter - <AUTHOR> https://www.sfgate.com/technology/businessinsider/article/amazon-fb-ambassadors-program-pay-nice-things-13182172.php <comment><USER2> Extensive discussion two days ago: [https://news.ycombinator.com/item?id=17831943](https://news.ycombinator.com/item?id=17831943)</comment>


"Let The Hacking Begin" Declares Person Who Hacked Zuckerberg's Facebook Page - <AUTHOR> http://techcrunch.com/2011/01/25/zuckerberg-fan-page-hack/

<comment><USER2> _If facebook needs money, instead of going to the banks, why doesn't Facebook let its users invest in Facebook in a social way?_

Unnamed hacker reinvents IPO, tells world.

<comment><USER3> I think that's already been invented in several forms:

Here's 2

a) Users donate money, a la wikipedia (except with FB they can advertise that they are great people and donated, thereby encouraging others to donate)

b) Users pay for access, subscription or some such. If it's optional, paying users get perks (more space for photos, searches across the graph, etc.)

<comment><USER4> There were also several startups that gave out shares to their users during the last boom.

I read it as suggesting the above - just give each facebook user a few shares in facebook.

</comment></comment></comment><comment><USER5> Here's what a commenter, DogGunn, had to say (I copy below as I'm not sure it'll stay at the top):

"Article is wrong.

Mark's profile is here: <http://www.facebook.com/zuck>

And his like page is here: <http://www.facebook.com/pages/..>.

Neither were hacked.

Someone had setup a fake profile at <http://www.facebook.com/markzu..>. and fooled Techcrunch. Facebook fixed by deleting the fake profile."

A quick copy+paste pretty much confirmed it for me.

</comment><comment><USER6> Anyone else notice that the headline authoritatively declares that it was a hack, then the article copy indicates that they're not sure?

Shocker, right?

</comment><comment><USER7> Very interesting -- I wonder if this is the result of having so many API access points. The documentation page lists FBML+FQL, Graph, "Old Rest API", and "Old Javascript Client Library" as options: <http://developers.facebook.com/docs/> Or are we back to good old XSS attacks?

</comment><comment><USER8> here's a direct link to where the short url was pointed: [http://en.wikipedia.org/wiki/Social_business?h=d044aeb71f4e4...](http://en.wikipedia.org/wiki/Social_business?h=d044aeb71f4e466a552708fc6e3863ef&thanksforthecup=https://www.facebook.com/photo.php%3Fpid%3D393752%26id%3D133954286636768%26fbid%3D170535036312026)

      http://en.wikipedia.org/wiki/Social_business?h=d044aeb71f4e466a552708fc6e3863ef&thanksforthecup=https://www.facebook.com/photo.php%3Fpid%3D393752%26id%3D133954286636768%26fbid%3D170535036312026

</comment><comment><USER9> I bet Mark Zuckerberg made that post, masquerading as a hacker. It wouldn't be the first time he's pretended to be one.

<comment><USER10> Jealous?

<comment><USER9> Clearly.

</comment></comment></comment><comment><USER11> I wonder what HNers think is the way that this was done?

<comment><USER12> Does facebook use captchas, to slow bruteforcing, I tried entering a few wrong passwords for my account but didn't get one. However I doubt that bruteforcing or a dictionary attack was used.

<comment><USER13> facebook doesn't use captcha's as much as it does other security features. if there is a log-in from an ip address that seems suspicious, it can ask you to identify your friends in photos to verify your identity.

<comment><USER14> Which is actually so much less annoying than captcha. Seems less secure (probably trivial for people you know to break in) but it's certainly a novel approach.

</comment></comment></comment></comment><comment><USER15> The social business model <http://www.youtube.com/watch?v=0C3XQ3BTd4o></comment>


Viral Hit threewords.me Up for Sale: Who's Going to Buy It? - <AUTHOR> http://bostinnovation.com/2011/01/17/breaking-viral-hit-threewords-me-up-for-sale-whos-going-to-buy-it/

<comment><AUTHOR> Perhaps a company like Communispace, also headquartered here in Boston?</comment>


The "I just got bought by a big company" survival guide - <AUTHOR> http://scott.a16z.com/2013/02/06/the-i-just-got-bought-by-a-big-company-survival-guide/ <comment><USER2> As someone who joined Cisco/IronPort (post-merger) and quit a little over a year later (2011-2012), here's my thoughts:

\- Cisco is closing the San Bruno office where IronPort was located.

\- Cisco is moving everyone who worked from San Bruno, mostly people who live north of San Mateo, down to the San Jose office for "office consolidation and simplification". Read: 10-30 minute commutes to 70-90 minute commutes.

\- Cisco bought Meraki a week after this "office consolidation", but is keeping the Meraki SF office open, many saw this as a slap in the face.

\- There is tons of technical debt, no one is lasting more than a year, and it's a toxic place to work. In my year there everyone was running away the moment they could. In one year the VP, 2 Directors in succession, Principle Engineer, two different managers I had, all but two tech leads I worked with, 4 engineers in my team of 7, all left. Many more are leaving with the office move.

Cisco is essentially divesting themselves from all IronPort tech _and_ talent, and it looks like it's on purpose.

I would read this as "how Scott Weiss handled acquisition by Cisco well for himself for 2007-2009" not "how everything went well".

<comment><USER3> That's right: the post is precisely about what the founder of a company acquired by a bigger company should do. As he stated, he was locked in for two years, so he made the best of it, then left at two years on the dot and is now a partner at Andreessen Horowitz.

<comment><USER2> Reread his last two sentences:

> Many of the best people at IronPort stayed at Cisco for many years after > their IronPort vesting was over. I believe the main reason the acquisition > was a success was because the team engaged and meaningfully integrated into > Cisco.

I stated what I stated because these sentences are a false narrative he probably just repeats to himself now. The team was not "meaningfully integrated into Cisco". I arrived 3.5 years after acquisition and they weren't even in the Cisco sales catalog! Anyone who worked there will laugh or cry when they read that sentence about being integrated.

We had our entirely own data center, accounts, email addresses, passwords, office, and LLC that sent our paychecks.

</comment></comment></comment><comment><USER4> Two years ago the company I worked for was acquired by Oracle. There was the initial "Yay! Money!" moment, followed by months of horror and disappointment.

They had to "standardize" our office which meant removing our wireless for ~6 months because ours wasn't "secure" enough. They replaced it with open wireless that required a VPN to connect to. That meant if you wanted to connect from your laptop to your desktop over wireless, your traffic was routed through some VPN gateway on the other side of the country and then back again. Not to mention that all traffic meant for external domains was routed through a proxy. Good luck trying to use skype or similar services to communicate. They didn't provide any internal solutions.

The coffee was also taken away, and we were given pots of the some of the worst coffee I have ever tasted. This is while our k-cup machines sat in a closet next to the kitchen. We couldn't even bring our own k-cups to use because these were locked up. We eventually got new coffee, but it took a lot of complaining.

All our email/im/phone/etc was switched to some horrible mismatch of open source or acquired products. Nothing worked correctly and everything was so slow. There was almost no integration between these either. You know the webmail is bad when people would rather use Thunderbird as their mail client. They also gave us all touch screen cisco phones that no one used because people don't use phones.

I was an iOS developer, which meant that I had a Mac. My team needed a Mac mini for something, which required filling out a form that went all the way up to the office of the CEO and getting approval from some of the highest executives in the company. This only took a couple months and a few more once it got sent to fulfillment. Meanwhile on our business trip, Oracle had no problem paying for expensive meals, drinks, etc. God forbid I actually want to spend money on work. It's also a good thing my mac didn't die, because if it did, I would have to go through the same steps.

I could go on for hours about how dysfunctional things were and still are (although I no longer work there, but I keep in touch with many former coworkers). The point of my post is to simply point out that all those steps on that site are great, unless you are getting acquired by a company that could care less about you as an employee and your work life.

<comment><USER5> > You know the webmail is bad when people would rather use Thunderbird as > their mail client.

Whoa whoa, hold it right there. Unless your webmail supports simple keyboard shortcuts (like 'A' for archiving), threaded messages views, multiple email accounts at once and few other useful-but-not-for-majority features, snark statements like that are unfounded.

<comment><USER4> The "supported version" at the time we were acquired was I think 3 or something. It was pretty awful on the Mac and OK on the PC. It got much better, but still wasn't that great.

Right before we were acquired, my company had just upgraded to the latest Exchange suite, including Live messaging, Round table in all our meeting rooms, and VOIP phones. I am not a fan of MS generally, but everything worked pretty well together. Going from that synergy to a Zimbra/Thunderbird/Cisco Phone/Jabber chat where nothing was integrated with each other was pretty jarring.

It also doesn't help that my current company uses google for mail, which I think is pretty good generally and of course search is great.

</comment></comment></comment><comment><USER6> I'd say this advice is spot on, in a much smaller manner I experienced a similar problem and I became such a nuisance to the company who had bought my company that they actually granted my vesting nearly two months early so I would leave the company.

I was miserable. I went from being the guy who made decisions to being a "regional manager" which to me meant I sat on a LOT of conference calls.

I think the final straw for me with the C-level execs at the company I sold to was a conference call that went like this:

 __Call with 40+ managers discussing company wide budget figures. Second conference call of the day and the 6th of the week. It was Wednesday. __

"So, do we have any ideas on cost cutting techniques that we could employ while still keeping our company as a whole working together?"

One guy chimes in about a rebuild of the company's intranet, another mentions having more folks visit our company's data center on a regular basis to understand what they can provide.

 __My suggestions ... "Hey guys .... Why don't we just get off the fucking phone??!"

...

...

Crickets.

Now in retrospect this was terrible. I embarrassed the CEO and the CFO and more importantly myself, but looking back now I know the reason is because I was not happy with the position I took. I had very little freedom in my job(something i was not at all used to) and I directly oversaw almost no one meaning that I had very few people to share tips or tricks with which was one of the things I had enjoyed most at my office.

I would have probably been happy training new management, or doing just about anything other than what I was doing, but it was not something I'd ever considered.

Taking the time to consider what you really want out of an acquisition and fighting for it is certainly worth it, no one wants to be the guy sitting around counting his days.

</comment><comment><USER7> Just resign immediately. Seriously. If you've worked for a smaller but dynamic company and you get swallowed by a bigger company, nothing will be the same.

When I worked for EMC, they took away on-site benefits, stopped the Christmas Party, cut my pay and forced me to take personal financial liability via a corporate AMEX card. They took out the old processes, pissed off the client base with their big-company stupidity, then treated the smaller business unit as just that: a smaller business unit that was a bit of an annoyance.

But hey, I had health benefits - in a country that doesn't need it.

Resign while you are still on top.

<comment><USER8> _Just resign immediately. Seriously. If you've worked for a smaller but dynamic company and you get swallowed by a bigger company, nothing will be the same._

I might add a qualifier "if you get a negative vibe", but in general I tend to agree.

I once worked for a small company that got bought by a medium-sized company, and things went downhill at that point. Later they in turn got bought by a huge company, and things went downhill even further.

The biggest mistake of my career to date was not quitting as soon as the nature of the medium-sized company was clear, which it certainly was when the replacement contracts they wanted us all to sign came around a few days after the announcement. The second biggest mistake of my career to date was not learning from my first mistake by quitting the moment we heard about the second acquisition.

It's the only time I've ever felt the need to consult lawyers and make sure everything I ever wrote was in CYA mode, even though I was dealing with managers I respected and had worked with for some time: I trusted them, but I didn't trust the company they now represented not to force them to do something against my interests that they would never have chosen to do voluntarily. That kind of environment is toxic for all concerned.

</comment></comment><comment><USER9> Acquisitions are curious things. Its rare to know all of the variables involved. I had personal experience of a company that was acquired in order to buff the image of the acquiring company with the desired outcome of "no one else starts a company in this space for the next few years." Nothing about the people being acquired, or the technology used. Just send a message that the Gorilla was in this space and don't bother trying to create a company here. It was all very meta and pretty sad. And successful sadly.

At some point someone said, "We can make this 'problem' go away for $X, ok lets do that."

</comment><comment><USER10> A year into my post-acquisition "stint" I find the most valuable lesson is to accept that, by design, everything about your startup culture will have to cede to your acquiring company's culture. Don't fight it; how well that transition occurs will help define the "success" of the acquisition, and as a founder you will be judged in the future (fairly or not) on how well the assimilation occurred.

</comment><comment><USER11> Or, if you're someone like me who was non-founder employee number 1 and are pretty sure you're not cut out for corporate life...arrange to work from home as much as humanly possible.

The bureaucracy of the acquiring company makes me rage, but at least nobody sees it when I'm telecommuting :)

</comment><comment><USER12> I'm not sure who Scott is writing to as almost no one is in this situation. Though, if you are in this situation, just having yourself put in charge of a big division is not always feasible either.

If you are not a CEO or owner of the company being acquired, your survival guide is to find a new job immediately, like immediately after the all hands announcement.

</comment><comment><USER13> One thing I'd add is to learn the culture at your new company. They're probably proud of what makes them unique, and would like newcomers to embrace that.

<comment><USER2> Wow. I just wrote my long response, and I considered adding a note about culture, but I'll leave it as a reply to you:

Scott Weiss didn't just forget to put it in his blog post, he specifically didn't successfully implement a policy of adopting Cisco culture at the San Bruno office based on my later experiences there.

The IronPorters were still called that (now 7 years later). The office had different perks, different beer bashes, and rarely knew people outside their project thus ignoring most of the BU and it's culture.

I think you're completely correct, and it's a really hard thing to accomplish. He may have tried and failed, but I don't know as I wasn't there during acquisition.

</comment></comment><comment><USER14> I wish I had read this advice a year ago. Keeping your spirits up is really hard, particularly if you want to get going on the next business, but it's critical if you care about your team and their well being when you are gone.

</comment><comment><USER15> I worked in a 20-person startup that was acquired by a big telco right before the dotcom burst i.e. under trying circumstances. I've come to think of this as rather well handled. For the most part we kept our own office, culture, internet connection, and sense of identity. From my perspective as a humble engineer it felt like we were an independent OEM supplier to the mother company. We had fun and produced good products for about 5 years.

</comment><comment><USER16> This is one reason I have remained a contractor - I simply will not live my life absorbing company BS; I have honed the survival skill of detecting downward spirals early and quiting responsively.

</comment><comment><USER17> Maybe this is off-topic, but having worked at a Lucent acquisition in 1999, I recommend buying put options to form a straddle with whatever stock options you get in the deal. If you can expect anything from an acquisition, it's volatility. (IANAL, but this probably isn't legal if you're an executive.)

<comment><USER18> How would you buy put options for a mini company?

<comment><USER19> If you are paid with stock of acquiring company you buy put options on that stock as insurance that you won't get wiped out if the acquirer crumbles.

<comment><USER17> Yeah that's what I meant; although I think typically acquirers offer bonuses in (call) options rather straight stock for those current employees of the acquired company whom they wish to retain. If you buy the corresponding put options and the acquirer tanks you won't have to wait for vesting to make money either. If the acquirer does well then maybe working for that company isn't so bad.

It's very possible that the costs or terms of available options would make this unfeasible. It's just something one thinks about when all his options are underwater.</comment></comment></comment></comment>


Show HN: Virtual Reality Demo in WebGL with Proxied Input - <AUTHOR> https://seanmcbeth.com:8080/demo.html <comment><AUTHOR> I'm making this because, while Three.js is very nice, it's not a pick-up-and- go solution. I see a lot of artists complaining about how hard it is to get something together on Google Cardboard, so I'm trying to make a certain type of 3D interaction so simple, even a Geico caveman can do it. And while Unity is a thing, it's not my thing. I'd prefer to see an open source option. So I'm trying to make it.

My goal is to create something that will help prototype different VR UXs in rapid cycles. I'm also hoping that the input abstractions I'm developing will make supporting a variety of display technologies a simple, default choice.

If you're interested in hacking on VR UX, please join me on Github: [https://www.github.com/capnmidnight/VR](https://www.github.com/capnmidnight/VR)

</comment><comment><USER2> Would you need something like this Oculus bridge to make it work with the Oculus rift?

[https://github.com/Instrument/oculus- bridge](https://github.com/Instrument/oculus-bridge)

<comment><AUTHOR> Perhaps for now, but I believe an HTML5 API is in the works for this, so eventually the browsers should have built in support.

For Firefox: [http://blog.bitops.com/blog/2014/06/26/first-steps-for-vr- on...](http://blog.bitops.com/blog/2014/06/26/first-steps-for-vr-on-the-web/)

For Chrome: [http://blog.tojicode.com/2014/07/bringing-vr-to- chrome.html](http://blog.tojicode.com/2014/07/bringing-vr-to-chrome.html)

And a Three.js sample that supposedly works if you have one of these special builds installed: [http://threejs.org/examples/#webgl_effects_vr](http://threejs.org/examples/#webgl_effects_vr)

</comment></comment><comment><USER2> Ok, this link seems to work:

[http://seanmcbeth.com:8080/demo.html](http://seanmcbeth.com:8080/demo.html)

</comment><comment><USER2> I'm getting "SSL connection error".</comment>


Ask HN: Review my new site, txtspoof.com - <AUTHOR>

Throwaway account.
I created a site that lets you send text messages as other people. It's US (and GSM carrier) only for the time being.
Launched about a month ago and have gotten a few thousand users, couple thousand hits a day, and a decent amount of income. It's pizza profitable, if you will.
My biggest question is regarding usability. Is the site navigable? Do you get the purpose right away? How does the site look?
My second question is...what do you think? I've been getting called a forum for cyber bullying on the web by no less than FoxNews. At the same time, I've been getting praise from a lot of young people who I think are just using it to have some good-natured fun. I genuinely believe that the site does have some serious use cases as well...mainly in anonymously tipping off people.
I'll be implementing the ability to have your number blocked soon to alleviate some of the more negative reactions people may have, as well. <comment><USER2> 1\. Not rendering in mac chrome correctly.. <http://i.imgur.com/rtgIn.jpg>

2\. Do you get the purpose right away? - No, I don't really see any utility for it other than what you stated. If someone really wanted to send a message anonymously, you can create a throwaway email account pretty easily.

3\. I like the overall design. I would like to know who did it for you.

Best of luck with this.

<comment><AUTHOR> Thanks for the screen shot and the feedback.

I use <http://halftoneny.com/> for all my design work. They're insanely talented and really down to earth.

</comment></comment><comment><USER3> Have you consulted with a lawyer about your liability as far as harassment / social engineering?

</comment><comment><AUTHOR> <http://txtspoof.com> Clickable</comment>


More on PastryKit - <AUTHOR> http://daringfireball.net/2009/12/more_on_pastrykit

<comment><USER2> Interesting, as usual, but a lot of conjecture here.

I did find this odd:

 _But there's no question that the App Store exists to sell iPhones and iPod Touches, not the other way around._

That turns the Razor/Razor blade and Printer/Ink cartridge analogies on it's head. I would think that even with a small (30%) cut, selling apps from a tightly controlled app store is immensely more profitable for apple than the actual hardware is, just like selling music? Does anyone know why Gruber thinks the actual hardware makes Apple more money?

<comment><USER3> From the earnings report: Apple sold $12.25B worth of iPhones and Apple TVs in the last quarter.

<http://www.apple.com/pr/library/2009/10/19results.html>

In the first month of the App Store, (arguably not very close to now, but still) Apple sold about $30M in apps, of which it takes only a 30% cut. The difference between hardware and software sales is a few orders of magnitude.

<http://online.wsj.com/article/SB121842341491928977.html>

<comment><USER2> Ah, right. But which one is apple _profiting_ more from? The hardware with it's high cost or the app store with it's virtually zero cost?

<comment><USER3> Excuse me, I forgot to write: profit from the iPhones and Apple TVs is about $2.85B, if I understand the report correctly.

They'd need to sell $3.2B on the App Store each month to match the hardware profit figures.

</comment></comment></comment></comment><comment><USER4> Another example of an imitation scroller:

<http://booleanmagic.com/cydia/overboard/>

(visit on MobileSafari)</comment>


Show HN: Y Combinator Companies with Offices in San Francisco - <AUTHOR> https://employbl.com/blog/yc-companies-in-san-francisco <comment><AUTHOR> OP here, I used this GitHub repo to collect the company information: [https://github.com/connor11528/companies-in-the-bay- area](https://github.com/connor11528/companies-in-the-bay-area)

It's a spreadsheet I've been collecting for quite sometime. This site is a Laravel PHP app that queries the list for companies that have the tag "Y Combinator"

Please let me know if you have questions or feedback. Enjoy</comment>


Rolleron - <AUTHOR> http://en.wikipedia.org/wiki/Rolleron

<comment><USER2> As a CS person, ingenious mechanical solutions to problems like this always amaze me. If I had to solve this problem I'd probably end up with a bunch of accelerometers and gyroscopes wired up to a complicated program trying to do rotation correction. Mine would be slow, heavy, and probably not work. And then some genius would tell me about Rollerons.

Makes me wonder how many of the problems we solve with code could be done in other ways.

</comment><comment><USER3> Pick up a spinning external harddrive, try rotating it, pretty phenomenal feeling when you aren't expecting it. Moving it one way causes it to pull in another direction. Disclaimer: Not responsible for damaged drives!

Hmm...Now I'm wondering why they didn't attach these to Felix Baumgartner!</comment>


Hacked Bitcoin firm plans to spread losses across all users - <AUTHOR> http://www.cnbc.com/2016/08/05/hacked-bitcoin-firm-plans-to-spread-losses-across-all-users.html <comment><USER2> So maybe I'm just jaded and I've worked through enough bankruptcy filings in my life but the first thing that would come to mind is who exactly is going to do the auditing and hair cut?

Is it the exchange or is it a licensed bankruptcy trustee like www.pwc.com?

If things are above board then it almost by definition will be the later. If on the other hand its the exchange doing the haircut then you have to trust that they'll be honest about it....I mean with millions involved that's alot of trust.

I hope the exchanges assets are sold off first to help pay off the missing bitcoins because if the exchange is trying to force the loss onto its depositors and then keep running as a business then that's some really scummy behavior.

I'd assume the model would be Lehman brothers, force it into bankruptcy liquidate its assets, wipe out the owners so they don't benefit from their own mistakes and use the remaining funds to pay back creditors/depositors.

<comment><USER3> They don't appear to be using official auditors, and have not mentioned bankruptcy as one of their current options.

The current speculation is that they will continue operating, and issue coins that either represents equity or debt in the company to compensate customers.

<comment><USER4> I can't help but enjoy a little schadenfreude here. It sucks that largely innocent investors are going to get shafted, but if you create an entire alternate currency ecosystem specifically to escape regulation, central control, and third-party involvement in trades, you can't really be surprised if, when something eventually and inevitably goes wrong, there's no regulations, no central authority to appeal to, and no third party who can help untangle it.

</comment></comment></comment><comment><USER5> I'm not sure why this company believes they deserve to stay in business. They've proven they're not good at security to a percentage of their customers and might be about to cause a lot of bad will with the rest of their customers.

More importantly, if I'm an unaffected customer and can swallow the "haircut", how do I know they won't be hacked again?

EDIT: As a customer getting a forced haircut, I would also expect the company itself to get an appropriate haircut.

<comment><USER6> I don't think companies base their decisions on what they think they deserve. That's not rational... they're making decisions based on opportunity for profit.

</comment></comment><comment><AUTHOR> I fail to see how this would be anything other than theft if Bitfinex goes forward with this. Unless their terms of service have them setup as some form of co-op, I'd think they'll see a rush to the exits in the near-term, and be sued into oblivion on the long-term.

<comment><USER7> > I fail to see how this would be anything other than theft if Bitfinex goes > forward with this.

This is theft, plain and simple. They lost some money now they are taxing their customers and making pay for their mistakes. It doesn't matter where the stolen money went, it's not up to the customers to bail them out.

<comment><USER8> No that's how a bank works, but not bitcoin.

</comment></comment></comment><comment><USER9> This sounds familiar. Exactly like neo-liberalism. Privatizing profits while communizing loss.

</comment><comment><USER10> Oh yeah, I think I remember the FDIC doing something similar to this.

<comment><USER11> ?? Can't tell if serious.

The FDIC only insures accounts to a certain amount. So, yeah, I suppose they kinda do this. But it's a known risk and the reason that you, as a consumer, don't keep values beyond the FDIC insured limits in any one bank.

</comment></comment><comment><USER12> So why wouldn't anybody who's not an idiot immediately withdraw all their BTC from these guys so that they can keep 100% of what's left?

<comment><USER13> > Bitfinex revealed it had been hacked on Tuesday and _suspended trading_

That probably includes transferring to another BitCoin wallet.

<comment><USER12> I didn't say trading, I said withdrawal. Are they suspending that as well? (the article does not say)

<comment><USER13> Their website says:

> ... While we are halting all operations at this time ...

and:

> The first step is bringing the site online and allowing users to login and > view the state of their accounts. Note that initially trading, deposits, > withdrawals, and other core site functionality will be disabled.

</comment></comment></comment></comment><comment><USER14> I recently met a kid that lost 1 million dollars worth of bitcoins. He built a site and all money was hacked and stolen from the database when he was 14.

<comment><USER15> 1 million dollars at what time, the time he had it?

At one point I was offered 25BTC for a weekend project. At the time, that was worth ~$20. I didn't take it.

I don't regret it either, it was a sound decision at the time, so I contend I only lost twenty bucks, not $25k.

<comment><USER16> Wish I had done more stuff like that when I was younger. I did get some bitcoin back before it was worth anything, but not nearly as much as I could have if I was serious about it.

But of course back then most people didn't know what the potential ceiling was going to be on them. $30 a coin was a ridiculously high price we might never see again at the time. I remember when it crashed after that and went down to ~$7 a coin and trying to get a few through some website, but having trouble getting the transaction to go through and giving up on it.

And I still remember when they were worth like 4 cents per coin, but it was almost impossible to get them since there wasn't a good way to buy them except from other people who had them, although it was possible to mine them from your computer back then.

<comment><USER17> Really, though, that's like saying you wished you had bought Beanie Babies, MtG cards, or even tulips before the Dutch mania. Bitcoin isn't an investment vehicle, it's a cypherpunk Pog, and its value is completely dependent on the behavior of other collectors. There was no logical reason to believe btc would get within an order of magnitude of its current value, and no reason to think it'll be there ten years from now, absent some institutional shift to its use beyond treating it as a curiosity (which would require a degree of liquidity that I don't believe currently exists).

Some people got very lucky -- which is great! But don't lament that you didn't do something that, at the time and without the benefit of hindsight, wasn't really rational.

<comment><USER16> It was a little different with Bitcoin. There was a time where it was a very passive thing.

You leave the computer on and you mined bitcoins (whole blocks, not just a fraction of a fraction of a reward from a mining group). I left the bitcoin software on for a single week back then. I could have left it on for a few months and mined like 1000+ bitcoins, but I only left it on for a week. I was excited about it too, and thought this could be the future of money, but even back then it didn't occur to me that the price of them would ever shoot up like that. So after a week I got bored and was like "I'll check it out again in a year or so once more people are into it."

You had to actively buy Beanie Babies (or request them as gifts), and sometimes wait in ridiculous lines for hours, etc. A closer analogy would be if someone sent you brand new Beanie Babies for free every week, as long as you said you wanted them.

Granted, you could have taken more active measures to acquire Bitcoin even back then (like that 10,000 bitcoin pizza, for example), but it doesn't require the amount of headspace that something like Beanie Babies would (hunting down the uniques, knowing how much each one is worth, etc). I never got into selling Magic:The Gathering cards even though I played the game for the same reason.

I'm not actually beating myself up about it, I'm just realizing the trajectory of my life would have gone a lot differently if only I let that software keep running several years ago.</comment></comment></comment></comment></comment>


How a 90 Minute Interview with a Designer Resulted in a Product Our Friends Love - <AUTHOR> http://heyrememberwhen.com/story.html

<comment><AUTHOR> Hey HN family!

Here's an interesting experience we had in one of our interviews. Would love to hear any tips or advice you guys have on interviewing and any feedback you have on our process. Thanks!!

</comment><comment><USER3> Best interviews are tests like this - love it!

<comment><USER4> +1 love to see companies with innovative interview process that go beyond standard tech interviews and really try get to know applicants. I chose an internship one summer just because I enjoyed the interview process so much.

</comment></comment><comment><USER5> With a team of 3 how many of these hackathon interviews have you done? Seems like a great way to interview.

<comment><USER6> Sounds pretty enjoyable too. Building an MVP/starting a new project is always my favourite thing when it comes to the development process. It's usually not too challenging and lets you get involved in all aspects of the product - <USER2> design to deployment.

</comment></comment><comment><USER7> Great way to interview someone. Now if only every interview went that well

<comment><AUTHOR> haha we've done several interviews like this and usually we pick a project that we estimate to be 3-4 hours and since we are engineers we pretty much always underestimate how long it will take. It's the first one we have ever finished / shipped. We thought it would be way too simple, turns out it was just right:)

</comment></comment><comment><USER8> Nice! You did all of this in 90 mins? +1

<comment><AUTHOR> Thanks! Finishing the last bit and polishing it up took more than 90 minutes - there's a lot of stuff we needed to do for the app store also - screenshots, etc...

</comment></comment><comment><USER9> So did he get the job?

<comment><AUTHOR> We really like him and wanted him to stay. He's a student right now so he's pretty busy.</comment></comment>


WolframScript enables Wolfram Language code to be run from any terminal - <AUTHOR> https://www.wolfram.com/wolframscript/ <comment><USER2> Ongoing related thread ("Mathematica v12.1"):

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

Probably too different to merge the submissions.

</comment><comment><USER3> I used this recently to speed up some symbolic manipulation. I was using SymPy but its simplify is really quite slow and the documentation basically just says "work out exactly which simplifications you need and apply them", however in my case I needed something completely general. Now I check whether wolframscript is installed and then just call it in the command line. It's much faster for complicated simplifications, but also much slower for simple stuff (I guess it has a long start up time)

SymPy has a built-in converter to/from Mathematica (although it can't convert from Mathematica lists yet), so that's helpful

(Here's the project I used it in for interested people [https://github.com/joebentley/simba](https://github.com/joebentley/simba))

</comment><comment><USER4> I'm a Mathematica addict and (as I have remarked elsewhere) rely predominantly on iPads as my platform of choice. Sure, Wolfram Online works fine when a network connection is available, but I'm really, really, really hoping that sooner rather than later they'll release a fully fledged notebook & back-end kernel version of Mathematica for the iPad.

This shows some flexibility on their behalf, but it's moving in the wrong direction (as far as I'm concerned, at least).

<comment><USER5> I would say that porting Mathematica to the iPad would require them to be able to run the Mathematica engine on iPadOS. And with the strict rules Apple has around arbitrary code execution I would highly doubt that is going to happen.

<comment><USER4> That's actually a misconception: Apple has allowed interpreted languages (e.g. Python, as in Pythonista) to tun on iOS/iPadOS for several years now. The Wolfram Language is definitely an interpreted language and therefore would not fall afoul of their rules.

<comment><USER6> It's also a multi-gigabyte installation full of Java, C, and Wolfram code. It is huge....so I'm sure there are some difficulties.

<comment><USER7> I have been using the engine for almost a year since they announced it. Without the notebook interface, it's only 1.6 GB.

        $ du -h -d3 pkg/Wolfram/
        3.1M    pkg/Wolfram/WolframScript/bin
        3.1M    pkg/Wolfram/WolframScript
        5.0K    pkg/Wolfram/man/man1
        5.5K    pkg/Wolfram/man
         13K    pkg/Wolfram/doc/wolframscript
         14K    pkg/Wolfram/doc
         40K    pkg/Wolfram/WolframEngine/12.0/Executables
         30M    pkg/Wolfram/WolframEngine/12.0/AddOns
        1.6G    pkg/Wolfram/WolframEngine/12.0/SystemFiles
         10K    pkg/Wolfram/WolframEngine/12.0/Configuration
        1.6G    pkg/Wolfram/WolframEngine/12.0
        1.6G    pkg/Wolfram/WolframEngine
        1.6G    pkg/Wolfram/

<comment><USER6> Other people below are showing 6-8 GB on their systems, so it's lower than what I recall, but still higher than your figure I would normally bet. Are you only counting 1.6 once?

<comment><USER7> What do you mean? Should I count 1.6 multiple times?

I just realized that this number is after ZFS compression. Here is the apparent size,

        $ du -h -A -d3 pkg/Wolfram/
        5.0M pkg/Wolfram/WolframScript/bin
        5.0M pkg/Wolfram/WolframScript
        8.5K pkg/Wolfram/man/man1
        9.0K pkg/Wolfram/man
         16K pkg/Wolfram/doc/wolframscript
         16K pkg/Wolfram/doc
         30K pkg/Wolfram/WolframEngine/12.0/Executables
         46M pkg/Wolfram/WolframEngine/12.0/AddOns
        2.9G pkg/Wolfram/WolframEngine/12.0/SystemFiles
        2.0K pkg/Wolfram/WolframEngine/12.0/Configuration
        3.0G pkg/Wolfram/WolframEngine/12.0
        3.0G pkg/Wolfram/WolframEngine
        3.0G pkg/Wolfram/

Actually the downloaded file is a little over 1 GB,

        $ stat -f "%z %N"  Downloads/WolframEngine_12.0.0_LINUX.sh
        1177035547 Downloads/WolframEngine_12.0.0_LINUX.sh

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Wolfram Language is _insanely_ great. I've been using wolframscript as (i) a shell replacement and (ii) a piping/glue language for larger projects.

Wolframscript makes this hard though for the following two reasons: (i) wolframscript requires users to login before any script can be ran; (ii) only 1 wolframscript REPL can be open at a time.

(i) makes it impossible to export wolframscripts to users who don't know what wolframscript is. For example, if I'm using wolframscript as a build tool for a larger Haskell project, and some user downloads my software, they'll first have to login to Wolfram Cloud before the wolframscript is able to run. There's no way I'm going to force people to do that, so it hinders the growth of the language.

(ii) makes it hard to use wolframscript as a complete terminal replacement. People often use multiple terminals at once, at different locations in the file system. Wolframscript only allows once at a time.

Wolfram Language is insanely good. It should be more popular than Python. I think fixing some of these licensing/login issues could help it grow.

<comment><USER9> > Wolfram Language is insanely great

That sounds exciting. Can you explain more?

<comment><USER10> It's hard to come up with a short answer to explain the greatness of the tightly integrated system with tons of functionality and highly sophisticated function/rule based programming style, but let me give you a quick taste of it: the following code

        CloudDeploy[
          FormFunction[{"a" -> "Number", "b" -> "Number", "c" ->    "Number"},
          Plot[#a x^2 + #b x + #c, {x, -10, 10}] &],
            Permissions -> "Public"]

will create and deploy a publicly accessible web form that asks for 3 coefficients and plots a parabola. How many lines of code / external libraries would you need to do the same thing in python?

[https://www.wolframcloud.com/obj/e0b275e6-49a2-4901-a806-e36...](https://www.wolframcloud.com/obj/e0b275e6-49a2-4901-a806-e3622fa1906c)

<comment><USER9> Cool! Is it because the Wolfram libraries and infrastructure are great, or is there something in the semantics of the language that makes this so nice?

<comment><USER10> For me, it's a combination of many many convenient built-in functions, and high level constructs for functional and rule-based programming. I recently played with the language to get functionality similar to what R's dplyr provides - it can give a sense of what kind of advanced "meta-programming" is possible.

[https://community.wolfram.com/groups/-/m/t/1901462](https://community.wolfram.com/groups/-/m/t/1901462)

</comment></comment></comment></comment></comment><comment><USER11> In my opinion, while Mathematica is the world's best general purpose calculator, it does more harm than good in producing reproducible and explainable science and math. The topic of math software being closed source has been beat to death (by me and others), so I'll veer into a different path.

As a tiny anecdote, a colleague of mine recently published a paper in quantum computation and computed a representation of some mathematical object, specifically the exact value of an angle which modulates a particular quantum gate. In the paper was this bizarre continued fraction along with arctans and pi's that no experimental physicist in their right mind would have derived themselves.

"Where in the world did _this_ come from?" I asked, while reviewing the paper.

"Oh, it's just what Mathematica gives," he responded. "I don't even fully understand it. But I do use it as proof that the angle is an irrational number and thus breaks its inclusion in some known finite group."

You might call out this otherwise accomplished physicist for what appears to be misusing the tool—taking results at face value without understanding them—but I guarantee scientists and engineers are doing this stuff daily, in more consequential places than abstract quantum physics papers.

Wolfram and his team have built something amazing, and built an incredibly successful business, but I hope he uses his business acumen to find a way to contribute to the "greater good" while he continues to enjoy running a company and making money.

<comment><USER12> what is the alternative? using some open source project that has no clear steward and nearly zero incentive (financial or otherwise) for tracking down esoteric bugs?

mathematica is built by a company that seems to take a lot of pride in quality. they are also clearly incentivized by keeping the company afloat and thus by addressing major issues.

i hear people barking incessantly about open source software in mathematics and science, but i just don't see what would actually be successful. in most people's daily jobs in engineering and even in large science projects, proprietary code is used everywhere. it's the only way to get things done in many cases. in my experience, getting a bug acknowledged, prioritized, and then fixed in open source software is like pulling teeth. what are you going to do with open source mathematics or scientific software where only like a person or two understand the bug? your story could easily have replaced mathematica with sage, and the story wouldn't be changed at all. okay fine, sage is open source. but what's more likely to be successful: (1) you are going to look through the likely millions of lines of code that makes up sage and find what's happening, or (2) you call up wolfram and ask what's going on since you have support for a product that you paid for?

how is open source software supposedly inherently better for math and science research?

<comment><USER11> Open source software first and foremost means reproducibility. With open software, anybody on earth with the right equipment can easily and trivially reproduce a result at no additional cost or hindering contractual terms. Reproducibility is paramount, and sits at the very core of science. Results that cannot be reconstructed hardly count as new knowledge.

(As a funny story, even Wolfram-the-company can't run SMP, the predecessor of Mathematica. Why? They can't decrypt it or unlock it, and can't figure out how to work around it.)

Every major tech company on earth uses open source software at the heart of their business. So we know something sustainable is possible.

Open source, one-size-fits-all math software is a tough nut to crack. I think most people could get most of their algebra and calculus done with existing open packages like wxMaxima or Sage. Specialized computations, such as those in group theory, already have open source implementations that exceed any closed competitor.

As for the construction of a competing CAS, some organization would have to employ a team. That costs money, and so far no company (that I know!) sees it as either a worthwhile investment or charitable cause. If folks do know of a company, I'd love to know.

<comment><USER12> > Open source software first and foremost means reproducibility. With open > software, anybody on earth with the right equipment can easily and trivially > reproduce a result at no additional cost or hindering contractual terms.

why? why is proprietary software less reproducible? aside from cost, i might even argue that proprietary software is more reproducible. open source software often has dependency hell. how are you sure that the dependencies and software installation is the same between two computers?

how are results not able to be reconstructed with proprietary software, aside from cost (which is not your argument)? if someone has a result found in mathematica, then couldn't that same method be reconstructed in other software to compare results? if it can't, then mathematica provides some feature not found in other software.

and plenty of science operates by not being fully reproducible by independent parties due to cost and available equipment. that's often mitigated by people reproducing the experiments or results with different equipment and even methods. and even then, every regular joe still can't reproduce the results due to massive costs.

<comment><USER11> > why is proprietary software less reproducible?

Proprietary software is less reproducible because the software artifacts literally cannot be reproduced in different environments. That's why I mentioned SMP as an example; even the vendors of the software can't reproduce their own artifact. Moreover, vendors rarely provide access to previously released versions, because "newer is always better". And nobody, except the vendor, is allowed to host or publish old/different versions. The availability of the source code does not also somehow prohibit binaries from being published.

> how are results not able to be reconstructed with proprietary software > [...]?

Cost, legal viability, availability, shareability, etc. Cost is just one aspect. I also can't provide my copy of Mathematica along with my code that produces my results to you; I'm contractually obliged to _not_ copy the software, and so even if I _wanted_ to allow you to reproduce my results, I have no power to do so.

> and plenty of science operates by not being fully reproducible [...]

This doesn't mean we should be driving away from reproducibility just because it's lacking in some areas of science.

<comment><USER12> i feel like you're beating around the bush with a definition of reproducible that fits your preferences. and i have no idea what you mean by "artifacts".

here's a quote from the NSF: _" reproducibility refers to the ability of a researcher to duplicate the results of a prior study using the same materials as were used by the original investigator. That is, a second researcher might use the same raw data to build the same analysis files and implement the same statistical analysis in an attempt to yield the same results…. Reproducibility is a minimum necessary condition for a finding to be believable and informative"_.

[https://stm.sciencemag.org/content/8/341/341ps12.full](https://stm.sciencemag.org/content/8/341/341ps12.full)

let's say someone has some data and a method to process that data. if they implement it in mathematica, then someone else can do the same implementation in mathematica and attempt to reproduce the results. so what if they had to pay for it? that doesn't affect the reproducibility. it's a barrier maybe, and a small one, but it doesn't make it inherently less reproducible. someone else could take the data and method and implement it in something else, say matlab, sage, octave, or whatever, and attempt to reproduce the results. i know of a researcher who does this very thing. he likes mathematica, but his graduate students use a range of software to do their own work and produce results. he takes their methods and investigates and implements them in mathematica to see if they are reproducible. this is good mathematics and good science. just because mathematica is involved doesn't all of the sudden make everything un- reproducible and bad science.

if you're thinking, but oh, if it's open source, i could crawl through and understand everything the code is doing. but nobody does that. it isn't even feasible in anything but the simplest of simple cases.

> This doesn't mean we should be driving away from reproducibility just > because it's lacking in some areas of science.

i didn't say we should. but in all the comments sections of big physics announcements, we don't see people whining about reproducibility. i can't go and reproduce the LIGO experiment in my backyard because it takes huge amounts of money, equipment, and engineering expertise. that's why many things don't compete that well with mathematica. it takes a lot of time, money, and expertise to develop such a software package. the opposing model (open source software) just barely drags along and could disappear at any time as maintainers come and go.

</comment></comment></comment></comment></comment></comment><comment><USER13> I was a heavy user of mathematica 20 years ago, on a 486 with MS-DOS. Of course, it was inside a terminal. Has the ability to run mathematica textually been lost in the meantime?

<comment><USER14> I hope not, historically you've always been able to run the MathKernel from a terminal and interact with it that way. Maybe this is the same thing, just more targeted to use as an interpreter.

</comment></comment><comment><USER15> This seems like they just polished some rough edges off of the existing command line version of Mathematica. I wish they would not call it Wolfram Language. His ego/talent ratio is already so high it's NKS level buffoonery.

<comment><USER16> Why do people feel the need to denigrate Wolfram at every turn? He is obviously a genius of the highest caliber, who has dedicated his life to making useful tools to advance science and engineering. He has made a tremendous positive impact. People should focus more on making their own positive impact instead of trying to tear Wolfram down for his awkward but ultimately harmless lack of self awareness.

<comment><USER17> .. because when I met him personally at a hack event in the 1980s, he was obviously in the "dominant and loud" mode, and directly commanded anyone within earshot, at most opportunities.. later, it turned out he forked his company and left the people who built Mathematica out of future profits. Silicon Valley bred people like that .. it is still common in some environments.

<comment><USER18> My grad math advisor was one of the folks who wrote significant parts in Urbana of the symbolic core; the behind the scenes team got legal settlements after that strange move. He's not from Silicon Valley; I think he'd done some early prototyping and coding himself while at CalTech (in Lisp if i recall) then came to Urbana-Champaign as a research prof, and got the team of several to build it out. [ I've been using it since 1988, and love it. ]

</comment></comment></comment></comment><comment><USER19> It's proprietary. Do we need another Flash?

<comment><USER20> If you don't need it, don't use it.

<comment><USER19> I'm just pointing out that proprietary languages tend to die outside proprietary environments.

<comment><USER21> Matlab and Java seem to be doing alright

<comment><USER22> Both of them certainly have their uses, but especially for MATLAB, are they? I'm working as an engineer in academia right now, and even with all the legacy holdover of MATLAB, many people I know (including almost every undergrad project I've helped with) are either using R or Python, and I know I don't go for it unless I'm absolutely forced. And that's nothing to say for the researchers whose eyes light up upon hearing of Julia.

Few of those people seem like they'll be advocates for buying expensive seat licenses if they become PIs down the line or join industry 5-10 years from now.

Mathematica seems a little different because I don't believe there's currently a viable alternative, let alone a commonly used one.

<comment><USER23> In my experience, the engineers who don't specialize in programming prefer MATLAB. Programmers will be comfortable in it, but will sooner reach for python etc.

Much like Excel, it's easier to get people to program if you can convince them it's not programming.

<comment><USER22> I definitely agree in this about Excel (some things I've seen some 'people who don't like programming' do in Excel are positive mind-blowing), but just haven't seen that same thing in MATLAB. That could definitely be just because of a limit of my own experience, though, and your point makes a lot of sense.</comment></comment></comment></comment></comment></comment></comment>


Living Surveillance Free for a Day - <AUTHOR> http://nymag.com/daily/intelligencer/2013/07/surveillance-free-day-part-i.html

<comment><USER2> I've been doing this for the last month and a half, to an extent.

I've got a spare laptop running a relatively minimal installation and it connects only to other Wifi networks (never any of my own). Thanks to iptables, I can restrict outgoing traffic to only that which is running over Tor. Yes, it's slow as molasses but for general web browsing I've gotten used to it (just don't try to create an HN account over Tor -- a nice little hellban will quickly follow).

I've got a new e-mail account that I registered while connected over some random hotspot several miles away using a Visa gift card I'd purchased a few months before. It's this account that I use (only over Tor, of course!) to participate in various public mailing lists.

My iPhone (which I hope to trade in fairly soon) is off more than it's on. I often simply leave it at home while I'm gone for the day. I haven't really missed it and, on the few occasions I've actually needed to get ahold of someone, it hasn't been difficult to find someone to let me borrow their phone for a moment or deliver a quick message for me. I barely even text anymore, who knows who is reading the messages I do send.

I work for an ISP and I have some things I want to do there too. I've pretty much got free reign to do whatever I want (as long as it doesn't cost my boss anything!) so I'll be bringing up a Tor exit node in the near future as well (I'm aware of the implications -- I don't care). I'm hoping to have a talk with my boss (who is 100% driven by the almighty dollar) about offering up anonymous VPN services and accepting Bitcoin to pay for that.

On the ISP network, I've now gotten ~1200 residential customers (to whom it doesn't make a difference) using private IP addresses and hope to add many, many more to that figure. A Cisco ASA5520 performs NAT but doesn't log NAT translations. If I get a "who had this IP at this time?" request, well, I don't know, sorry. Deal with it.

I "get a check" from Google every month for the ads on my blog (okay, technically it's a direct deposit). That was basically just a bit of extra money that sits in my business account. It's been going to the EFF recently.

I've stopped paying for things with debit/credit cards. If I pull up my account history, I can count the number of transactions in the last 45 days on one hand and nearly all of them are ATM withdrawals. Hell, I stopped using my "loyalty card" at the supermarket and had a random stranger get me a new one that isn't tied to anyone's identity.

These recent revelations, thanks to Snowden, have completely changed my behaviors. I'm not a "tinfoil hat" type or paranoid in the least, but I am completely pissed off. I may only be one person and there's only so much I can do but I will do everything I can to throw the smallest wrench possible into this unconstitutional surveillance that's going on.

It's already a slippery slope and the NSA has been doing the equivalent of pouring 55 gallon drums of Astroglide on a slip-and-slide that's laid out on a steep hill.

(Sorry for the rambling wall of text.)

<comment><USER3> > If I get a "who had this IP at this time?" request, well, I don't know, > sorry. Deal with it.

Who posted this fantasy about raping a woman that has now gone missing? Oh well I don't know. Deal with it.

Your smug attitude seems less impressive when you apply it to a real situation.

<comment><USER4> This is the same 'Think of the women and children!!!' argument that hasn't ever been a valid excuse for surveillance.

<comment><USER5> Who are talking about surveillance? We are talking about identification of an IP adress. If they were asking for everything his user has done in the past century, and a direct fiber to every data... it would be surveillance but who were using a single ip during a single moment, this is not surveillance.

</comment></comment></comment></comment><comment><USER6> [http://www.techweb.com/news/231602248/lulzsec-suspect- learns...](http://www.techweb.com/news/231602248/lulzsec-suspect-learns-even- hidemyass-com-has-limits.html)

hidemyass logs everything.

</comment><comment><USER7> Pro tip: setting up an auto-responder on your regular email account pointing people to your surveillance-free account is not generally regarded as best practices.

Inaccurate headline aside (the author is candid about the limitations of what he's doing), it's a good illustration of how hard it is to cut down your profile significantly, and the kind of trade offs you have to think about.

</comment><comment><USER8> > I have to switch my iPhone to airplane mode

This doesn't work. The iPhone still tracks your location even when in airplane mode. To test:

1) Turn on Airplane mode 2) Take a picture 3) Turn off Airplane mode 4) Go to Photos app, "Places" tab. Note that the picture you took has been correctly geolocated.

The only way to not be tracked by your smartphone is to leave it in a Faraday device of some kind, like a refrigerator.

EDIT: Ok, not a fridge. Thanks, Titanous.

<comment><USER9> Airplane serves to avoid transmitting; GPS receivers (like smartphones) don't transmit, therefore airplane mode doesn't disable it. That said, it should be enough to switch to Airplane mode _and_ disable the GPS.

But cellphones is general are tracking devices par excellence. One-way pagers are safer, but the message is transmitted in clear-text.

<comment><USER8> I'm not sure that's correct. Phones don't talk to satellites for geolocation, they talk to towers. If they are talking to towers then they are not passive, but active. That means that even in airplane mode you are still being actively tracked if the phone can see a tower.

<comment><USER9> Phone with GPS - such as the iPhone - don't need to talk to anything to geolocate, they just need to listen to the incessant signals sent down by the GPS satellites.

Talking to cell towers can assist the GPS receiver[1], but it's not required.

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

</comment></comment></comment></comment><comment><USER10> So this seems like an odd statement: "Bitcoins are, in many ways, the ultimate underground currency. They're even better than Visa gift cards, since they don't involve a credit card company or a bank at all, and since they exist only as untraceable strings of letters and numbers." (keyword being "untraceable").

Especially as this person specifically mentions Tor as only doing a "fairly good job of keeping its users anonymous."

<comment><USER2> I'm not sure I understand. What's odd about that statement? I got big into Bitcoins about two years ago, meeting a random stranger in a bar to buy $9,000 worth in cash, but the statement is true unless I've missed something (I haven't kept up with the state of Bitcoin so perhaps I am?).

<comment><USER10> I meant that if you're going to call out Tor as "reasonably safe", it seems that you'd want to have the same warning for Bitcoins. My impression has been that Bitcoin isn't "untraceable" simply because of the public ledger that is out there. I just found it interesting that he called out Tor but lauded Bitcoin's security more. Not a big deal.

<comment><USER2> Gotcha, thanks.

</comment></comment></comment></comment><comment><USER11> _" I also cover the cameras on my laptop, desktop, and cell phone with snippets of electrical tape, since savvy hackers can gain control of them remotely."_

One thing he missed is the built-in microphone on his laptop and cell phone. That can also be controlled and listened-in to remotely, and it's usually harder to completely disable (unlike a webcam).

Yes, you could epoxy it shut, but even then it could still function (though with greatly reduced fidelity).

Disabling it completely would require opening up your laptop/cellphone case and unplugging the mic: something that would probably void your waranty and could be a nightmare to reassemble, depending on your hardware skills and the laptop/cellphone model you own.

</comment><comment> gr-eg This reminds me of the documentary "Erasing David": "After anonymously setting up private investigators Cerberus Investigations Limited to trace him, he tries to disappear."

[http://erasingdavid.com/](http://erasingdavid.com/)

</comment><comment><USER12> The author sounds like a way over-wired gearhead to start with. He every latest gadget and app. No wonder it takes an effort toget off the grid.</comment>


A list of JavaScript WYSIWYG editors - <AUTHOR> https://github.com/cheeaun/mooeditable/wiki/Javascript-WYSIWYG-editors

<comment><USER2> Well, since there seems to be a JS rich text editing item on here every day now, let me just link to my up and coming project in this space again: [http://prosemirror.net](http://prosemirror.net)

<comment><USER3> This looks very good, in fact it looks more promising than anything I've seen. The one thing that seems to be missing still is extensive documentation, or is that somewhere to be found already?

<comment><USER2> Nope, does not exist yet. This is something I'll be working on once funding succeeds [1].

[1]: [http://indiegogo.com/projects/prosemirror/](http://indiegogo.com/projects/prosemirror/)

</comment></comment></comment><comment><USER4> There sure are a lot of them ...

Does anybody have experience with wysiwyg.js? [http://wysiwygjs.github.io/](http://wysiwygjs.github.io/)

</comment><comment><USER5> WebODF is a fine addition to that list.

[http://www.vandenoever.info/blog/2015/05/30/typing- together-...](http://www.vandenoever.info/blog/2015/05/30/typing-together- alone.html)

</comment><comment><USER3> They seem to have ignored the "collaborative" angle, which is important because we're talking about web applications.</comment>


Cloud Encryption Is Worthless - <AUTHOR> https://www.chrisfarris.com/post/cloud-encryption/ <comment> dane-pgp > What are the most likely vectors of information disclosure or alteration in > the cloud? Is it Ninjas descending on us-east-1a to steal the hard-drives > your data is stored on?

Why doesn't AWS use full disk encryption everywhere, such that the ninjas would find only random-looking data once they plugged the drives into the machines back at their base?

Arguably people wouldn't want to pay the financial and performance cost for this security if they are just hosting publicly downloadable files in their S3 buckets, but I would hope that the cost would be negligible these days.</comment>


CPUs and GPUs – There's enough room for everyone - <AUTHOR> http://sqream.com/cpu-and-gpus-theres-room-for-everyone/ <comment><USER2> I wish to add that GPU is more effective than CPU if the complexity of the algorithm is higher than the output size. (e.g. multiplying an integer array by 2 is not worth to do on the GPU)

<comment><AUTHOR> (OP here) - agree. The processing speed trade-off wouldn't be good in this case.

That's my point ultimately - you should pick the right tools for what you're doing, and balance them make the most of each one.</comment></comment>