There's no point open-sourcing the crappy old parts of our architecture which we wouldn't advise new projects to use (like our Perl framework. There are so many Perl frameworks these days, and many of them better than ours) - but Overture is high quality stuff. Enjoy!
Thank you for taking me away from Google! I have had no downtime, but your work has gotten me interested in many mail clients I have tried and I intend to host my own Cyrus IMAP instance to learn more about email in general. Thanks for that too!
> There's no point open-sourcing the crappy old parts of our architecture which we wouldn't advise new projects to use
Well, there is an educational point to be made about this... :)
I think too many people in open source focus on "if it's open source, it must be great, look great" etc. I for one put every crappy project I start and never complete on Github along with the good ones I'm proud of. Because I like my "learning process" being out in the open as well. I don't publish my hello-worlds of course but I don't specifically hide stuff people "I believe should not use". Warnings in the readme are as far as it goes.
My company systematically opens its entire process to the public. All the code is on Github, all the issues are there too. Our internal discussion/design process is on IRC, Google Docs and the Github wiki and they are all public and archived. Only client work under NDA remains private.
Google has a similar-ish model for some open source projects it released. I wish more companies would adopt a model like this. Well, of course, open sourcing important frameworks and useful stuff remains a higher priority... but I don't believe there is any harm in it, and it actually holds the employees to a subconscious "higher standard".
I'd love to talk more about it but I think I'm getting off-topic here. Once again, congratulations on the release!
The old web framework that we use is good for what it is, and we understand it, but its not state-of-the-art by any stretch, it does some weird things that aren't good practice in "modern" Perl, its still fairly heavily tied to Apache2/mod_perl and other parts of our internal libs, and so on. We don't use it for new code ourselves and we're actively migrating everything written in it onto Overture-based UI.
So given that even we don't want to use it and the off-the-shelf Perl web frameworks are generally better, it really doesn't help anyone to make it open source.
That's not to say there's nothing in our system not worth open-sourcing. For example, we've deliberately written our CalDAV/CardDAV libs in a nice clean modular way because we've planned to release them from the very beginning. Its just some things, like the web framework, that have no particular value.
I'm thinking about migrating (gmail just feels sluggish), but I'm a little afraid of all the potential gotchas vs my current gmail setup, which makes me reluctant.
(I redirect + pop fetch several school addresses to gmail, plus have a long list of filters to help me navigate all the ads I get)
Also fastmail is faster! You get email, contacts and file storage. If you are on the $40/yr plan you get caldav support as well. Works very well on all my devices.
Only downside is spamassassin isn't as effective as gmail's spam filters, but I no longer have to cope with mailing lists being marked as spam by the masses who can't work an unsubscribe button.
On that note, you can also write your own seive rules for filtering, and there's the 'if matched stop running filters' option that is so glaringly absent from gmail.
So I'm a happy customer.
I switched because I recently purchased several domains and needed a mail system for them. Google Apps isn't free anymore, and the free email forwarding from my registrar just expired.
I will still keep my personal emails on Gmail for now, mostly because I love Mailbox.app too much.
Also, looks like until Tuesday it was named Vibrato [0]. I think I can understand the motivation to change that.
[0]: https://github.com/fastmail/overture/commit/2a8252764a124b19...
When I realized that ng-hide just applies CSS classes I did a huge facepalm. Consider the example of dynamically constructing a table. In Angular:
<tr ng-repeat="child in children">
<td ng-show="foo(child)">Foo</td>
<td ng-hide="foo(child)">Bar</td>
</tr>
This example runs the function foo four (!) times per digest cycle per item. Sure, you could convolute your code to make the Angular more performant, but at the cost of clear and maintainable markup. What's more, this produces rows with two cells, one of them hidden with CSS, which is ripe for creating hard-to-debug issues. The alternative in basically any other framework is written in a way and produces code execution and markup that you'd intuitively expect.Angular's directive system encourages developers to write illegal markup. Enough said.
Angular's DI system is needlessly complicated, and the basic usage breaks when minifying because it couples identifier names to string values.
That same issue is repeated in many different aspects of Angular: the basic, intuitive usage is (intentionally or not) broken in a production environment. The amount of deep knowledge of the Angular framework that's required to successfully develop apps is absurd.
[0]: https://www.airpair.com/angularjs/posts/angularjs-performanc...
Firefox mobile is still ignored in San Francisco bubble, but it's gaining rapid adoption on influencers... I'm putting all my money on it being everyone's browser in the next years. it will take everyone by surprise just like chrome did when it was faster.
I'm not sure about your team opinion about modifying globals. I saw this a lot in your code. Why did you decided on this approach?
in the todo example , I added a new todo with arabic script , but the search function didn't work on the arabic script.
thanks for sharing
Especially having pre-fixed inter-tab comm. sounds enticing for me, haven't heard of other frameworks handling this out of the box!
Really cool to open source this, though!