Vysor is no longer available – H.264 licensing - <AUTHOR> https://plus.google.com/u/1/110558071969009568835/posts/717zTopZSWf <comment><USER2> He included an unlicensed H.264 decoder in his app. He could have avoided this by either using Chrome's built-in APIs[1], utilizing Cisco's free H.264 implementation[2], or simply paying the license fees himself. Google and Cisco are already paying the fees to make developers lives easier.

As much as I hate patent trolls, this isn't really patent trolling.

To make matters worse, I informed Koushik Dutta about this possible issue back in 2015[3] and he closed my GitHub issue and ignored it. I'm not surprised at the outcome.

[1]: [https://developer.chrome.com/native- client/pepper_dev/c/stru...](https://developer.chrome.com/native- client/pepper_dev/c/struct_p_p_b___video_encoder__0__2)

[2]: [http://www.openh264.org/](http://www.openh264.org/)

[3]: [https://github.com/koush/vysor.io/issues/84](https://github.com/koush/vysor.io/issues/84)

<comment><USER3> _utilizing Cisco 's free H.264 implementation_

What difference does it make? It even seems backwards in some sense --- that writing code based on a freely available spec means you have to pay a license fee, yet someone else can give away their implementation freely? IANAL, so perhaps what we think of as the crazy and contorted bureaucratic mess that is the patent system would make sense in some strange and twisted way to those who designed it.

<comment><USER4> You don't have to pay for writing code based on the spec, you have to pay for users using it. Just as Cisco does for users of their free binaries. (They probably don't pay all that much extra since they already pay tons of fees for their own products, and it has to be some kind of flat-rate deal since they can't track precise user numbers)

If you take their code and compile it yourself, you are on the hook for fees of users, just as if you wrote the code yourself.

I don't like it, but it is a logical option that if someone pays it is the one responsible for making the "product" (=binary including the codec)

<comment><USER5> > If you take their code and compile it yourself, you are on the hook for fees > of users

I'm sorry, how is using the source which needs compilation different from using the binary provided?

<comment><USER6> I would assume it falls under a separate license scheme, hence why programmers shouldn't try to be lawyers.

</comment></comment></comment></comment></comment><comment><USER7> Keep an eye on Alliance of Open Media ( [http://aomedia.org](http://aomedia.org) ). Basically Amazon, Cisco, Google, Intel, Microsoft, Mozilla and Netflix got fed up with the licensing model of H.265/HEVC which is even worse than that of H.264 (dual patent pools which different licensing terms where you have to pay both).

Intent is for it to be royalty free, open and supported in major browsers and devices.

</comment><comment><USER3> Couldn't he have just added a disclaimer that the app may contain patented technology, but software patents are not enforceable everywhere? I doubt FFmpeg has paid a single cent of license fees to anyone, and yet it's survived and still available for anyone to download and use:

[https://en.wikipedia.org/wiki/FFmpeg#Legal_aspects](https://en.wikipedia.org/wiki/FFmpeg#Legal_aspects)

I believe the way to fight software patents is civil disobedience.

<comment> TD-Linux Downstream projects of FFmpeg such as VLC certainly have been affected [1]. The interesting thing is that most of the problems have been with audio formats - this is the first I've seen for an open source project using H.264.

The Wikipedia article is a bit misleading because although it cites the EU as an example, most software patents are allowed in the EU, including many H.264 patents. I would encourage you to fight software patents not by infringing, but by using royalty-free alternatives.

[1] [https://forum.videolan.org/viewtopic.php?t=125032](https://forum.videolan.org/viewtopic.php?t=125032)

</comment></comment><comment><USER8> Honestly, we need to start changing the laws to prevent patent abuse. If your patents become part of a must-implement standard (with your permission, of course, mpeg-la members have obviously given theirs), then your patents become null for anyone implementing that standards, ie, you are forced to license them for free.

Using patents like this is pretty much the patent equivalent of entrapment.

Also, why isn't Vysor just using the HMTL5 facilities to use hardware h264 enc/decs?

<comment><USER9> > Also, why isn't Vysor just using the HMTL5 facilities to use hardware h264 > enc/decs?

Or the built-in Chrome API for that, PPB_VideoEncoder: [https://developer.chrome.com/native- client/pepper_dev/c/stru...](https://developer.chrome.com/native- client/pepper_dev/c/struct_p_p_b___video_encoder__0__2)

<comment><USER10> Vysor was written in early 2015. VideoEncoder was not available until around December 2015.

But yes, I've switched.

</comment></comment></comment><comment><USER11> Just wanted to provide some bits about the MPEG-LA AVC patent portfolio licensing (which includes H.264 enc/dec). I went through this process for work and it's pretty painless. The licensors are very responsive will help you find a solution. They're not trying to shake you down.

(I'm not familiar with Vysor but whatever you do, stay away from libvlc if you're looking for a decoder/encoder. That stuff is not kosher in most countries. ffmpeg is a gray area too.)

Some highlights from a few years ago (may differ slightly now but unlikely):

* No licensing fee

* Free for private/personal, non-commercial usage (e.g. non-monetized YouTube, cat videos)

* < 100,000 units = no royalties! (Unit defined as encoder or decoder)

* > 100,000 units = 0.20c/unit

The process is simple, you ping them, they FedEx you a stack of easy to read papers, sign it, and mail it back.

[IANAL so obvious use-common-sense boilerplate goes here.]

<comment><USER12> > They're not trying to shake you down.

... yes, that's exactly what they are doing?

<comment><USER11> It's my understanding that a "shake down" is an act built on /unreasonable/ demands. This is hardly unreasonable though do recognize that's subjective.

</comment></comment></comment><comment><USER13> Damn, I love Vysor, and was actually using it for a big product demo while this apparently was getting removed from Chrome app store. Real bummer.

<comment><USER14> Do you happen to still have the extension installed you could pack...? I'd love to get my hands on it.

<comment><USER15> The extension is open source and on GitHub.

<comment><USER14> You got it! Thanks for the tip. I just found my way over there and the whole thing is 100x better than I expected to find. Not an ad in sight and not even a message asking for donations. I'm thirsty for more now!

</comment></comment></comment></comment><comment><USER16> If we want people to pay us for software, we have to contribute toward a system where value is added and money is extracted as goods and/or services of increasing value are developed and transition between entities. This radical concept is known as "industry."

The alternative is to be mindless coder drones that produce "content" for people who don't value it but profit from it. Like musicians producing music for music companies but somehow not getting paid for it, you too can be a doofus with a Google+ account adding value to the Android or Apple ecosystem with your free app. Get "wrote an app" on your resume, make a snappy logo, then flounce out with a sad Google+ post to extract maximum brogrammer value!

I increasingly see these issues as self-serving ways for some dude to get out of the hassles of maintaining some bullshit free app with 8 users.

Somewhere there's a real company who'll cut the $50k check. Somewhere there's a hungrier, smarter developer who'll work around the issue. Somewhere there's a dirtier, angrier developer who'll fight for what's right against inane licensing terms. This developer is none of the above, nor is he contributing to furthering the industry. Begone.

</comment><comment><USER14> I didn't even know this existed, and now it's gone! I've been looking for something like this for awhile and would gladly pay for it. The few similar things out there are all clunky, slow, and just not up to the task. I'd throw in $50 or so just for this if it worked :)

</comment><comment><USER17> As the decoder was software based, preparing a switch to VP9 or AV1 may be a strategic move.

<comment><USER10> Most Android phones only have an h264 encoder.</comment></comment>


LogDevice: a distributed data store for logs - <AUTHOR> https://code.facebook.com/posts/357056558062811/logdevice-a-distributed-data-store-for-logs/ <comment><USER2> Would someone from Facebook be able to comment on LogDevice versus (Twitter's) Apache Bookkeeper/DistributedLog??

The two sound very similar. I've been studying Bookkeeper this week to understand how it works and was excited to see the blogpost about LogDevice.

My understanding isn't fully there yet, but BookKeeper seems to have a more involved protocol versus LogDevice: ie it has fencing to ensure that only one writer is writing to a log at a time a 2-phase-commit-like protocol, and opening/closing of ledgers.

To me LogDevice's sequencer and epoch number sounds much simpler. Does BookKeeper achieve some more consistency or other guarantees that LogDevice doesn't by having a more involved protocol? How do the two compare in terms of goals/pros/cons/tradeoffs/usecases/etc?

(From reading the blog post it seems to me that in LogDevice an old sequencer could still be writing to LogDevice when a new one with a higher epoch number is also writing. As I understand it BookKeeper uses a CAS operation on metadata version number (like the epoch number of LogDevice) AND fencing on the storage nodes to make sure that only a single writer is writing at a time).

<comment><USER3> I'm on the LogDevice team at Facebook. Glad you're excited to hear about LogDevice!

I'm not familiar with Bookkeeper, so can't comment on that. I do know that, compared to most other systems, LogDevice emphasizes high write availability. So even if we're still sorting out the details of which records made it at the end of one epoch, we'll still take writes for future epochs. We just won't release them to readers until we've made enough copies of earlier records.

We do our best to ensure that only one sequencer is running at a time. We use Zookeeper to store information but the current epoch & sequencer, and whenever a new sequencer starts, it needs to talk to Zookeeper. So that helps with races where several machines want to become the sequencer for a single log at the same time.

Also, when clients are looking for the sequencer for a given log, they all try the same set of machines in the same order. Essentially there's a deterministic shuffling of the list of servers, seeded with the log id. So all clients will try to talk to the same server first, and only if that server is down, or learns that another sequencer is active, will the client try a different server.

Hope that helps!

</comment></comment><comment><USER4> This approach to processing real-time and historical data works very well. We use a similar approach at Morgan Stanley and have a PL/compiler for real-time index construction and query processing on top ([https://github.com/Morgan- Stanley/hobbes](https://github.com/Morgan-Stanley/hobbes)).

In addition to the general model of log writing + reactive processing, I've also found that we spend a lot of time focused on getting the _type structure_ of our data right (which allows for flexible/generic downstream processes that can also be efficient and type-checked against the structure of the data ahead of time). I wonder if/how this aspect of the problem has been considered by the Facebook team.

</comment><comment><USER5> Reading the blog its not clear to me how they deal with gaps in the LSN sequence. The scalability & performance properties derive from 1) Using a separate sequencer that issues increasing sequence numbers, 2) Uncoordinated distributed writes of actual record value to storage nodes, 3) reconstitution of ordered log at consumer side.

How does a consumer that have retrieved N and N+2 know if N+1 is not yet written, or if it failed and will never be written? Perhaps they write-through the sequencer with subsequent writes waiting on acknowledgements, so 'gaps' only occur on epoch changes?

<comment><USER3> Hi, I work on the LogDevice team at Facebook.

Within an epoch, the sequencer is a single process on a single machine and gives out LSNs sequentially. When a sequencer dies, and a new one is started, its first job is to fix up the end of the last epoch. If it can't find any copies of a given record, it inserts a "hole plug," to store the fact that the record is lost. So, except for hole plugs (which should be very rare), the only gaps are between epochs as you say.

Suppose you have 10 LogDevice servers, and you store 3 copies of every record. Then the client will have connections to all 10 machines, and each machine will push whatever records it has to the client. Crucially, the servers always push records in order. So if a client gets record N from machine 7, then gets record N+2, it can be sure that machine 7 doesn't have a copy of record N+1.

Once you've got record N+2 or higher from at least 8 machines, without getting record N+1 from any of them, you can be sure that at least one copy of the record has been lost. If those 8 servers have complete information, you can report to the user that the record has been lost.

<comment><USER5> Hi, thank you for the answer.

Can you comment on how writes to the LogDevice servers are performed - particularly if the writes have to go through the sequencer, or if the individual producers can write directly after obtaining a LSN?

Since a given LogDevice server will only receive a non-deterministic sub- sequence of records, I would think it has to receive its set of writes in order? (To have enough information to push to clients in order). Unless there is actually some mechanism by which it can determine the elements it should receive.

Trying to understand if your per-log throughput will be capped by the max traffic that can be pushed through a single sequencer, or the round-trip latency for waiting for acknowledged writes from LogDevice servers.

<comment><USER3> _Trying to understand if your per-log throughput will be capped by the max traffic that can be pushed through a single sequencer,_

Yes. You can think of an individual log like a database shard.

We have plans to allow the sequencer to just give out sequence numbers, and allow the clients to send the data directly to the storage nodes. But its not a high priority for us, since it's just a constant factor improvement. (Although a large one!) Users would still need to shard their data, although not as much.

</comment></comment></comment></comment><comment><USER6> I wish someone would explain why the licensing issue is not a pertinent discussion here And why those comments have been removed. In any other case that would be a perfectly reasonable point to consider.

<comment><USER7> Because there is no licensing issue because this project hasn't been released. This blog post is a preannouncement. When it's released and its known what license it uses then it will become a pertinent discussion.

<comment><USER6> That line of reasoning could be applied to pretty much every single comment in this thread. Literally. Pick any comment and you could simply respond with: "Well it's not released yet so it's not pertinent".

The very fact that the announcement includes "the ultimate goal of contributing it to the open source community later in 2017" makes the licensing issue pertinent, particularly given Facebook's licensing history.

</comment></comment></comment><comment><USER8> A couple questions:

1\. Do the log records pass through the sequencer nodes on the way to their destination, or does the writer issue a request for the sequence number and wait for a response?

2\. If you're maintaining the current epoch number (and sequencer location) in Zookeeper, and a sequencer starts going up and down, you're definitely going to have problems, because nodes will get potentially stale epoch/location data from Zookeeper. Unless, that is, you have Zookeeper run a full consensus algorithm for every single query for every single record you write, which would kill performance.

So as long as you're using single sequencer nodes, and dealing with replication, and doing some kind of leader election to pick a new sequencer node when one goes down, why not just run a normal consensus algorithm (like Raft) for storing records? The Raft leader node serves as the sequencer, it takes care of replication, it tolerates failures, it will be no slower than what you're doing now, and it will be way more reliable.

</comment><comment><USER9> How does it differ from Apache Kafka?

<comment><USER10> For me the difference seems to be in handling large number of distinct logs. In Kafka every log & partition is a separate file and moreover it keeps it open. So, storing multiple logs results in writing to many files so eventually random write IO; and also you may hit limits of open files. You can multiplex logical logs in each Kafka log, but then you read unnecessarily other logs.

Keeping SS tables makes it more sequential write and reasonably sequential write, as long as you have enough RAM to get multiple records of each log, so they constitute a continues blocks in flashed file.

Actually you could get very similar result using Cassandra, which also uses SS tables. The difference is that Cassandra keeps merging files, which actually makes much more IO traffic than clients. Cassandra will typically need 16x more IO for merging then actual data write rate. You can limit it a bit if you create time shard tables.

</comment></comment><comment><USER2> >> We ensure that only one copy of every record is read from disk and delivered over the network by including the copy set in the header of every record copy. A simple server-side filtering scheme based on copy sets coupled with a dense copy set index guarantees that in steady state only one node in the copy set would read and delivery a copy of the record to a particular reader.

Can someone explain/expand on the above please? I've read the article a couple of times and tried to understand the above paragraph in context but I don't get it.

<comment><USER11> They've neglected to define the term "copy set". I assumed it was some kind of record ID (although I don't get why that should be distinct from the Log Sequence Number).

<comment><USER3> I'm on the LogDevice team at Facebook. The "copy set" is the subset of server machines that a given record is stored on. For example, if you have a cluster with 10 machines numbered 0 through 9, then the copy set for record 1 might be 3, 6, 8; for record 2 might be 0, 2, 5, etc. Copy set can change with each record. The node set (the list of 10 machines) is fixed for the length of an epoch.

</comment></comment></comment><comment><USER12> Similarities to CORFU / Tango design (see Zlog post: [http://noahdesu.github.io/2014/10/26/corfu-on- ceph.html](http://noahdesu.github.io/2014/10/26/corfu-on-ceph.html)).

Edit: This is a good thing

</comment><comment><USER13> ~OT but it would be excellent to hear HN feedback on [https://bookkeeper.apache.org/](https://bookkeeper.apache.org/) and Twitter's DistributedLog and Manhattan projects.

</comment><comment><USER14> This looks similar to Humio

</comment><comment><USER15> At this stage, the only thing I care about is which license they are going to apply to this project. That'll be enough for me to know if I should bother investing any further time here.

<comment> unkown-unknowns Exactly. Specifically, whether it'll include the usual patent clause. I am sure it will and as such it will be of no interest to me.

<comment><USER16> Are there Facebook OSS projects without the patent clause?

</comment></comment></comment><comment><USER17> > We continue to iterate on LogDevice with the ultimate goal of contributing > it to the open source community later in 2017.

Frankly, if it's the same license as React (BSD + PATENTS), I'm not interested.

Edit: Here come the facebook fanboys with the downvotes.

<comment><USER18> We've had many discussions about licensing issues, but this isn't one of them. Please don't post off topic and then complain about downvotes—it breaks the guidelines.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER19> > we've had many

> don't post off topic

Users of HN, please note "we" is Facebook and Facebook, or a representative of Facebook, is telling us what we can and can't discuss here.

This is why I quit posting here and use /r/hackernews on Reddit for my links. However, I occasionally make an appearance when I see patterns emerge, such as control where we didn't assume control existed.

<comment><USER20> 'sctb is an HN mod and does not work for Facebook nor is a representative of Facebook.</comment></comment></comment></comment>


Canonical Ltd source code repositories have been compromised - <AUTHOR> https://github.com/CanonicalLtd <comment><USER2> So... what's the risk? If a person updated their Ubuntu computers this or last week, are they in trouble?

<comment><USER3> Hijacking top comment...

We can confirm that on 2019-07-06 there was a Canonical owned account on GitHub whose credentials were compromised and used to create repositories and issues among other activities. Canonical has removed the compromised account from the Canonical organisation in GitHub and is still investigating the extent of the breach, but there is no indication at this point that any source code or PII was affected.

Furthermore, the Launchpad infrastructure where the Ubuntu distribution is built and maintained is disconnected from GitHub and there is also no indication that it has been affected.

We plan to post a public update after our investigation, audit and remediations are finished.

Thank you, your trust in Canonical is important to us, which is why we make privacy and security a priority.

-David on behalf of Canonical

<comment><USER4> Thank for the update, David. Would this be an affected store? [https://us.images.linuxcontainers.org/images/ubuntu/bionic/a...](https://us.images.linuxcontainers.org/images/ubuntu/bionic/amd64/default/)

<comment><USER3> From our investigation so far, they do not appear to be, No.

</comment></comment></comment></comment><comment><USER5> While it's troubling that this happened isn't it sort of cool that it's out in the open for everyone to see? At least due to open source the community can know what happened and even look for changes.

<comment><USER6> What sucks is that I _just_ updated WSL immediately before coming to this article. Hopefully it's ok.

</comment></comment><comment><USER7> I only see a list of files. Can you link to something more specific?

<comment><USER8> some stranger repos have been created and there is this issue [https://github.com/CanonicalLtd/CAN_GOT_HAXXD/issues/1](https://github.com/CanonicalLtd/CAN_GOT_HAXXD/issues/1)

<comment><USER9> Removed or made private (I see a 404 error only)

<comment><USER8> Somebody on twitter took some screenshot [https://twitter.com/dclauzel/status/1147525512794988544](https://twitter.com/dclauzel/status/1147525512794988544)

<comment><USER10> Yes, somebody did ;)

<comment> apt-get Air France représente !

<comment><USER11> Do you mean Air Rance

<comment><USER10> Ah, I see you're a man of culture as well

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> It shows 10 empty repositories with names CAN_GOT_HAXXD_%d and age 2 hours.

</comment><comment><USER13> I was told this several hours ago on IRC - this is not an official statement:

email@example.com: I can confirm that we're aware of the issue, have done some initial remediation (e.g. shutting down CI systems that might pull potentially compromised code) while we do a more in depth investigation.

someotheruser@ubuntu/member/username: And we've of course revoked the access that was abused.

</comment><comment><USER14> We are lucky that they decided to vandalize instead of hiding something. Remember, on Github you can actually submit your commit with another's email, and github automatically puts the identity associated with the email allowing people to spoof.

Always sign your commits!

<comment><USER15> > We are lucky that they decided to vandalize instead of hiding something.

How on earth do you know they haven't done both?!

<comment><USER16> Git commit hashes are pretty safe.

<comment><USER15> Aren't they changing the hash algorithm specifically because they're no longer safe?

<comment><USER16> Theoretically no longer safe, but to insert a compromise commit matching another one that looks like normal code is close to impossible.

</comment></comment></comment></comment></comment><comment><USER17> Are these not just mirrors though or do they actually use git? Woulda thought they used SVN primarily since they pull from Debian? Or do they just pull tarbals... And this all leads to me wondering how they do their process... Anybody got good docs on how Ubuntu or similar distros that base off a parent distro do their work?

<comment><USER18> First, I would like to challenge the assumption that Debian primarily uses SVN for packaging. We can get a rough idea from the use of Vcs-$name package metadata in the testing distribution:

      </var/lib/apt/lists/*_debian_dists_testing_main_source_Sources.lz4 unlz4 |
        sed -n '/^Vcs-Browser:/n;s/^Vcs-\([A-Za-z]*\): .*/\1/p' |
        sort |
        uniq -c

On my system this gives:

          4 Arch
         72 Bzr
          5 Cvs
          5 Darcs
      24168 Git
         21 Hg
         21 Mtn
        603 Svn

Which shows that git is the overwhelming favorite and about 40 times more popular than SVN for packages which provide VCS metadata.

The sources can be pulled directly from Debian as tarballs using [syncpackage]. Ubuntu maintainers are free to use their preferred VCS for maintaining Ubuntu-specific packaging. Using the same VCS as the Debian maintainer (or upstream developer) is often convenient, but not required.

[syncpackage]: [https://manpages.ubuntu.com/manpages/precise/man1/syncpackag...](https://manpages.ubuntu.com/manpages/precise/man1/syncpackage.1.html)

<comment><USER19> Surprised to see the same number for Monotone than for Mercurial.

</comment></comment></comment><comment><USER20> It looks like they have already recovered everything.

</comment><comment><USER21> Two people have been removed since this occured.

</comment><comment><USER22> does that imply Ubuntu code might've been compromised , and some trackers / keylogger codes planted ?

</comment><comment><USER23> Uh, this is worrying.</comment>


I Hacked iPhone's "Do Not Disturb While Driving" Function and Improved My Life - <AUTHOR> https://www.gobricknow.com/blog/2018/5/18/how-i-hacked-my-iphones-do-not-disturb-while-driving-function-and-significantly-improved-my-life <comment><USER2> I don't get this. If I don't want to be disturbed I just turn the phone to silent, although more often than not I don't need to because the phone will generally be in a different room than I am. If someone wants a reply from me they'll call me and hope the phone is with me, which doesn't happen for several hours a day.

Articles like this one make me feel old for not being with my phone 24/7 because they imply that that's what the norm is.

<comment><USER3> Articles like this one are thinly veiled ads for a service that someone is trying to grow. So it makes sense to target it to their target audience, not the general public. If it doesn't resonate with you, you aren't their market.

<comment><USER2> Ugh, you're right of course :(

</comment></comment></comment><comment><USER4> Is this what life is really like for most people? Are you all riding a firehose of incoming texts that need attention?

Looking over the Messages app on my iPhone, it's basically just:

* stuff from my wife

* iMessage group chat with my wife and daughter

* "your cell phone bill is ready to view"

* one friend who always has hilarious memes on tap

* "here's your temporary password for some random WiFi network"

* "your dumplings order is ready to be picked up!"

* "you're eligible for a reward at the crepe place!"

* political spam that was addressed to someone else

* "it's time to schedule your next dental appointment!"

* "your Uber code is ..."

* "reminder: your child's annual physical is coming up on ..."

* "you've logged into your Aeroflot account from ..."

I've scrolled as far back as January while typing out this comment. Note that I don't delete texts for the same reason I don't delete email: "what if I need to go back to it later?" is commonly a guiding principle for me.

There's no barrage of texts from anyone who isn't an automated system already, and those can certainly wait. My email looks quite similar, and has become so full of automatons that I only open my inbox rarely in order to find a specific message, such as an email address verification ping.

<comment><USER5> I get two or three texts or whatsapp a day. Usually "what time will you be back" or "quick half in the pub?", or occasional 2FA texts.

But I don't have emails polling and I don't have slack, twitter or facebook notifications on my phone (I have slack on my desktop on private messages and @s)

DND turns on automatically at 9pm and goes off at 10am (my schedule is usually 7 or 8 hours between 8am and 9pm, I have a couple of hours off in the day, sometimes start late, sometimes finish earlier). I have it set up that certain people (mainly wife) bypass dnd, and if you phone back a second time in 3 minutes it bypasses.

Even then I tend to have the phone on vibrate only, and only for calls. If it's important people will call.

</comment></comment><comment><USER6> How I wish iOS would allow you to mark text messages as "unread" or "flagged". Messages come in, I read them to see if they're urgent, most often they are not, however, I usually _do_ want to reply later. But, I feel an obligation to reply right away, otherwise the message will get lost in the mix of other read messages and forgotten.

<comment><USER7> "Hey Siri, remind me about this at <time>" or "Hey Siri, remind me about this when I get home" are the ways I work around this kind of scenario.

</comment></comment><comment><USER8> > anyone who texts me will get an automatic reply saying that I'm off my phone > and I'll get back to them when I've reconnected

If people messaging you can't wait 1h for the answer I don't see the problem being with phones, it's with people

I'll get to messages when I'm ready to answer them, which might be in 1 min but it also might be 1h or more

</comment><comment><USER9> This is not a "hack." This is using the phone as designed.

</comment><comment><USER10> I'm pretty bad with a lot of this stuff, I've a fairly nuts schedule of blocks on Freedom to keep me off certain sites for 22 hours a day. The issue is never so much the notifications for me as the awareness that going onto whatever services is an option so the approach in this article probably wouldn't work for me.

As an example of how bad I am, I'm thinking of buying a timed lock and making some form of USB device to input my password for my computer so I can just lock it away with my smartphone and be totally offline for patches.

The automated reply thing in this article sounds like a nuisance to me though. If someone gets a do not disturb message when they message me now, if they message in an hour and don't get another one then they presumably know I'm free and choosing to not answer?

</comment><comment><USER11> click bait title, linking to a pseudo self-help cult.

HN is getting too weird for me.

</comment><comment><USER12> I'm sure you could apply this to any mobile device that can run If This Then That - [https://ifttt.com/](https://ifttt.com/)

</comment><comment><USER13> Or just go under the radar and disable all notifications for all apps and also disable vibration or any other notification signal.

<comment><USER14> also: disable the transceiver and stop lighting the screen, to save power since you're not using your phone

maybe there could be a dedicated switch for it</comment></comment>


Show HN: Abacus – Killing The Expense Report - <AUTHOR> https://www.abacus.com/ <comment><USER4> I'm intrigued. We use expensify and it's been bar-none the easiest to use expense reporting system I've ever used. At my old startup we did everything via a pre-setup excel sheet which was also stupid simple.

This solves one of my major problems, after a week or two on the road, I invariably lose a receipt or two.

But I wonder if it solves my other problems?

\- expenses that don't have receipts, like unattended exact change toll booths, or when I use my old MTA card (which still has money on it!) to get around NYC, so I don't have a receipt for buying or filling up a new card, or grumpy cab drivers that provide a receipt, etc.

\- driving expenses, this is a big problem with expensify, which is geared to either use their embedded gps directions to calculate distance (which is _never_ the route I use so it's always off by quite a few miles), or the honor system which is usually just a best estimate. The other night I went on google and actually laid out the exact route I took on a recent drive and found out that my honor system reported mileage was off by about 2 miles. I'd love to be able to get in my car and hit "expense driving" and have it track my path and use that as the submission.

\- separating out expenses on a receipt. My company doesn't reimburse booze, so a dinner out while travelling, with a beer, means I have to manually remove the booze charge from my expense and recalculate the taxes etc. Or if I'm out with one of my friends who works for the government, and I pick up the tab via credit and he pays me back for his portion in cash (the ethics are pretty strong on this) how do I deal with this?

I've found that expense reporting systems get complicated for these reasons.

Also, I definitely do not want it connected to my bank account.

<comment><AUTHOR> Thanks for the feedback —

Receipts aren't required. If you're worried about an IRS audit it's important to have receipts (images) for transactions over $75, but for anything under that it's up to the company / employee.

Some of the other stuff (mileage reimbursement, splitting expenses on a receipt) are good points but are also largely responsible for why some of the other tools out there are so heavy and complicated. We might try to address these use cases in the future, but for now we're trying to keep Abacus as simple as possible. You can use the expense note to add this sort of context.

Curious why you don't want to connect your bank account to get paid back? We take security very seriously, your bank details are stored with PCI DSS certified processor and never touch our servers.

<comment><USER4> > Receipts aren't required. If you're worried about an IRS audit it's > important to have receipts (images) for transactions over $75, but for > anything under that it's up to the company / employee.

Most of my employers like the have at least scanned images of the receipts or a cropped screenshot of a credit card transaction showing the expense. Beyond IRS requirements, most places just use them to add a layer of verification that the expense is warranted and correct (I'm not claiming $15 for lunch when it cost me $7 or something). Being able to just shoot a photo of it with my phone might be enough?

> We might try to address these use cases in the future, but for now we're > trying to keep Abacus as simple as possible. You can use the expense note to > add this sort of context.

Yeah, all that stuff is definitely what makes expenses a PIA. Glad to see you're keeping things focused. A "expense this drive" that uses GPS tracking to calculate mileage would be a cool feature though.

> Curious why you don't want to connect your bank account to get paid back? We > take security very seriously, your bank details are stored with PCI DSS > certified processor and never touch our servers.

Definitely not a knock against you guys or your precautions. It's just not a feature I would use personally.

Maybe I'm a luddite, but autobillpay and other electronic transaction systems are something I try to avoid where possible in favor of getting a check and depositing it myself. It's not a decision I've ever come to regret and having an extra audit trail on my end has come in handy several times over disputes -- besides, I get a nice walk to the bank out of it.

 _note_ I've already sent your URL out to a few people already! Good luck and awesome idea!

<comment><AUTHOR> > Being able to just shoot a photo of it with my phone might be enough?

Yup, adding a photo of the receipt is part of expense creation in Abacus. In 2006 a new law was passed that made a photo of a receipt (like the one stored in Abacus) the legal equivalent of a paper receipt, so you no longer have to save the paper copy.

Thanks for the feedback and sharing Abacus!

</comment></comment></comment></comment><comment><USER5> How is this different from expensify? Expensify uses the slogan "Expense reports that don't suck." You are essentially trying to do the same thing here. What are your main differentiators and what exactly are you doing better than these other solutions out there?

<comment><USER6> I'm glad you asked. It's really just an entirely different approach. We're not building another expense tracker (no offense - some people just need to track expenses). We believe the core of the problem is not in the tracking of expenses, but rather the back office workflow. We're trying to solve a team collaboration problem.

In terms of quantifiable differences, it's way faster for employees to submit and get reimbursed because we've extrapolated away the need to even create an expense report (submit on the fly), managers can review and approve right from the mobile and for the accountants, everything is on autopilot (accounting autosyncs in the background nightly, payouts are tied to approval and go out nightly, communications go out to employees with payout status immediately, etc.)

<comment><USER7> This sounds awesome.

I used to have the awful job of auditing executive expense reports at a fortune 10 company. One major problem is that employees submit expenses, and managers approve them, but they don't comply with IRS guidelines for deductibility. For instance, an employee just submits a expense for a $300 dinner, and it is approved by his manager.

One area where you could really stand out from the competition is guiding people to do the right thing, e.g. list the number of people that attended the dinner and a few names and titles of the attendees.

<comment><USER6> Thanks! Firstly, glad you're no longer having to suffer through that, haha. It's a great point you bring up - we're trying stay focused on serving businesses with 5-100 employees where that's less of an issue.

That being said, we have built in something we're pretty excited about which is commenting, where managers and employees can communicate right from the phones on specific transactions (kind of like sending a text) to clarify and approve rather than reject and force the employee to start over.

We're also psyched to start building what my co-founder Ted likes to think of as 'data snacks', where we surface relevant insights based on the situation, e.g. you're 80% of the way through your monthly budget, which is really what we've heard companies at that particular stage value most.

<comment><USER7> It is the small businesses that get screwed the most. Big companies have guys like me. It is only a problem when the IRS decides to do an audit, and they determine the 50% rule applies on the last 5 years of M&E. It is a non-issue for small businesses right up to the point when it becomes a major issue.

For instance, if you have "Dinner, $300", that can be a problem. If you have "Dinner, $3,000, 10 attendees, incl. Larry Page - CEO Google", the IRS will have no problem, even though it is a $300/pp dinner.

</comment></comment></comment></comment></comment><comment><USER8> Looks interesting.

There is an inflection point in the size of a company / the type and quantity of expenses where this starts to make sense.

In order to address the market that doesn't do a lot of expensing, maybe would be useful to have this be a dashboard of sorts that pulls the CC transactions from your team and presents them in order to get better categorization.

We definitely have an issue now where it's hard to identify charges from the laundry list transaction report.

<comment><USER9> Great idea, right now we only support manually entered expenses but next up on our roadmap the ability to link in your credit card to do this exact thing.

<comment><USER10> That would be another huge plus for me. Categorizing is a monthly chore of mine.

<comment><AUTHOR> Good to hear — we're also working on auto-categorizing expenses (i.e. jetblue == travel, starbucks == meals, etc.). We're going to map the foursquare category field to our Abacus categories for local expenses, as well as building a database of online vendors.

<comment><USER10> ...I _love_ that.

</comment></comment></comment></comment></comment><comment><AUTHOR> Hey we're Omar Josh & Ted, the founders of Abacus — let us know if you have any questions! Happy to discuss payment processing, ACH, why expense reports suck, etc.

<comment><USER11> Thanks for making this! We've been on Abacus and it's been a really slick and really easy experience. Highly recommended.

</comment></comment><comment><USER12> I _really_ like the pricing model. I wouldn't hesitate to put in anyone who might even plausibly have to expense something, because if they don't then they're free. It feels good not to have to worry about this.

<comment><AUTHOR> Thanks! Yea it was important to us that our pricing be 'pay only for what you use' because there's greater utility when companies add everybody on their team.

</comment></comment><comment><USER13> Looks good specially the part "payouts are tied to approval and go out nightly". So I am assuming that once it is approved, it auto pays ? If that is the case, how would/did you deal with the bureaucracy of Accounts Payable at companies ? Departments such as Accounts Payable exist to ensure that they have the power to send you paper checks (yes even in 2014) and are not willing to budge from that specially for larger amounts.

<comment><USER6> Thanks! Yup - we batch up all approved expenses nightly and do 1 aggregated debit out of the company's bank account to kick off the payout. You know, we were also initially expecting to face more resistance, but it turns out finance departments actually really did mean well, but the tools (or lack thereof) that they had didn't allow for them to efficiently do a nightly payout. When you're doing things manually, it's more efficient to do things once every 2 weeks or once a month. By putting all of that on autopilot, we actually found the finance departments jumped on it because it's less work for them and the employees are not only happier, but also incented to submit in real time, meaning finance departments finally get real time visibility into expenses rather than having employees shoebox for a month!

</comment></comment><comment><USER14> So, I'm currently (for roundabout 3 to 4 weeks) unable to submit my expense report. The reason? The regulation/laws changed in 2014 and the software my employer is using is not only notoriously annoying, unstable and crappier than anything you would get if you'd hit a random freshmeat/tucows link, it's also 'not yet compliant' and is now down for the time mentioned above (it's operating by mounting a cifs/smb share, launching a windows application from there and 'submitting' files to that filesystem again. If it doesn't crash and burn).

The company in question is 'eagerly trying to fix the problems' as a mail to all German employees stated a couple of hours earlier today.

I would love to move to a better solution.

Unfortunately it seems the service here, as so often the case, is US only - <USER2> US centric. Are there any comparable services that I could submit to my superiors with a smile, while I point at the rotten mess that is our current system? Fellow Europeans, how are you doing your expenses?

<comment><AUTHOR> Unfortunately Abacus is US-only for now, because the ACH network we use for payments is US only, and there's a lot of variation in payments country to country.

Sorry to hear about the trouble you're having with your current solution!

</comment></comment><comment><USER10> As the poor soul who covers finances at our startup I positively love Abacus - and I've craved a solution like this for years... expense reports, receipts, etc are a never ending stream of wasted time.

We used Abacus last week for a few travel expenses - it worked flawlessly. What took time and organizational hassle was now done in about 15 seconds.

</comment><comment><USER15> I'm curious about: [https://www.abacus.com/tos](https://www.abacus.com/tos)

"BY REGISTERING FOR AND/OR USING THE SERVICES IN ANY MANNER, INCLUDING BUT NOT LIMITED TO VISITING OR BROWSING THE SITE, YOU AGREE TO THESE TERMS OF SERVICE AND ALL OTHER OPERATING RULES, POLICIES AND PROCEDURES THAT MAY BE PUBLISHED FROM TIME TO TIME ON THE SITE BY US, EACH OF WHICH IS INCORPORATED BY REFERENCE AND EACH OF WHICH MAY BE UPDATED FROM TIME TO TIME WITHOUT NOTICE TO YOU."

"VISITING OR BROWSING THE SITE"? Is this typical and is it actually enforceable?

<comment><USER9> protomyth we totally hear you on this, it sounds very lawery but it is standard language used in most Terms of Service. If you look around the internet you will see similar sentences on most web services.

<comment><USER16> Doing something 'bad' because other people do bad things is not a good explanation.

Why are /you/ doing it? Why do you think it is justified?

<comment><USER17> Well if you think about it, how is it "bad" at all? I am guessing the "visiting" the site clause means that when you are on the site, don't do anything against out ToS, (like don't hack in to the database! blah blah). So it make's sense no? If a site says that the ToS applies only to account holders (or once you login) does that mean you can legally violate the ToS pre-login/pre-signup?

Yes yes, this whole scenario sounds kinda dumb, but I honestly don't see anything inherently wrong with applying the ToS upon visiting the page. Puts the creator in the legal safe-zone.

</comment></comment></comment></comment><comment><USER18> Looks like a great system. Two thoughts I had when I scrolled down to the bottom of your landing page were "oh there's only 3 of them, and they all look very casual." Sure you're going for the 5-100 employee segment, but small and casual aren't attributes I look for when buying accounting products.

I hate to be the conservative one here, but I thought I'd share my initial reaction. Might want to save those photos for the company profile page?

<comment><USER6> There may only be 3 of us right now, but we're proud of what 3 guys in a suburban townhouse in Mountain View can build when they work their asses off all day everyday to build a product for customers that want to buy from people that are allowed to smile on their splash page.

</comment></comment><comment><USER19> Great site, looks great and seems slick and fast. Can you tell a bit about the languages/frameworks/tools you've used?

<comment><USER9> Thanks so much, our backend is written in Node.js and uses Experess as our web application. Our web client is written using angualrjs.

Our iOS and Android apps are fully native and built using objective-c and java.

</comment></comment><comment><USER20> The expense reporting software industry direly needs innovation. My company's software requires Internet Explorer to upload receipt images and returns a standard ASP.net 500 error when Chrome is used. Why? I have no idea, because simply changing the user-agent in Chrome to IE makes the software work. I can only imagine the code behind this...

<comment><USER21> My company uses Concur and it works pretty well. They have an iPhone app I can take pics of my receipts with and auto upload them and attach them to expense reports. It is pretty easy and works fine here with Chrome on OSX.

</comment></comment><comment><USER22> Submitting expenses as they happen is great. I have literally been chased around the office by finance because of long over due expense reports.

What does your early customer look like? What size organization?

How will you get big companies with large sales teams to adopt Abacus?

Did I read in the comments that you can link to my corporate card charges? That would be ideal.

<comment><AUTHOR> Thanks Trey!

Most of our early customers are ~5-100 employee companies. Right now most of our customers are other startups because that's who we know, but we're excited to expand to other organizations.

We're gradually adding features for larger organizations — we just introduced a 'groups' feature for splitting organizations into teams, and we're building out our bookkeeping sync (Quickbooks, Xero).

We're also working on the ability to pull in your card charges. For personal cards you'll be able to promote an expense as 'reimbursable'. For corporate cards all expenses will get automatically pulled in as 'non reimbursable' (because the company already pays the card bill).

<comment><USER22> This is great! Thank you. I'm a big fan.

Can't wait for the CC feature. Awesome!

</comment></comment></comment><comment><USER23> Pretty cool. I hate doing expense reports.

Now if you could just get rid of the traditional timesheet too, it would be the perfect app! (I hate doing timesheets every week too. Over the years I've used more than a dozen different official timesheet-timetracking tools at various companies and all of them sucked.)

</comment><comment><USER24> I've been using Abacus for the last ~2 months, and it's been amazing. Thank you guys so much for making it! I'm so happy to not have to deal with expensify (or worse) anymore. I'll be bringing it to wherever I work with in the future.

</comment><comment><USER25> Really well done... congrats.

I'd be curious about doing an A/B test on the CTA at the bottom of the page. That thin grey box around the sign up doesn't really stand out. Try some color to make it pop. Optimizly makes that super easy to prototype.

</comment><comment><USER26> Your "Features" and "Pricing" links don't work for me. (FF 27)

<comment><AUTHOR> Oh shoot we just pushed this new splash page last night, might be a firefox thing, will look into it. (all those links do is target the page down)

<comment><AUTHOR> Just pushed a fix should work now if you refresh

</comment></comment></comment><comment><USER27> The guys at Abacus are solid. I have full confidence in their scalability, as their core product feature - the ability to get reimbursed directly - <USER3> smooth and the customer support has been particularly awesome. Keep crushing it.

</comment><comment><USER28> I think the best way to sum up Abacus is, "Expensify, but way easier to use." The UX is only what you need and nothing else. It's goof proof and just works, that I feel is the biggest value.

</comment><comment><USER29> I use Abacus and dig it. Super quick way to submit expense reports and actually get the money transfer happening in one step. Makes managing a small business that much easier.

</comment><comment><USER30> As a guy who has filed and approved hundreds of expense reports over the years, BRAVO! This looks very interesting and is definitely something I'll check out.

</comment><comment><USER31> I've been using it for the last few weeks and absolutely love it. Even for small teams, it's a pretty cool way to reconcile all expenses.

</comment><comment><USER32> Interesting! Is this similar to Concur?

<comment><AUTHOR> We're similar to Concur, but simpler! We don't have 'expense reports' — each expense is submitted on its own, and we bake reimbursements right in — you get paid out right to your bank account as soon as your expense is approved. Concur is targeted at 5,000 employee+ companies, our sweet spot is 5-100 employee companies.

<comment><USER33> Just FYI, Concur has a SMB offering. [https://www.concur.com/en-us/pricing- editions?icid=en_us_h-t...](https://www.concur.com/en-us/pricing- editions?icid=en_us_h-topnav_pricingeds-products)

And at $8/month you get Travel & Expense functionality including TripIt pro with basic reporting included.

<comment><AUTHOR> We think we're quite a bit easier to use for both managers and employees (not to mention cheaper)

</comment></comment></comment></comment><comment><USER34> Congratulations to the Abacus team :) This is definitely needed!

</comment><comment><USER35> How did you get the domain abacus.com? Awesome brand name!

<comment><USER6> Thanks! Haha, yah... that's a fun story. So, this really big bank bought a wealth management company back in 2005 named Abacus, but post-acquisition had the domain redirect to their corporate domain. Presumably, they'd invested a lot in their brand already :)

So, we LinkedIn stalked a junior IT guy, worked our way up to an IT manager, who then passed us off to someone in legal that after 4 months of continuous follow-up agreed to sell it to us.

<comment><USER35> Nice work!

</comment></comment></comment><comment><USER36> Slick animation on the scroll.</comment>


Ask HN: Review my startup - <AUTHOR> Meet Sportal: https://play.google.com/store/apps/details?id=com.getsportalapp.sportal
What does it do? It helps you find players in your locality for playing any sport you want.
Why have I developed it? Because I myself faced the problem. Many times when I wanted play my favourite sport I found nobody to play with. Then I conducted a survey and find out that many people face this issue. So, I decided to develop a solution!
Who is it for? For everyone who love playing sports.
How is it different from other such apps? It is easy to use and core-feature driven. It can take you from thinking about playing a sport to scoring a nice goal or hitting an amazing six in a few minutes. <comment><USER2> How do you plan to compete against meetup? How do you plan to attract a critical mass of users?

<comment><AUTHOR> Meetup is focused on a lot of things but Sportal is feature specific and focus only on it's main feature (searching players) and as far as the second part of the question is concerned, I would like to have some suggestions from you.

Thanks!

</comment></comment><comment><USER3> Why does it need to be a mobile app? Why isn't it a website?

<comment><AUTHOR> because websites don't look that great on mobile devices and people can't carry laptops or desktops in their hands while going towards the venue.

<comment><USER3> "don't look that great" is pretty subjective. What do users say? I'm too lazy to link to them, but you can easily find mountains of evidence that users hate downloading native apps. The cost of acquiring native mobile users is much, much higher than mobile web.

Creating a social network is really, really hard. Doing it on a mobile device is even harder, especially when there are already versions of this on social networks full of users (like Facebook). I use Facebook to organize pick-up sports games, and it works great.

You have huge obstacles here, and trying to get people to go to an app store and download an app doesn't have to be one of them.</comment></comment></comment>


Banning body armor for civilians - <AUTHOR> http://www.slate.com/blogs/the_slatest/2015/01/29/body_armor_bill_rep_mike_honda_wants_to_ban_civilian_ownership_of_type_iii.html

<comment><USER2> > "This idea that people have to be preemptively unprotected in case the > government needs to shoot them at some point—I think that's basically the > implication of the bill."</comment>


Does Apple throttle older iPhones? - <AUTHOR> http://www.zdnet.com/does-apple-throttle-older-iphones-to-nudge-you-into-buying-a-new-one-7000032136/

<comment><USER2> I'd like to believe it's more because some sites have made their mobile- specific versions more and more complicated and loaded with Javascript.

Simple HTML sites still load quickly.</comment>


PHP Programming For Affiliate Marketers - Free Today At Amazon - <AUTHOR> http://www.amazon.com/PHP-Programming-Affiliate-Marketers-ebook/dp/B00A2TTNR0/

<comment><AUTHOR> This book is aimed at affiliate marketers who want to spruce up their websites with php...BUT, it's actually not a bad intro to PHP on its own. Free Today for Kindle.

<comment><USER2> With respect, unless the first sentence of the first chapter of this book is "hire an actual developer to install a tested framework" then it runs the risk of doing more harm (both to the marketer/wannabe dev and PHP's reputation) than good.

That said, good luck... I might pick it up as a reference myself.

<comment><AUTHOR> Oh I dunno...I don't think you're ever going to convince me that LESS knowledge is a good thing. We can - and should - all learn new skills that are outside out respective boxes. An affiliate marketer with some php knowledge is always going to be better off than one without...even if it's just enough knowledge to know whether the dev they hire is snowing them over!

<comment><USER2> _even if it's just enough knowledge to know whether the dev they hire is snowing them over!_

I'll give you that. As long as it doesn't convince them they never need to hire developers.</comment></comment></comment></comment>


Show HN: Group video chat with friends on Facebook (HAPI Hackathon) - <AUTHOR> http://groupchat.tv

<comment><USER2> Im really happy with this! :D</comment>


Why I closed my Coinbase account after 10 days - <AUTHOR>

Two words: customer service. (or lack thereof)
I decided to dabble into the world of Bitcoin by creating a Coinbase account and buying a small amount of bitcoin. After the standard length of time required to verify my bank account, I placed an order. Few days later, my order was cancelled for being fraudulent (which it is not). After going back and forth with customer service, it's been days and I still don't have my order - so I closed my account. It's a shame too as I really wanted to purchase some bitcoin. Oh well.
tl;dr - Closed Coinbase account after 10 days due to bad customer service. <comment><USER2> Get a local wallet in your own computer/phone and use localbitcoins.

</comment><comment><USER3> You dodged a bullet there.

<comment><USER4> Why is that?</comment></comment>


The Making of the Medieval-Inspired 3D Printed Women's Sovereign Armor - <AUTHOR> http://lumecluster.com/making-of-sovereign-armor/ <comment><USER2> I remember a couple who once gave sword fighting demos at Gen-Con (cannot remember the name). They made an interesting remark that the male of the couple couldn't find historic armor that fit since he was 6'+, but the female could since she was about the same size as most of the old armor wearers. Shows you how nutrition has really upped the size of humans.

<comment><USER3> The average male height in middle ages Europe was about 175 CM, which isn't that far off what what it is today.

The average height actually went down since the middle ages, and plummeted to below 170cm in the 17th and 18th centuries, making people like Napoleon which was 168-169CM tall about average for the day.

Being over 6" (182cm) in most caucasian / european descendants nations is considered tall even today.

I'm also not sure what he means by finding "historic armor", modern replicas are made to size, even production runs will have a height range that fits the average modern male (or female, there are replica makers that make armor tailored for women).

Whilst being tall he would also have no much problem finding chain mail or plate to fit a 6" tall person, what he would have is a problem finding one in wearable condition which isn't a museum exhibit ;).

Going further back to say the Roman empire we know based on the documents from the period of Gaius Marius (Marian Reforms) that the required height of a roman legionnaire translated to feet was 5"10-6"0 tall.

<comment><USER4> but here there are some citation with much shorter legionnaires

[http://history.stackexchange.com/questions/17072/average- hei...](http://history.stackexchange.com/questions/17072/average-height-of- ancient-roman-men-and-women)

" Imperial regulations, though not entirely unambiguous, suggest that the minimum height for new recruits was five Roman feet, seven inches (165 cm., 5'5") ... for the army as a whole a reasonable estimate of a soldier's average height is around 170 cm (5'7").

\- Roth, Jonathan, and Jonathan P. Roth. The Logistics of the Roman Army at War: 264 BC-AD 235. Columbia studies in the classical tradition, Vol. 23. Brill, 1999.

"

<comment><USER3> "Roman records directly attest such measuring of recruits, although determining the exact height requirement is problematic. Vegetius gives the minimum standard, or incomma, as "6 [Roman] feet [178 cm.] or 5 feet 10 inches [ca. 173 cm.] among the auxiliary cavalry or the [soldiers] of the legionary first cohort."15 Although both Fritz Wille and N.P. Milner see Vegetius's figures as an optimum and a minimum figure respectively, the expression incommam . . . exactam strongly suggests a regulation height.16 Vegetius may mean that cavalrymen must be 6 feet and soldiers of the first cohort five foot ten. In any case, these are clearly height requirements for elite sol- diers and not for the entire military. Praetorian Guardsmen probably had a higher minimum height than rank and file legionaries until the Septimius Severus started recruiting the latter into the imperial guard at the end of the second century.17"

Page 9 of that same book.

During the later Marian Reforms the height requirements were extended to the rest of the legions including the auxiliaries. That book however doesn't cover that period.

<comment><USER5> I thought Gaius Marius was pre-Caesar, so Republican Rome? And Septimius Severus / Vegetius were post-Augustus Imperial Rome.

Not sure about minimum heights, but the timeline seems a bit off here...

</comment></comment></comment></comment></comment><comment><USER6> I'd like to see the Hypermill people take this on. Each year, Hypermill, which sells high-end CAM software for machining, takes on an insanely complex project as a demo. They've machined a crown from a solid block of titanium.[1] Their system has really good solid geometry, allowing them to use long tools in a 5-axis CNC mill to get at hard to reach places inside a complex object.

[1] [https://www.youtube.com/watch?v=Bqv5SjC4s6w&feature=youtu.be...](https://www.youtube.com/watch?v=Bqv5SjC4s6w&feature=youtu.be&t=55)

</comment><comment><USER7> This whole world is new to me, and I am as impressed as any layman.

Particularly interesting to me is how off I would be if I were to guess the amount of time it takes to do anything.

Making the armor: 6 hours

Adding the LED and electronics: 115 hours

That's not literally what those categories are -- I am being hyperbolic -- but it felt like that reading the time investment.

Might be an interesting heuristic to figure out how well someone knows a domain.

Interview of the future: "How long would it take you to write a CRUD app in Rails with persistent storage?" and just see if the time is realistic.

<comment><USER8> Just to note, the modeling was close to 115 hours and the manufacturing and finishing for the armor was 172 hours. _Then_ the electronics.

(I think your numbers are your estimates, so I'm not trying to argue, just stating the totals from the article)

<comment><USER7> Even though I just had fillers in my example, I did misinterpret the numbers in real life, so thanks for correcting that.

</comment></comment></comment><comment><USER9> I was just thinking. Humans seem to frickin' _love_ armour!! In reality it was only used in certain circumstances by certain people and only for a very short window in human technological development. But ever since it has been a part of out art.

</comment><comment><USER9> The word 'practical' is used quite a few times. This looks like it would do about as much good as bikini armour, all the intricately filigreed cutout parts over your vitals and guts would be remarkably weak.

<comment><USER10> The "real life" archetypes of these are actually exactly that: renaissance parade armor. They were never meant to be used in battle, and they're not medieval. Medieval armor, if at all like that, would be way more pragmatic and light weight. There was a short period at the end of the middle ages (15th century) where knights would really wear very heavy armor, and that was the end of that age. See: battles of Crecy and Agincourt.

<comment><USER11> Wasn't the longbow the end of that age?

<comment><USER5> Longbows were pretty ineffective against late period armour like that. And not even plate - mail with gambesons (lots of layers of cloth) was pretty effective at stopping arrows, and full plate harness (2mm thick on average) was for the most part impenetrable even at point blank range.

What longbows were effective at was taking down horses and forcing your enemies to slog a long way on foot with their visors down (restricting vision and breathing). Making the fight a lot easier for your guys.

The end of armour really only came along with gunpowder weapons. Incidentally, gunpowder weapons also made longbows obsolete- largely due to the difference in training needed to shoot a gun (a few weeks on how to load) vs shooting a 100-pound warbow (years to develop muscles).

</comment></comment></comment></comment><comment><USER12> I remember host gator from my childhood. Crazy that they're still around.

<comment><USER13> It's possible that I missed something, but what does this post have to do with host gator?

<comment><USER14> We've hugged the site to death. It is currently displaying a 500 error, and the site was made using Host Gator.

<comment><USER15> Youtube hosts the making of video.[1] Though I would like to read some context for this thing.

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

Found this article [2] explaining the project:

[2] [https://www.shapeways.com/blog/archives/26537-custom- medieva...](https://www.shapeways.com/blog/archives/26537-custom-medieval- inspired-armor-soveriegn-armor-from-lumecluster.html)

<comment><USER16> There's always Google's cache if you want to read the original article:

[http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...](http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Flumecluster.com%2Fmaking- of-sovereign-armor%2F)

</comment></comment></comment></comment></comment><comment><USER17> This link is behind a .htpasswd, inaccessible</comment>


PumpUp: the Social Network for Healthy and Active Living - <AUTHOR> http://www.pumpup.co/download

<comment><USER2> Apparently my decade old email address at a .org domain can't possibly be a valid email address. /uninstall

</comment><comment><USER3> This post set off HN's voting ring detector, but we turned that off because we want to see original work on HN.

All: it's not in your interests to ring-vote posts (i.e. to solicit upvotes for it). It's against the rules, incites the ring detector into demoting your story, and eventually will get your account penalized.

</comment><comment><USER4> A direct link to App Store is cold. Far better to link to blog post explaining the concept.

</comment><comment><USER5> How is this different from bodybuilding.com's social network?</comment>


How a hummingbird in love can move faster than a fighter jet - <AUTHOR> http://www.independent.co.uk/news/science/how-a-hummingbird-in-love-can-move-faster-than-a-fighter-jet-1701103.html <comment><USER2> Commiting scale errors in the animal world, then boggling at the GIGO results, is lame.

<comment><USER3> To elaborate slightly:

      > Scientists calculated that the 50mph speed of
      > the hummingbird at the fastest point in its
      > descent is equivalent to it moving 383 times
      > its body length each second.

This does not mean it's travelling faster than a jet - the title is deliberately designed to be misleading.

It's true that hummingbirds are amazing, but this is drivel.

</comment></comment><comment><USER4> i recently watched the airbus 380 episode on 'engineering connections' [hosted by richard hammond(top gear)]. Lots of comparisons on borrowing technology from nature(insights into flight of an eagle and applying the same into the wings of the 380). I can't help think, there's more to learn from nature.</comment>


Show HN: A Personal Blog - <AUTHOR>

Hi HN,
I know, I know.  Not another personal site.  I'm just looking for a few quick eyes on my blog[1].  I'm not a designer at all, but would really value any advice you might have (whether or not you're a designer yourself).
I had two specific questions: is the menu ok from a UX perspective (for example, the resume icon isn't that clear)? And, how could I improve the typography?  Any/all general feedback would be much appreciated!
I hope to be submitting actually worthwhile content from my site (projects/posts) soon! :)
[1]: https://ahrussell.com/ <comment><USER2> >Experience creating programs to reproduce speech and musical style

Would love to see more about this [https://ahrussell.com/projects/fifthseason/run](https://ahrussell.com/projects/fifthseason/run) Would be esp. awesome to hear the generated music.

<comment><AUTHOR> Thanks for checking it out! I'm currently getting into Haskell, and one of my future projects is to use the Euterpea library to re-do this project. I especially want to add in real-time accompaniment using some basic harmonic theory.

Right now I'm working on a Haskell project to do intersolar pathfinding (pathfinding with gravitational effects). I want to see how to get A* or something similar like D* Lite to pick up on gravitational slingshotting by adjusting the heuristic.

</comment></comment><comment><USER3> That grey in the middle. Feels wrong (reduces contrast too much and thus readability). Navigation looks ok, but I don't understand it. The icons are a bit too cypher'ish.</comment>


PRISM: "Collection directly from the servers" - <AUTHOR> https://twitter.com/ggreenwald/status/343421926057861121

<comment><USER2> Link to the actual Guardian article referenced by the tweet:

[http://www.guardian.co.uk/world/2013/jun/08/nsa- surveillance...](http://www.guardian.co.uk/world/2013/jun/08/nsa-surveillance- prism-obama-live)

</comment><comment><USER3> The gulf between these slides and the issued denials and other theories represented by the likes of the NYT (an automated system to speedup compliance) is widening.

Could it be that the slides were made by a non-technical person who was over- selling this? "direct access" could mean "straight from the source".

<comment><USER4> Couldn't "the companies" be unaware of direct access to user data, but individual employees could be NSA moles providing data access? What kind of privacy protection do companies like Google and Facebook have in place to keep user data secure from company employees?

<comment><USER5> I think that's a really important question in this current debate...several years ago, Google fired a senior site reliability engineer who had allegedly stalked teens and read their inboxes...apparently, his role was of one that required deep access into these databases:

[http://techcrunch.com/2010/09/14/google-engineer-spying- fire...](http://techcrunch.com/2010/09/14/google-engineer-spying-fired&#x2F);

That was three years ago though...a lot may have changed about Google's infrastructure...I'm thinking, for example, whatever work has been done to unify login systems between Google Apps, GMail, Youtube, and of course, Google Plus. Presumably, as complexity has arisen, so has the need for better access- control infrastructure, which would (hopefully) prevent someone even at Eric Schmidt's level to lose his wits and trample around in the system without many, many flags going off first.

So with that said, that's why I'm skeptical (in the layman sense of, this is all more complicated than I can dream of) that this surveillance alleged in the PRISM reports could occur with just a few dedicated employees in the know (or a few moles).

It's not just the data transfer that has to go unnoticed, but the successful navigating of the access control infrastructure. And even if Google were to be completely in cahoots with the NSA and built a backdoor, wouldn't there have to be a testing suite that would make sure whatever normal changes to Google's code base also didn't inadvertently restrict (or reveal) the back door logic? And then wouldn't there also have to be at least one layer of oversight to make sure that that testing suite itself was maintained but otherwise unnoticed?

But I'm speaking as a layperson here who thinks that the kind of infrastructure Google has would require a framework that would make backdoor access awkward to implement. Just so many things could break across all of Google's servers, otherwise...like this fun incident that most people probably still remember, if you happened to be awake early one morning 3 years ago:

[http://googleblog.blogspot.com/2009/01/this-site-may-harm- yo...](http://googleblog.blogspot.com/2009/01/this-site-may-harm-your- computer-on.html)

> _If you did a Google search between 6:30 a.m. PST and 7:25 a.m. PST this > morning, you likely saw that the message "This site may harm your computer" > accompanied each and every search result. This was clearly an error, and we > are very sorry for the inconvenience caused to our users._ > > _We > periodically update that list and released one such update to the site this > morning. Unfortunately (and here 's the human error), the URL of '/' was > mistakenly checked in as a value to the file and '/' expands to all URLs. > Fortunately, our on-call site reliability team found the problem quickly and > reverted the file._

<comment><USER6> The 'back door' system support isn't as complicated as you make it out to be. Centralized administrative access to user data _must_ exist for support, maintenance, and legal purposes, and it will be implemented throughout the organization without anyone batting an eye.

In addition, internal analytics systems will have reason to tap into data streams/events, as will content-based advertising systems.

All of these things are often designed to provide general interfaces; locking them down is done through generic privilege levels and access controls. The people managing those access controls are few, and may not even know the true purpose for the controls they've authorized. Indeed, someone could requisition the insertion of a content analysis system that was fed user data, appeared to be a legitimate deployment, and yet was actually a core service used to push data to the government.</comment></comment></comment></comment>


Tweeting Too Hard - <AUTHOR> http://tweetingtoohard.com/ <comment><USER2> The All Time Top Self-Important Tweets are both slightly disturbing and highly entertaining. In many cases, it's really difficult to tell if some people are just being ironic, though. There's a fine line.</comment>


My Google Search History Visualized - <AUTHOR> http://lisacharlotterost.github.io/2015/06/20/Searching-through-the-years/ <comment><USER2> Lisa is organizing a data viz meetup in Berlin and has a ton of interesting visualizations on her website as well, make sure to check those out.

<comment><USER3> Oh merci!

</comment></comment><comment><USER4> I actually disagree that this data is irrelevant, in fact if you study the data it tells a story about your search habits that may not be all that obvious even if it's your own. When do you typically search the most, what topics do you search the most/least, where do you search from etc etc.

</comment><comment><USER5> She wont be fooling anyone with her porn searches for her "thesis"

[http://lisacharlotterost.github.io/pic/150620_GoogleSearch_8...](http://lisacharlotterost.github.io/pic/150620_GoogleSearch_8.jpg)</comment>


Netscape's Internet Foundation Classes (1996) - <AUTHOR> https://www.phdcc.com/javaart2.html <comment><USER2> Wow, a blast from the past! 1996, what a year that was.

Sun was freaking out about Microsoft, and announced Java Beans as their vaporware "alternative" to ActiveX. JavaScript had just come onto the scene, then Netscape announced they were going to reimplement Navigator in Java, so they dove into the deep end and came up with IFC, which designed by NeXTStep programmers. A bunch of the original Java team left Sun and formed Marima, and developed the Castanet network push distribution system, and the Bongo user interface editor (like HyperCard for Java, calling the Java compiler incrementally to support dynamic script editing).

[https://people.apache.org/~jim/NewArchitect/webtech/1997/10/...](https://people.apache.org/~jim/NewArchitect/webtech/1997/10/note/index.html)

While I was working at Interval Research Corporation in 1996, after playing around with and reading over the source code and documentation, I wrote up a deep comparison and analysis of Internet Foundation Classes (IFC) versus Marimba Bongo (which was written by Arthur van Hoff, who worked on Java, wrote AWT, and before Java wrote another user interface system for NeWS similar to Bongo and HyperCard in PostScript, called HyperLook), and other related user interface component technologies.

[https://donhopkins.com/home/interval/ifc-vs- bongo.html](https://donhopkins.com/home/interval/ifc-vs-bongo.html)

>This is a comparison of two component frameworks for Java, IFC and Bongo.

>IFC (Internet Foundation Classes) is from NetScape, and is similar NeXTStep, which was written in Objective C. It was written by some former NeXT developers, whose company NetScape bought because they needed a Java toolkit.

>Bongo is from Marimba, and is similar to HyperLook, which was written in NeWS object oriented PostScript. Marimba was founded by some of the original Sun Java developers, who left Sun to form their own company.

[That also compares IFC with Microsoft's ActiveX/OLE/COM/MIDL stuff, and gets into some Java/JavaBeans/J++/CORBA/OpenDoc politics, and includes some comments by Arthur about IFC, AWT, Bongo, JDK 1.1, etc.]

Here's a later article I wrote about HyperLook (that article is still a work in progress, since I haven't finished the comparison to HyperCard and Bongo):

[https://medium.com/@donhopkins/hyperlook-nee-hypernews- nee-g...](https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee- goodnews-99f411e58ce4)

During 1996 I also wrote up a wide ranging survey of the interesting component, plug-in, user interface toolkit, and application framework technology at the time:

[https://donhopkins.com/home/interval/pluggers](https://donhopkins.com/home/interval/pluggers)

An Overview of Plug-In Technology circa March 1996

Don Hopkins, Interval Research Corporation

Index: Requirements Problems Companies Platforms Languages

Software Research

Our Plug-In Requirements

Somebody Else's Problems

Companies

Platforms

Languages

Software

Research

TODO

[https://donhopkins.com/home/interval/pluggers/problems.html](https://donhopkins.com/home/interval/pluggers/problems.html)

Somebody Else's Problems

These are problems that we aren't trying to solve, and that a lot of other people are. We should try to take advantage of other peoples work, instead of re-inventing the wheel.

the component object framework problem (Open Doc, OLE, COM)

the distributed object problem (CORBA, Electric Communities)

the application framework problem (Galaxy, MFC)

the programming language problem (Java and other languages)

the multimedia library problem (ScriptX, QuickTime, DirectX)

the garbage collection problem (COM, Java, ScriptX)

the window system toolkit problem (HyperLook, Java AWT, MFC)

the development environment problem (Metrowerks, MSDEV, Visual Basic)

the web browser problem (NetScape, CyberDog, Explorer)

the database problem (DAO, ODBC, Oracle)

the image editor problem (Photoshop, Premier)

the multimedia 8 track tape player problem (Director)

the killer app problem (Lotus 123, SimCity)

the operating system problem (Windows 95, Netscape)

the pointless standard problem (VRML, COSE)

or any combination of the above (TCL/Tk, ScriptX, NetScape)

Software index:

[https://donhopkins.com/home/interval/pluggers/software.html](https://donhopkins.com/home/interval/pluggers/software.html)

Netscape Navigator:

[https://donhopkins.com/home/interval/pluggers/navigator.html](https://donhopkins.com/home/interval/pluggers/navigator.html)

Java:

[https://donhopkins.com/home/interval/pluggers/java.html](https://donhopkins.com/home/interval/pluggers/java.html)

OLE:

[https://donhopkins.com/home/interval/pluggers/ole.html](https://donhopkins.com/home/interval/pluggers/ole.html)

COM:

[https://donhopkins.com/home/interval/pluggers/com.html](https://donhopkins.com/home/interval/pluggers/com.html)

MediaFlow design discussion, retrospective, and comparisons with other visual programming languages:

[https://donhopkins.com/home/interval/mediaflow- design.html](https://donhopkins.com/home/interval/mediaflow-design.html)

Freaky Putty:

[https://donhopkins.com/home/interval/freaky- putty.html](https://donhopkins.com/home/interval/freaky-putty.html)

<comment><USER3> From the Netscape page:

 _> NetScape plans to be a cross platform virtual operating system, and has embraced Java as its primary extension language in the long term, even though JavaScript (completely different language than Java) is getting a lot of cycles and attention in the short term._

I guess that short term turned out to be a lot longer than anyone anticipated :-D

<comment><USER2> Ha ha! Yes, the launch of Javagator was a lot like watching the Space Shuttle Challenger blow up.

Such glorious plans they had, then Sun and Netscape started bickering about who was going to be on top...

But Rhino, Mozilla and Phoenix eventually rose from the ashes of the Javagator Disaster.

December 30, 1997: Netscape sharpens Javagator plans

[https://www.cnet.com/news/netscape-sharpens-javagator- plans/](https://www.cnet.com/news/netscape-sharpens-javagator-plans/)

>The Internet software company says it will have an all-Java browser ready for network computers and other clients by July.

>[...] Although bandied about by company executives and in the press, the term "Javagator" is strictly slang. The official code name for the browser is Maui, Gong said.

>[...] Moreover, Netscape's move to develop a pure Java browser will put the company's long-standing cross-platform mantra to the test. The extent of the pure Java browser's technological success and market acceptance will most likely serve as a temperature gauge for other developers looking to test the Java waters.

February 25, 1998: Netscape puts Javagator "on hold"

[https://www.itprotoday.com/windows-78/netscape-puts- javagato...](https://www.itprotoday.com/windows-78/netscape-puts-javagator- hold)

>As expected, Netscape has put plans for its 100% Pure Java version of Navigator, dubbed "Javagator", "on hold". The company is hoping that an industry heavyweight with lots of cash--such as Sun or IBM--will finance the project or simply take it off their hands.

February 26, 1998: Netscape's Java browser in doubt

[https://www.zdnet.com/article/netscapes-java-browser-in- doub...](https://www.zdnet.com/article/netscapes-java-browser-in-doubt/)

>Netscape Communications Corp. , still refining its client strategies, has put development of its Pure Java browser - dubbed Javagator - "on hold."

>[...] Javagator was rumored to be a dead project early this year; however, Netscape officials at the January announcement of the company's source-code release plans said it was still an ongoing project.

Well at least that panned out! ;)

February 26, 1998: Whither Crawls Netscape's Javagator?

[https://www.wired.com/1998/02/whither-crawls-netscapes- javag...](https://www.wired.com/1998/02/whither-crawls-netscapes-javagator/)

[You know a rumor's true when they vigorously DENY it in upper case!]

>NETSCAPE OFFICIALS DENIED a report in the computer trade press today that the company has suspended work on Javagator, the nickname for Netscape's all-Java version of its Navigator browser. But their comments shed little light on the future of the special browser project.

>"Nothing has changed," said Netscape spokeswoman Andrea Cook, referring to the company's position on the project, officially codenamed Maui.

>[...] Sources close to Netscape say that during formation of the company's plans to release its source code, there was a professed desire to suspend Javagator's development, but partner companies dissuaded the company from doing so.

>IBM representatives confirm that it and other companies with interest in the success of network computers (NC) are reviewing Netscape's call for help in the funding and development of Javagator.

>[...] There has long been speculation that the Maui project was being de- emphasized at Netscape, partly due to the cool reception of NCs in the market.

>"We've anticipated it for the simple reason that there's no money in browsers and that Netscape has released a free source version of Communicator," said Forrester's Schadler. "The only place you can run a Javagator today is on an NC - and there ain't none."

>[...] With the announcement that it would begin free distribution of its browser software and source code, the company also said it would stop developing the Java Virtual Machine for its browser. But there are financial justifications to cut non-critical projects like Javagator, too, after the company suffered a a US$88 million, fourth-quarter loss in 1997.

>Schadler said Netscape has to turn over Javagator development, at least as a separate subsidiary, for the added reason that continuing the project in-house undermines the plan to free its source code, starting with Communicator 5.0.

>"The nightmare to the [Communicator 5.0] development community is the prospect of Netscape developing another code base," Schadler said. The company has to show commitment solely to the Communicator code that developers would be contributing too, he said.

April 3, 1998: Will Javagator be reborn as Jazilla?

[https://www.wired.com/1998/04/will-javagator-be-reborn-as- ja...](https://www.wired.com/1998/04/will-javagator-be-reborn-as-jazilla/)

>A LOOSE COLLECTION of Java enthusiasts from around the world have seized upon Netscape's recent release of Communicator 5 source code, and are busily hacking away on Jazilla – a Java-based version of the browser.

>The news comes just weeks after Netscape and Sun Microsystems acknowledged that they were seeking partners to take over "Javagator," a proposed 100-percent-pure Java version of Netscape's browser. Now, eager developers have taken matters into their own hands and are porting the Netscape C++ code, called Mozilla, to Java.

>[...] "The Javagator project didn't go very well, so this is a reincarnation of that – we've had email back and forth with the people who worked on it, and they explained all of their challenges," said Rodd.

>"The reason [Javagator] failed was organizational – it wasn't a priority," said Rodd.

Fortunately, Netscape's Java Rhino JavaScript engine managed to make it out into the world:

[https://en.wikipedia.org/wiki/Rhino_(JavaScript_engine)](https://en.wikipedia.org/wiki/Rhino_\(JavaScript_engine\))

>The Rhino project was started at Netscape in 1997. At the time, Netscape was planning to produce a version of Netscape Navigator written fully in Java and so it needed an implementation of JavaScript written in Java. When Netscape stopped work on Javagator, as it was called, the Rhino project was finished as a JavaScript engine. Since then, a couple of major companies (including Sun Microsystems) have licensed Rhino for use in their products and paid Netscape to do so, allowing work to continue on it.

Javascript Jabber: 124 JSJ The Origin of Javascript with Brendan Eich

[https://dev.to/adventuresinangular/aia-206-the-origin-of- jav...](https://dev.to/adventuresinangular/aia-206-the-origin-of-javascript- with-brendan-eich)

[https://devchat.cachefly.net/javascriptjabber/transcript-124...](https://devchat.cachefly.net/javascriptjabber/transcript-124-jsj- the-origin-of-javascript-with-brendan-eich-js-jabber.pdf)

Brendan Eich:

And Netscape had acquired a company called Digital Styles that was known for rendering engines of some kind. And they started doing a next-generation engine in '97 I think based on Java. And they thought, Netscape's doing the Javagator, Netscape and Sun are going to kill Windows, Java's going to be the future on the client side. Let's build a Java engine. When Java got the plug pulled from it in late '97, when the Electrical Fire JVM that Waldemar Horwat was building at Netscape got cancelled, when Sun went away because Netscape was basically going out of business slowly, the team that was doing this Java engine, this Java web engine, rendering engine called Raptor said, "Oh, we better rewrite it in," maybe it was called Xena, I forget. They said, "We better rewrite it in C++." And then they said, "Let's sell it to Mozilla."

<comment><AUTHOR> The last bit is interesting. I hadn't heard of the Electrical Fire JVM and was wondering how they could possibly think that implementing the browser in Java could ever be practical, with its horrible performance at the time - but the answer is apparently that Netscape were writing their own JVM with a JIT compiler?

</comment></comment></comment></comment><comment><USER4> > The complete classes are over 500kB; no one will want to download these on- > line

Ah, the good old days.

I can't wait to see how huge the runtimes we'll be expected to download for WebAssembly will be.

<comment><USER5> I'm hoping eventually we'll have some form of true content-addressable storage for the web - so browsers cache content by hash instead of address. That way we wouldn't be re-downloading jQuery-3.0.6-min.js for each website we visit (that isn't using a CDN), but only once - the same could be done with WebAssembly - assuming it doesn't require monolithic statically linked blobs.

<comment><USER6> Browsers have the option to do this for javascript: with subresource integrity [0] you can add the sha256 hash of the script to a script tag. The browser could check that hash against its cache, in case it's yet another copy of jQuery-3.0.6-min.js.

No browser does this because it opens up a huge data leak: I can simply add some script to my website, claim it has the hash of the javascript used by PornHub and measure the loading time of the script (or simply whether the integrity check fails) to find out if you visited PornHub.

0: [https://developer.mozilla.org/en- US/docs/Web/Security/Subres...](https://developer.mozilla.org/en- US/docs/Web/Security/Subresource_Integrity)

<comment><USER7> News to me, but yea that's an excellently described reason that why that isn't used. The natural inclination would be to say "well, we just need a central repository of shared libs" but now you move to a familiar spot of the big wheel of problems we keep trying to fix.

</comment></comment></comment></comment><comment><USER8> It's funny how you can look back at even Smalltalk 70, and contemplate that for more than 50 years, we've all wanted the same damn thing, had it in the palm of our hand, realized more than a proof of concept, but even right now, today, struggle to agree on how to deliver it.

To get web GL and canvas access on desktop Safari, you have to download the technology preview package separately. Linux systems, lotsa luck with your graphics drivers. Windows? I think you might still need Flash and Silverlight installed, and Java SE running it's plugin on a developer preview of Edge or whatever.

FFS, please shoot me now. I no longer wish to gaze upon such abominations.

<comment> Smalltalk-70 So, Smalltalk didn't _really_ exist until 1971/72...

[http://worrydream.com/EarlyHistoryOfSmalltalk/](http://worrydream.com/EarlyHistoryOfSmalltalk/)

      Right after New Years 1971,
      Bob Taylor scored an enormous
      coup by attracting most of
      the struggling Berkeley
      Computer Corp to PARC.

      In the summer of '71 I refined
      the KiddiKomp idea into a
      tighter design called miniCOM.
      It used a bit-slice approach
      like the NOVA 1200, had a
      bit-map display, a pointing
      device, a choice of "secondary" (
      really tertiary) storages,
      and a language I now called
      "Smalltalk" - as in "programming
      should be a matter of ..."
      and "children should program in ...".

      This Smalltalk language (
      today labeled -71) was very
      influenced by FLEX, PLANNER,
      LOGO, META II, and my own
      derivatives from them. It
      was a kind of parser with
      object-attachment that
      executed tokens directly.

But, rounding errors and such, so maybe 1970 is kinda okay...

</comment></comment><comment><USER9> I thought it was the _educational_ type of class... but then again, I shouldn't be surprised given that this was the mid-90s, pretty much the height of the OOP craze.

<comment><USER2> Both the name and the software IFC ("Internet Foundation Classes") were intended to be the Internet's answer to Microsoft's MFC ("Microsoft Foundation Classes").

I recall hearing that they also considered calling it NFC ("Netscape Foundation Classes"), but they settled on IFC because they wanted it sound more inclusive and Internetty.

Other than raising that one middle finger to Microsoft, I can understand why name is confusing: the "Internet Foundation" sounds like a non-profit educational foundation that teaches classes in computer networking.

I know somebody who was admitted into the UK on an educational teaching visa, ostensibly to teach classes, when he was actually developing commercial software, not teaching students. Technically he WAS actually teaching classes -- just to computers.

</comment></comment><comment><AUTHOR> For screenshots, see the chapter "Using components" in the documentation: [https://stuff.mit.edu/afs/sipb/project/java/packages/ifc/doc...](https://stuff.mit.edu/afs/sipb/project/java/packages/ifc/documentation/developerguide/)

</comment><comment><USER10> Java in the browser almost had the staying power of Flash, or even the Javascript + Canvas we have today.

</comment><comment><USER11> IFC was the start of Swing...</comment>