PHP has good frameworks, and comes with a decent framework to start with. It's not a good comparison to compare a language to a framework, and attacking the language for the lack of a framework, while framework is a framework. That logic fails
PHP inc. PEAR which comes with tons of functionality, hard to search tho and mostly legacy code. Then there are Zend Framework, Symfony, CodeIgniter, CakePHP along many others, with varying degrees of freedom, code quality, abstraction.
Maintainability and Security both are functions of programmer skill. Unskilled programmer will always make low level quality code. Novices will always make novice mistakes.
PHP is not inherently unmaintainable, but sadly most PHP code is unmaintanable. But that does not mean that it has to be unmaintanable, there are plenty of maintainable PHP code around as well, just not very good open source examples. Also security issues with PHP apps has nothing to do with the language, but lack of programmer skill. Just count how many language side security flaws PHP has nowadays... Right at about 0. PHP is also the most widely used, so security issues are found easiest, by being well tested.
Most PHP code you find is legacy, non-abstracted, linearly coded, no OOP, no framework spaghetti relying on globals, global functions, include files and mixing business logic, flow control and visual layer in a garbled mess.
Why a lot of PHP is such a garbled mess then? Low barrier of entry, a lot of complete newbs has been using PHP as their first touch to anything programming. Doesn't mean that a professional developer using PHP is prone to same errors as those complete newbies to programming. PHP is easy to start with, easy to learn to get something done with (good documentation).
There is tons you can do to make your PHP code maintainable, starting with layer separation (MVC), sensible code quality metrics (General size of classes, functions), and choosing the "framework" which gives good freedom to developer, while making it easier to make well performing, secure maintainable code. All this sums up: Go with experienced developers, who actually think and know what they are doing, and not the novices who don't know what they are doing.
and CakePHP is absolutely the worst thing you can ever do to your app, to yourself or to your sanity.
I've had the unfortunate event of inheriting an CakePHP application. At first CakePHP seemed awesome for getting stuff done quick, but after looking at the source, it was full of hackery gluey code to bypass abstractions to make certain things happen. The original developer did not make the sanest choices either so that didn't help, but the point was clear, for somethings it was hard to make it flex.
I developed new features, bug fixes etc into it. Somethings were innecessarily hard to make happen with it, so it wasn't that flexible. But the worst thing was that we needed to update it, but it was deemed as too big of a project to update underlying cakephp framework to a new feature because of backwards incompatibility.
CakePHP seems to target inexperienced developers, with absolute rapid development by making everything automated, not that sane solution for highly customized functionality. It had it's good things, such as scaffolding as well. But it was like learning coding from scratch as everything needed some obscure abstraction, documentation wasn't good enough for the task etc. Things which should have been accomplished in 1minute flat, sometimes took 1hour of browsing documentation.
You shouldn't use either of them directly, as you are opening yourself to potential maintainability hell in future, especially if new vulnerabilities are discovered which do not provide turnkey solution.
Use an DB abstraction layer, an SANE layer, not an stupid one like AdoDb (which is bloated, and does not provide sane abstraction, ie. not intended fully to make it easier for the programmer)
Rails 3 goes to the bin of stupid abstractions, just like CakePHP. While these both provide inexperienced, novice"programmers" a chance to create something mostly functional, it does so it by killing flexibility, maintainability and especially performance, since most of the people using these are going to use every single abstraction piece there is, without thinking once what is a sane level of abstraction or a sane abstraction module. Same thing can be done to a degree with Zend Framework and Symfony as well. Besides, Rails 3 is Ruby, not PHP and PHP being the most mature, most supported, most widely used language of choice for web applications. (What did facebook use again? Oh yeah, they even developed their own version PHP, yup that's right!)
XSS vulnerabilities: You still need to know what you are doing, and automated user input sanitization only will mean you rely on that and unsatized input will get past you or even that you are getting yourself into sanitization hell when you need unsanitized input for custom sanitization, you got to run extra loops. Plus you make your code harder to maintain, again.
Nothing will remove the need to actually knowing what you are doing
All of those, e-mail, twitter client, mp3 playing etc. ARE separate components as software in a hardware platform. They share little if any code (internal code that is). They all are separate applications, thus separate components working individually.
What you are saying you would like your iphone run a single process which plays mp3s, fetches your e-mail, allows you to use twitter in a single process and codebase. Yeah... Imagine if Flash crashed, taking down firefox, which would take down explorer (or mac's desktop ui), which would take down graphics video hardware driver, which would then take down the kernel. That's what you are essentially saying you want.
Processes can be imagined as individual components, as they essentially are separate components, being isolated from other processes without specially coded, special means of communication between other very particular processes.
Get a Cisco ADSL2+ router, Procurve 5 or 8 port web managed only 1gbit switch and separate 802.11n AP and you get things working.
Tho it will cost a bit if you buy everything new, but the good thing about Cisco & Procurve is that they have lifetime guarantees so buying used is a no brainer.
Bunch everything together: Likely none of it works as advertised.
Yup, they practically force sold me tv-over-ip here in Finland by offering more bandwidth, new hardware and cheaper monthly. Yup that's right. Cheaper for more services.
Well, i did then take the paid discovery channels (Got to love them!) and ended up paying the same but getting free ADSL2+ modem, Digibox, popcorn, free movie rental, free antivirus etc.
And as a seedbox provider, i can contest to that bandwidth is getting ever cheaper and cheaper.. It's cost is becoming irrelevant really
Everyone can be an artist (in a way), but not everyone can be programmer (requires atleast minimal level of logical competence).
Finding good artists and GOOD programmers are hard. All programmers are not equals, just like in artists, there's a huge degree of change in quality and competence between programmers as well. Most programmers suck, just like most artists suck.
A single computer, and an internet connection does not run quite a big project in a short timespan. Sure, a TV production cannot be done by single person, while as single programmer can do quite a vast project, but the programmer cannot finish either without UI designer, Graphics designer, set of specifications, testers, and a big collection of manuals, and other reference sources. Sometimes all of that culminates on a single person, just like it sometimes culminates into a single person on entertainment (think demoscene).
You are putting TV production on a pedestal. Sure they are big, they need a lot of people, when done by studios. Just like products done by big corporations is not run by a single person.
Actually, TV show is means for an end as well. It's means for making the viewer feel emotions the viewer likes, and how the viewer interprets the TV show makes those emotions trigger. An escape from reality, compelling story etc.!
Don't say no, it might very well happen over years.
See how much has changed in the past 5, 10years. See what's happening to traditional print media... Maybe in the coming 5-10years we start seeing more "indie" productions, and we watchers vote with our wallets what we want to see. I'd expect that to happen.
I bet it's going to be seeded well even then. As for current, it's seeding quite well as my testing account is having hard time going past 1M/s (Usually seeing double that for public torrents).
Putting this on our skel for new accounts so there's going to be some strong seeding:)
Pioneer One has immense potential and i'm quite sure we are going to see atleast one more episode.
The story is so compelling and intriquing it's amazing! Really good applaus for them, especially wanting me to rewatch the pilot immediately after the first run.
Yes, i donated, and will be donating more, maybe even heftier as they offer into credits section might do it for company advertising aswell!:D
Pioneer One is a hit imho as well. The "indie quality" shows, but know what? It doesn't matter at all! The story is so immersive, interesting and hooking. I'm tempted to watch this pilot again right now, and want to see how the story continues. It's a very compelling proposition this set has. The acting ain't the best, but does the job well conveying the story. Special effects, like you can expect with this budget, pretty much suck, but it only puts your imagination working and filling the gaps.
In short: Pioneer One makes you think with your compelling story, and lust for more of the story.
This guy just seems clueless and skilless to produce high quality web applications. ie. he has just bitten too big of a bite for his level of skills. Most web developers are actually quite unskillfull, he apparently is more than the average joe there, but by no means good.
Printing problems wouldn't exist if he'd just use his brain... For example, there is a method to load CSS just for printing, and only for printing...
Especially without examples, it's highly likely he is confusing his own ineptitude with system/platform problems.
parent can't be modded high enough. should be +10 insightful.
Also, if a company can't trust an employee enough to be productive with normal motivation measures without invading privacy, that person shouldn't be hired in the first place. Secondly, no person can be 100% productive 100% of the time, our bodies nor our brains work like that. If you need 100% productivity, 100% of the time, with 100% dedication to the company, you get an robot. Oh wait, yeah right, there's no AI intellect enough for 90% of jobs to replace humans.
Respect the employee, and the employee shall respect the employer. Unless the employee is a total ass, in which case he should be fired or not hired in the first place.
Because you are thinking serial while they are thinking parallel.
How many simultaneous operations can do 512 atoms VS. say total 128 Xeon cores?
What happens when single operation is extremely small, but there are extremely high volume of them?
What happens to a CPU core while it's waiting for RAM or other I/O? Yea, that's right: It waits.
What happens to memory IOPS when you have 512 channels versus 128 dual-channels? Yup, it's vastly higher, but not actually just twice, but quadruple (dual channel is for dual bandwidth, not dual IOPS afaik)
I consume easy several Gb each and every day, and upto 30-40Gb a day. All of my servers are doing at least 150Gb a day upstream alone. Yes, i am a heavy user.
But if 65Gb is staggering, what's the equivalent term for say 1Tb a month?
even a few hundred UNIQUE visitors per second is immensively huge. 200 * 60 * 180 (3hrs./ effect) = 2 160 000 uniques... I doubt there's that many readers of./ by far;)
The thing is, Safari hasn't implemented sub-pixel calculations yet, thus you get that "jerkyness". That "pixel world" you meantion really means lack of sub-pixel calculation and only means lackluster implementation.
that's not the point. The point is they advertise this as standards demo, not Safari demo. Ie. saying Safari is the only standards compliant browser, just like Microsoft telling IE is standards compliant.
PHP has good frameworks, and comes with a decent framework to start with. It's not a good comparison to compare a language to a framework, and attacking the language for the lack of a framework, while framework is a framework. That logic fails
PHP inc. PEAR which comes with tons of functionality, hard to search tho and mostly legacy code. Then there are Zend Framework, Symfony, CodeIgniter, CakePHP along many others, with varying degrees of freedom, code quality, abstraction.
Maintainability and Security both are functions of programmer skill. Unskilled programmer will always make low level quality code. Novices will always make novice mistakes.
PHP is not inherently unmaintainable, but sadly most PHP code is unmaintanable. But that does not mean that it has to be unmaintanable, there are plenty of maintainable PHP code around as well, just not very good open source examples. Also security issues with PHP apps has nothing to do with the language, but lack of programmer skill. Just count how many language side security flaws PHP has nowadays... Right at about 0. PHP is also the most widely used, so security issues are found easiest, by being well tested.
Most PHP code you find is legacy, non-abstracted, linearly coded, no OOP, no framework spaghetti relying on globals, global functions, include files and mixing business logic, flow control and visual layer in a garbled mess.
Why a lot of PHP is such a garbled mess then? Low barrier of entry, a lot of complete newbs has been using PHP as their first touch to anything programming. Doesn't mean that a professional developer using PHP is prone to same errors as those complete newbies to programming. PHP is easy to start with, easy to learn to get something done with (good documentation).
There is tons you can do to make your PHP code maintainable, starting with layer separation (MVC), sensible code quality metrics (General size of classes, functions), and choosing the "framework" which gives good freedom to developer, while making it easier to make well performing, secure maintainable code. All this sums up: Go with experienced developers, who actually think and know what they are doing, and not the novices who don't know what they are doing.
and CakePHP is absolutely the worst thing you can ever do to your app, to yourself or to your sanity.
I've had the unfortunate event of inheriting an CakePHP application. At first CakePHP seemed awesome for getting stuff done quick, but after looking at the source, it was full of hackery gluey code to bypass abstractions to make certain things happen. The original developer did not make the sanest choices either so that didn't help, but the point was clear, for somethings it was hard to make it flex.
I developed new features, bug fixes etc into it. Somethings were innecessarily hard to make happen with it, so it wasn't that flexible. But the worst thing was that we needed to update it, but it was deemed as too big of a project to update underlying cakephp framework to a new feature because of backwards incompatibility.
CakePHP seems to target inexperienced developers, with absolute rapid development by making everything automated, not that sane solution for highly customized functionality. It had it's good things, such as scaffolding as well. But it was like learning coding from scratch as everything needed some obscure abstraction, documentation wasn't good enough for the task etc. Things which should have been accomplished in 1minute flat, sometimes took 1hour of browsing documentation.
You shouldn't use either of them directly, as you are opening yourself to potential maintainability hell in future, especially if new vulnerabilities are discovered which do not provide turnkey solution.
Use an DB abstraction layer, an SANE layer, not an stupid one like AdoDb (which is bloated, and does not provide sane abstraction, ie. not intended fully to make it easier for the programmer)
Rails 3 goes to the bin of stupid abstractions, just like CakePHP. While these both provide inexperienced, novice "programmers" a chance to create something mostly functional, it does so it by killing flexibility, maintainability and especially performance, since most of the people using these are going to use every single abstraction piece there is, without thinking once what is a sane level of abstraction or a sane abstraction module. Same thing can be done to a degree with Zend Framework and Symfony as well. Besides, Rails 3 is Ruby, not PHP and PHP being the most mature, most supported, most widely used language of choice for web applications. (What did facebook use again? Oh yeah, they even developed their own version PHP, yup that's right!)
XSS vulnerabilities: You still need to know what you are doing, and automated user input sanitization only will mean you rely on that and unsatized input will get past you or even that you are getting yourself into sanitization hell when you need unsanitized input for custom sanitization, you got to run extra loops. Plus you make your code harder to maintain, again.
Nothing will remove the need to actually knowing what you are doing
Uhm, yes you got all those.
All of those, e-mail, twitter client, mp3 playing etc. ARE separate components as software in a hardware platform. They share little if any code (internal code that is). They all are separate applications, thus separate components working individually.
What you are saying you would like your iphone run a single process which plays mp3s, fetches your e-mail, allows you to use twitter in a single process and codebase. Yeah ... Imagine if Flash crashed, taking down firefox, which would take down explorer (or mac's desktop ui), which would take down graphics video hardware driver, which would then take down the kernel. That's what you are essentially saying you want.
Processes can be imagined as individual components, as they essentially are separate components, being isolated from other processes without specially coded, special means of communication between other very particular processes.
Get a Cisco ADSL2+ router, Procurve 5 or 8 port web managed only 1gbit switch and separate 802.11n AP and you get things working.
Tho it will cost a bit if you buy everything new, but the good thing about Cisco & Procurve is that they have lifetime guarantees so buying used is a no brainer.
Bunch everything together: Likely none of it works as advertised.
And if Linksys works that poorly.... Think how poorly D-Link works ... 5minutes at a time with 20% packetloss... if you are lucky?
D-Link gear is packet loss guaranteed, overheat guaranteed, and will make owner angry guaranteed.
Yup, they practically force sold me tv-over-ip here in Finland by offering more bandwidth, new hardware and cheaper monthly. Yup that's right. Cheaper for more services.
Well, i did then take the paid discovery channels (Got to love them!) and ended up paying the same but getting free ADSL2+ modem, Digibox, popcorn, free movie rental, free antivirus etc.
And as a seedbox provider, i can contest to that bandwidth is getting ever cheaper and cheaper .. It's cost is becoming irrelevant really
That's low level coding. Put the same guy doing high level UI work... on the web. You'll see a very likely disaster as a result
Sorry to burst your bubble, but it ain't so.
Everyone can be an artist (in a way), but not everyone can be programmer (requires atleast minimal level of logical competence).
Finding good artists and GOOD programmers are hard. All programmers are not equals, just like in artists, there's a huge degree of change in quality and competence between programmers as well. Most programmers suck, just like most artists suck.
A single computer, and an internet connection does not run quite a big project in a short timespan. Sure, a TV production cannot be done by single person, while as single programmer can do quite a vast project, but the programmer cannot finish either without UI designer, Graphics designer, set of specifications, testers, and a big collection of manuals, and other reference sources. Sometimes all of that culminates on a single person, just like it sometimes culminates into a single person on entertainment (think demoscene).
You are putting TV production on a pedestal. Sure they are big, they need a lot of people, when done by studios. Just like products done by big corporations is not run by a single person.
That's the reason why advertising will transform into a format you cannot skip - ie. within the show.
Actually, TV show is means for an end as well. It's means for making the viewer feel emotions the viewer likes, and how the viewer interprets the TV show makes those emotions trigger. An escape from reality, compelling story etc.!
Don't say no, it might very well happen over years.
See how much has changed in the past 5, 10years. See what's happening to traditional print media ...
Maybe in the coming 5-10years we start seeing more "indie" productions, and we watchers vote with our wallets what we want to see. I'd expect that to happen.
I bet it's going to be seeded well even then. As for current, it's seeding quite well as my testing account is having hard time going past 1M/s (Usually seeing double that for public torrents).
Putting this on our skel for new accounts so there's going to be some strong seeding :)
Pioneer One has immense potential and i'm quite sure we are going to see atleast one more episode.
The story is so compelling and intriquing it's amazing! Really good applaus for them, especially wanting me to rewatch the pilot immediately after the first run.
Yes, i donated, and will be donating more, maybe even heftier as they offer into credits section might do it for company advertising aswell! :D
Pioneer One is a hit imho as well.
The "indie quality" shows, but know what? It doesn't matter at all! The story is so immersive, interesting and hooking. I'm tempted to watch this pilot again right now, and want to see how the story continues. It's a very compelling proposition this set has. The acting ain't the best, but does the job well conveying the story. Special effects, like you can expect with this budget, pretty much suck, but it only puts your imagination working and filling the gaps.
In short: Pioneer One makes you think with your compelling story, and lust for more of the story.
This guy just seems clueless and skilless to produce high quality web applications. ie. he has just bitten too big of a bite for his level of skills.
Most web developers are actually quite unskillfull, he apparently is more than the average joe there, but by no means good.
Printing problems wouldn't exist if he'd just use his brain... For example, there is a method to load CSS just for printing, and only for printing ...
Especially without examples, it's highly likely he is confusing his own ineptitude with system/platform problems.
parent can't be modded high enough. should be +10 insightful.
Also, if a company can't trust an employee enough to be productive with normal motivation measures without invading privacy, that person shouldn't be hired in the first place. Secondly, no person can be 100% productive 100% of the time, our bodies nor our brains work like that. If you need 100% productivity, 100% of the time, with 100% dedication to the company, you get an robot. Oh wait, yeah right, there's no AI intellect enough for 90% of jobs to replace humans.
Respect the employee, and the employee shall respect the employer. Unless the employee is a total ass, in which case he should be fired or not hired in the first place.
They pretend to pay is correct, because it's such a small fraction of our creative productivity's worth.
Because you are thinking serial while they are thinking parallel.
How many simultaneous operations can do 512 atoms VS. say total 128 Xeon cores?
What happens when single operation is extremely small, but there are extremely high volume of them?
What happens to a CPU core while it's waiting for RAM or other I/O? Yea, that's right: It waits.
What happens to memory IOPS when you have 512 channels versus 128 dual-channels? Yup, it's vastly higher, but not actually just twice, but quadruple (dual channel is for dual bandwidth, not dual IOPS afaik)
Yeeeaaah right, really staggering figure. Mmm, yup!
I consume easy several Gb each and every day, and upto 30-40Gb a day. All of my servers are doing at least 150Gb a day upstream alone. Yes, i am a heavy user.
But if 65Gb is staggering, what's the equivalent term for say 1Tb a month?
even a few hundred UNIQUE visitors per second is immensively huge. 200 * 60 * 180 (3hrs ./ effect) = 2 160 000 uniques ... I doubt there's that many readers of ./ by far ;)
Flash uses pixels just like everything else too.
The thing is, Safari hasn't implemented sub-pixel calculations yet, thus you get that "jerkyness". That "pixel world" you meantion really means lack of sub-pixel calculation and only means lackluster implementation.
iTunes is the DRM.
that's not the point. The point is they advertise this as standards demo, not Safari demo. Ie. saying Safari is the only standards compliant browser, just like Microsoft telling IE is standards compliant.
By far Apple ain't biggest in IT, they are way smaller compared to some other companies. Say, HP, Dell, Microsoft, Nokia.