* OS and scheduler v/s low-level partially documented SDK
* 2GB RAM v/s 100s of KB in ESP8266
* 16GB Flash v/s couple of MB Flash on ESP8266
* All other goodies: 4USB ports, Audio/Video, HDMI, Camera, SATA, IR
* 15$ v/s 5$
1,491 karma · joined July 3, 2013
Email: ${username}9@gmail.com
E.g, if my username on HN were to be xyz, then my email address would be xyz9@gmail.com
* OS and scheduler v/s low-level partially documented SDK
* 2GB RAM v/s 100s of KB in ESP8266
* 16GB Flash v/s couple of MB Flash on ESP8266
* All other goodies: 4USB ports, Audio/Video, HDMI, Camera, SATA, IR
* 15$ v/s 5$
We are building one [1]. Contributions are welcome! In the meanwhile, the ungoogled-chromium project in combination with uMatrix is I think a great way to transition away from Chromium.
... though it hasn't been recently updated.
We are developing `gngr` in the belief that privacy should be engineered into the browser, not worked around:
A detailed comparison is missing, however.
In essence, the resolved address of a request will be checked if it lies in a reserved block. If so, further policy checks will be made for the resolved address, and the IP address will be pinned for that HTTP request.
Would appreciate feedback here, or on the issue.
Our current logo and website design, if you can call it that, is a developer created, few days effort. We would be very happy with some professional design help.
Notes:
* gngr is short for ginger, the spice.
* The theme would be "spicy, but not shiny".
[1]: https://gngr.info and https://github.com/uprootlabs/gngr
[1] https://uprootlabs.github.io/poly-flif/polyflif-sample.htmlWhen encoded lossily, FLIF is competent with JPEG on still images, and ofcourse very competetent with GIFs.
The same goal could also be achieved with multiple threads (webworkers for example). But the promises and async/await syntax is more convenient.
http://nlq.lavadip.com/servlet/about
Although, kueri seems more polished, and the ability to auto-complete mid-sentence is pretty neat.
But your question is about even more finer control. Some thoughts:
* I believe some of these APIs shouldn't be implemented at all, or should have very limited precision. Eg, Battery Status need not be implemented at all, or if implemented, should return just two values: [high, low].
* In our Request Manager, we could add an extra column for advanced APIs. This would include, for example, Canvas, WebRTC, etc.
* @captainmuon's idea of having two different profiles (document/app) is interesting. Though the choice of profile should be on client side. The default should be conservative (document) and the user should get to choose if a site should be promoted to app or not.
As it happens, this particular attack doesn't work in gngr [0]. The example uses an absolute positioned div to put extra text out of viewport, which is not picked up by gngr when selecting text.
gngr also doesn't enable Javascript by default, so attacks such as that described in OP are not possible from random site visits. (I recommend uBlock / uMatrix for other browsers).
However, the attack surface is really quite large here. CSS directives such as `opacity: 0.001` could be easily used to mask extra text.
[0]: https://gngr.info/
and https://github.com/UprootLabs/gngr
[1]: https://thejh.net/misc/website-terminal-copy-pasteAs a very crude analogy: shells and editors make it easy to use the filesystem. But we can't contribute the shell / editor to the filesystem! They sit in different layers of the stack.
(I contribute to both Javapoly and Doppio)
Javapoly tries to make Doppio easier to use (in my subjective opinion):
* easier loading of jars, classes and Java source code * a promise based async interface to Java methods * automatic marshaling of primitive values between JS and Java lands * a proxy based interface into the Java namespace.
https://gist.github.com/hrj/e9ed0d73d2daaa98b2d2
Been using that for more than an year with great results.
I also have another version of it: https://gist.github.com/hrj/6561271
(this version cuts the green and blue equally)
It encourages tinkering which is especially important for students.
Also, many other general benefits that open-source brings. For example, open source code is more trustable than closed source.
Open, federated protocol, multiple client and server implementations, integrated IRC bridge.
# Familiarity with:
* Java eco-system, including Java 8, Scala and Kotlin languages.
* Experience developing server, desktop and mobile (Android) apps.
* Familiarity with systems programming (networking stacks, video codecs, Linux kernel mode programming) with C, C++, in a past life.
* I can also find my way around JS, python, SQL.
# My Github profile: http://github.com/hrj
I am passionately involved with some open-source projects for more than an year now, and need some moolah to keep going. Looking for short-term gigs (less than 6 months).
The cost of living is low here; so my rates are reasonable. Email address in profile.
val e = operator_pipe(() => p, () => e)
Note that the operator_pipe() itself returns a function, which gets assigned as a value to `e`. So there is lots of implicit laziness.
In Scala, to express a recursive parser combinator:
val e = p | e
You can't define such a thing in Kotlin. Atleast, this was the case the last time I looked at it.
Am I understanding this right?
Aside, I realize that there are no easy solutions for this. As the paper also says, it is hard to identify which requests belong to third parties because of the prevalent practice of using third-party CDNs.
I believe one approach is to disable cookies, javascripts and other sensitive functionality from all third-parties, without any biases or curation, and to provide the tools to enable them selectively. The only drawback is that it won't fly with non-tech-savvy users. However, I think the tech-savvy segment is large enough and growing, to make it worthwhile.
This is the approach that the uMatrix addon, and gngr, the browser that we are developing, take. It would make me very happy if other browsers integrate such a facility within them.
[1]: https://kontaxis.github.io/trackingprotectionfirefox/resourc...
> But all those other languages include explicit support for null pointers for a good reason: they’re extremely useful. [....] The problem with null pointers is that it’s easy to forget to check for them.
There is no inherent reason for that; just that mainstream languages which support `null` haven't been checking `null` usage. Some of the recent ones do. For example, Kotlin has non-nullable types by default, and null types have to be explicitly marked and checked for null-ness.
Even for Java, null analysis is built into Eclipse with the help of annotations. Though, ofcourse, it would be far nicer to have it baked into the language.