Skip to content

Why GWT? Part II: The right tools for the job

Last time I talked about moving beyond the page metaphor to create truly dynamic and interactive web applications. Today I’ll talk about why I think GWT is a good means to this end.

When I talk to people about Accevia or my other projects, they often ask why I decided to use GWT instead of common frameworks like Django or Ruby on Rails. I’m a big fan of both, but I don’t actually see them as direct competitors to GWT. Both are designed around the page metaphor and are excellent tools for creating sites that can be structured in this way. But they just aren’t the right tool for dynamic web applications. Let’s take a look at why this is.

Imagine creating an application like Google Calendar in Rails. Rails makes heavy use of the Model-View-Controller pattern, so we need to break our application into different views. Obviously we can make a view for the main calendar page, and probably a separate view for creating a new event. Maybe we can make one for the settings page also. These three views cover pretty much everything, now it’s just a matter of implementing them.

Well, first we need to draw a bunch of rectangles on the screen. That’s probably best done with JavaScript. We want to be able to click between different months on the calendar without reloading the page, so that’s going to be some more JavaScript. We want to be able to turn different calendars on and off to change which rectangles are gone and show and hide the task list, which we’ll do with JavaScript. We want to save new events to the calendar and task list as the user types them without submitting a form, so we’d best send a request to the server using JavaScript. JavaScript, JavaScript, JavaScript. Wait, weren’t we doing this project in Rails?

The problem is that once we’ve laid out our pages in Rails (or Django), the framework can’t do much more for us. This is fine for a lot of web sites where the interaction is defined by clicking through a bunch of pages, but it’s not enough for an application like Google Calendar. All of the interesting stuff happens within a single page, so we end up just having to write a ton of JavaScript and stick it in that page. Rails hasn’t really done anything for us at all.

So why not just write then entire application in JavaScript? That’s definitely an option. But again, JavaScript wasn’t really designed for writing complex web applications. As its name implies, it was originally conceived as a scripting language for doing simple manipulations on web pages. No one expected that people would end up writing tens or hundreds of thousands of lines of JavaScript to drive a single web application, and the language’s design reflects this bias towards small programs. For example, dynamic typing makes it difficult to maintain large programs, and developers typically try to warp JavaScript’s arcane prototype-based object model to resemble a more traditional class-based language. Libraries like jQuery and Closure do a great job of making web applications more palatable in JavaScript, but they can’t solve the fundamental problem.

Enter GWT. GWT is a set of tools and libraries for writing web applications in Java: it compiles your code down to JavaScript, so the user’s experience is the same as if you’d written the entire application in JavaScript. But as the programmer, you have all of the benefits (and pitfalls) of writing in Java. Rather than thinking about pages and the DOM, you can lay out your application using Swing-like panels. Static typing means that you’re safe from a huge class of errors that might otherwise be difficult to track down. And you have access to Java’s very mature set of tools including Eclipse, Guice, jUnit, and FindBugs.

By integrating with Java Servlets, GWT also allows for complete consistency in your application’s implementation. As previously stated, it’s misleading to say that an application is written in Ruby: what you actually end up with is an amalgamation of Ruby on the server, JavaScript for complex client-side interaction, HTML for basic page layout, and CSS for styling. Using GWT, it’s entirely possible to create a web application completely in Java. The distinction between the client and the server blurs, and developers have a much easier time understanding the entire system rather than having to declare themselves as “front-end developers” or “back-end developers”.

GWT and Java may not be perfect, but they solve all of the problems laid out above and allow for a fundamentally different way of thinking about and designing web applications. The real benefit of GWT is that it allows you to think of web applications in the same way as desktop applications, rather than unnaturally as a series of pages. JavaScript also solves these problems, but it is lacking as a language. I think it’s time we stop thinking of JavaScript as a language for the everyday web programmer and start viewing it as the “assembly language of the web.” By compiling other languages to JavaScript, we can increase the choice available to developers and decrease the difficulty of writing web applications. GWT is perhaps the first implementation of this approach, and I hope there are more to follow!

And the results are coming in…

So, after a week of user-testing – we have some results. Before I go any further – I realized that in the last couple posts, I never clarified as to what we at Accevia are trying to accomplish:

We want to make investing easy for people like me (finally have some savings in the bank account). We want to do this by having professional advisors create portfolios catered towards smaller investors (i.e. include only mutual funds & ETFs, minimize transaction costs, etc.) that would act as a starting point for someone like me. So, instead of having to start from scratch with the mutual fund screener at TD – I can quickly get started with a pre-made portfolio of TD mutual funds and ETFs, which already has solid performance and risk statstics as verified by Accevia. I can also ask any specific questions (such as tax or IRA questions) to an advisor and pay as I go, instead of being completely shunned because I’m too small of a client.

So, on Accevia – not only can people see details on advisors but also details on the portfolios that they are recommending. Now, during our last user-testing phase, people mentioned to us that they found the information given on portfolios far too complicated. We went through and completely redesigned our portfolio pages’ designs and used Usabilla to user-test these designs – if you want more details, check it out on our last post here.

Here’s a heat-map of the improvements that people would like us to make on the most important screen in the entire website – an advisor’s portfolios:

One of the comments that I would like to highlight is about the bottom right forecast graph. It went as follows:

This needs to become more clear. Why does it have 2 colors? Where do the probabilities come from? Now that I think about, this is seriously missleading. What kind of model are you using to predict this? Couldn’t there be compliance implications if the portfolio performs way worse than predicted?

The colors bit is an easy fix but I would like to take this opportunity to clarify that all forecasts are exactly just that – forecasts.

Our original idea behind forecasts was to give investors a basic idea of how they can expect a portfolio can do in the future, purely based on historical performance. This was based off the fact that these forecasts are also generally presented to high net-worth clients when they first start exploring investment strategies.

Our particular model is based off of using Monte Carlo. I’m not going to bore you with the math but basically, we simulate a portfolio 10,000+ times and each time the value for an investment in the portfolio is randomly picked based on an underlying distribution (generally normal – think bell curve). The final distribution for a portfolio, which is used to determine the probabilities, is based off the simulations. So, if out of the 10,000 iterations – 3,000 times the value of a $10,000 portfolio in 2015 was > $10,000 – then there is a 30% chance that the portfolio’s value will be greater than $10,000.

What are the compliance implications of this forecast?  Every forecast has a disclaimer associated with it stating that the forecast is supposed to give you a rough idea of how this portfolio would perform in a “normal” market, i.e. if there is another credit/oil/war crisis, then the portfolio value would probably fall out of the bounds of the forecast. But seriously, if we could predict how a portfolio was going to do in every situation, I certainly would not be here right now.

We hoped that people would use the forecasts to get more comfortable with the idea of investing and with their own risk profile – sometimes, it helps to see how a portfolio can be expected to do in the future to see if you’re comfortable enough with taking the step to go through and invest in it. But then again, that’s my opinion.

It’s precisely these issues that come up during user-testing. So, tell us what you think - please user-test our screenshots, if you haven’t already done so! We want to see if you get it or not because hopefully, Accevia will be what you’ll be using some day to make your investing decisions easier.

That’s it on user-testing – my next post is going to be on Pivotal Tracker. Even if you don’t have a startup – definitely use this in order to organize your life – more on this next week!

We need YOUR opinion!

It’s time again for some more user-testing – we’ve emerged from the proverbial coding cave to yes, get your opinion to see if we should be there in the first place. Now why do we do this? Why do we bother harassing people to get them to go take our user-test – to click away and tell us if the colors would make sense to a color-blind person or to see if clicking on buttons doesn’t result in random bursts of unicorns prancing across the screen (seriously what is with the recent obsession with unicorns?) No, it’s not because we’re sado-masochists or bored but because we NEED vindication.

Now anyone who’s ever done a startup can tell you that the early startupper’s lifestyle blows – like seriously blows. I mean there are stories of entrepreneurs who sold Obama & McCain branded cereal boxes during the last campaign in order to make ends meet before finally going big (trust me, these guys are big now.) – but seriously, cereal boxes? But regardless of the dismal life-style, the whole point of doing a startup is about building a product that you think is literally the best thing that ever happened to mankind (not sure how spam fits into this..). So, what blows even more than re-packaging cereal boxes with McCain’s gorgeous mug is realizing that your product is an epic fail, i.e. cuil-magnitude fail.

So, this is exactly why we user-test – barring random unicorns, we really want to see if you get our vision (and that you like our color scheme). Please realize that you might not be the ideal customer for Accevia but you should still be user-testing for us. You ask us – why should I give up precious minutes of my day to user-test for your startup when I could be poring over the Onion or facebook stalking my lab nemesis. The reasons are simple:

1) You love us (even though you might know this)

2) You’re bound to say great things about us once you check it out

So, after all this talk about user-testing, I’m sure you’re dying to get started. Since last time we tried this using Usabilla, people obviously did not watch the tutorial and messed up the testing, i.e. realized half way through the test that they could actually leave notes and then started abusing the whole note leaving thing by leaving notes such as “I am bored. What you doing Friday night?” – see, that’s not cool because we get all excited once we see that there are 100 notes and then the let-down is just too much.

Anyhow, here are quick instructions as to how to use Usabilla. It’s really quite simple – you get shown 3 screenshots (one at a time) and we ask you simple questions like “What would you change about this page”, etc. and you use your mouse to do the following:

Please add notes!

The whole point of user-testing these screenshots is to see if you find the details regarding a portfolio (such as returns, volatility, etc.) comprehensible and interesting – this was one of the biggest complaints that we had from our last round of user testing. So, we’re hoping that we’ve made all the information on Accevia far more digestible and of course, fun to look at.

I *highly* recommend actually trying out the live website before user-testing because you’ll have a better idea of how things flow and how these screenshots fit into the flow of the whole site.

Sign up here and use the invite code: investaway. It’s buggy but hey, it’s an alpha – so, deal.

Finally, here is the link for user-testing.

Why Kaching/Wealth-whatever still sucks.

 

So, this morning I got an email along the lines of:

kaChing is now Wealthfront, and that’s not all!

[...] Increased Investment on the Platform: Over $100,000,000 is now invested on Wealthfront! This is an incredible accomplishment after only being in business for one year (and during a year where people are dumping stocks).

See I wasn’t planning on blogging today but rather spending some time catching up on Dexter (really, I’m not even going to qualify this with a link). But here I am, venting about how irked I am by this email – isn’t that what blogs are *really* for?!?

Now for those of you who don’t know Kaching‘s history – here’s a quick synopsis:

1. They started off as a facebook game where you could compete against your friends to bet on stocks that would do well – starting off this idea of “beating the market” (Anyone remember the ridiculous guitar playing Asian kid on the facebook app?)

2. They turned into a real investment platform where they let you follow other people who were considered “investment geniuses”, self-proclaimed investors (not necessarily professionals) who could “beat” the market, and could invest real money with these so-called geniuses. I still can’t believe SEC gave the green-flag to this (well, then again they did let Madoff slip on by for decades).

3. Thankfully, they realized that no one believed in their non-professional “investment geniuses” and then changed their platform to only cater to RIA’s (professional advisors) who were considered “investment geniuses”, again self-proclaimed professional advisors who could “beat” market

4. They then realized that the crop of RIAs on their platform was pretty crappy and as of last week had only $13,000,000 invested on their platform (not sure as to how the jump to $100,000,000 happened?!? let’s hope they added extra zeroes to all their accounts!). I guess Andy decided to rebrand again as Wealthfront (and FINALLY got rid of the ridiculous “investment-genius” terminology) or really Wealth-whatever, because it is the same thing but with a different look (much closer to FutureAdvisor’s, I must add) – way to go Andy, rip off a startup’s design!

The only common vein behind Kaching through all their rebranding and refocusing, thanks to Andy Rachleff‘s deep pockets (also to be noted – Andy’s ex-VC firm, Benchmark Capital, has not invested in Kaching…), is that their focus has been on “beating the market” – which really on it’s own is not a bad idea. It’s the execution that I have a problem with.

The biggest issue here is the obvious adverse-selection bias – if you can truly beat the market on a consistent bias using an active trading strategy, why the heck are you an RIA? Note that RIA’s only get paid around 1% of assets under management – so on a $5,000 account on Kaching, a RIA who can “beat” the market would make $50 while providing consistent returns of over 10%.

If an RIA is truly as good as they claim to be, why are they not running their own hedge-fund and charging the standard 2% management fee + 20% of profits or working for a prop-trading desk (even the douche fabulous-Fab from Goldman, who got sued, made over a $1M a year)? I mean really – even if you’ve just watched the Wall Street movies, you realize that the finance world attracts sharks and if you’re truly good – you’re not going to be going after the $5k accounts on Wealth-whatever.

So, Kaching doesn’t have the best money-managers out there – actually far from it, the money-managers on Kaching are, for lack of a better phrase, bottom-feeders.

The other misleading aspect to Kaching’s advertising is the underlying premise that these advisors are going to consistently beat the market. Now, note that in today’s day and age – there are perhaps 3-5 hedge-funds (most notably Renaissance Technology) that have consistently out-performed the market over the last couple decades.

No, these are not mom-and-pop shops trading over retail-systems such as Interactive Brokers but extremely sophistical investment houses who, not surprisingly, are only open to ultra-high-net-worth individuals (in fact, Renaissance Tech is closed to the public and only employees can invest in it). These funds are also run by incredibly brilliant people who have strong backgrounds in academia – think phD’s running the world. I’m sorry no amount of “research” published by advisors on Kaching makes me believe that they have any shot at being called academics or god forbid, “investment geniuses”. Also, who in the right mind believes that publishing research makes an advisor a better money manager?

So, if you do use Kaching – just be prepared to shuttle your money between one crappy investment manager to another racking up high fees and honestly, not that great performance at the end of the day once you account for the fees. You might have as well as just invested in a couple of mutual funds or ETFs to start with – keep it simple stupid!

I swear my rant is coming to an end (but really there’s nothing I hate more than faulty marketing and terrible execution!) but I will say a couple things on why Accevia is different. Not meaning to toot our own horn (hey, it is our blog!) but I would like to mention that even though we do have RIA’s on Accevia – we do NOT believe in actively managed strategies, i.e. we DO not believe in holding a large number of stocks and praying that the money manager will get the market timing right.

We believe in leveraging an RIA’s expertise in working with ETFs and mutual funds in order to carefully create portfolios consisting of low-fee mutual funds (yes, they do exist!) and ETFs (exchange traded funds – look it up noob, if you haven’t already!) that make far more sense if you’re investing $5k or even $50,000,000. In fact, even most high-net worth individuals and universities (including Stanford) are more likely to have ETFs and mutual funds in their portfolios in order to diversify.

I can guarantee one thing – no one from Stanford’s endowment or any other university’s endowment is using an advisor from Wealth-whatever to manage their money in order to “beat the market” but they are using ETFs and mutual funds, which, in my mind, makes the latter a much much better choice.

*whew*

And a month later…

 

It’s officially been a month and some since SSE Labs ended and yes, we’re still alive and kicking. Check out the latest development version of Accevia here (please use investaway as the invite code to sign up). This post is about a month delayed and has been sitting around half incomplete for a while – and unfortunately, posting to our blog (no matter how much I love telling you all about our experience as noob startuppers) is subordinated to coding… but you could check out a better explanation for the delay in posting here.

SSE Labs Demo: Fantastic day – had a great time demoing and meeting super cool people – check out the pictures here. Most importantly, we got people excited about what we’re doing and where Accevia is going. Check out the Patch.com article on Accevia here. Yay for local newspapers who cover *real* news.

The last month or so has been spent bug-killing – Erik, the other c0-founder behind Accevia, had some brilliant ideas about improving our code. Speaking of which, Erik is going to start blogging about Google Web Tools – what we’re using to build Accevia. Hopefully, this will get more startuppers interested in using GWT for development instead of the other frameworks out there… not that there’s anything wrong with them but GWT really is an extremely powerful framework and it would be hard to accomplish anything like Accevia without it.

As for next steps – we’re in the process of getting advisors on board to start posting their portfolios on Accevia. It’s definitely been an uphill battle as expected  – my only piece of advice to anyone going through a similar recruiting process is to be relentless. But there is a fine line between being assertive and being a complete tool who doesn’t get it when someone is saying no – but until you actually find that line (i.e. have been called a tool to your face), I recommend that you keep barging ahead. If you can’t do it – find someone who can and hire them

I would like to mention the one thing worth looking for on a resume when hiring a good bus/dev person is retail experience (i.e. a job selling shoes/clothes at Macy’s, Nordstrom, etc.). I’m not talking about a Manager or Accounts role but an actual on-the-floor Sales person. I know this sounds unconventional but if you really think about it, it’s obvious. The people who are good at these jobs understand how to make a product that 100 other stores out there make more appealing to buyers. These are also people who have learned how to not to take “no” too personally and how to pick apart the pros and cons of a product to make it relevant to a potential buyer… but hey, that’s just my two cents. You could also always follow more conformist advice here.

We’ve been successful so far and will be launching a version of the site with real portfolios shortly – so, that’s definitely a milestone to look forward to! Apart from that, we’re back to user-testing, which means that we need your thoughts on our latest designs. The last round of user-testing with Usabilla was extremely useful and if you didn’t read our post on Usabilla, you can take a look at it here. We realized that we never published the results of the user-testing – so, this time we’re going to go through and talk about the comments we got (don’t worry, they’re all anonymous) and how we plan on incorporating them in redesigning Accevia.

Anyhow, that’s it for this post. Some upcoming things that I’ll be writing about shortly: Pivotal Tracker (and how it’s changed our lives), and – if it isn’t obvious already – more user testing.

Why GWT? Part I: Moving beyond the page metaphor

Hello everyone. My name is Erik Kuefler, Accevia’s technical co-founder. I’ll be joining Smita in writing for the blog, focusing on the technical details of creating a web application like Accevia. To start with, I want to talk about the main technology powering Accevia: Google Web Toolkit. I’ll talk about what it is, why we chose it, and why you might want to use it for your projects.

In a nutshell, Google Web Toolkit (usually abbreviated to GWT and pronounced “gwit”) is a set of tools and libraries for creating web applications in Java. You create your entire client and server using Java libraries, then GWT compiles the client-side code into Javascript and fills in the details to make it talk to the server nicely. Why would you want to do this instead of writing your own Javascript, or using a framework like Rails or Django? That’s what I’ll talk about today and in my next post.

Before I talk about GWT itself, it’s important to understand how the web has evolved over time. One of the most important trends in the web’s evolution is a movement away from static, unchanging pages and towards dynamic pages that can change the content they display. We can look at this in three steps. First, we have static pages with static content: with these, every time you type a URL into your browser, it will show you the exact same page. The only way things would change would be when a human went in and updated the page directly. In the initial days of the Internet, this made a lot of sense. The web was designed for people to share complete documents with each other, and documents don’t change that much.

The next step was the major breakthrough that allowed the web to do more than just show documents. By using static pages with dynamic content, the power of the web exploded: people could now create full-fledged web applications. By generating page content dynamically, you could create a section of a university’s web page allowing students to see their grades, updated every semester. You could create an email inbox that showed only unread messages addressed to you, allowing you to fetch new messages by refreshing the page. The ability to generate dynamic content changed the web from a passive document viewer to a vessel for interactive application deployment.

This is as far as most people go when they talk about interactive web applications, but I believe there’s one more important level: dynamic pages with dynamic content. Before, servers were able to decide dynamically what would go on the page, but the page couldn’t change after it had been created. For a change to happen, the user would have to request a new page from the server, and the server would rebuild the whole page. This works, but it’s not an optimal use of resources. Consider the Google search results page. Its focus is on the dynamic results of your search query, but it also has a lot of static content.


So what happens when the user enters a new query here? In the past, Google and every other website would have thrown the current page away and asked the server to build a new one for the new query. But this is wasteful! The header, sidebar, and page layout aren’t changing at all; we don’t want a whole new page, we just want to see new search results. Sending a whole new page wastes the user’s time since he has to download an entirely new HTML document and his browser has to render it. It wastes the server’s time since it has to build a new page and send it to the user. When you serve as many queries per day as Google does, the extra time required to do all this starts to add up.

People still think of the web in pages, but that’s only partially true these days. Most of what’s on the web now is applications, each with a complex stream of input and output. The term “Web 2.0” was overused a few years ago and no one could agree on what it meant or whether it had been achieved. On the modern web, we need much finer-grained control over the users’ experience than sending them a sequential stream of pages. This is the crux of the issue to me: a Web 2.0 application is one that moves beyond the page metaphor, acting like a desktop application by reacting directly and immediately to the users’ actions. The page metaphor still pervades most of web development, but I see it as a harmful abstraction that limits what we can do with the web.

I haven’t even mentioned GWT yet, but this sets the stage for what I’ll talk about in my next post: how GWT lets us break free from the page metaphor and why it is an especially good tool for doing so. See you then!

And we’re back..!

After a ridonculously busy last week where we had our second milestone event at SSE, we’re back after a short break. Last Thursday we presented to an esteemed panel of VCs and Angels including Rebecca Lynn, David Hornik, Ben Choi and George Zachary to get their feedback on what we’re up to. Check out our presentation here – we used Prezi – love to hear your comments on what you think about it.

As a side-note: we didn’t know this but it’s really not cool to use Prezi for any presentation to a VC. David Hornik was quite vocal about how he felt that the extra animation in Prezi presentations didn’t really add anything of actual value to the presentation. I almost agree with him especially since I did get slightly nauseous just making the presentation…

Anyhow our presentation went well and it definitely helped to have our very own Accevia posse show up – thanks to all the test users who showed up and of course, our fabulous team! The latest version of our live site is also up at http://www.accevia.com – email smita@accevia.com if you haven’t received an invite code as of yet.

We’re now prepping for our final milestone event at SSE to be held on September 16 at AOL – details can be found here. Tickets are $95 but if you would like a test user pass, let me know and I can definitely try to get you on our list.

Finally, I’d like to thank everyone for testing our new site out using Usabilla – if you haven’t done so already, please do so here. We’ve taken all your responses into account when building out the rest of our site – there are definitely some great changes that we’re working on now and hopefully, we’ll have an amazing demo for everyone by September 16th. Your input is always appreciated and so, feel free to email us if you have any questions or concerns or just want to get involved!

Our team’s still mostly at Stanford and so, if you want to drop by Munger 1 to say hi, let us know!

Follow

Get every new post delivered to your Inbox.