【php】大小写字母转换函数

首字母变大写:ucwords() <?php $foo = ‘hello world!’; $foo = ucwords($foo); // Hello World! $bar = ‘HELLO WORLD!’; $bar = ucwords($bar); // HELLO WORLD! $bar = ucwords(strtolower($bar)); // Hello World! ?>  第一个词首字母变大写:ucfirst() <?php $foo = ‘hello world!’; $foo = ucfirst($foo); // Hello world! $bar = ‘HELLO WORLD!’; $bar = ucfirst($bar); // HELLO WORLD! $bar = ucfirst(strtolower($bar)); // … Continue reading “【php】大小写字母转换函数”

【php】phpExcel解决抛出“Unknown codepage: 10008”异常

在读取Excel数据的时候,用windows系统操作是没问题的,但是用MAC系统就会抛出“Unknown codepage: 10008”异常,异常信息如下: 原因是: excel/PHPExcel/Shared/CodePage.php没有对10008对应的现象进行处理。 解决方法如下: 找到excel/PHPExcel/Shared/CodePage.php找到switch条件语句为10008添加处理。代码如下: case 10008: return ‘MAC’; break; // 10008 MAC – Simplified Chinese (GB 2312)  CodePage处理代码号 037 IBM EBCDIC – U.S./Canada 437 OEM – United States 500 IBM EBCDIC – International 708 Arabic – ASMO 708 709 Arabic – ASMO 449+, BCON V4 710 Arabic – Transparent Arabic 720 Arabic – … Continue reading “【php】phpExcel解决抛出“Unknown codepage: 10008”异常”

【技术排行榜】2013年10月编程语言排行榜:Groovy首次挤进Top 20

TIOBE公布了2013年10月份编程语言排行榜,细心的朋友可能会发现,本月前三甲有所变动,Objective-C与C++位置悄然互换,分别为:C、Java、Objective-C。 值得一提的是,本月Groovy首次进入前20名(排名18,2012年10月份其排名53位,上升幅度强劲)。Groovy是一种面向对象的脚本语言,能够运行在Java虚拟机上。其完全兼容Java, Groovy的语法与Java非常相似,因此很容易将Java语言编译成Groovy。Groovy能否在未来几个月继续保持前20的排名呢?我们翘首以待。 其他看点,Transact-SQL、Visual Basic.NET、COBOL上升趋势也较为迅猛。 以下是前20名榜单排行榜: 前10名编程语言长期走势图: 以下是21-50编程语言排名: 后50名的语言如下: (Visual) FoxPro, 4th Dimension/4D, ABC, Algol, Alice, APL, ATLAS, Automator, Awk, BlitzMax, CFML, cg, Clean, Clojure, cT, Dart, Eiffel, Forth, GNU Octave, Go, Icon, Inform, Informix-4GL, Io, J, J#, JScript.NET, LabVIEW, Modula-2, Moto, MS-DOS batch, NATURAL, NQC, Object Rexx, OCaml, OpenCL, OpenEdge ABL, PILOT, Pure Data, … Continue reading “【技术排行榜】2013年10月编程语言排行榜:Groovy首次挤进Top 20”

【技术杂谈】对一边旅行一边编程的生活方式的体验和思考

PS:如果有时间有机会,还真的想去尝试下这种一边旅游一边编程的生活!说来这也是自己一直以来想要的生活体验! 大概三个月前,我工作的公司突然倒闭了。 倒闭的原因跟这篇文章的内容毫不相干,但简言之,投资者毁约,一个开发中的产品,也就是我主要工作那个,被迫终止了。 我从没有想过会发生这种事情。一下子变成了待业,我是刚休完假回来,而且还就当前稳定的工作做了一个中长期计划。 但事情就这样发生了,而且是一夜之间,我不得不思考下一步的出路。 远程工作的想法一直吸引着我。我知道,在某种程度上我是想逃离这种朝九晚五的桎梏,带着我的笔记本,去寰球旅行,以自由编程职业者的身份做一些小项目,全面体验生活的同时还锻炼我的技术能力,不至于让自己变得生疏。 于是,突然间,我就变成了一个数字游民,没有包袱,没有贷款,没有孩子,有一点积蓄,没有近期必须要做的事情。 需要说一下,我的决定下的非常简单——这是一次绝好的做一次旅行的机会,我一直盼望着的。 我的旅游线路的选择非常的好理解,数个原因最终导致了我买了一张去往曼谷的机票。 东南亚自由港! 我到欧洲一些城市旅游过,所以我去世界里另外一部分。 我曾在美国待过一年,我很想回去看看,但我迫不及待的想开始我的旅程,而对一个波兰人说,美国签证既昂贵又难拿到。 澳大利亚对于做长期旅游来说花费实在太高,尤其是像我这种情况,我喜欢潜水、冲浪和其它一些户外运动,这些运动即使在一些“便宜”的国家里也是价格不菲,更别提在澳大利亚了。 所以,东南亚成了很明显的选择。那里是有预算限制的旅游人的圣地。网上有很多到过那里的人写的无数的博客,我想,这应该是一个人的一生中至少要经历过一次的一件事。 幸运的是,我有一些小客户,当我还在公司上班时,下班后会给他们干几个小时,虽然收入不多,但在旅途中,这也是一种相当大的经济保障。 经过了一个月的准备(打疫苗,装备,景点计划),我和女友背起背包(42升的Northface Duffels包——高度推荐,虽然不是做长途旅行的最佳选择),启程飞向曼谷,开始了我们泰国,越南,老挝,柬埔寨的旅游计划。 现在,我已经旅行两个月了,为我在波兰的客户远程工作。这些简单的工作大多数是维护修改一些现有的网站,但我后来想办法接了一个大一点的Rails项目,这个需要我从头开发。 目前为止,这是一次非常值得的、有启发的(尽管不是在技术方面)的体验,但也显露出一些小的问题,我想在这里分享给大家。 主要的,我发现我需要反复面对两个非常重要的问题: 1) 项目类型限制,在旅途中你可以做的项目; 2) 对不依赖办公地点的错误认识; 只能做一些小的简单的项目 这对于我来说是巨大的不利。起初我觉得做一些小项目能让我保持漂泊状态就行了,但现在的现实情况是,我越来越有一种没有成就和浪费时间的感觉。 没错,在泰国帕岸岛的小屋里打开你的笔记本电脑,一边跟客户网上交流一边开发项目,旁边就是海滨,这很有趣。你做完工作,跳进30度左右的海水里,更美妙的,你可以自由的潜水到数个珊瑚礁里,但这需要另付费。 我并不是真正的认为长时间的旅游是一种浪费时间。旅途中你能获得很多的见识和机会,但事情往往是不能兼得。 如果你喜欢挑战,需要不断的在你的技术领域中取得自身发展,可在旅途中你很难达到这方面的平衡。 当然,这取决于你开发的项目的类型和实现中面对的技术问题,但说老实话,当你在不断的变换地方,经常遇到不可预知的网络状况,渴望最大限度的享受旅游中的快乐,你根本无法去做那些有难度的挑战性的工作,这些工作需要数小时的分析,讨论和复杂的编程。 旅途中有太多让你分心的事,工作后(有时是工作中)有太多的东西吸引你去观看。 我非常理解,有些人会把这当作一种自制力问题,一种如何计划,如何准备的问题,但对于我来说,绝不是这样的。 我认为自己是一个非常能自控的人。我的客户满意我做的工作,我总是能按期完成任务,而且是高质量的。这是我自己定的目标。 问题不在这里。问题是,当涉及到中等复杂项目,涉及到不那么简单的编程任务时,我发现,很多在办公室里能完成的工作,在旅途中却变成了很有挑战或完全不可能的事情。 这种情况限制了我只能挑选一些容易处理,以及有富足的时间期限和只需要少量的研究的项目。 毫不隐瞒的说,还不止这些。我认为在一个由比你有经验、比你聪明的人组成的团队里工作,这对你的开发是至关重要的,作为自由职业者,只做一些小的项目、一些简单的MVC/CRUD编程工作,这就是相当于错失了很多成长和学习的机会。 但不要误会,我在忙碌的工作,每天都在努力学一些新知识,一直都在增长我作为程序员的各种技术能力。然而,在过去的两个月里,我感觉缺少把自己暴露在现实编程问题中的机会,那是我在公司工作时每天都会遇到的,那些问题是你一个人无法解决的。那些问题跟公司的大小无关。 不依赖办公地点的错觉 现在,我完全的相信远程工作是可行的,它对(a)程序员摆脱办公地点依赖和(b)减少公司开支是十分有效的途径。 但实际情况却完全不同。旅途中工作给了你一种工作地点不固定的感觉。当然,有的公司的办公地点会分布世界各地,但为了完成一个不那么简单的任务,你非常需要一个舒适的场所,好的网络连接,安静的环境,更好的一些设施,例如健身房,瑜伽室,酒吧。 还有一点很明显,在旅途中我发现,创造性较大的工作需要有一些作息规律。一周变换一个地方,工作在海滨,吊床里,咖啡馆里,酒吧里,旅馆地板上,对于度假来说这很酷,但很显然并不有助于解决困难的编程问题。 对于这些问题涉及到各种可能性和各种层面,我现在想了一些解决方案,下面就是。 1) 远程工作的内容要适合你的技术和你的能力。每三个月换一种技术方向。在每一个地方要多待一段时间。要让自己沉浸在当地的文化和生活节奏中,租一个好一点的屋子,要有一个正式的工作桌和椅子,要能确保你坐在上面能保持3个小时以上(如果你有站着工作的习惯,那就忽略这一点),要形成规律习惯。去你喜欢的地方,当你想换个地方时,先研究一下,然后再去。 2) 找一个真正的工作,在办公室里的工作,做你喜欢的和有挑战性的工作(事实上,一种应该这样),争取能长期假期,去旅行,每年大概2个月。 3) 积极做一些能够获得临时收入的wordpress网站和旅游网站相关的活,这能给你带来很多的收入,能让你旅游个够。 来源于:How I thought I wanted to become … Continue reading “【技术杂谈】对一边旅行一边编程的生活方式的体验和思考”

【技术杂谈】程序员教流浪汉编程开发APP

一天,Patrick McConlogue宣布他将要教一个流浪汉学Java语言,帮助他开发一个属于他自己的app。今年23岁的Patrick是一名软件工程师,每天在去上班的路上他都会遇见那个流浪汉,然后他就决定践行自己的一个主意,看看他会不会是那个人。 “这个主意很简单。”Patrick在自己的网站上写道: 1、我明天再路过时给你100美元。 2、我明天再路过时给你三本JavaScript教程(入门级、高级、专家级)和一台便宜的笔记本。 当你感觉准备好了,之后的每一天我会早到一个小时教你编程。 果 然,那个有理想有抱负的流浪汉Leo决定学习怎样编程,他想着100美元不到一周就会花光,而知识则可以在未来创造财富。Leo 说:“他告诉我我可以有一台笔记本学着做点什么,我觉得那可以换来更多的东西。反正我有的是时间从头学。”Leo成为流浪汉已经2年了,当时失去人寿保险 代理人这份工作后,他的房租也涨了,因为附近陆续建起了豪华公寓。尽管生活倒霉,当Patrick给他提供两个选择时,Leo并没有不高兴或者绝望。他希 望自己能多掌握一项技能,以便再一次重新站起来自力更生。 Patrick 的主意受到了很多人的严厉指责,他们认为为Leo提供食物、衣服或者一个住处才是更好的选择,还有一些人觉得Patrick的做法是在侮辱别人。面对这 些,Patrick用一句老话回应他们:授人以鱼只能养活他一天,授人以渔却能养活他一生。这位年轻的编程师无视那些批评,给Leo买了一台便宜的三星笔 记本、三本编程书、他自己的WI-FI热点,开始教他怎样编程。每天早上Patrick会提前一个小时离开家,然后在公园与Leo碰面,教他各种需要掌握 的变量和函数。他们还一起研发一个app,并打算在第8个星期开始执行。关于这个app,他俩现在不想泄密,不过他们保证它会非常奇妙精彩,跟Leo个人 的主要兴趣有关——全球变暖和气候变化。 目前,这项开发试验还在进行中,Patrick和Leo对于他们已经取得成绩非常高兴。虽然有一些批评,不过他们的动态已经被大家普遍接受了。他们甚至还脸书上保持更新这个项目的进度,并集结了一大批粉丝。 原文链接:http://jandan.net/2013/10/05/teaches-homeless.html

【技术杂谈】令人讨厌的编程语言排行榜

为了避免引起语言之争,先声明一下,这个榜单统计的是跨语言开发者最讨厌的编程语言,比如你最喜欢使用A语言来编程,那么可能会对其他语言的某些特性看不惯。 这是一种很主观的看法,上榜的语言不代表这个语言不好,只是说明某些开发者不太喜欢这个语言中的某些特性而已。欢迎在评论中说出你对某些语言的看法。 下面这个排名是根据 Quora、Stack Overflow和Hacker News上相关帖子统计出来的。 10.  Python 上榜理由:代码缩进是用来指定块的结构,为什么不用括号或大括号呢?此外,大量使用冒号和下划线,模块、变量名冲突等。 如何避免:不要去Google、Yahoo或NASA工作 9.  LabVIEW LabVIEW是一种由美国国家仪器(NI)公司研制开发的、类似于C和BASIC开发环境,使用图形化编辑语言G编写程序,产生的程序是框图的形式。 上榜理由:LabVIEW相当抽象,以致于将简单的问题变得极其复杂。这完全违背了其最初的目的。 如何避免:远离仪器控制类或工业自动化类的编程工作。 8.  JavaScript 上榜理由:区分大小写,跨浏览器需要不同的实现,缺乏调试功能(尽管可以使用Firebug)和奇怪的继承规则。 如何避免:不要去当Web开发人员。 7.  Tcl Tcl是一种脚本语言,最早称为工具命令语言(Tool Command Language),但是目前已经不是这个含义。由John Ousterhout创建,经常被用于 快速原型开发 RAD、脚本编程、GUI和测试等方面。 上榜理由:语法太简单了,缺乏指针,无法通过引用来传递;将数组存储为字符串;可怜的list语义和混乱的变量范围。 如何避免:不要去Cisco、AOL或CNET公司或任何AOLserver或OpenACS平台的公司工作。 6.  COBOL COBOL(Common Business Oriented Langauge,面向商业的通用语言),又称为企业管理语言、数据处理语言等,这是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。 上榜理由:极其繁琐的语法(目的是对非程序员可读);版本之间不兼容;缺乏面向对象编程、函数和指针等特性。 如何避免:不要去 政府、金融领域或军用企业工作。 5.  C++ 上榜理由:庞大的函数集;手动内存管理;编译速度慢;事实上,它允许程序员在同一程序中同时使用面向对象和面向过程的编程模式。 如何避免:一般情况下,不要去Adobe、Google或游戏领域工作。 4.  PHP 上榜理由:大量函数存在不一致的命名约定;安全漏洞;无法原生支持Unicode;经常被混和在一些演示代码(如HTML、CSS)中。 如何避免:如果你从事Web方面的工作,这是很难避免的。但是,对于初学者来说,可以不去Facebook工作,远离Wikimedia、Wordpress、Joomla和Drupal即可。 3.  Java 上榜理由:语法冗长;慢;不容易传递函数;API过度设计;它能做的,其他语言也都能做,并且更加高效。 如何避免:不要去当程序员,或不要使用Android SDK来开发任何应用程序。 2.  Perl 上榜理由:Perl中完成一件事有太多种方法,使得你很难去理解其他人编写的代码;太简洁,即使一段代码实现的是最简单的事情,看起来也难以去阅读、维护。 如何避免:不要去当程序员。 … Continue reading “【技术杂谈】令人讨厌的编程语言排行榜”

【技术杂谈】2014年八大最热门IT技能

根据Computerworld网站组织的年度预测调查,众多IT专业人士在2014年所面临的整体就业形势与今年基本持平——今年有33%的企业有计划增加IT部门的员工数量,而未来一年则有32%的企业有此打算。 不过,虽然整体需求将继续保持稳定,但具体情况仍会出现少许变化——招聘管理者们明年将调整自己对求职者技能的关注取向。根据技术资源供应商Mondo公司创始人兼CEO Michael Kirven的说法,“对于那些拥有热门技能储备的人才而言,失业的可能性几乎为零。”他同时表示,“作为招聘者,如果您看中了某位人才,请别怀疑——至少还有其它两家企业也同时盯上了对方的才干。” 1.编程/应用程序开发 “49%的受访者声称自己有计划在未来十二个月内招揽拥有此类技能的人才。” “去年排名:第一位。” 与2013年的预测调查一样,今年编程/应用程序开发再次蝉联热门技能排行榜冠军——不过在今年的221位受访者中,只有不到一半表示打算雇佣此类人才,远低于去年的六成。Dice控股集团(IT求职网站Dice.com的持有者)CEO Scot Melland表示,软件开发人员仍然是最抢手的技术人才,并指出这类人员的失业率也最低——根据美国劳工统计局公布的数字,其失业率仅为1.8%。有鉴于此,难怪Computerworld 2014预测调查将开发人员及程序员岗位列为未来一年中最难以弥补的空缺。Melland同时声称,在此类人才当中,又以具备移动开发专业知识与经验以及了解如何构建安全应用技能的员工最为稀缺。 在线备份服务供应商Carbonite公司希望能将业务重心转移到小型企业领域,但在转型过程中他们感受到了招聘软件开发人员及工程师的极高难度,公司人力部门副总裁Randy Bogue表示。“尽管在我们公司所在的波士顿地区,拥有丰富软件开发经验的人才并不少见,但想要雇佣他们的技术企业同样数量众多,”他解释称。“我们在寻找前端开发人员、用户体验工程师、移动开发人员以及其它软件开发人才的时候深刻感受到了这一点。” 纽约梅隆银行CIO Lucille Mayer同样对招徕开发人才感到压力很大。这家金融服务公司的主要业务范围位于纽约及匹兹堡地区,其数百位员工当中有约四成负责开发工作。另外三成打理基础设施、两成属于业务分析及项目管理岗位,最后一成则是企业管理层。 “拥有三到五年实践经验及服务交付阅历的开发人员已经成为市场上灸手可热的稀缺资源,”Mayer指出,她个人对于拥有面向对象开发经验的人才很感兴趣。同样重要的是,企业需要吸纳具备不同背景、抱有不同想法及观点的员工。 服务业巨头凯悦集团希望摆脱以往过度依赖第三方服务供应商的窘境,这就要求他们招聘更多内部开发人才。“我们希望招揽到熟悉敏捷性、有能力将思路快速转化为原型方案并快速投付生产的人才,”凯悦集团全球技术负责人Alex Zoghlin指出。 2. 服务台/技术支持 “37%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。” “去年排名:第三位。” 服务台/技术支持仍然名列排行榜的三甲位置,而且由去年的第三位上升到今年的第二位。Melland表示,这样的迹象令人鼓舞,意味着经济及整体就业前景正迎来复苏。“企业之所以扩大服务台与技术支持团队的规模,是因为其员工数量有所增加、技术基础设施迎来拓展,”他解释称。此外,许多企业在尝试外包之后,又重新将技术支持工作转化为内部事务;部分原因在于移动设备的广泛普及以及企业越来越多地提供Web服务。Melland指出,由于这类机制的复杂特性,“支持人员必须真正理解企业的业务流程,从而真正让业务功能尽可能与员工的家庭环境相对接。” 经历了数年技术支持压缩,位于密歇根州迪尔伯恩市的Wolverine Advanced Materials公司计划招聘几位服务台工作人员,旨在适应公司的规模拓展以及提供基于ITIL(即信息技术基础设施库)的服务管理方案,这家汽车原材料供应商网络业务经理James Bland表示。“企业正持续发展,所以我们有信心扩大员工规模,”他表示。 3. 网络 “31%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。” “去年排名:第八位。” 对网络技能的需求由去年的第八位跃升至今年的第三位。根据IT招聘企业Robert Half技术公司的调查,55%的受访者将网络管理员作为最受关注技能。 对无线连接技术的需求可能是网络专业人士走红的主要原因,Melland指出。“企业对于具备无线网络人才的需求每年都在以9%的幅度增长,”他解释称,而且网络与系统管理员的失业率低至惊人的1.1%。 乔治亚州中部医疗中心首席网络分析师Charles Whitby指出,无线医疗设备的持续增加给他带来了显著的工作负担。除此之外,无线设备还带来更多网络流量,并需要组织为其提供故障排查服务——举例来说,当无线设备固件需要升级,但这类工作并未受到美国食品及药物管理局的批准,他表示。 与此同时,在Wolverine公司,Bland正努力转移一部分网络管理职责,从而为自己节约一部分精力、转而关注于其它更具战略意义的事务。 4.移动应用与设备管理 “27%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。” “去年排名:第九位。” 随着移动设备在企业环境及消费者领域的广泛普及,我们对于移动技能的步步高升毫不意外——由去年的第九位达到今年的第四位。由于移动技术相对属于新兴领域,我们也能够理解Computerworld调查的受访者们将移动人才视为最难招聘对象榜上的第三位——仅次于开发及商务智能/分析技能。 在未来十二个月中,受访者们认为哪类IT员工最难于招徕? 32%编程/应用程序开发 32% 商务智能/分析 21% 移动应用程序与设备管理 17% 项目管理 14% 安全 14% 来源:Computerworld网站预测调查;受访群体:221位IT高管;2013年6月。 移动应用开发对于位于达拉斯的PrimeLending公司来讲是一项“重大举措”,公司CIO … Continue reading “【技术杂谈】2014年八大最热门IT技能”