ECMAScript 6 compiler and Visual Studio Code support
Hi team,
Over the course of this project, we have designed, engineered and tested a lot of hardware and software. We have purchased components for AGENT Smartwatch rewards. We have built out an assembly and service center for AGENT Smartwatches, as promised, in the USA. Unfortunately we have also really struggled on the watch case design front, and our watch case design team has experienced significant setbacks.
We have also been able to evolve AGENT technology beyond the original software we demoed and which was analyzed in-person by backers during the fundraising campaign and at several public events. In today's update, I will show you some of the ongoing work that our team has done to make the developer experience for AGENT Smartwatches even better—and provide you with a download link if you would like to use some of the work in your own maker and wearable IoT projects.
I want to be very clear regarding expectations on technology work beyond that which was originally promised: Secret Labs has taken on a significant amount of debt to cover burn rate and cost overruns on this project related to the watch case design troubles, to cover lease and debt payments on the service center, etc. With that, our technology team has been able to build some cool new technology for AGENT Smartwatch rewards—but the budget for ongoing (non-core) technology development is very limited (i.e. we are only be able to build part of the new technology prior to/without funding from retail sales).
ECMAScript 6 compiler
One of the projects we have put some significant effort behind is expanding the AGENT Smartwatch development platform. From day one, we have had really great support for C# developers. We really love C# and we really love C# developers. But a lot of the world's developers write code in JavaScript—and we have been working on a from-the-ground-up implementation of ECMAScript 6 (commonly referred to as JavaScript) targeting the AGENT Smartwatch's runtime.
To be clear, this is not a small project. It's an enormous project. This is something that I would have loved to announce as an official feature for AGENT OS 2.0—but again, on the expectations front: late last year when the severe defects in House of Horology's work became more clear, I had to pull funding from this compiler project for the time being to focus available resources on final integration and solving the watch case design issues. We can evaluate returning to this work later.
Secret Labs has published source code for the first component of the ECMAScript 6 compiler over on GitHub.
https://github.com/agentwatches/EcmaScriptCompiler
Compilers are specialized, complicated beasts. I could write pages of technical details about how a company builds a compiler, but let me summarize it here to (over-)simplify things a bit.
For a device like the AGENT Smartwatch, an ECMAScript compiler goes through the following steps to turn ECMAScript ("JavaScript") code into binary code which the device can execute as a (compiled or interpreted) app:
- Lexical scanning/parsing
- (Abstract) syntax tree building
- Stack analysis and type checking
- Intermediate code generation (and optimization)
Lexical parsing is the process of breaking source code down into tokens which, as an analogy, can be thought of like words. The line of source code "a = b + c;" would be broken down into "a", "=", "b", "+", "c", and ";". If we were parsing the equivalent English sentence, we would similarly break down "A equals B plus C" into "A", "equals", "B", "plus", and "C".
At first glance, lexical parsing seems pretty straight-forward: just chop apart the source code anywhere there is a space. But the reality is a bit more nuanced: programming languages have concepts of white space (spaces, blank lines, and in the case of ECMAScript some extra Unicode white space characters). Literal strings and regular expressions and template substitution tails can contain characters which would otherwise be ignored white space; and sometimes software engineers like adding extra white space or leaving out the white space entirely, so the lexical parser needs to understand that "a=b + c;" means the same thing as "a = b + c ;" and "a=b+c;".
Compilers understand the type of each token (identifier, white space, reserved words, literals, operators, etc.)—similar to how we understand the type of each words in a sentence (nouns, verbs, punctuation, etc.).
Ideally a lexical scanner (parser) should also be able to produce a token list which can be converted back into the original source code (to enable a rich debugging experience). So the lexer (lexical parser) needs to store white space as trivia tokens. And it needs to store the original code sequences used for unicode values (character substitution).
Finally, ECMAScript lexers also need to be able to understand the difference between reserved keywords (programming tokens which cannot be used as placeholders for data), Null and Boolean literals, identifiers (placeholders for data), etc.
There is a specification for the language grammar of ECMAScript 6 (formally known as ECMAScript 2015) available which our lexical parser implementation is based on:
http://www.ecma-international.org/ecma-262/6.0
Here is a screenshot of our lexical scanner at work, breaking down one of our source code samples into tokens:
As the next step in the compilation process, the abstract syntax tree builder uses the token list built by the lexical analyzer to make sense of what each component of the source code "sentence" does—which should sound pretty familiar to those who spent time in English classes breaking sentences down into subjects, verbs, predicates, etc.
After the compiler has built an abstract syntax tree (representing both the type of each token and how those tokens build the logic of an app, the compiler can then analyze how all those sentences of source code interrelate with stack analysis and can make sure that the tokens are being used consistently with type checking.
Finally, the compiler takes all the tokens and syntax and structure as input and generates binary code which the runtime can understand and execute.
For today, we have a nice lexical scanner for ECMAScript apps on AGENT Smartwatches. We have released the source code as public domain so those of you who are makers or tinkerers and would like to use this component in your own projects or in ECMAScript compiler/interpreter implementations are free to do so without restriction. This work could be expanded in the far future to running natively-compiled JavaScript apps on tiny button-cell-powered wearable widgets that run for years on a battery—but that would require further optimization and an appropriate native .NET compiler in addition to the remaining compiler work.
Visual Studio Code support
One of the really exciting new projects over at Microsoft is Visual Studio Code, a cross-platform code editor that runs on Mac and Linux. This brings both C# and JavaScript programming to legions of new software developers on all three major platforms.
I really wanted to provide both JavaScript and C# developers with tools enabling them to develop AGENT Smartwatch watch apps on Mac and Linux. One of the projects I worked on personally reverse engineered the Mono (C#) and NodeJS (JavaScript) debug protocols which Visual Studio Code uses on the Mac. The theory here is that I want to enable Mac developers to seamlessly edit, deploy and debug apps right from their Macs.
Here are a few screenshots of the Mono debug analyzer, both the source code and an action shot running on my old Macbook. This work is not funded—but hopefully and conceivably could provide our project with really awesome developer support for JavaScript developers on Windows/Mac/Linux and for C# developers on Mac/Linux.
Summary
We are still struggling with some serious watch case design problems—but our team has not given up on backers. Secret Labs has taken on some serious debt and is pushing this project to completion (unfortunately without House of Horology). Part of this work has included building out some new (not previously seen or promised) technology which benefits the AGENT Smartwatch's OS, developers and users.
To be clear: I had to pull funding for some of the new technology that Secret Labs has been building. As a company, Secret Labs has been making some very serious cutbacks in an effort to see this project to completion. I really wish that House of Horology was pulling their weight—but in any case, our team has been making some progress.
Thank you very much for your patience, for your notes of kindness, and for your support.
- Chris, Project Manager
AGENT Smartwatch Team
Wouter Haine vor 5 Tagen
Hi, I just wrote another email to kickstarter:
Hi guys,
Please take your responsibility and take action on the Agent Smart watch issue. We are being scammed. There is no fulfilment, no updates and no progress. As facilitator in this process you have responsibility too. You facilitated this project and made a fee from it. Could you please address the creator and force them to refund? And please no standard reply, we've had those a lot already. This project makes kickstarter look bad too. A lot of people get hesitant about backing projects as long as you don't take action on things like this.
Thank you in advance for your non automated reply and sufficient actions.
Please restore my, and other people's, faith in crowd funding.
Kind regards,
Wouter
A scammed kickstarter backer.
Colin Wight vor 6 Tagen
Why can't kickstarter investigate this?
Joshua Maher am October 28
Hello AGENT team and fellow backers, the terms of service state the following:
"Project Creators are required to fulfill all rewards of their successful fundraising campaigns or refund any Backer whose reward they do not or cannot fulfill."
I'm with the other backers on this one and would prefer a refund or really anything near the value... If you'd like to sign your name up for interest in receiving the same - use this form:
https://docs.google.com/forms/d/1tj_92FU4w8mBYljWDx7sC8GRqe1x2qBREPK6NCZmD2s/edit
Surplus Public am October 27
how about just buy everyone a fitbit and an apology note and we can all go about our lives.
Surplus Public am October 27
SOOOO.........No watches or....????
Gagandeep Singh am October 25
Its really sad to see how you can skim money off so many backers or your well wishers and still go to sleep... Please Please return our money back.. If you have even one percent of conscience...
Frank Fuhrmeister am October 15
If you have any soul or moral compass, you'll refund the backers, chalk this up as a learning experience, maybe write a book about it, and move on with your life.
Frank Fuhrmeister am October 15
When do you just tell yourself that this project was a failure?
Frank Fuhrmeister am October 15
Can we just get our money back?
Chris Jung am October 2
Thank you so much for nothing! Thank you Chris Walker for having no conscience!
frank fain am September 26
we dont care about all the specifics anymore. we want our watches NOW!!!!!!!
I'm sure your shit is just that... SHIT I will be giving mine to the first homeless person I walk past.
boohoo you had a few problems, and then more problems and more problems and more problems... instead of constantly changing the end product, get one out the friggin door and then work on a next version... I am sure you will get a lot of backers NOT!!!!!
had you gotten one out the door even a couple months later than predicted, you could have developed another in the 2-3 years you've had and had loyal followers who probably would have bought your upgrade, that is, if the first was at least usable... but instead you have alienated yourself from the people who are supposed to support your ideas..
Just give me my watch, I dont care if its not finished and in 1000 pieces.. give me my watch so I can be satisfied that I at least got something for my money..
Avvocot am September 18
So, 6 months later where are we? We have not even received an update. Care to explain?
Michael Markham am September 18
The last time thier account even logged into kickstarter was april 30th for that bullshit update
Michael Markham am September 18
This fucking sucks :(
Timur Zanagar am September 7
Can we just get our money back?
John Putnam am September 1
Any updates on the project?
林彥宇 am September 1
Can we just get our money back?
Brent am August 29
another update must be about due. I wonder what feature I will get this qtr? I reckon if we kept getting new features for the next say, 15 years, i might feel like i got my moneys worth.. I mean how many other smart watches out there will get updates for the next 15 years?
Joshua Martinez am August 21
Can we just get our money back?
José M. Nieves am August 9
And, by the way, please take down your website still announcing this non-existent product. Have you no decency? What, you still want to scam some more people? A million bucks was not enough? Amazing.
José M. Nieves am August 9
STOP THE LIES. This is dead. Have the balls to admit it. "Going into debt" my butt. You have NOTHING TO SHOW for a million bucks.
JUST CLOSE THE PROJECT AND GO SCREW AROUND WITH THE CASH. I wish you the worse of maladies to you, your wife, kids, and everyone related to you. You are worse than the scum at the bottom of a sink.
Shannon Sauter am August 8
Please issue me a refund
These incessant delays are obscene!
J Aaron Hales am July 26
AGENT: The World's Smartest Watch (Kickstarter Campaign). We made 10 times our goal (or $1,000,000+). FUCK YOU INVESTORS! This whole thing is a joke!
Chris wants a refund for the Agent Watch am July 15
You scammed us and as a result you've scammed other projects too. Never will back another. You'll get what's coming to you eventually I'm sure.
antytom am July 9
fuck you!fuck your family~!!!!!!!!!!
Arvinder Ghataore am July 3
Any updates on this
Artitude am June 9
So what is the next course of action from your team? are we still waiting for another few years?
Amedeo Felice am June 9
Hi I'm one of the backers on this project and I'm sick and tired of waiting for you to bring this project to life I am demand A refund or I'm contacting a lawyer and starting a lawsuit against you guys
Edward John am May 31
Two years and you are still drawing the f*ck*** case?
Ingo Mueller am May 27
... and please stop addressing me (and I guess I speak for the majority of the fooled backers) with "team".
You are far from being a team player!
Ingo Mueller am May 27
How dare you to post such a bullsh*t?
No one asked for, no one payed for!
I vaguely remember backing "The World's Smartest Watch" some years ago!
What did I get?
A great bunch of disinformation and the feeling, that someone is partying hard with my and other people's money.
Go get yourself a spoonful of courage and end the misery by refunding!
I feel embarressed for you, you spineless human something.
Nico am May 26
How do you sleep at night ?
Its bad enough you stole our money but you then go and treat us like a bunch of idiots with these ridiculous updates
Sean P. McAdam am May 18
"Over the course of this project, we have designed, engineered and tested a lot of hardware and software."
Uh, really? Then where the fuck is it? What is it, 2 or 3 years late now?
Eric Caban am May 17
Did he ever finish the design for the wireless charger? What was his excuse for that? I can't remember. :/ just publicly admit you've given up on the watch, and at least (at the VERY least) get us the damn charger. I could actually put that to use, unlike this stupid watch that I would never wear.
Tucker Snedeker am May 12
http://www.atg.wa.gov/news/news-releases/ag-makes-crowdfunded-company-pay-shady-deal
Joseph Pontacolone am May 8, 2016
You're a thief, a crook and a swindler. Your refusing to refund any money from this "project" shows your true character.
Nick L am May 6, 2016
http://www.engadget.com/2016/05/06/backers-of-cancelled-e-ink-watch-wont-get-their-money-back/…
Andreas B.Hansen am May 5, 2016
Where EXACTLY is my watch right now? What EXACTLY did I pay $149 for?! How can people be allowed to make a million dollars without giving anything at all back? This is insane.
aizz am May 4, 2016
A script compiler? Why not V8?
Barbara B am May 3, 2016
I for one, would love to see a detailed transaction report of how the money was spent. I doubt we will ever see it but please spare us the sad tale of how expensive everything is. 5,685 backers pledged $1,012,742 to help bring this project to life. Surely some regulatory agency could share our interest.
Makuri am May 3, 2016
F**K YOU!!!
Claudio Ibarra am May 3, 2016
No one cares anymore. Stop polishing the turd and give back whatever funds are left.
Nick L am May 3, 2016
What's the point in having an OS and compiler when there's nothing to actually run it on? You're now in the realms of intellectual self-pleasuring (yes, a euphemism), creating something that is architecturally elegant but missing the point that you're failing to deliver what should have been delivered two and a half years ago. If you wanted to go and do stuff like this, get someone to pay you for it directly. Meanwhile, I'd like to take you up on the previous offer of trading this in for credit, as I could use some netduino stuff before it's obsolete.
Ali Al Rahma am May 3, 2016
I want my $199 back!! Or at least half of it. I used to back at least 2 projects a month 3 years ago but decided to stop backing any Kickstarter completely because the risk of theft is high and Kickstarter or an official organization/agency won't interfere if your money is stolen. I'll pay more to buy a product from the market rather than Kickstarter but at least delivery is immediate and guaranteed. No more crowdfunding! No more theft!
Peter Ingemann Hansen am May 3, 2016
http://youtu.be/hFdZhCmUVA0
John Thompson am May 2, 2016
Sue these a-holes for false advertising as well... "The World's Smartest Watch." IT'S CLEARLY NOT.
c.arndt am May 2, 2016
Javascript is always a useful tool, these days. But why is anyone spending cycles on this when there are important tasks to work on, both hardware and software.
In October you were working on finishing the AGENT OS 2.0 core, which needed a display layer and some button support. At that time I asked if there was a run-time & emulator available to test with. I never even saw a response to my question. This 2.0 core is obviously way more important than adding Javascript, yet it's status wasn't mentioned in this update. And there was no mention of any milestone roadmap for the core, or even for the watch. !!
Joseph Stark am May 2, 2016
what a crock of shit. Who cares about this C# BS - hope you have enjoyed spending my fucking money!
Engin Ölmez am May 2, 2016
You made my day. I was not ready for a serious Monday...
Spencer Williams am May 2, 2016
Haha! ha. ha