As someone who runs a site that hosts content, this is great for us. We aren't allowed any sort of leeway in interpreting the claims and in return we are exposed to no liability. We are simply the middle man and have to do what's asked of us.
420 karma · joined February 27, 2009
As someone who runs a site that hosts content, this is great for us. We aren't allowed any sort of leeway in interpreting the claims and in return we are exposed to no liability. We are simply the middle man and have to do what's asked of us.
Now.. CPAN.
Let me explain my latest round with fighting Perl/CPAN. I wanted a perl interactive mode. When I want to test out something in Ruby I use irb. In Python, I can type in `python` and enter interactive mode. Even PHP has a rudimentary interactive mode now.
So I try looking at `perl --help`. Nothing there. So I turn to google and find that I need a REPL whatever that is. So I try to figure out what a REPL is. Find that. Now I find that I need to run a little script to run Devel::REPL. Doesn't work. So I load up CPAN and type in `install Devel::REPL`. No less than thirty minutes later, 150 or so screens of noise, and at least 25 questions that I have to hit [enter] for I get a failed install. I have no clue what failed -- something to do with tests (the error is 4 screens back in the middle of even more text) so I try to force the install. I'm now 45 minutes into this and finally get Devel::REPL installed. I fire up re.pl and I get `SCALAR(0x100b81070) is not of type SCALAR at /opt/local/lib/perl5/site_perl/5.8.9/namespace/clean.pm line 56`. All of this for a feature that should come with a base install.
This is just one example of why I avoid perl as much as possible.
You generally don't need to change directions very much. TDD will expose bad interfaces or interfaces that aren't abstract enough early on because you can't test them easily. And if you do decide to change directions you sit down and write the tests and then make the changes until your code works and the tests pass.
Generally you want to write tests before code and make your code pass the tests. How many tests and how much coverage is up to you. It's important that the tests are small and brittle so you can pick out as many breakages as early as possible.
You use the API in your tests. When the tests start to fail you know your API has changed. It gets a bit more difficult with web APIs if they don't provide a test environment.
PayPal is still the cheapest and easiest way to collect the money, even considering fraud. (PayPal almost always sides with the buyer and with digital goods you have little recourse.)
It's the marketing that makes all the difference. We have customers that have made $50-60k in less than a week due to awesome marketing. And we have customers that pull in well over $100k/yr due to good marketing and good affiliates. We also have many that will never sell anywhere near that much in the product's lifetime, also due to marketing.
payments standard only supports something similar to express, although it's a totally different beast.
The hard part is identifying the niche and being patient enough to see it through. A lot of people seem to think they can setup a sales page, put the buy now button on it, and start making $500/mo in 7 days. It doesn't usually work that way.
we're talking about websites that are in the top 5% of all sites (by traffic) that would even need to think about using something like phpc or hphp. the number of those that would be willing to use a freelancer to handle their scaling issues are probably in the single digits at best.
i would guess that the majority of them wouldn't even know to look for phpc or any alternative. there just hasn't been any news of something like HPHP before HPHP. if you want to run php, you go to php.net or install it from a package and go from there.
combine the above with very little actual need, very little public information on how to build a large site, and lack of maintainer interest and phpc just won't get major traction.
I would have loved to have found phpc several years ago when i was still working on a large site that had performance problems.
and once you start maxing out boxes, the load comes even harder since the site loads slower. you very quickly run out of resources and suddenly you're SOL and everybody's mad that the site won't load.
honestly, it's hard to point at any one source of problems when scaling a site. cpu, ram, and i/o are all equally problematic. and if you under plan any one of those it can take your site down into a spiral of doom.
you really must allocate your resources for peak load, not for average or nominal load. and then allow for some failures.
Most of the FADEC systems have dual alternators, dual controllers and dual sensors, but people still don't run them very often. Probably the most popular one I know of is in the Rotorway Exec series helis.
SDS also sells a (non-redundant) EFI system that's used in a couple of aviation applications. My dad is using a SDS system in his Jenny.
You also can't run a modern closed loop EFI system because of 100LL (avgas). The lead in it will destroy an oxygen sensor. So you're still stuck with a mixture lever in most cases.
And that's just the experimental crowd. The cost of certifying an EFI engine into an existing airframe would make a retrofit cost prohibitive. Most people won't spend an additional $20k at overhaul time to add fuel injection and digital ignition. It would take a bunch of hours at +20% efficiency to make that back.
A couple years ago I heard about a company selling a modern ignition system packaged into a mag. The idea was to replace one mag with the digital ignition and leave one mag as a safe backup. I don't know what happened to them. Last I heard they were selling units and working on certification for the Lycoming O-320/O-360 and Continental O-300 engines.
Also, I just looked up the guy in the article. He sells his digital ignition systems for around $2k. He's managed to get a STC for a heli, so that's some progress in the right direction.
> How do software engineers perceive business types?
The idiots who constantly make bad decisions that cause programmers to work even harder and miss sleep.
> How do they come to respect or disrespect someone in this role?
"We promised we'd implement this feature to a very important client by next week. How hard is it?" Generally for a feature that is esoteric and nearly impossible to implement. And usually for a client that doesn't generate much revenue.
> How can I best approach a software engineer with an idea?
Talk to them. Ask their opinion. Most programmers love to know details, backstory, and to be part of the process.
> What can a business type do to build trust with a programmer?
Talk to them. Programmers hate to be asked or told to do something without knowing why. You'll generally get a better result if they know why the feature needs to be added instead of just telling them to put a button here that does this.
> Horror stories or success stories about these two worlds coming together in startup glory or catastrophe
I was employee #2 at a web startup that was barely in the black (perhaps just solvent) after about 5 years in business. I ran IT. The owners brought in an angel who invested a nominal amount of money for a ridiculous amount of ownership (47.5%). The angel brought in a CEO. The CEO brought in salesmen. I hired a few programmers and a network guy. The salesmen brought in even more salesmen. The CEO brought in someone to oversee me.
The CEO was a "big-bang" kind of guy so he immediately started pitching the product to anyone he could find. The product wasn't ready and hit all sort of problems. Lots of infighting and little political factions starting springing up between the new guys and the old guard. Both sides thought each other were idiots. We knew the market and the new guys had no experience with either web or the industry we were in. We knew how to save money and generate profit and they knew how to spend it.
Within 2 years there were at least 8 VPs in a 40-person company (only about 20 of them worked full-time onsite). By the time I left, the company had 60+ people on payroll, with about 10-15 of them being IT. There were probably a dozen VPs (I lost count and didn't care anymore), and was burning about $7M/yr with no sign of turning a profit. The "business types" are still figuring out how to make money, still over promising and under delivering, and just about everyone there hates the place.
> What motivates programmers? Success? Personal fulfillment? Money?
Challenge and accolade. A good programmer loves to solve puzzles and wants to be acknowledged for his or her work. Very few things are as deflating as busting ass on a feature that someone else gets all credit for. Programmers love toys- this includes fast hardware and good equipment. If your programmers don't have dual screens and a computer built in the past 12 months, something is wrong.
> What do programmers think motivates business types?
Ego. Resume building. Money. Job titles.
For $15k from me, you would receive: 1) a complete website built to your specs (including advice on how to best design your site if desired) 2) a period of support and bug fixes after the site is finished and 3) a site built using readable, commented code with actual error handling. I charge by the hour, so you can keep me around as long as needed and make as many changes as you like.
It's lower risk to bring in a contractor than to hire a full-time employee. I don't require an office, a computer, health insurance, or a period of time to learn your company and its politics. If you don't like me or my work, you can generally terminate the contract without any legal problems as long as you pay your outstanding bill. I don't have to play office politics so I can do the things that an in-house developer wouldn't be allowed to do.
I come to the table with several sites under my belt and a library of code that I can draw from. Once you have a website built by a skilled contractor (note, there are lots of unskilled ones out there), you can bring in a less-skilled developer to maintain the site or enter into a reduced-fee maintenance contract.
Really, it comes down to what you plan on doing with the site. If your business is a website, you're probably better off developing it in-house.
If your business involves a website/web app but it isn't core to your business (or if you don't plan on continued maintenance), it makes sense to hire it out and use the money saved on other business expenses. eCommerce and CMS sites are a perfect example.
If you want a website to announce you exist, hire it out to the cheapest contractor or flat rate developer you can find. Just don't expect to be able to easily maintain it.
You tend to get what you pay for. I've worked on several sites where they hired out cheaper developers only to bring me in to clean up the mess and make the site work.
They pretty much want to give you the skills needed to get help and get back on the ground if you find yourself in a bad situation. And to not overreact and stall or spin yourself into the ground because you didn't trust the instruments.
With that said, there isn't such a thing as knowing too much about flying. But if your aircraft isn't IFR equipped (and lots of rentals aren't), you won't be able to practice much more than the above.
Insurance has come up a couple of times on reddit and there are always comments about how bad BCBS is. Even several comments about how doctors will say they're booked just to avoid dealing with BCBS.
MySQL's performance sucks. It's great lightly loaded and with little concurrency. Add load and it noses over. (I've read that this is mostly because of the malloc they use. Regardless of the cause, it's a problem.)
I tested MySQL 5 vs PG 8.3 to handle session storage. This is about as simple of a test as possible. PostgreSQL outperformed MySQL by a significant margin across every load scenario, sometimes up to 2x the capabilities. PG's performance flatlined with load. MySQL flatlined and then hit a wall and dropped significantly as load and concurrency rose.
So the first thing someone does when MySQL noses over is to buy faster hardware. But that doesn't really help as much as it should. So they add replication to be able to distribute load across multiple servers. That's all fine and dandy until you realize that for every rep node you add, you are adding overhead for writes. And the headaches of keeping MySQL's brain dead replication in sync. Eventually you spend all of your time waiting for replication to finish or rebuilding a failed sync or chasing down ghosts in the system.
Back to postgres. Its performance scales nearly linearly with load and number of cores. Adding more hardware resources actually improves performance accordingly. So you end up being able to stay on one machine longer.
If you're truly going to have more load than one server can handle, break the data set up into smaller pieces (sharding).
Postgres is an awesome database. It behaves consistently and correctly. It has a lot of polish when you get into it. psql is a pleasure to use. It supports more of the SQL standard than MySQL. It's query analyzing tools are great. The only real pain point is that you have to do a dump/load to upgrade point releases (8.1 -> 8.2).
With all of that said, MySQL is great for smaller sites. It's available everywhere and every framework and language supports it. There are a million people who can administer it. Postgres is a lot harder to find competent DBAs.
PostgreSQL has been improving significantly throughout the 8.x series. Autovacuum has made life easier for everyone. Full text search is now built in. It now supports recursive queries and a bunch more.
you cannot take a delivered html document and convert it into whatever html-generator you use. the designer will have no clue how to use your (hand) converted file in dreamweaver to make small changes. in the end, it just makes life harder for everyone and costs more money.