Bo Wu's IT Lab

If winter comes, can spring be far behind?

Browsing Posts published by bo

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/

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.

转自: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幼儿园大班时就来到了南长“小红花”,曾是这里最小的学生,直到来了一个男同学华军后,一年级才有了两个学生。季晓丹非常聪明,跟着曹凤华老师学跳舞,学会后还能教别人跳。她说,当年“小红花”是非常光荣的,走在路上,人家都会指着说“她是小红花的”,自己特别骄傲。那时她和曹凤华老师睡在一起,她睡相不好时,脚还会搁到老师嘴上。

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

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

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

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/

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>

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.

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

 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

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.

CES 2011 Preview

No comments