回到顶部

Ediclot

人们往往用至诚的外表和虔敬的行为,掩饰一颗魔鬼般的心


最适合程序员转行10大职业

✿ 2016-11-09 16:16

No.1程序员
适合程序员30岁以后的工作,排名第一的,当然还是程序员。随着经验的增长,也许你每天产出代码的行数会不如以前,但你解决问题的能力却是无人能及的。同时,如果你可以一直保持着对特定领域技术的专注度,那成为神一样的技术专家也只是时间问题,当然正真的技术大牛,收入上也远不是问题。
No.2创业
最近几年,IT行业中因为创业实现逆袭、直接当上CEO、赢取白富美、走上人生巅峰的例子频频出现。Facebook以190亿美元的价格收购了WhatsApp,而WhatsApp创立也就不到五年时间。同时,Facebook创始人扎克伯格同时也是一位创业者。开发者在IT领域创业有自身的优势,自己拥有技术,能够保证产品品质。
No.3研发管理
这也是我们比较常见的软件开发者职业生涯轨迹发展道路,先在研发一线岗位实战锤炼,获得更多经验之后,逐渐走向管理岗位:工程师、项目经理、研发总监、技术副总、CTO……转向研发管理岗位的开发者,需要具有一定的领导管理能力,当然,能够有领袖气质自然能够更好的做好这些工作。

阅读全文 »

一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

✿ 2016-10-05 18:18

首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

以下是上述协议的简单介绍:
BSD开源协议
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
阅读全文 »

为什么你都听客户的,客户却不满意?

✿ 2016-01-08 10:10

这样的场景你是不是很熟悉?客户让你做一个软件,你需要他给你写出需求,当他给你写出需求后,在你认为时间非常紧的情况下,你辛辛苦苦,加班加点,费劲九牛二虎之力,最后赶在最后时刻给客户提交了,你满怀希望等待客户给你的表扬,你万分坚信领导对你的辛苦会给予高度认可和鼓励,你觉得很快就要戴一朵“小红花”时,最后你得到的是绵绵无绝期的等待,甚至是客户的不满意,这是为什么呢?这种情况在我的团队里也会出现,有时候我让改一个东西,经常得到的回复就是:”客户就是这么要求的,而且描述很清晰,不能改!”, 最后如果不改的结果就是客户不满意。
为什么我们听客户的,客户却不满意?

阅读全文 »

通过WebRequest下载网页内容源码

✿ 2015-12-08 14:14

一些需要实现抓取某个网站网页内容的需求,但现在很多网站都有单位时间内访问次数的限制。为了在短时间内抓取到更多我们想要的网页内容,这时我们就需要使用代理来实现了。C#来实现IP代理抓取是非常容易实现的,只需要通过WebRequest的Proxy属性来实现,以下为具体实现方法:

 private static string DownLoadHtml(string url, int timeout = 30, bool enableProxy = false)
{ try { string html = ""; var myRequest = (HttpWebRequest)WebRequest.Create(url); myRequest.Method = "GET"; myRequest.Timeout = 1000 * timeout; myRequest.AllowAutoRedirect = true; if (enableProxy) { //如果启用WEBPROXY代理 var webProxy = new WebProxy("37.239.46.18", 80); myRequest.Proxy = webProxy; } var myResponse = (HttpWebResponse)myRequest.GetResponse(); using (var sr = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding((myResponse.CharacterSet)))) { html = sr.ReadToEnd(); myResponse.Close(); } return html; } catch (Exception ex) { throw new Exception(ex.Message); }
}

该方法有三个参数,url为目标页面,timeout为抓取网页的超时时间,enableProxy为是否启用代理。如果成功执行,则返回抓取到的目标页面的源代码。
需要注意的是:在使用此方法之前,你得找到可用的IP(包括主机和端口,如本例中的主机为:37.239.46.18,端口为:80)。

不懂技术的人不要对懂技术的人说这很容易实现

✿ 2015-11-13 14:14

“这个网站相当简单,所有你需要做的就是完成X,Y,Z。你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来。”

我时不时的就会收到这样的Email。写这些邮件的人几乎都是跟技术不沾边的人,或正在研究他们的第一个产品。起初,当听到人们这样的话,我总是十分的恼怒。他们在跟谁辩论软件开发所需要的时间?但后来我意识到,即使我自己自己的项目预测要花去多少开发时间,我也是一筹莫展。如果连我自己都做不好,我何必对那些人恼怒呢?

真正让我郁闷的不是他们预估的错误。问题在于他们竟然认为自己可以做出正确的估计。作为开发人员,我们经常会发现,在软件开发的问题上,一个外行人会很自然的把复杂的事情估计的很简单。

这并不是为我们的愤怒找借口。但这引起了另外一个有趣的问题:为什么我们天生的预测复杂性的能力在遇到编程问题时会失灵?

阅读全文 »



无觅相关文章插件,快速提升流量