Blog Home  Home Feed your aggregator (RSS 2.0)  
kevin Mocha - Saturday, November 03, 2007
Bookmarks collected from web.
 
 Saturday, November 03, 2007

nextdooryardsale(s) yardsalenextdoor yardsalecitymap(s) yardsaleminer yardsaledailymap

yardsalemapplet

Saturday, November 03, 2007 4:19:46 PM UTC  #    Comments [0]    |  Trackback

http://gsalr.com/ 

Very good layout and nice trip planner

 

http://thriftmapper.com

Can find the neighbor sales within specified miles.

 

http://www.yardsalebloodbath.com/

Yard sale blog

Saturday, November 03, 2007 3:03:27 PM UTC  #    Comments [0]    |  Trackback
  1. Add map check button on addnew page
  2. Add error page
  3. Add search page
  4. Add date check service (Remove or archive old items)
  5. Add admin management notification.
  6. Add gui for operator
  7. Add configuration to allow user to add ad in Craigslist way 
  8. Update grid code
  9. Update layout and style
  10. Add Logo
  11. Decide domain name
  12. Add small icon for sale types
Saturday, November 03, 2007 4:00:09 AM UTC  #    Comments [0]    |  Trackback
 Thursday, October 25, 2007
Thursday, October 25, 2007 3:49:48 PM UTC  #    Comments [0]    |  Trackback
 Monday, October 22, 2007

今天看了一篇关于网站运作、服务器负载的文章,讲得很独到,也很有意义,很现实,建议大家都看看,这些问题我相关很多创业项目忽略或处理得不够深。
这个文章中提到的问题很多看起来是很细的一件事情,但恰恰这就直接导致运作的成败
大家讨论,一定要仔细看完!
原文:

我做过多个2.0公司的技术顾问,简单的谈谈2.0公司遇到的问题(涉及隐私,我用A B C D代替),这里就不再赘述大家众所周知的页面静态化,缓存和代码安全等问题了,有点技术的2.0公司的CTO都知道这些东西,我们谈点发展之后的问题
A公司
A公司做的是SNS网站,程序是两个毛头小伙子做的,目标直指51,程序开发是一帆风顺,功能也比51牛多了,推广也是一帆风顺(A公司有自己独到的推广方式。但是当ALEXA到2W的时候问题出来了,每天下午4点左右,网站速度慢的惊人,基本上打不开,公司三台服务器CPU100%,让人郁闷的是公司的网络配置方式,居然是双WEB的集群,而单独一台DB数据库。整个瓶颈在数据库,于是我建议做DB的集群,分析了一下数据结构,MD,典型的WEB程序员的作品,没有一点数据库设计规范,功能实现是可以,如果要扩展,不可能,集群基本上是不可能的,怎么办?不能办,于是,一个月的时间修改程序,数据结构基本上换了一遍 前期砸进去的几十万打了水飘,用户走光了。
结论:WEB2.0前期设计的时候不应该只考虑功能,应该认真考虑一下底层和数据结构了。
B公司
B公司也是做的SNS网站,程序是3个人开发的,CEO是某名牌大学的经济学硕士,有点知己网的味道,又有一些特色出来,说实话,公司的潜力不错,CEO 有很强的运作能力,感觉前景不错。系统架构还行,但是---但是系统崩溃了,why?系统没有考虑到用户有个海量的说法,文件也有个海量的说法,用户的相册,图片全部存贮在WEB服务器的一个分区上,每个用户一个目录,而打开性能监视器,磁盘的IO高的惊人,基本上无暇响应。众所周知,文件系统也是一个数据库,单独大文件无所谓,关键是整个是300多个G的零碎文件,大量的读写操作,系统崩溃,数据丢失,文件系统的一个链断了,用户数据全部丢失!!!这是一个非常沉重的问题,系统整整停了一个月来做数据恢复(单独文件很容易,但是海量文件目前还没有一个软件能组织起来软件架构)。解决方案:修改程序架构,做分布式文件存贮(程序修改用了8天,但是文件转移却又用去了将近一个月),20万用户损失殆尽
结论:WEB2.0前期的设计应该有应付海量存贮的考虑,整个涉及了程序架构的修改,前期规划不好的话基本上思路一条。
C公司
C公司是一个值得尊敬的公司,CEO技术出身,和比尔盖茨一样,大学未毕业出来做网络,01到03年做短信狠赚了一笔,后来做的小项目也小有所成,说实话,我很佩服。公司做的是校友方面,但是更偏重myspace风格,注重个人主页,推广方面也下了大手笔。系统崩溃的原因其实很简单,由于采用的是微软的 SqlServer,而微软直接就告诉了我们,SQLSERVER不支持集群,他们的数据库超负载,100%就没有下去过,只能横向增加配置,采用了4路 4核CPU系统,但是系统还是崩溃了... 高互动注定了高负载。解决方案:现从基本入手,解决掉几个程序耗能大户,对数据库采用横向切割,将用户每10万进行分组,同时对数据库系统进行散列,将多个表垂直分割,同时进行文件分组,解决问题. 因为修改了数据结构,程序也基本上大动了一下。 好在系统没有出大错,损失不算很大,不过对用户体验造成了很坏的影响。
结论:WEB2.0前期设计应该有良好的散列考虑,程序应该能有配合的扩充性,符合数据库的扩充
D公司
D公司是一个各个方面做的比较好的公司,做了CDN加速,图片也独立分出了N个服务器,数据库不错的一个,(CTO是个数据库专家),系统崩溃的原因在于 WEB,按道理说WEB很容易做集群的,但是发现集群并解决不掉问题,他们的集群只允许做4台的WEB集群,但是4台都当掉了。仔细分析,找到原因,我估计整个也是大部分CTO最容易犯的一个错误,或者说他们根本就想不到的问题,就是WEB上传的问题,上传的时候由于时间的原因,线程是保持链接的,300 个线程就可以把一个WEB Server当掉了。解决方案:这个最简单,把上传和其他耗能大户分离出独立出来。程序改动不是很大,但是之前半个月速度满对用户体验的损失也不可小视。
结论:没有什么结论了,毕竟有海量访问经验的CTO不多,也就是那几个大站的。
总结:不是泼冷水,模仿其实是很容易的,随便找几个WEB程序员就能做到,并且很简单,速度可能还很高效,因为WEB2.0无非就是跟数据库打交道,会操作数据库就会做。但是真正做大并不容易,因为能应付海量访问的程序并不简单,现在的程序员都太自命不凡,其实真正有经验的并不多,不要相信一个月薪5K- -10K的程序员能给你多大的惊喜,能应付海量访问的程序员不是那个价格。如果您想做2.0,想做大,有几个个建议:
一.找DBMS的专家设计好数据库,大部分程序员都不知道分区视图,数据散列,数据组的概念
二.设计好程序架构(这个其实不难,有个高人指导就行了),保持良好的扩展性,成本考虑可以找兼职的系统架构设计师做好系统架构,确定将来的发展瓶颈。
三.考虑好文件存贮的问题。文件存贮的技术含量看起来很低,其实是很高的,可以考虑反向代理的方案。文件存贮出问题了,站点基本上就完蛋了,不仅仅是RAID的问题和存贮服务器的问题,不过道理倒是一点就破的
四.中国国情考虑,这个最致命,需要考虑电信和网通的问题,CDN并不能解决所有问题。互动性的东西并CDN并不是很有效。最关键的是,现有的双线机房遇到DDOS攻击基本上都会当掉,原因很简单,双线机房都是私人机房,本身就不会有太高的带宽,随便攻击一下就可以D掉(顺带提一个笑话,我知道一个双线机房的老总总共1G的带宽却买了4G的金盾墙,很简单800M的攻击就可以搞定)。
五.网络延迟的问题,这是分布式系统必须要考虑的,程序要能容忍0到100秒的数据延迟的功能,也就是同步的问题。不要小看这几十秒,问题很大的,如果你的站点有交互式功能,比如即时聊天,你可以想象一下是个什么结果。对于即时聊天的东西,可以用反向代理来解决(成本较高)。但是对于留言和评论的影响不大,但是如果系统为了健壮做了缓存和静态化的时候,这个东西可能就是灾难性的了。
六.分散你的程序,如果你没有太多的资金构筑动辄百万的服务器,建议把功能分散开来,比如相册一台服务器,留言一台服务器
七.看好你的程序员,如果没有很好的激励措施的话你的程序员很容易写出敷衍性的代码,而这个可能就是将来的大患,程序架构定下来后要修改可能就要费牛劲了。最好你的CTO能对你100%的衷心,100%的负责。
八.文件同步的问题,这个问题可能你觉得没有必要,如果你看一下网通和电信的TTL就明白了,同步要支持续传,并且不能是持续的,否则你的成本会高出N倍,不要期望能通过你的软件实现,交给你的程序员吧,把上面的话告诉他他就知道怎么做了。
九.最狠的一个问题了,也是吃亏最大的问题,不管您跟网警的关系多好,看好你的用户,审核好你的东西,一被停机可能就致命,本人就吃过N次亏。
十.最后,祝各位站长一番风顺,大展宏图。

朋友发的,不知道哪里看到的

Monday, October 22, 2007 1:13:16 PM UTC  #    Comments [0]    |  Trackback
 Friday, October 19, 2007

http://www.4guysfromrolla.com/webtech/061103-1.shtml

 

<input type="button" id="btnPrint" onclick="window.print()" value="Print">

Friday, October 19, 2007 9:17:28 PM UTC  #    Comments [0]    |   |  Trackback
 Thursday, October 18, 2007

1. Generate Yard Sale flyer (html and pdf)

2. Generate route map (list and directions)

3. RSS subscription

Thursday, October 18, 2007 4:44:42 AM UTC  #    Comments [0]    |  Trackback
Thursday, October 18, 2007 4:43:03 AM UTC  #    Comments [0]    |  Trackback
 Wednesday, October 17, 2007

Chapter2 New Management Responsibilities

ScrumMaster

The ScrumMaster fills the position normally occupied by the project manager. I’ve taken the liberty of redefining this role. While the traditional project manager is responsible for defining and managing the work, the ScrumMaster is responsible for managing the Scrum process. To put it simply, ScrumMasters make Scrum work.

The Scrum process defines practices, meetings, artifacts, and terminology. The ScrumMaster is responsible for knowing these and knowing how to apply them correctly. Scrum can be applied incorrectly, as we will see. But because the ScrumMaster has a clear understanding of how Scrum works and has experience applying Scrum, the ScrumMaster knows how to guide a Scrum project through the shoals of complexity.

Like sheep in an open field, individuals in a project tend to stray. The ScrumMaster’s job is to keep the flock together. In fact, I often compare a ScrumMaster to a sheepdog, responsible for keeping the flock together and the wolves away.

 

Product Owner

The Product Owner’s focus is return on investment (ROI). The Product Backlog provides the Product Owner with a powerful tool for directing the project, Sprint by Sprint, to provide the greatest value and ROI to the organization. The Product Owner uses the Product Backlog to give the highest priority to the requirements that are of highest value to the business, to insert nonfunctional requirements that lead to opportunistic releases and implementations of functionality, and to constantly adjust the product in response to changing business conditions, including new competitive offerings.

 

Team

In a huge reversal of ordinary management practices, Scrum makes the team responsible for managing development activities. Traditionally, the project manager tells the team what to do and manages its work. In Scrum, however, the team selects the work that it will do during each Sprint. After that initial selection is made, it is up to the team to figure out how to do the work at hand. The team decides how to turn the selected requirements into an increment of potentially shippable product functionality. The team devises its own tasks and figures out who will do them.

The pressure inherent in a 30-day Sprint, the commitment the team members make to each other to accomplish something, and the principles of self- organization and cross-functional responsibilities all help the team successfully fulfill this responsibility. The team unfailingly rises to the occasion and manages itself. When anyone outside the team tries to tell the team what to do, more damage than good usually results. I don’t know why Scrum’s self-organization works so well, but that hardly matters. After all, I know of hundreds of successful Scrum projects encompassing thousands of successful Sprints.

Wednesday, October 17, 2007 1:55:08 PM UTC  #    Comments [0]    |  Trackback

http://mattberseth.com/blog/2007/06/aspnet_ajax_use_pagemethods_pr.html

(Good Solution) Matt Berseth is always the best.

http://forums.asp.net/p/1104368/1717972.aspx

 

You could put a Hidden control on a form, set it's value at the server and then read it with JavaScript at the client.

 

You can do this in javascript, but you will not be able to put the javascript in an external (*.js) file.

Put the following code in your <head> section and it will work:  

    <script type="text/javascript" language="javascript">
        window.onload = function() {
            var a = '<%=Session["lon"]%>';
            alert(a);
        }
    </script>
 
Use <%# ...%> instead.
 
Wednesday, October 17, 2007 4:23:56 AM UTC  #    Comments [0]    |  Trackback
 Tuesday, October 16, 2007
 Monday, October 15, 2007

Chapter 1:

There are three legs that hold up every implementation of empirical process control: visibility, inspection, and adaptation.

I've limited my enumeration of complexity in software development to the three most significant dimensions: requirements, technology, and people.

image

The skeleton operates this way: At the start of an iteration, the team reviews what it must do. It then selects what it believes it can turn into an increment of potentially shippable functionality by the end of the iteration. The team is then left alone to make its best effort for the rest of the iteration. At the end of the iteration, the team presents the increment of functionality it built so that the stakeholders can inspect the functionality and timely adaptations to the project can be made.

The heart of Scrum lies in the iteration. The team takes a look at the requirements, considers the available technology, and evaluates its own skills and capabilities. It then collectively determines how to build the functionality, modifying its approach daily as it encounters new complexities, difficulties, and surprises. The team figures out what needs to be done and selects the best way to do it. This creative process is the heart of the Scrum's productivity.

There are only three Scrum roles: the Product Owner, the Team, and the ScrumMaster.           "Ham and Eggs!"

 

image

  1. Monthly Sprint planning meeting
  2. Daily Scrum meeting
  3. monthly Sprint review meeting
  4. Sprint retrospective meeting

image

 

image

image

Tasks should be divided so that each takes roughly 4 to 16 hours to finish. Tasks longer than 4 to 16 hours are considered mere placeholders for tasks that haven't yet been appropriately defined.

Monday, October 15, 2007 10:20:32 PM UTC  #    Comments [0]    |   |  Trackback

do postback in modalpopup:

http://forums.asp.net/p/1048185/1770706.aspx#1770706

http://www.aspdotnetcodes.com/ModalPopup_Postback.aspx

 

Force page on postback when clicking on Select link in GridView

http://forums.asp.net/t/1145438.aspx

 

Hooking up popupModalextender and GridView linkbutton

http://forums.asp.net/p/1153491/1887835.aspx

 

Asp.net popup control:

http://www.codeproject.com/aspnet/asppopup.asp

Monday, October 15, 2007 8:04:07 PM UTC  #    Comments [0]    |   |  Trackback
Copyright © 2009 Kevin Mocha. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: