![]() |
|
Working my way backwards, this business about segmenting? It pisses the heck off of people. People want to feel they're paying a fair price. They don't want to think they're paying extra just because they're not clever enough to find the magic coupon code. The airline industry got really, really good at segmenting and ended up charging literally a different price to every single person on the plane. As a result most people felt they weren't getting the best deal, and they didn't like the airlines. When a new alternative arose in the form of low cost carriers (Southwest, jetBlue, etc.) customers had no loyalty whatsover to the legacy airlines that had been trying to pick their pockets for all those years.
Morgan Conrad asked: "What is Testivus' wisdom concerning the proper percentage of test coverage?"
Here you go Morgan.
Early one morning, a programmer asked the great master:
“I am ready to write some unit tests. What code coverage should I aim for?”
The great master replied:
“Don’t worry about coverage, just write some good tests.”
The programmer smiled, bowed, and left.
...
Later that day, a second programmer asked the same question.
The great master pointed at a pot of boiling water and said:
“How many grains of rice should put in that pot?”
The programmer, looking puzzled, replied:
“How can I possibly tell you? It depends on how many people you need to feed, how hungry they are, what other food you are serving, how much rice you have available, and so on.”
“Exactly,” said the great master.
The second programmer smiled, bowed, and left.
...
Toward the end of the day, a third programmer came and asked the same question about code coverage.
“Eighty percent and no less!” Replied the master in a stern voice, pounding his fist on the table.
The third programmer smiled, bowed, and left.
...
After this last reply, a young apprentice approached the great master:
“Great master, today I overheard you answer the same question about code coverage with three different answers. Why?”
The great master stood up from his chair:
“Come get some fresh tea with me and let’s talk about it.”
After they filled their cups with smoking hot green tea, the great master began to answer:
“The first programmer is new and just getting started with testing. Right now he has a lot of code and no tests. He has a long way to go; focusing on code coverage at this time would be depressing and quite useless. He’s better off just getting used to writing and running some tests. He can worry about coverage later.”
“The second programmer, on the other hand, is quite experience both at programming and testing. When I replied by asking her how many grains of rice I should put in a pot, I helped her realize that the amount of testing necessary depends on a number of factors, and she knows those factors better than I do – it’s her code after all. There is no single, simple, answer, and she’s smart enough to handle the truth and work with that.”
“I see,” said the young apprentice, “but if there is no single simple answer, then why did you answer the third programmer ‘Eighty percent and no less’?”
The great master laughed so hard and loud that his belly, evidence that he drank more than just green tea, flopped up and down.
“The third programmer wants only simple answers – even when there are no simple answers … and then does not follow them anyway.”
The young apprentice and the grizzled great master finished drinking their tea in contemplative silence.
Blogger is a famous example of a startup that went through really
low lows and survived. At one point they ran out of money and
everyone left. Evan Williams came in to work the next day, and there
was no one but him. What kept him going? Partly that users needed
him. He was hosting thousands of people's blogs. He couldn't just
let the site die.
During this time you'll do little but work, because when you're not
working, your competitors will be. My only leisure activities were
running, which I needed to do to keep working anyway, and about
fifteen minutes of reading a night. I had a girlfriend for a total
of two months during that three year period. Every couple weeks I
would take a few hours off to visit a used bookshop or go to a
friend's house for dinner. I went to visit my family twice.
Otherwise I just worked.
The competitors Google buried would have done better to spend those
millions improving their software. Future startups should learn
from that mistake. Unless you're in a market where products are
as undifferentiated as cigarettes or vodka or laundry detergent,
spending a lot on brand advertising is a sign of breakage.
The most important is that you should put users before
advertisers, even though the advertisers are paying and users aren't
What matters is not ideas, but the people who have them. Good
people can fix bad ideas, but good ideas can't save bad people.
And what I discovered was that business
was no great mystery. It's not something like physics or medicine
that requires extensive study. You just try to get people to pay
you for stuff.
Restaurants with great food seem to prosper no matter what. A
restaurant with great food can be expensive, crowded, noisy, dingy,
out of the way, and even have bad service, and people will keep
coming. It's true that a restaurant with mediocre food can sometimes
attract customers through gimmicks. But that approach is very
risky. It's more straightforward just to make the food good.
n a startup, your initial plans are almost certain to be wrong in
some way, and your first priority should be to figure out where.
The only way to do that is to try implementing them.


Want to start a startup? YC applications due
Oct 17.
 |
March 2005
(This essay is derived from a talk at the Harvard Computer
Society.)
You need three things to create a successful startup: to start with
good people, to make something customers actually want, and to spend
as little money as possible. Most startups that fail do it because
they fail at one of these. A startup that does all three will
probably succeed.
And that's kind of exciting, when you think about it, because all
three are doable. Hard, but doable. And since a startup that
succeeds ordinarily makes its founders rich, that implies getting
rich is doable too. Hard, but doable.
If there is one message I'd like to get across about startups,
that's it. There is no magically difficult step that requires
brilliance to solve.
The Idea
In particular, you don't need a brilliant
idea to start a startup
around. The way a startup makes money is to offer people better
technology than they have now. But what people have now is often
so bad that it doesn't take brilliance to do better.
Google's plan, for example, was simply to create a search site that
didn't suck. They had three new ideas: index more of the Web, use
links to rank search results, and have clean, simple web pages with
unintrusive keyword-based ads. Above all, they were determined to
make a site that was good to use. No doubt there are great technical
tricks within Google, but the overall plan was straightforward.
And while they probably have bigger ambitions now, this alone brings
them a billion dollars a year. [1]
There are plenty of other areas that are just as backward as search
was before Google. I can think of several heuristics for generating
ideas for startups, but most reduce to this: look at something
people are trying to do, and figure out how to do it in a way that
doesn't suck.
For example, dating sites currently suck far worse than search did
before Google. They all use the same simple-minded model.
They seem to have approached the problem by thinking about how to
do database matches instead of how dating works in the real world.
An undergrad could build something better as a class project. And
yet there's a lot of money at stake. Online dating is a valuable
business now, and it might be worth a hundred times as much if it
worked.
An idea for a startup, however, is only a beginning. A lot of
would-be startup founders think the key to the whole process is the
initial idea, and from that point all you have to do is execute.
Venture capitalists know better. If you go to VC firms with a
brilliant idea that you'll tell them about if they sign a nondisclosure
agreement, most will tell you to get lost. That shows how much a
mere idea is worth. The market price is less than the inconvenience
of signing an NDA.
Another sign of how little the initial idea is worth is the number
of startups that change their plan en route. Microsoft's original
plan was to make money selling programming languages, of all things.
Their current business model didn't occur to them until IBM dropped
it in their lap five years later.
Ideas for startups are worth something, certainly, but the trouble
is, they're not transferrable. They're not something you could
hand to someone else to execute. Their value is mainly as starting
points: as questions for the people who had them to continue thinking
about.
What matters is not ideas, but the people who have them. Good
people can fix bad ideas, but good ideas can't save bad people.
People
What do I mean by good people? One of the best tricks I learned
during our startup was a rule for deciding
who to hire. Could you
describe the person as an animal? It might be hard to translate
that into another language, but I think everyone in the US knows
what it means. It means someone who takes their work a little too
seriously; someone who does what they do so well that they pass
right through professional and cross over into obsessive.
What it means specifically depends on the job: a salesperson who
just won't take no for an answer; a hacker who will stay up till
4:00 AM rather than go to bed leaving code with a bug in it; a PR
person who will cold-call New York Times reporters on their cell
phones; a graphic designer who feels physical pain when something
is two millimeters out of place.
Almost everyone who worked for us was an animal at what they did.
The woman in charge of sales was so tenacious that I used to feel
sorry for potential customers on the phone with her. You could
sense them squirming on the hook, but you knew there would be no
rest for them till they'd signed up.
If you think about people you know, you'll find the animal test is
easy to apply. Call the person's image to mind and imagine the
sentence "so-and-so is an animal." If you laugh, they're not. You
don't need or perhaps even want this quality in big companies, but
you need it in a startup.
For programmers we had three additional tests. Was the person
genuinely smart? If so, could they actually get things done? And
finally, since a few good hackers have unbearable personalities,
could we stand to have them around?
That last test filters out surprisingly few people. We could bear
any amount of nerdiness if someone was truly smart. What we couldn't
stand were people with a lot of attitude. But most of those weren't
truly smart, so our third test was largely a restatement of the
first.
When nerds are unbearable it's usually because they're trying too
hard to seem smart. But the smarter they are, the less pressure
they feel to act smart. So as a rule you can recognize genuinely
smart people by their ability to say things like "I don't know,"
"Maybe you're right," and "I don't understand x well enough."
This technique doesn't always work, because people can be influenced
by their environment. In the MIT CS department, there seems to be
a tradition of acting like a brusque know-it-all. I'm told it derives
ultimately from Marvin Minsky, in the same way the classic airline
pilot manner is said to derive from Chuck Yeager. Even genuinely
smart people start to act this way there, so you have to make
allowances.
It helped us to have Robert Morris, who is one of the readiest to
say "I don't know" of anyone I've met. (At least, he was before he
became a professor at MIT.) No one dared put on attitude around
Robert, because he was obviously smarter than they were and yet had
zero attitude himself.
Like most startups, ours began with a group of friends, and it was
through personal contacts that we got most of the people we hired.
This is a crucial difference between startups and big companies.
Being friends with someone for even a couple days will tell you
more than companies could ever learn in interviews. [2]
It's no coincidence that startups start around universities, because
that's where smart people meet. It's not what people learn in
classes at MIT and Stanford that has made technology companies
spring up around them. They could sing campfire songs in the classes
so long as admissions worked the same.
If you start a startup, there's a good chance it will be with people
you know from college or grad school. So in theory you ought to
try to make friends with as many smart people as you can in school,
right? Well, no. Don't make a conscious effort to schmooze; that
doesn't work well with hackers.
What you should do in college is work on your own projects. Hackers
should do this even if they don't plan to start startups, because
it's the only real way to learn how to program. In some cases you
may collaborate with other students, and this is the best way to
get to know good hackers. The project may even grow into a startup.
But once again, I wouldn't aim too directly at either target. Don't
force things; just work on stuff you like with people you like.
Ideally you want between two and four founders. It would be hard
to start with just one. One person would find the moral weight of
starting a company hard to bear. Even Bill Gates, who seems to be
able to bear a good deal of moral weight, had to have a co-founder.
But you don't want so many founders that the company starts to look
like a group photo. Partly because you don't need a lot of people
at first, but mainly because the more founders you have, the worse
disagreements you'll have. When there are just two or three founders,
you know you have to resolve disputes immediately or perish. If
there are seven or eight, disagreements can linger and harden into
factions. You don't want mere voting; you need unanimity.
In a technology startup, which most startups are, the founders
should include technical people. During the Internet Bubble there
were a number of startups founded by business people who then went
looking for hackers to create their product for them. This doesn't
work well. Business people are bad at deciding what to do with
technology, because they don't know what the options are, or which
kinds of problems are hard and which are easy. And when business
people try to hire hackers, they can't tell which ones are
good.
Even other hackers have a hard time doing that.
For business people it's roulette.
Do the founders of a startup have to include business people? That
depends. We thought so when we started ours, and we asked several
people who were said to know about this mysterious thing called
"business" if they would be the president. But they all said no,
so I had to do it myself. And what I discovered was that business
was no great mystery. It's not something like physics or medicine
that requires extensive study. You just try to get people to pay
you for stuff.
I think the reason I made such a mystery of business was that I was
disgusted by the idea of doing it. I wanted to work in the pure,
intellectual world of software, not deal with customers' mundane
problems. People who don't want to get dragged into some kind of
work often develop a protective incompetence at it. Paul Erdos was
particularly good at this. By seeming unable even to cut a grapefruit
in half (let alone go to the store and buy one), he forced other
people to do such things for him, leaving all his time free for
math. Erdos was an extreme case, but most husbands use the same
trick to some degree.
Once I was forced to discard my protective incompetence, I found
that business was neither so hard nor so boring as I feared. There
are esoteric areas of business that are quite hard, like tax law
or the pricing of derivatives, but you don't need to know about
those in a startup. All you need to know about business to run a
startup are commonsense things people knew before there were business
schools, or even universities.
If you work your way down the Forbes 400 making an x next to the
name of each person with an MBA, you'll learn something important
about business school. You don't even hit an MBA till number 22,
Phil Knight, the CEO of Nike. There are only four MBAs in the top
50. What you notice in the Forbes 400 are a lot of people with
technical backgrounds. Bill Gates, Steve Jobs, Larry Ellison,
Michael Dell, Jeff Bezos, Gordon Moore. The rulers of the technology
business tend to come from technology, not business. So if you
want to invest two years in something that will help you succeed
in business, the evidence suggests you'd do better to learn how to
hack than get an MBA. [3]
There is one reason you might want to include business people in a
startup, though: because you have to have at least one person willing
and able to focus on what customers want. Some believe only business
people can do this-- that hackers can implement software, but not
design it. That's nonsense. There's nothing about knowing how to
program that prevents hackers from understanding users, or about
not knowing how to program that magically enables business people
to understand them.
If you can't understand users, however, you should either learn how
or find a co-founder who can. That is the single most important
issue for technology startups, and the rock that sinks more of them
than anything else.
What Customers Want
It's not just startups that have to worry about this. I think most
businesses that fail do it because they don't give customers what
they want. Look at restaurants. A large percentage fail, about a
quarter in the first year. But can you think of one restaurant
that had really good food and went out of business?
Restaurants with great food seem to prosper no matter what. A
restaurant with great food can be expensive, crowded, noisy, dingy,
out of the way, and even have bad service, and people will keep
coming. It's true that a restaurant with mediocre food can sometimes
attract customers through gimmicks. But that approach is very
risky. It's more straightforward just to make the food good.
It's the same with technology. You hear all kinds of reasons why
startups fail. But can you think of one that had a massively popular
product and still failed?
In nearly every failed startup, the real problem was that customers
didn't want the product. For most, the cause of death is listed
as "ran out of funding," but that's only the immediate cause. Why
couldn't they get more funding? Probably because the product was
a dog, or never seemed likely to be done, or both.
When I was trying to think of the things every startup needed to
do, I almost included a fourth: get a version 1 out as soon as you
can. But I decided not to, because that's implicit in making
something customers want. The only way to make something customers
want is to get a prototype in front of them and refine it based on
their reactions.
The other approach is what I call the "Hail Mary" strategy. You
make elaborate plans for a product, hire a team of engineers to
develop it (people who do this tend to use the term "engineer" for
hackers), and then find after a year that you've spent two million
dollars to develop something no one wants. This was not uncommon
during the Bubble, especially in companies run by business types,
who thought of software development as something terrifying that
therefore had to be carefully planned.
We never even considered that approach. As a Lisp hacker, I come
from the tradition of rapid prototyping. I would not claim (at
least, not here) that this is the right way to write every program,
but it's certainly the right way to write software for a startup.
In a startup, your initial plans are almost certain to be wrong in
some way, and your first priority should be to figure out where.
The only way to do that is to try implementing them.
Like most startups, we changed our plan on the fly. At first we
expected our customers to be Web consultants. But it turned out
they didn't like us, because our software was easy to use and we hosted
the site. It would be too easy for clients to fire them. We also
thought we'd be able to sign up a lot of catalog companies, because
selling online was a natural extension of their existing business.
But in 1996 that was a hard sell. The middle managers we talked
to at catalog companies saw the Web not as an opportunity, but as
something that meant more work for them.
We did get a few of the more adventurous catalog companies. Among
them was Frederick's of Hollywood, which gave us valuable experience
dealing with heavy loads on our servers. But most of our users
were small, individual merchants who saw the Web as an opportunity
to build a business. Some had retail stores, but many only existed
online. And so we changed direction to focus on these users.
Instead of concentrating on the features Web consultants and catalog
companies would want, we worked to make the software easy to use.
I learned something valuable from that. It's worth trying very,
very hard to make technology easy to use. |
|
Corollary: Avoid starting a startup to sell things to the biggest
company of all, the government. Yes, there are lots of opportunities
to sell them technology. But let someone else start those startups.
Bizim halkımızın yazması veya konuşması için kızması gerekir
When you have a hammer, all problems start to look like nails.
Essentially, if the SaveUser method isn't able to save the user, it should throw an exception.
Generally speaking, I find it easy to decide what should and shouldn't throw an exception. I generally ask myself questions like: Is this exceptional, Is this expected, Can I continue doing something meaningful at this point and Is this something I should be made aware of so I can f ix it, or at least give it a second look
İnternet Teknolojileri Derneği Başkanı: ''internet yasası ifade özgürlüğüyle bağdaşmıyor''
Bilkent
Üniversitesi Endüstri Mühendisliği Öğretim görevlisi ve İnternet
Teknolojileri Derneği Başkanı Doç. Dr. Mustafa Akgül, Meclis’te
görüşülen internet yasası tasarısının ifade özgürlüğüyle
bağdaşmayacağını söyledi. Akgül, devletin vatandaşlar adına zararlı
içeriği belirlemesinin internetin gelişimine zarar vereceğini savundu...
FM Yorum : Biri ifade ozgurlugu mu dedi? Saka gibi. bizim anlayamadigimiz sorunun internetten buyuk oldugu, ama biz internetciler olarak sadece kendi kicimizi kollamaya calisiyoruz. o da bir sey tabii, hakkini yememek lazim.
One solution is to stoke fear. Fear is a primal emotion, far older
than our ability to calculate trade-offs. And when people are truly
scared, they're willing to do almost anything to make that feeling go
away; lots of other psychological research supports that. Any burglar
alarm salesman will tell you that people buy only after they've been
robbed, or after one of their neighbors has been robbed. And the fears
stoked by 9/11, and the politics surrounding 9/11, have fueled an
entire industry devoted to counterterrorism. When emotion takes over
like that, people are much less likely to think rationally.
Though effective, fear mongering is not very ethical. The better
solution is not to sell security directly, but to include it as part of
a more general product or service. Your car comes with safety and
security features built in; they're not sold separately. Same with your
house. And it should be the same with computers and networks. Vendors
need to build security into the products and services that customers
actually want. CIOs should include security as an integral part of
everything they budget for. Security shouldn't be a separate policy for
employees to follow but part of overall IT policy.
Security sellers know this, even if they don't understand why, and are
continually trying to frame their products in positive results. That's
why you see slogans with the basic message, "We take care of security
so you can focus on your business," or carefully crafted ROI models
that demonstrate how profitable a security purchase can be. But these
never seem to work. Security is fundamentally a negative sell.
But Kahneman's and Tversky's experiments contradicted Utility Theory.
When faced with a gain, about 85 percent of people chose the sure
smaller gain over the risky larger gain. But when faced with a loss,
about 70 percent chose the risky larger loss over the sure smaller loss.
... Lions, for example, chase young or wounded wildebeests because the
investment needed to kill them is lower. Mature and healthy prey would
probably be more nutritious, but there's a risk of missing lunch
entirely if it gets away.
OWASP Validation Library <?xml version="1.0"?> <regex> <name>url</name> <pattern>^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,]blank:)?$</pattern> <description></description> </regex> <regex> <name>email</name> <pattern>^[\w\-\+\&\*]+(?:\.[\w\-\_\+\&\*]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$</pattern> <description></description> </regex> <regex> <name>safetext</name> <pattern>^[a-zA-Z0-9\s.\-]+$</pattern> <description>Lower and upper case letters and all digits</description> </regex> <regex> <name>digitwords</name> <pattern>^(zero|one|two|three|four|five|six|seven|eight|nine)$</pattern> <description>The English words representing the digits 0 to 9</description> </regex> <regex> <name>zip</name> <pattern>^\d{5}(-\d{4})?$</pattern> <description>US zip code with optional dash-four</description> </regex> <regex> <name>phone</name> <pattern>^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$</pattern> <description>US phone number with or without dashes</description> </regex> <regex> <name>state</name> <pattern>^(AE|AL|AK|AP|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MP|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY)$</pattern> <description>Two letter state abbreviations</description> </regex> <regex> <name>date</name> <pattern>^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$</pattern> <description>Date in US format with support for leap years</description> </regex> <regex> <name>creditcard</name> <pattern>^((4\d{3})|(5[1-5]\d{2})|(6011)|(7\d{3}))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$</pattern> <description></description> </regex> <regex> <name>password</name> <pattern>^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$</pattern> <description>4 to 8 character password requiring numbers, lowercase letters, and uppercase letters</description> </regex> <regex> <name>ssn</name> <pattern>^\d{3}-\d{2}-\d{4}$</pattern> <description>9 digit social security number with dashes</description> </regex> <regex> <name>monthwords</name> <pattern>^(Jan|Feb|Mar|Apr|May|Jun|Jul|Apr|Sep|Oct|Nov|Dec)$</pattern> <description>3 character abbreviations for the months</description> </regex> <!— Some additional examples that have not been vetted // HTML HEX CODE ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$ // FLOATING POINT ^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$ // PERSON NAME ^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$ // MAC ADDRESS ^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$ // GUID ^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$ // IP ADDRESS ^\b((25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]\d\d|\d?\d)\b$ // REASONABLE DOMAIN NAME ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$ // RFC 1918 NON ROUTABLE IP ^(((25[0-5]|2[0-4][0-9]|19[0-1]|19[3-9]|18[0-9]|17[0-1]|17[3-9]|1[0-6][0-9]|1[1-9]|[2-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]))|(192\.(25[0-5]|2[0-4][0-9]|16[0-7]|169|1[0-5][0-9]|1[7-9][0-9]|[1-9][0-9]|[0-9]))|(172\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|1[0-5]|3[2-9]|[4-9][0-9]|[0-9])))\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$ // VALID WINDOWS FILENAME ^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$ // Java Classname ^(([a-z])+.)+[A-Z]([a-z])+$ // ANY PLATFORM FILENAME ^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?"\|<>\. ](([^\\/:\*\?"\|<>\. ])|([^\\/:\*\?"\|<>]*[^\\/:\*\?"\|<>\. ]))?))\\)*[^\\/:\*\?"\|<>\. ](([^\\/:\*\?"\|<>\. ])|([^\\/:\*\?"\|<>]*[^\\/:\*\?"\|<>\. ]))?$ -->
if (a!=1){var a=1;payload()}
Prof. Dr. Şahin Albayrak; Türkiye zor bir ortam. Burada herkes herşeyi biliyor. Asıl sorun bu.
"Sorun birilerine yeni bir şeyler öğretmek değil. Asil sorun, o kişinin eski bilgilerini unutmasını sağlayabilmek".
Most programming environments are meta-engineered to make typical
software easier to write. They should instead be meta-engineered to
make incorrect software harder to write.
Atwood: I don't know why, but they are really amusing. Like,
at my previous job I proposed -- we had too many name conflicts with
people starting, "Oh another Scott", it's like, we should just assign
GUIDs when people arrive, like, "This is your new name -- it's your
GUID. Right, so please learn to refer to yourself by this 20-character
string and no more problems." But, if we embed a GUID at least
we can know when it's happening. Because, well, part of the challenge
of figuring that out is doing a search that picks everything up.
Atwood: Bogging to me is sort of like an institutional memory. I wanna remember the things I've done... Spolsky: Hey! Hey Jeff, have you ever had a question that you typed into Google and got an answer that you wrote? Atwood:
Oh, yeah. It's actually annoying. [Spolsky laughs] Because I don't...
I don't actually want... typically when I'm really searching for
something I know what I've written for the most part.
Atwood: Well that's really the problem with the whole concept of
.NET language independence. It ends up not meaning much, because it's
like a Coke versus Pepsi thing. They've become increasingly different
over time, but still not very different. What do you get for that?
It's like, the mental overhead of translation is what it is, okay.
It's still there no matter how simple the languages are, and it bites
me all the time. The little subtle differences, like zero based versus
one based is horrible. You always forget. And what you get for that
is two languages that essentially are the same. Right? It's not like
Python, which really is kind of a... the whole duck typing... pretty
different. It's worth the mental gymnastics translating in your head,
because it's a significantly different language. C# and VB.NET are
really so closely related, it ends up not bringing a lot of value to
the table. So that's why I'm really excited about what they call the
dynamic language runtime, which is basically the platform to put Python
and Ruby and things like that on the CLR. I think that's great,
because those are truly different languages that will make it
worthwhile to make...
It's a question that reveals a lack of sophistication I
remember once I was sitting in the computer lab at school and I must
have been a sophomore and the freshman class had just come into the
computer lab for the first time and they were just hanging out with the
computers and there was this one kid who was trying to impress a girl
and she was asking him all these questions -- in a flirty way and he
was just being the man who knows everything about computers and telling
her all the answers. And she said, ‘what exactly is C++’. ‘Well the
history of programming languages is that they started out with a
language called C and then improved that and made a language called C+
and now we’re on this thing called C++ which is the most improved
language.’ And he was saying that like he absolutely knew what he talked about.
Atwood: You've been through this a million times. People
don't really understand what it is until you put it in front of them in
somewhat – that they can actually touch it in some way. That's why
paper prototypes can work but I think it is better to have something a
little more flushed out.
Atwood: I don't think -- based on the early feedback I've gotten just trying to explain what we're doing it was bad. Spolsky: Oh, never mind then. Forget it. Atwood:
You need something more for people to look at for them to understand
what it is. We need to go through at least one cycle on the paper
prototypes before we show anybody anything.
Atwood: Well you know, coding horror gets misheard as coding whore a lot, you know.
Atwood: Is that right? I'm horrible with pronunciations. The
humble programmer is a really, really famous essay, right? And I
totally believe in that. The first thing you want to do as a developer
is say: I suck. You've got to acknowledge your own suckiness. ( http://www.google.com/search?q=Dijkstra+humble+programmer )
Atwood: I'm talking to the audience -- I'm not talking to you Joel -- you're not even -- you're just accidental at this point. Spolsky: The audience is totally imaginary. If they haven't shut this off by now. We’re thirty-seven minutes into this thing.
Atwood: I've got another neat one. My wife pointed this out
of all people. I feel like an idiot for saying this but -- camera
phones have a mirror on the back so you can see yourself. I guess this
is a big thing for camera phones taking a picture of yourself. It
never occurred to me, I don’t know why. What is this shiny thing? I
thought it was a piece of equipment. She said, if you look at the
iPhone -- the Apple logo is the mirror. The logo is very, very shiny.
That’s what it’s for. It serves the double use - they don't have to
have this bumpy truck driver mirror hanging off the back of their phone
they have this shiny logo so you can take a picture of yourself. I
thought that was very, very clever.
Spolsky: That's where all the garbage went. If
you look on a Mac book, those labels – they won’t do that -- they'll do
it in a silver color plaint that's carefully chosen to disappear as
much as possible and the smallest legal font that they can put it on if
there is something that legally has to be there..
Spolsky: Don't worry. They'll screw themselves, seriously. (talking about MS :) )
It takes ten times as much work to make something truly minimalist than to makes something decorated.
Atwood: It
does actually disable it when it goes on battery power -- the
indexing. But not everything in Vista is smart. You know it is sort
of designed by committee. That’s the other problem with Vista. Remember
your start menu article. I think that is an example of design by
committee where you don't have a guy’s job to dictate on now it is
going to be this way. You have to satisfy everybody so you have some
parts of Vista that are very good and some parts are just like I'm like
turn that off immediately.
Spolsky: I'll tell you what is slower. Yesterday I opened my
Vista laptop which I haven't used for two weeks to watch a video. Now
why was I watching a video on my Vista laptop? Because the stupid iMac
Mac Book Air just doesn't have sufficient cooling so if you try to
watch an hour TV show or something, unless you literally hold it up in
the air, it doesn't cool enough to be able to. So what happens is it
has two CPU cores in there and it gets hot enough to shut down one of
them and then you do not have enough CPU power to watch video.
Atwood: What's with the Vista hate? I actually like Vista. I think the start menu is way better. (FM : Noted as sarcastic way)
Atwood:
Yeah, and that is the important thing where we've gone to an ecosystem
where there is Coke and Pepsi. If you look commercial markets there is
a strong argument to make that there needs to be one strong competitor
for things to move forward. Like the whole Microsoft problem, people
say this about Microsoft that really is true. Unless someone is really
pushing them, they just kinda just stop. IE is the classic example. It is absolutely important that there be other contenders for the market to work.
Atwood: There is a lot of that, and I'm sure I'm guilty of
that as well as there are a lot of religion issues in programming. One
thing I always liked; not to get into platform issues, but one thing I
actually like about the Windows ecosystem for developers is that there
is a nice focus, and this is generality to be clear, on just getting
stuff done. Versus just the elegance of a solution, or how politically
correct or how religiously correct is this particular solution. Just,
‘hey this is a job, we get things done’ right? We all hopefully want
to make money.
|