Honestly who cares if there are fake accounts (as a user). If you are an investor I could possibly see interest, but even then who really cares as long as facebook looks like its big and still growing that's all that matters.
I use YAML as human-editable JSON - especially for non-programmers (although it's surely more pleasant to write even for programmers).
I would like a clearly documented YAML subset that left out some of the more complex stuff and avoided a few 'more than one way to do it' features. That would go a long way to removing some of the criticism of YAML with very little cost in functionality.
My experience with YAML is that it's very temperamental with respect to /whitespace/ and that your editor might try to get too smart and damage the document.
JSON, if you see a pattern and follow the pattern, is likely to work.
JSON CAN be stored in a 'pretty' way, with extra whitespace, which makes it even more obvious how to format a document; that's frequently how I write out small bootstrap config files (IE the database connection string to get the main config from).
You see, as much as you have strong feelings about whitespace (to the extent of reaching for your caps-lock key), so do I. I personally feel it's a great loss to code style and readability that Python become an outlier in terms of arguing for significant whitespace.
But this isn't the time for that tired old debate. I won't convince you any more than I'll convince someone about the One True Brace Style or Vim vs EMACS (actually - hold on. I can't stand either of them).
Python's mistake is not including a default-coding-style formatting system with the language (or if it does, making it so obscure I don't know about it).
The formatter should ALSO, when cleaning up the code, see if it compiles with four spaces equal to a tab, and then if not, if eight spaces is a tab.
I'd prefer that levels of intent be a tab (not space; if you're going to make presentation of indent important make it something the client CAN modify without changing the meaning of the code).
Can you give an example of where an editor has damaged your documents? I've never had that experience when editing YAML with Vim, Emacs, or TextMate… which editor are you using?
Focusing on the editor won't help because then you're adding an unexpected constraint on the user.
I think I happened to experience it using kwrite, or maybe also notepad++ when I had to edit something from a non-default computer once. The point still remains that editors which /try/ to be smart and helpfully correct, convert, or automatically indent things, won't always do it the way you might have wanted. What works in one context won't work in others, and having context sensitive whitespace handling can bite you when the program isn't aware of which context it's supposed to be crafting the document in (EG when you start a new one or copy an example from the web).
"Unexpected constraint" is a very curious choice of words. In my experience, when you teach novice programmers, braces and semicolons are the unexpected constraints. Line breaks and indentation is a bit more expected to the novice programmer. ("Optional semicolons" like in JavaScript seem to be the worst of both worlds.)
Programmers with experience will expect things to behave like the languages they know. If you are experienced with Python, Haskell, or YAML, they won't seem like surprises.
Funny that Notepad++ and Kwrite have given you problems, those are usually fairly good editors and should be able to write Python / Haskell / YAML just fine. I wonder what happened to cause those problems.
I hate it when languages and formats care about whitespace beyond just whether there is some between two tokens.
Not being able to use tabs in Haskell is annoying for example. And I find having to indent stuff so it is off the page to the right to get stuff to compile unsatisfactory.
Same with YAML. I detest a format where indenting matters. It shouldn't matter.
I get that you hate Haskell, Python, and YAML. Could you explain why you are sharing this hate with everyone here? I mean, what is the point? There are lots of things I hate, but I don't revel in that hatred.
server
path: /core/www/
host: example.com
port: 80
service: true
proxy
host: proxy.example.com
port: 8080
authentication: plain
description
:Primary web-facing server
:Provides commerce-related functionality
server
...
proxy host="proxy.example.com" port=8080
authentication: plain
There's no character escaping, brackets, distinction between attributes and elements, data types (up to the one parsing the document how to decode values), etc. BOM-free UTF-8 is mandatory.
It's the bare minimum for an extensible tree-based data structure, but I threw in three ways to assign values to nodes to help craft smaller documents. Turns out it's hugely important to be able to assign multiple child nodes on the same line as the parent for certain classes of documents.
My implementation of BML uses my string library, so I can't offer a portable parser. But it shouldn't take more than an hour or two to write a BML parser.
> Downside is that I have no clue how to market it, and I hate writing documentation, so there's only a few people using it.
You could always write up a quick demo program (something anyone can just clone, compile, and execute), throw in a few example files, and submit your repository as a Show HN. That might get some attention at least.
>I would like a clearly documented YAML subset that left out some of the more complex stuff and avoided a few 'more than one way to do it' features.
I looked for one some months ago and the closest I found was https://github.com/crdoconnor/dumbyaml, which is a parser implementation, not a standard. Out of projects approaching the issue from the opposite angle ("smarter JSON"), I think HOCON (https://github.com/typesafehub/config/blob/master/HOCON.md) is the most promising. Compared to Hjson (http://hjson.org/), it is less likely to confuse the user with how trailing commas are treated in unquoted strings and generally appears to not compromise on strictness for convenience.
That said, I agree with TillE: as soon as a configuration file format I work on needs any logic or expressions I will strongly consider an embedded scripting language like Lua or Tcl in order to avoid instantiating Greenspun's tenth rule for configuration.
I completely agree with this. I use YAML as a way to write structured data that may be serialized into JSON at another endpoint (mostly because JSON is much more universal and what does it matter to me how exactly my data is serialized by another machine). I know of its other features but haven't found the need to try them, yet every security hole those features make possible ends up limiting the acceptance of YAML.
We need this so much. YAML is by far the best choice for human-readable and editable serialization, but the bells and whistles are really unnecessary and hold back innovation among the parser packages.
Not TillE, but I suspect the point is you can exchange data with Lua tables just as easily as JSON and because you would do it by just embedding the Lua interpreter you can also send Lua functions around with the data and/or process the data in Lua before making it accessible from the actual program.
Thanks. I was looking at the process to process data sharing that you would use YAML or JSON for and how Lua would be used. It's never occurred to me to serialize a table and send it. I'll put that on the stack of things to research.
It's not doing internal positioning with Channel State Information (CSI), but there are folks that are [1]. The approach in FIND is different [2] - FIND just uses RSSI+MAC information which works great on mobile devices and simple esp8266 chips and doesn't require code for the specific network interface. As far as I know you have to write some network card specific code to be able to use CSI.
Sorry! Apple is very restrictive. iOS 9+ is supports access to WiFi RSSI, but requires permission and approval from Apple. We requested permission 3 weeks ago and no word yet.
Does anyone know of a better channel through which to pursue this?