Hacker Timesnew | past | comments | ask | show | jobs | submit | niroze's commentslogin

I can't remember the last time I depended on Google Maps for directions.


Anyone still use Maps in the car? I use Waze.


Yes, only use maps since Waze will redirect you onto surface streets to save an insignificant amount of time with a large amount of inconvenience.


Yes. I've tried Waze, and the only advantage it has is showing where cops are (which isn't very reliable, the data is frequently out of date and it shows cops where there aren't any, or doesn't show ones that set up their speed trap recently or are on a rural road).

Google Maps will show you alternative routes as you drive, telling you how much extra time they'll take (or save). Waze does not do this, it only shows you one route. I frequently want to take a slightly different route than the one shown, perhaps because I'm coming to a stoplight and it shows the alternate route of turning right to be "similar ETA", and by turning right I can avoid spending 1-3 minutes at the light.

Basically, Waze is just too minimalist. I want more information, not less.


Waze and Google Maps are the same team run by the same management.


we know. but they are vastly different.


Talent isn't the problem, capital is.


I wish I could upvote this many times. Great reply. Agree 100% and thanks for speaking for us that work behind the scenes to make things happen.


you are upvoting [things that are not true about us]


> you are upvoting nonsense

I don't think this is a helpful reply.

Since it sounds like you're associated with the project, can you address some of the specific concerns mentioned, like reliability? Do you disagree that hundreds of thousands of dollars are required for five nines connectivity? Do you disagree that that level of reliability is required for your customers etc.


No you don't need hundreds of thousands. You do need tens of thousands. We've had no downtime this year at supernode1. Yes reliability is a big priority, but it is not a big priority for the big ISPs in NYC. Time Warner Cable (now Spectrum) has barely two nines. In Manhattan it would go down in the East Village after every large storm. We are already providing faster more reliable connections than this.


Thanks. This seems like a cool project.

Do you know what the cost per user is currently?

What frequency do the point-to-point links run at? Have you considered using some sort of lower frequency packet radio for longer distance links, perhaps to other nearby nodes?


Our recurring costs are only for the lease at supernode1, which is around $1000/month. Divide that by our member node count (158) multiplied by users of each node ~4, 1000/(158*4)gives you under $2/month per user. Members usually pay for their own routers so that isn't included. To set up the supernode was about a $10K one-off charge for install fees, servers and antennas.

DE-CIX, our IXP, donated bandwidth to us, and we have transit also donated from Packet Host and WebAir. We actually pay nothing for bandwidth. Probably one day we will pay but it is not that expensive if you do this at an IXP and use peering.

We have an AirFiber pair that is 24Ghz, but all of our sectors are 5Ghz wifi.


> DE-CIX, our IXP, donated bandwidth to us, and we have transit also donated from Packet Host and WebAir.

What is the incentive for them to donate bandwidth/transit to you? Your non-profit status? Do they get something else in return?


We get a lot of support from the NYC networking community, and we have a lot of friends at the NYNOG meetups. Everyone is very helpful and they also want the big ISPs to have some competition, so we get donations from quite a few people. Some also join our network and get nodes on their own roofs and help with other installs!

DE-CIX is the biggest IXP and they measure their network in terabits/sec. It is not a big deal for them to donate us a 1 gig connection. (it's a big deal for us!) Eventually we may upgrade it to 10 gig.


So you're sharing a 1G connection between 600-ish users - all presumably on 802.11ac 450Mbps (or 1.3Gbps if they've got three-stream?) connections?

How often do you see full saturation on that link? I'm guessing if all 600 of your users all tried to stream one stream of $TV-show-de-jour at once they'd barely get 16Mbps each? Can one user's home office full of Apple gear flood the bandwidth downloading a dozen Apple software updates simultaneously?


That is a pretty low ratio in terms of over-subscription, on many cable networks you'd have 24 downstream Docsis channels @ 38Mbps usable per channel, for 912Mbps usable across all houses on said node. A single node often supports 500 homes, and that 912Mbps of capacity carries switched digital video, voice & data traffic.

Cable companies consider these high ratios to be quite embarrassing actually, as it shows how crummy their networks are: https://www.dslreports.com/forum/r31258251-Speed-Issues-Char...


Netflix standard streaming is 3Mbps, so even with your math (which isn't how bandwidth works) everyone is happy.

We've never come anywhere near saturating our gig connection. We monitor it. Each building is limited to their own rooftop connection which is an average 100Mbps, so they can't do more than that if they tried. The thing is not everyone is downloading a file at the same time, and streaming uses much less bandwidth than downloading. From Netflix site-

0.5 Megabits per second - Required broadband connection speed

1.5 Megabits per second - Recommended broadband connection speed

3.0 Megabits per second - Recommended for SD quality

5.0 Megabits per second - Recommended for HD quality

25 Megabits per second - Recommended for Ultra HD quality


Ah, so you get free bandwidth from people that want to balance their traffic for better peering contracts. That's clever. Probably not a helpful model for other areas that aren't bandwidth centers like NYC, and should probably be more out there when you're evangelizing so people understand you're getting a large portion of your operating expenses donated...

I have to assume another cost that's not noted is roof rights. That's not free - most people either have to pay or give the property management a kickback.

NYC is an interesting place for this - if you live in Manhattan, you clearly can afford the $80 for 1Gb/s FiOS or $40 for 100Mb/s FiOS or whatever Spectrum is charging. It would be way more interesting to plop this in a rust-belt city where people are on a paycheck-to-paycheck salary...


FWIW, I have many many companies as customers for whom I've offered pricing for three, four, and five nines of reliability (for mobile app backends, not residential ISP service, but lets run with it any way).

Not a single one of them has ever signed up for anything more expensive than three nines. Only a few have even discussed the differences between 3 and 4 nines solutions.

I'm reasonably sure I'd choose the same for my home internet connection - if offered representative pricing based on costs of providing 3, 4, or 5 nines, or possibly even 2 nines - I'd choose the least expensive because losing a few minutes or even occasionally 15mins a day of connectivity at home (or maybe more realistically an ~8 hour outage per month) really isn't going to bug me greatly - not if it's two or more orders of magnitude cheaper than a four of five nines connection.


Indeed! Their expertise and quality are something I truly value. Percona Server is killer.


Wait to see when Percona Server 8 comes out :)


Exciting!


In a similar manner as Alpha Zero, Leela is growing by playing games with people and with itself (mostly). It is already a strong expert or low rated master at this point.

Youtube chess (masters) like ChessNetwork and Kingcrusher have videos of them playing it.

- https://www.youtube.com/watch?v=Z_-qtuuhLnI - https://www.youtube.com/watch?v=gLvxGXNLs-0

You can help make it stronger by donating your CPU/GPU cycles!


It isn't a LISP :P


There is, however, http://www.aosabook.org/en/pypy.html , which is indeed self-hosting.


You don't need a language to be a LISP in order for them to be able to interpret themselves. There are several Java interpreters which can interpret themselves, for example.


You just need it to be a Lisp in order to do it in such a way that you get confused whether you're in the interpreted language or the host one.


Byterun confuses host and interpreter in plenty of places.

It uses the host Python for attribute resolution (all code in getters and setters runs on the host), exception handling (which combines with the previous point to make some NameErrors impossible to catch) and even function calls (but all functions are wrapped so that their _call__ switches back to byterun as the interpreter).

Because of that confusion, byterun isn't very useful if you want to be really independent from the host interpreter; it's just too easy to escape from the VM. As a learning exercise however, it is helpful for understanding Python's innards at a level higher than C.


I mean actually getting confused.


Do they interpret java, the programming language, or java bytecode? Not the same thing. lisp being homoiconic, it's much easier to implement a metaciruclar evaluator.

https://en.wikipedia.org/wiki/Homoiconicity


If I gave you a function that accepted Java source code as text and interpreted it, how would you detect that I was first converting it to Java bytecode and then interpreting that bytecode?

You couldn't, so it's an irrelevant internal detail. The function interprets Java source code.


> If I gave you a function that accepted Java source code as text and interpreted it, how would you detect that I was first converting it to Java bytecode and then interpreting that bytecode?

> You couldn't, so it's an irrelevant internal detail. The function interprets Java source code.

In a Lisp interpreter the actual source code is Lisp data, not text. One can give the function access to its source code, allow it to inspect it or even to change it - while the interpreter is executing this source code.

In a Lisp interpreter, the code can even modify the source code (we are not talking about the byte-code or machine code) while it is running.

    CL-USER 20 > (let ((code (copy-tree '(+ 1 2 bar))))
                   `(defun foo (bar)
                      (print ,code)
                      (unless (eq (first ',code) '-)
                        (setf (first ',code) '-)
                        (foo bar))
                      (values)))
    (DEFUN FOO (BAR) (PRINT (+ 1 2 BAR)) (UNLESS (EQ (FIRST (QUOTE (+ 1 2 BAR))) (QUOTE -)) (SETF (FIRST (QUOTE (+ 1 2 BAR))) (QUOTE -)) (FOO BAR)) (VALUES))

    CL-USER 21 > (eval *)
    FOO

    CL-USER 22 > (foo 41)

    44 
    -42 
As you can see the function modified itself so that the operator + was replaced with a - and then called itself again with the same argument.

If we now look at the function, we can see that it was indeed changing itself:

    CL-USER 23 > (pprint (function-lambda-expression #'foo))

    (LAMBDA (BAR)
      (DECLARE (SYSTEM::SOURCE-LEVEL #<EQ Hash Table{0} 41B04012D3>))
      (DECLARE (LAMBDA-NAME FOO))
      (PRINT (- 1 2 BAR))
      (UNLESS (EQ (FIRST '(- 1 2 BAR)) '-) (SETF (FIRST '(- 1 2 BAR)) '-) (FOO BAR))
      (VALUES))
The PRINTED expression value is now computed with the - operator.

The interpreted execution itself allows also different things then the compiled execution. For example if we have a break point, we can see the actual source code currently executed and we can change it while in the break point and then resume execution. Since the interpreter runs the source code, we can also can modify the interpreter to do something else with the source code, while it is executing it - like recording it or tracing it or stepping it.


Yeah I know about how Lisp works - I have a PhD in metaprogramming using interpreters and meta-circular compilers. I just don't agree it's really materially different.


I don't have a PhD in metaprogramming, but I see the difference between a interpreted Lisp code and compiled code during development quite a lot.


I agree with that.

A compiler takes code to transform it into another medium: binary executable, code (transpiler), ...

A interpreter takes code to evaluate it.

All the self proclaimed meta circular or "self-hosted" implementations of java that i have seen actually require an external compiler (eg: javac from the JDK). They are in reality implementations of the java virtual machine, not the language; You can't feed java code to them to execute. they are not even self-hosted.


Not sure, but I think I read recently (maybe in the Rebol docs) that it is also a homoiconic language. And I think I also read that Rebol programs can interpret chunks of Rebol code passed to them.



Doesn't need to be a Lisp. All kinds of interpreters can interpret themselves if they're written in the same language -- similar to bootstraping a compiler.


It was a geek joke, I'm not serious. I've written plenty of both languages, even in .gov.

Why so serious?!


Pretty much all of this is fiction.


Is there data with that, or do paid customers generally not have a problem with it?

Open sourcing their work is a courtesy and not a right.


I paid for it.


Really cool technology, but I wish the Linux was a first-class citizen for this, too.

I know Microsoft is making progress support Linux more and more, and they have made Core .NET available for Linux https://www.microsoft.com/net/download/linux

I get they're supporting what they know best. A geek can dream.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: