Hacker News new | past | comments | ask | show | jobs | submit | hzy's comments login

When the established industry starts suing you, you know that they're starting to become scared of your disruption.


Or they're pissed that they're playing by the rules and you are not.


Well, they spent a lot of money buying the rules.


My brother was driving his beater as an unlicenced hack in Baltimore for a year. I observed a number of issues.

I think a barrier between the passenger and the cabbie is generally good.

I think a meter system or a zone system that is externally verifiable is better than some dude's cell phone.

After you spend 40-60 hours in one week schlepping people in your un-designed hack, an understanding will form of why modern cabs have fairly universal accoutrements.


Greater Boston is mostly non-barrier cabs, but I don't recall the specifics for Boston proper vs Cambridge, etc.

I was referring to the idea that the medallion in Boston is a safety feature rather than a monopoly piece.


The contentless link and the spammy other comments here make me think this is someone gaming the system to get free advertising.


Not gaming the system, I'm here to answer any questions regarding the business and the switch we've made.


I don't understand why you've linked to your companys' landing page, which doesn't have any association to your title.


It's showing HN the new site, business, "Show HN".


Yes, but we have no idea how the old site was. A blog post explaining everything would have been more appropriate.


At least he didn't say "pivot".


justified alignment has a time and a place (newspapers), but for the most part I agree, the differing line lengths make keeping your place far easier.


In general text in multiple columns; ragged-right columnised text is sometimes horrible to read.


I don't know about your friend, but I'm happily using the latest version of Sparrow with no issues whatsoever, maybe he has some other unrelated problems...


http://pin.net.au is approaching general release


It's a single, unified place to host code with a known-to-be-good experience.


Because it has near-zero barrier to entry. That doesn't speak highly of PHP as a language, just on how its deployment strategy is designed.


I don't think Facebook or Yahoo chose PHP because it was easy to write.


I think that is exactly why Mark Zuckerburg chose PHP when working on TheFaceBook back in 2003 and 2004. It was easy to write and deploy.


you are incorrect.


Yahoo's rationale for choosing PHP:

"The short development cycles needed to stay ahead of the competition demand a web-centric scripting language that is easy to maintain and update."

http://public.yahoo.com/bfrance/radwin/talks/yahoo-phpcon200...

They didn't choose Python, or Ruby, or Java, because none of those languages are as expressive or shut-up-and-get-out-of-my-way as PHP. Just because a high schooler can write PHP doesn't mean it's a toy not also meant for world class engineers.


PHP is more expressive than python, ruby, or java. I see.


The 3A/3B course has very little regard for modern best practises, just what was relevant 15 years ago when the course was written.


By 3NF most database schemas are good enough(tm), going further usually results in minor changes for large amounts of work.


I worked as a DBA somewhere that did everything in 5NF. It was a nightmare. I only stayed there 3 months. In my last week there, I remember having to debug a 35 table join. I'm so glad I left.


The performance must have been horrendous! The query optimiser must have gone nuts - that's 35! possible join combinations :-(


I had left before they were willing to performance test the application. But I heard that after they launched that it was awful.

The Oracle optimizer quits optimizing after the first ~7 joins so we had to do manual optimization after that. Almost every query was at least 7 joins. The guy running the DBA group was following the Data Model Resource Book to a "T", which I think is appropriate for an OLAP database, but is not cool for OLTP.


If you want to see something hilarious, get a 12 join query and add "AND 1=0" on the end of the WHERE clause.

Oracle doesn't look at the query and immediately return no rows, instead the optimizer continues to generate a full plan. Apparently, according to Oracle support, they have no intention of finding "AND false" predicates to shortcut query plan compilation.


That could work in PostgreSQL with the genetic join optimizer. You would not get the best plan or necessarily a stable one but it could be fast enough. I believe the worst reporting queries I have written could have been almost as bad as 35 joins. Of course they were not fast but not as slow as one might think.


Over the years, I have come to realise that even the third normal form is perhaps too much of an overhead for web apps. I guess that's why we have all these modern alternative DBs.


I think 3NF is a good starting point, then as I said in another comment, you start profiling to find where expensive queries are coming into play and hurting your performance, then denormalize those issues away.


There must be a better answer than denormalizing. I'd try to get a DBA or DBE involved to look at the situation if possible. Re-structuring the query might be all that's needed.


Of couse that's an over-simplification, de-normalisation certainly fits in after many other forms of optimisation.


I agree, I think denormalizatuon is one of those things you do after trying to rewrite the query. After all, if you can get the optimiser to choose a different access plan that's quicker by rewriting the query to be more efficient, then you're better off overall. There's costs to denormalization too... Not to mention you need to ensure that your application code writes correctly.


It depends what you are doing. If you have a lot of semi structured data, like documents, then go with a document oriented database. If you have semi-structured data that you don't want to do much analytics on, consider a key/value store. But it you require full ACID properties, want to reduce your application code and not worry so much about integrity, then an RDBMS is still the way to go.


That's a process called de-normalisation, covered here: http://en.wikipedia.org/wiki/Denormalisation You should only consider doing that after thorough profiling showing your joins are causing the performance loss.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: