Ask HN: Twitch.tv compromised email? - <AUTHOR>

Did anyone else recently get an email from Twitch stating that their account may have been compromised? This just arrived a couple hours ago for me.
We are writing to let you know that there may have been unauthorized access to some of your Twitch user account information, including possibly your Twitch username and associated email address, your password (which was cryptographically protected), the last IP address you logged in from, and any of the following if you provided it to us: first and last name, phone number, address, and date of birth.
For your protection, we have expired your password and stream keys. In addition, if you had connected your account to Twitter or YouTube, we have terminated this connection.
You will be prompted to create a new password the next time you attempt to log into your Twitch account. If applicable, you will also need to re-connect your account to Twitter and YouTube, and re-authenticate through Facebook, once you change your password. We also recommend that you change your password at any other website where you use the same or a similar password.
We apologize for this inconvenience.
The Twitch Team <comment><USER2> [http://blog.twitch.tv/2015/03/important-notice-about-your- tw...](http://blog.twitch.tv/2015/03/important-notice-about-your-twitch- account)</comment>


Quick Hack to Make Your Boss (and you) More Productive - <AUTHOR> http://www.bothsidesofthetable.com/2010/08/19/productivity-hack-how-you-can-make-your-boss-more-productive/ <comment><USER2> Whenever I need to ask someone a question about something, I take 2 minutes to do just _one_ more bit of homework on the topic.

The goal to give my brain one more shot at figuring it out on its own. Either I figure it out and I don't have to ask anyone else, or I'm now more informed about the topic when I ask someone a question, and I've moved the topic back to the top of my memory.

When it works, I've learned something, saved someone else from being interrupted, and I get a little kick of "I did it all by myself!" satisfaction. Even when the trick doesn't work, the ensuing conversations are usually much more productive.

<comment><USER3> This is why I like asking questions by email. It forces me to formulate the problem in one go in as much detail as the receiver might need. A lot of the time I end up not sending the email after that mental exercise. (this is basically rubber duck debugging but less abstract - you can work in the context of a real person not an inanimate object)

</comment></comment><comment><USER4> Getting things done suggests keeping lists per person you interact with frequently to solve this problem. I keep a "discuss" list in remember the milk and tag entries with the person's name. It's not a perfect process and I need to get better at sticking to it, but it's similar to this...

Unrelated: it's only when working with others who don't have a consulting background that I realise how much I learnt from that phase of my life. I love learning tips from other random industries...

</comment><comment><USER5> "And the funny thing – by the time you were ready to walk through 7-8 issues with your boss you realize that you had already figured out 3 or 4 of them on your own."

There's a counter argument to this (I'm not saying I agree with it) but it's those extra hours it took to solve something on your own vs. the seconds (or at most minutes) to ask the right person. Of course the article does a good job to point out those seconds aren't free either... but I've had managers make a point of saying "if the problem can be solved by asking the right person than do it" that there should never be a reason to solve the same problem twice.

<comment><USER6> It's a lot more complicated than that.

For example, if I ask a small question today, I'll get an answer and get with the task quickly.

But I'll only have a small bit of information, so I'll be back tomorrow, the day after, and so on.

Whereas if I spend slightly longer working it out myself, I'll generally understand the system involved, and may be able to avoid a whole series of questions, saving significant time for everyone involved.

</comment></comment><comment><USER7> A while back I increased my MUA's mail download interval to one hour. The decrease in focus disturbance was immediately tangible, and very refreshing. Coworkers would ask "don't people complain that you don't respond quickly?" to which I reply: It hasn't happened yet. :) At worst, the boss walks over to ask if I've received such-and-such email he sent, but that has been rare.

I'm thinking of increasing to an even larger interval.

</comment><comment><USER8> Also keep a log book of daily progress/problems. It's good for achievement and bonus: it allows you to answer "wtf did you do last month" questions right away.

</comment><comment><USER9> I have a policy wherein I will spend a half hour trying figure out problems myself (reading code, etc.) before bothering the local guru. This way, I limit the interruptions I cause and learn stuff myself so less questions arise in the future. Also, I can have a semi-informed discussion if it comes to that.

You have to balance it against yak-shaving though so resist the urge to go much longer than a half-hour.

</comment><comment><USER10> Four interruptions _per hour_?! I never realized how good I have it....</comment>


Google's Proprietary Fork of HTML Is Taking Over the Open Web - <AUTHOR> https://pxlnv.com/linklog/amp-taking-over/ <comment><USER2> IANAWD (I am not a web developer), but this sounds terrible on the face of it. Of course Google isn't to be trusted. It's all about maneuvering amongst the top 5 or so major companies for network hegemony.</comment>


Are IPOs the New Down Rounds? - <AUTHOR> http://techcrunch.com/2015/11/22/ipos-the-new-down-rounds/#.qjsmca:quUv <comment><USER2> How does a, presumably sophisticated, site like techcrunch write an article like that without using the phrases, "liquidation preference", or "deal structure?"

<comment><USER3> Liquidation preferences are wiped out in an IPO. What's more relevant are "ratchets" which were mentioned in the article.

<comment><USER2> Is it always the case that liquidation preferences are wiped out in an IPO? [http://www.vcdeallawyer.com/2010/02/15/understanding- liquida...](http://www.vcdeallawyer.com/2010/02/15/understanding-liquidation- preferences/) suggests otherwise.

 _The Series Preferred investors will have a priority in receiving distributions from a liquidation, sale, merger, IPO or dissolution._

If it were the case that an IPO was treated differently than a sale, that would suggest to me that preferred shareholders might be strongly at odds with the common shareholders, when it came to decide whether to IPO or simply sell the company.

This was a much better article, [http://techcrunch.com/2015/11/10/squares-s-1-of-ratchets- and...](http://techcrunch.com/2015/11/10/squares-s-1-of-ratchets-and-unicorn- valuations/) \- and it captures the use of ratchets - which seem to me a kind of IPO liquidation preference.

<comment><USER3> Yes, whoever VC deal lawyer is needs to work on more late stage deals. An IPO is not a liquidation event - it's just another funding round. There are no liquidation proceeds for the preference to apply to.

Here's Brad Feld[1]:

Jason once had an entertaining (and unenjoyable) debate during a guest lecture he gave at his alma mater law school with a partner from a major Chicago law firm (who was teaching a venture class that semester) that claimed an initial public offering should be considered a liquidation event. His theory was that an IPO was the same as a merger, that the company was going away, and thus the investors should get their proceeds. Even if such a theory would be accepted by an investment banker who would be willing to take the company public (no chance in our opinion), it makes no sense as an IPO is simply another funding event for the company, not a liquidation of the company. However, in most IPO scenarios, the VCs "preferred stock" is converted to common stock as part of the IPO, eliminating the issue around a liquidity event in the first place.

[1][http://www.feld.com/archives/2005/01/term-sheet- liquidation-...](http://www.feld.com/archives/2005/01/term-sheet-liquidation- preference.html)

<comment><USER2> So - as a result, the VCs may be in conflict with management/common shareholders when it comes to making a decision between selling the company (and collecting their liquidation preference) versus an IPO (in which the VCs lose all their seniority) - which is why the ratchet is in place, to protect that preferential treatment?

<comment><USER3> In the vast majority of deals, collecting your liquidation preference is a sort of soft landing - the VCs just get their money back (without interest). It's much better for everyone if there's a big exit (either a high priced acquisition or selling shares on NYSE after an IPO) in which case the VC will convert to common and get 5x or 10x or what have you.

That's not to overlook the host of differing incentives between preferred and common-which are numerous and often even intentional. Ratchets are closer to antidilution than they are to liqpref.</comment></comment></comment></comment></comment></comment>


Model P100a nuclear battery, and it comes in a DIP package - <AUTHOR> https://twitter.com/TubeTimeUS/status/1295544719791947776 <comment><USER2> [https://news.ycombinator.com/item?id=22250350](https://news.ycombinator.com/item?id=22250350)</comment>


33 Dramatic Predictions for 2030 - <AUTHOR> http://www.futuristspeaker.com/2013/12/33-dramatic-predictions-for-2030 <comment><USER2> Some thoughts:

5 (Chinese space hotel): Not likely.

15 (stopping a hurricane): Less likely. Also, what are the consequences in terms of reducing the spread of heat? Won't it just make the next hurricane bigger?

17 (controlling gravity): No way.

18 (democracy viewed as inferior): Inferior to what? Yeah, sure, democracy is lousy (and the current US election cycle doesn't fill one with much enthusiasm), but what's _better_?

21 (only 5% of forest fires): That would be catastrophic, because the 5% of fires would be _enormous_ , because smaller fires would not clear out the fuel.</comment>


Cash is pretty much dead in China as the country lives the future of mobile pay - <AUTHOR> https://www.cnbc.com/2017/10/08/china-is-living-the-future-of-mobile-pay-right-now.html <comment><USER2> A few years ago, a friend of mine who lived in China said that the landlord wanted to be paid in cash every month. I find it hard to believe that it could change so quickly, especially since I got the sense that a lot of it was unreported.

$5 trillion transactions / 1 billion adults = $5,000/person average. Average income in China = $10,000. Businesses also do transactions, so clearly there's still a lot of cash moving around.

If it were "dead" shouldn't we be seeing reports about the greatly decreased amount of cash in circulation? I mean, every few weeks it seems someone posts to HN about Sweden going cashless, and reports like [https://www.theguardian.com/business/2016/jun/04/sweden- cash...](https://www.theguardian.com/business/2016/jun/04/sweden-cashless- society-cards-phone-apps-leading-europe) which say "Circulation of Swedish krona has fallen from around 106bn in 2009 to 80bn last year."

What's the same for China?

</comment><comment><USER3> What happens when the government decides to block people's money because they "offended" the party or some BS? Tough luck?

<comment><USER4> I am sure the government (in most countries) can still do that because everyone keeps most of their cash in banks. No one would keep huge amounts of legal cash at their home. And banks would necessarily have to comply govt. orders at some level.</comment></comment>


I will eat a week's pay if OOP is still in vogue in 2015. (2001) - <AUTHOR> https://twitter.com/fernozzle/status/672133043037929472 <comment><USER2> He can keep his money. Widely used - yes. In vogue - no</comment>


Ask HN: Did anyone hear back from HP/Palm on the developer Touchpads? - <AUTHOR>

A few weeks ago there was a posting [1] that HP/Palm is selling Touchpads to developers for a $149 fee. I contacted them back then and so far I didn't hear back.<p>Did anyone receive a message from them in regards to the discount codes?<p>[1] http://news.ycombinator.com/item?id=3199739 <comment><USER2> Yes, I received an email from them on Tuesday(11-22-11) with a coupon code.

</comment><comment><USER3> I didn't. I don't have any additional information, though. Sorry; I wish I could be more helpful.

</comment><comment><USER4> Yes. Let me know if you want the code. I've decided I'll get a fire instead.

<comment><AUTHOR> I would love to! Please drop me a line at email@example.com

</comment></comment><comment><USER5> Got my codes on the 22nd, placed order and the items shipped same day.

</comment><comment><USER6> I didn't. I wonder if you had to download and install their developer toolkit. I wasn't about to do that unless I knew I was getting one.

</comment><comment><AUTHOR> Clickable: <http://news.ycombinator.com/item?id=3199739>

</comment><comment><USER7> I didn't , I wish I could get at least one.</comment>


Crowd-Sourced Skills Testing Platform (similar to Smarterer, but Better) - <AUTHOR> I just launched my platform into beta called Taughtful (http://taughtful.com) with the initial primary goal of disrupting both the public education systems and the recruiting processes regarding careers and jobs. Taughtful can be described as "a crowd-sourced skills testing platform that lets you create and take tests for virtually any skill. Tests get smarter over time. Use your test results to show off, learn or to land your dream job."
Taughtful to me, means "thoughtful learning"
## HOW DOES IT WORK? I want to start by first, crowd-source the credentials; basically, the more people that take the test that you take, help to increase the validity of the test, thereby increasing the possibility of you landing the career that you desire, especially if you rank in the top percentiles of overall test-takers for that particular test. The platform allows anyone to create tests for any imaginable skill, or add more questions to existing tests.  There is machine-learning (Artificial Intelligence) behind the scenes which helps to make the tests smarter as more people take the tests.
When a test is first created and has enough questions, it enters into an incubation period. During that time, people are allowed to take the test to help incubate it, but the scores during that incubation period have no bearing on their account whatsoever. Once enough people have taken the test, the test will mature and be available for people to take it officially, thereby generating an actual test score that counts.
There are MUCH MORE plans beyond this, as well as additional current features!
This is an abridged version of the full story behind Taughtful; if you are interested in reading more (such as additional features, plans for the future, investment and co-founder opportunities) please check out this link: http://gitlab.dynamictivity.com/taughtful/taughtful-app/wikis/home
Travis Rowland Taughtful Co-Founder and CEO http://linkedin.com/in/travisrowland <comment><USER2> If it meets the guidelines, this might make a good 'Show HN'. Show HN guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><AUTHOR> Hey thanks! I didn't even know about that.

I'll definitely check it out.</comment></comment>


Ask HN: Reducing the cost of meetings - <AUTHOR> Given how long it takes to resume productive work after a meeting (for people on the maker's schedule [0]), the productivity value of getting meetings right can be pretty big.
What do you do to reduce the number or cost of meetings? (either as an individual or as an organization)
The main technique I have been using lately is preemptively blocking off chunks of time long enough to get something done (3-4 hours), and declining any meetings that are later scheduled over that time. This groups meetings together, incurring the "resume cost" once per group instead of once per meeting.
[0] http://www.paulgraham.com/makersschedule.html <comment><USER2> _" The main technique I have been using lately is preemptively blocking off chunks of time long enough to get something done (3-4 hours), and declining any meetings that are later scheduled over that time. This groups meetings together, incurring the 'resume cost' once per group instead of once per meeting."_

The ability to decline a meeting request depends on the power difference between you and the person calling the meeting. If your boss's boss wants you to attend a meeting at 2pm, you'll probably have a hard time declining (i.e., you'll be expected to re-arrange the rest of your schedule to accommodate the powerful person's request rather than vice versa).

For meetings that you do have the power to decline, you can question the necessity of having a meeting at all (e.g., suggest that the issues can be worked out more efficiently in e-mail).

</comment><comment><USER3> I try to schedule as many meetings as possible at times when a maker's flow is likely to be interrupted anyway: right after standup or just before or after a typical lunch hour.

</comment><comment><USER4> I've found it useful to schedule meetings towards the end of the day.

I program best in morning, so by doing this, I keep meetings out of my most productive time and also group them together.</comment>


How Doordash got their first 1000 customers - <AUTHOR> https://first1000.substack.com/p/-doordash <comment><USER2> How many of the first 1000 delivery drivers still "work" for Dordash?

</comment><comment><USER3> NPR How I Built this Interviewed Tony and covered the same questions: [https://www.npr.org/2018/11/09/666295686/doordash-tony- xu](https://www.npr.org/2018/11/09/666295686/doordash-tony-xu)

</comment><comment><USER4> Nice story, but there isn't anything in there about getting 1000 customers. And having a good domain = the phone ringing within a couple hours? I highly doubt it.

<comment><USER5> > the phone ringing within a couple hours? I highly doubt it.

The article says they did _everything_ themselves, probably including calling that number and ordering food :-)

</comment></comment><comment><USER6> _> Just in case you live on another universe._

Or any country that isn't the US?

<comment><USER7> Yeah lol, hesitant to say this but murica leaks here.

</comment></comment><comment><USER8> "Moreover, some more prominent corporations seemingly have been going around it well as Dominos and FedEx that each delivers over millions of orders every month. Tony signed up to be a driver for these platforms.."

So Tony, one of the Cofounders of DoorDash signed up to be a Dominos pizza delivery driver to learn how they did it. I love it

Thank you for sharing this article

<comment><USER9> Not sure why you need to sign up for a job to learn how to do labor that anyone with a driving license is already trained on.

</comment></comment><comment><USER10> Wasn't Doordash one of the companies that was lowering payments if tips were added? Eg, if they were going to pay $10 for a delivery, and someone left a $2 tip, they would reduce what they paid to $8. The driver gets $10, rather than the $12 you'd imagine.

I have a hard time reading anything charitably about the company. If you exploit your workers, I don't care how scrappy and clever you were in bootstrapping.

<comment><USER9> They were subsidizing tips to guarantee a minimum payout if customers tipped too low. But customers wanted to undertip while still having workers get laid more, and then blamed doordash instead of their own unwillingness to pay.

<comment><USER10> Those are some serious mental gymnastics, and as far as I'm aware they didn't say that anywhere up front.

</comment></comment></comment><comment><USER11> Hey all, wanted to tell you about Plater ([https://platerapp.app.link/ZJQoea4Ew7](https://platerapp.app.link/ZJQoea4Ew7)), a browser plugin i'm building. We're currently journeying for our first 1000 users.

Plater ([https://plater.com](https://plater.com)) is a browser plugin that saves you money on restaurant delivery and helps local restaurants.

Plater finds you the cheapest price by automatically compare pricing across different delivery apps. On average, we find users savings of 20% per order. Our search is integrated with * Postmates * Grubhub * Seamless * Uber Eats * DoorDash * Caviar

Additionally, Plater helps local restaurants by linking to their direct ordering websites. Direct orders can make a big impact on our local restaurants by reducing their fees from 30% --> 0%! We're already linking to ~400 local restaurants in NYC and Fort Worth, Texas.

We're in public beta in NYC, Seattle, Houston, Dallas, Austin and Fort Worth, with over 60k restaurants for price comparisons. We're looking for feedback so if you're in one of these cities we'd love for you to download ([https://platerapp.app.link/ZJQoea4Ew7](https://platerapp.app.link/ZJQoea4Ew7)) and share feedback. If you're in a different city and want to use Plater, lmk and I will get it up and running in a few hours.

Thanks!

<comment><USER12> Are you able to share anything about your revenue model? From other comments I've seen on HN and elsewhere, people in the niches I frequent (myself included) are increasingly interested in _actually_ helping local restaurants by ordering directly and ignoring 3rd parties who are attempting to set up toll gates between us. What makes you different from the six services you mentioned?

<comment><USER11> We won't become like the services mentioned above because we have no intent of fulfilling deliveries. I think there may be an opportunity in building software for local restaurants that would make ordering as convenient as it is (for the consumer) with the DoorDashes of the world. However, people willing to change their ordering habits for better prices and to help local restaurants is still a hypothesis that needs to be proven...

Can you share some of the niches you frequent? I'm really looking to connect with people who are passionate about this problem.

Thank you!

<comment><USER12> Not sure about that last part, but I will say that I do think sincere efforts to empower small businesses by offering them truly better software with fairly priced SLAs is the right way to go here. If that's what you're doing, I hope you go far. I may have to take a closer look later.

</comment></comment></comment></comment><comment><USER13> If you clicked the link expecting to read about the "How" part, you're not going to get anything useful.

I think there's a larger gap here, in that the audience of HN (largely being engineers or "makers" or some sort) generally use "How" as "a piece of advice that is repeatable", ie, we can get the same result if we implement the same steps.

So searching for eg: "how do I crop a video using ffmpeg" will produce a nice set of results on the internet that will give you a replicable set of steps that lead to a pretty clear outcome.

"How do I get my first 1000 customers" isn't the same, and it's a disservice to publish clickbait headlines like that.

<comment><USER14> As someone who works in Growth this is what I hate about most of my industry.

A lot of growth hackers sell this BS of "simple tips & fast hacks" whereas the awesome professionals I know have "boring" methods and experiments.

So the market gets crowded with clickbait stupid drivel while the real science is lost.

<comment><USER13> Can you share some legitimate resources for those who are looking to improve their skills? Perhaps for the different stages, first 10 customers, first 100, etc.

It seems like the work would be different for each stage (finding product/market fit, finding a niche, scaling that niche, finding another niche, etc etc).

<comment><USER15> Second this, any sources for genuinely good, more widely actionable advice that you could recommend?

</comment></comment></comment></comment><comment><USER16> > _They named their website PaloAltoDelivery.com in hopes that this would > prompt the google engine to display their webpage favorably when people > search for "Palo Alto Delivery." It worked. Half an hour of launching their > page, they got their first phone call for a Thai Food order._

I don't know much about Doordash (I don't live in the US), but I find this sentence hard to believe. Launching a fresh new website with some keywords as the domain name, will not get you immediately ranked highly on Google, and certainly not within 30 minutes of 'launching the page'.

<comment><USER17> This is exactly what I came here to say... there's just no way, right?

<comment><USER18> definitely on your side. If I recall correctly, they posted flyers around Palo Alto, and that's how they get their first users to show up on their site.

</comment></comment></comment><comment><USER19> My question is, how come Doordash still spams me?

I never signed up or even knew of them until the emails started arriving.

<comment><USER19> Context:

Begin forwarded message:

Subject: Re: Customers in FAIRFIELD are looking for you Date: March 8, 2020 at 8:29:03 PM EDT To: Jeremy O'Connor <email@example.com>

Fuck off!

On Mar 8, 2020, at 8:27 PM, Jeremy O'Connor <firstname.lastname@example.com> wrote:

Hey again,

I am following up on my past emails, we continue to get requests for your food and it's important that we connect. New customers are signing into DoorDash daily, and I want to make sure we get you in front of these customers!

When is a good time for a quick chat?

All the best, Jeremy

<X8_vG66jH_4x-rR4fy_bomUVNOlqeyj0uv2FzCb-aGA.png> Jeremy O'Connor

Strategic Account Executive

480.470.4942

901 Market St #600

San Francisco, CA

DoorDash.com

If you'd like me to stop sending you emails, please click here

<comment><USER20> > and it's important that we connect.

Gotta love the unquestioning entitled hubris of this kind of set-up.

</comment></comment></comment><comment><USER21> _Many diners love DoorDash for its fast, easy delivery from hundreds of local restaurants. However, some of those restaurants claim they never gave DoorDash permission to post their menus — and problems with the unauthorized deliveries are reflecting badly on their businesses.

Business is good at NYPD Pizza, a family-owned pizza place, but owner Kevin Leidecker fears his reputation for great food and fast delivery has taken a hit ever since DoorDash started taking orders for his restaurant.

"Customers call us back upset because they didn't get what they thought they were getting," he said.

At first, he had no idea why.

What he discovered was that DoorDash had started handling orders for him without asking his permission.

"They took our menu, posted it on DoorDash, and the customer is oblivious to the fact we have no relationship with Door Dash at all," he said.

He put up a Facebook post urging his customers not to order with DoorDash for his restaurant.

"DoorDash makes money by 'reselling' our food at higher prices," he wrote. "They also charge more for delivery. Between the mistakes on the DoorDash listing for our business and trying to take the order over the phone from someone halfway around the world who doesn't understand our product...we simply can't guarantee a DoorDash order to be correct."_

[https://www.wral.com/doordash-delivery-accused-of-taking- ord...](https://www.wral.com/doordash-delivery-accused-of-taking-orders- without-restaurant-s-permission/18449432/)

<comment><USER11> In addition to adding them to the platform without their consent, they also charge restaurants massive fees, which increase the total bill and eat into restaurant revenues.

 __shameless plug __That is why I 'm building Plater ([https://platerapp.app.link/ZJQoea4Ew7](https://platerapp.app.link/ZJQoea4Ew7)). It automatically compares your order across DoorDash,UberEats, Grubhub, Postmates etc.. and gets you the cheapest price. Additionally, it highlights direct ordering links for restaurants that do their own delivery.

I would really love any feedback I can get on this -> we're currently live in NYC, Austin, Dallas, Houston and Fort Worth. If you want to use the app and you're based in a different city lmk and I can get it up and running in a few hours.

Get the app here: [https://platerapp.app.link/ZJQoea4Ew7](https://platerapp.app.link/ZJQoea4Ew7) Learn more here: [https://plater.com](https://plater.com)

<comment><USER22> Are you just comparing the delivery fees and other app added fees? Or are you comparing the menu prices as well? Your intention seems to be to save the user money and also help the restaurant, but if you are actually just showing the lowest price, isn't that actually the opposite of helping the restaurant?

<comment><USER11> We're comparing the order total which, including menu pricing, tipping, delivery fee etc. for anyone who wants to help the restaurant the most, the best solution is usually ordering directly because this removes a third party from the transaction as mentioned in the comment below. Currently, we're surfacing direct order links for restaurants who can handle delivery and we're working on making direct orders even more convenient.</comment></comment></comment></comment>


Recommended DevOps self-study courses on Udemy/ Pluralsight? - <AUTHOR> Can someone recommend self-study courses on Udemy/Pluralsight for DevOps (Jenkins, Docker, Gitlab - CI/CD, Groovy)?<p>Thanks in advance <comment><USER2> Here is a free docker devops course by University of Helsinki:

[https://docker-hy.github.io/](https://docker-hy.github.io/)</comment>


Launching a High Performance Django Site - <AUTHOR> http://menendez.com/blog/launching-high-performance-django-site/ <comment><USER2> Article would be improved by omission of tasteless stock photo.

<comment><USER3> Wow. When I read your comment I thought is was pretty prickish, wondering how a stock photo could possibly screw up a good article.

Then I visited the site. Agree 100%.

</comment></comment><comment><USER4> I would not invest too much time optimizing a site that hasn't launched. It's premature - you don't know how popular your site will be.

</comment><comment><USER5> I'm not sure what he means here "You probably built your app using managers right?" Does anyone?

<comment><USER2> [http://www.djangoproject.com/documentation/db- api/#retrievin...](http://www.djangoproject.com/documentation/db- api/#retrieving-objects)

In Django, objects are retrieved from the ORM something like this:

entries = Entry.objects.filter(published = True)

Entry.objects is a "manager" - an object that knows how to implement operations across the overall set of objects. You can create custom managers if you want to add custom operations that can be run against all of the objects - for example, you might want to "Entry.published" to be a special manager that pre-filters your entries to the ones that have their published flag set.</comment></comment>


Whatsapp vulnerability sidesteps message encryption - <AUTHOR> https://thestack.com/security/2017/03/15/whatsapp-vulnerability-sidesteps-message-encryption/ <comment><USER2> URL should probably be changed to the original source, which has a lot more details: [http://blog.checkpoint.com/2017/03/15/check-point- discloses-...](http://blog.checkpoint.com/2017/03/15/check-point-discloses- vulnerability-whatsapp-telegram/)</comment>


Good Design - <AUTHOR> https://medium.com/the-year-of-the-looking-glass/good-design-a89c15136ba6#.59s9dmzgf <comment><USER2> From gmail's first UX designer:

75% of good UX design is determining in which ways to not be too clever.

[https://twitter.com/kfury/status/627350727891906560](https://twitter.com/kfury/status/627350727891906560)

<comment><USER3> When Gmail came out, it was widely panned. It continued to get panned for years for some bizarre design decisions. (let's hide all text labels, let's make compose new email in a popup, let's not let user 'delete' but 'archive'etc, threading... )

Now people don't complain as much, because everyone just got used to it.

Google makes some terrible UX across the board.

<comment><USER4> Agreed. The Material Design refresh for Google Maps replaced a design that had clear affordances with a completely flat, static-looking view. I'm sure it looked great on some Powerpoint slide shown to the higher-ups at Google, but it was a disaster for actual usability.

<comment><USER3> yup, and the worst part of material design is, indiscriminate use of bright colors for no apparent reasons. And now everyone is doing the same thing, and 50% of UI look exactly the same.

</comment></comment></comment></comment><comment><USER5> Irony considering the author starts with her experience at OneNote. OneNote (desktop) possibly is the worst designed software in Microsoft Office suite.

I find the following quote from Chris Pratley (creator of OneNote) interesting _" You know you have a good design when you show it to people and they say, "oh, yeah, of course," like the solution was obvious."_. No wonder OneNote is so heavily into literal metaphor of a notebook, which frankly does look and feel clumsy inspite they attempting to polish it up a bit off late (it used to look plain ugly till couple of years back).

From official Microsoft document: _The user interface is specifically designed to look like a 3-ring binder, complete with tab dividers. Users can divide the notebook into multiple topics and subtopics for the various types of information they want to record and save. Workers have all the advantages of an old fashioned notebook binder with the additional advantages of being able to copy information from one section to another..._

Document link: [https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web...](https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiplu6ijLvKAhVCbY4KHavzB4IQFgggMAE&url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F1%2Fa%2F2%2F1a298a90-6894-46ef-86de-9d74704d1e3b%2FOneNoteBenefitsWhitePaper.doc&usg=AFQjCNEjvKxQ44E3QDrw5mAXMrG7iu7HhA&bvm=bv.112064104,d.c2E)

<comment> k-mcgrady What about that OneNote design is bad? It may look ugly to you but I find it serves its purpose well. It's a metaphor the kind of people who use it will understand.

<comment><USER5> Well, not answering directly but following illustrates the point:

Apple's iOS7, Well, It Was Time For Skeuomorphism To Die

[http://www.forbes.com/sites/timworstall/2013/09/19/apples- io...](http://www.forbes.com/sites/timworstall/2013/09/19/apples-ios7-well-it- was-time-for-skeuomorphism-to-die/#2715e4857a0b70d98891444b)

One of the bad example of Skeumorphism of Apple [http://dun4nx4d6jyre.cloudfront.net/assets/findmyfriends.jpg](http://dun4nx4d6jyre.cloudfront.net/assets/findmyfriends.jpg). Note the 'hand stitched' detailing.

OneNote could have continued to do things well without using clumsy, awkward, out of place design language.

<comment><USER6> There's nothing wrong with a hand-stitching look. Making an app look _interesting_ is not the problem.

The issues with skeuomorphism occur when the attempt at making a "real life" object imposes restrictions on functionality that would not have existed otherwise. For example:

\- Making something look like a "book" causes designers to try too hard to shove things into a two-page view when computers are _outstanding_ at being far more flexible than a book (e.g. multiple resizable columns, scrolling, and so on).

\- Making something look like a "dial" just makes it unnecessarily hard to interact with when using a mouse or even a touch screen. Interface elements designed for use on computers are superior.

<comment><USER7> Thank you. I wish people wouldn't just equate skeuomorphic design and bad design to be trendy (particularly when they don't know what "skeuomorphic" actually means, as often seems to be the case). As you say, there is nothing wrong with having details or styling in a UI, particularly if they are cosmetically attractive, as long as form still follows function.

I think a lot of people on the flat design bandwagon try to create a false dichotomy with skeuomorphism and try to use this as an excuse. All too often, I suspect they really prefer flat design for other reasons, such as not being any good at more sophisticated styling but also not wanting to hire a digital artist onto a project team, or wanting to avoid anything where the implementation requires real graphics instead of whatever severely limited tools are available using nothing but CSS and the icon font from their favourite UI toolkit. I'm not saying no flat design has ever been done well, but all too often I think it's just lazy and/or unskilled design and the anti- skeuomorphism dogma gets wheeled out to try to justify it in some more flattering way.

<comment><USER6> I suspect the main driver for a "flat" appearance is that basic shapes are easy to implement across screen sizes (e.g. a colored rectangle scales pretty trivially; something like a fancy gradient may require a lot more effort to look reasonable on 14 different device sizes, especially if icon artwork is involved for all the corner and side pieces).

Also, _clear_ icons are easier to construct with simple shapes than with detailed pictures, and symbolic icons may localize better. For example, a highly detailed picture of a mailbox varies between a lot of countries; a symbol of an envelope may not, and it's probably more obvious anyway.

Personally, I think a nice middle ground was the original iOS, where you could do cool things like define simple shapes for tab-view icons but have the OS stylize them for you (i.e. a plain white shape would end up with a cool blue gradient and look perfect in the black gradient tab bar, even though the original icon had no gradients or colors or rounded corners). And the UI elements, while sometimes a bit complex, managed to scale just fine between the screen sizes of the time.

</comment></comment></comment></comment></comment></comment><comment><USER8> I have an issue with all the designers who claim to have found the X number of design principles to create 'good' design. There's just something wrong with trying to define anything as 'obviously good'. What's obviously good for me might not be for someone else and the current landscape of incoherently designed interfaces/products/OSes/webpages we use every day just proves to me that if there was such a thing like an obviously good design we would not be in the mess that we call UX/UI design today.

<comment><USER9> I disagree. UX/UI design has to be obvious, people need to know what to do, without having to ask for help or look at a manual. And 'obvious' is easy.

Certain arrangements that already exist are basically universal. People know where to look, people understand certain symbols. Use those, don't try and reinvent them. Use what people know.

Trying to be clever is what dooms design.

<comment><USER10> Trying to be clever is the main thing that has led to progress and eventual better design.

Amazon's drop down menu comes to mind - [http://bjk5.com/post/44698559168/breaking-down-amazons- mega-...](http://bjk5.com/post/44698559168/breaking-down-amazons-mega- dropdown)

<comment><USER9> Ah, I think you missed the point. Amazon's solution to the menu behavior, yes, is clever. But what it presents to the user is not. It is a dropdown menu, that looks like every other drop down menu ever made. It's not novel at all in that respect. A user sees it, and they instantly know what it is, and how it works.

Yes, Amazon did something clever to make it work as well as it does, but barely anyone even notices that there's anything special about it. It 'just works'.

That's key. The actual design pattern here didn't change at all. It just works better.

Can you make something work better? Do it. Are you trying something because "icons and folders are a dated idea"? Then don't.

<comment><USER10> Fair enough, but then wasn't the idea of icons and folders considered clever at some point in the way you are describing. It seems that the vast majority of design is not better than the current accepted standard, but every so often someone designs something which is good and becomes the new standard. At some point you have to be willing to do something potentially stupid if you have any interest in pushing the boundaries or am I still missing the point you are making?

I think gmail's redesign from a few years ago falls into what you are describing - trying to design something more "modern and clever" which in some way was to the detriment of the users (at least if you were judging by the reception and all the critique). But at the same time if you don't try to maintain a more modern interface I think you risk being left behind, so you have to balance "clever" with "expected" design.

<comment><USER9> What is your intended goal in 'pushing the boundaries'? Where is the reasoning? Are you making life better for people, or are you confusing them? What is 'falling behind' in design? Does your product work well? Is it easy to use?

If you believe something has to change, just because it should, then I think you're coming from the wrong place. You have customers that depend on you, your job is to serve them, not some sort of need to invent the next great design revolution.

<comment><USER10> Most problems already have some sort of solution for them. When you make a claim that your solution is better than the existing solution you often provide a better UX in some respects. For this you have to make design decisions some of which don't have an accepted standard. This is where you are pushing the boundaries.

On the other hand, UI style and UX naturally improves over time. Compare Windows 95 and Windows 7. There are certainly style and UX changes in the latter that are superior. A lot of people may not like Window's Ribbon interface but I think it was definitely an interesting new design, one which I think will in the long term prove to be better than plain drop down menus.

So I guess I am making the claim that if you are really invested in your product you probably have ideas on how it could be improved and a lot of those ideas are uncertain but deserve time to be attempted.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I think it's ironic because it's on medium and the first thing that comes up is a giant, stupid, unnecessary picture that is full screen and could lead people to believe that there's nothing more to the article.

</comment><comment><USER12> This: "Better design does not mean more design. Often, the most obvious designs are invisible." This also reminds me of the Steve Jobs approach of being proud of all the times that they said "no".

<comment><USER13> Too bad he isn't around anymore to say that to the Apple Watch user interface.

<comment><USER14> Or, the iTunes radio app.

<comment><USER15> Or, any version of iTunes after, like, 7. :(

</comment></comment></comment></comment><comment><USER16> This article is a clumsy and self-centered retelling of "Dieter Rams: ten principles for good design" from 40 years ago.

[https://en.wikipedia.org/wiki/Dieter_Rams#Dieter_Rams:_ten_p...](https://en.wikipedia.org/wiki/Dieter_Rams#Dieter_Rams:_ten_principles_for_good_design)

<comment><USER17> Looking like being obvious is not among Rams principles.

<comment><USER16> #4: "it is self-explanatory."

<comment><USER17> OK, I think it's a misunderstanding. Self-explanatory refers to the use of object that is designed. It needs no explanation. How to ride a bicycle is pretty self-explanatory (even if it's not trivial to learn).

The design of a bicycle however is not obvious.

</comment></comment></comment></comment><comment><USER18> What an overly simplistic view of what makes design good (as if that can even be defined).

Taking any advice from a designer at Facebook is a dangerous game to play. It's very likely you work for a company that is structured entirely differently than anything close to Facebook. What makes design "good" at your company is going to depend wholeheartedly on the market you serve (which is not going to be 1 billion people large).

</comment><comment><USER19> This made me think of "The Making of: Dust", which describes the iterative (and serendipitous) process of creating [two of] the most well-known Counter Strike maps. I think it's a brilliant how a design that feels obvious involves a lot of work and uncertainty.

[http://johnsto.co.uk/design/making-dust](http://johnsto.co.uk/design/making- dust)

HN: [https://news.ycombinator.com/item?id=9772521](https://news.ycombinator.com/item?id=9772521)

</comment><comment><USER20> Here are some more abstract tips that might apply to more than just Facebook's mentality.

1) Have a clear workflow that matches your business and your user goals.

2) Make it as short as possible.

3) Don't have dead ends.

4) Make sure 4/5 people in your target market can jump into it and accomplish the task within a few seconds without asking any questions. (This is a good target for a V1 release, V2 and beyond should reach for 9/10 or more)

The rest is mostly trend and opinion. Good design is just good HCI -- fast (both quick and understandable) interfaces to complete a task.

</comment><comment><USER21> Loved the article, but I don't like Julie's redesign of Facebook. Am I the only one? To remind yourself, here's pictures of older facebook designs: [http://getlevelten.com/blog/julie-miller/if-you-didnt- design...](http://getlevelten.com/blog/julie-miller/if-you-didnt-design- mobile-redesign-mobile)

I prefer the 2010 design by a mile. FWIW, I also prefer Gmail's old design.

<comment><USER3> I think the current photo-centric design just reflect's change in people's behavior shaped by growth in mobile phone usage.

</comment></comment><comment><USER22> Good design: Then we are taken to a page with a banner so big that you have to realize that you need to scroll way past the bottom of the screen to actually reach the content.

<comment><USER23> "Obviousness comes from conforming to people's existing mental models.". It's currently pretty common to scroll webpages with big images in the middle.

<comment><USER22> Well, it still doesn't make it "good design".

</comment></comment></comment><comment><USER9> "Obviousness comes from conforming to people's existing mental models. Don't waste time reinventing common UI patterns or paradigms unless they are at least 2x better, or you have some critical brand reason to do so."

This is a beautiful insight. I wish everyone understood this. There's ZERO reason to reinvent the wheel with design.

<comment><USER24> Some decades ago some architect said "why do we need a facade? Isn't it redundant?".

Noww I can't find main entrances to buildings. Please stop this experiment.

<comment><USER25> I can't even figure out how to get on the property sometimes - see the old EDS "Mothership" in Plano! [1] Amazingly, the front desk was on the 4th or 5th floor archway - which you could not get to without getting past a badge reader. (that's the way I remember it anyway)

Street signs, entrances, etc should be optimized for both first time users and everyday users; which is difficult, but without that traffic goes slower and you have more accidents, people get frustrated and hate you.

[1] [https://h71044.www7.hp.com/campaigns/2011/events/POD/images/...](https://h71044.www7.hp.com/campaigns/2011/events/POD/images/HP_Campus_EXC_Map.pdf)

</comment></comment></comment><comment><USER26> > Better design does not mean more design. Often, the most obvious designs are > invisible.

I think "design" is ambiguous here. You can look at it as meaning "effort that went into creating something", where "design" is the thing that designers do at their desk.

Or you can think of it as quantity of "stuff" in the end product that a person experiences and consumes. Every button, doo-dad or blob of pixels in an app. Each nut, bolt, accessory or function in a thing.

In that sense, my personal definition of good design is doing more design _work_ to deliver less design _stuff_. A designer's job is to spent time chewing up and swallowing complexity so the user doesn't have to.

<comment><USER3> I agree with this in principle but today's so-called designers are enamored with minimalist designs to user's detriment, relying too much on white space.

</comment></comment><comment><USER27> The article feels ...well 'obvious'... but without any real insights into _what_ good design really is. It's a little bit like saying "What's a good investment" \- One that makes you money. Or "What's good code" One that doesn't have bugs. It tell you something that's obviously true, but there isn't much you can do with the info.

Compare that with a nugget of wisdom from Charles Eames - someone who actually built things that designers can look upto. Humble, to the point and _not_ obvious but insightful.

Is there a design ethic? There are always design constraints and these usually include an ethic.

</comment><comment><USER28> I feel that rule number 2, "If you cannot get a group of people for whom your product is designed for to generally agree that your design is good, it's not good," is generally a double-edged sword. That is, do people outside of design generally know what is or isn't good?

Rule no.3 stating that a group of designers must decide if a design is good or not is far more relevant to what actually is good design, verses the general populace.

That's like asking a group of patients if they think the drug that's being made seems good enough with several side effects or not, verses asking pharmaceutical experts on the matter.

<comment><USER29> I think both points of view have merit, but the user pov should probably be more heavily weighted.

My experience with user testing is that if you give someone a UI and watch what they do with it (without instruction), you will quickly get a feel for how close to the mark your design is. Different users have different expectations of course, so you need to do this with a fair range of users.

<comment><USER28> True, and I do think there is strong validity in blind user testing so as to better shape and improve initial designs to a more finished form.

However, I do think there is some merit in getting those in the actual field of functional and "good" design (as the author defines it) to weigh in on why precisely your design is just that. In my own UI/UX research, users all too often miss fully comprehending the painstaking research and work that goes into truly effective and good design.

I guess what my argument really is is that I would prefer to weigh more heavily the affirmation of those in the design field rather than a broad range of users with no particular ethos concerning design. Of course, who we end up designing for is the normal user, and what they think is indeed important. However, if 100 people said my design was good vs. hearing that from, say, Mike Matas, I would pick Mike Matas.

<comment><USER9> Users cannot tell you what's wrong with your design. They don't know. It "feels wrong" or they "don't like it". But they CAN tell you that your design is BAD. It's up to you (or other designers) to tell you what's wrong with it. But if the users don't like it, you failed, and it doesn't matter if other designers think it's good.

Your target is the users, if the users aren't having a good experience, you're not doing it right.

</comment></comment></comment></comment><comment><USER30> Such a qualitative view of design--Nothing about measurement or business goals. I would argue that one design is better than another only if it can be shown to improve whatever business results you're looking to improve. Are you trying to increase 7-day retention? Get more people through the sign-up funnel? Increase conversion? Test the candidate design next to the old one and see if it's actually improving things. "A bunch of other designers think this is a great design" is not really good justification for spending development hours implementing it.

<comment><USER16> Good luck testing it without developing it. And double good luck getting something without investing in it. Apply business process after you actually have the kernel of a product, which includes a product design.

</comment></comment><comment><USER31> The idea of that "good design" is something you "just recognize" is somewhat related to the ideas in the book "Zen and the Art of Motorcycle Maintenance", but replaced with "Quality". Really good read.

</comment><comment><USER32> Good design is when your hopes and expectations come true

meaning: When you do a user action, like double clicking, the application should do what you expect and hope it will do.

</comment><comment><USER33> Lots of focus on too many restraints, but I'd say poor design can just as often be the result of not enough restraints.

</comment><comment><USER34> After reading this, I went through and read all the other linked essays she wrote. Good stuff!

</comment><comment><USER35> Great post. Thanks for sharing. The same way a great song sounds familiar the first time you hear it, good design feels comfortable and effortless from the first second.

</comment><comment><USER36> Great article, definitely a good mantra to keep in my head when I struggle against muggle resistance...

</comment><comment><USER37> Like most articles on medium: self-bluffed nonsense...</comment>


Bash Prompt Magic - <AUTHOR> http://www.ibm.com/developerworks/linux/library/l-tip-prompt/index.html

<comment><USER2> Not so much magic usage tricks as "Making this dark black box you stare at all day slightly more colorful"</comment>


Show HN: Qvault Open Source Password Manager - <AUTHOR> https://github.com/Q-Vault/qvault <comment><USER2> This looks like a very good start. What's your plan for monetization and also mobile apps?

<comment><AUTHOR> The physical cards is our plan for monetization for now. If the community wants other options then we will probably pursue those!

</comment></comment><comment><USER3> looks pretty cool. can it be packaged for mobile? share the encrypted vault with multiple devices? password vaulting in the browser? im guessing you would start charging someone money if you built those features, which is cool. keep going!

<comment><AUTHOR> We plan on doing a mobile version down the line, but we have a lot of features for desktop to add first</comment></comment>


CP/Mish: open-source sort-of-CP/M distribution - <AUTHOR> http://cowlark.com/cpmish/ <comment> david-given Hello, author here.

The big missing bit so far is a text editor --- I haven't found an open source one which will work with my tools yet. (I have found te, which is GPLd, but I need to do some C compiler work first. CP/M is hell on stdio.)

I'm also completely willing to add more tools which are cool/interesting/etc if anyone can suggest any --- the only requirements are source and DSFG licensing; although what I'd _really_ love some more BIOSes if anyone has them, so as to support more platforms.

<comment><USER2> I've done a fair amount of playing around with CP/M, and really enjoy it for providing all of the close-to-the-metal fun of microcontroller programming while being self-hosting with real development tools. Are you familiar with CP/NET at all? It was basically a 'server' that ran on an MPM/II machine (usually) and a number of CP/M or CP/NOS (diskless!) clients that could talk to it and share disk drives and such.

With the availability of large/cheap FPGAs, I've been thinking it would be fun to build a multi-core Z80 system with 1 CPU running a 'kernel' and multi- tasking provided by running CP/NOS clients on the other CPUs - Imagine a multi-tasking OS where each program gets a dedicated CPU instead of having to timeslice!

<comment> david-given I've never touched CP/NET or MP/M, but I've read up a bit on them, and on CP/M 3 which shares a number of features --- I have to say that I'm not really a fan of it; there's a lot of extra complexity for a debatable set of improvements, which is why I stuck with CP/M 2.2. (Also I couldn't find a open source CP/M 3 compatible BDOS.)

I do like the FPGA idea --- it feels like a better GA-144. But I'd probably implement it using something based on CP/M 2.2: it would need a BIOS with a remote console and communication channel system, with a switching fabric in the FPGA tying nodes together. I'd also have to rip the filesystem out of the BDOS in favour of something NFS-like over the communication channels, but as that wouldn't really leave anything left, I suspect this would rapidly turn into a combined BIOS/BDOS with most of the actual work done on the file server.

I'm not convinced the end result would be useful... but it'd certainly be cool.

<comment><USER2> I think CP/NET is actually pretty close to what you're describing - what the 'server' runs on is actually arbitrary (it just needs to implement the protocol and allow file access), and there is an implementation for unix computers floating around somewhere. The clients were running CP/M 2.2 but with a kind of stub BIOS/BDOS (it sounds like it fit in a 4KB ROM of what's basically a thin client) that mostly just had the network interface code.

On an FPGA, just tying together a bunch of cores with 8-bit FIFOs to communicate would be both very cheap and very high performance. I have a simple setup with a Z80 running CP/M at ~80 MHz on a Digilent "Arty" Artix-7 board, and you could probably cram 8 of them on the chip if each core only had a cache backed by DRAM.

<comment> david-given Oh, huh. I thought it was more heavyweight than that. I'll go take a look.

Sadly I don't know enough about FPGAs to know whether the Artix-7 is particularly big or not. But you know what would be _really_ cool, though? If your Z80 cores were all implemented using asynchronous logic...

</comment></comment></comment></comment></comment><comment><USER3> My first computing and programming was on a CP/M machine. It was the 90s, Windows 95 was just coming out and I was just 12, but my family was too poor to afford a contemporary computer. The mother of one of my classmates gave me an old Epson QX-10. Even figuring out how to boot the computer was a learning experience. Among the disks I also found dBASE II, and a book on programming it. I also had a lot of fun duplicating disks and sending files with PIP. Many of the commands and concepts of CP/M were similar to but more orthogonal than MSDOS.

<comment> david-given I have an Epson PX-8 (with integrated microcassette drive!). It's terrible, but in a completely awesome way. [https://www.youtube.com/watch?v=S3MARL-F8NI](https://www.youtube.com/watch?v=S3MARL-F8NI)

</comment></comment><comment><USER4> Hurray! CP/M on an Amstrad 464 in the 80s was my first contact with an operating system that back then felt to me professional - like those in the movies. And it brought compilers.

<comment><USER5> Me too, I used CP/M on an Amstrad CPC 6128.

It was the only environment I could find compilers and an assembler for, along with a book in a local library. It ended up teaching me Z80 assembler, but with Motorola style syntax!

I remember writing an invaders style game and a disk sector editor with it. Fun times and the beginning of a long journey that still continues to this day.

</comment></comment><comment><USER6> This is pretty neat!

One nerdy question, from someone who actually used to run Z-System (on a TRS-80 Model 4 and an Intertec Superbrain, for the record) -- why ZCPR version 1, instead of a later release? Is version 1 the only one with available source and/or a compatible license?

<comment> david-given ZCPR2 has a no-commercial-use license encumbrance, while ZCPR1 is genuinely public domain.

</comment></comment><comment><USER7> My first job was programming a Sony SMC-70 Z-80 based computer that ran CP/M using the BDS C compiler. (BDS stands for Brain Damaged Software. It was an integer-only version of C.) The SMC-70 was connected to a Sony Laser Videodisc player. It controlled the videodisc over an RS-232 connection and put the video out from the videodisc into an overlay circuit that allowed use to overlay computer graphics onto the video. We used this to create interactive training programs for the US Air Force.

</comment><comment><USER8> Ha! I'd love to port this to my Z80-emulator-in-Unreal-Engine project:

[https://i.imgur.com/Q6307w3.jpg](https://i.imgur.com/Q6307w3.jpg)

[https://i.imgur.com/OfGXFeO.png](https://i.imgur.com/OfGXFeO.png)

The BIOS is compatible with Z80Pack, so it wouldn't be terribly hard to modify your BIOS to work with that.

If I can this to work, I might get back to work on my project. It stalled due to the complications around the original Digital Research license, among other reasons.

</comment><comment><USER9> I'm confused -- other sources from DR were GPL'd -- GEM, for example -- was CP/M not included in that dump?

I've definitely seen the CP/M 68k sources floating around, and GPL I believe?

<comment><USER10> The computer history museum has the sources for early versions ([https://www.computerhistory.org/atchm/early-digital- research...](https://www.computerhistory.org/atchm/early-digital-research-cpm- source-code/)).

According to that page _"This material is provided for non-commercial use only."_. The source code archive may be more specific.

<comment><USER9> Yeah, I did see that I'm just confused how a whole bunch of other valuable DR stuff got GPL'd, but not CP/M.

Also, from past perusing, the GEMDOS sources for the Atari ST were basically a fork of CP/M 68k. There's source in there with comments that go back to CP/M. The relocatable binary format loader, for example. I would be surprised if there weren't pieces that that could be scavenged for this project.

</comment></comment></comment><comment><USER11> Cool that you are keeping this alive. I had the Zorba, it was very interesting there was a program that would let you swap disk parameters around so it could read a variety of different disk formats. It made program/data sharing with other people simple.

I see you are looking for an editor, have you considered stripping down the Borland Turbo Editor and using that for your baseline?

<comment> david-given Was it ever open sourced? I can't find a reference.

</comment></comment><comment><USER12> I used to run CP/M on an Apple ][e with a Zilog Z80 card.¹

I learned pascal on it (Turbo pascal) and C as well.

[https://en.wikipedia.org/wiki/Z-80_SoftCard](https://en.wikipedia.org/wiki/Z-80_SoftCard)

</comment><comment><USER13> This is all well and good, but I can't find the answer to the most important question to me: does it have 'ladders?'</comment>


Show HN: We did Google Duplex for businesses in 6 months with a team of 3 - <AUTHOR> https://dasha.ai/en/ <comment><USER2> Fun fact, someone built Google Duplex for Pizza all the way back in 2009: [https://www.twilio.com/blog/2009/12/order-pizza-iphone- app-l...](https://www.twilio.com/blog/2009/12/order-pizza-iphone-app-launches- get-pizza-from-anywhere.html)

From what I could tell, they shut it down because they couldn't figure out a way to monetize it.

<comment><AUTHOR> Thanks for pointing this out, but I'm afraid you're missing the point: the tricky part is to pass Turing test in a sense that your interlocutor should think he or was talking to a human. If you can say for sure that you were taking to a bot, that's not what we or Google did.

<comment><USER2> That's probably relevant for your use case, but it's not really obvious that it is necessary for Google's demoed use case. As the article mentioned 90%+ of pizza shops were willing to take orders from their system, which is basically the main metric that matters for the calling on behalf of paying customers use case.

No argument that what you & Google have done is more challenging.

I am curious whether the media backlash against Google Duplex "tricking people" will impact your business. Whether this is a thing that real people will care about, or whether this is the media blowing things out of proportion.

In any case, I do find it more of a "Fun Fact" than anything really meaningful :)

<comment><AUTHOR> I think it won't impact us. Currenty we are making ~10,000 phone calls per month and we have zero complaints regarding "tricking people". I won't call it tricking at all. It's just a new form of human-computer interaction we all dreamed of. We propose some set of rules guided by Azimov's three laws of robotics. For instance, an AI shouldn't warn you upfront it's an AI, but if you ask "are you an AI", it must tell you so, not trying to trick you, etc. This is how we train our Dasha.AI. We already have a lot of experience in the field. Since launch 6 months ago, Dasha.AI talked at least to 50,000 people. We have enormous dataset of human reactions. Anyone interested in helping us in accelerating world's transition to robot workers and, eventually, to the general AI, are welcome!

</comment></comment></comment></comment><comment><AUTHOR> Hi Vlad Chernyshov, CTO of Dasha.AI here. Just wanted to show you Dasha.AI, an AI for Accomplishing Real-World Business Tasks Over the Phone. We built it with the team of 3 in 6 months. It's like Google Duplex, but for Businesses. Now you can automate virtually any process in your business starting $0.1 per conversation. Currently we support English and Russian. Anyone interested in getting in touch, drop me a line at firstname.lastname@example.com.

I hope you'll enjoy the demo calls: [https://dasha.ai/en/](https://dasha.ai/en/)!

P.S. Don't be afraid of giants. We have smart people, but they are not smarter than you.

<comment><USER3> Everything in English but demos. Seems like you need a Dasha AI to help you create English demos.

<comment><AUTHOR> Thanks for pointing this out! We're a small team , and we have only a real customers demo. We can't waste time creating some imaginery use case. If you're a customer or know somebody who is , let us know.

</comment></comment></comment><comment><USER4> I speak Russian and listened to the demos. IMO this AI is trained to be shockingly offensive (especially 2nd call). I feel compassion for the girl answering, she is scared AF. Voice, intonation, and attitude sound like from a debt collector.

P.S. Congrats to the team! This is amazing, just make it more friendly! ;)

<comment><AUTHOR> Hi Vlad! Thanks. This is for the first time I hear such an opinion :)

</comment></comment><comment><USER5> wow that intro video - fire all human beings and hire us, we'll train robots for you!

<comment><AUTHOR> We just want to accelerate world's transition to robot workers.

</comment></comment><comment> saverio-murgia Hi! Is there any technological limit that prevents you to expand it to other languages? I would be particularly interested in Italian and French.

<comment><AUTHOR> Hi, nothing prevents it. We are releasing a tool for building your own AI for your own business processes later this year that will support your languages. Use a form on the website to be notified when we launch it or drop me a line at firstname.lastname@example.com

<comment><USER6> Can't find the form on the website. I've just sent you an email.

<comment><AUTHOR> Hello! We have received your email. Will reply shortly. There is a button "Request a demo" on the website :)</comment></comment></comment></comment>


FBI (Records Vault) tweets Protocols of Learned Elders of Zion (without context) - <AUTHOR> https://twitter.com/FBIRecordsVault/status/1296144912497352705 <comment><USER2> Looks like this Twitter account just tweets out new FOIA request results. The document has some letters at the end from random people to J. Edgar Hoover, "concerned citizens" sending him this conspiracy theory. So presumably someone opened a FOIA request to get all letters to/from J. Edgar Hoover regarding this conspiracy theory document, and let me tell you the results are boring.

(The FBI Vault is in general interesting though: [https://vault.fbi.gov/](https://vault.fbi.gov/) )</comment>


Oculus Press Conference Live - <AUTHOR> http://www.twitch.tv/oculus/mobile

<comment><USER2> the half moon looks so awks why didnt they use kinect?</comment>


Avoiding Left Turns Across Traffic, the Diverging Diamond Interchange - <AUTHOR> http://www.divergingdiamond.com/history.html <comment><AUTHOR> This story:

[http://www.wbir.com/news/article/147608/2/Diverging- diamond-...](http://www.wbir.com/news/article/147608/2/Diverging-diamond- interchange-fully-open-to-traffic-in-Alcoa)

Prompted me to do further research. As a motorcyclist, avoiding left turns across traffic is particularly interesting.</comment>


Kinvey.com, now with 100% more Orange - <AUTHOR> http://www.kinvey.com/

<comment><USER2> Homepage, the relational queries link is localhost...</comment>


Asemica: An asemic Markov-chained cipher - <AUTHOR> https://github.com/linenoise/asemica <comment><USER2> If I wanted to produce plaintext like ciphertexts, I'd:

1\. Encrypt the plaintext with a standard cipher, producing uniformly random bytes

2\. Build a language model which predicts the probability of the next symbol (nowadays you'd probably use a neural network for that).

3\. Run an arithmetic decoder (or similar) for that model on the ciphertext. This translates random bytes into language. The quality of the output depends on the quality of the language model.

</comment><comment><USER3> I've wanted something like this for barcodes. My company depends on our users to enter in a 16 digit barcode correctly. It would be great if the 16 digit barcode can somehow be bi-directionally translated into a sentence (grammatically correct sentence would be even better). While this will probably take the user more keystrokes to type out, it should reduce entry errors.

<comment><USER2> If you drop the grammar requirement, you can easily use one of the many dictionaries made for this purpose (e.g. diceware or a bip39 wordlist which even has support for many languages).

If you feel fancy, you could make it order independent or add error correcting codes to compensate for a limited number of mistakes at the cost of an extra word or two.

</comment></comment><comment><USER4> That's not what usually...

[https://en.wikipedia.org/wiki/Asemic_writing](https://en.wikipedia.org/wiki/Asemic_writing)

</comment><comment><USER5> Interesting!

You want secure asemic cipher? say hello to Format-preserving encryption.

[https://en.wikipedia.org/wiki/Format- preserving_encryption](https://en.wikipedia.org/wiki/Format- preserving_encryption)

</comment><comment><USER2> I'd rather consider this an encoding than a cipher

<comment><USER6> Why? It has a secret key. Doesn't that qualify it as a cipher?

<comment><USER2> I'd treat that file as merely a style template, not as a key.

Selling it as a cipher opens it up to criticism, since from the description it sounds like a simple substitution cipher with decoy symbols, which is obviously not secure.</comment></comment></comment>


Why I no longer host my emails myself - <AUTHOR> https://jlelse.blog/thoughts/2020/07/no-email-selfhosting/ <comment><USER2> Mailservers are a royal PITA. And may god help you if your assigned ip block is blacklisted because of some previous user. Mail delivery is just much less painful when you pay someone else with dedicated infrastructure. Kinda sucks because I remember when we all had our own on premises or co-lo mail servers.

I just think that era is dead. Spam has become so crazy- heck I use g suite (google apps) because the gmail spam filter is so powerful. I do not miss going and trying to manually tweak spam assassin rules so XYZ domain can email some user for an important project.

I am guessing this is the case with most HN users these days.

</comment><comment><USER3> If you can setup your SPF, DKIM and DMARC settings, you'll never have to worry about paying for email services. You can keep your email flowing to customers and maintain your security. Unfortunately, very few sysadmins these days seem to want to spend any time learning the ins-and-outs of successful email delivery.</comment>


Police want backdoor to Web users' private data - <AUTHOR> http://news.cnet.com/8301-13578_3-10446503-38.html <comment><USER2> _CNET has reviewed a survey scheduled to be released at a federal task force meeting on Thursday, which says that seven-year-old girls are virtually unanimous in calling for ownership of ponies. Eighty-nine percent of the girls surveyed, it says, want to be able to "Brush their manes and ride around the yard" through an encrypted, seven-year-old-girl-only "nationwide pony network."_

</comment><comment><USER3> A private system for handling electronic search warrants is not the same thing as a "backdoor to web users private data".

</comment><comment><USER4> It's interesting that Cox actually has a price list for these sorts of things. That's ballsy. Most ISPs just see someone with some form of authority and tuck their tail.

<comment><USER5> That's not entirely true. Yahoo issued a takedown notice last year when its price sheet was leaked. I imagine most major US carriers have firm policies given the frequency with which they must service these requests.

<http://www.wired.com/threatlevel/2009/12/yahoo-spy-prices/>

Edit: Dug through a bit on my own link and found that Cryptome unearthed some of these price sheets with a FOIA request to the US Marshals. Implicated companies included Cox, Comcast, Yahoo, and Verizon.

<http://www.wired.com/threatlevel/2009/12/wiretap-prices/>

</comment></comment><comment><USER6> _Authorized users would communicate through encrypted virtual private networks in order to maintain the security of the data._

Buzzword security right there.

 _Kardasz's survey, based on questionnaires completed by 100 police investigators, says that 61 percent of them had their investigations harmed "because data was not retained"_

39% of police investigators' investigations would be unsolvable even if they knew everything about them?

 _the "legal compliance secure Web portal_

Why the need to add 'secure' to the name anyway?

<comment><USER3> What's "buzzword security" about virtual private networks? I'd be appalled if this wasn't running over a VPN. Just be thankful they aren't asking for $3Bn to run a new leased line network in 2010.

<comment><USER6> Virtual Private Networks themselves aren't buzzwordy; a non-technical article which includes, effectively, "don't worry about bad things because {name_of_popular_technology} will make it safe" is buzzwordy.

Or it would be if it said that - a second reading shows I've taken it out of context, that's not how it's used in the article. I apologise to anyone misjudged.

</comment></comment></comment><comment><USER7> This is terrible! I can't imagine the incredible amount of abuse the police will be performing if they have such a toy.

Neither the police nor the government should EVER be trusted with such kind of power.

<comment><USER8> At least with one centralised system there will be a definitive log of who has accessed what and when they accessed it. Hopefully it will add some accountability. It sure beats post-it notes.</comment></comment>


This png encrypts to the same image - <AUTHOR> https://i.imgur.com/WRxFKdq.png

<comment><AUTHOR> Command: openssl aes-128-cbc -K "55555555555555555555555555555555" -iv "83deccd3f93b37c70d37297f319cf367" -in WRxFKdq.png -out OMG_SAME_IMAGE.png

Youtube Link: [http://youtu.be/wbHkVZfCNuE](http://youtu.be/wbHkVZfCNuE)

Previous discussion: [https://news.ycombinator.com/item?id=7771568](https://news.ycombinator.com/item?id=7771568)

<comment><USER2> Ange Albertini does some amazing work. If you haven't checked out his corkami repo I would highly recommend it.

[https://code.google.com/p/corkami/](https://code.google.com/p/corkami/)

<comment><USER3> He's very enthusiastic about sharing his tricks too. I spent the day hanging out with him at Troopers in March and we spent a lot of time discussing the structure of PDFs.

He's the one behind the file tricks in the journal of POC||GTFO - [http://www.exploit-db.com/wp- content/themes/exploit/docs/poc...](http://www.exploit-db.com/wp- content/themes/exploit/docs/pocorgtfo03.pdf)

In fact, he set a fun challenge - can you produce a PDF file that is different every time it's opened? e.g. a bingo card generator.

The back of his business cards have cut down introductions versions of his posters, so everyone takes something away from meeting him. It's fun watching people decide which one they want.

</comment></comment></comment><comment><USER4> Similar: the creation of an image that is it's own histogram.

[http://www.ironicsans.com/2007/09/idea_the_histogram_as_the_...](http://www.ironicsans.com/2007/09/idea_the_histogram_as_the_imag.html)

<comment><USER5> Obligatory xkcd reference: [http://xkcd.com/688/](http://xkcd.com/688/)

<comment><USER6> The word you were looking for is _perfunctory_.

<comment><USER7> Can you explain? "Obligatory" sounds reasonable here.

<comment><USER8> He's didn't mean obligatory was the wrong word. He's saying we could have done without the xkcd.

<comment><USER9> Possibly derived from the Usenet habit of putting an "Ob" footer reference to a piece of pop culture, to demonstrate hipness.

</comment></comment></comment></comment></comment></comment><comment><USER10> Could this be considered a rather perverse form of a quine?

<comment><USER11> If it was really a quine, the process could be repeated. This one works only once.

</comment></comment><comment><USER12> Reminds me of [http://en.wikipedia.org/wiki/Tupper's_self- referential_formu...](http://en.wikipedia.org/wiki/Tupper's_self- referential_formula)

</comment><comment><USER13> For others, you may find this [http://projectnaptha.com/](http://projectnaptha.com/) useful to extract text from the image inside the browser.

<comment><USER14> This image was the first time I've found it handy to have it installed. It's not as useful in day-to-day browsing as you might think.

<comment><USER15> Indeed, and it takes quite some memory, and it's for me the first extension ever which actually crashed at some points (I'm using Chrome with a dozen other extensions installed).

</comment></comment></comment><comment><USER16> Novelty aside, if you encrypt to the same image, what was the point of encrypting? Can you hide something in the metadata that wouldn't have been visible until decryption?

<comment><USER17> This would be a great form of Steganography. [1] Obviously, not having it return the same image, but something different. Encrypting a given file into a valid image file (like a meme.) It would pass by many things without raising suspicion, and require private knowledge (key, iv) to recover the alternate payload. It might even be plausibly deniable.

[1] [http://en.wikipedia.org/wiki/Steganography](http://en.wikipedia.org/wiki/Steganography)

<comment><USER18> To be honest, rarjpegs (rars attached after jpeg file contents, properly unarchives by any software) have been used in the imageboards for a long time and are super-simple to create (cat file.jpg file.rar > file.jpg).

It's actually rather interesting, if someone attaches some illegal content into rarjpeg, will it automatically make you a criminal after you see it (and store it onto your hard drive)?

<comment><USER19> Talking about illegal information is an inherently difficult task because illegal information is, as I see it, an illogical concept. With time, we can only hope that laws regarding information transmission loosen up.

Familiar with [http://en.wikipedia.org/wiki/Illegal_prime](http://en.wikipedia.org/wiki/Illegal_prime) ?

<comment><USER20> Think of it as the distribution of illegal information that is illegal. And the idea of a "illegal number" is extremely misleading. Every number can represent any content under the right encoding. It's also nearly infinitely unlikely anyone would stumble across the data own their own by chance.

</comment></comment></comment></comment></comment><comment><USER20> How on Earth does this work?

<comment><USER21> Yesterday's article was more helpful: [https://speakerdeck.com/ange/when-aes- equals-episode-v](https://speakerdeck.com/ange/when-aes-equals-episode-v)</comment></comment>


Why Trigger.io doesn't use PhoneGap – 5x faster native bridge - <AUTHOR> http://trigger.io/cross-platform-application-development-blog/2012/02/24/why-trigger-io-doesnt-use-phonegap-5x-faster-native-bridge/ <comment><USER3> (disclaimer: I work for Adobe on a competing service (PhoneGap Build) and have worked with PhoneGap for years)

This is a silly benchmark - there is absolutely no reason you would put 1000 calls at once, sequential or parallel, across this sort of bridge in a real app. You probably shouldn't be calling _any_ JavaScript API in a client-side app 1000 times at once.

The bridge in PhoneGap Android probably is slower than the one in Forge but

1) that's a tradeoff the PhoneGap devs were willing to make for wider compatibility, support for older devices, and isolation from the bizarre Android WebKit bugs that crop up in every release.

2) synthetic benchmarks aside, there's no indication this would affect the usability of the app.

Take the camera example in the article. A PhoneGap call (judging from the graphs) takes about 14ms, a Forge call about 3ms. That's for the entire round trip (JavaScript -> Native -> JavaScript), so divide each in half for each side of the trip.

With PhoneGap: * first half of the trip (7ms) * Android presents Camera activity, user picks a photo, Android returns control to original app (say, 500ms, very conservatively) * second half of the trip (7ms) = 514ms

With Forge: * first half of the trip (1.5ms) * Android presents Camera activity, user picks a photo, Android returns control to original app (500ms) * second half of the trip (1.5ms) = 503ms

This is much closer to a real-world use case - and the calls to native APIs entirely dominate the time spent on the bridge.

<comment><USER4> Hey Andrew - a disclaimer of my own: I'm a co-founder of Trigger.

Actually, we think this is a pretty important benchmark: battery drain and general responsiveness is a huge deal on mobile devices, so we take performance of the bridge very seriously. Every millisecond counts here.

Also, I can absolutely see the need to send large number of messages - <USER2> streaming accelerometer API, for example, which is on our roadmap.

You're right that there might be trade-offs between raw performance and supporting every quirk of every device. However, in this case, the Android bug you refer to only affects v2.3 emulators, not actual devices (to the best of our knowledge). We automatically set up our users with a v2.2 emulator to side step the problem.

We think such significant performance gains for our users, and a much cleaner, easier to maintain codebase for us, is well worth it in this case.

<comment><USER5> That's disingenuous: if every millisecond counted, then you'd be developing apps natively instead of using a web bridge.

Clearly, there is a tradeoff to be made between usability&portability and speed. To be fair, I think the camera example is not a good one: at Zite we use web<->native api for lots of things that performance is really important for since they are frequent (logging, timing, anything called frequently)

<comment><USER6> Disagree it's disingenuous. I'm a web developer without any mobile experience. I accept there will be some performance impact from using a web bridge. However, I want to minimize this as far as possible - and all the studies show milliseconds really do count so far as usability goes.

Agree the web<->native api performance is important for the use cases you mention.

<comment><USER7> I disagree to your disagreement. :)

Although performance is important, as someone who does PhoneGap apps for a living (<http://mulberry.toura.com>) I can tell you that there are so many other performance problems with HTML5 that this is wayyy premature optimization.

11ms isn't going to kill you, and if you are experiencing performance problems, there are far more important things to do (check for DOM leaks, dealing with 3G latency, etc.) than shave off a few ms on a call to a native function.

Or put another way, there's no reason to create another PhoneGap-like framework to save 11ms on a native function call. There are a whole lot of other reasons (many business-related) of course. But this isn't one of them. :)

Thanks,

\--

Matt

<comment><USER8> This a million times. I spent a better part of the last year optimizing the hell out of an HTML5 app and the bottlenecks are almost entirely in initial rendering time (CSS stylesheets and HTML Parsing/Manipulation and coaxing the memory management to not explode on you with a lot of images).

<comment><USER4> Hi, Agreed that in your standard app, the overhead of rendering will outweigh that of communication with native code.

For us at Trigger, however, we don't have any control over the efficiency of your Javascript, or the interpreter and rendering engine that holds it.

What we _can_ control is how efficient the communication is between your JS and the underlying native APIs. Everyone agrees that performance is a key issue, so we take great care to ensure that the performance of code we control is as small as possible.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Interesting - haven't heard of Trigger.io before (I build a lot of PhoneGap applications). One thing that's going to keep me on PhoneGap for the foreseeable future, despite its issues, is the fact that it is an Open Source project now. I trust ASF + volunteers more than any startup/company.

</comment><comment><USER10> _facepalm_. First, it is generally better to apply performance improvements to the existing framework than to create a new one.

Second, different is not always better. This will increase call performance, but will incur a (de)serialization penalty, limit parameter types (likely to scalars and read-only hashmaps), and make debugging more difficult. And beware of telling the OS that you implement this protocol, or you will have created an XSS attack vector on your native app.

Whenever you break new ground, don't fool yourself into thinking that you're the first person who has had an idea, and make sure that you sanity check your work.

<comment><USER11> We totally agree that when things have a solid foundation it makes sense to build on top of them. The problem we saw with Phonegap was several design decisions we disagreed with (as we described briefly in the blog post).

This left us with the option of putting up with it (and ending up with an inferior product), or writing our own bridge, and writing our own bridge made sense. Of course you are right in that writing anything new means you have to work hard to get it to as high a standard as the alternatives, which is why we work hard to test our platform - see [http://trigger.io/cross-platform- application-development-blo...](http://trigger.io/cross-platform-application- development-blog/2012/01/26/how-forge-works-and-why-were-proud-of-it/).

It's also important to remember that the native bridge is just one part of our product, we also write the code that generates and builds the app, which we want to integrate as tightly as possible. Writing our own bridge makes this a lot easier to do well.

<comment><USER12> You gotta admit the native bridge is pretty important though, it could be a bottleneck for all the nice bits native code. On that basis the bridge is fundamental to good performance.

</comment></comment></comment><comment><USER13> It would have been great to see these improvements contributed back to PhoneGap/Cordova, which has an extremely permissive license and whose code is open-source. As it is, trigger.io comes with a restrictive license, I have to create an account to use it, I can't see the code, and they mandate that I include their branding with any free use of their product. Yay.

<comment><USER14> Is trigger.io a fork of PhoneGap? If not, "contributed _back_ " isn't exactly the right phrase.

In any case, I think that anyone is free to do whatever they want with their code- trigger.io are not obliged to liberally license their work. They even describe how they've achieved their performance increase in the blog post- it's more than many would do.

<comment><AUTHOR> Yep, to be clear - trigger.io is not a fork of PhoneGap or downstream from it.

</comment></comment></comment><comment><USER14> This is an awesome read. I've made an HTML5-based app (overview at <http://taxono.my> for the curious), but have been stuck using Appcelerator, because I need to use the hooks to run code in the background- AFAIK PhoneGap and the like do not have the ability to do this unless you make an Objective-C plugin.

But the bridge between the webview and the Appcelerator code is _painfully_ slow. I had it pinging over current location coordinates more than once per second- it worked fine in the simulator but utterly crippled the app when run on a device. For now all I can do minimize the number of calls I make, but that's hardly a great solution.

<comment><AUTHOR> Thanks, we'll do comparisons against other native bridges in the future also.

Cool app by the way thanks for sharing... though I wish I could try it on my Android ;-)

<comment><USER14> Thanks! The app was developed for an NYC app making competition (<http://2011.nycbigapps.com>) and so, with a deadline- so the Android version ended up not being finished in time.

Rest assured, the Android version is on the way. In fact, this app-crippling native <-> webview communication is what has taken up all my time and stopped me from developing the Android version.

Looking forward to the day you guys have a solution for background processing- the Appcelerator JS/native hybrid is a mess I'd love to see the back of.

</comment></comment></comment><comment><USER15> Anyone have experiences of moving from PhoneGap to Trigger.io? Sounds like the tooling is a bit simpler to use (you can avoid XCode): [http://www.quora.com/How-is-Trigger-io-better-than- PhoneGap-...](http://www.quora.com/How-is-Trigger-io-better-than-PhoneGap-or- Appcelerator) But otherwise I can't see many inducements to using Trigger.io's commercial service over open-source PhoneGap.

<comment><AUTHOR> When thinking about the pricing model, you should compare us to a combination of PhoneGap's cloud build service (which is also fremium and restrictive) and their support packages:

<http://phonegap.com/support#support-packages>

The main difference with us is that you do not pay to raise a support tickets: you get direct access to our developers on any plan. And we charge per-app with no restrictions on the number of developers.

<comment><USER7> Is that really the main difference?

It seems, from what I can tell, users _must_ go through Trigger.io to do a build to get their app in the store. Their code isn't portable to a non- trigger.io platform, either (mobile web, etc.), and the built binary contains closed-source code (Trigger.io platform stuff).

You can run a PhoneGap build locally without going thru the PhoneGap build service. And you get complete and unrestricted access to the source code.

If your service disappears or starts charging exorbitant amounts of money, users are SOL.

Trigger.io is a commercial entity that is in the business of locking customers into a platform and exploiting it. PhoneGap is the opposite. I place no value judgements on this (I use plenty of licensed code on a daily basis and I work for a commercial entity doing something similar); that may or may not matter to a person, but to me - _that_ seems to be the main difference.

<comment><USER16> +1. Even if there is perfect trust with a platform vendor, that doesn't mean they won't come under new management tomorrow that rewrites the rules. That's a scary proposition for the backbone of one's business, since porting to a new platform is almost as much work as writing it in the first place.

I can't say I never use closed libraries/platforms/APIs, but when possible, I always choose the option that has a community fork, or some other escape route.

</comment></comment></comment></comment><comment><USER17> re: "This approach is heavier and hackier, but a decision they made in order to sideline a bug in the Android 2.3 simulation. It's not a bug that affects actual Android 2.3 devices, so we take this to be a bit of overkill."

From what I could tell, the bug was shipped starting with some version of Android 2.x (I'm thinking 2.2) where JSC was used as the internal JS engine for WebKit instead of V8. When the Android devs added V8 support, they actually broke JSC support. It's a device manufacturer choice (or was) as to which JS engine to use. Curiously, Android shipped the 2.3 simulator image (guess that was the version) with JSC support, thus, "it was broken".

The API in question is `WebView.addJavascriptInterface()`. That method returned successfully, but whenever you accessed the interface from JS, you'd trap.

Could be this was only on the simulator, but - I'm thinking folks saw this on devices as well. Maybe those devices are no longer relevant?

Presumably Cordova will revert back to using `WebView.addJavascriptInterface()` when it's safe to do. The problem is, it's not clear when it's safe to do so. It's also not clear how you can test your JS environment to see if "it's safe", programmatically. Or maybe you can (eg, throw an Error, check for existence of error.stack), but ... it's wasn't a comfortable situation to be in.

Do you have some references that the 'bug' doesn't ship on devices, or that it no longer ships on simulator images?

What versions of Android SDK/simulator/devices does Trigger.io support? Presumably you don't support running Android 2.3 on the simulator, as your code would trap?

<comment><USER4> Hey Patrick, we support from v2.0 upwards, although not as heavily tested on 2.0 and 2.1. Our tooling actually sets users up with an AVD, and our docs (<http://docs.trigger.io/en/v1.2/android/getting-started.html>) do say that 2.3 is not supported on the emulator.

Although we obviously can't test every device out there, everything so far points at no device ever actually shipping with JSC after 2.2, e.g. see <http://code.google.com/p/android/issues/detail?id=12987>

If we do get requests from our users to change that approach, we'd obviously consider it, but at the moment, we think the significant performance and code cleanliness benefits outweigh the downside.

</comment></comment><comment><USER18> Would be curious to know why Trigger didn't use the URL interception method in Android. Is that significantly slower?

<comment><USER11> I'm not quite sure I understand what you mean (so if this is the wrong answer let us know). But if you mean why do we use a different method on Android compared to iOS: we can communicate directly from Javascript to Java as part of the WebView in Android, which is very fast. The URL interception method is actually the slowest part of iOS but there is no way around it.

<comment><USER10> You can call Objective-C from JavaScript on iOS: [ [https://developer.apple.com/library/mac/#documentation/Apple...](https://developer.apple.com/library/mac/#documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html) ]

<comment><USER11> I believe this is a Mac OS X feature that isn't supported on iOS.

</comment></comment></comment></comment><comment><USER19> Last time we were looking at the web/javascript based cross-platform tools there seemed to be lots of issues with memory handling (running out of memory to be specific). Is this still the case or, even, has this ever been a major issue for big applications? Maybe somebody who has used these tools successfully can provide some more information.

</comment><comment><USER20> Trigger looks to be an interesting technology, unfortunately it also looks like a Gowalla Situation waiting to happen. It would be tough for me to build products for my clients (or a business) on that.

</comment><comment><USER21> How does this compare to other native bridging platforms like Appcelerator Titanium? I see no mention of it anywhere in the blog posts or on the comparison charts on your site, etc.

<comment><AUTHOR> We'll do other articles and comparisons in the future - we haven't yet had a chance to benchmark against Appcelerator.

Anecdotally we think a performance comparison of the bridge would be favorable, but actually the main reason people use us over other frameworks is that our development process is designed for web devs.

So with us, you don't need to do local compiles or use a particular IDE, and we have a much faster build / test cycle.

</comment></comment><comment><USER12> I don't want to be a spoil-sport, but it's not rocket science to make native bridges really fast, you have to cheat, it's fiddly and different for each OS type.

</comment><comment><USER22> Narrow scope benchmarks are nice. But I wonder how these platforms (phonegap, trigger.io, feedhenry) stack up in real world development scenarios.

</comment><comment><USER23> This is great. I`m a huge fan of PhoneGap. I'll check out Trigger for sure, hope it's just as easy!

<comment><USER24> Awesome - we'd love to hear what you think after you have a play. Feel free to email me directly at email@example.com if you have any questions.

Simplicity is and has always been of huge importance for us. Developers that use our framework tell us it is much easier to get started with than other offerings out there.

</comment></comment><comment><USER25> Is there a Trigger.io kitchen sink? I would like to test the UI responsiveness.

</comment><comment><USER26> Or you could realized language bridges are stupid and just write the Android and iOS code. Seriously, all you do is trade one set of problems for another. Might as well deal with the native platform problems and make an awesome app for that platform.

</comment><comment><USER27> Naive question: Does Trigger.io allow multiplatform use of WebGL?

<comment><USER28> Multiplatform on mobile? As far as I am aware, no browsers for Android support WebGL. And Safari on iOS certainly doesn't.

And as long as you're referring to mobile, why wouldn't you just use OpenGL anyways?

<comment><USER29> Firefox Mobile supports WebGL on Android.

With a little work, UIWebviews on iOS (4.2+) support WebGL.[1]

[1] [http://atnan.com/blog/2011/11/03/enabling-and-using-webgl- on...](http://atnan.com/blog/2011/11/03/enabling-and-using-webgl-on-ios/)

<comment><USER28> Sweet, I did not know. Is the performance respectable (provided it's a modern device)?

<comment><USER27> It's not going to match native apps, but it works. Chrome Beta (ICS-only alas) supports WebGL as well</comment></comment></comment></comment></comment>