June 2007 - Posts
为什么要融资?
借助资本的翅膀,博客园将飞得更快,飞得更高。
看到园子里这么多优秀的人才,却在为生存而工作、为“软件民工”而痛心、为“30岁之后做什么”而迷茫,博客园深知这群人的力量,却还没能让群人的力量爆发出来。通过引入投资,希望能给园子里的优秀人才提供更多的发展机会。
博客园需要通过引入投资突破目前的发展瓶颈,成立公司、组建团队、通过组织的力量发展博客园,为博客园用户提供更多更好的服务,帮助博客园所聚集的人群创造更多的价值。
博客园已经发展了3年多,聚集了这么多技术精英,商业模式呼之欲出,现在是引入投资的很好时机。
相信博客园会找到有缘的投资者。
博客园融资有两个方案,还有一个备用方案。
方案一:两步走融资方案
先找一笔1~2年期的小额投资,进行第一轮融资,可能的投资来自于IT企业的战略投资、天使投资。通过这轮融资,建立起公司,组建一个10人左右的团队,改进现有的服务,从单纯的博客社区转向真正的社区,尝试1~2个盈利模式,发展一段时间后,找风险投资机构进行第二轮融资。(盈利情况好,也可以不进行第二轮融资)
方案二:一步到位融资方案
直接找风险投资机构进行融资,建立一个30~50人规模的公司,把博客园发展为真正的技术社区并以技术社区为基础提供增值服务,在广告、人才、培训、外包、技术服务、出版业务上进行盈利,并进行一些并购,达到一定规模后进行上市。
备用方案:先在扬州成立一个小公司,发展一段时间,再进行上面的两个融资方案。
注:如果博客园找到投资,首先会在园子里找人组建创业团队。
很多朋友关注博客园的发展,我有责任让大家知道我对博客园发展的一些想法,不妥之处,欢迎指出。
欢迎大家谈谈对博客园融资的想法,博客园目前处在发展的关键时期,也许您的一句话会影响博客园的发展。
QZONE大家基本都玩过了吧, 起先它只是个在线日记, 现在可以放满好玩的动画图片在上面, 吸引了无数的萝莉和正太花零花钱玩...呵呵(不兼容垃圾FF)
这是个纯粹的真正意义上的 AJAX 实例, 服务端ASPX非常简单可以不看, 客户端脚本中使用了 JS(废话^_^), HtmlDom, XmlDom, XmlHttp.
先做了个空白页面, 放了一些动画图片上去, 可以随便拖动放置, 也可以用右键点击清除. 所有可控制的元素在这里统称为物件, 目前只是动画图片这一种.
菜单功能: 1. 保存布局 - 将当前页面内的物件布局保存到 ItemData.xml 文件中
2. 恢复物件 - 恢复刚才用右键清除的物件
3. 恢复布局 - 重新加载数据, 将物件布局还原到前面保存的状态
4. 初始化布局 - 加载 XMLFile.xml 中的数据, 把物件布局还原到初始状态
演示地址: http://efplatform.net/demo/qzone/index.htm
下载地址: http://www.cnblogs.com/Files/ericfine/EFPlatform.Demo.Dhtml.rar
利用 当前时间与2000-1-1 0:0:0 相差的毫秒数转成36进制字符串 加上4位随机字符串 生成一个随机文件名. 算是长度比较短而唯一性比较高的随机文件名生成方法了.
实测1,000,000 * 100次, 平均每生成1,000,000个随机文件名耗时0.3秒. (测试平台:Dell 640M, T2300, XPSP2)
private static string charDictionary = "0123456789abcdefghijklmnopqrstuvwxyz";
#region GetRandomString
public static string GetRandomString(int length)
{
return GetRandomString(new Random(), length);
}
public static string GetRandomString(string dictionary, int length)
{
return GetRandomString(new Random(), dictionary, length);
}
public static string GetRandomString(Random r, int length)
{
return GetRandomString(r, charDictionary, length);
}
public static string GetRandomString(Random r, string dictionary, int length)
{
if(r == null)
{
r = new Random();
}
StringBuilder sb = new StringBuilder();
char[] chars = dictionary.ToCharArray();
for(int i = 0; i < length; i++)
{
sb.Append(chars[r.Next(0, chars.Length)]);
}
return sb.ToString();
}
#endregion
#region GetRandomFileName
public static string GetRandomFileName()
{
return GetRandomFileName(new Random());
}
public static string GetRandomFileName(Random r)
{
long timeSpan = (long)(DateTime.Now - new DateTime(2000, 1, 1)).TotalMilliseconds;
string fileName = ConvertToRadix(timeSpan, 36);
fileName += GetRandomString(r, 4);
return fileName.ToLower();
}
#endregion
#region ConvertToRadix
public static string ConvertToRadix(long number, byte scale)
{
if(scale < 2 || scale > 36)
{
throw new Exception("Scale number must not be less than 2 and bigger then 36.");
}
char[] dictionary = charDictionary.ToCharArray();
List<char> charList = new List<char>();
long positive = Math.Abs(number);
for(int i = 0; i < 64; i++)
{
if(positive == 0)
{
break;
}
charList.Add(dictionary[positive % scale]);
positive /= scale;
}
charList.Reverse();
return new string(charList.ToArray());
}
#endregion
摘要: 这个东东是去年我看着ASP:标记突发奇想花4天时间设计编写的类库, 原名叫 HtmlGenerator, 最近发现PHP和JAVA有很多类似的项目, 但是都设计的很渣(不同意的表打我@_@), 于是把 HtmlGenerator 重构了一下, 改叫 CodeGenerator. 配合我的数据库迁移工具和数据库实体类生成品..... 好像跑题了 -____-
CodeGenerator 的特点:
1. 标记简结实用, 所有网页美工都能在一分钟内掌握. 而且不与HTML标准冲突, 模板页可用任何WYSIWYG工具编辑, 和编辑普通HTML网完全相同.
2. 标记只与表示层相关, 不包括任何业务逻辑, 丝毫不影响你应用多层结构.
3. 标记到后台被解析成了生成器对象, 完全面向对象, 不像绝大多数生成器要死嗑字符串.
4. 生成器对象使用DataSource属性取得数据, DataSource可以为 简单值类型(如 int, DateTIme), 也可以为简单数组(如 decimal[], string[]), 还可以为ADO.NET数据集
阅读全文
大家知道,软件测试对软件的测试是有限的,而在项目进度比较紧,测试人员、时间有限的情况下,要进行充分的测试更是不可能!所以,如何在资源、时间有限的情况下测试的更有效,成了我们要思考的一个重要问题。以下以实例进行有关说明,大家对都用过手机,对手机的功能都不陌生,所以本文将全部用手机来做实例阐述!
例1. 电话接打功能测试
对于电话接打这项手机最基本的功能,在实际测试中测试人员可能要进行上千次的测试,确保手机接打电话功能稳定可靠。
对于这种功能的验证测试,有的测试人员可能每次测试的方法都相同,如同样的电话呼入后立刻接听,如此反复,测试几百次,检测软件的可靠性!电话呼出时,也是不变的方式,不断地重拨,重复几百次!
分析:上述测试方法,当然可以,但是效率高吗?能够发现更多的问题吗?答案是否定的!
测试思路:
对于这种问题,一定要注意拓展自己的思路,灵活进行,争取测试的效率和广度!
对于来电,可以从以下角度进行测试:
第一,在接听电话时,可以注意在不同时间点接听,如刚刚响铃时接听,响铃一段时间后接听,响即将结束时接听!这样可能会发现更多的问题!
第二,来电时,可以在手机不同状态下来电,如手机进行菜单浏览、短消息查看等,不同状态下来电;
第三,注意来电的时间间隔,如间隔时间很短的情况下来电和间隔一段时间的情况下来电;
第四,注意来电情况,如电话本中联系人来电和非电话本联系人来电;座机来电、移动电话来电和小灵通来电等;
第五,在不同情景模式下,如静音模式、会议模式、标准模式等模式下来电。
第六,不同的接听方式,如设置成按任意键接听、应答键接听等不同接听方式.
对于呼叫,在拨打电话时,可以从以下角度考虑:
第一, 直接输入数字进行拨打电话;
第二, 从电话本中选择联系人呼叫;
第三, 从通话记录中选择联系人进行呼叫;
第四, 从短消息中提取号码进行呼叫。
另外,在进行这种电话接打测试的时候,可以考虑使用测试机对测试机器来进行,这样下来,一组电话接打功能的测试,测试覆盖率提高了很多!
例2.短信查看+来电
这也是最基本的一种测试,多任务测试。
分析:
这里的来电,可以是固定电话,也可以是小灵通,也可以是手机;来电可以是电话本中的联系人,也可以是陌生电话来电。对此,如果能够把每种情况都测试一下当然最好不过了,但如果时间紧迫,无法一一测试,我们该如何测呢?
测试思路:
本项主要是短消息模块和电话模块之间的干扰问题,我们在测试时,可以选择电话本中联系人来电,进行测试,这是因为在来电时,来电有多出了一个对电话本模块的查询、调用功能,如果这种情况下没有问题,那么非电话本中号码来电时,一般不会有问题,相应地我们就可以少进行一项测试。
例3. 录像+来电
现在手机功能越来越强大,具有录像功能的手机不在少数,所以录像时来电测试也是少不了的一项,进行这项测试时,我们可以从以下角度考虑。
测试思路:
录像时,电话本中联系人来电→接听来电→结束通话→查看、播放录像→录像播放时来电→接听、通话→结束通话
这项我们在测试时进行了拓展,蓝色部分为拓展的测试项。这样做可以省去在录像播放时来电再进行录像这个环节,提高了效率,同时也检测了录像时来电对录像的干扰情况。
例4. 短信编辑+来电
分析:进入短信编辑的方式很多,有直接进入短信菜单进行编辑,有回复短消息时进入短信编辑状态,有从电话本联系人中选择相应菜单进入短消息编辑。
测试思路:
我们测试时,此项测试主要是测试来电对短信编辑模块的影响。在测试时,可以直接选择回复短信的方式进入短信编辑模块,来电则为电话本中联系人来电。
例5.屏保与锁键盘测试
基本都有屏保功能吧,也都有锁键盘功能吧。既然有这些功能,那么就需要对这些功能进行测试。那我们该如何对他们进行测试呢?
分开测试,各测各的!先在屏保下进行一系列的测试,如屏保启动时间、屏保显示界面以及屏保下来电,接收短消息的等一系列复杂的测试,一项一项测试完成大概需要半天的时间,测试完毕后再去测试锁键盘功能,如锁键盘启动时间、界面提示信息,锁键盘情况下来电、短信等等项。等全部测试完成大概又需要半天的时间。
其实,我们可以思考一下:这两项我们是否可以合并起来,一起测试呢?
答案是肯定的!
两项中的很大一部分内容都可以合并起来一起测试!即在屏保以及键盘锁同时启动的情况下进行测试,如果两者同时启动的情况下都是正常工作的,那么我们可以认为其在另一者关闭的情况下功能也一定是正常的!我们要明白一点:越是在复杂的情况下,手机出问题的可能性越大!
其实,我们还可以进一步拓展一下,我们同时启动LCD背光等项,将其合并起来一起测试!这种情况下在单位时间里不但增加了测试内容,而且更容易发现软件中的一些问题。另外,鉴于锁键盘以及屏保、LCD背光等,它们都有不同的启动时间,我们是否该将所有这些的排列组合全部测试一遍呢?这样的话,那你就等着累死或被老板解雇吧!在这里要注到测试的等价性.
太多了,更深入的就不说了!
小结:
在提高测试效率上,我们一定要抓住懂得哪些测试可以合并一起来测,哪些项出问题的可能性比较大,也一定要知道哪些地方是重点!
如何在人力资源紧缺的状态下,如何在有限的时间里发现更多的问题和更广的测试是值得我们深入思考的!宏观上而言,一个版本先测哪些后测哪些和不测哪些可以说是一个战略问题,而具体到测试时,如何在有限的时间里发现一个测试项所存在的问题则又是一个战术问题。 战略和战术如何有效地配合?如何更有效的测试?这是每个专业测试工作者,尤其是测试负责人应该好好思考的!
摘要: 在我们定位异常发生位置的时候,一般都能得到正确的异常信息(Exception.Message)。
但是当根据调用堆栈来定位异常发生点的时候,却往往得不到正确的位置,即正确的调用堆栈。
这与再次抛出异常的方式有关。
阅读全文
摘要: 这是一个采用IBatisNet移植http://www.codeplex.com/nhibernateprovider的asp.net 2.0 Membership和Role provider.具体更详细的信息参看打算为IBatisNet 引入自定义Membership和Role
阅读全文
工作4年了,项目也做了不少,从.net1.0beta到1.1再到2.0,如今已经是3.0,3.5了,从没有什么经验的程序员慢慢的成长为那些菜鸟眼中的“高手”。自己一直在不停的学习,也不断的将一些.net的特性应用于系统中。自己也没有统计过自己写过多少代码了,反正这几年一直在不停的写代码。虽然有幸带领团队参与开了不少系统,对项目管理有一定的经验。面对每年从学校批量生产的应届毕业生面前,自己技术水平优势自然不可言喻;面对有一定工作经验的程序员,自己的也不是很差。自己一直不停的在学习技术和项目管理技能,愈是学习,愈是感觉自己越来学不完(学无止尽?),发现自己还有很多都不懂,危机感一直伴随着我,感觉生活压力很大。想让自己有更大的发展空间,发现到处碰壁。如今已是 高不成低不就,如何才能找到一个更大的发展空间呢?难道注定要一直这样下去。我怀疑我是不是遇到了传说中的职业瓶颈了。
园子里有没有和我一样遇到这样的困惑的人呢?有没有过来人来帮我解惑?
最近一直在搜索关于职业瓶颈的文章,但还是想听听园子里的过来人的现身说法。希望诸位师兄们,不要吝啬你们的经验之谈,小弟在此洗耳恭听。
想来想去,应该有不少朋友都会遇到我这问题吧,既然是大家都要遇到的问题,还是决定暂放在首页,听听大家的意见。如果dudu觉得不好,请取消。
顺便贴一个搜索到的关于职业瓶颈的文章。
职业规划伴人生:职场瓶颈期如何突破“玻璃顶”
在30~40岁期间,职场上普遍存在令人尴尬的瓶颈期。如果能够找到症结所在并突破过去,那么遇到的困难只是暂时的"玻璃顶";若是无法找到提升的通道,"玻璃顶"就会变成"水泥顶"从而封死了自己的出路,建议瓶颈期的职场人可以通过三种途径来进行突破。
对于职场人士来说,在经历了起步探索期的"学徒"阶段、适应上升期的大展鸿图之后,或许忽然有一天会发现自己陷入了发展的瓶颈中。向上,得到晋升的机会很少,希望也不大;向外,受制于自己的工作经历和背景,可以选择的方向也不多,与此同时,加薪开始停步,工作越来越重复,日复一日的原地踏步让人心情烦躁。
这种令人尴尬的局面常常发生在30~40岁期间,在职场上普遍存在。职业规划专家表示,如果能够找到症结所在并突破过去,那么遇到的困难只是暂时的"玻璃顶";若是无法找到提升的通道,"玻璃顶"就会变成"水泥顶"而封死了自己的出路,从而导致自己今后的职场之路将会越发艰难。
根据职业规划专家的建议,处在瓶颈期的职场人士,可以通过三种途径来突破提升通道上的"玻璃顶",如在企业内部涉猎新的工作岗位,或者通过跳槽来获得职位的提升,还有就是通过充电来增强自己的竞争力,下面通过具体的案例来做具体的分析。
涉猎新岗位等机会
在公司内部可以横向寻找发展机会,比如对与自己工作相关联的工作多做一些了解,以便通过内部调整而获得更好的发展机会。这种做法比较稳妥,至少,在获得晋升的同时,还可以减少因为跳槽而形成的成本。
【典型案例】 江华大学毕业已经十年,在此期间,曾先后在两家大型企业集团工作过,由于他的工作能力较为突出,大学毕业之后的前6年内职位也不断得到提升,从人力资源部小职员升到主管,然后再升到部门经理,29岁时升到高级经理。目前江华已经33岁,在近4年时间内,他便一直在人力资源部高级经理的位子上没有挪过窝,当然薪水也在原地踏步。
江华感到自己已经遇到了职业瓶颈,眼看小孩已经慢慢长大,而且父母养老也提上了日程,但职位不变,工资也是多年不涨,使得他感到家庭负担在不断加重,他不知道自己的下一步该怎么走。考虑到跳槽的成本,他不想通过跳槽来改变眼下的现状,那么在原公司如何突破职业瓶颈呢?
专家点评:宏威职业顾问首席咨询师 郭策
职业瓶颈的问题是很多职场人士都会遇到的问题。类似于上述案例中江华的情形,他不希望通过跳槽来改变自己的现状,而是希望在原公司获得突破的机会,想法是可行的,但是要付出很多的努力。
江华已经做到总监的位置,再向上走有一定难度。但他可以考虑提升自己的语言水平、综合管理能力和在企业中的人脉积累,进一步发挥自己的长处。江华有多年从事人力资源工作经历,对人力资源非常熟悉,这种经历对他来说,既有优势,也是劣势。因为单一的人力资源管理工作经历,虽然在这方面他是了解得非常深刻透彻,但是从横向来看,他却知之甚少,因此可以考虑多掌握些财务、营销方面的知识,形成向上突破的合力。他可以多了解行业的情况和竞争对手的情况,经过精心准备,可以向企业中实现更优化的人力资源规划和管理方向发展,或向更高的职位如CEO发展。
不过需要提醒的是,在企业内部,考虑到人力均衡的关系,老板一般不会轻易对高层人员做出调整,所以对于江华来说,在短期内获得晋升的机会可能会很少。同时,人力资源部门作为企业的核心部门之一,其经理职位肯定会有不少人觊觎。所以江华即使想要改善自己的现状,但是不能太过明显,以免让自己处于被动境地。
主动出击寻找出路
对于已经积累了相当丰富的工作经验,同时在原公司曾担任过领导工作的职场人士来说,由于原公司的原因已找不到再次提升的空间,遭遇职场瓶颈,那么不妨勇敢地迈出跳槽这一步。
【典型案例】 章明新是在一家美国制造公司的客服部经理。他有海外留学经历,在澳洲拿到硕士学位之后,很顺利地进入了这家公司就职。由于自己的勤奋好学,他从一位普通的工程技术人员成为核心技术工程师。6年前在一次人员调整过程中,章明新做上了客服部主管,之后不久便升为客服部经理。从一名普通的工程技术人员,做到客服经理,对章明新来说,似乎并没有花费多大的功夫,十分顺利。但是在经理位置上做了很长一段时间之后,他突然发现自己对自己所从事的工作已经失去了新鲜感,同时他所在的公司早已进入平稳发展期,很少有人员变动情况,想要在原公司获得更高的职位已无可能,因此他想到了跳槽。
专家点评:国内知名人力资源服务商"前程无忧"公关部经理 冯丽娟
在一般情况下,在同一个职位上具有三、四年以上的停留期,基本上都会感到激情不再,动力不足了,厌倦感在不知不觉中产生。在不久前曾就此做过调查,白领特别是外资企业的职员会更加强烈。白领靠自己的知识或者经验,4年之后没有突破,其折旧率会很高。外资企业的系统比较稳定,升职的机会就比较少。
遭遇了职业瓶颈期,一般有两种途径来突破,要么在原公司寻找新的职位,要么就是通过跳槽获得更好的发展机会。如果选择跳槽,首先要盘点一下自身的工作资历,如人脉关系、管理经验等。从工作资历来看,章明新其实已经站在一个较高的职业平台上。他的业务能力较突出,有领导一个部门的能力,且在跨国企业里近10年的工作经历也将成他职业转换的砝码。
为了减少跳槽成本,建议他选取跟自己目前所从事行业有关联的行业转型,职业定位可以是同等规模公司的部门总监,或者如果能找到一个很有发展前景而规模也不错的公司,那么也可以从部门经理做起,再寻求内部发展。
充电填补自身短处
活到老,学到老。在职场中如果缺乏持续的学习,可能会因为知识结构的老化而面临淘汰的尴尬境地。为了避免这种情形的发生,有意识地进行充电提高自身职场竞争力,是突破职场瓶颈的一种有效手段。
【典型案例】8年前,杨凌工作毕业于杭州一所普通高校,学的电子技术专业,学历为大专。毕业之后在杭州工作了一段时间,也从事了好几份不同的工作,但都没有做长久,基本上过了试用期之后便离开。后来他来到上海,并进入一家广东电子公司驻上海办事处工作,从事电子元器件的销售,到现在已经快6年半时间了。做了1年的销售员后,由于在业务方面表现突出,深得办事处领导的器重,不多久便升到外办办事处经理。在随后的时间内,业务量一直保持在平稳水平。但在去年年底,办事处人事出现变动,原领导被调往别省。原领导曾经向公司总部推荐过他,希望他来接替自己任上海办事处负责人,但是遭到了公司总部的否决。由此,杨凌意识到自己已经遇到了职业生涯中的瓶颈,他想突破,但不知从何做起。
专家点评:中华英才网职业规划专家 邹羽
当职场人士意识到自己已经遇到职场瓶颈之后,要保持平和的心态,这并不是什么坏事,因为从另一个侧面来看,虽然遭遇职场瓶颈,但至少表明他们对自己的职场生涯有规划、有梦想。
当瓶颈出现之后,首要任务是了解瓶颈产生的原因。当然首先得从自身寻找原因,由于自身的不足而产生瓶颈的情形并不少见,不管自己在大学学得是什么专业,岗位越往上提升,对自身综合能力的要求就越高,如决策力、洞察力等方面需要再次提升一个档次。第二是公司造成的,不管是什么企业,分工比较清晰,人员比较稳定,职位上做到某个阶段之后,便自然而然无法再有突破了。
如果因为自身原因造成自己面临职场瓶颈期,最主要的任务是根据自身的具体情况,有意识地进行充电。很多职场人士被公司的岗位设置牵着走,用经验吃饭最后就吃到"江郎才尽",这样的例子并不少。充电适用的原理为"短板原理",即找到自己最为薄弱的部分,通过学习来提高。当然,要把握好时间节点。如有些人明明知道自己在外语口语方面存在缺陷,但是他们就是没有安排时间去改善它,一旦因为口语方面的原因造成自己失去更好的机会之后,他们便又会追悔莫及。
摘要: 到底读研究生会学到些什么?到底读研为了什么?老板的项目是不是能锻炼人?为什么逼迫要用“VC6”编程,为什么没有人用C#!!作为一个非软件专业的准研究生,我来诉说我的一些想法。
阅读全文
摘要: 介绍Dependency Property的变更通知机制:属性触发器
阅读全文
做了无数的项目,追求编程的艺术,担心自己的钱途,一度稀里的糊涂。
作为一个程序员,工作6年,在现在的厂里(用我妈妈的原话是厂里)也已经快4年了,从小工干起,再到架构师,草长草短,几度春秋,沧桑巨变啊,唯一不变的是我们那幢大楼和楼墙上那个Logo。
这么久了,自己想要一些变化,于是有机会进入R&D Team(Research and Develop)工作。却是一度度徘徊迷茫,R&D是给你一个抽象的任务,要你具体地完成。这和以前做项目做产品有很大的不同,没有具体的目标和任务,没有人告诉你该怎么做,该用什么工具,不规定流程,一切要靠自己去做。
很多东西要学,三思而后行,努力中…,希望自己很快进入状态。园子里有做R&D的吗,谈谈经验啊!
摘要: 最近同事遇到一个问题,关于程序需要在动态的时候决定究竟要加载dll的哪个版本.
制造事故,利用AssemblyResolve事件完美解决之!
阅读全文
摘要: 介绍了Dependency Property的概念,作用和优点。并用代码演示了如何创建一个Denpendency Property。
Denpendency Property是WPF新引入了一种属性:它贯穿WPF的始终;提供了对样式,自动数据绑定,动画等特性的支持
阅读全文
摘要: 这是AspectNet功能介绍的第一篇,我主要介绍AspectNet在静态编织方面的基本结构.
阅读全文
More Posts
Next page »