Bo Wu's IT Lab

If winter comes, can spring be far behind?

By Paul Graham
The original address: http://paulgraham.com/ambitious.html

March 2012

One of the more surprising things I’ve noticed while working on Y Combinator is how frightening the most ambitious startup ideas are. In this essay I’m going to demonstrate this phenomenon by describing some. Any one of them could make you a billionaire. That might sound like an attractive prospect, and yet when I describe these ideas you may notice you find yourself shrinking away from them.

Don’t worry, it’s not a sign of weakness. Arguably it’s a sign of sanity. The biggest startup ideas are terrifying. And not just because they’d be a lot of work. The biggest ideas seem to threaten your identity: you wonder if you’d have enough ambition to carry them through.

There’s a scene in Being John Malkovich where the nerdy hero encounters a very attractive, sophisticated woman. She says to him:

Here’s the thing: If you ever got me, you wouldn’t have a clue what to do with me.

That’s what these ideas say to us.

This phenomenon is one of the most important things you can understand about startups. [1] You’d expect big startup ideas to be attractive, but actually they tend to repel you. And that has a bunch of consequences. It means these ideas are invisible to most people who try to think of startup ideas, because their subconscious filters them out. Even the most ambitious people are probably best off approaching them obliquely.

1. A New Search Engine

The best ideas are just on the right side of impossible. I don’t know if this one is possible, but there are signs it might be. Making a new search engine means competing with Google, and recently I’ve noticed some cracks in their fortress.

The point when it became clear to me that Microsoft had lost their way was when they decided to get into the search business. That was not a natural move for Microsoft. They did it because they were afraid of Google, and Google was in the search business. But this meant (a) Google was now setting Microsoft’s agenda, and (b) Microsoft’s agenda consisted of stuff they weren’t good at.

Microsoft : Google :: Google : Facebook.

That does not by itself mean there’s room for a new search engine, but lately when using Google search I’ve found myself nostalgic for the old days, when Google was true to its own slightly aspy self. Google used to give me a page of the right answers, fast, with no clutter. Now the results seem inspired by the Scientologist principle that what’s true is what’s true for you. And the pages don’t have the clean, sparse feel they used to. Google search results used to look like the output of a Unix utility. Now if I accidentally put the cursor in the wrong place, anything might happen.

The way to win here is to build the search engine all the hackers use. A search engine whose users consisted of the top 10,000 hackers and no one else would be in a very powerful position despite its small size, just as Google was when it was that search engine. And for the first time in over a decade the idea of switching seems thinkable to me.

Since anyone capable of starting this company is one of those 10,000 hackers, the route is at least straightforward: make the search engine you yourself want. Feel free to make it excessively hackerish. Make it really good for code search, for example. Would you like search queries to be Turing complete? Anything that gets you those 10,000 users is ipso facto good.

Don’t worry if something you want to do will constrain you in the long term, because if you don’t get that initial core of users, there won’t be a long term. If you can just build something that you and your friends genuinely prefer to Google, you’re already about 10% of the way to an IPO, just as Facebook was (though they probably didn’t realize it) when they got all the Harvard undergrads.

2. Replace Email

Email was not designed to be used the way we use it now. Email is not a messaging protocol. It’s a todo list. Or rather, my inbox is a todo list, and email is the way things get onto it. But it is a disastrously bad todo list.

I’m open to different types of solutions to this problem, but I suspect that tweaking the inbox is not enough, and that email has to be replaced with a new protocol. This new protocol should be a todo list protocol, not a messaging protocol, although there is a degenerate case where what someone wants you to do is: read the following text.

As a todo list protocol, the new protocol should give more power to the recipient than email does. I want there to be more restrictions on what someone can put on my todo list. And when someone can put something on my todo list, I want them to tell me more about what they want from me. Do they want me to do something beyond just reading some text? How important is it? (There obviously has to be some mechanism to prevent people from saying everything is important.) When does it have to be done?

This is one of those ideas that’s like an irresistible force meeting an immovable object. On one hand, entrenched protocols are impossible to replace. On the other, it seems unlikely that people in 100 years will still be living in the same email hell we do now. And if email is going to get replaced eventually, why not now?

If you do it right, you may be able to avoid the usual chicken and egg problem new protocols face, because some of the most powerful people in the world will be among the first to switch to it. They’re all at the mercy of email too.

Whatever you build, make it fast. GMail has become painfully slow. [2] If you made something no better than GMail, but fast, that alone would let you start to pull users away from GMail.

GMail is slow because Google can’t afford to spend a lot on it. But people will pay for this. I’d have no problem paying $50 a month. Considering how much time I spend in email, it’s kind of scary to think how much I’d be justified in paying. At least $1000 a month. If I spend several hours a day reading and writing email, that would be a cheap way to make my life better.

3. Replace Universities

People are all over this idea lately, and I think they’re onto something. I’m reluctant to suggest that an institution that’s been around for a millennium is finished just because of some mistakes they made in the last few decades, but certainly in the last few decades US universities seem to have been headed down the wrong path. One could do a lot better for a lot less money.

I don’t think universities will disappear. They won’t be replaced wholesale. They’ll just lose the de facto monopoly on certain types of learning that they once had. There will be many different ways to learn different things, and some may look quite different from universities. Y Combinator itself is arguably one of them.

Learning is such a big problem that changing the way people do it will have a wave of secondary effects. For example, the name of the university one went to is treated by a lot of people (correctly or not) as a credential in its own right. If learning breaks up into many little pieces, credentialling may separate from it. There may even need to be replacements for campus social life (and oddly enough, YC even has aspects of that).

You could replace high schools too, but there you face bureaucratic obstacles that would slow down a startup. Universities seem the place to start.

4. Internet Drama

Hollywood has been slow to embrace the Internet. That was a mistake, because I think we can now call a winner in the race between delivery mechanisms, and it is the Internet, not cable.

A lot of the reason is the horribleness of cable clients, also known as TVs. Our family didn’t wait for Apple TV. We hated our last TV so much that a few months ago we replaced it with an iMac bolted to the wall. It’s a little inconvenient to control it with a wireless mouse, but the overall experience is much better than the nightmare UI we had to deal with before.

Some of the attention people currently devote to watching movies and TV can be stolen by things that seem completely unrelated, like social networking apps. More can be stolen by things that are a little more closely related, like games. But there will probably always remain some residual demand for conventional drama, where you sit passively and watch as a plot happens. So how do you deliver drama via the Internet? Whatever you make will have to be on a larger scale than Youtube clips. When people sit down to watch a show, they want to know what they’re going to get: either part of a series with familiar characters, or a single longer “movie” whose basic premise they know in advance.

There are two ways delivery and payment could play out. Either some company like Netflix or Apple will be the app store for entertainment, and you’ll reach audiences through them. Or the would-be app stores will be too overreaching, or too technically inflexible, and companies will arise to supply payment and streaming a la carte to the producers of drama. If that’s the way things play out, there will also be a need for such infrastructure companies.

5. The Next Steve Jobs

I was talking recently to someone who knew Apple well, and I asked him if the people now running the company would be able to keep creating new things the way Apple had under Steve Jobs. His answer was simply “no.” I already feared that would be the answer. I asked more to see how he’d qualify it. But he didn’t qualify it at all. No, there will be no more great new stuff beyond whatever’s currently in the pipeline. Apple’s revenues may continue to rise for a long time, but as Microsoft shows, revenue is a lagging indicator in the technology business.

So if Apple’s not going to make the next iPad, who is? None of the existing players. None of them are run by product visionaries, and empirically you can’t seem to get those by hiring them. Empirically the way you get a product visionary as CEO is for him to found the company and not get fired. So the company that creates the next wave of hardware is probably going to have to be a startup.

I realize it sounds preposterously ambitious for a startup to try to become as big as Apple. But no more ambitious than it was for Apple to become as big as Apple, and they did it. Plus a startup taking on this problem now has an advantage the original Apple didn’t: the example of Apple. Steve Jobs has shown us what’s possible. That helps would-be successors both directly, as Roger Bannister did, by showing how much better you can do than people did before, and indirectly, as Augustus did, by lodging the idea in users’ minds that a single person could unroll the future for them. [3]

Now Steve is gone there’s a vacuum we can all feel. If a new company led boldly into the future of hardware, users would follow. The CEO of that company, the “next Steve Jobs,” might not measure up to Steve Jobs. But he wouldn’t have to. He’d just have to do a better job than Samsung and HP and Nokia, and that seems pretty doable.

6. Bring Back Moore’s Law

The last 10 years have reminded us what Moore’s Law actually says. Till about 2002 you could safely misinterpret it as promising that clock speeds would double every 18 months. Actually what it says is that circuit densities will double every 18 months. It used to seem pedantic to point that out. Not any more. Intel can no longer give us faster CPUs, just more of them.

This Moore’s Law is not as good as the old one. Moore’s Law used to mean that if your software was slow, all you had to do was wait, and the inexorable progress of hardware would solve your problems. Now if your software is slow you have to rewrite it to do more things in parallel, which is a lot more work than waiting.

It would be great if a startup could give us something of the old Moore’s Law back, by writing software that could make a large number of CPUs look to the developer like one very fast CPU. There are several ways to approach this problem. The most ambitious is to try to do it automatically: to write a compiler that will parallelize our code for us. There’s a name for this compiler, the sufficiently smart compiler, and it is a byword for impossibility. But is it really impossible? Is there no configuration of the bits in memory of a present day computer that is this compiler? If you really think so, you should try to prove it, because that would be an interesting result. And if it’s not impossible but simply very hard, it might be worth trying to write it. The expected value would be high even if the chance of succeeding was low.

The reason the expected value is so high is web services. If you could write software that gave programmers the convenience of the way things were in the old days, you could offer it to them as a web service. And that would in turn mean that you got practically all the users.

Imagine there was another processor manufacturer that could still translate increased circuit densities into increased clock speeds. They’d take most of Intel’s business. And since web services mean that no one sees their processors anymore, by writing the sufficiently smart compiler you could create a situation indistinguishable from you being that manufacturer, at least for the server market.

The least ambitious way of approaching the problem is to start from the other end, and offer programmers more parallelizable Lego blocks to build programs out of, like Hadoop and MapReduce. Then the programmer still does much of the work of optimization.

There’s an intriguing middle ground where you build a semi-automatic weapon—where there’s a human in the loop. You make something that looks to the user like the sufficiently smart compiler, but inside has people, using highly developed optimization tools to find and eliminate bottlenecks in users’ programs. These people might be your employees, or you might create a marketplace for optimization.

An optimization marketplace would be a way to generate the sufficiently smart compiler piecemeal, because participants would immediately start writing bots. It would be a curious state of affairs if you could get to the point where everything could be done by bots, because then you’d have made the sufficiently smart compiler, but no one person would have a complete copy of it.

I realize how crazy all this sounds. In fact, what I like about this idea is all the different ways in which it’s wrong. The whole idea of focusing on optimization is counter to the general trend in software development for the last several decades. Trying to write the sufficiently smart compiler is by definition a mistake. And even if it weren’t, compilers are the sort of software that’s supposed to be created by open source projects, not companies. Plus if this works it will deprive all the programmers who take pleasure in making multithreaded apps of so much amusing complexity. The forum troll I have by now internalized doesn’t even know where to begin in raising objections to this project. Now that’s what I call a startup idea.

7. Ongoing Diagnosis

But wait, here’s another that could face even greater resistance: ongoing, automatic medical diagnosis.

One of my tricks for generating startup ideas is to imagine the ways in which we’ll seem backward to future generations. And I’m pretty sure that to people 50 or 100 years in the future, it will seem barbaric that people in our era waited till they had symptoms to be diagnosed with conditions like heart disease and cancer.

For example, in 2004 Bill Clinton found he was feeling short of breath. Doctors discovered that several of his arteries were over 90% blocked and 3 days later he had a quadruple bypass. It seems reasonable to assume Bill Clinton has the best medical care available. And yet even he had to wait till his arteries were over 90% blocked to learn that the number was over 90%. Surely at some point in the future we’ll know these numbers the way we now know something like our weight. Ditto for cancer. It will seem preposterous to future generations that we wait till patients have physical symptoms to be diagnosed with cancer. Cancer will show up on some sort of radar screen immediately.

(Of course, what shows up on the radar screen may be different from what we think of now as cancer. I wouldn’t be surprised if at any given time we have ten or even hundreds of microcancers going at once, none of which normally amount to anything.)

A lot of the obstacles to ongoing diagnosis will come from the fact that it’s going against the grain of the medical profession. The way medicine has always worked is that patients come to doctors with problems, and the doctors figure out what’s wrong. A lot of doctors don’t like the idea of going on the medical equivalent of what lawyers call a “fishing expedition,” where you go looking for problems without knowing what you’re looking for. They call the things that get discovered this way “incidentalomas,” and they are something of a nuisance.

For example, a friend of mine once had her brain scanned as part of a study. She was horrified when the doctors running the study discovered what appeared to be a large tumor. After further testing, it turned out to be a harmless cyst. But it cost her a few days of terror. A lot of doctors worry that if you start scanning people with no symptoms, you’ll get this on a giant scale: a huge number of false alarms that make patients panic and require expensive and perhaps even dangerous tests to resolve. But I think that’s just an artifact of current limitations. If people were scanned all the time and we got better at deciding what was a real problem, my friend would have known about this cyst her whole life and known it was harmless, just as we do a birthmark.

There is room for a lot of startups here. In addition to the technical obstacles all startups face, and the bureaucratic obstacles all medical startups face, they’ll be going against thousands of years of medical tradition. But it will happen, and it will be a great thing—so great that people in the future will feel as sorry for us as we do for the generations that lived before anaesthesia and antibiotics.

Tactics

Let me conclude with some tactical advice. If you want to take on a problem as big as the ones I’ve discussed, don’t make a direct frontal attack on it. Don’t say, for example, that you’re going to replace email. If you do that you raise too many expectations. Your employees and investors will constantly be asking “are we there yet?” and you’ll have an army of haters waiting to see you fail. Just say you’re building todo-list software. That sounds harmless. People can notice you’ve replaced email when it’s a fait accompli. [4]

Empirically, the way to do really big things seems to be to start with deceptively small things. Want to dominate microcomputer software? Start by writing a Basic interpreter for a machine with a few thousand users. Want to make the universal web site? Start by building a site for Harvard undergrads to stalk one another.

Empirically, it’s not just for other people that you need to start small. You need to for your own sake. Neither Bill Gates nor Mark Zuckerberg knew at first how big their companies were going to get. All they knew was that they were onto something. Maybe it’s a bad idea to have really big ambitions initially, because the bigger your ambition, the longer it’s going to take, and the further you project into the future, the more likely you’ll get it wrong.

I think the way to use these big ideas is not to try to identify a precise point in the future and then ask yourself how to get from here to there, like the popular image of a visionary. You’ll be better off if you operate like Columbus and just head in a general westerly direction. Don’t try to construct the future like a building, because your current blueprint is almost certainly mistaken. Start with something you know works, and when you expand, expand westward.

The popular image of the visionary is someone with a clear view of the future, but empirically it may be better to have a blurry one.

Notes

[1] It’s also one of the most important things VCs fail to understand about startups. Most expect founders to walk in with a clear plan for the future, and judge them based on that. Few consciously realize that in the biggest successes there is the least correlation between the initial plan and what the startup eventually becomes.

[2] This sentence originally read “GMail is painfully slow.” Thanks to Paul Buchheit for the correction.

[3] Roger Bannister is famous as the first person to run a mile in under 4 minutes. But his world record only lasted 46 days. Once he showed it could be done, lots of others followed. Ten years later Jim Ryun ran a 3:59 mile as a high school junior.

[4] If you want to be the next Apple, maybe you don’t even want to start with consumer electronics. Maybe at first you make something hackers use. Or you make something popular but apparently unimportant, like a headset or router. All you need is a bridgehead.

Thanks to Sam Altman, Trevor Blackwell, Paul Buchheit, Patrick Collison, Aaron Iba, Jessica Livingston, Robert Morris, Harj Taggar and Garry Tan for reading drafts of this.

Share and Enjoy:
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas
  • services sprite Frighteningly Ambitious Startup Ideas

NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL

Which method is best to select values present in one table but missing in another one?

This:

SELECT  l.*
FROM    t_left l
LEFT JOIN
        t_right r
ON      r.value = l.value
WHERE   r.value IS NULL

,this:

SELECT  l.*
FROM    t_left l
WHERE   l.value NOT IN
        (
        SELECT  value
        FROM    t_right r
        )

or this:

SELECT  l.*
FROM    t_left l
WHERE   NOT EXISTS
        (
        SELECT  NULL
        FROM    t_right r
        WHERE   r.value = l.value
        )

Differences between the methods

These methods are quite different.

First of all, LEFT JOIN / IS NULL and NOT EXISTS are semantically equivalent, while NOT IN is not. These method differ in how they handle NULL values in t_right

LEFT JOIN is guaranteed to return every row from t_left, and then filtering is applied to the values returned from t_right. If for some row in t_left there is no corresponding row in t_right (which means no row with that exact value is present in t_right), the row from t_left will be returned once, and the NULL values will be substituted instead of t_right‘s actual values.

Since NULL values can never satisfy an equality JOIN condition, the NULL values returned by the query are guaranteed to be substituted by the LEFT JOIN, not fetched out of the actual t_right‘s row. This means that LEFT JOIN / IS NULL is guaranteed to return at most one row from t_left, and these row’s value is not equal to one of those in t_right.

The same holds for NOT EXISTS. Since it’s a predicate, not a JOIN condition, the rows from t_left can only be returned at most once too. EXISTS always returns TRUE or FALSE and it will return TRUE as soon as it finds only a single matching row in t_right, or FALSE, if it find none.

NOT EXISTS, therefore, will return TRUE only if no row satisfying the equality condition is found in t_right (same as for LEFT JOIN / IS NULL).

Note that NULL values do not safisfy the equality conditions, so both LEFT JOIN / IS NULL and NOT EXISTS will always return rows from t_left that have value set to NULL, even is there are rows with value IS NULL in t_right.

NOT IN, however, behaves differently.

IN predicate (unlike EXISTS) is trivalent, i. e. it can return TRUE, FALSE or NULL:

  • TRUE is returned when the non-NULL value in question is found in the list
  • FALSE is returned when the non-NULL value is not found in the list and the list does not contain NULL values
  • NULL is returned when the value is NULL, or the non-NULL value is not found in the list and the list contains at least one NULL
  • value

IN predicate does not give a definitive answer to whether or not the expression is contained in the list as long as there are NULL values on either side of the expression, returning NULL instead.

This of course makes no difference when using the positive form of NULL: predicates returning NULL are filtered out by the WHERE clause as well as those returning FALSE.

However, NOT IN is different, since negation of NULL is NULL as well.

That’s why NOT IN condition will never hold for any list with a NULL value in it.

  • If a row is found in the list, IN will return TRUE and NOT IN, therefore, will return FALSE
  • If a row is not found in the list, IN will return NULL, and NOT IN on its turn will also return NULL

Both conditions will of course be filtered out by the WHERE clause.

Summary

In SQL Server, NOT EXISTS and NOT IN predicates are the best way to search for missing values, as long as both columns in question are NOT NULL. They produce the safe efficient plans with some kind of an Anti Join.

LEFT JOIN / IS NULL is less efficient, since it makes no attempt to skip the already matched values in the right table, returning all results and filtering them out instead.


The original posting URL: http://explainextended.com/2009/09/15/not-in-vs-not-exists-vs-left-join-is-null-sql-server/

Share and Enjoy:
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL
  • services sprite NOT IN vs. NOT EXISTS vs. LEFT JOIN / IS NULL

Written by David Barrett
March 25, 2011 at 7:00 am
Posted in CEO Friday, Job
Original Post URL: http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/


dotnet CEO Friday: Why we don’t hire .NET programmers

As you might know, we’re hiring the best programmers in the world. Sure, everyone says that. But my coders will beat up your coders, any day of the week. For example, Mich is barely 5 foot tall, but is a competitive fencer. Witold is a 6’3″ former professional hockey player. Nate practices knife fighting for fun. And they’re pretty decent programmers, too.

But finding such people is more than a full time job. Indeed, I spend about half my time on it, while Lisa spends about all hers. And on top of that we have an army of recruiters out scouring the globe, leaving no resume unturned. Taken all together, this creates a lot of resumes. So many that we don’t look at them, because resumes — let’s be honest — are totally worthless. Rather, we pay all our attention to a few key questions we ask every candidate, each aiming at uncovering a single key point: is this someone we really want to work with?

See, experience is cheap. All it takes is time. Skill is harder, but really only requires hard work — a lot of people can get that. But attitude. You either have it, or you don’t. The right sort of person is so passionate about coding, they can’t be stopped from doing it. They typically started before high school — sometimes before middle school — and never looked back. They write everything from assembly to jQuery, on PCs to mobile phones, doing hard core computer graphics to high level social networking. They’ve tried everything.

Everything, that is, but .NET.

Now let me clarify — .NET is a dandy language. It’s modern, it’s fancy, it’s got all the bells and whistles. And if you’re doing Windows Mobile 7 apps (which the stats suggest you aren’t), it’s your only choice. But choosing .NET is a choice, and whenever anybody does it, I can’t help but ask “why?”

Don’t get me wrong: .NET on your resume isn’t an instant showstopper. But it will definitely raise questions during the phone screen, for reasons that are best explained by simile:

Programming with .NET is like cooking in a McDonalds kitchen. It is full of amazing tools that automate absolutely everything. Just press the right button and follow the beeping lights, and you can churn out flawless 1.6 oz burgers faster than anybody else on the planet.

However, if you need to make a 1.7 oz burger, you simply can’t. There’s no button for it. The patties are pre-formed in the wrong size. They start out frozen so they can’t be smushed up and reformed, and the thawing machine is so tightly integrated with the cooking machine that there’s no way to intercept it between the two. A McDonalds kitchen makes exactly what’s on the McDonalds menu — and does so in an absolutely foolproof fashion. But it can’t go off the menu, and any attempt to bend the machine to your will just breaks it such that it needs to be sent back to the factory for repairs.

Instead, we look for a very different sort of person. The sort of person who grew up cooking squirrels over a campfire with sharpened sticks — squirrels they caught and skinned while scavenging in the deep forests for survival. We don’t want a short order chef, we want a Lord of the Flies, carried by wolves into civilization and raised in a French kitchen full of copper-bottomed pots and fresh-picked herbs. We need people who can not only cook burgers, but cook anything, from scratch.

See, Microsoft very intentionally (and very successfully) created .NET to be as different as possible from everything else out there, keeping the programmer far away from the details such that they’re wholly and utterly dependent on Microsoft’s truly amazing suite of programming tools to do all the thinking for them. Microsoft started down this path when they were the only game in town, explicitly to maintain their monopoly by making it as hard as possible to either port Windows apps to non-Windows platforms, or to even conceive of how to do it in the first place.

This decision — or this mandate for incompatibility, perhaps — has produced countless ramifications. Small things, like using backslashes in file paths rather than forward slashes like any dignified OS., or using a left-handed coordinate system with DirectX instead of right-handed as was used since the dawn of computer graphics. Big things, like obscuring the networking stack under so many countless layers of abstraction that it’s virtually impossible to even imagine what bytes are actually going over the wire. And a thousand other things in between: programming tools that generate a dozen complex files before you even write your first line of code, expensive servers that force a remote GUI terminal on you to do essentially anything despite a few keystrokes being perfectly adequate for everybody else, a programming culture almost allergic to open source licensing. The list goes on and on.

None of this makes you a “bad programmer”. All these differences are perfectly irrelevant if you just want to make 1.6 oz burgers as fast as possible, and commit the rest of your career to an endless series of McDonalds menus. But every day spent in that kitchen is a day NOT spent in a real kitchen, learning how to cook real food, and write real code.

Even worse, every day spent learning a Microsoft kitchen takes TWO days to unlearn, meaning once you get a reasonable way down the .NET career path, there is almost no going back. You become so steeped in tools and techniques that have absolutely no relevance outside of .NET that you are actually less valuable to a startup than had you just taken a long nap.

So what’s the moral of this whole story? Two things:

If you ever want to work in a startup, avoid .NET. It does you no favors.
If you are a startup looking to hire really excellent people, take notice of .NET on a resume, and ask why it’s there.

It might sound harsh, and it is. But sometimes we only have squirrels to eat, and we need them to taste good.

-david (Follow us at https://twitter.com/expensify)

Saturday edit: Wow, this post has hit quite a nerve. Had I known it was going to take the internet by storm I probably would have been a bit more careful with my word choice (especially referring to .NET as a language, doh!). But just to clarify a couple points, 24-hours into the storm:

Yes, .NET developers are great at what they do. It’s the most modern platform for application development on the planet. Microsoft has always produced the best tools for building internal business applications, and .NET is their masterpiece. There’s a reason why they own that space; they earned it. That space employs millions of people, and those people are unquestionably the masters at what they do.
But what they do is very, very rarely startups. I’m sorry if that sounds offensive, but that’s a simple fact. You can measure this yourself: go to any list of startups, maybe look at YCombinator’s recent graduate class, or Scoble’s list of picks for 2010, or Sequoia’s list of seed companies — or go find a list you like better. Do a curl (or your .NET equivalent) on each domain, and see how many are running a Windows server: I think you’ll find the fraction very small. Don’t get me wrong: there are a lot of people who aren’t interested in working at a startup, for a lot of very valid reasons. But if you are the odd person who is interested, it’s worth asking: why do so few use .NET?
Because .NET is designed to extend, not disrupt. The same could largely be said about J2EE, but in general anybody who “grows up” with these self-contained, highly-automated platforms can’t help but view computers in a different way than those who start from a lower, less automated, more difficult level. (As one of the coherent commentators says below, Joel Spolsky himself laments schools teaching Java with the same basic reasoning of my article above, albeit more diplomatically stated.) .NET is designed to tightly integrate with and seamlessly extend the Microsoft stack in extremely powerful but ultimately incremental ways. Again, there’s nothing wrong about that if that’s what you want to do. But if that’s not what you want to do, then .NET probably isn’t the right choice, as evidenced by how few people in the startup world choose it.

Again, this isn’t a rant against .NET — it’s fine. It’s not even a rant against .NET developers being incapable of learning — they can learn as well as anyone. It’s a rant against .NET teaching the wrong things for startups. And about how people who use it for too long, can’t help but learn those things. This is a rant about how startups, by definition, need to think of things from new angles, and those angles typically don’t involve .NET.

Anyway, I was going to leave all this to blow over before making any comments in a follow-up post next Friday. Indeed, for all the outrage and fury, this is actually common knowledge amongst startups, and I was going to support that with a bit more data to win over the skeptics (at least, those who were open to listening).

But I’ve seen some recent comments that this post might have upset and offended the SMB community that we serve, and that I cannot abide. For that, I’m truly sorry. As someone who grew up using and ultimately becoming frustrated with the limitations of Microsoft tools, and grew up submitting and hating small-business expense reports, I hope I can convince you that we’re fighting for the same goals. Even if our tools and techniques might differ wildly.

Sunday edit: Incredible that this post is still going strong, on a weekend no less. But what’s most interesting is how the comments have gradually shifted over time. Granted, me even pointing this out will probably have an effect on comments going forward, but the general trend has been:

First wave: Raw, incoherent hate, constructed from near-pure profanity. I took the liberty of deleting most of this, as this is a PG-13 site. Perhaps 1% of the first wave agreed with me.
Second wave: “Reasoned” hate, though most of that reasoning was done by extrapolating my misuse of one word (“language” instead of “platform”) into every conceivable sin. I’d say maybe 15% of the second wave agreed with me (if weighted by actual coherent text).
Third wave: A very heated discussion. It would appear that every possible insult had already been slung so there was nothing left to do but actually discuss the merits of the post. I’d say maybe 25% of the third wave agreed with me.

It’s harder to get a sense of agreement/disagreement from Twitter as most people just retweet without comment. But I’d say those who do make comments have fit the rough curve above.

Share and Enjoy:
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers
  • services sprite CEO Friday: Why we don’t hire .NET programmers

转自:http://www.thmz.com/col28/col144/2008/10/2008-10-22463687.html
当年我也是其中的一朵“小红花”

“小红花”的岁月
2008-10-22 15:43:08   来源:无锡广电・无锡新周刊

  提起当年的“小红花”,可说是声名显赫。其实,“小红花”正式的名称是“红小兵宣传队”。“小红花”从1969年到1979年只办了十年,几十年过去,特殊年代里产生的这朵“小红花”,不只留下了生动的回忆,在今天也开出了意想不到的果实。

  从“小京班”到“小红花”

  1972年3月17日,美国一个“关心亚洲学者委员会”访华团来到无锡,下榻在太湖饭店。晚上,他们观看了一场孩子们的演出,这便是无锡市“小红花宣传队”的演出。美国友人拍下了一些照片,这几幅珍贵的彩色照片是三十多年前无锡“小红花”唯一的彩照。今天,照片上的孩子都已四、五十岁,“小红花”成长的岁月,成为他们永不褪色的回忆。

  提起“小红花”,可说是当年声名显赫的学校。事实上,当时的“小红花”共有崇安区、南长区、北塘区和郊区四个部分,正式的名称是红小兵宣传队,又称“小红花”。

  “小红花”是那个时代的产物。1966年“文化大革命”爆发后,各学校都陆续停课,无锡各剧团也成了宣传“封资修”的剧团,全部停演。但一个城市总需要有招待领导和接待外宾的演出团体,因此1969年无锡就产生了四个课余的剧组——“小京班”。“小京班”顾名思义就是小小京剧班,无锡四个区的“小京班”各排练一个革命样板戏:南长区排《红灯记》,北塘区排《智取威虎山》,崇安区则排《沙家浜》……

  当时,南京有一个“红小兵宣传队”,称作“小红花”。南京军区司令员许世友在观看了南京红小兵宣传队的演出后,留下了深刻的印象。在无锡时,他提出要看看孩子们的节目。因此,无锡市军管会便将各区“小京班”组织起来,正式建制成立了崇安、南长和北塘几个“红小兵宣传队”学校,这就是无锡“小红花”的由来。

  特殊年代里的优待

  “小红花”的产生有着这样的政治背景,办起来也就有声有色了:学校基本采取寄宿制,费用则由区财政拨款,由区文教组负责,外事演出直接受市外事组领导。这样自然给学校带来了相对优厚的条件。

  1970年,南长街小学的校长浦心根老师被调去筹建南长区“小红花”。他回忆说,最早南长“小红花”是在老夹城小学,后来搬到了现在的侨艺幼儿园位置。这里,原有一幢两层建筑,约有两三千平方米,是无锡籍旅日华侨蔡世金先生捐资6万元在六十年代建造的。南长区“小红花”就在这里扎根,一直办到1979年。

  浦老师说,“小红花”只招收有文艺特长的学生,招生对象从一年级到初二,能进入“小红花”的都是百里挑一的学生,又聪明又漂亮,还要有一定特长。南长“小红花”宣传队共有七个年级,人数最少的一个年级一般有五六人,多的二十多人,最大的孩子也只是初二的学生。这些年龄参差不齐的孩子大多数是住校的,只有少数住得近的会回家住。为了照料他们的起居,许多老师和后勤人员也住在学校。

  “小红花”们的生活
  每天早上6点多,“小红花”们就起床了,他们先要练一小时的功,跳舞的压压腿,唱歌的吊吊嗓子……早饭有粥、馒头和油条,吃完早饭后是上文化课。中午的伙食也相当不错,8人一桌。下午两节文化课后还是排练,晚饭后的夜间排练也要到近9点,夜间如有演出,回校后还有夜点心。宿舍里,一个宿舍住十个人左右,睡的都是简易的竹榻,被褥都从家里带来。学生们一星期只有周六晚上可以回家,到周日晚上就要回校,没有家长接送的。除了吃饭,孩子们的衣服有后勤人员洗涤,家长们十分放心。

  每到有重大的演出任务,无锡四个“小红花”宣传队便会集中到西新俱乐部排演,合成一台演出,演出时的名称则是无锡市“红小兵宣传队”。

  浦校长是学生们爱戴的老师,孩子们私下也叫他“矮浦”,以此区分另一个也姓浦的高个子音乐老师。“长浦”是上海来的音乐老师,那时候平时排练没有磁带和唱片伴奏,必须由乐队配乐,哪个学生混在大合唱里滥竽充数、或是乐队里出了点错,都瞒不过他。

  当时的南长“小红花”演出设备样样齐全,电容话筒、无线话筒、音响设备、投影彩灯、特景灯……装起来足足有一卡车,所有的布景都是请锡剧团的美工绘制的。服装也有十几箱,孩子们最高兴的是排新的舞蹈,因为每排一个新舞蹈,就会有一套新的服装,负责服装的老师叫骆若蘅。

  当年的化妆是非常简单的,演出前排起两个队,一队涂口红、一队抹腮红。涂口红用的是小排笔,腮红是用粉扑匀上红色,那“红”也不知是不是颜料,涂好后,小朋友的嘴巴一动不敢动。

  “小红花”的演出一般先有热闹的开场,然后是声乐、器乐、舞蹈和样板戏片断,最后会有一个大合唱。在1972年美国友人所拍摄的彩色照片中,就能看到这些场景。当时的舞蹈有《小小木工组》、《皮筋舞》等,还有一个《挤奶舞》,正式的名字叫《畜牧场上的红小兵》。合唱则有《北京有个金太阳》、《让我们荡起双桨》,《歌唱祖国》等等。外事演出时,还要加演一个外宾所在国的民歌。

  有特权就有重任

  “小红花”的演出是如此的不可替代,自然也拥有了一些“特权”。1975年,南长区唯一一只14寸彩色电视机落户在南长区“小红花”。当时连区领导都没有配备彩电,逢到重要的电视节目还需要向浦校长提要求以便安排来校观看。老师和学生们记得最清楚的是观看“1976年周总理逝世”的新闻,大家就是在这只彩电上看到灵车从长安街上经过的。平时,这只彩电自然难得一开,不看时,这个贵重的设备被一个木箱子锁起来。

  “文革”中,每个“小红花”学生都要政审,老师更是严格。浦心根校长记得,当年有个子虚乌有的“516反革命集团”,学校的舞工班长虞伯乐也被打成“516”嫌疑分子,外事活动前,教育局领导认为不能让他去。浦校长灵机一动,直接向区委书记王新福汇报,说如果虞伯乐不能去,演出质量很难保证。王书记听后当即表示可以放心让他去,最后当然没出什么事。
  “小红花”的演出任务很频繁,几乎每周都有。令今天的人们难以想像的是,“小红花”不但负责接待领导和外宾,还会经常去部队、农村、工厂、矿区慰问演出。去部队时的待遇较好,军队会派车来接,而到宜兴川埠煤矿去,则需要先乘船、再转车,晚上还要住在煤矿,条件非常艰苦。

  华玲也是南长区“小红花”的学生,在《红灯记》里她演一个卖香烟的。她说,有一次到硕放机场慰问空军,同学们轮流登上了战斗机参观,大家兴奋了好久。而在农村,看到农民对演出所表现出的新鲜劲简直难以置信——广场上、树上、屋顶上、电线杆上都是人。面对这种热烈场面,孩子们会觉得自己很了不起。迎接外宾是非常辛苦的,如到机场迎接新加坡李光耀总理等。华玲记得,有一次由于情况特殊,还冒着雨等了一晚上。当然也有令人高兴的事,有一次在太湖饭店接待西哈努克亲王,演出结束后,西哈努克上台搂着可爱的华玲照相,让大家羡慕不已。

  孩子们很高兴能为外宾演出,不只是为了能见到难得一见的外国人,也在于在太湖饭店演出后能吃到平时吃不到的点心,除了花生、油汆豆板等,还有蛋糕和面包,还有一种脆脆的小薄片,吃起来又香又响,后来才知道,那就是龙虾片。

  后“小红花”时代

  曹凤华老师今天是侨谊幼儿园的董事长,当年南长“小红花”低年级的舞蹈都是她排练的,她有一个形影不离的学生季晓丹。季晓丹在1971幼儿园大班时就来到了南长“小红花”,曾是这里最小的学生,直到来了一个男同学华军后,一年级才有了两个学生。季晓丹非常聪明,跟着曹凤华老师学跳舞,学会后还能教别人跳。她说,当年“小红花”是非常光荣的,走在路上,人家都会指着说“她是小红花的”,自己特别骄傲。那时她和曹凤华老师睡在一起,她睡相不好时,脚还会搁到老师嘴上。

  现在美国从事软件开发的季晓枫是季晓丹的哥哥,也是南长“小红花”的学生。当年他当过副班长,唱歌、样板戏、舞蹈、乐器样样会,但也够调皮,有一次与同学钱柏炎用大鼓槌去敲新疆手鼓,结果打破了手鼓皮,还赔了钱。南长“小红花”第一个参军的学生是小帅哥唐国忠,在《红灯记》里他扮演的是李玉和。今天无锡锡剧团的副团长奚颂华,当年则在南长“小红花”里吹笛子。

  曾在南长“小红花”里弹琵琶和中阮的华萍,今天是英国南安普敦大学物理研究中心的博导,她把“小红花”带到了英国。在南安普敦,华萍担任华人社团的主席,依靠“小红花”的经验,她办起了以中国民族音乐舞蹈和京剧为主的“凤凰艺术团”,自己还免费教授二胡和古筝,并担任乐队的指挥。每到中国传统节日,这个乐团都有演出,并以传播中国文化在当地很有影响,温家宝总理访英时还特地接见了他们。

  几十年过去,特殊年代里产生的“小红花”,竟在今天开出了意想不到的果实。(吴炯)

Share and Enjoy:
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月
  • services sprite “小红花”的岁月

appengine java php  Run PHP on the Google App Engine

Google launched their Google App Engine (GAE) a year ago. The free hosting in App Engine is allocated 500 MB of persistent storage and enough CPU and bandwidth for about 5 million page views a month. Also, if you really want more you can see pricing plans.

GAE will support Java going forward. Unfortunately PHP support on the App Engine is still left as the top item in the wishlist. So until Google announces their official PHP support we have a workaround to run PHP using Quercus. Quercus is basically a 100% Java implementation of the PHP language (requires JDK 1.5). Since the App Engine now supports Java this means we can use Quercus to run PHP scripts on the App Engine.

So all you need to use the GAE and run PHP
1) Register a free account.
2) Download this file to your computer.
3) Edit application XML tag in the file war\WEB-INF\appengine-web.xml to the name of the application you have registered.
4) Finally upload your application. I downloaded Google App Engine SDK for Java and use the following command in windows.
appcfg.cmd update C:\projects\phpwithjava\war

To see this in action just visit:
http://phpwithjava.appspot.com/webdigi.php and http://phpwithjava.appspot.com/info.php

NOTE: phpwithjava is my app name with GAE. Image by Aral Balkan.

Original Post URL: http://www.webdigi.co.uk/blog/2009/run-php-on-the-google-app-engine/

Share and Enjoy:
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine
  • services sprite  Run PHP on the Google App Engine

This page shows you how to remove spaces from a text field. Any spaces entered by the user will be removed when they click anywhere outside the text field. Try it here:

Step 1

Add the following code to your head:

<script language="javascript" type="text/javascript">
function removeSpaces(string) {
 return string.split(' ').join('');
}
</script>

Step 2

Use the following code for your text field:

<form>
<input type="text" onblur="this.value=removeSpaces(this.value);">
<input type="button" value="Click">
</form>
Share and Enjoy:
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field
  • services sprite How to Remove Spaces From a Text Field

cloud 5 The Changing Face of ERP Software

By Susan J. Campbell, TMCnet Contributing Editor

Business today has changed from what it was just a few short years ago. Companies no longer rely solely on on-premise solutions and capabilities to drive innovation. Cloud-based solutions are gaining ground as way to enable organizations to gain access to greater functionality. One platform making waves in the cloud environment is ERP software. The Aplicor Cloud Suite 7 is a platform designed to integrate the back and front office business processes so that users can work intuitively.

The business environment today is no longer a “buy everything” environment where ERP software implementations need to rely on extensive computer systems, software and underlying technology stacks. Now, companies can implement only what they need, customizing as necessary and using only the features and functionality that will actually benefit the organization. This move to the subscription based model not only ensures users have access to the latest tools; they also can easily manage and scale according to their needs.

In the technology sector, moving to a subscription based model changes the rules. Perhaps the most obvious – and significant – difference is that the customer has more power. Vendors used to be able to rule the roost in a way as their proprietary approach often dictated that customers implement all of their solutions for optimal integration. Today, ERP software from Oracle (News – Alert) can easily fit into a NetSuite environment. As a result, it is important for vendors to be attentive to customer needs, proactively interacting to protect their relationships.

Accessing ERP software through the on-demand approach can be very beneficial for companies. For one, nothing on the subscription list will get old or break down. The ERP software put in place will be automatically updated in real-time on the provider’s servers and improvements appear instantaneously for the customer. Manageable monthly payments ensure that the company can manage the platform according to their budgetary requirements.

When moving ERP software to the cloud, companies gain considerable agility and flexibility so they can jump on opportunities in the marketplace as they arise. ERP software platforms finding their competitive advantage will offer systems and capabilities that enable companies to take advantage of opportunities through adaptive structuring.
Leveraging ERP software in the cloud also provides the enterprise or small business with considerable scalability and customization. When challenged with larger demands, the ERP software platform can be ramped up accordingly. And, when specific needs are in place, the solution or application can be customized to meet the unique needs of that organization.

scampbell The Changing Face of ERP Software
Susan J. Campbell is a contributing editor for TMCnet and has also written for eastbiz.com.

Share and Enjoy:
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software
  • services sprite The Changing Face of ERP Software

windows logo Tips on using Windows PC

1. Concatenate Multiple Text Files in Windows:

You have a directory full of log files that you want to import into Excel or a database so you can do some processing on them… but there are hundreds of files… how do you make them into a single file?

copy /a *.log aggregate.txt

2. How to delete a large folder of a large number of files?
(1) Command Line:

rmdir /s /q "My Apps"
rmdir /s /q "My Documents"
rmdir /s /q "My Pictures"
rmdir /s /q "My Work Files”

(2) Windows Explorer:
Select the folder and then hold down the Shift key and then Delete. You’ll be prompted about permanently deleting the files. No recycle bin should speed this up.

3. How to change Windows Command Line Prompt Default Location?
Run –> regedit.exe

HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor
Add a new String Value in the right pane:
Name: Autorun
Value: CD /d C:\foldername
Share and Enjoy:
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC
  • services sprite Tips on using Windows PC

 Resetting a forgotten MySQL root password

Resetting the root password of a MySQL database is trivial if you know the current password if you don’t it is a little tricker. Thankfully it isn’t too difficult to fix, and here we’ll show one possible way of doing so.

If you’ve got access to the root account already, because you know the password, you can change it easily:

steve@steve:~$ mysql --user=root --pass mysql
Enter password:

mysql> update user set Password=PASSWORD('new-password-here') WHERE User='root';
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye

However if you don’t know the current password this approach will not work – you need to login to run any commands and without the password you’ll not be able to login!

Thankfully there is a simple solution to this problem, we just need to start MySQL with a flag to tell it to ignore any username/password restrictions which might be in place. Once that is done you can successfully update the stored details.

First of all you will need to ensure that your database is stopped:

root@steve:~# /etc/init.d/mysqld stop

Now you should start up the database in the background, via the mysqld_safe command:

root@steve:~# /usr/bin/mysqld_safe --skip-grant-tables &
[1] 6702
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6763]: started

Here you can see the new job (number “1″) has started and the server is running with the process ID (PID) of 6702.

Now that the server is running with the –skip-grant-tables flag you can connect to it without a password and complete the job:

root@steve:~$ mysql --user=root mysql
Enter password:

mysql> update user set Password=PASSWORD('new-password-here') WHERE User='root';
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye

Now that you’ve done that you just need to stop the server, so that you can go back to running a secure MySQL server with password restrictions in place. First of all bring the server you started into the foreground by typing “fg”, then kill it by pressing “Ctrl+c” afterwards.

This will now allow you to start the server:

root@steve:~# /etc/init.d/mysqld start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

Now everything should be done and you should have regained access to your MySQL database(s); you should verify this by connecting with your new password:

root@steve:~# mysql --user=root --pass=new-password-here
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 5.0.24a-Debian_4-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit
Bye
Share and Enjoy:
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password
  • services sprite Resetting a forgotten MySQL root password

pagerank google How a smaller web host increases your Google pagerank

Original Post: http://desktopserver.com/how-a-smaller-web-host-increases-your-google-pagerank/

When deciding on a web hosting company bigger isn’t always better. Your sites importance to search engines can be over 30 percent higher if you go with a small, but reliable web host. I’ve seen  articles about this, but most got way too technical.

When you have links going to your site (called backlinks) search engines like Google usually give your site more importance. The problem is when you get links from a web site that shares the same class C block, and then you get no boost in search engine ranking from those sites. They see you’re hosted on the same ISP, and it’s too easy to game the system by putting 100 domains linking to each other that way.

All web sites have an IP address, which is just their location on the internet and a typical number would be  97.74.104.201 (which is for Godaddy.com). The red part is the class C section, and links from any other web sites with that same number will not count towards your Google ranking. With a place like Godaddy.com which has a 35% market share in the hosting business, that can be a LOT of sites you never get credit from even if they link to yours.

That’s why I recommend going with a smaller host with less than 5% market share, and using different ones for each domain you’re hosting (if you plan on linking them to each other). Of course the downside is if you have a lot of domains, having ten different hosting accounts can be a hassle. It’s really no more expensive, since many places charge in the $5 a month range.

Also one thing to consider is if you post on dofollow blogs (like this one) or are trying for a top commenter spot on a really popular site (to get the dofollow link that plugin provides), I’d check to see which host they are on to make sure it’s not the same as yours or the effort will be wasted. To check easily there’s a Class C checker here where you can enter in the URL’s without having to look each one up by hand.

Some of the ones I like that are dependable but don’t have the Godzilla market share that Godaddy has are:

FatCow Web Hosting The thing that’s unique is their servers are all powered by wind generated electricity and the $5 a year plan for placeholding a domain with email. They recently lowered their full hosting package down to $5.50 a month which is in line with all the others. This has been verified they don’t share netblocks with Godaddy.

JustHost They have $3.95 a month hosting and no limits on transfers or disk space for sites. They are on their own class C, again not shared with Godaddy. They also offer a transfer plan to make it easier to move an existing domain. While not as eco friendly as Fatcow, they do offer a more generous plan for less money.

In the next article, I’ll go over dofollow blogs and how to find them. Also the most popular commenter plugin which can really help build comments on a blog. I only comment on blogs that have one or the other or you get no link credit for the time you spent posting. Also for bloggers I’ll cover deep linking as well this week.  More on that next time.

Share and Enjoy:
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank
  • services sprite How a smaller web host increases your Google pagerank