or maybe we should just build sane cars. A early 80's model Nissan Cherry does ~5.5L/100Km (~47mpg), and it's a carburated engine. A early 80's 1.3 carburated corolla does ~5l/100km. (RWD so less efficient to start with) (50mpg). With good condition engine, and precisely tuned it can go as low as 4L/100km, or 62mpg. A modified early 80's corolla with a high tuned 1.6 twincam engine does 6-6.5l/100km. (40+mpg, RWD) A 80s Nissan Bluebird 2.0 does about 7-8L/100km with a carburated engine in weakish condition. A early 80's 1.6 corolla with twincarbs gets 8-9l/100km, and that kind of engine is known to have high consumption (bad tuning often, sometimes due how it's being used)
late 80s, early 90s BWM 316i can get also under 7l/100km. Skoda Felicia late 80s (i think) can get 60mpg (diesel tho) Renault Clio mid 80s can do ~4l/100km (60mpg) as well. Peugeot 205 mid 80s can do about 45mpg or better.
First BMW M3 if i recall right does also about 7-9L/100km depending is it city or highway.
These are all based on personal experiences, not some marketing material or other bullshit. Some with multiple same type cars.
New hybrid is dirtier than driving your 50s buick until it breaks down too bad, even with the 10mpg, due to the costs related in building that car in the first place.
The battery you usually have in a car is a NiMH, when is the last time you tried to lift it? They usually weight 12 to 18kg for a 12V 60Ah battery, which probably cannot give out more than 30A without significant drop in voltage. Even the best ones (those which costs close to 10x of cheapo) can only give out around 65A sustained. There might exist NiMH car batteries which use other than 10S1P (10 serial, 1 parallel) cells, which can give out higher amperage sustained.
At 65A sustained without significant drop you get only 780W, so to get the required 78kW roughly for a regular modern sedan you need 100 of those, weighting 1200 to 1800kg. These being high quality probably costing 200e a piece would mean the batteries would cost 20 000euros, and because of their weight you need to make way larger car and probably triple up the output to come even close to same performance as gasoline car. You end up with a truck with a affordably priced sedan performance. They also need to be cooled, NiMh is very low efficiency battery and heats excruciatingly when high output is drawn (i've burn my fingers a few times when they got too hot)
Of course, more advanced NiMH and NiCD batteries DO exist, but they are prohibitively expensive, easily costing 20euros per a cell of 2-6Ah.
LiPo would be optimal for cars if it would not be for the volatility of them and they cannot function properly at cold temperatures (under 10C you loose output dramatically). LiFe4 is rather new battery technology which looks promising for some applications.
LiIon is most likely candidate and this is what Tesla uses, and they use 11S 9S 69P setup for a total of 6831 cells to get the performance, and even with that setup the draw is so big that the batteries need to be cooled! And you know what heat is? It's loss in efficiency. NiMh would be just about 50x worse in this.
Even the tesla only stored 53kWh, and the batteries weigh in 450kg. Now imagine NiMH! LiIon has 100-250Wh/kg and NiMh has 30-80Wh/kg.
LiIon has also better cycle durability and lower self discharge rate. Downside in LiIon is that it's peak power output is quite low compared to other technologies (NiMh has higher). which is easy to counteract with smaller cells but more of them.
Li-Ion is not even particularly that good, if they can solve the LiPo problems things get interesting with 130-200Wh/kg but maximum power output (amperage) upto 7.1 times the next best.
Neither Li-Ion and LiPo seems to suffer from drastical voltage drop-off due to high draw.
Also afaik there is LiPo packs already in market which can do higher than 200Wh/kg.
LiIon is so widely used, thus cheapest to manufacture that using Li-Ion is a no brainer.
and let's not forget that Diesel is actually way more costly fuel than gasoline, if it would not be tax subsidized so often. Also diesel is A LOT dirtier, and part of the high premium comes from the things they do to get emissions down. Not only is diesel emissions by nature higher, but the emissions are also more dangerous, higher output of more dangerous particles.
Diesel is near regular car performance nowadays, but only because they are so highly tuned, basicly a diesel without a turbo is useless. Diesel requires turbo just to reach the gasoline naturally aspirated engine performance characteristics. That's also why you usually see bigger diesel engines for a model than gasoline.
Only thing where diesel is good for is torque. Sometimes this benefit is utilized and you get cars with consumption of 4L/100km of diesel or even less, translating to some epicly cheaper driving.
Pretty much all geniuses are more less crazy/insane/loco, simply quirked or otherwise odd in the bunch to the degree that a psychologist might say they have some kind of mental problems.
That's the price you pay for being genius, you perceive the world differently and therefore people think you are crazy (even if not) simply because they cannot comprehend your ideas and that leads to even more quirked nature. Sometimes you just need to be a bit crazy to be genius (to see the non-obvious)
Sounds to me like you haven't watched Mythbusters really at all. There's actually a shitload of science going on, wrapped in an entertaining package of explosions and overkill.
Not knowing the name of Adam Savage "the one without the beret" just proofs you've never watched it really.
Sure sometimes the science is not successfull, but then again most science isn't successfull. I know myself quite a few times when they failed to recreate the end result, does not mean they did bad science, but that they found out ways not to get something happen and that there's something not as clearly visible in play. They often do go back and try again when fans point out that they got to be wrong, so in effect they are the most reviewed scientists in this little rock called earth.
Just because it's entertaining doesn't mean it's not science.
That's just moronic to say "If you didn't goto uni to be a scientist, you can't do any science". Plenty of good science is done without any major degrees etc.
Infact, there are many with just high school under their belt or less that do science. Like it or not, but there is uneducated people doing research by the scientific method.
One of the first eps featured a diver who can lower his oxygen consumption insanely low. Also featured was a Finnish sauna competition champion, who was capable of managing his surface blood flow to the extreme (He got badly injured lately tho).
Sounds to me like you are describing the average coder in general, not just on this instance they were idiots:D
Also, can basic CRUD be made much simpler than it is, it's BASIC crud afterall:)
The most successfull DB work i've done was where 2/3 of the team were highly skilled DB admins. We did multiple very heavy data driven web applications, and got the insanely high amounts of data being handled really fast, but we did not use ANY stored procedures. Simply not seeing the value of a stored procedure making things more complicated (logic in DB, no thanks. Ever).
Tho, another project, we had customer complaining it was too slow and they hired a 3rd party "veteran DB administrator & optimizer" to help us. I spent like 20hrs compiling data to him, so that he could in the end say "Well, apart from adding this single index, i have no clue how to make it faster" to which i got to reply "That index does not help, we tried it and it was slower than using these indexes in every single test we threw at it". I did gather some knowledge on tracing performance characteristics from him tho.
I wonder "why it was slow", due to client initiated changes in hardware, we had only 2xDual quad xeons with 16Gb ram each to use for whole system, including frontend. So another server handled 100% DB, and another 20%/80% DB/Frontend, and our data set had few billion rows of highly relative complex data, including tons and tons of free form textual data to be searched. If i recall right DB + Indexes were around 20-24Gb in just our 1/8th sized testing data set. And the result why it was slow? Insane demands, not actual code, but the specifications required more than was practicable. We spent probably 150hrs optimizing, just to fall short 5% from the goal, when we could've simply added a single 4k eur node to increase capacity by almost 150% (Nehalem architecture was released).
I have pretty much the same experience about ORMs, tho my experience is far more limited.
But i somehow doubt it was just coincidence that the worst coder i've seen in my life is also the only coder i've seen using any ORM:)
My belief is that ORM is for newbs who cannot comprehend the data structures/query language, or both. Resulting in doubly evil end results. But yeah, it seems to be that for the most part it's insanely hard for people to make simple efficient code with sane abstraction levels, and not abstractions for the sake of abstraction.
to continue this trend, it would be a bye bye to security. Every single "hacker tool" is a 2 edged sword, it can be used for both good and bad. Just like almost anything can be used for good and bad. Should we ban knives because some people use them to hack'n'slice living meat (people) instead of dead?
Maybe we should just lock ourselves into soft rooms, there's the least likelyness for using anything for bad, and problem will soon be completely solved as we would die out as a race, no more people to do bad things with good tools!
Sorry, but you just can't talk bs and come back with "well i was meaning that". It would be like you saying "Every human should be killed" and then saying you meant "Every human should be apple fanboys". sentences not necessarily in that order.
Talk what you mean, not trash. (and what if all science would be written in your style of saying complete bollocks first?)
also burning wood, including their leaves, is roughly carbon neutral. The direct burning is completely neutral, it's the auxiliaries which makes it slightly off the totally neutral.
Yeah, you are missing couple things: This happened on the sea, and building that kind of a rocket would be extremely costly, especially for hobbyists and never mind that hobbyists probably know they have to get permission and inform about it...
and like someone said about canada, here too if you defend yourself and "win" the fight, you are likely goto jail. Defending yourself is kinda forbidden.
On the extreme one boxer got attacked, i think by multiple guys if i recall right, and he finally punched one of them which ended up in intensive care for quite a while from that single punch. That boxer was sentenced on attempted murder, and his knuckles were rated as lethal weapons.
But there is more regular, average joe things like that as well. Some of them get to the news. I've myself been prosecuted from attempted kill as a teenager. I was 16 at the time, and a 35yo over 2m, 130-150kg gorilla attacked me, a 180cm 80kg teenager. It did matter that he was almost 20years older than i am, and way larger. If he had not been as large i would have likely ended up in jail for defending myself. The court deemed that due to the difference in age, size, strength i were in my full right to use any means necessary and available. That guy however didn't get any fines or sentence, he got out completely unpunished, simply because i didn't get beaten up too badly, just bruising and punctured lower lip from my teeth (a scar remains to date)
We had weekly meetings, where you got questioned in front of the "team". Ofc it was on monday morning too. The funny thing is that i got always questioned the most and examined, while having multiple times more items on my list than anyone else, simply because i had an insane workload:O I hated those meetings, being still half asleep, already forgotten about last week and trying to figure out all the tasks i had last week
Also during development the coder might notice that something is 10x easier to do by doing slightly differently. Say filtering data sources, requirement specifies Direction X to Y to Z, but coder might notice it's better and easier to do X and Z to Y separately.
Or in case of a huge data set, it might be noticed that midway project it's better to do using Sphinx for search rather than MySQL Fulltext match performance wise. or that a certain feature is impractical to do at best, almost impossible at worst. ie. we had a waterfall methodology project where customer demanded something which is simply impossible to do with the chosen set of technologies. And it was only a single line item amidst hundreds.
I've also seen Waterfall and Agile colliding really badly. Company orientates to Agile, customer to Waterfall. Agile was seen as the best approach by customer as well after starting project, but at the end customer demands back to Waterfall by demanding all features in requirements to be done, after the provider has done A LOT of features outside the scope, in exchange for some in the initial requirements which were A) useless B) impractical.
Requirements will be clearer further in the development, when testing can take place, and ideas translate into tangibles. Meaning the end product is better suited for the task it's being developed for. Upfront savings can be done by less burden on initial design, no trying to figure out every little detail does it work or not, just start doing by general idea, and polish it.
All changes increase overhead, in waterfall methodology the costs just are FAR greater than in agile. Changes in waterfall methodology project are done in a continuum project, so the cost is hidden from current project. Waterfall designed software is less adaptable to real world requirements, and can at worst result in software complete unusable by target audience.
Agile is more like "These are our basic requirements, let's get cracking on it, and then get feedback later on"
that being said, what about "descriptive language"
ie.
create dialog with subject "foo" and text "bar", buttons "x", "y", "z". Map button X to Q, Y to W and Z to E
or more techie and easier to translate programmatically:
create dialog {
subject is "foo"
text is "bar"
button x maps to method Q
button y maps to method W
button z maps to method E }
now you see, we do this kind of thing all of the time, it's called abstraction, and it's tailored towards the coder, or project code guidelines with still having the "scent" of who made it. That translates to in real practical word: $thisDialogButtons = array( new dialogButton( array('x' => array('title'=>'something', 'callback' => 'class->methodQ').....
Of course multiline etc. That is a complex example, more abstracted would be something like:
while not being symbols, it is descriptive and meaning is revealed to reader immediately. Ofc, bad coders aren't able to do things this simple:( They will create something more like this:
and do it for all windows they create, worst of all if they use array_map, array_filter etc. recursive functions without commenting! If you are lucky, they also use archaic functions which has no place in modern day programming, such as array_push instead of $array[], array_insert, array pointers, no classes but global functions etc.!
But a skilled coder, does abstractions as needed and makes the actual business logic easily readable, sometimes even for non-techies to understand what's going on!
That's the power of descriptive programming. Keep It Simple, Stupid! That has the added power of doing just that: Keeping things simple, when done right.
Tho, many mediocre coders take this 5 steps too far and start to abstract trivial things like outputting a html form:
Username:
Password:
becomes something nightmarish like this: $loginForm = new htmlForm(
'title' => 'Login form',
'id' => 'loginForm',
'fields' => array(
'username' => new htmlFormField('text', 'Username'),
'password' => new htmlFormField('password', 'Password'),
'login' => new htmlFormSubmit('Login!')
),
'method' => new htmlFormMethod('post'),
'action' => array(
router::findPath( router::action::getSelf, true),
system::callback( system::actions::find('controller', 'loginAction')
),
'decorators' => array(
'line' => new htmlFormDecoratorCustom('
', '
'),
'lineItemsHeader' => new htmlFormDecoratorCustom('
')....
)
);
You catch the drift. This was done in similar fashion out of my head than how Zend Framework does. In ZF case the end result is that creating a simple login form took 6hrs, it took on modern Quad Core server with no other activity 1.5+ seconds to render, had to be cached with custom hard to create unique keys per session, and end result was TOTALLY mess
In other words you are saying that:
- Chinese traditional characters are fast to read, slow to type
- Which implies that using ASCII is fast to type, slow to read
I don't know how to read kanji or other asian traditional character sets, so i do not know personally how they compare, but from the sound of it, i drew right assumptions.
What if one could use ascii to describe the symbols.
Like typing: sin[space](x)[space] turned it into a symbol resembling sin(x)
space key would be what would tell when to do the conversion [space][space] would translate to actual space.
fast to type, fast to read. Of course, you'd have to learn two SYMBOL sets (ASCII is just symbols representing characters afterall), so still a downside
or maybe we should just build sane cars. A early 80's model Nissan Cherry does ~5.5L/100Km (~47mpg), and it's a carburated engine.
A early 80's 1.3 carburated corolla does ~5l/100km. (RWD so less efficient to start with) (50mpg). With good condition engine, and precisely tuned it can go as low as 4L/100km, or 62mpg.
A modified early 80's corolla with a high tuned 1.6 twincam engine does 6-6.5l/100km. (40+mpg, RWD)
A 80s Nissan Bluebird 2.0 does about 7-8L/100km with a carburated engine in weakish condition.
A early 80's 1.6 corolla with twincarbs gets 8-9l/100km, and that kind of engine is known to have high consumption (bad tuning often, sometimes due how it's being used)
late 80s, early 90s BWM 316i can get also under 7l/100km.
Skoda Felicia late 80s (i think) can get 60mpg (diesel tho)
Renault Clio mid 80s can do ~4l/100km (60mpg) as well.
Peugeot 205 mid 80s can do about 45mpg or better.
First BMW M3 if i recall right does also about 7-9L/100km depending is it city or highway.
These are all based on personal experiences, not some marketing material or other bullshit. Some with multiple same type cars.
New hybrid is dirtier than driving your 50s buick until it breaks down too bad, even with the 10mpg, due to the costs related in building that car in the first place.
lol NiMH, yeaaaaah right.
The battery you usually have in a car is a NiMH, when is the last time you tried to lift it?
They usually weight 12 to 18kg for a 12V 60Ah battery, which probably cannot give out more than 30A without significant drop in voltage. Even the best ones (those which costs close to 10x of cheapo) can only give out around 65A sustained. There might exist NiMH car batteries which use other than 10S1P (10 serial, 1 parallel) cells, which can give out higher amperage sustained.
At 65A sustained without significant drop you get only 780W, so to get the required 78kW roughly for a regular modern sedan you need 100 of those, weighting 1200 to 1800kg. These being high quality probably costing 200e a piece would mean the batteries would cost 20 000euros, and because of their weight you need to make way larger car and probably triple up the output to come even close to same performance as gasoline car. You end up with a truck with a affordably priced sedan performance. They also need to be cooled, NiMh is very low efficiency battery and heats excruciatingly when high output is drawn (i've burn my fingers a few times when they got too hot)
Of course, more advanced NiMH and NiCD batteries DO exist, but they are prohibitively expensive, easily costing 20euros per a cell of 2-6Ah.
LiPo would be optimal for cars if it would not be for the volatility of them and they cannot function properly at cold temperatures (under 10C you loose output dramatically).
LiFe4 is rather new battery technology which looks promising for some applications.
LiIon is most likely candidate and this is what Tesla uses, and they use 11S 9S 69P setup for a total of 6831 cells to get the performance, and even with that setup the draw is so big that the batteries need to be cooled! And you know what heat is? It's loss in efficiency. NiMh would be just about 50x worse in this.
Even the tesla only stored 53kWh, and the batteries weigh in 450kg. Now imagine NiMH! LiIon has 100-250Wh/kg and NiMh has 30-80Wh/kg.
LiIon has also better cycle durability and lower self discharge rate. Downside in LiIon is that it's peak power output is quite low compared to other technologies (NiMh has higher). which is easy to counteract with smaller cells but more of them.
Li-Ion is not even particularly that good, if they can solve the LiPo problems things get interesting with 130-200Wh/kg but maximum power output (amperage) upto 7.1 times the next best.
Neither Li-Ion and LiPo seems to suffer from drastical voltage drop-off due to high draw.
Also afaik there is LiPo packs already in market which can do higher than 200Wh/kg.
LiIon is so widely used, thus cheapest to manufacture that using Li-Ion is a no brainer.
and let's not forget that Diesel is actually way more costly fuel than gasoline, if it would not be tax subsidized so often. Also diesel is A LOT dirtier, and part of the high premium comes from the things they do to get emissions down. Not only is diesel emissions by nature higher, but the emissions are also more dangerous, higher output of more dangerous particles.
Diesel is near regular car performance nowadays, but only because they are so highly tuned, basicly a diesel without a turbo is useless. Diesel requires turbo just to reach the gasoline naturally aspirated engine performance characteristics. That's also why you usually see bigger diesel engines for a model than gasoline.
Only thing where diesel is good for is torque. Sometimes this benefit is utilized and you get cars with consumption of 4L/100km of diesel or even less, translating to some epicly cheaper driving.
yeah with probably new drivetrain as it's tesla drivetrain...
1U servers lack space for enough HDDs very often, only 3x3½" can ultimately be had. I haven't seen 4x2½" cases neither.
Just proofs he was a genius.
Pretty much all geniuses are more less crazy/insane/loco, simply quirked or otherwise odd in the bunch to the degree that a psychologist might say they have some kind of mental problems.
That's the price you pay for being genius, you perceive the world differently and therefore people think you are crazy (even if not) simply because they cannot comprehend your ideas and that leads to even more quirked nature. Sometimes you just need to be a bit crazy to be genius (to see the non-obvious)
Sounds to me like you haven't watched Mythbusters really at all.
There's actually a shitload of science going on, wrapped in an entertaining package of explosions and overkill.
Not knowing the name of Adam Savage "the one without the beret" just proofs you've never watched it really.
Sure sometimes the science is not successfull, but then again most science isn't successfull. I know myself quite a few times when they failed to recreate the end result, does not mean they did bad science, but that they found out ways not to get something happen and that there's something not as clearly visible in play. They often do go back and try again when fans point out that they got to be wrong, so in effect they are the most reviewed scientists in this little rock called earth.
Just because it's entertaining doesn't mean it's not science.
Who said you got to STUDY to be a scientist? ...
That's just moronic to say "If you didn't goto uni to be a scientist, you can't do any science". Plenty of good science is done without any major degrees etc.
Infact, there are many with just high school under their belt or less that do science. Like it or not, but there is uneducated people doing research by the scientific method.
or watch Stan Lee's superhumans.
One of the first eps featured a diver who can lower his oxygen consumption insanely low. Also featured was a Finnish sauna competition champion, who was capable of managing his surface blood flow to the extreme (He got badly injured lately tho).
Sounds to me like you are describing the average coder in general, not just on this instance they were idiots :D
Also, can basic CRUD be made much simpler than it is, it's BASIC crud afterall :)
The most successfull DB work i've done was where 2/3 of the team were highly skilled DB admins. We did multiple very heavy data driven web applications, and got the insanely high amounts of data being handled really fast, but we did not use ANY stored procedures. Simply not seeing the value of a stored procedure making things more complicated (logic in DB, no thanks. Ever).
Tho, another project, we had customer complaining it was too slow and they hired a 3rd party "veteran DB administrator & optimizer" to help us. I spent like 20hrs compiling data to him, so that he could in the end say "Well, apart from adding this single index, i have no clue how to make it faster" to which i got to reply "That index does not help, we tried it and it was slower than using these indexes in every single test we threw at it". I did gather some knowledge on tracing performance characteristics from him tho.
I wonder "why it was slow", due to client initiated changes in hardware, we had only 2xDual quad xeons with 16Gb ram each to use for whole system, including frontend. So another server handled 100% DB, and another 20%/80% DB/Frontend, and our data set had few billion rows of highly relative complex data, including tons and tons of free form textual data to be searched. If i recall right DB + Indexes were around 20-24Gb in just our 1/8th sized testing data set.
And the result why it was slow? Insane demands, not actual code, but the specifications required more than was practicable. We spent probably 150hrs optimizing, just to fall short 5% from the goal, when we could've simply added a single 4k eur node to increase capacity by almost 150% (Nehalem architecture was released).
I have pretty much the same experience about ORMs, tho my experience is far more limited.
But i somehow doubt it was just coincidence that the worst coder i've seen in my life is also the only coder i've seen using any ORM :)
My belief is that ORM is for newbs who cannot comprehend the data structures/query language, or both. Resulting in doubly evil end results. But yeah, it seems to be that for the most part it's insanely hard for people to make simple efficient code with sane abstraction levels, and not abstractions for the sake of abstraction.
ORM is anything but efficient.
Also, my experience of ORM so far it is for Newbs who cannot comprehend the data structures by themselves, making it doubly inefficient.
Well, maybe one day i'll see a good example where it actually is efficient and powerfull :)
to continue this trend, it would be a bye bye to security. Every single "hacker tool" is a 2 edged sword, it can be used for both good and bad. Just like almost anything can be used for good and bad. Should we ban knives because some people use them to hack'n'slice living meat (people) instead of dead?
Maybe we should just lock ourselves into soft rooms, there's the least likelyness for using anything for bad, and problem will soon be completely solved as we would die out as a race, no more people to do bad things with good tools!
Oh, there is a difference between power lines, residential and .... ? ;)
and here i thought all those big transmission wires were using the same voltage... Just for simplicity's sake ;)
then say a transformer and not inverter.
Sorry, but you just can't talk bs and come back with "well i was meaning that". It would be like you saying "Every human should be killed" and then saying you meant "Every human should be apple fanboys". sentences not necessarily in that order.
Talk what you mean, not trash. (and what if all science would be written in your style of saying complete bollocks first?)
also burning wood, including their leaves, is roughly carbon neutral. The direct burning is completely neutral, it's the auxiliaries which makes it slightly off the totally neutral.
Yeah, you are missing couple things: This happened on the sea, and building that kind of a rocket would be extremely costly, especially for hobbyists and never mind that hobbyists probably know they have to get permission and inform about it ...
Sounds like april fools joke.
and like someone said about canada, here too if you defend yourself and "win" the fight, you are likely goto jail. Defending yourself is kinda forbidden.
On the extreme one boxer got attacked, i think by multiple guys if i recall right, and he finally punched one of them which ended up in intensive care for quite a while from that single punch. That boxer was sentenced on attempted murder, and his knuckles were rated as lethal weapons.
But there is more regular, average joe things like that as well. Some of them get to the news. I've myself been prosecuted from attempted kill as a teenager. I was 16 at the time, and a 35yo over 2m, 130-150kg gorilla attacked me, a 180cm 80kg teenager. It did matter that he was almost 20years older than i am, and way larger. If he had not been as large i would have likely ended up in jail for defending myself. The court deemed that due to the difference in age, size, strength i were in my full right to use any means necessary and available. That guy however didn't get any fines or sentence, he got out completely unpunished, simply because i didn't get beaten up too badly, just bruising and punctured lower lip from my teeth (a scar remains to date)
wow, that's bad!
We had weekly meetings, where you got questioned in front of the "team". Ofc it was on monday morning too. The funny thing is that i got always questioned the most and examined, while having multiple times more items on my list than anyone else, simply because i had an insane workload :O I hated those meetings, being still half asleep, already forgotten about last week and trying to figure out all the tasks i had last week
The other reply is exactly correct, it wasn't agile development.
Agile development is EXACTLY about allowing agile changes in how & what are being done, including who is doing what, or other practices.
Basicly that company management were über stupid, nothing to do with agile, just idiots running a company.
Also during development the coder might notice that something is 10x easier to do by doing slightly differently. Say filtering data sources, requirement specifies Direction X to Y to Z, but coder might notice it's better and easier to do X and Z to Y separately.
Or in case of a huge data set, it might be noticed that midway project it's better to do using Sphinx for search rather than MySQL Fulltext match performance wise. or that a certain feature is impractical to do at best, almost impossible at worst. ie. we had a waterfall methodology project where customer demanded something which is simply impossible to do with the chosen set of technologies. And it was only a single line item amidst hundreds.
I've also seen Waterfall and Agile colliding really badly. Company orientates to Agile, customer to Waterfall. Agile was seen as the best approach by customer as well after starting project, but at the end customer demands back to Waterfall by demanding all features in requirements to be done, after the provider has done A LOT of features outside the scope, in exchange for some in the initial requirements which were A) useless B) impractical.
No, you are simply getting it wrong.
Requirements will be clearer further in the development, when testing can take place, and ideas translate into tangibles. Meaning the end product is better suited for the task it's being developed for. Upfront savings can be done by less burden on initial design, no trying to figure out every little detail does it work or not, just start doing by general idea, and polish it.
All changes increase overhead, in waterfall methodology the costs just are FAR greater than in agile. Changes in waterfall methodology project are done in a continuum project, so the cost is hidden from current project. Waterfall designed software is less adaptable to real world requirements, and can at worst result in software complete unusable by target audience.
Agile is more like "These are our basic requirements, let's get cracking on it, and then get feedback later on"
that being said, what about "descriptive language"
ie.
create dialog with subject "foo" and text "bar", buttons "x", "y", "z".
Map button X to Q, Y to W and Z to E
or more techie and easier to translate programmatically:
create dialog {
subject is "foo"
text is "bar"
button x maps to method Q
button y maps to method W
button z maps to method E
}
now you see, we do this kind of thing all of the time, it's called abstraction, and it's tailored towards the coder, or project code guidelines with still having the "scent" of who made it. That translates to in real practical word:
.....
$thisDialogButtons = array( new dialogButton( array('x' => array('title'=>'something', 'callback' => 'class->methodQ')
Of course multiline etc. That is a complex example, more abstracted would be something like:
$dialog = new dialogWindow(
array(
'subject' => 'foo',
'text' => 'bar'
'buttons' => array(
'x' => '$someClass->Q',
'y' => '$someClass->Y',
'z' => '$someClass->Z'
)
));
while not being symbols, it is descriptive and meaning is revealed to reader immediately. Ofc, bad coders aren't able to do things this simple :( They will create something more like this:
$id = system->createDialog();
system->elements->changeContent ( system->elements->findTitle( system->dialogs->find($id) ), 'foo');
and do it for all windows they create, worst of all if they use array_map, array_filter etc. recursive functions without commenting! If you are lucky, they also use archaic functions which has no place in modern day programming, such as array_push instead of $array[], array_insert, array pointers, no classes but global functions etc.!
But a skilled coder, does abstractions as needed and makes the actual business logic easily readable, sometimes even for non-techies to understand what's going on!
That's the power of descriptive programming. Keep It Simple, Stupid! That has the added power of doing just that: Keeping things simple, when done right.
Tho, many mediocre coders take this 5 steps too far and start to abstract trivial things like outputting a html form:
becomes something nightmarish like this:
$loginForm = new htmlForm(
'title' => 'Login form',
'id' => 'loginForm',
'fields' => array(
'username' => new htmlFormField('text', 'Username'),
'password' => new htmlFormField('password', 'Password'),
'login' => new htmlFormSubmit('Login!')
),
'method' => new htmlFormMethod('post'),
'action' => array(
router::findPath( router::action::getSelf, true),
system::callback( system::actions::find('controller', 'loginAction')
),
'decorators' => array(
'line' => new htmlFormDecoratorCustom('
', '
'),
'lineItemsHeader' => new htmlFormDecoratorCustom('
)
);
You catch the drift. This was done in similar fashion out of my head than how Zend Framework does. In ZF case the end result is that creating a simple login form took 6hrs, it took on modern Quad Core server with no other activity 1.5+ seconds to render, had to be cached with custom hard to create unique keys per session, and end result was TOTALLY mess
In other words you are saying that:
- Chinese traditional characters are fast to read, slow to type
- Which implies that using ASCII is fast to type, slow to read
I don't know how to read kanji or other asian traditional character sets, so i do not know personally how they compare, but from the sound of it, i drew right assumptions.
What if one could use ascii to describe the symbols.
Like typing:
sin[space](x)[space]
turned it into a symbol resembling sin(x)
space key would be what would tell when to do the conversion [space][space] would translate to actual space.
fast to type, fast to read.
Of course, you'd have to learn two SYMBOL sets (ASCII is just symbols representing characters afterall), so still a downside
Just food for thought....
service provider which providers services in the internet .... hmmph... Call this quite a leap, but doesn't that mane an internet service provider? ;)
(Yes i know, most people think ISP means those which provides your broadband only ...)