Ask HN: Is there a pan-English accent? - <AUTHOR> On networks like Univision, anchors like to speak neutral Spanish, or otherwise "pan-Latino" is this possible in English? I started wondering this after reading the profile on Jorge Ramos in the New Yorker http://www.newyorker.com/magazine/2015/10/05/the-man-who-wouldnt-sit-down <comment><USER2> As a Brit, I'd say "General American" would be regarded by most English speakers as the most neutral accent, being the most widely spoken and most influential in media.

Us Brits might have conceived the idea of "received pronunciation" as a location-free English accent and exported it via international schools (though South Africa is the only place I can think of with non-trivial numbers of people whose accent is defined more by RP-norms than local norms), but in practice, very few people speak anything resembling the traditional RP, an accent most Britons would see as _glaringly_ indicative of some combination of the speaker's private-schooling, age and pretentiousness. The southern (or subtly southern-ised) English accents that are most predominant in British run media are quite starkly different from traditional "RP" or "Oxford English" in terms of pronunciation and perceived social prestige.

</comment><comment><USER3> "I have a very standard accent" said a new colleague, as I and also new Australian and New England colleagues looked on in disbelief at these overly extrudely nasal West Coast tones. "At least Keanu Reeves sounds cool" I thought to myself.

There is no pan-English accent. There are plenty of projects to document this. Perhaps try something like Forvo: Type your word, and hear the different pronunciation via via speakers from different places in the world: [http://forvo.com/languages/en/](http://forvo.com/languages/en/) for example the word 'English' [http://forvo.com/word/english/#en](http://forvo.com/word/english/#en)

</comment><comment><USER4> [https://en.wikipedia.org/wiki/Mid- Atlantic_accent](https://en.wikipedia.org/wiki/Mid-Atlantic_accent) was once considered that but its usage declined after WWII.

<comment><USER5> Yeah, there are a lot of elderly folks in NYC who use something like the Mid- Atlantic accent. Today it sounds made up, as if they learned English from old movies.

<comment><USER6> I imagine it sounds impossibly plummy to younger Americans, much like the 1930's aristo RP English spoken by, for instance, Deborah Devonshire (see youtube interview) sounds to younger British people. I like the sound of that mid-Atlantic though. It was always a pleasure to hear Gore Vidal interviewed - so articulate, insightful and witty, all the time in those rolling candences...

<comment><USER5> Right, Gore Vidal is a perfect example of the elderly-NYC mid-Atlantic accent. Except for me it works better on TV than sitting across a coffee table. It just sounds fake to me--some part of my brain can't believe that these people really grew up talking like that.

</comment></comment></comment></comment><comment><USER7> _" His English is fluent, if strongly accented. His Spanish, particularly on- air, is carefully neutral—pan-Latino, not noticeably Mexican."_

Yes. From a migrant country like Australia, if you flick on SBS TV News, you get the same phenomena. Fluent English, accented but neutral foreign tongue. You can hear the English equivalent on BBC World News with the announcers speaking RP. [0]

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

</comment><comment><USER8> It's worth noting that the concept of "all accents being equally valid" is not true in informational terms. Google "vowel degeneration" if you want to know why some people speak in what appears to be an over formal, over enunciated accent. Rather than showing off education or age, often they are simply distinguishing key sounds in the language.

</comment><comment><USER9> [https://en.wikipedia.org/wiki/General_American](https://en.wikipedia.org/wiki/General_American)

Is not pan english in that it is mostly attached to the US. But given the vast scope of the US media penetration its probably as close as you get.

</comment><comment><USER10> I would say there are two, and they are not too far apart: BBC English and Hollywood/US network news English. (That is, I would say that notahacker and bootload are both right.)

</comment><comment><USER6> Any Americans care to comment on JFK's accent? Was it mid-Atlantic? Or New Englandish?</comment>


Turns out Verizon's $70 gigabit internet costs way more than $70 - <AUTHOR> http://www.theverge.com/2017/4/25/15423998/verizon-70-gigabit-costs-more-pricing-upgrade <comment><USER2> This is a way where Europe is much better than the USA. If I buy something in Europe, the tax is already included: the price listed _is_ the price. Most restaurants don't require massive 20% surcharges in the form of tips. The menu price _is_ the price.

In the USA anytime I try to make a major purchase (house, car, recurring internet) I'm instantly saddled by numerous hidden fees, optional charges and up-selling that substantially increase the end cost.

<comment><USER3> I've never understood this line of reasoning. You don't object to sales tax per se, you just prefer that it be hidden from you? (Ie, included in the sticker price.) But later you object to hidden fees in the context of major purchases.

Which is it -- should taxes be visible or invisible? Does the visibility of the tax matter more than the amount of the tax?

The strong preference for _highly visible taxation_ might be a uniquely American thing. Most Americans probably know their effective state & local sales tax rate to within a whole percentage, since it's a separate line item on literally every transaction they engage in. Where I live total sales tax is about 7%; the highest that total sales tax rates reach in America is about 10%. (For comparison, sales tax in Germany is 19%). In my hometown, a proposal to increase local sales tax by even 1/10th of a cent is accompanied by vigorous public debate, and often enough fails to pass. People pay close attention to these things.

Where we seem to agree: lots of hidden fees and upcharges are a consumer UX problem, and they result in confusion and frustration. Anecdotally it seems the most regulated industries (air travel, internet service, phone service, public utilities) are the worst offenders.

<comment><USER4> > I've never understood this line of reasoning. You don't object to sales tax > per se, you just prefer that it be hidden from you? (Ie, included in the > sticker price.) But later you object to hidden fees in the context of major > purchases.

Those are consistent. "Hidden Fees" is the common term for fees which are required but not disclosed as part of the advertised price; they are part of advertising a price that is lower than what you actually must pay for the good or service.

Sales taxes that are not included in marked prices are a form of hidden fee, and reduce the visibility of _prices_.

<comment><USER3> Okay, there's some disagreement about terminology here. Does "hidden" refer to a tax or fee rolled into the price? Or does "hidden" mean "only visible later, at checkout?" Guess it depends on whether you're talking about tax being hidden, or total price being hidden.

> Sales taxes that are not included in marked prices are a form of hidden fee, > and reduce the visibility of prices.

No disagreement there. Separate sales tax makes every price a computation, and the local optimization is to remove all that computational overhead. I'm not sure the local optimum of invisible tax is a global optimum, however. General public awareness of taxation might be worth the cost in the long run.

<comment><USER5> > . I'm not sure the local optimum of invisible tax is a global optimum,

It's not invisible.

For example, here's an item from a menu in Australia:

$1.95, includes 10% GST.

You get the total final cost, as well as the tax breakdown.

</comment></comment></comment></comment></comment><comment><USER6> What's a fios router and why do you need one ? Why do you need any equipment from them ? The forced cable box monopoly was bad enough. Is it happening to routers too now ?

<comment><USER7> I could be wrong, but I think you only need the Verizon modem if you also get TV from them. If you don't, you have to have them activate the ethernet port on the ONT and you can use whatever router you want.

<comment><USER8> You are correct. The 'verizon router' is only necessary in some strange way to support the set-top-box for TV purposes [1]. If you have internet only, and a hot ethernet jack on the ONT, you can use whatever you like.

My FIOS came with a hot ethernet jack, and the crappy verizon POS router has never been hooked up to the FIOS. Instead what is attached is the Linux PC that acts as my router/firewall. Works just fine that way.

[1] And, oddly, it (the stupid router) is still required for the set-top-box even if all one has is TV+Phone. It's coax has to be tee connected to the coax feeding the set-top-box before the set-top-box will start up and operate properly.

<comment><USER9> Darn. AT&T makes you connect their router ("modem") to the ONT. They won't activate a direct connection to the ONT. Something about 802.1x certificates being baked into the router.</comment></comment></comment></comment>


Software Engineering Blogs - <AUTHOR> https://github.com/DataFoxCo/engineering-blogs <comment><USER2> why was a fork necessary as it seems original repo still active</comment>


Struggling BitPay Shows Why Bitcoin Is Not a Good Payment Mechanism - <AUTHOR> http://www.technologyreview.com/view/541901/the-troubles-of-bitcoins-paypal-show-why-the-cryptocurrency-is-not-a-good-payment/ <comment><USER2> This is so absurd it's basically trolling. I'd be willing to bet the author hasn't actually used bitcoin to buy something.

It actually works extremely well. Anything I can buy with btc instead of a credit card I do, it's so fluid and easy it's amazing.

</comment><comment><USER3> BitPay != Bitcoin, in the same way that every single bank in this list [1] != fiat currency.

[1][https://www.fdic.gov/bank/individual/failed/banklist.html](https://www.fdic.gov/bank/individual/failed/banklist.html)</comment>


Downtime Calculator: The real cost of downtime - <AUTHOR> https://www.serverdensity.com/cost-of-downtime/

<comment><USER2> It's not working for me on Chrome.</comment>


Ask HN: Cap table privacy? - <AUTHOR> Are cap tables typically private?<p>That is to say, can new investors see the entire cap table? <comment><USER2> As already mentioned most new investors will want to see a version of your up- to-date cap table before investing. Beyond this, equity management software such as eShares (where I work) allows companies to give investors real-time access to their cap table (after they invest), so investors can check your cap table anytime without having to ping you or your lawyers. Over 80% of companies do this--whether sharing their full cap table or a summarized version.

</comment><comment><USER3> Cap Tables aren't usually private. I don't recommend advertising it on your website but, certainly, any new investors will need/want to see it before committing.</comment>


Ask HN: php development environment - <AUTHOR>

After 10 years I am going back to PHP, good suggestion to make this soft anyone? (Coming from web development with Ruby and Python) <comment><USER2> I've just started back with PHP as well, and nice things I've seen that didn't exist when I last did PHP in 2006 are:

Composer - a dependency manager that's a lot like Bundler.

Pimple - a dependency injection framework.

Klein - a routing library that's much nicer than handling routes in Apache or working with requests directly.

As for an editor, I've just been using Eclipse with the PHP development tools. I'm sure there is a better tool out there, this was just the first thing I grabbed.

<comment><USER3> If you're gonna use an IDE then certainly check out phpStorm. I'm a big fan of vim but testing phpStorm made me doubt my ways.

<comment><USER4> Another great IDE is PHPEd. Its is Windows only but I love its debugging and profiling capabilities.

</comment></comment></comment><comment><USER5> I run Laravel myself. It's an awesome framework (composer is included, as are things like a CLI and the Eloquent ORM to make things easier for you), with great support and documentation. It's as easy and verbose like RoR, only with laravel it's absolutely clear what's going on inside the framework. Their API is stupid simple, for instance.

I could go on for hours, but I highly, highly recommend it, especially coming from Ruby.

</comment><comment><USER6> You're going to want to check out Laravel.

Laracasts.com is a great place to get up to speed. [https://laracasts.com/series/laravel-from- scratch](https://laracasts.com/series/laravel-from-scratch) [https://laracasts.com/series/digging- in](https://laracasts.com/series/digging-in)

</comment><comment><USER7> For a dev environment I would use a vagrant box. Take a look at puphpet.com

Framework-wise I'd recommend checking out Laravel.

</comment><comment><USER8> What made you come back to PHP after such a long time? I have seen many people running from PHP to ruby or python. Please share your experience.

thank you

</comment><comment><USER9> Facebook seems to be having a fair amount of success using the HipHop VM ([http://hhvm.com](http://hhvm.com)). Seems to have support for most of the PHP frameworks I've heard are worth using recently. Just curious, why the move to PHP? I've been having wild fun with Node.js and Golang.

</comment><comment><USER10> ampps for windows is a good dev environment, or debian just do nginx or apache stacks, i also second laravel if you come from rails it maps to rails very closely, and has awesome support and mind share.

</comment><comment><USER11> tbarbugli, usually is the other way around, can you tell us why you coming back to PHP after Ruby/Python ? Personally, I'd suggest you checking Laravel (Framework).

</comment><comment><USER12> Check out: Symfony2 and Zend Framework 2</comment>


The Four Meta Secrets of Scaling at Facebook - <AUTHOR> http://highscalability.com/blog/2010/6/10/the-four-meta-secrets-of-scaling-at-facebook.html

<comment><USER2> Secrets about secrets?

<comment><USER3> You'd think so, wouldn't you? But apparently it's just a new development in the link-whoring ecosystem... instead of spicing up dull facts by claiming they're secrets, you can now claim they're _meta_ -secret!

Of course the meta-meta-secret here is that these meta-secrets are neither secret nor in any way interesting. Want to hear the first meta-secret? "Scaling takes iteration". Like, whoa.

Prepare to have your mind blown by the second meta-secret: "Don't over design".

You'll never guess the third meta-secret! "Choose the right tool for the job". I never would have thought that choosing the right tool for the job could possibly be important!

And the fourth meta-secret? Well, I'm going to keep that as a meta-secret of my own.

<comment><USER4> Aw, c'mon--be bold.</comment></comment></comment>


The Decade With No Name - <AUTHOR> http://www.newyorker.com/talk/comment/2010/01/04/100104taco_talk_mead <comment><USER2> I didn't see much insight here. It was the typical liberal "00 was the decade of Bush and Bush is bad" with a little social media admiration mixed in.

The truth, I think, is that the last decade was simply a hard one and George Bush was just a product of his times. It was a decade where the U.S. chose security over freedom and grew into a nation it didn't want to be. While Bush was just a President who was not wise enough to turn the country around while being appeasing enough to give the nation what it thought it wanted.

I know some here love Barack Obama but I think he represents the same one- sided mentality of the last decade. He is the knee jerk reaction to Bush, opposite in every way and just as extreme to the other side.

My hope is that the next decade finds a balance this one has lacked.

<comment><USER3> I have a hard time thinking that Obama is different than Bush. All he seem to be doing is getting stuck into wars, and endorsing the Bush administration's policy of interventionism into the economy.

Plus, I still remember the anger and betrayal I felt when Obama signed the act that immunize telecoms for their spying activities. They don't even pretend to be subtle about it!

</comment></comment><comment><USER4> We only seemed to the naming issue near the start of the decade here in the UK. Now, all of the mass media I've seen call it the "naughties" - even the staid old _Times_.

</comment><comment><USER5> I like the question of semiology here, even though it's not really addressed in the article. I've been calling it the _début de siècle_ — French for 'start of the century'. The French term has so much more connotation than the literal English translation, though.

<http://en.m.wikipedia.org/wiki/Fin_de_siècle>

</comment><comment><USER6> It's the naughties, as far as I know.

 _Music from the eighties, nineties, naughties and today!_

<comment><USER7> I have only heard that term used in the UK, not in the US.

I think that usage of naught/nought for zero in British English is pretty standard. In the US, it can be used to mean "nothing" (e.g. "all for naught") but not zero.

</comment></comment><comment><USER7> This is why, I believe, that not much is being made out of the end of the decade. That, and perhaps so much emphasis was placed on the start of the century and/or millennium.

I'm not sure either what sort of name will be used for the next decade.

<comment><USER8> The Teens?

<comment><USER9> In that case this decade was the "pre-teens"?

</comment></comment></comment><comment><USER10> _killer appellation_

Some puns are too useful to groan about.

Considering the number of software entrepreneurs on this site, I'm surprised I haven't seen it used here before.

</comment><comment><USER11> I think it should be called the naughts: <http://www.nobody-knows- anything.com/Jan00/000103.html>

</comment><comment><USER12> The AUGHTS. I see none of the issues the article bring up actually being BAD things about this term for this time period, which it has been used to describe it before.

</comment><comment><USER13> "The first decade of the twenty-first century" sounds good to me. TFDOTTFC ("Tee-Eff dot Tee-Eff-See", TF.TFC) for short :)

</comment><comment><USER14> Mentions Bump for the iPhone (YC S09).

</comment><comment><USER15> 2001-2010

</comment><comment><USER16> How about we all just agree to call it "Steve"?</comment>


'Avatar' pulled from 2-D screens by Chinese government - <AUTHOR> http://latimesblogs.latimes.com/entertainmentnewsbuzz/2010/01/avatar-pulled-from-2d-screens-by-chinese-government.html <comment><USER2> Looks like it's to protect domestic Chinese films, as the 3-D version is still playing in theaters.

Alternate point of view:

"According to a report in the Hong Kong newspaper Apple Daily, the move was made at the urging of propaganda officials who are concerned that "Avatar" is taking too much market share from Chinese films and drawing unwanted attention to the sensitive issue of forced evictions."

Apparently only 20 foreign movies are allowed to be shown in Chinese theaters every year.

Regardless of the reasons, it's still a very fenced-in society.

<comment><USER3> Someone tell me again why we allow Chinese imports?

We should seriously consider allowing only 20 kinds of Chinese-made consumer electronics into the US, and banning any model which gets popular enough to threaten non-Chinese manufacturers.

<comment><USER4> But...that's what THEY are doing. Do you not become the same when you do that?

<comment><USER3> If someone punches you and you punch them back, do you become the same as them?

There is an important difference between starting a fight and finishing one.

<comment><USER5> > There is an important difference between starting a fight and finishing one.

Not really. The difference is usually in how you do it.

</comment></comment></comment></comment></comment><comment><USER6> Anyone who wants to see Avatar (or any western movie) in China can just plunk down the 9-10 yuan (<$1.50) for a (probably pretty decent) bootleg DVD that can be found in just about any marketplace. I'm sure this is mostly for posturing and perhaps economic reasons. I'm sure they sometimes do these things just to remind people that they're there and that they can, even if the people there aren't overly impressed or bothered by it.

My inlaws in China probably watch more American movies than I do and I have netflix.

<comment><USER7> Here (in Russia) we watch everything for free in HDTV quality.

<comment><USER8> Doesn't your government broadcast PlayBoy TV for free?

<comment><USER9> /me moves to Russia

</comment></comment></comment></comment><comment><USER10> I think these recent signs of heightened sensitivity by the Chinese censor is actually a good sign. Are they panicking because it is impossible to turn the information tide?

<comment><USER11> I think China is getting incredibly good at operating in an imperfect rule where they do not control all information and cannot stop information completely. They control or influence enough flow to influence public opinion, commonly accepted narratives and history.

I think that this makes them extremely robust. Sneak ten thousand satellite internet connections into North Korea and you will have a measurable impact. There is no equivalent for China.

<comment><USER12> _They control or influence enough flow to influence public opinion, commonly accepted narratives and history._

American power does this without tyrannical media control just fine, it just takes a lot more resources. It's a matter of PR efficiency, more than anything.

<comment><USER11> You have a point, it's all a matter of degrees.

</comment></comment></comment></comment><comment><USER13> Google should license the film and put it on YouTube for Chinese to watch it for free.

<comment><USER14> I don't think that watching it for free will be a problem in China.

</comment></comment><comment><USER4> So? China is not a capitalist country or a free market country, and they are under no obligation to enable an American company profit for as long as it wants. Most of the money being taken in by Avatar comes from normal chinese people, and is sent straight to America. A controlled market economy is supposed to keep this outflow of cash controlled.

It's a different economic model being practised in China, and this move is perfectly in line with the stated goals of the model.

Nobody loses, it's just an American Multinational that does not profit as much.

<comment><USER11> An economist might say the people who don't get to watch the movie lose.

<comment><USER4> It's available as a DVD in the stores.

<comment><USER11> As long as they would have chosen to go to see the movie potential utility has been lost, from a basic economics perspective. How much exactly depends on the maximum they would have paid to see it, how much it would have cost and what alternatives (eg dvd) are available

<comment><USER4> What about the grocers etc that lose because of the money that was transported overseas rather than locally?

<comment><USER15> America has grocers, too.

<comment><USER11> Just to make things more complicated, those grocery stores carry many Chinese goods.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: would you get involved in a pre-mine HN currency distributed by karma? - <AUTHOR>

Pretty straightforward question. Doge has a strong positive community, and bitcoin seems to have stagnated (or slowed.) Can we as a forum create a currency and blow away all competition?
At least you know you're part of something that can pull itself up by the bootstraps.
There was actually a hackernewscoin created on coingen: http://coingen.io/status.html
Maybe a second premine in a year, then 3 years. <comment><USER2> I've been waiting to cash out my hacker news karma for years!

<comment><AUTHOR> What do you think of the name hoinz?

I figured there can be a funnel app that allows people to cash in their coins, with the funnel app having a variety of redistribution options, eg, destroy half, equal disperse 1/4, then proportional disperse 1/4\. So someone like PG or someone with a ton of karma could funnel their hoinz back into the hoinz economy rather than hoarding.

It really only requires each person to do a bit of work at the beginning, until the effort becomes self-perpetuating and infectious.

But yeah, we should be able to cash in.. it's a great opportunity.. low downside risk, high upside.. not a lot of work, good intentions. With an ABE explorer we can get on coinmarketcap and hopefully cryptsy.

add: seems like this thread was removed from all the Ask items, cool, must be a good idea.

</comment></comment><comment><AUTHOR> If you want to be part of this I just setup the reddit, registered the domain and setup a twitter. [http://www.reddit.com/r/hoinz/](http://www.reddit.com/r/hoinz/) I think a fair pre-mine combined with a proof-of-stake is the way to go. People are familiar enough with cryptos now to know what they want and how much their participation helps, and what they should expect to receive in return.

These gratuitous microtips are getting out of hand.

</comment><comment><USER3> Don't forget to include reddit as well.

<comment><AUTHOR> Hmm, interesting.

A fork of Ethereum might be the key. I read it's premined anyway.

[http://www.reddit.com/r/CryptoMarkets/comments/1wxot1/you_ha...](http://www.reddit.com/r/CryptoMarkets/comments/1wxot1/you_have_1btc_to_invest_equally_in_5_alts/cf6jibx)

Anyway, I'd weight HN points much more than reddit karma - perhaps certain subreddit karmas are worth more. Even a twitter followers stake could be worth it. The key is incentivizing the right people so they feel they can do work and not give others a free ride. Perhaps even having an application period would be best for people to hoinz up on their online identities.

Anyway, it really needs a 5 person board, so key decisions can be made with a best out of 3 majority, with abstentions and appeals possible. I personally would not want to be on that board.</comment></comment>


Protonet becomes a YC company - <AUTHOR> https://protonetinc.com/lp/ycombinator/ <comment><USER2> Interesting. Looks like you used CERN to slam trello and slack together.

I don't know if this is possible, but what I would love to have is a toggle in a PM app that could swap a project timeline between trello-like cards and a MS project-plan like list.

I know that extremely complex projects, like building an aircraft, like to use Planisware-like apps.

People like task cards from trello. Some projects require ms project gants etc...

So it would be great to have the slack+trello I'd (which is how this feels to me) but also be able to have gant-able nested tasks.

I'd also like to have a budgeting widget as well, but that may already exist in this app - I can't tell.</comment>


Human hearts replaced by 10,000 RPM artificial pump with no pulse - <AUTHOR> http://www.theverge.com/2012/3/4/2844740/human-hearts-replaced-by-10000-rpm-artificial-pump-with-no-pulse

<comment><AUTHOR> I linked to The Verge instead of PopSci mag since the PopSci article is not accessible from Australia.</comment>


Ask HN: Can a co-founder work remotely? - <AUTHOR> Together with a friend I am the co-founder of a legal tech startup. He is a lawyer and is responsible for daily business, taking care of our clients, etc. I am CTO and responsible for our software and also marketing. We have a monthly six-figure revenue, around 10 employees and are growing fast.
The thing is: While my co-founder is located in the same city as our business (and is working from our office daily) I live in a different city and work remotely almost all of the time. I only visit our office app. every two weeks for meetings, etc.
Since the company is growing fast my co-founder has started to complain that he has to take care of all the office stuff, human relations, etc. on his own. I get this but I am unsure if I really can/want to move to the city where our business is located.
I do a lot of programming where I don't need to be in the office but I also feel that as a co-founder I have to be "present". In your experience, can a co-founder work remotely? And do you think it makes a difference if the company is at an early stage or more mature (a thesis might be: founders have to be present at an early stage but as the company grows and gets more mature they don't have to be engaged directly all the time)?
Happy to hear your thoughts! <comment><USER3> While I am a strong proponent of allowing employees to work remotely when the culture is built for it, a co-founding relationship is a marriage. It's one of those cliche startup tips that is actually true. If you are remote, the more "face to face role" co-founder might get the feeling of being out to war while the partner is comfortable at home.

One of my biggest regrets in my first failed company was that I did not encourage my co-founder to move to my city for a few months.

Even a temporary relocation to your co-founder's city will greatly improve your productivity and comradery, building a foundation for which a future "long distance relationship" might be possible if still risky.

</comment><comment><USER4> My cofounder and I are remote now after having lived together for 2.5 years. I think a lot of remote first companies do this, but it only works based on a good working relationship. 99% of the time, a lot of folks will tell you it doesn't work, but you'll also find the bulk of companies aren't remote and can't get work done without an office in the first place.

It really comes down to your working relationship with your cofounder rather than location.

Honestly, your cofounder doesn't sound like someone I would want to ever work with. We both did what it takes and shared duties like that.

That being said - your situation doesn't sound healthy in general. Working remotely without a proper structure or know how of what you're getting in to usually leads to bad professional relationships and strain. This is due to meetings happening in person and the other guy being "left out". Communication is the biggest problem and something you should know how to cope with in general if you're working remote.

Your team doesn't seem to have the structure to manage this.

I won't comment on what will be better or worse for your living situation, I am merely stating my observations relative to your situation. For context, my cofounder and I live in different countries, not just different cities. We make it work fine and have for the last few years.

</comment><comment><USER5> I thinks its unfair to expect one partner to do a larger part of the day to day activity that would normally spread between the both of you.

IMHO: You may need to step down as a partner or reduce your salary. That way your partner can use the extra funds to hire an office manager to take on the role that you cannot fulfill being remote. Otherwise you will need to physically move with business.

I've seen businesses fail because of burn out quickly. One partner doesn't feel that other isn't picking up the slack. The partner that feels neglected either stopping doing what they are doing to push the other person take responsibility. Or they just walk away, cut their loses, and call it a life lesson for everyone.

</comment><comment><USER6> Office stuff and human relations sound like the CEO's job to me. If not CEO, someone the CEO hires to do it.

It's not like you're pulling this working-remote stuff on him out of the blue. The success you've found so far is every bit a result of your work arrangements. You're the one shouldering the burden of extreme commuting, what's the CEO sacrificing?

We don't have enough information to decide if your CEO is failing to lead, you as CTO are failing to delegate, or both.

</comment><comment><USER7> It sounds like you are not 100% committed to the startup. Personally if I was your co-founder I would be unhappy and an unhappy co-founder is not something that I would want to have.

I think you need to decide if you are 100% committed or not and let your co- founder know. If you are not 100% in then find a way to ease yourself out so that you can be replaced with someone who is - it is better that you do this rather than wait for your co-founder to do it for you.

<comment><USER8> > It sounds like you are not 100% committed to the startup.

Is "100% commitment" \- in the sense of putting company before e.g. family - <USER2> necessary ingredient of a startup? Some people's 90% is worth more than other people's 100%, especially where domain knowledge is involved. There are even "lifestyle startups" in which _none_ of the principals are devoting 100% to the company. Having been at ten startups, sometimes in leadership roles (though not a founder), I question the assumption that the problem here is with the "not 100% committed" founder. Maybe it's with the other founder's attitude that if they're putting in a certain effort then their partner must too - regardless of productivity, despite prior arrangements. That kind of attitude can turn into a race toward burnout, which is not good for anyone involved.

<comment><USER9> Well, you can have a lifestyle startup, but not where it's a lifestyle startup for one founder and not the other...You are correct, however, that the OP might be sufficiently committed from the objective standpoint of contributing to make the startup successful. But if the two founders are not aligned on what "committed" means, that is a recipe for disaster.

</comment></comment></comment><comment><USER10> I think communication is really important. Many people do a poor job of working remotely. They have no idea whether this person is working or just sitting at home watching Netflix.

Constant communication helps to ensure that there is a flow of progress. This can be a daily update, or even lots of real time messaging.

It is much like a long distance relationship. Just keep your partner updated a lot, show you still care.

</comment><comment><USER11> > my co-founder has started to complain that he has to take care of all the > office stuff, human relations, etc. on his own.

Try to forge a path together. Managing people/admin problems are common early- stage growing pains. More and more companies work in distributed teams. Find a way to shift the work responsibilities.</comment>


Cash4Gold Competitor's Clever Adwords Hack - <AUTHOR> http://www.byrnehobart.com/blog/a-clever-adwords-hack-how-to-get-your-advertorial-on-marketwatch-com/

<comment><USER2> Fascinating. As the author touches on, this is technically a violation of Adwords guidelines. You are not allowed to use Adwords to send traffic to a particular page for the sole purpose of having those visitors click through to another domain, in this case, GoldFellow.

I wonder though, could GoldFellow argue that they really just want these visitors to read the article, as opposed to just wanting them to click through the link at the bottom?

I guess it's a moot point, because GoldFellow can argue all they want. If Google comes down on them, it won't matter. Certainly doesn't seem like it would be worth it if you ended up on Google's bad side.

<comment><USER3> Yep it gets more interesting if you flip it around.

Say you pay $10K for the mother kahuna press release you've always wanted. Now you can't pay to send people to go look at your work of art on some other site, simply because they might/could/probably click through?

The assumption here is that the only reason to have a press release is to get people to click on something. Is that assumption always true? Sure if I _owned_ the intermediate site, I could purposely set up various schemes, but these guys just made a PR and bought some ads. The marketwatch site could pull or change the links tomorrow and they can't do much about it. Not a very smart or secure conspiracy.

Perhaps you can't use adwords to send people to sites that host your press releases? Nope, that doesn't sound right either. I dunno.

Just playing devil's advocate. Seems like, as the author indicated, you could tell this story two entirely different ways.

</comment></comment><comment><USER4> "PRNewswire is cagey about their prices, but it looks like it might cost less than $1,000 to get a press release out."

For online-only it's quite a bit less. I think it starts around $250.

</comment><comment><USER5> This is ending up on marketwatch.com only after a JS redirect from the ad landing page.

<http://www.goldfellow.com/currentmarketwatchlink/>

<comment><USER2> Interesting that they managed to use "marketwatch.com" as the display URL at the bottom of the ad. If the link is going to the goldfellow URL first, then then the display url should match goldfellow. It is another violation of Adwords policy if your display URL and destination URL are different.

(Although in this case, I guess the destination URL is marketwatch.com.... eventually. But if they are using the redirect this Adwords user did not enter a display URL that matched the destination URL they entered.)

<comment><USER5> It is against the terms.

[http://adwords.google.com/support/aw/bin/static.py?hl=en&...](http://adwords.google.com/support/aw/bin/static.py?hl=en&page=guide.cs&guide=23679)

"...advertisers cannot use destination URLs that automatically redirect to another website or that act as a bridge page."

<comment><USER6> They're not using a destination URL that redirects or acts as a bridge page. They're using a redirect to the destination URL.

</comment></comment></comment></comment><comment><USER7> So is it a 'deceptive ad' or a 'clever adwords hack', or simply 'marketing'?

Adwords is pretty strict when it comes to techniques they will and will not allow.

The advertiser paid for the clicks and the press release. I assume the person clicking on the ad is able to read, as well.

<comment><AUTHOR> All of the above! It's deceptive in the sense that when I saw the ad, I thought Marketwatch was promoting an article. (That's why I clicked.) And I spend all day on this stuff. I would bet that a decent number of people read that article and _don't_ understand that it's paid for by the company discussed in the ad.

</comment></comment><comment><USER8> It's against Adwords guidelines, so the case is pretty much closed. It's inappropriate.

That being said, it seems like a perfectly acceptable method of marketing to me -- what's wrong with directing people to positive press about your product in the first place? Loads of products do this, from movies and bestselling books to startups and universities. Is this just another round of demonizing companies that give people cash for gold?

</comment><comment><USER9> The funny thing is that because of this article, Goldfellow's budget is going to get completely drained. I already clicked twice.

</comment><comment><USER10> This reminded me of this article from some time ago: <http://www.paulgraham.com/submarine.html>

Of course, what they are doing here is much less sophisticated.

</comment><comment><USER11> This is hardly a hack. Advertirials have been used for decades, long before AdWords.

<comment><USER12> The hack is that the advert directs to the Advertirials on someone else's site, looking like it's legitimate.

</comment></comment><comment><USER13> Against Adwords guidelines or not - it's brilliant. I'd like to meet the man behind the curtain here.</comment>


ClearDB is a database in the cloud - <AUTHOR> http://www.cleardb.com/

<comment><USER2> "Cloud" implies scaling by renting all the hardware I could need. But with a mean of 36 qps allowed at the high end, no documented ACID guarantees or sharding model, and a sample "0 rows affected." message coming out of DDL requests like rebuildIndex (what's the use case?), it's hard to distinguish this from a PHP frontend for a single MySQL instance.

<comment><USER3> Yeah not much reason to look at this with the much larger proven and inexpensive (even free) solutions out there.

For slick packaging around this type of stuff I'd check out database.com's screenshots

</comment></comment><comment><USER4> Wow, thats an amateurish looking site!

</comment><comment><USER5> Way better prices than database.com</comment>


EU Mobile operators plan to block online advertising to force Google to pay - <AUTHOR> http://www.ft.com/cms/s/0%2F7010ae7a-f4c6-11e4-8a42-00144feab7de.html

<comment><USER2> Step 1. Mobile operators block Google ads unless Google pays.

Step 2. Google blocks access to gmail, YouTube, Google search, and every other Google site from all IP address ranges to those mobile operators.

It then becomes an interesting race. The EU competition regulators will say Google can't do that and threaten legal action. Meanwhile, the mobile operators' customers will be gathering torches and pitchforks...or switching in massive numbers to any operators who have not pulled this idiotic stunt.

What happens next depends on who is faster, the EU bureaucrats or the angry villagers.

</comment><comment><USER3> Oh, pity operators. They have their infrastructure founded by their customers, and big, bad Google doesn't want to pay for the thing that customers already pay one more time.

On the other hand, somehow I like the idea of a hit at advertisement industry.</comment>


Monkey Patching in Golang (2015) - <AUTHOR> https://bou.ke/blog/monkey-patching-in-go/ <comment><USER2> Read the license before use the library: [https://github.com/bouk/monkey/blob/master/LICENSE.md](https://github.com/bouk/monkey/blob/master/LICENSE.md) Caution! This approach is very dangerous, and not thread safe.

<comment><USER3> "I took the above code and put it in an easy to use library" ... [but] "I do not give anyone permissions to use this tool for any purpose. Don't use it."

Sounds strange, until you consider that he only added the "license" 2 years later. I wonder how many questions from various people wanting to use the tool for various purposes he received during this time?

<comment><USER4> People kept asking for a license so they could use it, so I added a license that clarifies that this is not a project that should be seriously used.

<comment><USER5> I can imagine the type people looking to actually use this. They are using go for whatever reason but complain about it constantly because they want it to be Ruby on Rails.

<comment><USER4> People _really_ want to mock out dependencies in go, instead of architecting their application properly

<comment><USER5> I'm all over using gomock to test my packages in isolation. I'll just continue to do that with generated mocks instead of trying to monkeypatch a language that isn't intended for that.

I'm curious about your motivation for writing this. Did it start out as something legitimate and morphed into a joke when you wanted to see how far you can push it? Or were you taking the piss the whole time?

<comment><USER4> Taking the piss 100%

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Cool to see these system level programming tricks being done in Go.

This kind of dirty tricks is sometimes used to mock binary libraries for testing.

[https://www.microsoft.com/en- us/research/project/detours/](https://www.microsoft.com/en- us/research/project/detours/)

[https://docs.microsoft.com/en- us/visualstudio/test/isolating...](https://docs.microsoft.com/en- us/visualstudio/test/isolating-code-under-test-with-microsoft- fakes?view=vs-2019)

Yep, questionable, but sometimes that is the only way to match those QA metrics.

<comment><USER7> I know for a fact that detours is used by a lot of malware

</comment></comment><comment><USER8> Hah reminds me of the spirit of fuckitjs ([https://github.com/mattdiamond/fuckitjs](https://github.com/mattdiamond/fuckitjs)).

</comment><comment><USER9> What are some good uses of monkey patching? How do you stop it being a maintenance nightmare?

<comment><USER10> Suppose you want to unit test some function you've written that makes use of a library that doesn't implement interfaces. You can either write a wrapper interface for the library and inject this wrapper as your dependency, or you can just use the library as-is and hook the function calls in your tests using OP's library. The first method might be the "proper" way of doing things, but you end up with slightly more cluttered code purely to serve the needs of your unit tests. In the second case, any unsafe code is never going into production

It's sort of like asking "What's a good use of WriteMemoryProcess or CreateRemoteThread". It's not the kind of tool you acquire and then go find uses for, it's something you will resort to only when you have no other logical choice

</comment></comment><comment><USER11> Hmm could be an interesting way to decorate funcs with logging.

<comment><USER6> This is basically the idea behind Aspect Oriented Programming.

[https://en.wikipedia.org/wiki/Aspect- oriented_programming](https://en.wikipedia.org/wiki/Aspect- oriented_programming)

<comment><USER11> Yea I was aware... I hesitated to suggest this could lead to AOP for Go because I'm not fond of AOP and it's magicalness at all (used to write a lot of Java)

</comment></comment></comment><comment><USER12> This is from 2015 (though I didn't see it that time round so thanks for the resubmission).

Previous discussion: [https://news.ycombinator.com/item?id=9290917](https://news.ycombinator.com/item?id=9290917)</comment>


Ask HN: Skills required for a good tech project manager - <AUTHOR> A friend of mine (no, really, a friend, not me pretending to be 'a friend of mine' - I'm very happy as I am) is wondering about moving into tech project management - ideally a PM role in a web dev agency / webapp startup.
He's got a lot of experience in journalism/publishing as an editor (in the management sense) and already has a lot of applied, down-to-earth project management experience on large, busy titles. (ie, he's got an excellent track record for getting things done, rather than just having been to lots of managementspeak courses and shuffling Excel documents).
So, I don't doubt that he's up to the job in terms of organisational skills, but he's obviously aware that he's not got a software background. He is above-averagely computer/web savvy, and has researched written and/or edited some tech-lite white papers in the past. I reckon he could get up to speed with what he needs to know relatively quickly, in his own time, before trying to make a move.
But what would HNers say is essential sector-specific knowledge that he'd need to be a good tech PM?
My list so far includes:
* Scrum, Agile and familiarity with waterfall (so you know why to avoid it)
* web standards, incl HTML5
* web accessibility
* awareness of testing/QA approaches (TDD, unit testing, browser-based macro testing, acceptance criteria)
* job ticketing and task tracking (ie, a step up from manual/offline progress tracking)
* a good understanding of the full web stack (conceptually, not hands-on hacking)
* but.. basic Unixery (for pushing releases live/restarting servers in emergencies)
* good channels for learning about what's new and interesting (and therefore may be stuff clients ask for, or would like to hear about)
What else would you recommend?
Cheers,
Steve <comment><USER2> In theory, theory and practice are the same, but in practice they're not.

Your list is good, but I'd add that he should pick one suitable language/framework and actually build something with it, so he has a better gut understanding of what it's like to build software. This will earn him essential respect from his team and allow him to sniff out a lot of the bullshit that would otherwise pass him by (eg "adding a button is really hard").

<comment><USER3> Seconded.

The list is fine, but to me it doesn't mean anything if the PM wasn't a previous programmer and knows nothing about pulling all-nighters chasing some obscure bug.

If your friend really wants to get into a tech PM role, then he has to pay his dues just like we all do. So swombat's advice is right on. He should learn a language/framework and build something with it(not a small script, a real actual application).

</comment></comment><comment><USER4> IT proj mgmt certification such PMP or Prince2 could be useful as a form of formal education too. Not to mention better pay package. :P Like what other said, theory n practice are 2 different issues. Someone who's good in its theory could have issues trying to carry its PM duties. Also, other factors such as communication skills and conflict management skills to name a few are critical too. The rest are too lengthy to write on...

<comment><AUTHOR> He's totally sound in terms of people management, so I think he'd be fine in that respect. Fair point re: certification and him chasing a higher salary.</comment></comment>


COVIDSafe - Australian government COVID-19 tracing app - <AUTHOR> https://www.health.gov.au/resources/apps-and-tools/covidsafe-app <comment><USER2> My understanding is that this is based on the Singapore government's TraceTogether app. Vanessa Teague has been blogging analysis about the Australian government's approach:

[https://github.com/vteague/contactTracing](https://github.com/vteague/contactTracing)

<comment><AUTHOR> Thankyou for that, great to see some insight from outside the government and media.

</comment></comment><comment><USER3> Any known issues like spyware or tracking with this app. This is a tracking app, is it not?

<comment><AUTHOR> I don't have in depth knowledge about the app. It saves contact based on Bluetooth. At this stage I don't have much more info than what's in the main link or other recent news articles.</comment></comment>


Sophos acquired for $3.9B - <AUTHOR> https://itbrief.com.au/story/sophos-acquired-for-usd-3-9-billion-in-cash <comment><USER3> Sophos is the company I use to buy cycling socks, I think I should stock up before they close the store [https://shop.sophos.com/collections/itsocks](https://shop.sophos.com/collections/itsocks)

<comment><USER4> Heh, I didn't realize they sold those. I got some a couple years ago as a freebie, not sure it was worth the amount of sophos marketing crap I got for the next year or so after I gave them my contact info.

<comment><USER5> I have multiple legit emails for that exact reason. We had a competition to see who could get the most marketing rubbish at a university fair (this method meant I won, and also noticed an inverse correlation between academic prestige and marketing spending) and I never stopped.

</comment></comment></comment><comment><USER6> Bought by Thoma Bravo. Fits the pattern. You would think they would be trying to mash up some these companies to corner the SMB security market but they seem to keep all their companies distinct.

A few household names on the acquisition list.

[https://en.wikipedia.org/wiki/Thoma_Bravo#Transactions](https://en.wikipedia.org/wiki/Thoma_Bravo#Transactions)

<comment><USER7> Like mashing up Sophos and McAfee? Can you imagine the mess?

<comment><USER8> No doubt there will be some downsizing before they get mashed up.

McAfee used to be something in the 1990s, now it is bloatware.

<comment><USER9> I am still (proudly) using the McAfee Antivirus Enterprise edition on my Win Pro machine. It has (imho) the best options/flexibility. I also remember that the respective firewall was also super strong and very versatile but I can't get my hands on any latest version of it (I have the AV legally).

<comment><USER10> My understanding is that Windows Defender is the only decent engine nowadays, but that's second-hand anecdata I can't measure the bias of (I don't currently use Windows).

<comment><USER11> Windows Defender ATP is also on linux: [https://docs.microsoft.com/en- us/windows/security/threat-pro...](https://docs.microsoft.com/en- us/windows/security/threat-protection/microsoft-defender-atp/microsoft- defender-atp-linux)

<comment><USER10> Ahahaha Microsoft had to catch up to [https://github.com/taviso/loadlibrary](https://github.com/taviso/loadlibrary)

Nice!

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I wonder if this was the suitor for HIBP who had their circumstances change?

<comment><USER13> This was my first thought as well.

</comment></comment><comment><USER14> Link to Sophos release: [https://www.sophos.com/en-us/press-office/press- releases/201...](https://www.sophos.com/en-us/press-office/press- releases/2019/10/thoma-bravo-makes-offer-to-acquire-sophos.aspx)

(I was getting connection timeout errors on the linked article from the post)

</comment><comment><USER15> Good move ...and the consolidations continue...

I notice that the power of these new behemoths are a risk to SMEs. Kaseya/Datto/ITGlue/CWM/Automate/Sophos/BG/Sell... These all used to be of a size that could communicate and deal with small business. Far more focus weighted towards enterprise now.

<comment><USER16> Sophos still stays squarely in the security space at least, I wouldn't exactly call them a behemoth.

Now Cisco on the other hand, god damned they have their mitts in everything and most of it's trash. But nobody got fired for buying Cisco, yet.

</comment></comment><comment><USER17> Napkin math:

So 3.9b / 600m Revenue = 6.5years horizon to breakeven.

Assuming no growth plan, they can hollow out the operating costs by cutting staff by 1/4, and offshoring another 1/4\. Guessing here, but their aim is a total return of +%30-%50 (~$2bn)over 10 years with relatively low risk vs. indexes or VC plays.

It works, but it's like putting a company into a digester.

<comment><USER18> I think Sophos has just a touch more to it than that. They have a great deal of product and technology and tens of thousands of customers. TB will be interested in growth here by aligning Sophos with its other security assets. I think Sophos is the jewel in the crown frankly. McAfee was the sausage.

<comment><USER19> If that's the case, the challenge will be retaining the key people responsible for Sophos's 'intellectual capital' and sales relationships. It can be extremely costly to keep people after a PE acquisition in cyber - <USER2> of removing the equity incentives (e.g. stock will eventually vest for the top people, if it hasn't already) plus being in a very hot market where poaching talent is common plus general erosion in conditions to service the debt from the LBO.

The cynic in me thinks TB knows cybersecurity will sell at even more ludicrous multiples in the future (and they're swimming in dry powder), so they won't need to care too much about the underlying health of the business. The optimist thinks that TB are the masters of this niche and see synergies I don't.

Source: I've done DDs in this space and our firm's (public) stance is to encourage organic growth over doing deals

</comment></comment></comment><comment><USER20> Anyone in this space can explain this acquisition? What's the end game here?

<comment><USER21> Thoma Bravo has been acquiring companies in the infosec space. I'm assuming they're trying to build a portfolio and maybe consolidate at some point.

<comment><USER14> To add more specificity they now own Barracuda, Centrify, ConnectWise, idaptiv, imperva, imprivata, LogRythm, McAfee, solarwinds, Sophos, and Veracode in the "Current Investments" and "Security" sector defined on their own search filter[1].

[1] [https://www.thomabravo.com/companies](https://www.thomabravo.com/companies)

<comment><USER22> SolarWinds was private 2015-2018 but went public again in 2018.

</comment></comment></comment></comment><comment><USER23> A reminder that whenever any cybersecurity-related company gets acquired, any trust you have on them ought to be reset.

</comment><comment><USER24> How many people laid off? Thoma Bravo is notorious for being extremely spreadsheet-driven and lays off.

I feel bad for the employees.

</comment><comment><USER25> How difficult would it have been to include "[...] by Thoma Bravo" in the headline?

</comment><comment><USER26> I wonder what grand plan Thoma Bravo has, they are on a shopping spree on Network Security companies(Imperva,Barracuda,Sophos,Mcacfee...)

<comment><USER27> Probably as simple as reducing expenses, laying off people, restructuring and spinning the Frankenstein result in an IPO years later.

</comment></comment><comment><USER28> I hope this doesn't end the plan to open source [https://sandboxie.com](https://sandboxie.com) after Sophos acquired Invencia.

</comment><comment><USER29> One hopes that they'll use the money to release a Mac version that isn't terrible.

</comment><comment><USER30> Thoma Bravo is really cleaning up lately.

<comment><USER31> "Cleaning up" is a phrase reserved for exits. Thoma Bravo is merely "acquisitive". They just raised a big new fund; it is common to have a couple of transactions lined up when raising a new fund so you can begin with a bang and deploy capital sooner rather than later.

<comment><USER24> True but they know how to maximize the spreadsheets. Expect to see some large returns for Thoma Bravo in the next few years.

The investors will do real good -- from the investor perspective, they are great. Just sucks for the workers that get churned out in the process.</comment></comment></comment>


25 Years After 'The Princess Bride,' He's Not Tired Of That Line - <AUTHOR> http://www.npr.org/blogs/monkeysee/2012/10/05/162383428/mandy-patinkin-25-years-after-the-princess-bride-hes-not-tired-of-that-line

<comment><USER2> I thought the line was going to be "I don't think that means what you think it means."</comment>


NSA found a dangerous Windows bug and alerted Microsoft rather than weaponize it - <AUTHOR> https://www.stripes.com/news/us/nsa-found-a-dangerous-microsoft-software-flaw-and-alerted-the-firm-rather-than-weaponize-it-1.614758 <comment> java-man That means they have a better way to get into a Windows box.</comment>


AMD Ryzen 2nd Gen Details: Four CPUs, Pre-Order Today, Reviews on the 19th - <AUTHOR> https://www.anandtech.com/show/12642/amd-ryzen-2nd-gen-details-4-skus-reviews-19th <comment><USER2> Think I'll finally upgrade from my i5 3570k, it's starting to show its age. I'm not too excited about RAM prices, 16GB today costs more than the 16GB I bought 5-6 years ago.

<comment><USER3> Still running a 4790K from nearly 5 years ago (upgraded last year; 1tb nvme, gtx 1080). Just started using it as a Hackintosh. Not sure about upgrading just yet, probably waiting for Ryzen 2's.

Really don't feel any urgency to upgrade. My bigger ask is something that can do 4k gaming in a video card.

</comment></comment><comment><USER4> What I don't get is how AMD competes with Intel cpus when they don't come with an integrated gpu. The small savings between equivalent Intel and AMD offerings are dwarfed by the prices of discrete gpus.

<comment><USER5> I would venture that the market that needs more CPU performance than an APU, only needs an integrated GPU, but does not need ECC memory is pretty small. In other words, a significant fraction of people looking at the 2700X would be buying a discrete GPU even if they picked up the Intel equivalent.

<comment><USER6> I bought the Ryzen 1700 with a discrete RX4xx card (cheapest one that would comfortable drive two 2560x1440 displays) because the Ryzen 1700 + GPU was about half what the 8 core/16 thread Intel offering at the time would have been.

Intel has boosted core counts in response but the Ryzen is still better on a $/perf for my needs.</comment></comment></comment>


Ask HN: What to do when a 800 pound gorilla enters your business? - <AUTHOR> http://answers.onstartups.com/questions/10900/what-to-do-when-a-800-pound-gorilla-enters-your-business

<comment><USER2> I left a comment on your thread.

You need to focus on the backup part and do it for multiple platforms, not just Wordpress. Six Apart has a lot of enterprise users who pay big fees to the licence. Go to each platforms website and most of them list the clients they're most proud of (I.E. Obama's campaign website was based on Movable Type and they showcase it every chance they get).

Reach those people, corporate clients pay. Everyone has a need for a backup. your product is a no-brainer (luckily).

So to differentiate; a) expand to multiple platforms b) beat automattic in customer service.

Surprise your customers and they will spread the good will for you.

</comment><comment><AUTHOR> I had asked this on Onstartup Answers today. I got a couple of strategic answers to this. Wanted something more tactical like, doing these couple of things in your situation can be useful? Or such a marketing approach might work?</comment>


First Rule of Programming Is Don't Program - <AUTHOR> While us programmers tend to say "I'll just program it myself" it is actually much faster to:
- Buy an off the shelf program and take 3 hours to read their proprietary API for extra functionality.
- Use an existing library and read the documentation rather than building your own code.
- Use VB.NET or Delphi for the front-end user interface.
- Buy a properly documented royalty-free library for under $1000 rather than spend months integrating open source code.
- Use Python or VB.NET even tho it just feels right to use Java/C. (Ok, I said it. Now if I can only get this VB.NET flame shield program to finish loading.)
Unfortunately, us programmers tend not to do this. "Oh, we need a queue class? I'll just build it myself, takes like 30 minutes tops."
As coders, we need to think like an engineer who is building a car. No engineer building a car will make the engine or windshield themselves. But us coders do this all the time.
There are 2 parts to every program: [1]: The new scientific code/algorithm you are writing. Which is typically quite small. (5%) [2] Everything else. (95%)
How many times have I got that urge.. "I don't want to do the research. I want to jump right in.. I bet I can finish this tonight.." 90% of the code out there is already written. It is more about adding the glue. And of course, finding it and reading the docs. <comment><USER3> That looks like the manager's (or any other person spending money, not writing code) point of view... In reality you missed a couple of things:

\- Buy an off the shelf program and take 3 hours to read their proprietary API for extra functionality. Then learn that you cannot integrate it into the current system (because of licensing, data format, missing features). Since you cannot make changes to the off the shelf program, you have to rewrite most of the existing code, just to satisfy the programs expectation. Or spend a month writing software that does a two-way sync between the proprietary API and the current data. Then learn that the API documentation is not complete/correct, then that new versions come out once a year - whether you need a bugfix or not.

I agree with the rest though... if there is a library, use it. Pay for it if you really need it. Just make sure you can modify it when needed and that you can do what the api/docs says you can - otherwise the software you bought is worth nothing as soon as you hit a problem, or you spend more money working around the problems than rewriting the software from scratch would cost.

<comment><USER4> I'd say that if you're buying an off the shelf program, it's likely because implementing it would take FAR longer than the (example) 3 hours to investigate their proprietary API.

I think there is still a valid trade-off in purchasing - it just has to make sense, is all. If the problem is _big_ enough that it's unwieldy enough (ie. take too long to develop and TEST internally), then it definitely makes sense to investigate 3rd party options.

That said, developing internally is sometimes the only answer: when you don't get a good feeling from the 3rd party options (based on research), when the 3rd party cost is too high, etc.

Of course... it's usually more fun to develop internally. :)

</comment></comment><comment><USER5> I actually think the reverse of this _is_ the biggest problem in our industry.

From my experience most programmers I've worked with don't understand the underlying mechanism that make their tools work. And when they hit a bug or a problem their tools weren't designed for, the shit hits the fan.

And I've seen the reverse of what you're talking about quite a lot ... developers or managers choosing off-the-shelf software with no clue of what they are choosing, just to spend countless resources and important amounts of money ... later to realize that it doesn't fix their problem. But they use it anyway, adapting the problem to the software, just to get a return of investment ... which is the most idiotic thing one can do. But it happens quite often, especially in big companies that get lured by salesmen with promises of greatness.

Another thing that happens is that quite often I've seen situations where inventing the wheel is faster than using something prebuilt. That's because software development is not like lego-building. Many times you'll find a module that's close to what you want, but it's not good enough. So you start fixing that, and then you realize that the mismatch is greater than what you thought, and you lost more time than doing it from scratch and keeping it simple.

And more to the topic ... the first rule of programming is there are no rules. What works for one project, doesn't necessarily work for another.

Also, developers that consciously and constantly try to "keep it simple" and "not to repeat themselves" are doing a pretty good job at not reinventing the wheel anyway.

<comment><USER6> I also think that the "use a third party library" mentality can, but not always, cripple programmers.

I've almost always written something that has less features/worse code/more bugs than a library that would have been a perfect fit. And I did it intentionally.

Why?

Because I learned something new. I've written my own C++ DirectX game library... then went out and used HGE/Goblin 2D. It made me a better programmer because I understood why the design decisions were made because I had similar problems when doing it myself.

I've written my own PHP framework. Why? Same freaking reason. I can look at similar frameworks, CakePHP/Django and quite literally see what it was they were doing under the covers without looking at the source because I've solved the same problem myself.

In the event that there isn't a third party library out there that does what you want, the programmer who is accustomed to look for those first will be screwed. They've never had to make a large system by themselves and they don't understand ahead of time what types of problems they'll run into because they've used other frameworks that have prevented them from making those mistakes.

tl;dr; Using a framework just because its there is similar to a parent coddling a child. When its time to enter the real world they simply won't be ready.

The anecdote here, I believe, is knowing when doing it yourself is a great learning experience, vs a COMPLETE waste of time. Always doing it yourself is stupid, but never doing it yourself is the easy way out.

<comment><USER7> It's worth noting that your learning experiences and experiments don't need to become production applications, though. This is what gets many people into trouble.

<comment><USER6> Not being able to write your own code to deploy into a production environment won't get you very far as a software developer.

Merely my $0.02.

<comment><USER7> But unless you're a web host or something, you are not being paid to write web servers. In the limited amount of time you have to solve your business's actual problem, do you want to learn the ins and outs of HTTP, or do you want to learn the ins and outs of the actual problem you are trying to solve?

<comment><USER8> deploying is one of those cornerstones that you need to get right once, right at the beginning. #twitter

<comment><USER7> You are not Twitter.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> I'd say it can be simplified even further:

THINK before you SOLVE.

A natural tendency for programmers/developers is to move towards a knee-jerk reaction of "I'll just start coding this". It's not that good solutions don't come up from that line of thinking; it's more that - as cyman states - <USER2> are faster ways to accomplish results if you simply think about how you're going to solve the real problem(s).

Once a problem is analysed and broken down into it's appropriate tasks/needs/requirements, sometimes a credit card solves the problem faster (and better).

Oh, and when you _purchase_ solutions, you typically can investigate APIs and system requirements beforehand. Even after purchase, most reliable solution vendors offer support/money back guarantees.

<comment><USER9> I believe this is actually a much better rule.

There is the other knee jerk (and a dangerous one) to do the reverse and just use off the shelf kit for large swathes of functionality.

We have one contractor who did just this and it currently the project is 3 months overdue as he is reworking large portions and sections so that it can do the things we originally asked of the program ;)

Formulate your approach _then_ decide what can use pre-built packages and what needs to be hand coded.

"Dont program" can be as dangerous as "knee jerk" programming.

<comment><USER10> Agreed. I tell my partner "We can write that easy!" and he always replies "We CAN do ANYTHING, Joe. What SHOULD we do?"

</comment></comment></comment><comment><USER11> This is one of those mantras that I lived by when I got out of college, and then found that the reality was far more complicated than I initially believed.

There're costs and benefits both to implementing something yourself and to using an off-the-shelf solution. It's a given that if you do something yourself, it will take 3 times as long as you expect, and you will be finding, tracking down, and fixing bugs long after you thought you'd be "done". And then if you bring in other people to help you, they'll all have to go through the same process.

But using off-the-shelf solutions has hidden costs too. Abstractions leak; that 3rd-party library never completely shields you from the complexity it purportedly solves. There may not _be_ docs, or they may be incompletely specified. You'll probably have to spend some time customizing it, and your customization code may often end up more convoluted than just reimplementing from scratch. You'll probably run into incompatibilities between different libraries. The libraries may themselves have bugs that you have to dig in and fix.

Worse, reliance on off-the-shelf solutions often warps your product so that it fits the solutions you have available. ("When all you have is a hammer, everything looks like a nail.") As much as people _say_ that they'll figure out the problem first and then pick solutions to solve it, the choice of solution then feeds back into the types of _additional_ features you can add. If you decided to use an RDBMS early in development and then find you want to add, say, clustering of related items where "related" is defined by a fuzzy matching function, you'll likely say "This is too hard" and fall back using an exact match, one that can easily be stored in a relational table. Users suffer.

Obviously, a blanket rule of DON'T PROGRAM is wrong, because many successful websites throw away all the off-the-shelf solutions and write their own. Google's probably the most obvious one. I'd amend it to "Carefully consider the infrastructure you'll be using, and only reach for the third-party solutions when they save you significant time and complexity over doing it yourself."

<comment><USER12> I think another point to emphasize is that using a third-party solution shouldn't in all cases be a long-term solution.

Consider keeping such a chunk of code around only long enough to get the product shipped and paying for itself. At that point, make an attempt to justify keeping it around, especially after seeing how it fits into the big picture of your product.

</comment></comment><comment><USER7> I would never _buy_ a library, but I've never had that option either. Every tool I use is open source, and I build small proprietary applications around the open source stuff. (Making web pages and parsing CSV files is not my business domain, so I let the community handle those.)

I will say this -- the first step to not writing too much code is to reuse your own "internal" code. It's simple; instead of cut-n-paste-n-modify, make it a library, and make the per-app "modification" some different parameters you pass to the library. Now a bug that affects all the possibilities can be fixed everywhere at once. And, if someone understands one app's usage of this library, they will understand the other app's usage, as well. Less to think about, less code to maintain, and nothing to buy.

The next step is letting other people fix your bugs for you. My last job was for a company that routinely factored out part of their apps into community libraries. If you use Perl, you probably use Moose -- that was a piece of an internal app at one point. Releasing that bit of code changed the entire Perl community, and it made maintaining our software even easier. There are plenty of times I've hit a Moose bug only to have it fixed in 30 minutes by Someone Else. (To be fair, I've fixed other people's Moose bugs too.)

So anyway, the word "reuse" is thrown around a lot, but it is really an important concept. I have reused every piece of code I've written in the last few years -- once in my application, and once in the test suite.

If you're not reusing your code at least once, you're doing it totally wrong. If you're not reusing your code more than once, you're missing out on a lot of good things.

<comment><USER10> Bought libraries are static; you can't get them changed. Open source may be architected wrong; not componetized the way you need; have bugs; build on the wrong platform...BUT you can fix all that. There is probably something in there you need, that has already been debugged, and that's why I consider Open Source first.

</comment></comment><comment><USER13> Even if it were "much faster", this isn't really the goal, because code writing is usually the quickest step; at least, it is if your employees are competent. What matters more is how maintainable your project is, and how easy it is to deploy.

I may use several libraries, but I lean heavily on platforms; for instance, I have no problem using what's in /usr/lib from a typical Linux distribution, or the Python standard library. This keeps deployment pretty simple, and I can rely on well-tested components that are widely used and unlikely to go away. The platform libraries are also usually free. And I can ask or hire anyone who knows something about them.

While I don't rule out incorporating another library, this is _definitely not_ a rule of programming. A 3rd party library has to do _a lot_ to justify its added deployment complexity. After all, maintainers will have to read through API documentation just to figure out what something does, and this shouldn't take more time than it would take to read through my own implementation of the functions.

</comment><comment><USER14> #1 Rule or programming is: programmers start counting from 0, not from 1.

<comment><USER15> unless you are programing in Lua or Ada. Counting from 1 makes sense.

</comment></comment><comment><USER16> Nah.

Top Three Rules:

1\. Before you start writing something, make sure it'll actually reduce workload in the future. (laziness)

2\. Borrow liberally from others -- especially open source code -- because that's the quickest way to success. Why waste time rewriting stuff that others have written, when that'll take three times as long and require lots of testing? (impatience)

3\. Eventually write your own version anyway, because you can do better than the other guy. (hubris)

The first is what ensures you're writing software that should be written.

The second is what ensures that you write robust software with reasonable efficiency, and what protects you from getting a reputation as someone who badly implements a lot of cruft that someone else has already done better.

The third is what ensures that you improve as a programmer, rather than just getting into the tired rut of playing Legos with other people's libraries and never learning anything new.

</comment><comment><USER17> Most people fall for the songs of the unwritten-code. When confronted with existing code, they can see all of the unevenness of the terrain, the special cases that needed to be shoe-horned because the original architecture didn't allow for them. It is at this time when the unwritten-code starts luring them inside their heads, a sweet, seductive melody. They (who am I kidding, we) think of a perfect generic architecture which will take into account all cases. This architecture will be so extensible that when new requirements arrive, it will take care of them without mutating the design. And performance will be equal or better.

It's all good, if it wasn't for one little problem. Unwritten-code is non- functional. Until we sit down and spend weeks --yes, weeks-- working on it, it's absolutely useless. What is worse, once we start getting better clarity on the domain, we start to understand what those architectural bumps were on the original codebase. At best, our new architecture will be better than what existed before, but our codebase is yet to be tested on the wild.

Oh, the wild, the proverbial real world where code is tortured in ways that we failed to imagine. If your code runs on a server, you may be lucky. Given the continuous feedback, you can patch it and evolve it, effectively reacting to the environment where your program runs. But if you pack it in a released form and part with it, then you're in for a ride.

There's a few rules to heed when rewriting something that's readily available, they are:

1- You are an expert in the domain of what you're rewriting. You're only an expert iff you've written the previous codebase and maintained it for years or you're an user of the codebase and worked with it for years. Yes, years.

2- You have the time and disposition to claim ownership (design, implementation, unit testing, functional testing, maintenance) of this code. It's like having a baby, you have to see it through College.

So, what to do? Write new functionality using existing parts. The value is on the new parts, and since they're new, there are few or no experts, and anyone can go ahead and explore that vast unknown.

</comment><comment><USER18> Each line of code is a liability. Even tests.

Eventually, something will happen to render that line of code incorrect; either another line of code, changes to other code, changes in the tech stack or 3rd party libraries, and even the domain may change out from under your code.

</comment><comment><USER19> The first rule of programming is indeed "don't program". But that's not because buying off-the-shelf code makes you more productive than writing code yourself. It's because software solutions are usually worse than manual solutions.

Here's a typical example, one I just ran into today. For a course, I need to enter some data into some system that stores grades. It doesn't just store grades, though, it tries to calculate grades--by various rules and heuristics, which you are likely to misunderstand. They have written a lot of code for the import process, to, you know, take the burden off the poor teacher, by calculating the grades.

Of course, it's such a pain, and so error-prone, the much easier solution would be to just make a spreadsheet containing the grades and upload it, and have the program do nothing but display the results or whatever actually needs to be done. That would remove 95% of the code written for this thing. And make it work better.

Another one, which I ran into a few weeks ago. I needed to add a class. The professor needed to approve it. The software was so confusing, the prof couldn't figure it out (he is a world-renowned professor of computer science, BTW). After a couple weeks of this, I finally got a sheet of paper and had him sign it. I brought that sheet to the expert in operating the mysterious System, and that finally got the job done.

 _Some_ software does obviously help the university run better. Every line of code after that makes it run worse.

<comment><USER16> tl;dr version:

Write code to solve the core problem. Don't write code for the rest unless it's _really needed_.

<comment><USER20> he could have used that concept for the post text :)

</comment></comment></comment><comment><USER21> I wonder what OP has seen to reach these conclusions because this is not my experience. Not even close.

What I have experienced in commercial environments:

\- Software make/buy decisions are rarely made by programmers, but are made strategically with programmer input.

\- "Everything else (95%)" can be many things. Sometimes you can plug in standard stuff (utilities, human resources, accounting), often you _must_ write original code to handle your company's proprietary processes.

\- In theory, existing libraries and frameworks are great. In practice, sometimes they make sense, but just as often they force you into a dead end. It may be tough to code at a low level, but the advantage is that you can almost always do what's needed.

\- Having source code and being able to do something with it if often a _huge_ competitive advantage. I forget how many times I've witnessed M & A scenarios where the acquirer bought the acquired because the former was able to change their business software on the fly and the latter had an unchangeable package.

</comment><comment><USER22> I think "Don't solve the same problem twice" might be a good way to say the same thing.

If someone else has solved the same problem, use their code. If your problem is different enough, solve it yourself.

Knowing the difference is the hard part.

Also, sometimes the problem actually is "Purchasing a complementary solution will take 6 months of managerial approvals". The solution is to build it yourself.

</comment><comment><USER23> There seems to be some tension in your argument regarding the use of code.

If everybody would reason the way you did then we'd be stuck at version 1.0 of just about everything because nobody would get off their asses to do something new every now and then.

So it's a treshold problem. At some point the tension between that which is available and that which has to be done becomes so large that someone will stand up and says 'let's fix that, once and for all'. This person will then put in an enormous amount of time on top of what it would probably have taken to fix just the original problem.

And that's exactly how progress is made in the software world.

So, the premise you make is an idealistic one, in an ideal world, such libraries and bits and pieces should be available, for sale, well documented and 100% applicable.

In reality that is definitely not the case.

You are right that many people will fall for the 'let me do that' temptation when in fact they would be better served by using something off the shelf.

To keep your engineering analogy alive: If an engineer working on a car even _could_ go and make his own bolts then that would be the road to total madness. There is lots of standardization and materials knowledge available to 'hard' engineers that is simply not there for 'soft' engineers, and because the price of the tooling is essentially zero the threshold for re- implementation (hopefully in a novel and better way) is very low.

Maybe it's too low, but that's a policy decision, not a technical one.

And if you are not under a deadline and simple trying to get the hang of stuff nothing will teach you better than to re-implement some of the better understood algorithms, especially queues, lists stacks and so on.

These are the staple of many larger structures and to understand them well (and how tricky they are to get right) is essential knowledge.

</comment><comment><USER24> Virtually everyone I meet nowadays tells me they are using some high level framework like Rails, CakePHP, Django with jQuery/Prototype etc. or building on top of Wordpress. Even .net is pretty high level.

So, I'm not sure people are doing what you are saying.

</comment><comment><USER25> Agreed. I would broaden the #1 Rule of Programming to be:

SOLVE PROBLEMS.

Sometimes you do this by programming it yourself, sometimes by doing it off- the-shelf, but if at the end of the day you've solved someone else's problem, they will give you money.

<comment><USER26> Yup, you are right. But solve problem your best and as fast as you can :-)

</comment></comment><comment><USER27> Not programming is hard work. You will spend about 90% of your programming time integrating other software whether you like or not.

By the way, the nr 1 rule is: context is everything. The nr 2 rule is: keep it simple.

<comment><USER28> Often - actually, almost always - third-party code is too general for the task at hand. If the job you're doing is simple, it can cost less in cognitive complexity to implement it directly, particularly if it's a problem domain you're expert in.

But when integrating, I do prefer to wrap the integrated thing within a simple layer or wrapper, if feasible, that only exposes what I need. That buys me several things: it makes the interface very simple; I can create tests that verify my expectations; I can replace it later without having to clone someone else's API; and the API of the wrapper is almost a bullet-point list for what I'm expecting the third-party code to provide, and as I dispatch from the wrapper to the third-party code, I can verify that it's going to meet my requirements, before having to readjust architecture etc. if I find out it doesn't fit further down the road.

</comment></comment><comment><USER29> I always try to find a library which does what I need before writing one myself. However, I rarely consider proprietary libraries.

With open source or free software libraries I can quickly get some idea of how well-written the library is, and how well it can be extended in the directions I need it it to.

In rare cases I might pick a propietary library for a project at work, but even then I only pick those for which I get the source code. When a client calls with some issue which needs an immediate fix, I can actually dive in and fix things.

</comment><comment><USER30> Also: 9 times out of 10 you can do something faster by hand even if you think that a shell script, regex/sed command, or custom emacs extension would do the job better.

</comment><comment><USER31> #1 Rule of programming ist. Don't talk about programming.

#2 Rule of programming ist. Don't talk about programming.

Was intendet to be funny, but I just realised it makes a lot of sense.

<comment><USER32>
        "Talk is cheap. Show me the code."
        - Linus Torvalds

<comment><USER7> The second line is a great counter-argument.

In reality, this clever quip is just Linus' way of telling people to go away. He certainly talks a lot about code he has no intention of writing. (He does write a lot of code, too.)

<comment><USER32> Regardless of its originator, to me the quote just serves as a reminder that my true productivity and progress are based on the quality and speed with which I can write (or integrate other people's) code (as opposed to talking about features, dreaming of all the way things could be done, etc.).

It's easy for me to outline how a great piece of software X is supposed to function, but I'm still surprised every time how much more work ends up going into the actual implementation compared to the conceptual simplicity of the design. So, similar to "writing is thinking" I believe that "coding is thinking" as well.

</comment></comment></comment></comment><comment><USER33> This is a balance one has to make when working for someone else. Often, all of your suggestions you made end up with more limitations than freedoms.

You need freedoms within apps that are going to be around for the long haul.

Example... Do I build an app in MOSS 2007 or simply use asp.net. Ya, then comes MOSS 2010 and you need to do a rewrite, if you used asp.net then there is no rewrite needed.

</comment><comment><USER26> Of course, "Don't PROGRAM" is a greate rule. If you can use libriry of algorithms or something else that is made by really professional programers and fulfit all your requerements it's good. To buy this library will save your time (=money).

But there are many cases when the best solution is to program. For example: Hi performance software development, sequrity issues and etc.

<comment><USER12> I'm not sure your definition of high-performance software development and mine coincide here, in any sense imaginable.

In the programmer-performance sense, just snagging an off-the-shelf component and shoehorning it into your product will let you ship something far sooner than otherwise. Who cares if the code looks nice right now? Just ship the damn thing!

In the runtime-performance sense, the whole mess becomes a case of "someone else's problem." If you purchase a component, I'd say you have a lot of leverage to complain that a particular piece of software isn't performant or secure. If it's open source, write patches and, if politics becomes a problem, step on someone's toes.

<comment><USER26> I ment runtime-performance.

Off-the-shelf components will make you to code fatster and prolly much more flexible. Don't programm is really greate rule.

Don't programm and keep your code as simple as possible

<comment><USER12> You subscribe to the rose-colored glasses version. :) I'm sensing a trust issue or two w/r code written by others, but that's okay.

In reality, while you'd like to keep your code as simple as possible, it's often impossible even to keep the simplest things simple because you have numerous bad designs from the past to use as a foundation for whatever it is you're building.

UNIX? Sucks. X11? Sucks. Windows NT? Sucks. Win32? Sucks. .NET? Sucks. PHP? Sucks. Perl? Sucks. Ruby? Sucks. Everything? Sucks.

Any one of these will pose a decent enough challenge _somewhere_ down the line. What really becomes a problem, though, is gluing a good chunk of that mess together somehow.

Get your product out now and _then_ worry about runtime performance.

If that ends up being a big concern early on anyway, I suppose you could pull a Google and just hype the hell out of your product while letting in a small amount of early adopters. ;)

<comment><USER26> Yup it is mix. You know, Life has alot of compromizes

<comment><USER12> Fortunately, academic pursuits only require compromises in terms of politics. ;)

</comment></comment></comment></comment></comment></comment><comment><USER34> If you ever want to create something better than what's out there, you'll have to program itself, and if you want to get to the situation where you can create something better than what's out there, you're going to have to do a helluva lot of programming, not just read documentation and try to fit together other's people's software with the minimum effort.

</comment><comment><USER8> bleghhh, maybe you are underestimating the joy/morale of writing what you _want_ to write.

Prototype a cog in an afternoon; you'll have a much deeper understanding of how that cog should work, and you'll be a better judge of the available cogs.

FrankenCode is a perfectly viable strategy, but it's gross and boring.

</comment><comment><USER35> Ok - this is a cute post but I'm going to play devil's advocate.

So what if it is faster to do X? I program because I like to. I find it much better than trawling through the net, evaluating a half-dozen alternatives and then cursing as I try to force fit their API into my requirements.

<comment><USER26> If you like you may programm but it will be your HOBBY. IF you need something special or it is fater to program yourself DO IT. But Biz needs fast and quility solution.

however i'm in Academia and need to program a lot of by myself, cause i should use some non free library ( cause other people wil lnotbe able to modefy this code and etc.

<comment><USER35> Ok - I program in a software product company. Our business depends on getting out the best solution - not the fastest solution. It's definitely not a "hobby".

Some businesses may requires "fast" solutions, but I would argue that most businesses would be better off with "the best" solutions. And, in any case, requirements of a certain segment of businesses shouldn't really qualify as "The No #1 Rule Of Programming".

</comment></comment></comment><comment><USER9> I kind of agree: however I think if you only spend 3 hours learning the proprietary API and reviewing the code in the package your going to end up in almost as bad a place.

I'd factor it at anything from 8-24 hours _at least_.

</comment><comment><USER36> "Everything that can be invented has been invented." Attributed to Charles H. Duell, Commissioner of the U.S. patent office, circa 1899

<comment><USER16> I wish the patent office had taken that to heart and stopped issuing patents.

</comment></comment><comment><USER28> As an odd corollary, in matters of system administration, the exact opposite is usually apposite: AUTOMATE EVERYTHING.

<comment><USER26> It's kind of the same rule. AUTOMATE EVERETHING == Let something or someone todo your work == Use work of another people == use library == DON'T PROGRAM

<comment><USER28> Usually the process of automating is writing high-level glue code. So it is a kind of combination; it's using third-party code, but it's also very much programming.

<comment><USER26> Yup it is. You know the main idea of all this advices is Try to save your time and power. For administrators: Write code thatwill do your job. For programmers: find someone who have done this work with needed quolity

</comment></comment></comment></comment><comment><USER37> Great advice. Otherwise, you might learn something. By doing. Which is so passé.

Why is this site called ' _Hacker_ News' anyway?

</comment><comment><USER38> "Use VB.NET or Delphi for the front-end user interface."

Or, you could use something that's cross platform like Python.

<comment><USER39> Using which Pythonic stable, tested, documented drag-n-drop GUI/RAD toolkit?

<comment><USER38> There are a lot. the built-in TK library has worked well for me in the past. It supports some drag and drop.

</comment></comment></comment><comment><USER40> I'd be interested to hear what some of the successful founders in YC have to say about this one.

</comment><comment><USER41> I'd say first rule of programming is KISS. It kinda includes your rule.

</comment><comment><USER42> There is something to be said for writing code you can be proud of. I'm always working on finishing projects faster and not introduce bugs in the name of speed.

I can't see a furniture craftsman recommend that you just buy a chair at IKEA.

This philosophy leads to becoming the IKEA of software.

<comment><USER43> >This philosophy leads to becoming the IKEA of software.

As in the most succesful?

<comment><USER42> If that is what you are going for, then yes. There is nothing wrong with that strategy. I haven't found anything remarkable at IKEA (except for price).

<comment><USER44> I have. My office leather chair was bought in IKEA more than ten years ago. It was cheaper than alternatives, I bought the alternative because I wanted something good that last. It lasted 6 months of use, I had used a lot of chairs in my life,and all broke fast(I'm tall, maybe that's it) I think my IKEA is way way better in terms of quality, not only price.

I have lived in places with old mahogany furniture(from Congo), strong, beautiful, heavy wood, I prefer IKEA furniture for living, I don't need to care if I broke it, is lightweight, and I don't feel bad about the environment.

Having someone do something using his own hands doesn't mean is better, in fact, it uses to be worse, compare a Toyota manufactured with robots to a handmade car and tell me.

</comment></comment></comment></comment><comment><USER45> Would mint.com be a good example of this philosophy..?

</comment><comment><USER46> I prefer: No code is better than no code.

Or: Programming takes eons.

</comment><comment><USER47> #1 Rule of Programming Is..There is no Rule #1

<comment><USER48> sure there is. mine is: automatically assume that every user is out to hack/deface/fuck with your app.

</comment></comment><comment><USER49> Well what's rule #34 of programming, then?

<comment><USER11> [http://bogdan.org.ua/2009/01/05/unix-sex-linux-command- refer...](http://bogdan.org.ua/2009/01/05/unix-sex-linux-command- reference.html)

</comment></comment><comment><USER50> I would like to take a poke at the automobile engineer analogy. I think the reason they don't build there own parts is because of one of the two: [1]They don't know how to build it.These parts are sometimes too advanced for a single engineer to build.This is because there field of engineering has advanced to a level to which,I think, software engineering has just not reached.

[2]They don't have the experience points (Money) to buy the material needed to build those parts. And that's not just limited to material, sometimes even the tools are too expensive to buy.Not to mention the transport charges.This is because they are...umm...physical. The parts cost them materials,chemicals,casting/forging devices etc...etc.

Now on the other hand for a software engineer, [1]If you are worth your salt its fairly easy to learn anything in programming in time.And I put an emphasize on "in time".

[2]The cost of material is quite nominal (and transport charges free).And this is because mostly programming material or tools are not...umm...physical.They can be easily downloaded from the internet or from any other 'net you are on.

So in my opinion the analogy is just not fair.

PS: For the umm...physical part, I am not satisfied with the word "physical" to distinguish between programming and automobile tools. So please someone give me a better word.

<comment><USER22> How about "hard"?

As in hardware vs software?

I'm just going down to the hardware store to buy a spanner and some raw materials.

</comment></comment><comment><USER51> In Java, you usually do not invent the wheel but rather take an existing open- source jar.

Even those of them that aren't very good, sadly. But most are.</comment>