Three years later, Mr. Moore is still letting us punt on database sharding - jlangenauer
http://37signals.com/svn/posts/3089-three-years-later-mr-moore-is-still-letting-us-punt-on-database-sharding
======
shanemhansen
A lot of startups engage in a sort of cargo-cult architecture. Their reasoning
goes something like this:

1\. Amazon/Facebook/Google have a lot of traffic.

2\. Amazon/Facebook/Google use X to scale horizontally. ergo:

3\. My little startup should use X and scale horizontally.

What they fail to realize is that most of these companies would be ecstatic if
they could scale machines vertically, if they could focus on great user
features instead of having to figure out how to shard in the application
layer. You should never forget that Amazon, Facebook, and twitter all started
out as pretty basic LAMP stacks and built the tools when it was obvious that
no other tool would do. I think google's an exception because their MVP was in
fact a web scale application. So by all means, vet your idea, get some
customers, get traction, and scale the cheap way by buying more ram for as
long as you possibly can.

~~~
spudlyo
Amazon did not start out as a LAMP stack, it was more like a "DNBC" stack.

D igital Unix

N etscape Commerce Server

B erkeley DB (NoSQL!)

C code (linked into the HTTP server)

~~~
cperciva
_B erkeley DB (NoSQL!)_

I'd call BDB "pre-SQL" rather than "NoSQL".

~~~
shanemhansen
Granted I'm speaking from second hand experience, but for the last couple
years I worked closely with some former and current amazonians who worked on
their frontend and order workflow team. I do know for a fact that much of
their frontend is/was in perl, and that oracle databases have their place. But
I guess that wasn't what they started with.

------
krupan
He mentions Fusion-io drives getting faster. What's interesting about iodrives
is that you don't have to buy a new one to get more speed, just updating your
CPU or RAM will speed up an iodrive:

"Because VSL leverages powerful host CPU cores and memory for block mapping,
ioMemory performance automatically improves as organizations upgrade host CPUs
or memory" (<http://www.fusionio.com/overviews/vsl-technical-overview/>)

VSL (Virtual Storage Layer) is the Fusion-io software that makes an iodrive
look like a block device to the OS, among other things.

(Yes, I'm an engineer at Fusion)

------
ohashi
For some reason, I don't imagine BaseCamp's use is really exploding like some
other startups might in terms of database usage.

It could very well be a case of their growth is scaling in-line with Moore's
law, so it just happens to work out well.

~~~
patio11
Even among startups, web scale data requirements are the exception, not the
rule. Facebook and Google are ginormous. There are many, many very impressive
applications whose database wouldn't tax a single commodity server.
(Similarly, there are applications that make terrible businesses but which
consume computing resources like losing a byte of information would doom
humanity.)

I mean, go through a list of YC companies or other startups you respect,
winnow it down to the ones that exited or otherwise achieved some level of
success, and play guess-the-size. How many terabytes of storage do you think
e.g. Airbnb needs?

~~~
j_baker
One thing I've found is that scaling rarely means solving difficult problems.
Rather, it means putting more time into finding optimal solutions to problems
that are trivial at smaller scale. For example, should your startup use
Apache, nginx, or HAProxy as a load balancer? If you're just launching, the
answer is "Who cares, just ship the fucking thing!". If you reach the point
where you start measuring page views in the billions (and yes there are start
ups that are at this point), it matters a great deal. Or should you use
Postgres, MySQL, or some shiny NoSQL thing? Again, probably doesn't matter for
small websites. But for larger services, it matters.

Also, don't underestimate how large log files can grow in a data-driven
business (like AirBNB seems to be). I could easily believe that they have many
terabytes of data just from logging actions their customers have taken.

~~~
adgar
> Also, don't underestimate how large log files can grow in a data-driven
> business (like AirBNB seems to be). I could easily believe that they have
> many terabytes of data just from logging actions their customers have taken.

Logs don't have remotely the same access requirements as the databases used to
serve a product.

~~~
j_baker
Indeed, but it's worth pointing out that in this case "different" doesn't
necessarily imply "easier". Instead of having to access the data across many
concurrent connections, you have to be able to store the data efficiently so
that it doesn't take up too much space and you can do jobs on them that don't
take 3 weeks to complete. And let's not get into how you collect and merge
them together. There are open source tools to do these things, but you're
still looking at a decent amount of infrastructure to make it work.

------
kyledrake
I did a presentation on a game I made at Geoloqi that talks about the Fusion
IO drives and why I think local hardware with SSD is the best solution for
persistent data stores right now:
<http://www.slideshare.net/KyleDrake/building-mapattack>

~~~
kyledrake
The one warning I want to provide though is that not all SSDs are created
equal: Make sure you get one that writes its cache to the disk on power
failure, or you're going to be in a world of hurt.

~~~
krupan
Can you explain more? You aren't talking about writing data that is cached in
the SSD to a regular hard-drive, are you?

~~~
tesseract
I think he's talking about writing data in the SSD's DRAM cache into the
actual flash.

~~~
krupan
That's what I thought too. Fusion-io drives all flush their write buffer to
the nand flash on a power cut event, I wasn't aware that some SSD's didn't.
People use iodrives as a caching layer in conjunction with tradition spinning
hard drives, so wondered if possibly he was referring to that kind of setup.

------
groggles
Pedantry -- that isn't Moore's Law related, aside from the loosest
interpretation that computers as a whole get faster.

This is so true, though. Much of the horizontally scalability need comes from
the land of extremely underpowered VPS machines on platforms like AWS. Yet the
mind-boggling scale of performance you can inexpensively* (*-term used
relatively) acquire for database servers is astonishing. SSDs (and plug-in
flash drives) and boundless memory have changed everything.

~~~
_delirium
Given all the problems they've had with AWS, I wonder what the overall
cost/benefit would be for someone like Reddit moving from the flexed-
EC2-servers model to just one high-powered db server and some caching
webservers in front of it.

~~~
adestefan
Reddit's probably was using trying to use EBS as a backend for a transactional
database. The issue is that EBS makes no guarantees on latency, only that
they'll never lose your data.

~~~
bad_user

         they'll never lose your data

Amazon is not saying it, but EBS is probably lying when doing an fsync().

In this post [1] explaining why Reddit was down, one problem was that the DB
slave got _ahead_ of the master, with the most probable explanation being that
the master flagged the data as being safe for replication, before committing
it to disk and I trust PostgreSQL more than I trust EBS.

In this forum answer Amazon is giving about this potential problem [2], they
are dodging the question by saying that fsync() guarantees durability for
instance failures, but not for volume failures, with the anual failure rate
(AFR) being given as 0.1% - 0.5% for volumes (how accurate that is, it remains
to be seen).

So EBS is probably lying about fsync's success, especially since the behavior
of fsync in virtual environments is always a surprise. So you can definitely
lose your data more frequently than if you had your own hardware.

[1] blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html [2]
<https://forums.aws.amazon.com/thread.jspa?threadID=27590>

~~~
cperciva
_Amazon is not saying it, but EBS is probably lying when doing an fsync()._

Given that POSIX says "the nature of the transfer is implementation-defined"
and they've defined what fsync does on their implementation: No, they're not
lying.

I wouldn't say that they're being misleading, either. On a local physical
disk, once fsync returns your data is safely stored unless/until the disk
dies. According to the forum post you linked to, semantics on EBS are exactly
the same.

fsync does _not_ mean "has been written to spinning magnetic media".

------
bitops
What never seems to get mentioned is energy cost. Sure, you can keep throwing
hardware at the problem, but eventually that will lead to a substantial power
bill.

~~~
rorrr
Sharding will lead to an even much higher power bill.

~~~
wildwood
Agreed, sharding takes "throwing hardware at the problem" to a whole new
level.

~~~
bitops
I agree with what both of you have said. It's possible that, in the not-too-
distant future, "green programming" will become a new field. If you can design
an architecture (both hardware and software) that demonstrably reduces power
costs, that's a valuable skill.

And, I'd argue, on two fronts: lower costs for the company, plus good
marketing. Every forward-thinking company (at least from what I've observed)
are eager to brand themselves as "carbon neutral", "eco-friendly", etc.

------
dkhenry
This is nothing more then trying to pay the interest on your technical debt
instead of paying off the balance. The longer you wait the more it grows and
the bigger the problem becomes down the road. Right now its 20K for a new
system, And for your troubles you still get no redundancy. Yes ram is cheap
and you can just buy a bigger system next year, but hopefully you will hit a
limit (growth is like that) then you will need to scale your now large and
complex system. Code will need to be reworked. Interfaces will need to be re
architected. The guy who wrote that bit of code for you that runs your whole
business he may not be with you any more, even if he is that hack he put in
place because you had the horsepower to spare, he doesn't really remember why
he did it at 3:00am that one morning when stuff got out of hand. Now you have
downtime and huge development costs, because you ignored a problem and instead
threw hardware at it.

------
wazoox
One of the most common similar occurrence I meet regularly is people grossly
underestimating how many bytes per second you can really get from basic
hardware such as hard drives, gigabit ethernet cards, etc. People often still
remember that in 1998 the fastest FC 10k rpm drives hardly topped 12 MB/s, and
that you needed an 8 CPU Origin2000 to push 80 MB/s through a GigE link (given
that you had a terrific RAID array at both ends).

Nowadays, even the most basic PC can saturate a GigE link (115 MB/s), and the
slowest hard drives go 100 MB/s. Any SSD sustains several thousands IOPS, and
so on.

One of the most unfortunate result is that people often buy hugely powerful
hardware when very basic stuff would have done the job just fine. How many
people have I seen running puny workloads on 100k bucks 3Par or EMC arrays,
where a handful of SSDs in a server would have done as well or better? Pulling
40Gb fibre across the room when cat 6 cable would have sufficed?

------
wes-exp
For those with custom hardware setups like this, how much time do you estimate
you've spent designing, building, and maintaining custom servers?

I can see how it would be less effort than sharding, but it seems like
throwing hardware at the problem is not a completely "free lunch" when you get
to the scale of having to custom design a server supercomputer and source
specially made SSDs and terabytes of RAM.

~~~
sciurus
You don't need to "custom design a server supercomputer". This stuff is as
mainstream as Dell. You can go to dell.com and order a Poweredge R815 with 64
processor cores and 512GB of RAM for $16,000. If you want SSDs, you can
purchase SATA or PCIe ones from Dell as well.

<http://www.dell.com/us/enterprise/p/poweredge-r815/pd>
<http://www.dell.com/us/business/p/fusion-io-drive/pd>

------
mhartl
I think they mean "Dr. Moore". "Mr. Moore" is a hack documentarian. _Dr.
Moore_ , on the other hand, has a Ph.D. in Chemistry from Caltech.

------
bwooce
Gah, stop abusing the word punt. The headline is nonsensical.

Punt does not mean avoidance. It has much closer associations to "attempt"
(punter, plus rugby usage).

I totally agree with the rest of the article, why shard or otherwise
distribute your database before being required? Although I think I would build
my DB as shard 1 of 1 to allow for the future case.

~~~
ellyagg
You're thinking of British English. In America, punt means avoid, and most
people here probably think of an American football punt--which is the
voluntary end of a failed offensive possession--so suggests you're giving up
for now and will try again later. We probably bastardized it, sure, but that
ship has sailed.

~~~
bwooce
Thanks. Such a great word, lost forever :)

So if I said "take a punt", would that be to take, or not take?

I should build a guide of "words not to use on presentations".

------
alexjipark
hmmm


Vim: reorder tabs - simonreed
http://www.vim.org/scripts/script.php?script_id=2520

======
simonreed
My preference however is to use Shift-Left, Shift-Right to move the tabs:

map <silent> <S-left> :call MoveCurrentTab(-1)<Esc> map <silent> <S-right>
:call MoveCurrentTab(1)<Esc>


Adi Shamir couldn't get US visa to attend RSA Conference named for him - ereli1
https://www.cnet.com/news/adi-shamir-couldnt-get-us-visa-to-attend-rsa-conference-named-for-him/
======
locacorten
I really hope this event is picked up by the media. This is truly worrisome
because it unnecessarily erodes US's ability to be at the forefront of
technology research.

This is not about H1B visas. Not about the Muslim ban. Not about China.

This is about a famous scientist from a friendly country who has already
traveled to the US countless times. Oh, and due to him, we can conduct secure
electronic transactions on the Internet now.

IMO, somebody at the US State Department should be fired.


Ask HN: Best way to find front-end/UI developers? - capkutay

My company has spent some time trying to recruit front-end and UI developers in the Bay Area. We want to spend at least another month searching before we go through a recruiter.
Does anybody have any advice as to which job sites work best specifically for finding front-end/UI devs? dice.com? stackoverflow.com? Thanks! Ping me if you have any other ideas.
john@webaction.com
======
zinssmeister
A good front-end/UI engineer is in general hard to find, because these
individuals ideally need to live at the intersection of development and
design. You should also consider searching <http://dribbble.com/> for
engineers with design/UI interest. Another good destination would be to post a
job at <http://jobs.37signals.com> and make sure you have the right job
description. Good front-end guys/girls are usually looking for specific
requirements in a job post, to make sure their potential employer is aware of
their unique position within the technology stack. Feel free to reach out to
me if you wanna know more...

------
mnicole
I'm going to piggyback onto this and hopefully get a good collective together.
As someone that mostly fits this description I've been trying to find similar
folks on Dribbble to add to my Developer inspiration list
(<http://dribbble.com/mandynicole/lists/4584-Developers>). If you have an
account and fancy yourself a dev/designer combo (or even just a dev with a
Dribbble account), let me know so I can add you!

~~~
capkutay
Thanks! I am a dev but not a designer. Just created a dribbble account and
added you!

------
michaelpinto
You might really be looking for two people: Separate out the UI from the
front-end development. Yes there are some people who can do both tasks well,
but even then they tend to be stronger on one side than the other.

Also in the Bay Area there would be a ton of competition, so you may want to
broaden your geographic scope (or even recruit people to come to the Bay Area
if you hit a wall).

------
whichdan
I maintain a small ad-free site that links to a bunch of job boards[1]. There
are definitely a few good sites out there.

You can also wait until tomorrow morning and post in the monthly WhoIsHiring
thread.

[1] <http://careers.sh>


Luadns, managed DNS with Git and Lua scriptable back-end. - sramov
http://www.luadns.com/

======
relix
The Lua-code doesn't appear to be executed once for each lookup - as I first
imagined how it would work. So sadly, one cannot point different region users
to the closest server IP.

~~~
vitalie
Hello,

I'm Vitalie Cherpec, the founder of the Luadns project. :)

@relix It's a design choice, Lua code is used only to generate records.
Executing user code on each lookup it's just too dangerous.

We wanted fast lookups and security. User code is executed in a restricted Lua
environment in background.

If we'll have enough requests we'll add special functions to handle geo-aware
DNS load balancing.

~~~
reginaldo
Do wildcard records work?

~~~
vitalie
Yes, we have support for wildcard records. Example:

<https://github.com/luadns/zones/blob/master/example.net.lua>

------
dfc
After reading the title I was a little surprised when I skimmed the
documentation. It seems like a better title would be:

"Luadns, managed DNS with Git and Lua scriptable _front-end_ "

It seems like tinydns is your back-end. Which in my opinion is nothing to be
ashamed of. When I thought the service was a new dns server written in Lua I
was less intrigued. There are a ton of pitfalls when writing your own dns
daemon, tinydns is a good choice.

What are you going to do when dnssec becomes a requirement?

~~~
vitalie
Thank you for your suggestions!

We are trying to avoid reinventing the wheel. :) TinyDNS served me well more
than 10 years, I like the design of this piece of software ( although it needs
2 pairs of glasses to read it :) ), so it was a natural choice.

To provide IPv6 and DNSSEC support we'll provide another set of name servers
with NSD/PowerDNS as we designed Luadns with flexibility in mind (it's already
100% compatible with PowerDNS).

~~~
dfc
That's awesome. Do you mention that on your site? I don't remeber seeing it
but I might have not looked for ipv6/dnssec after seeing tinydns.

Knowing the path forward includes ipv6/dnssec definitely makes me more willing
to signup...

------
reginaldo
History: (from <http://www.luadns.com/about.html>)

 _I was a happy user of a free DNS hosting service for many years, when this
service was acquired by a competitor in august 2011, I was forced to move
somewhere else.

While migrating my zone files I realized that I don't like Bind syntax files
neither administering tens of domains through a web interface. I've started to
experiment on how it should look a perfect DNS service for me. I've realized
that I would love to store my configuration files in a Git repository and I
would need some configuration language for templating (Lua).

This is how Luadns was born on October, 2011._

I don't know if this is an after the fact explanation, but either way it's a
very good story about scratching your own itch.

By the way, they had me at _I would love to store my configuration files in a
Git repository_. As soon as I have a use for this in a new project, I'll be
their user. The examples are pretty cool too.

~~~
dsl
The dates line up. August 2011 was when Dyn bought EveryDNS and fucked
everyone.

I have been helping people move off the Dyn platform and encouraging the
development of efforts like this (both technically and financially) ever
since.

------
zdw
Will you support DNSCurve? It would be nice to get more people on that
particular bandwagon.

I set up a git/rake/djbdns/curvedns setup in an afternoon with a few VPS's,
which has been quite solid for me.

~~~
jevinskie
How has curvedns been for you? I need DNSCurve for a research project of mine
but I'm very frightened to see that curvedns is the only forwarding
implementation and gdnsd is the only authoritative implementation. Speaking of
implementations, what the heck do you use for a client/resolver!?

~~~
zdw
That's the chicken/egg problem. The only real clients I've seen right now are
the python testing implementation, OpenDNS's servers, and the DNSCrypt
implementation that OpenDNS released:
<http://www.opendns.com/technology/dnscrypt/>

Looking at one of my CurveDNS logs for the last few days and doing some very
basic math:

        $ grep "query too small to be DNSCurve packet" *.s | wc -l
        27539

        $ grep "DNSCurve shared secret" *.s | wc -l
        2282

        2282/29821 = .07652

So about 7.6% of all DNS queries are being answered via DNSCurve. Doing
reverse IP lookups on the querying servers, nearly all of these requests are
coming from OpenDNS.

btw, gdnsd dropped DNSCurve support in recent builds, so it's only curvedns
now.

------
Pkeod
My humble suggestions:

Your pricing page "Sign Up" buttons should go to a sign up screen not a sign
in screen.

On sign up you should collect credit card information. You will get less sign
ups but more revenue, and you won't have to shut off free people if they go
over their query quota. Auto upgrade if they do? Send an e-mail saying they
are close to meeting their query quota and that they will be auto upgraded if
they do?

After sign up you should display a message saying for them to open their
e-mail client and click the confirm e-mail - not just a login screen.

Kill the $39 price point. Just have $9, $27, $69 and then below those three
have the free option, and explain if they go over their quota they will be
upgraded (thus requiring cc information on their account).

~~~
vitalie
Indeed, free users are notified to upgrade their account upon hitting quota.

We are not collecting CC information as we chose Avangate to process our
orders. Dealing with CC it's a big hassle, we wanted to allocate more time for
the service itself, maybe in the future it will make more sense.

Thank you for your suggestions!

------
chrishas35
Any chance of you guys allowing AXFR transfers? I really like the ideas behind
the service, however, I have reservations about moving production DNS given
your relatively young age. Being able to have secondary DNS elsewhere
eliminates the risk of switching over but maintains all the upside of your
excellent interface.

~~~
vitalie
AXFR support it's on our priority list, we'll release an update soon. Please,
subscribe to our Twitter feed or Blog's RSS feed and we'll make an
announcement when it's ready.

Yes, it's a young service, we have launched on February 10 (in production
since December 15) and we are aware of great responsibility involved by this
service. We took many measures to ensure quality of this service. All servers
and services are monitored with Nagios and we are notified by email and SMS.
We are adepts of test-driven development, so everything it's tested before
released in production.

~~~
chrishas35
Thanks for the reply. I look forward to switching over as soon as you are able
to implement AXFR.

~~~
vitalie
AXFR support is ready, check _slave_ function from the manual:

<http://www.luadns.com/help.html#functions>


Ask HN: Alternatives to Gmail that are new, cool, etc? - cl42
Curious if people use any personal email tools. I like gmail but also realize I haven't looked for an alternative in several years.
======
reacharavindh
Fastmail. Paying $30/yr for my email hosting. Pros:

I don't have to worry about my emails being scanned to create a profile of me.

I got my <firstname>@fastmail.com which I could not with Gmail.

As a paid customer I get support for if/when something is wrong.

Has solid Web UI that is minimal and fast. Email client for ios works great.

Cons: Not the cool new thing. Setting it up for shared calendar with others
was a bit unintuitive.

Every now and then someone sends me a Google Doc, and I need to think about
how to open it without a Google account.

Spam filter is not as good as Google's. A phishing email gets to the inbox
every now and then. But, I report them.

~~~
LeoPanthera
Not getting <firstname>@ shouldn't really be a problem. Everyone should buy
their own domain name for email. It's cheap, easy to setup (and natively
supported by Fastmail), and it means that you're not locked into one mail
provider ever again.

Don't be <firstname>@fastmail, be <firstname>@<lastname>.me - or whatever you
prefer.

~~~
0x00000000
I have an uncommon last name - about 3 families in the world with it as far as
I can tell. Some asshole has been squatting <mylastname>.com for over 20 years
and said he "hadn't considered selling it" then wanted $100,000 for it. The
same guy has been squatting hundreds of domains since the 90s, many of them 1
letter off from major websites.

What can I do against this scum? I saw that there have been many successful
disputes against him so I was thinking of constructing one in a similar vein
saying that his use of my unique last name to serve malware and ads is
damaging to my reputation but it seems a little weak.

Also no other TLD is even an option for an email address because people always
assume you made a mistake and just send things to .com anyway in my
experience.

~~~
true_religion
For 100 thousand you could just buy a tld and be firstname@lastname

------
pbiggar
I'm excited by superhuman ([https://superhuman.com](https://superhuman.com)).
Alas I haven't got an invite. Also, dunno if they're going to support my style
of email use out of the box (I'm strict adherent to the Andreas Klinger style:
[http://klinger.io/post/71640845938/dont-drown-in-email-
how-t...](http://klinger.io/post/71640845938/dont-drown-in-email-how-to-use-
gmail-more)).

~~~
OJFord
> I'm excited by superhuman ([https://superhuman.com](https://superhuman.com))

That looks like any other Electon-based email client that someone decided
wasn't cool enough any more...

~~~
pbiggar
Can you explain? I don't see how you got to that conclusion.

~~~
cyphar
The first screenshots on the homepage. It looks like every other electron
email app (and also messaging app). Also the overuse of the word "brilliant"
is quite grating too.

------
nkkollaw
Google Inbox is really amazing, it groups email automatically and its spam
filter is awesome.

~~~
patrickdavey
I also like Inbox, except that the desktop experience is so utterly woeful.

~~~
koymas
I use Inbox because I cannot find any other free alternative. It is awesome on
the phone....but on the computer it takes forever to load.

------
revanthc
Hello,

I work for Zoho Mail, so I may be slightly biased here but I would recommend
Zoho Mail :). Let me try to convince you about why you should move to Zoho
Mail. 1\. Privacy - We are a 100% ad-free email service. We always have been
and always will be. We don't scan your emails for keywords, we don't show ads,
anything. We are 100% committed to maintaining your privacy.

2\. Cost - We have a free plan that is free for up to 25 users. Through our
referral program, you can get another 25 users absolutely free. That's a total
of 50 free users, which is plenty for most small businesses. Our free plan is
perfect for that. Above that, our paid plans start at $2/user/month. You can
take a look at our pricing here -
[https://www.zoho.com/workplace/pricing.html](https://www.zoho.com/workplace/pricing.html).

3\. Reliability - We have a 99.9% uptime guarantee for Zoho Mail, which is the
industry standard. We constantly work on upgrading our infrastructure to
maintain that reliability. In the odd event of a downtime, we have contingency
plans in place for you to access your email.

4\. Features - We are constantly innovating with email, to make it fit into
the modern workplace. We've introduced a new feature called Streams, which is
perfect for teams and combines slack like real-time collaboration with email.
We also have a host of exciting new features for email.

5\. Integrations - Zoho Mail is part of 30+ apps from the Zoho family. All our
apps are well integrated with each other, and can be used to run your entire
business from the ground up. In addition, we are also integrated with 3rd
party apps like Dropbox, Asana, Trello, and more.

6\. Migration - We make it easy and hassle free for people to migrate their
email to Zoho Mail. It is free of cost, and there is absolutely no data loss
at all.

To begin with, I recommend you try our free plan. All the features of the paid
plans are available in Free as well, so you will get a clear picture of what
Zoho Mail is. If I can help in any other way, please feel free to reach out to
me at revanth@zohomail.com.

Thanks!

------
dangom
I'm really happy with posteo.org

1\. Ad-free, bloat-free, 1 Eur / month.

2\. Privacy respecting, with clear transparency reports.

3\. Support for IMAP/POP3.

~~~
majewsky
Seconded. Happy customer since 3 years here. The only thing that's not nice is
that they do not offer Bring-Your-Own-Domain. You can only have a @posteo.tld
address (with a certain range of TLD).

------
mindcrash
Protonmail: 100% guaranteed E2E encrypted, nice UI, servers based in
Switzerland, Android/iOS apps available aswell. Oh, and open source.

[https://protonmail.com/](https://protonmail.com/)

As a nice addon they also recently launched a interesting VPN solution. Also
headquartered in Switzerland with core infrastructure located in Switzerland
and Iceland. No logging, and Tor routing is available with a single mouse
click.

[https://protonvpn.com/](https://protonvpn.com/)

------
alnitak
I have been looking for an alternative to the Google apps ecosystem, to
support mailing, calendar, contacts and document editing, but most importantly
it should allow me to have "guests" contributors to documents I can share with
them.

Anybody knows of a company providing such a service?

~~~
swsieber
Sandstorm.io? I don't think it would cover everything... but it might work.

------
rrggrr
MIXMAX. It adds many great features to Gmail. Its too expensive, its pushing
too hard to integrate with Salesforce, its probably too dependent on Gmail.
But, all that said, I really cannot live without it. The founder Olof is a
genius.

------
tgragnato
Tutanota

[https://tutanota.com](https://tutanota.com) \-
[https://github.com/tutao/tutanota](https://github.com/tutao/tutanota) \-
[https://en.wikipedia.org/wiki/Tutanota](https://en.wikipedia.org/wiki/Tutanota)

The company is based in Germany and benefits from BDSG.

~~~
OJFord
No pricing information without signing up for the free tier?

~~~
tgragnato
[https://tutanota.com/pricing](https://tutanota.com/pricing)

~~~
OJFord
Oh, thank you. I feel a bit stupid for not just trying that URL, but I
couldn't (can't) find a way to navigate there from the home page...

------
Sephr
Paid Gmail & Inbox (G Suite).

Personally, it feels like Google's spam filtering is still superior to the
competition, so it would take quite a lot to get me to switch to a new vendor.

Not to mention the integrated action buttons that Gmail and Inbox have
supported for years. Those buttons are a great productivity enhancement that I
have yet to see from most of the competition.

------
Everula
Just started using Spark [https://sparkmailapp.com](https://sparkmailapp.com)
for Mac and iPhone (couples of weeks now) and quite like it, generally overall
positive experience and great UI. PS., I am not working in the company, just
using couple of their products.

------
cl42
THANK YOU EVERYONE! What an amazing set of answers. I'll be exploring a lot of
these over the coming weeks.

------
busymichael
I have looked around but haven't beat a paid g suite account.

I have also coded some custom extensions to Gmail that make it more useful.

The most popular one I run is [https://dndemail.com](https://dndemail.com). It
basically adds do not disturb to Gmail.

------
kureikain
I'm using Zoho. I have no issue so far. You can easily register and point your
domain to them. Free if you have less than 5 users. You can then configure
catch-all email to forward everything to you.

Work pretty well on any IMAP/SMTP mail client.

~~~
revanthc
Thanks for recommending Zoho Mail. Appreciate it :)

Just want to let you know, however, that we've changed our pricing, and now we
are free for 25 users. We have a great referral program as well that lets you
earn a further 25 free users, should you need them.

[https://www.zoho.com/workplace/pricing.html](https://www.zoho.com/workplace/pricing.html)

------
sheraz
outlook on mobile and web is great. I happily throw my $8/ month at them.

My only peeve is the confusing admin tools -- it is still Exchange on the
backend, so there are a ton of features and settings that are simply in the
way.

------
reaper7
I also have thexyz.com as my email provider, very reliable service and I like
how there are unlimited aliases included so I can have
someotheremail@thexyz.com or 2news@thexyz.net also sent to my main address.

------
carrotam
I find thexyz.com a really good alternative they have a $20 per year plan and
a $50 that adds more storage and syncs your contacts and calendars also. It
does a great job of keeping spam out too.

------
leke
It would be great if telegram incorporated email into their system.

------
desster
Take a look to ox.io, an European safe and secure mail provider. It take 1 to
2 days to get an invite.

------
the_common_man
Rainloop with cloudron is awesome

------
alkhatib
zohomail.com

------
crispytx
protonmail

------
alansmitheebk
I use protonmail (protonmail.com). It's encrypted email developed by the
scientists at CERN. The data is hosted in Switzerland and therefore subject to
Swiss privacy laws. There are app for iPhone and Android. They just came out
with a VPN product, too.

~~~
wheresvic1
The free plan is only limited to 500 Mb though.

~~~
LeoPanthera
Pay for your email or you are the product.


A Little Better Advice - sant0sk1
http://mattmaroon.com/?p=617
======
aneesh
Matt, that's one of the first "advice" pieces I've read that acknowledges that
all people don't (and shouldn't) make the same decision in the same
circumstances.

Helping people weigh the tradeoffs is MUCH better advice than "yes"/"no". I
wish more bloggers would take 5 seconds to think about that before posting.

~~~
helveticaman
So true. I was doing a financial analysis of American professional sports a
few months ago. I assumed height was a known variable (which is true; a doctor
can predict a child's adult height within an inch), but talent was dependent
on hours spent practicing (the whole 10,000 hours thing). That's all that
really matters. What I came up with was that you have to be something like
6'7" or taller to have a reasonable shot at success. If you're going to be
this tall or taller, it becomes a wise investment to work at becoming good at
football, basketball, or baseball. By this I mean you have a reasonable
expectation (like 1 in 5) of getting drafted to a major league.

------
rokhayakebe
So should I do a startup or not?

~~~
mattmaroon
No :)

~~~
medianama
What would you say about <http://news.ycombinator.com/item?id=381492>

~~~
mattmaroon
Given the information presented, and assuming I felt I could get another job
in a year if things went poorly, I'd probably go for it. That's just my first
impression based on decent but not complete data, and applying my own loathing
for having to be somewhere at 9 a.m.

I find it interesting that his comments were killed, even though they seem
reasonable, due to some very unpopular comments on other posts.

~~~
medianama
What more data points would you need to make a better decision? Some more info
below:

Revenue - $200 last month (Ad - 80%, Premium Services - 20%) Average time on
site: 7 mins Bounce rate: 21% Daily new users: 27%

Business: Its a sub category in a mature and proven industry.

~~~
mattmaroon
What are his non-mortgage expenses? How long can he last assuming he wants to
eat? (Those always add up to more than one thinks until he tracks them.)

Does he have people counting on him? A wife or children?

What are the benefits of quitting rather than continuing it moonlighting? Does
he need to seek funding? Is that a preferable option to continuing on with the
job? Might be if his runway isn't all that long after all expenses are
counted.

Would he be better keeping the job and plowing the monthly profits into
AdWords for the time being?

~~~
medianama
There are hardly any non-mortgage expenses.. Wife earns and can contribute
30-35% of the mortgage. mortgage is about $1500/month

Don't want to seek funding but want to invest more time in promoting/marketing
the product and also launching similar products in other sub-categories...

"Would he be better keeping the job and plowing the monthly profits into
AdWords for the time being?" - That makes me think!!

~~~
mattmaroon
Well, I don't know if you'll ever get a better chance to do it in your life.

------
ph0rque
So what's up with the closed comments?


Password Party: distributed password cracking in Javascript - goldmab
https://github.com/goldmab/password-party

======
goldmab
I wrote this thing and would like suggestions on how to improve it. Thanks.


StartupPR: It Isn't Just Buzz, It's About Relationships - crystalrichard
http://www.onboardly.com/startup-pr/startuppr-it-isnt-just-buzz-its-about-relationships/?__lsa=c7f3ab80

======
heatheranne
Thanks to Tyler for this post. Good perspective. Agree 100%.


CSS-In-JS and Static Rendering - jamesknelson
https://frontarm.com/james-k-nelson/css-in-js-static-rendering/
======
LeonM
I recently tried to use a popular UI combo (React + Material UI) and wanted to
use static CSS. Just good ol' regular CSS files included in the HTML head.
This so I could host my frontend on a static webserver (AKA a CDN) and use
Content-Security-Policy.

I had to jump deep in a rabbit hole of build systems that no-one seems to
understand and a dependency hell that I haven't experienced since my Python
days. Any Github/Stackoverflow post I could find on the subject was already
obsolete.

The 'advise' most devs gave would boil down to disabling CSP by allowing
unsafe-inline, or serving the index.html through a NodeJS server and injecting
CSP nonces through a templating system. Both are not solutions, but
workarounds to a problem that shouldn't exist.

Once again, I had to conclude that the modern webdev frameworks are not mature
enough to use for any serious work. I'll try again in 2020.

~~~
Chyzwar
You used a framework that specifically uses CSS in JS and tried to use it as a
server-side rendered website.

There is plenty of react frameworks that are geared toward traditional CSS:
reactstrap, semantic-ui-react and ant design. Not to mentions that you could
have used any css framework.

~~~
LeonM
> You used a framework that specifically uses CSS in JS and tried to use it as
> a server-side rendered website.

No, I _DONT_ want server side rendering. That's the whole point. I want an
application that renders client side, but without the dynamic CSS injection
that breaks CSP.

The only current solution that is being offered [1] would be using server-side
rendering to inject CSP nonces into your client-side rendered app... it's
madness.

It should be possible to compile the CSS-in-JSS into a .css file and serve
that css file statically.

[1]
[https://github.com/cssinjs/jss/blob/master/docs/csp.md](https://github.com/cssinjs/jss/blob/master/docs/csp.md)

------
girst
To me, this looks like a solution looking for a problem, especially when the
author talks about all the workarounds that become necessary just to get back
to square one.

It also switches up the pyriamid of reliability[1].

[1]:

            /----\
           / CSS  \
          /--------\
              /\
             /JS\
          /--------\
         /   HTML   \
        /------------\

~~~
martin_drapeau
Definitely agree. CSS is there to provide uniformity across an application's
(or website's) UI. Its global for a good reason.

------
forsythe
Personally, I don't mind the concept. I can write CSS on a microwave if I have
to. But CSS is supposed to be simple, not to be mixed with JS.

There are good designers out there who know HTML and CSS but not JS. This will
lead to a problem for those people.

Let's be honest, you cannot just jump into a React component and edit CSS if
your knowledge of JS is slim to none.

~~~
ggurgone
simple != reliable

What is so hard about writing CSS in JS?

~~~
yowlingcat
Scoping. The way you style a large, complex application is going to be very
different using CSS-In-JS vs pure CSS.

~~~
nullandvoid
I think you're missing the point you can do both? If you want to load a global
stylesheet for common theming and then provide component level CSS in JS then
that's absolutely fine and even suggested. Having dealt with many styling
solutions in my time I find using styled components with the style mentioned
is one of the greatest developer experiences I've had in many years. Being
able to interpolate your react state within your css is just great and opens
up the doors to massively simplify dynamic layouts which the state of which
are much better represented in JS

------
Theodores
It is all getting a bit silly really. The web needs to be accessible and not
restricted to those under thirty that know lots about build tools and little
about the world. I prefer the web as originally envisaged with the HTML being
essentially human readable rather than obfuscated machine code. It doesn't
need to be some data rendered on the frontend by scripts that embed CSS,
everything works fine if done old school but properly.

After the browser wars, the iPhone, RWD and frameworks we were left with a
complicated mess. But CSS Grid, CSS variables and HTML5 semantic tags have
came along with Javascript that you can just use without some silly 'jQuery'
thing to make it cross browser.

The choice is ever more complication - which is not accessible - or back to
basics with sensible document structure - Tim Berners Lee style - and
everything accessible. By accessible I mean code that mere mortals can edit
and update.

Nobody is asking if what they make can be edited and maintained in ten years
time. If you are making the next app, e.g. Instachat for Squirrels so they can
find their nuts then yeah, go with the mountain of here today, gone tomorrow
build tools. Otherwise, if you are primarily just writing stuff for people to
read then all the assumptions of modern web development have to be questioned.

There is a movement out there to 'intrinsic design' and using what the browser
does rather than reinventing the wheel. Part of this is to use the CSS Grid
layout engine, the HTML5 inputs for validation and CSS variables to make
everything responsive. Pages written this way are just plain quicker, easier
to maintain and likely to last.

~~~
arvinsim
> There is a movement out there to 'intrinsic design' and using what the
> browser does rather than reinventing the wheel. Part of this is to use the
> CSS Grid layout engine, the HTML5 inputs for validation and CSS variables to
> make everything responsive. Pages written this way are just plain quicker,
> easier to maintain and likely to last.

This will only work when all browsers have feature parity.


What happened to AltaVista and Yahoo? From innovator to imitator to forgotten - venturefizz
http://venturefizz.com/blog/what-happened-altavista-and-yahoo-innovator-imitator-forgotten

======
prat
My question is only this. in the heyday of altavista or yahoo, could PG have
known that a hackercentric culture is whats most essential. Remember this is a
completely new economy and business - just like the automobile industry in
20th century, could anyone have predicted who would be the most important
players then ? dealers? mechanics? engineers? manufacturers?


So much for recession proof: U.S. video game sales take a 17 percent dip in March - peter123
http://venturebeat.com/2009/04/16/us-video-game-sales-take-a-17-percent-dip-in-march/
======
potatolicious
Ehhh I think it'd be wise not to jump to conclusions. I'm a pretty avid gamer
myself, and this year has seen an absolute drought of interesting games.

At any given point in a normal year I would have a want-to-buy game that's
coming out shortly. So far in 2009 I have not bought a single game simply
because none of them are that interesting. I was looking forward to both HAWX
and Resident Evil 5, but playing the demos for them convinced me not to buy.

The movie industry has been through this before - prompting predictions of the
end of cinema as we know it. Except then Hollywood started producing movies
people wanted to watch, and last I checked the industry is thriving.

I'm sure the recession has something to do with it - but I don't think it
explains all of the 17 percent drop.

~~~
DannoHung
HAWX was awesome. The demo doesn't really give you enough of an idea of what
the full game is actually like.

Let me paint you a picture: There are escort missions that are actually really
fun.

~~~
potatolicious
I actually later managed to play the first 4 missions on a borrowed copy... I
stand by my impression of the game :) It's decent fun if you have no other
game to compare it with, but coming in as a fan of the genre (Ace Combat et
al) it was a sore disappointment.

Aircraft handling felt sticky, and I found myself fighting it constantly just
to point the plane in the right direction - which may do well in a realistic
sim, but this is an arcade game. The "evasion vector" feature is also kind of
pointless - if you relied on it to get an attack vector on every opponent you
would _never_ pass the missions, seeing as it takes a solid 30 seconds to lock
onto your opponent.

Both art style and setting could use some work also. Ace Combat 6 (which is
the only real same-gen same-platform comparable game) had the skies filled
with hundreds upon hundreds of enemies, and it felt like a real _battle_
(unrealistic as that may be). HAWX felt like miles of nothingness with a few
bogeys (which is more realistic, but less fun).

~~~
DannoHung
The first 4 missions are like... training levels.

The game _seriously_ picks up a couple of missions past that. You don't even
have the ability to disengage your alpha limiters until mission 5 or 6 (the
one presented in the demo). As for the HUD vector thing? It's useful at
certain points in the game, but it's best employed in the campaign during a
couple of really awesome sequences where they require you to use it.

My biggest gripe is that it was short. But I think there's some major
replayability in there, particularly if you get some buddies to fly wingman.

------
chaosmachine
Video games are a cyclical market.

<http://trends.google.com/trends?q=video+games%2C+santa+claus>

------
electromagnetic
Having worked as a reviewer for 3 years, my personal opinion is that it
definitely didn't help that no truly good games came out this March.

The only actual new game (not a sequel) that appeared to be good to me was
H.A.W.X.. However, from the demo I couldn't say higher than an 8/10.

Resident Evil has always done reasonably well, however I've never liked the
series. Empire: Total War interests me, but I gave up on trying to follow PC
games after the whole DX10 only games and now they're bringing out D3D11! That
leaves GTA: Chinatown; I'd be interested in Pokemon Platinum, but these ones
always feel like such a cheat.

This leaves the only games I'd have bought as H.A.W.X. (not at $70 for a game
I don't trust to be amazing) and a DS game.

It doesn't help that prices of some of the big games haven't dropped in over 6
months from their original release price. Hopefully the recession and now this
huge drop in games sales might get them to drop the prices of games to get
their sales up. What seriously pissed me off was when the recession started,
Fallout 3 went _up_ in price.

------
wastedbrains
I bought half life 2 this year, I am helping by buying really old games...
hooray!


Bill Gates' new startup  - nick007
http://online.wsj.com/article/SB10001424052748704409004576146061231899264.html#printMode

======
pedalpete
Is it fair to the founders of terrapower to call it Bill Gates' new startup?

Though he has done a great job in getting them publicity, telling there story,
and opening doors, is it really is startup?


Sanitizing Sensitive Data: How to Get It Right (or at Least Less Wrong)[pdf] - mcguire
https://proteancode.com/wp-content/uploads/2017/06/ae2017_final3_for_web.pdf
======
mcguire
The slides from the presentation (also PDF) are:
[https://www.auto.tuwien.ac.at/~blieb/AE2017/presentations/ae...](https://www.auto.tuwien.ac.at/~blieb/AE2017/presentations/ae2017_chapman.pdf)


Rate my Startup: SnapBill - Automated recurring billing - qixxiq
Hey guys,
We're a small team from South Africa that have finally decided our startup is ready for release (been in private beta here for a while).
* Our main focus is on creating Services, and selling them. Once you add a new service to your account, we'll automatically generate signup forms (based on custom fields you specify) and deal with all the monthly invoicing.
* We do provide standard invoicing (ala Freshbooks/co) but its not our focus at all and is purely intended for the once-off invoices recurring billing companies need every so often.
* We only support PayPal for automated payments at the moment, but more support is coming soon - promise!
I'd love to hear any thoughts or comments anyone has.
http://www.snapbill.com
======
petervandijck
I am reading the homepage but don't understand why I would use this.

Sentences like this don't help: "SnapBill is an online invoicing and billing
system with service provisioning capabilities." Compare with the writing here:
<http://aws.amazon.com/fps/>

Your explanation here ("Our main focus is on creating Services, and selling
them.") isn't really clear either. Find a good way to explain that main focus
in 2 sentences, and put that on top of the page.

------
Silhouette
I write this in the hope it will be taken constructively: I think you
desperately need a good information architect and copywriter to redo your home
page, tour, etc.

I have spent much of the past two days looking at various options for
recurring billing and related automation for a start-up. It sounds like your
service ought to be of interest to me, right now.

Unfortunately, I have absolutely no idea after scanning your home page and
tour page what your target market is. Are you aimed at invoicing for
freelancers/agencies with a few repeat clients? Monthly billing for end users
of subscription web services?

You have written a lot (probably far too much) on your home page and tour
page, but without enough detail about what your service _actually does_ to
decide whether it's worth investigating further. For example, you mention tax,
but not whether you automatically handle VAT based on location (without which
you aren't going to get very far here in Europe). You mention payment
collection and credit cards, but without a clear statement of your level of
PCI DSS compliance and whether clients need to handle any card data on their
own systems to use your service (without which you probably aren't going to
get very far at all).

You aren't short of buzzwords and transparent marketing drivel, though, and
there are a few silly spelling errors and the like as well. That all paints a
very unprofessional picture given that you're asking clients to trust you with
vital financial matters.

For what it's worth, I did spend about 15 minutes looking over your site
before writing this post, partly to try to be honest but constructive in the
criticism, and partly out of genuine interest. In roughly the same amount of
time looking at the web site of another business this morning, I had confirmed
that they offered broadly the service the start-up was looking for, identified
most of the details about how the start-up's pricing plans could be
implemented using their system, identified a few specific details to ask about
and an e-mail address where the questions could be sent if and when the start-
up was ready to explore more deeply, worked out approximately what the monthly
costs would be for adopting the service, and begun exploring the
customisations and APIs to see whether they could address any of those
questions I mentioned before.

On a more constructive note, your site does look attractive, and I expect most
of the bad impression it made on me really could be overcome quite quickly
with a bit of professional help to structure the content, so that the
important details come across and the general feel is more professional
service and less budget store TV ad.

~~~
qixxiq
Point taken, we are going to get a copy writer to go over the site as soon as
possible.

~~~
petervandijck
You should be able to do this yourselves. (Good copywriters that understand
your business are very very, _very_ hard to find.)

Here's a random example paragraph:

"The SnapBill billing system is a fully-featured online billing automation
engine. The system is secure and easy to use.Sending invoices, quotations and
statements for recurring or subscription based services has never been so
simple. Add your own services to SnapBill and allow your clients to order them
via a branded and secure online order centre. Accept payment from your clients
through any of our supported payment collection channels."

So what did you just tell me there? "We let you easily bill people, send
invoices and accept payments". That's a much better sentence, but even that
you can remove because by the time we've arrived at this paragraph we know
that you do online invoicing and payments. In other words: remove this entire
paragraph. And most of the homepage is like that.

Another example: your first paragraph:

"SnapBill is an online invoicing and billing system with service provisioning
capabilities. SnapBill is perfect for all businesses, especially those
providing services requiring an automated recurring or subscription billing
system and payment collection facilities."

Are you trying to say that this is aimed at Saas companies? Then just say it.
No real person will understand that paragraph, at least not anyone you'd want
to date. Just say something like (if I am right): "Invoicing and billing for
online subscription services."

Remove redundancies and marketing speak.

As an example, "SnapBill is perfect for all businesses, especially those".
Read that twice. You're basically contradicting the first part of the sentence
(perfect for everyone) in the second part (perfect for some especially).

So guidelines to do your own copy-editing:

1\. Remove, remove, remove. Remove words. Remove filler. 2\. Think what you're
trying to say. With every sentence and paragraph, what are you trying to say.
Then say it as clearly as you possibly can. 3\. Show it to target audience and
ask what questions they're trying to answer. Then answer those.

Good luck!

~~~
Silhouette
> (Good copywriters that understand your business are very very, very hard to
> find.)

FWIW, this is why I also suggested an information architect. First you need to
figure out what the relevant information is, and to separate introductory
material for the home page and tour from finer details for prospects who need
to know more about specific areas. Then you need to present that information
clearly and in a suitably professional voice. These are different goals,
though of course they are related.

~~~
petervandijck
Much appreciated (since I am an information architect) :)

To do this yourself, find your target audience (some of them in this thread),
and call them on Skype. Put a screensharing app. Have them go over your site
and speak-out-loud, focusing on what the info is that they want to find. Don't
talk a lot yourself, the only words you should be saying are "why do you say
that" and "what are you thinking/looking for now?". Make HEAPS of notes. Then
have them go over your competitors sites. Make HEAPS of notes. After each call
(don't wait, don't go for lunch) immediately have a long discussion with your
team. Make a long list of things they are trying to answer.

Do this with 2, 3 people in your target audience (then send them an Amazon
gift certificate of 100$), and you should have enough information to make this
work.

Better than hiring a consultant :)

------
qixxiq
Clickable: <http://www.snapbill.com>

------
jaggs
Too much on the home page. Pick the top four features which you feel will
appeal to your target market and feature those solely on the front page, with
a 'more detail' type link so those who are interested can find out more.

You need more than a copywriter, you also need a more modern design. It's
rather dated in a funny sort of way. Take a look at some of your rivals to get
an idea of what modern looks like. (freshbooks.com)?

Modern web application sites focus intensively on helping the user make up
their mind within seconds as to whether to continue investigating your
service, which is why the Take a Tour button, and Try it Now options are so
prominent on most web app sites.

It's not that you're doing it wrong, it's just that you're giving yourself an
uphill battle to attract and sign potential customers.

Hope that helps for a starter. :)

------
JonoW
Good luck guys, eager to see a SA startup make it big (well post Thawte at
least)

------
JoelB
Small thing: I think having the name be the first item in the title is much
better as far as tab navigation:

"SnapBill - Online Invoicing and Billing System" as opposed to the current
"Online Invoicing and Billing System - SnapBill"

------
SeanNieuwoudt
One more piece of UI advice, the "Tour, Packages & Pricing Sign up!" menu is
not visible enough. I find myself constantly looking over it while on pages
other than the home page.

S

------
pjy04
I would also look into doing an automatic video about your product and do a
quick demo reel. (no sound)

------
SeanNieuwoudt
Great stuff guys! well done, looking forward to seeing more about SnapBill in
the media

~~~
qixxiq
We've got a lot in the pipeline :D

------
instakill
Rock on Jaco. Great to see some Safrican representation on here with great
products.

------
jorangreef
Amandla

~~~
qixxiq
Awethu!

~~~
3pt14159
<http://en.wikipedia.org/wiki/Amandla_(power)>

(for the interested)


Show HN: Ketchup.today, Dynamic Newsletters for Reddit, Twitter, and Hacker News - charleshan
https://github.com/charleshan/ketchup-chrome-extension
======
charleshan
It's on the front page of the Chrome Web Store!
[https://twitter.com/charleshancom/status/1140849864286228481](https://twitter.com/charleshancom/status/1140849864286228481)

The Chrome extension is only three lines long so I'm not sure if it deserves
the spotlight but hey, it gets the job done :)

------
Nanocurrency
Thanks for making this. I just signed up and the first email looks great. I
think you should link the channels page on the landing page of your website.

[https://ketchup.today/channels/](https://ketchup.today/channels/)


AMA with Gayle Laakmann Mcdowell - theamydance
https://medium.com/ladies-storm-hackathons/lsh-presents-gayle-laakmann-mcdowell-4a281088c98b
======
hallie1337
She spent so much time (over two hours!) going through each of these
questions, and giving long, well-thought-out, individual responses. It was
really great, and I hope to see more stuff like this in LSH's future!

------
gailees
Does anyone know of any other AMAs Gayle has done?

This AMA was full of wisdom and I would love to see how she would respond to
other questions that I forgot to ask this time around.

------
Lyoness
Awesome


The Neuroscience of Trust - kyle_morris_
https://hbr.org/2017/01/the-neuroscience-of-trust
======
kyle_morris_
_Former Herman Miller CEO Max De Pree once said, “The first responsibility of
a leader is to define reality. The last is to say thank you. In between the
two, the leader must become a servant.”_


The Texas Instruments 99/4: World’s First 16-Bit Computer - rbanffy
http://spectrum.ieee.org/geek-life/history/the-texas-instruments-994-worlds-first-16bit-computer
======
lispm
It was't the world's first 16bit computer. See:

[https://en.wikipedia.org/wiki/16-bit](https://en.wikipedia.org/wiki/16-bit)

Maybe it was the first 16bit HOME computer... as mentioned in the text.

~~~
IrishJourno
Hi -- I'm one of the editor's at IEEE Spectrum. You're absolutely correct: as
the article does make clear, it was the first 16-bit HOME computer. We should
have been more specific in the headline, our bad.

------
schlupa
The Basic was slow for several reasons. 1\. Double interpretation: As other
already pointed out, the interpreter was written in an interpreted language, a
kind of byte code if you prefer. 2\. GROM routines: What added to the pain was
that a lot of the routines necessary for the program were not in ROM but in TI
specific GROM. All the "CALL something" (CALL CHAR, CALL HCHAR, CALL VCHAR,
CALL SOUND, etc.) commands were GROM routines. GROM were a kind of serial ROMS
that only TI manufactured (one of the reasons third parties had such a
struggle with that machine). 3\. VRAM: the worst offender why TI-BASIC (and
TI-EXTENDED-BASIC) were so slow was that the basic console only had a wopping
256 bytes of memory. Yes, you read it right, the CPU only had 256 bytes of
fast 16 bit memory. This memory was used by the system and were not accessible
to the programmer. So where was the BASIC code then? It was stored in the
video RAM and the CPU had no direct way to read and write to it. It always had
to go through the TMS9918 video chip. This has 2 consequences, it was
obviously slow and it clogged the video RAM. So unless one bought the 32K RAM
expansion (which was outrageously expensive) or the mini-memory module (but
then no Extended Basic was possible) it was impossible to use the graphic
modes, making that incredibly advanced graphic chip a dud.

It's probably the strangest machine (aka f..d up) of the home computer era.

------
icedchai
My parents got one of these when I was 7... It was a TI/994A, actually. I have
fond memories of playing Parsec on it! I also taught myself Basic...

[https://en.wikipedia.org/wiki/Parsec_(video_game)](https://en.wikipedia.org/wiki/Parsec_\(video_game\))

~~~
MichaelMoser123
i think TI basic was much easier than comodore basic; (still it really needed
that extension cartridge)

[https://en.wikipedia.org/wiki/TI_BASIC_(TI_99/4A)](https://en.wikipedia.org/wiki/TI_BASIC_\(TI_99/4A\))

Also it turns out that the interpreter was slow because it was written in an
interpreted language, but it was good enough for simple games because they had
built-in sprites.

Interesting that they have emulators/simulators for it.

[http://www.99er.net/emul.shtml](http://www.99er.net/emul.shtml)
[http://www.99er.net/win994a.shtml](http://www.99er.net/win994a.shtml)

~~~
flomo
No idea if this is true, but the meme was that you could only write BASIC for
the TI99, assembly was forbidden somehow. For the most part, hackers avoided
this system like the plague, despite all the advertisements starring Bill
Cosby.

~~~
pmiller2
100% not true. There was an editor/assembler cartridge that let you program in
ASM.

~~~
nsxwolf
Your other option was the Mini Memory cartridge, which added a scaled down
version of Editor/Assembler as well as 8K of RAM and a battery backup.

It was an economical way to dabble in assembly without springing for the 32K
RAM expansion and disk system.

------
gbin
My first computer! I was 6. Started with TI invaders and ended up playing with
assembly with minimemory a couple years later. Not unlike the Amiga, this
machine was so in advance on its time for example with its hardware sprites.

This thing alone sparked my entire career.

If there are original TI engineers in the audience, it would be amazing to get
a kind of AMA.

------
IrishJourno
Hi Folks -- Stephen Cass here, one of the editors at IEEE Spectrum. Rather
than replying to a bunch of comments individually, let me say here that the
folks pointing out it wasn't the first ever 16-bit computer are absolutely
correct. As the article quickly makes clear, it was the first 16-bit HOME
computer: we should have been more precise in the headline, and that's our
bad.

Speaking personally, I really loved having this article in Spectrum and
reading everyone's comments, as I too was a 99/4A O.G. from the 1980s, (the
machine was my first computer before I moved onto the BBC Micro). And word,
yes, the system was squirrely, but I did at least learn to count in hex in my
head trying to turn user-defined characters into poor-man's sprites in TI-
BASIC

------
CamperBob2
Here's a don't-miss article on the internal politics and strategy behind TI's
early personal computing efforts:

[https://books.google.ca/books?id=wy4EAAAAMBAJ&pg=PA63&lpg=PA...](https://books.google.ca/books?id=wy4EAAAAMBAJ&pg=PA63&lpg=PA63&dq=ti+99/4a+lawsuit&source=bl&ots=vWNx4mFFgg&sig=jkeSAPUwPQCTPoBj-
AJy2d3lYtA&hl=en&sa=X&redir_esc=y#v=onepage&q=ti%2099%2F4a%20lawsuit&f=false)

The rest of that magazine issue is pretty interesting too, including the
interview with Ann Winblad, fresh off her $15M exit. ("The male mystique was
killed for me at age 2.")

------
protomyth
Our school had one with pretty much everything in the way of expansions. It
took up a lot of space on the table. I loved the voice synthesizer module
which I fiddle around enough with to make it speak Dakota (Sioux) with a
passable tone.

------
80211
It may have been the first 16-bit home computer, but it certainly wasn't the
first 16-bit computer. Or even the first 16-bit computer with a CPU on one
chip.

And there were many, many bit-sliced 16-bit computers that predated it by
years. Like the AYK-14:
[https://en.wikipedia.org/wiki/AN/AYK-14](https://en.wikipedia.org/wiki/AN/AYK-14)

~~~
pinewurst
[https://en.wikipedia.org/wiki/Whirlwind_I](https://en.wikipedia.org/wiki/Whirlwind_I)

Whirlwind, circa 1950, was probably the 1st 16-bit computer.

------
empressplay
I love the TI-99/4A but what about the SuperPet 9000? It had a second 16-bit
CPU you could use (the 6809) in _the same address space_ as the 8-bit 6502
CPU!

[http://www.old-computers.com/museum/computer.asp?c=675](http://www.old-
computers.com/museum/computer.asp?c=675)

~~~
ido
The 6809 was an 8 bit cpu (albeit an advanced one).

------
nobleach
This was my first computer. I remember the huge RF modulator that came with it
to hook up to my TV. I didn't get any games until quite a bit later (TI
Invaders) I spent many hours trying to program tic-tac-toe from a book I got
from the library.

~~~
T-hawk
The RF modulator is huge because it's also the power supply. Yet another odd
quirk of this machine's design.

~~~
nobleach
Oh wow, thanks for that! I've often thought of picking up one of these
machines again... but I quickly realize that I'd really have little to do with
it other than boot it up, and look at it. I think I'm probably more suited for
an emulator.

------
jasode
The most enduring memory from TI-99 wasn't the games like MunchMan and Parsec.
Instead, it was a specific oddity of the TI-BASIC language.

In the free TI-BASIC (built into ROM), the language had no boolean operators
like "OR", "AND". Instead, what programmers did was use math tricks to
simulate those booleans ... something like this:

Simulate "OR" boolean:

      IF (X=3) + (Y=5) THEN

Simulate "AND" boolean:

      IF (X=3) * (Y=5) THEN

As a child, it was extremely confusing to read those lines of code. _Why in
the world are we adding or multiplying nonsense like that?!?_ It turns out the
programmers took advantage of any value greater than 0 as "TRUE", and 0 as
false. Therefore, if either side evaluated to 0, multiplying the conditions
would be FALSE.

However, you paid $100 extra for TI EXTENDED BASIC cartridge[1], that language
had extra fancy features like the keywords "AND" and "OR". No more workarounds
using "+" and "* " operators. That was progress in 1980s.

That early lesson in "inherent complexity" has affected how I view arguments
today about "language simplicity". Not having things like "AND" "OR" makes the
_language syntax 's formal specification_ simpler on a superficial level but
it ends up making it more complex in user code.

[1]
[https://www.google.com/search?q=ti+extended+basic+cartridge&...](https://www.google.com/search?q=ti+extended+basic+cartridge&source=lnms&tbm=isch)

~~~
nsxwolf
I've always heard that TI-BASIC conformed to a "strict ANSI BASIC" standard,
whereas almost everyone else licensed Microsoft's version of BASIC.

Maybe that's why?

~~~
schlupa
May be. TI BASIC was also limited in a lot of other ways. It didn't have ELSE
and the THEN clause didn't allow for anything other than a line number as jump
destination. Only one statement per line. So doing something as simple as 10
IF a=1 THEN v=10 ELSE v=50 would have to be written as 10 IF a=1 THEN 40 20
LET v=50 30 GOTO 50 40 LET v=10 50 ...

This was IMHO the worst restriction of that BASIC.

The only feature on the plus side of that BASIC was that it used the BCD
floating format they also used in their calculator. So 13 digits precision
with numeric range of 10^-99 to 10^99. When I switched later to the Apple II,
I was shocked at the ridicule binary floating point format that couldn't even
add 2 simple numbers correctly :-)

The TI-EXTENDED BASIC was an absolute must if you wanted to do serious
programming. It enabled the sprites, had fancy stuff like named subroutines
(that could even be called recursively) and a lot of restriction of the
original BASIC were lifted.

------
Xoros
My school had a 4A (which was pretty unusual in France back then) and it was
the first time I touched a computer for programming.

2 friends and I were the only ones in school interested in it so we basically
were in the "computer room" every lunch break :) We didn't have any recording
device so it was just programming little stuff that will disappear at the end
of the session. Had really great times !

I was 12. It was 33 years ago. Still developing.

------
Frogolocalypse
My first computer was the 4A. I still have the ti-basic programming manual.

When I was 11 I used it to create fully-leveled NPC characters for dungeons
and dragons.

------
blackguardx
I had one of these as a child in the '80s. My family had it hooked up to a
black and white TV and I didn't know it could do color until seeing
screenshots online in the early 2000s.

------
chrisseaton
Something interesting that I learned recently is that the Manchester 'Baby'
machine was a 32-bit computer, back in 1948.

------
UncleSlacky
There was a good article recently in El Reg about the TI community that still
exists:
[https://www.theregister.co.uk/2017/02/27/community_builds_ar...](https://www.theregister.co.uk/2017/02/27/community_builds_around_ti_99_4a/)

------
nsxwolf
I wouldn't ordinarily pimp my own (poorly made) video, it's not even
monetized, but I have the only TI-99/4 demonstration on YouTube if you're
interested:

[https://www.youtube.com/watch?v=oBgxOaUU7lQ](https://www.youtube.com/watch?v=oBgxOaUU7lQ)

~~~
mikejmoffitt
I'm sorry, but I genuinely don't understand what you mean. There are thousands
of videos of people demonstrating use of this computer. Is there a specific
property of a demonstration you are looking for?

~~~
nsxwolf
The TI-99/4? Not that I've seen. 4A, yes. Maybe I'm in some kind of filter
bubble, but I've searched far and wide for another demonstration of the 4.

Can't imagine there are thousands of videos of the 4 since there were barely
thousands of them sold.

------
agumonkey
Didn't TI also had a dispute about the first microprocessor ? something
internal they didn't really market or .. I forgot.

ps: I always loved the 99 design, especially with the side modules. Reminds me
of old analog Meridian hifi modules

------
nsxwolf
As an owner I can attest to the terribleness of the keyboard. I've used most
of the bad chicklet keyboards out there - ZX, PCjr, Atari 400... this takes
the cake.

~~~
justin66
I remember the Atari and TI being about the same level of horribleness. With
the ZX and PCjr being unimaginably worse.

------
_Codemonkeyism
3 Mhz in 1981, very nice.

The games (Alpine, ...) I've looked up on YT look like C64 basic games though.
Why was that?


A Well-Funded Startup Emerges From the Unemployment Lines - jyu
http://www.wired.com/business/2012/08/learnup/

======
briggsbio
This is one of those "wow, so perfectly obvious no one has never done it."
This could (and probably should) the hiring process at many retail and service
jobs. In my teens I would have been all about proving myself by taking
whatever quiz or prescreening training available to get the job. This could
have micro impacts on allowing the most tenacious to get the job rather than
the most experience, which for the level of jobs they're focusing on initially
could be a positive force. Just imagine if Wal-Mart was filled with the most
proactive, not just the one with 6 months more of register experience.
Certainly many caveats to these statements, but with some evolution and
execution this could have really important impacts on the way low-level wage
employment is conducted. The interesting aspects would be to see it move up
the org chart. Also love the customer development of them walking the
unemployment lines to understand the market.

------
simantel
This sounds like a great way for big employers to require what would otherwise
have been on-the-job training be completed in advance of even applying. Which
is undoubtedly fantastic for employers, but probably less so for the
unemployed.

~~~
forensic
On-the-job training is already dead.

LearnUp, by recognizing it first, will profit as the middle class further
disintegrates into various strata of indentured servitude.

Corporations hold all the chips and so the labour force is obligated to take a
paycut--but since there is a minimum wage the paycut has to come somewhere
else. The market treats regulations as damage and routes around them.

Instead of the paycut coming in dollars, it comes in the form of pre-
application training requirements, internships, strange work hour
arrangements, complicated contracting situations, etc.

~~~
true_religion
On-the-job training emerged because there was no way for workers to gain
certain skills they needed without working under a corporation.

Sometimes the limiter was capital expenses....You couldn't go to your toolshed
and train on how to work in a steel mill, so instead you got trained on the
job.

Sometimes the limiter was social.... such as with lawyers---they receive on
the job training because you can't just graduate and start taking cases for
"practice".

On-the-job training will remain alive and well for people who are hiring into
specialized positions (e.g. database scaling specialists, engineers for
financial firms, anything to do with hardware, etc.).

Why do you think it's dead?

~~~
forensic
It's very easy to train for eg steel mill work in eg community colleges.
Specialized jobs can easily have their training outsourced. When a job pays
>minimum wage OTJ training can be paid fr by an apprentice paycut. When a job
pays close to minimum wage, this is impossible, so the OTJ training is
outsourced and the employee must pay out of pocket. This amounts to a paycut--
an innovation of the market in response to the artificial market distorting
minimum wage.

------
surferbayarea
This is a great idea!! Also there is a lot of useful content already on the
site, even on topics like programming/startups. This was the missing link in
the hiring chain.

------
dreamdu5t
Am I crazy or does Wired have the best tech startup journalism? These are the
kind of startups that should be covered by TechCrunch and funded by YC.

More evidence that public education is completely broken in terms of job
training.

~~~
ahi
Public education is about citizen training not job training.

Once upon a time, employers would actually train their new employees. These
days they have managed to push those training costs onto publicly supported
community colleges and the unemployed.

~~~
n_time
privatize profits and socialize losses. :D


Pharen: A lispy language that compiles to PHP - Scriptor
http://github.com/scriptor/pharen

======
Scriptor
This was very much a learning experience and I'm sure there will be lots in
the code that isn't done properly. If you find something wrong, please let me
know!

Pharen was also started to eventually abstract out things I don't like about
PHP's syntax, and maybe add some new ones. It's not meant as a competitor to
other lisps!

Some special features are micros (closer to C macros than true Lisp macros)
and partials (partial evaluation). Documentation for those can be found near
the end of the linked page.

It is by no means close to completion. Although lisp should be entirely
expression-based, parts of Pharen can't really be used as expressions yet
(namely conditionals). Closely related is that returning something other than
the last expression in a function has to be done manually.

Any questions, glaring (or subtle) problems, or suggestions you have are
definitely welcome.

------
petercooper
Nicely executed this one! Is it me, though, or has writing cross-language
compilers become a sort of open source fad in the last 12 months? There seem
to be a ton popping up lately. It'd be cool to have a list actually..

~~~
jashkenas
To add one to your list: I just pushed out CoffeeScript 0.2.5 a couple of
minutes ago. (CoffeeScript is a Ruby/Potion/Python/Harmony-ish to JavaScript
compiler, for those who haven't seen it.)

I'm doing a talk about it tomorrow (Thursday) night at NYCJS, and if you live
in New York and work on a source-to-source compiler, you should come and
discuss implementation ideas.

Resources for doing this sort of thing are hard to find on the web. There's
hardly space for comparison between "serious compilers", and things like like
CoffeeScript and Pharen, which are both well under two thousand lines of code.

~~~
Scriptor
Looking at CoffeeScript was definitely an inspiration to pick up the pace on
Pharen. :)

I'm actually a student in New York but can't be there Thursday. Will you be
giving this talk at any other events?

~~~
jashkenas
That's too bad. I don't have any plans for other events at the moment, but if
you're in New York we should go grab a coffee sometime and talk shop.
jashkenas(at)gmail, if you want to get in touch.

------
ieure
Nice start. I was considering something simliar, but I just didn't care enough
about PHP to work on it.

Stuff that I'd like to see improved:

1\. if/elseif/else syntax is pretty ugly. What are the chances of getting
if/when/unless/cond?

2\. Nicer array syntax. Maybe coopt the vector literal syntax, since PHP
doesn't have anything similar: [1 2 3]. Failing that, quotes: '(1 2 3) ->
array(1, 2, 3). Not sure how to handle cases where you would have something
inside the quote that would eval, though.

3\. Not thrilled with the superglobals/array syntax, which are more verbose
(or the same, in the case of superglobals).

4\. It isn't clear if/how this interacts with objects. Does it work like:
(object->method arg1…argN)? What about static methods?

~~~
Scriptor
Thanks for the suggestions.

1\. Pretty likely, though I'm a little hesitant to replace the current syntax
for if. The others shouldn't be hard to implement.

2\. I've been planning to use the vector literal syntax. I've basically been
lazy since PHP's array() construct makes it easy to cheat.

3\. Indexing into arrays presents a problem. Pharen doesn't know what's a
scalar, array, or function name at the moment so a special function for
indexing is needed. One possible solution is to prefix an array's name, so it
would be (:some_array 4) or something similar. I personally think the
superglobal syntax is cleaner, if not more succinct. Any suggestions?

4\. I haven't implemented an object system yet because I want to try something
new here instead of simply copying PHP's syntax.

~~~
ieure
1\. Perhaps you could keep the PHP-style syntax around under a different name.

2\. Sweet.

3\. (:some_array 4) seems perfectly reasonable. Would that interact with
superglobals the same way? e.g. ($:server "PHP_SELF"). I believe that PHP 5.3
or 6 has return value dereferencing, so I don't think it's necessary to know
the type - you could just do (:(array 1 2 3) 1)

4\. If you haven't played with Clojure, you might find inspiration there. It
has interop with native Java instances, though I find it a little too syntaxy
for a Lisp, and PHP doesn't have such deep class structure.

Thanks for responding.

------
TrevorBurnham
I don't understand the proliferation of cross-language compilers. As an
academic exercise, great, but for a large project, surely debugging is going
to be a pain when the errors refer to code that you never wrote?

~~~
Scriptor
Right now I certainly wouldn't use it for any large projects. It's a pain to
debug so it's really a tradeoff between better syntax and features and
problems in the development cycle. Making the output code nicely formatted
helps greatly.

The debugging problem can also be lessened by keeping each file small, so that
syntax errors are easier to localize. In the future, it's possible that I'll
make a debugging system that can read the PHP errors and find the Pharen code
responsible for it.

------
ThinkWriteMute
This looks pretty good, I like how it structures out.

You should write an example pastebin or some other simple web app that could
easily be done in PHP.

~~~
Scriptor
Done! <http://github.com/Scriptor/pharen/tree/master/pastebin/>

Note that html.phn, which contains a few simple html-element functions, should
be compiled before the pastebin works.

~~~
ThinkWriteMute
That is so much easier to read than PHP. Wow, consider me "sold".

------
mahmud
Why so arcish? Lisp used def* forms from day ONE, like God/McCarthy indented.


Sales for Startups 101: 3 Rules to Success - koichi
http://okdork.com/2010/08/12/sales-for-startups-101-3-rules-to-success/

======
kadavy
I like the thought that "sales is not selling, its understanding." Sales
people are way more pleasant when they really take the time to understand your
situation and needs.


Show HN: Tools for containerizing external services for dev - pinglamb
https://github.com/pinglamb/stocker
======
ksafranski
Have you seen DevLab?
[https://github.com/TechnologyAdvice/DevLab](https://github.com/TechnologyAdvice/DevLab)

Built it to get around some issues we had with Docker-Compose.

~~~
pinglamb
wow, that's great. I really like the before-task/after-task concept, which
makes that a more complete workflow.


On sufficiently smart compilers - YAFZ
http://osa1.net/posts/2015-08-09-sufficiently-smart-compiler.html
======
username223
> Unreliable optimizations and performance-critical software

This is why we will not have, and should not want, a "sufficiently smart
compiler," but instead a "sufficiently predictable compiler." If the compiler
is an enormously complex inference system, then tiny language-level changes
can result in huge performance changes (see "space leaks" in Haskell, or
"auto-vectorization" in basically anything). The solution isn't adding more
knobs to the compiler; it's adding easier inter-language communication.
Scripting languages like Matlab, Perl, Python, and R have been doing this
right for decades: make a good effort at a specific domain (math, text,
statistics), and make it easy to call into lower-level code for the key
pieces.

~~~
codygman
Space leaks are a bad example imo since they happen in other languages as
well.

~~~
Tyr42
Yeah, but having a chain of functions failing to fuse properly can be quite
surprising.

~~~
codygman
There seemed to be an implication that Hindley Milner type inference leads to
unpredictable performance, you can see that is untrue with ml and ocaml.

------
nhaehnle
Compiler optimizations as part of libraries is definitely something I would
like to see more languages explore. I think this is something that could fit
quite well into Rust, actually, with its philosophy of allowing compiler
plugins.

A simple example: Most high-level array implementations have a _reserve_
method that allows you to specify the expected number of items added to the
array. This allows allocating all required memory up front and hence avoids
re-allocs and the associated copies.

In many cases, it would be trivial for a compiler to automatically determine
the size of the array and add a reserve call automatically (because the
entries are added in a loop with an easily-determined iteration count). Yet
compilers cannot be allowed to do that, because doing so changes the visible
behaviour of the program.

However, _the library in which the array is implemented_ is free to define the
semantics of the array. So that library could provide some hint to the
compiler, in essence a library-provided optimization pass, which allows such
reserve calls to be added automatically.

I'm not saying that coming up with a good DSL to describe such optimization is
easy, but it may well be worthwhile in the long run.

~~~
dbaupp
Haskell's GHC offers optimisations-in-libraries via its RULES pragma[1], which
allows specifying rewrite rules. These are an important part of the
deforestation[2] that makes, for instance, lists and vectors fast.

[1]:
[https://wiki.haskell.org/Playing_by_the_rules](https://wiki.haskell.org/Playing_by_the_rules)

[2]:
[http://hackage.haskell.org/package/vector-0.7.1/docs/src/Dat...](http://hackage.haskell.org/package/vector-0.7.1/docs/src/Data-
Vector-Generic.html#line-212)

~~~
nhaehnle
Yeah, that's actually mentioned in the article ;)

------
com2kid
Tools already exist for doing run time traces of compiled programs and then
optimizing accordingly. A lot of what they focus on is improving locality,
moving portions of the executable that are run together near each other so
improve the instruction cache hit rate. They also much more aggressively
inline, to the point that the overall code size increases but hopefully so
does performance.

You actually get a huge amount of perf gains just from improving locality, a
lot of in-depth optimizations are possible but I am not sure what compilers
now days actually do, it has been a long time since I worked on a compiler
team!

~~~
haldean
Got any links? I'd love to check out the tools you're talking about.

~~~
vilya
Profile Guided Optimisation is the search term you're looking for. For one
example: GCC does it (you may need to use gprof as well, can't really
remember).

------
stcredzero
I'd like to see projects that can integrate the runtime information provided
by a JIT VM. What if such a project used this information from the start?
Then, the programmers might be able to use information like: This variable has
only ever had an int in it, ever, over the entire lifetime of the app.

Such information might be problematic to integrate into a legacy project, but
in a language which allowed for optional type annotation, such information
could be fed into programmer tools and more easily analyzed. (Example: So,
this code here where it's not an int -- do we really need to have this, or
could we move the error checking elsewhere, so we can just say that's an int?)

~~~
douche
Or you could use a language with static typing. It might be the line of work
that I'm in, but I've never encountered a case where dynamic typing has really
been helpful - more often it's been a source of errors, where non-obvious type
coercion has been performed by the interpreter/runtime. I can only think of
one case where dynamic typing was necessary, but I'll chalk that up to a
really poorly designed COM API that I had to work with.

~~~
jcranmer
The problems most people have with static typing are related to explicit
typing, not static typing per se. (And somewhat inane conversions tend to give
dynamic typing a bad name as well).

There are two cases I can think of where the static typing in the most common
languages are insufficient. The first is union types--you can't easily express
a data structure like JSON in Java (although one could argue this is a
feature, not a bug). The second case is where you need to map types to
instances of those types, something akin to a Map<Class<T>, T> in Java syntax.
While you can generally specify the latter at a method syntax (e.g., public
<T> T get(Class<T> clazz)), there's no way to write that method without having
to resort to subverting the type system.

Dynamic typing can be beneficial if you would otherwise be stuck subverting
the type system more often than following it, although that's as much of an
argument for more powerful static type system as it is one for dynamic typing.

------
caf
It seems like errors in the rewrite rules themselves would potentially create
very hard-to-debug problems with the runtime code.


Venture Capitalist Becomes Web 2.0 Entrepreneur - jasonlbaptiste
http://www.pehub.com/23798/venture-capitalist-becomes-web-20-entrepreneur/
======
kschrader
_I can’t imagine an ex-VC launching such a company without one._

Really??? He can't be serious here. I know a number of ex-VCs who have done
this.

------
sabat
Fail.