Google
 

Sunday, October 28, 2007

Add blogger sitemap to google

The following sitemaps are available at Blogger.
yourblog.blogspot.com/atom.xml
yourblog.blogspot.com/rss.xml

--
Happy day, happy life!

Haven't got your own portal? Get it here!   http://www.diyportals.com/

Portal Features:
     A.Signup Free
     B.50MB of disk space
     C.1GB data transfer
     D.Plenty of free Modules
     E.Custom Business Module Development Services
     F.The Latest DotNetNuke (04.06.02)

How do I track visitors to my blog

ref:http://bloggerfordummies.blogspot.com/2006/03/how-do-i-track-visitors-to-my-blog.html

Many bloggers are interested in knowing how often their blog was viewed. What you need is a hits counter. You can get a free hit counter here at StatCounter.com. After you sign up for an account, you will be taken through a series of steps to generate codes to paste into your template. You will have to provide a title and give the url of your blog, choose a category and select from a series of options. You may just accept the default if you want a counter similar to what you see at the bottom of this page (you may also select the invisible option). There will be just one option where no default is given and that is whether your website uses frames. Select NO. There is a further option of whether you want the script generated for your counter to be XHTML compliant or not. For the New Blogger, I have earlier found that leaving this unticked can give a working counter. But if you are using a New Blogger template, it is probably betting to tick that option. When the codes are generated, highlight it and copy the codes.

Sign into Dashboard, select the relevant blog, click the TEMPLATE tab to get to the template editor to edit the template. Paste the codes after the <body> tag and before the </body> tag. If you chose an invisible counter, you can follow the instruction in the post exactly, and it doesn't matter whether you are using the old classic template or the New Blogger template. If you chose a visible counter, the counter will appear at the bottom of the page. If you want the visible counter to appear elsewhere and you are using the old classic Blogger template, you will have to refer to this post Blogger template tutorial (old classic template): Adding stuff via the template for a guide as to where to paste the script.

If you chose an invisible counter, the number of steps is very much less. Note that Statcounter have changed a bit since this post was written and I think I need to do an update/redit or a new post,

--
Happy day, happy life!

Haven't got your own portal? Get it here!  http://www.diyportals.com/

Portal Features:
     A.Signup Free
     B.50MB of disk space
     C.1GB data transfer
     D.Plenty of free Modules
     E.Custom Business Module Development Services
     F.The Latest DotNetNuke (04.06.02 )

101 Steps to Becoming a Better Blogger

ref:http://allthek.yculblog.com/post.1882958.html

I have noticed that the most successful bloggers online have all taken similar steps in becoming great bloggers. After lots
of research and study, I can also tell you that blogging is much more complex than it seems to be on the surface. However, with a bit of effort, I believe anyone can become a successful blogger.

Here are 101 steps to becoming a better blogger…

1. First, I'm going to assume you're using Wordpress. You are using Wordpress aren't you? The built-in SEO and pinging functions make Wordpress a search engine machine.

2. Sign up for Feedburner.

3. Post at least once a day.

4. Optimize your blog for the search engines.

5. Make sure you have an "About Me" page.

6. Submit your blog to 9Rules.

7. Submit your blog to NewsNow.

8. Let your readers see the REAL you. Blogging is more personal than conventional websites. Don't be afraid to tell a few
stories from your own life. By being real and personal, you will build a relationship with your readers based on loyalty and trust.

9. Blog and ping.

10. Submit your blog to rss and blog directories.

11. Use trackbacks.

12. Get involved in the blogosphere. Being a blogger is about being part of a community. Leave comments on other
blogs and get to know your favorite bloggers.

13. Give your blog it's own unique voice… You!

14. Spend 99% of your time focused on creating unique, quality content. Content is King; or as John Reese says, "content is King Kong".

15. Add a large RSS subscription button to your site.

16. Place an RSS feed link at the bottom of every post.

17. Set up a MyBlogLog Widget.

18. Encourage social bookmarking after every post.

Install these plugins to optimize your blog:

19. Akismet - This plugin helps eliminate comment spam.

20. Optimal Title - This plugin allows you to optimize the title of your blog post in order to improve your search engine rankings.

21. Ultimate Tag Warrior - The best tag system for WordPress.

22. Google Sitemap Generator - This plugin will enable you to automatically generate a Google sitemap for your blog.

23. Show Top Commentators - This plugin encourages feedback and discussion by rewarding the top commentators with a link back to their site in the sidebar.

24. Related Posts - This plugin will find other blog posts that are related to the current post. This encourages extra page views and keeps readers at your blog for a longer period of time.

25. Super Archive - One of the best archives system.

26. WP-Cache - This plugin is an extremely efficient caching system that will make your site much faster.

27. WP-ContactForm - This plugin allows your readers to easily email you. It also helps avoid spam.

28. Popularity Contest - This plugin determines which of your posts are most popular and then puts them in the sidebar.

29. Adsense Deluxe - This plugin makes it easy to implement Adsense into your blog.

30. Sociable - This plugin helps you spread your content through social bookmarking sites like Digg, del.icio.us,reddit, and others.

31. Feedburner Feed Replacement - This plugin directs all of your feed traffic to Feedburner, ensuring accurate readership stats. This plugin will also convert any existing subscribers from the old feed to the FeedBurner
one.

32. Create a custom blog design. Your blog is a symbol of your brand. Make it uniquely you.

33. Add photos to each of your posts.

34. Use tagging.

35. Share the link love.

36. Publish a full feed instead of a partial feed.

37. Consider approaching newspapers with a story about your blog. Remember, journalists are hungry for content and if
you can come up with a unique twist, then you could get some great coverage.

38. Persistence is the key. Give your blog at least 6 months before you start expecting great returns on all of your hard work. Believe me, it will pay off in the long run.

39. Submit exclusive content to high-profile sites.

40. Syndicate a press release. Take some time to craft a truly compelling and newsworthy press release and send it to some of the top journalists and bloggers. You can then submit it to the main press release sites, including PRWeb and PRLeap.

41. Turn your articles into podcasts.

42. Turn your articles into videos using PowerPoint to create an entertaining slideshow. Submit your video to all of the
popular video sites, including Google Video, YouTube, and others.

43. Submit to blog carnivals.

44. Participate in and submit to social web 2.0 sites, including Reddit, Digg, Delicious, Netscape, and Stumble Upon.

45. Turn your articles into downloadable reports/ebooks.

46. Join Blogburst.

47. Syndicate your articles to EzineArticles, GoArticles, iSnare,
American Chronicle, and other high-profile article directories.

48. Exchange guest posts with other bloggers.

49. Participate in group writing projects and memes.

50. Create a Squidoo lens that links back to your blog and established you as an industry expert in your chosen field.

51. Interview industry experts. This is one of the best ways to create original, engaging content.

52. Offer an e-mail newsletter in addition to RSS. An email newsletter allows you to form a closer relationship with
your visitors and picks up those who still aren't comfortable with RSS technology.

53. Ask your visitors for suggestions on how to improve your website's content because in the end, it's really all about your readers.

54. Create a customized 404 page.

55. Claim your blog on Technorati.

56. Enable automatic trackback and ping functionality.

57. If someone mentions your website on their blog, thank that blogger in the comments of the post and send them a thank you note. You can monitor any mentions of your blog using Google Alerts, Technorati, and Blogpulse.

58. Make contact with related bloggers online as well as offline.

59. Build up the readership of your blog using StumbleUpon Ads.

60. Edit yourself ruthlessly.

61. Translate your site into multiple languages. This is one tactic that few sites are taking advantage of.

62. Have your blog reviewed by ReviewMe.

63. Become a Guest Blogger.

64. Use Google Analytics.

65. Validate your feeds.

66. Claim your blog at Feedster.

67. Interact with your readers. Blogging is a two-way communication tool. The most successful bloggers interact with their readers. They answer reader emails and comments and ask for feedback and suggestions on a regular basis.

68. Write about something that you love. You will not succeed if you are working at something you don't enjoy. As Dale
Carnegie once said, "People rarely succeed unless they have fun in what they are doing."

69. Attend blogging conferences.

70. Invite your readers to submit articles.

Top Ways to Monetize Your Blog:

71. Kontera ContentLink

72. Text Link Ads

73. BlogAds

74. Ad Brite

75. Direct Ad sales & Sponsorships

76. Affiliate Sales

77. Google Adsense

78. ReviewMe

79. Bidvertiser

80. AuctionAds

81. Some of the best ways to monetize your RSS feed include the FeedBurner Ad Network and Text Link Ads.

Blog Writing Tips:

82. Learn to write great headlines.

83. Make your articles scannable. People don't read on the Internet. They scan.

84. Use numbers in your titles to attract attention.

85. Vary your content. Be unique. Create a quiz. Interview a fellow blogger. Poll your readers. Review a book. Shake it
up a bit to keep your readers interested.

86. Edit your writing ruthlessly.

87. Write like you talk.

88. Write with passion. It will come through in your writing.

89. Say something worth reading.

90. Always write with your reader in mind. Imagine that you are chatting with them over lunch at a local cafe.

91. Make your important points up front.

92. Include bullet point lists.

93. Create a "top 10″ list.

94. Create a "How To" article.

95. Create a weekly or monthly roundup of great posts from around the blogosphere.

96. Watch for trends in your industry.

97. Read voraciously and bring your readers the golden nuggets of everything you learn.

98. If you ever find yourself with writer's block, check out 101 Great Posting Ideas.

99. Leave your readers hungry for more. Give them a quick preview of what you'll be posting the next day. They
are much more likely to come back if they are already excited about the next days post. Anticipation is
one of the greatest marketing tactic.

100. Have fun! Blogging doesn't always have to be serious. Feel free to make your posts fun and entertaining.

101. If you're still looking for blogging tips, then here are some great resources: ProBlogger, JohnChow, and Successful Blog.

Kim Roach is a productivity junkie who blogs regularly at The Optimized Life. Read her articles on 50 Essential GTD Resources, How to Have a 46 Hour Day, Do You Need a Braindump, What They Don't Teach You in School, and
Free Yourself From the Inbox.


--
Happy day, happy life!

Haven't got your own portal? Get it here!  http://www.diyportals.com/

Portal Features:
     A.Signup Free
     B.50MB of disk space
     C.1GB data transfer
     D.Plenty of free Modules
     E.Custom Business Module Development Services
     F.The Latest DotNetNuke (04.06.02)

Adding Google sitemap to your blog

ref:http://blogger-tricks.blogspot.com/2006/04/adding-google-sitemap-to-your-blog.html

Adding Google sitemap to your blog is an easy way to add your blog URL to Google index and get your blog crawled. With Google sitemap, you can get better crawl coverage and search results to help people find more of your web pages. You also get detailed reports about how Google directs traffic to your blog and how Googlebot sees your pages. (Note: there is some controversy over the usefulness of this Google sitemap. with Blogger, you have no access to Blogger's servers and thus have no chance to upload a real sitemap. Google came up with a way for bloggers using Google Blogger to add a kind of sitemap to their blog by making use of the feed. Note this this is in no way making a real sitemap, but I supposed it is still better than nothing. This would be especially true if you set you feed to "Short" and not "Full". I set my main blogs feed to short and am thinking a doing my own version of a sitemap which will consist of a post with links to all the posts in the blog and place a link to that post in the sidebar of the blog. In this way, there will be a links for the search engine spider to follow all the posts. However, this will involve updating the post each time you make a new post, and a lot of work if you frequently update your blog. Maybe I would do both. This is because although some doubt the usefullness of adding a Google sitemap for a blog this way, you will get a report of any problems that the Google spider may encounter when indexing your blog and having my own version of a sitemap in the sidebar will help the spider crawl all my posts.

How to add Google sitemap to your blog

To add Google sitemap to your blog, go to Google sitemap, and sign in with your Google Account (create one if you don't have one). In the Add site box, enter your blog url as shown in the screenshot below, and click OK. (In this post, there will be many screenshots. To enlarge them, click on the screenshot)


You will get a "Your site has been added to your account. Verify your ownership to view detailed statistics and errors for it" message and a button to verify your ownership.

Click the "Verify" text hyperlink, and you will be taken to a selection box to select your verification method.

Choose "Add a Meta tag". A meta tag will be generated for you.


Highlight this meta tag and copy it to clipboard. Sign into Dashboard, select your blog, click TEMPLATE tab and paste the meta tag in between the <head> and </head> tags. Save and republish. Check the "I've added the META tag in the home page of http://your-blog-url.com/" box and click the [verify] button.

There will be a message "We do not know about all the pages of your site. [Submit a Sitemap] to tell us more about your site. Click [Submit a Sitemap] and in the "Choose type..." selection box, select "Add General Web Sitemap".

Tick
[tick] I've created a Sitemap in a supported format. [?]
[tick] I've uploaded my Sitemap to the highest-level directory to which I have access.
[tick] My Sitemap URL is: [ ]

then enter the site feed URL into the "My Sitemap URL is: box. You can get the site feed url of your blog from SETTINGS. Click SETTINGS, SITE FEED tabs in the Dashboard. In the case of blogspot, just add /atom.xml to the end of the blog URL. (For example, the site feed URL of this blog is http://blogger-tricks.blogspot.com/atom.xml.) Then click " Add Web Sitemap" and you are done.

Update 22 April 2007: This post was written before New Blogger (formerly Blogger Beta) was introduced. If you are with New Blogger, use the feed URL. There are 4 possible feed URL for the New blogger:

http://yourblog.blogspot.com/atom.xml
http://yourblog.blogspot.com/rss.xml
http://yourblog.blogspot.com/feeds/posts/full
http://yourblog.blogspot.com/feeds/posts/default?alt=rss

substituting "your blog" with the actual name of your blog. The feed found by Feedburner for this blog are:

http://blogger-tricks.blogspot.com/feeds/posts/default
http://blogger-tricks.blogspot.com/feeds/posts/default?alt=rss


There is one further thing you can do, and that is to enable enhanced image search. At the bottom of the page, tick "Enhanced Image Search".

What does it mean to opt-in to enhanced image search? If you choose to enable enhanced image search, Google will use tools such as Google Image Labeler to associate the images included in your site with labels that will improve indexing and search quality of those images.

Ping Google sitemap

Now, whenever you update your blog, just ping Google sitemap by filling in the form below. Enter your blog feed url (***.blogspot.com/atom.xml) and click "Ping Google Sitemap" button.



Bookmark this page so that you can return to it whenever you want to ping Google Sitemap, which should be whenever you update your blog.

Update 11 July 2007: I think I need to draw your attention to My Advice on Google Sitemaps - Verify, but Don't Submit. There was a comment in that post which makes me want to rethink and hopefully do some research when I have time and if I remember.

For your convenience, I paste that comment from that site here:

"Hello i'd like to share my experience of sitemaps with you... i have a small site - 170 pages that i launced with a sitemap - after 3 months i was frustrated with only a handful of pages showing up in the SERPS - so i removed the sitemap and voila - within 48 hours 90% of my site was crawled and my traffic rocketed. I used a Google sitemap generator tool to create the sitemap in the first place - probably wasnt correctly formatted but it still verified ok with G. The moral of the story - IMO don't use a sitemap unless you A) Know exactly what you are doing and B) you have to."

You have any information or experience regarding this, I hope you will comment and let us know.

--
Happy day, happy life!

Haven't got your own portal? Get it here!   http://www.diyportals.com/

Portal Features:
     A.Signup Free
     B.50MB of disk space
     C.1GB data transfer
     D.Plenty of free Modules
     E.Custom Business Module Development Services
     F.The Latest DotNetNuke (04.06.02)

Sunday, October 21, 2007

个人独资企业登记管理办法

ref:http://www.baic.gov.cn/qideng/flfg/32_21.htm
(1999年8月30日第九届全国人民代表大会常务委员会第十一次会议通过)


  第一章 总则
  第一条 为了规范个人独资企业的行为,保护个人独资企业投资人和债权人的合法权益,维护社会经济秩序,促进社会主义市场经济的发展,根据宪法,制定本法。
  第二条 本法所称个人独资企业,是指依照本法在中国境内设立,由一个自然人投资,财产为投资人个人所有,投资人以其个人财产对企业债务承担无限责任的经营实体。
  第三条 个人独资企业以其主要办事机构所在地为住所。
  第四条 个人独资企业从事经营活动必须遵守法律、行政法规,遵守诚实信用原则,不得损害社会公共利益。
  个人独资企业应当依法履行纳税义务。
  第五条 国家依法保护个人独资企业的财产和其他合法权益。
  第六条 个人独资企业应当依法招用职工。职工的合法权益受法律保护。
  个人独资企业职工依法建立工会,工会依法开展活动。
  第七条 在个人独资企业中的中国共产党党员依照中国共产党章程进行活动。
  第二章 个人独资企业的设立
  第八条 设立个人独资企业应当具备下列条件:
  (一)投资人为一个自然人;
  (二)有合法的企业名称;
  (三)有投资人申报的出资;
  (四)有固定的生产经营场所和必要的生产经营条件;
  (五)有必要的从业人员。
  第九条 申请设立个人独资企业,应当由投资人或者其委托的代理人向个人独资企业所在地的登记机关提交设立申请书、投资人身份证明、生产经营场所使用证明等文件。委托代理人申请设立登记时,应当出具投资人的委托书和代理人的合法证明。
  个人独资企业不得从事法律、行政法规禁止经营的业务;从事法律、行政法规规定须报经有关部门审批的业务,应当在申请设立登记时提交有关部门的批准文件。
  第十条 个人独资企业设立申请书应当载明下列事项:
  (一)企业的名称和住所;
  (二)投资人的姓名和居所;
  (三)投资人的出资额和出资方式;
  (四)经营范围。
  第十一条 个人独资企业的名称应当与其责任形式及从事的营业相符合。
  第十二条 登记机关应当在收到设立申请文件之日起十五日内,对符合本法规定条件的,予以登记,发给营业执照;对不符合本法规定条件的,不予登记,并应当给予书面答复,说明理由。
  第十三条 个人独资企业的营业执照的签发日期,为个人独资企业成立日期。
  在领取个人独资企业营业执照前,投资人不得以个人独资企业名义从事经营活动。
  第十四条 个人独资企业设立分支机构,应当由投资人或者其委托的代理人向分支机构所在地的登记机关申请登记,领取营业执照。
  分支机构经核准登记后,应将登记情况报该分支机构隶属的个人独资企业的登记机关备案。
  分支机构的民事责任由设立该分支机构的个人独资企业承担。
  第十五条 个人独资企业存续期间登记事项发生变更的,应当在作出变更决定之日起的十五日内依法向登记机关申请办理变更登记。
  第三章 个人独资企业的投资人及事务管理
  第十六条 法律、行政法规禁止从事营利性活动的人,不得作为投资人申请设立个人独资企业。
  第十七条 个人独资企业投资人对本企业的财产依法享有所有权,其有关权利可以依法进行转让或继承。
  第十八条 个人独资企业投资人在申请企业设立登记时明确以其家庭共有财产作为个人出资的,应当依法以家庭共有财产对企业债务承担无限责任。
  第十九条 个人独资企业投资人可以自行管理企业事务,也可以委托或者聘用其他具有民事行为能力的人负责企业的事务管理。
  投资人委托或者聘用他人管理个人独资企业事务,应当与受托人或者被聘用的人签订书面合同,明确委托的具体内容和授予的权利范围。
  受托人或者被聘用的人员应当履行诚信、勤勉义务,按照与投资人签订的合同负责个人独资企业的事务管理。
  投资人对受托人或者被聘用的人员职权的限制,不得对抗善意第三人。
  第二十条 投资人委托或者聘用的管理个人独资企业事务的人员不得有下列行为:
  (一)利用职务上的便利,索取或者收受贿赂;
  (二)利用职务或者工作上的便利侵占企业财产;
  (三)挪用企业的资金归个人使用或者借贷给他人;
  (四)擅自将企业资金以个人名义或者以他人名义开立帐户储存;
  (五)擅自以企业财产提供担保;
  (六)未经投资人同意,从事与本企业相竞争的业务;
  (七)未经投资人同意,同本企业订立合同或者进行交易;
  (八)未经投资人同意,擅自将企业商标或者其他知识产权转让给他人使用;
  (九)泄露本企业的商业秘密;
  (十)法律、行政法规禁止的其他行为。
  第二十一条 个人独资企业应当依法设置会计账簿,进行会计核算。
  第二十二条 个人独资企业招用职工的,应当依法与职工签订劳动合同,保障职工的劳动安全,按时、足额发放职工工资。
  第二十三条 个人独资企业应当按照国家规定参加社会保险,为职工缴纳社会保险费。
  第二十四条 个人独资企业可以依法申请贷款、取得土地使用权,并享有法律、行政法规规定的其他权利。
  第二十五条 任何单位和个人不得违反法律、行政法规的规定,以任何方式强制个人独资企业提供财力、物力、人力;对于违法强制提供财力、物力、人力的行为,个人独资企业有权拒绝。
  第四章 个人独资企业的解散和清算
  第二十六条 个人独资企业有下列情形之一时,应当解散;
  (一)投资人决定解散;
  (二)投资人死亡或者被宣告死亡,无继承人或者继承人决定放弃继承;
  (三)被依法吊销营业执照;
  (四)法律、行政法规规定的其他情形。
  第二十七条 个人独资企业解散,由投资人自行清算或者由债权人申请人民法院指定清算人进行清算。
  投资人自行清算的,应当在清算前十五日内书面通知债权人,无法通知的,应当予以公告。债权人应当在接到通知之日起三十日内,未接到通知的应当在公告之日起六十日内,向投资人申报其债权。
  第二十八条 个人独资企业解散后,原投资人对个人独资企业存续期间的债务仍应承担偿还责任,但债权人在五年内未向债务人提出偿债请求的,该责任消灭。
  第二十九条 个人独资企业解散的,财产应当按照下列顺序清偿:
  (一)所欠职工工资和社会保险费用;
  (二)所欠税款;
  (三)其他债务。
  第三十条 清算期间,个人独资企业不得开展与清算目的无关的经营活动。在按前条规定清偿债务前,投资人不得转移、隐匿财产。
  第三十一条 个人独资企业财产不足以清偿债务的,投资人应当以其个人的其他财产予以清偿。
  第三十二条 个人独资企业清算结束后,投资人或者人民法院指定的清算人应当编制清算报告,并于十五日内到登记机关办理注销登记。
  第五章 法律责任
  第三十三条 违反本法规定,提交虚假文件或采取其他欺骗手段,取得企业登记的,责令改正,处以五千元以下的罚款;情节严重的,并处吊销营业执照。
  第三十四条 违反本法规定,个人独资企业使用的名称与其在登记机关登记的名称不相符合的,责令限期改正,处以二千元以下的罚款。
  第三十五条 涂改、出租、转让营业执照的,责令改正,没收违法所得,处以三千元以下的罚款;情节严重的,吊销营业执照。
  伪造营业执照的,责令停业,没收违法所得,处以五千元以下的罚款。构成犯罪的,依法追究刑事责任。
  第三十六条 个人独资企业成立后无正当理由超过六个月未开业的,或者开业后自行停业连续六个月以上的,吊销营业执照。
  第三十七条 违反本法规定,未领取营业执照,以个人独资企业名义从事经营活动的,责令停止经营活动,处以三千元以下的罚款。
  个人独资企业登记事项发生变更时,未按本法规定办理有关变更登记的,责令限期办理变更登记;逾期不办理的,处以二千元以下的罚款。
  第三十八条 投资人委托或者聘用的人员管理个人独资企业事务时违反双方订立的合同,给投资人造成损害的,承担民事赔偿责任。
  第三十九条 个人独资企业违反本法规定,侵犯职工合法权益,未保障职工劳动安全,不缴纳社会保险费用的,按照有关法律、行政法规予以处罚,并追究有关责任人员的责任。
  第四十条 投资人委托或者聘用的人员违反本法第二十条规定,侵犯个人独资企业财产权益的,责令退还侵占的财产;给企业造成损失的,依法承担赔偿责任;有违法所得的,没收违法所得;构成犯罪的,依法追究刑事责任。
  第四十一条 违反法律、行政法规的规定强制个人独资企业提供财力、物力、人力的,按照有关法律、行政法规予以处罚,并追究有关责任人员的责任。
  第四十二条 个人独资企业及其投资人在清算前或清算期间隐匿或转移财产,逃避债务的,依法追回其财产,并按照有关规定予以处罚;构成犯罪的,依法追究刑事责任。
  第四十三条 投资人违反本法规定,应当承担民事赔偿责任和缴纳罚款、罚金,其财产不足以支付的,或者被判处没收财产的,应当先承担民事赔偿责任。
  第四十四条 登记机关对不符合本法规定条件的个人独资企业予以登记,或者对符合本法规定条件的企业不予登记的,对直接责任人员依法给予行政处分;构成犯罪的,依法追究刑事责任。
  第四十五条 登记机关的上级部门的有关主管人员强令登记机关对不符合本法规定条件的企业予以登记,或者对符合本法规定条件的企业不予登记的,或者对登记机关的违法登记行为进行包庇的,对直接责任人员依法给予行政处分;构成犯罪的,依法追究刑事责任。
  第四十六条 登记机关对符合法定条件的申请不予登记或者超过法定时限不予答复的,当事人可依法申请行政复议或提起行政诉讼。
  第六章 附则
  第四十七条 外商独资企业不适用本法。
  第四十八条 本法自2000年1月1日起施行。


--
Happy day, happy life!

Tuesday, October 09, 2007

Procedure to combine the 0x89ABCDEF and 0x76543210 as 0x765432EF

#include <stdio.h>
#include <stdlib.h>

/*
Procedure to combine the
0x89ABCDEF and 0x76543210
as 0x765432EF
*/

int main(int argc, char* argv[])
{
int x = 0x89ABCDEF;
int y = 0x76543210;
int z = (x & 0xFF) + (y & ~0xFF);
printf("%X \n",z);
system("PAUSE");
return 0;
}

--
Happy day, happy life!

Procedure to identify the machine is little endian or big endian

#include <stdio.h>
#include <stdlib.h>
/*
 Procedure to identify the machine is
 little endian or big endian
*/

// Using
// Compile it and run it on the target machine which you want to check.

typedef unsigned char* byte_pointer;

int is_little_endian()
{
    int test = 0x0000FFFF;
    int i;
    byte_pointer p = (byte_pointer)&test;
    return p[0] == 0xFF;
}

int main(int argc, char* argv[])
{
    printf("Current machine is%slittle endian \n",is_little_endian()? " ":"not");
    system("PAUSE");
    return 0;
}

--
Happy day, happy life!

msup 微软访谈

ref: http://www.msup.com.cn/msdonwload.aspx

. 张亚勤:中国信息产业成功微软中国才可能成功

. 访微软研发集团总裁张亚勤:从技术专家到智造布道者

. 微软总部华人谈软件生涯:功夫在身外

. 专访微软VB总经理:VSTS背后的华人推动者

. 访微软亚洲工程院软件测试开发工程师李和恒

. 专访微软测试经理Francis Zhou:软件测试的未来在哪里

. 访微软共享源代码总监:开源不等于开放标准

. 访微软(中国)公司顾问咨询部经理张彤川先生

. 访微软中国研发集团战略合作部资深总监申元庆

. 访微软高管:从Office起步推进统一通信

. 访微软移动通信高级副总裁克努克

. 微软上周开始测试Windows Live新界面

. 比尔·盖茨:微软是如何取得成功的

. 比尔·盖茨:怎样才能创建革命性的软件

. 访微软中国有限公司人力资源总监邓康明

. 访微软副总裁兼首席信息官Dick Devenuti先生

. 访原中国总裁唐骏:微软如何激发员工的潜能?

. 访微软人力资源部的戴维普里查先生

. 访微软(中国)公司顾问咨询部经理张彤川先生

. 微软中国研发集团总裁张亚勤在引擎启动大会

. 盖茨专访:三分钟就能让用户接受Vista

. 访微软Office副总裁:我们是如何打造印钞机的

. 访微软共享源代码计划总监Jason Matusow先生

. 访微软CEO鲍尔默:继续保持Windows 的创新

. 访微软测试组长陈宏刚:趣谈微软软件测试人员

. 访微软CEO鲍尔默:下一版Windows 不需要再等5

. 访微软MVP郭安定:畅谈Office 开发

. 访微软研究部掌门: 数字时代如何与大学合作

. 访微软中国总裁陈永正:实现微软中国软着陆

. 微软张亚勤:让中国""" "及全球



--
Happy day, happy life!

Think it over……好好想想……

Today we have higher buildings and wider highways,but shorter temperaments and narrower points of view;
今天我们拥有了更高层的楼宇以及更宽阔的公路,但是我们的性情却更为急躁,眼光也更加狭隘;

We spend more,but enjoy less;
我们消耗的更多,享受到的却更少;

We have bigger houses,but smaller famillies;
我们的住房更大了,但我们的家庭却更小了;

We have more compromises,but less time;
我们妥协更多,时间更少;

We have more knowledge,but less judgment;
我们拥有了更多的知识,可判断力却更差了;

We have more medicines,but less health;
我们有了更多的药品,但健康状况却更不如意;

We have multiplied out possessions,but reduced out values;
我们拥有的财富倍增,但其价值却减少了;

We talk much,we love only a little,and we hate too much;
我们说的多了,爱的却少了,我们的仇恨也更多了;

We reached the Moon and came back,but we find it troublesome to cross our own street and meet our neighbors;
我们可以往返月球,但却难以迈出一步去亲近我们的左邻右舍;

We have conquered the uter space,but not our inner space;
我们可以征服外太空,却征服不了我们的内心;

We have highter income,but less morals;
我们的收入增加了,但我们的道德却少了;

These are times with more liberty,but less joy;
我们的时代更加自由了,但我们拥有的快乐时光却越来越少;

We have much more food,but less nutrition;
我们有了更多的食物,但所能得到的营养却越来越少了;

These are the days in which it takes two salaries for each home,but divorces increase;
现在每个家庭都可以有双份收入,但离婚的现象越来越多了;

These are times of finer houses,but more broken homes;
现在的住房越来越精致,但我们也有了更多破碎的家庭;

That's why I propose,that as of today;
这就是我为什么要说,让我们从今天开始;

You do not keep anything for a special occasion.because every day that you live is a SPECIAL OCCASION.
不要将你的东西为了某一个特别的时刻而预留着,因为你生活的每一天都是那么特别;

Search for knowledge,read more ,sit on your porch and admire the view without paying attention to your needs;
寻找更我的知识,多读一些书,坐在你家的前廊里,以赞美的眼光去享受眼前的风景,不要带上任何功利的想法;

Spend more time with your family and friends,eat your favorite foods,visit the places you love;
花多点时间和朋友与家人在一起,吃你爱吃的食物,去你想去的地方;

Life is a chain of moments of enjoyment;not only about survival;
生活是一串串的快乐时光;我们不仅仅是为了生存而生存;

Use your crystal goblets.Do not save your best perfume,and use it every time you feel you want it.
举起你的水晶酒杯吧。不要吝啬洒上你最好的香水,你想用的时候就享用吧!

Remove from your vocabulary phrases like"one of these days"or "someday";
从你的词汇库中移去所谓的" 有那么一天"或者 "某一天"

Let's write that letter we thought of writing "one of these days"!
曾打算"有那么一天 "去写的信,就在今天吧!

Let's tell our families and friends how much we love them;
告诉家人和朋友,我们是多么地爱他们;

Do not delay anything that adds laughter and joy to your life;
不要延迟任何可以给你的生活带来欢笑与快乐的事情;

Every day,every hour,and every minute is special;
每一天、每一小时、每一分钟都是那么特别;

And you don't know if it will be your last.
你无从知道这是否最后刻。



--
Happy day, happy life!

Intel IA32 Floating-Point Arithmetic problems with GCC

#include <stdio.h>
#include <stdlib.h>

double recip( int denom)
{
    return 1.0 / (double)denom;
}

void do_nothing(){}

void test1( int denom)
{
    double r1,r2;
    int t1,t2;

    r1 = recip(denom);
    r2 = recip(denom);
    t1 = r1 == r2;
    printf("test1 t1: r1 %f %c= r2 %f\n",r1,t1 ? '=' : '!',r2);
    do_nothing();
    t2 = r1 == r2;
    printf("test1 t2: r1 %f %c= r2 %f\n",r1,t2 ? '=' : '!',r2);
}

void test2(int denom)
{
    double r1;
    int t1;
    r1 = recip(denom);
    t1 = r1 == 1.0 /(double)denom;
    printf("test2 t1: r1 %f %c= 1.0/10.0 \n",r1,t1 ? '=' : '!');
}

long double recip_l(int denom)
{
    return 1.0/(long double)denom;
}

void test3(int denom)
{
    long double r1,r2;
    int t1, t2, t3;

    r1 = recip(denom);
    r2 = recip(denom);
    t1 = r1 == r2;
    printf("test3 t1: r1 %f %c= r2 %f\n",(double)r1,t1 ? '=' : '!',(double)r2);

    do_nothing();
    t2 = r1 == r2;
    printf("test3 t2: r1 %f %c= r2 %f\n",(double)r1,t2 ? '=' : '!',(double)r2);

    t3 = r1 == 1.0 /(long double)denom;
    printf("test3 t3: r1 %f %c= 1.0/10.0 \n",(double)r1,t3 ? '=' : '!');
}

int main(int argc, char* argv[])
{
    test1(10);
    test2(10);
    test3(10);
    system("PAUSE");
    return 0;
}

// Using
// Compile the code with GCC with compile parameters repectively
// a. -O2
// b. -ffloat-store

//Result running on redhat linux
//[root@localhost download]# gcc -O2 2.4.6.c
//[root@localhost download]# ./a.out
//test1 t1: r1 0.100000 != r2 0.100000
//test1 t2: r1 0.100000 == r2 0.100000
//test2 t1: r1 0.100000 == 1.0/10.0
//test3 t1: r1 0.100000 == r2 0.100000
//test3 t2: r1 0.100000 == r2 0.100000
//test3 t3: r1 0.100000 == 1.0/10.0
//sh: line 1: PAUSE: command not found
//
//
//[root@localhost download]# gcc -ffloat-store 2.4.6.c
//[ root@localhost download]# ./a.out
//test1 t1: r1 0.100000 == r2 0.100000
//test1 t2: r1 0.100000 == r2 0.100000
//test2 t1: r1 0.100000 != 1.0/10.0
//test3 t1: r1 0.100000 == r2 0.100000
//test3 t2: r1 0.100000 == r2 0.100000
//test3 t3: r1 0.100000 == 1.0/10.0
//sh: line 1: PAUSE: command not found



--
Happy day, happy life!

Monday, October 08, 2007

How to get the decimal value from the bit representation of a float value?(3)

For example: Float value is 3490593.0

Bit representation on little endian machine: 840C554A

Actual Bit representation is : 4A550C84

Bit representation: 01001010010101010000110010000100

Float interpretation: sign 1 bit, exponent 8 bits, fraction 23 bits.

         Sign    Exponent          fraction

           0     10010100     10101010000110010000100

Decimal

value              148         5573764/2^23

 

Use normal interpretation:

E = 148-(2^(8-1)-1)

(1 + 5573764/2^23)*(2^(148-(2^(8-1)-1)))

2^23 = 8388608;

148-(2^(8-1)-1) = 21;

(1 + 5573764/2^23) = 1. 664444446563720703125

(2^(148-(2^(8-1)-1))) = 2097152

 

(1 + 5573764/2^23)*(2^(148-(2^(8-1)-1))) = 1. 664444446563720703125* 2097152= 3490593



--
Happy day, happy life!

How to get the decimal value from the bit representation of a float value?(2)

For example: Float value is 54321.1

Bit representation on little endian machine: 1A315447

Actual Bit representation is : 4754311A

Bit representation: 01000111010101000011000100011010

Float interpretation: sign 1 bit, exponent 8 bits, fraction 23 bits.

         Sign    Exponent          fraction

           0     10001110     10101000011000100011010

Decimal

value              142         5517594/2^23

 

Use normal interpretation:

E = 142-(2^(8-1)-1)

(1 + 5517594/2^23)*(2^(142-(2^(8-1)-1)))

2^23 = 8388608;

142-(2^(8-1)-1) = 15;

(1 + 5517594/2^23) = 1. 6577484607696533203125

(2^(142-(2^(8-1)-1))) = 32768

 

(1 + 5517594/2^23)*(2^(142-(2^(8-1)-1))) = 1. 6577484607696533203125 * 32768= 54321.1015625

~54321.1



--
Happy day, happy life!

How to get the decimal value from the bit representation of a float value?

For example: Float value is 12345.0

Bit representation on little endian machine: 00E44046

Actual Bit representation is : 4640E400

Bit representation: 01000110010000001110010000000000

Float interpretation: sign 1 bit, exponent 8 bits, fraction 23 bits.

         Sign    Exponent          Fraction

           0      10001100    10000001110010000000000

Decimal

value              140         4252672/2^23

 

Use normal interpretation:

E = 140-(2^(8-1)-1)

(1 + 4252672/2^23)*(2^(140-(2^(8-1)-1)))

2^23 = 8388608;

140-(2^(8-1)-1) = 13;

(1 + 4252672/2^23) = 1.5069580078125

(2^(140-(2^(8-1)-1))) = 8192

 

(1 + 4252672/2^23)*(2^(140-(2^(8-1)-1))) = 1.5069580078125 * 8192 = 12345

 


--
Happy day, happy life!

Tuesday, September 11, 2007

Differences between implicit and explicit implement interface in .Net

1.To explicit implement interface, the scope directive can't be used.

     public class A : ITrace
    {       
        // implicit implement interface ITrace
        
public  string TraceSelf()
        {
            
return "A";
        }
    }
    
public interface  ITrace
    {
        
string TraceSelf();            
    }
    
public class B : ITrace
    {       
     // explicit implement the interface ITrace
        
string  ITrace.TraceSelf()
        {
            
return "B" ;
        }
    }
   

2.To retrieve the explicit implemented members, the only way is to use interface. The  explicit implemented member is default private to the class object.


    [TestFixture]
    
public class TestClass1
    {
        [Test]
        
public void TestMethod()
        {
            A a 
= new A();
            // Call the implicit implemented method
            a.TraceSelf();
        }
        [Test]
        
public  void TestMethod1()
        {            
            B b 
=  new B();
            
// b.TraceSelf(); can't call the implemented method this way
            ((ITrace)b).TraceSelf();
        }
    }


--
Happy day, happy life!

How new and override directives affect interface and class hierarchies in C#

The following sample codes will explain how new and override directives affect interface and class hierarchies.

1.override
If you wish to override the base-class method when instantiating a base-class type with a subclass reference, you need to use the override directive.

Sample code:
public interface ITrace
{
string TraceSelf();
}
public class A:ITrace
{
public virtual string TraceSelf()
{
return "A";
}
}
public class B:A
{
public override string TraceSelf()
{
return " B";
}
}
public class C:B
{
public override string TraceSelf()
{
return " C";
}
}

Expected Condition:
All following test cases will be pass.

Test Code:
[TestFixture]
public class TestInterfaceAndClassHierarchiesOverride
{
[Test]
public void TestMethod()
{
ITrace trace
= new A();
Assert.AreEqual(
"A",trace.TraceSelf());
}
[Test]
public void TestMethod1()
{
ITrace trace
= new B();
Assert.AreEqual(
" B",trace.TraceSelf());
// The B only override the implementation of A, and it do inherit the the implementation of the interface of ITrace. // So the value traced is "B" not "A" by interface ITrace.
// This is the usual condition we encountered.
}
[Test]
public void TestMethod2()
{
ITrace trace
= new C();
Assert.AreEqual(
"C",trace.TraceSelf ());
}
[Test]
public void TestMethod3()
{
A a
= new C();
Assert.AreEqual(
"C",a.TraceSelf ());
}
[Test]
public void TestMethod4()
{
A a
= new B();
Assert.AreEqual(
"B",a.TraceSelf ());
}
}


2.New
If you want to provide the base-class behavior instead, use the new directive , with or without virtual, at the base class.

Sample Code:
public interface ITrace
{
string TraceSelf();
}
public class A:ITrace
{
public virtual string TraceSelf() // Here the virtual is optional
{
return " A";
}
}
public class B:A
{
public new string TraceSelf()
{
return "B" ;
}
}
public class C:B
{
public new string TraceSelf()
{
return "C" ;
}
}

Expected result:
All following test cases will be pass.

Test Code:
[TestFixture]
public class TestInterfaceAndClassHierarchiesNew
{
[Test]
public void TestMethod()
{
ITrace trace
= new A();
Assert.AreEqual(
"A",trace.TraceSelf());
}
[Test]
public void TestMethod1()
{
ITrace trace
= new B();
Assert.AreEqual(
" A",trace.TraceSelf());
// To trace the value from B by interface ITrace is "A" not "B".
// The method of A implemented the ITrace interface has been newed by B.
// So the B class has not implemented the ITrace interface.

}
[Test]
public void TestMethod2()
{
ITrace trace
= new C();
Assert.AreEqual(
" A",trace.TraceSelf());

A a
= new C();
Assert.AreEqual(
" A",a.TraceSelf());
}
[Test]
public void TestMethod3()
{
A a
= new C();
Assert.AreEqual(
" A",a.TraceSelf());
// The inherited method from A has been newed by C. // So The value traced from C object by A is "A" not "C".
}
[Test]
public void TestMethod4()
{
A a
= new B();
Assert.AreEqual (
"A",a.TraceSelf());
}
}

3.Interface hierarchies

Sample Code:
public interface ITrace
{
string TraceSelf();
}
public class A:ITrace
{
public virtual string TraceSelf()
{
return "A";
}
}
public class B:A,ITrace
{
public new string TraceSelf()
{
return "B";
}
}
public class C:B,ITrace
{
public new string TraceSelf()
{
return "C";
}
}

Expected Result:
All following test cases will be pass.

Test Code:
[TestFixture]
public class TestInterfaceAndClassHierarchiesNewWithInterfaceHierarchie
{
[Test]
public void TestMethod()
{
ITrace trace
= new A();
Assert.AreEqual(
"A",trace.TraceSelf());
}
[Test]
public void TestMethod1()
{
ITrace trace
= new B();
Assert.AreEqual(
"B",trace.TraceSelf ()); // The B does implement the ITrace interface, so the value traced by the interface ITrace is "B" not "A", // although B has its own implementation of ITrace instead of A's with the new directive
}
[Test]
public void TestMethod2()
{
ITrace trace
= new C();
Assert.AreEqual(
"C",trace.TraceSelf ());
}
[Test]
public void TestMethod3()
{
A a
= new C();
Assert.AreEqual(
"A",a.TraceSelf ());
// Because C newed the method inherited from A, // so the value traced by the A from C object is "A" not "C"
}
[Test]
public void TestMethod4()
{
A a
= new B();
Assert.AreEqual(
"A ",a.TraceSelf());
}
}

--
Happy day, happy life!