作者归档:月小升

关于 月小升

正在创业

程序员的幽默趣闻,个个搞笑

1、程序员找不女朋友的原因 程序员问禅师:“大师,我身体健康,思想端正,各方面都不错,为何就是找不到女朋友呢?” 禅师浅笑,答:“原因很简单,不过若想我告诉你,你需先写一段java代码。” 青年略一沉吟,写完了。 “再写一段C#” 写完了, “再写一段php” 写完了, “再写一段js”,写完了, “这就是原因” 。 2、技术宅男如何把妹? 1.自制系统盘内置马儿随时知道MM在做什么,计划任务定期搞崩系统从而保持用户粘性; 2.给MM推荐自制APP,随时知道mm位置给她惊喜; 3.经过一段时间你就积累了大量数据,做一下数据挖掘就知道她的一切喜好习惯; 4.将该应用免费开放给更多宅男,于是有了海量数据。 ——这就是云把妹。 3、程序员如何制造就业机会 一老板坐飞机,旁边一刚毕业程序员拿着杂志看,一边看一边念叨:云计算要火? 老板听了,回去问VP:什么是云计算? VP回去告诉总监:我们可能要做云计算; 总监回去告诉经理:公司要做云计算,马上招人. 经理面试,有一个就是前几天那个拿杂志的毕业生, 毕业生说,没想到云计算真的要火? ——所以机会还是给有准备的人。 4、世界上最没用的几句话 1、警察:不要跑! 2、国足:必胜! 3、老师:同学们不要睡了! 4、病人:医生,您轻点儿! 5、父母:孩子,不要闹了 ! 6、罪犯:我是冤枉啊! 7、女人:不要嘛! 8、男人:我发誓! 9、程序员:这个不能实现! 5、程序员找不到对象 程序员找不到对象,一般有三种情况: 1、 C# … 继续阅读

发表在 吐槽 | 标签为 , | 4 条评论

svn 查看最后修改的文件

svn windows工具是可以方便的查看最近改动的文件的 Linux mac下经常更新以后,忘记哪些文件是最近修改的。 命令格式如下:     svn diff -r REVNO:HEAD –summarize http://svn-url 例如 想检查从 724版本 开始到目前所有改动文件的列表     svn diff -r 724:HEAD –summarize https://192.168.198.2/svn > changedfiles.txt 可以简写成这样     svn diff -r 724 –summarize https://192.168.198.2/svn > changedfiles.txt 月小升觉得时间的更好 时间方式 你只知道需要检查版本的日期, 这就相当于检查从 2015-05-06(上次封版日期) 开始到目前(此次发版日期)所有的文件改动     svn diff … 继续阅读

发表在 Linux | 标签为 , | 一条评论

最常用的16个Linux命令

我们每天都会频繁使用Linux命令行,虽然网上关于其使用技巧的资料多种多样,但很多朋友应该并没有进行过实际尝试。因此,今天的文章将对此进行汇总,希望能为大家带来一点帮助。 1. 将输出结果显示为表 有时候,当我们查看命令的输出结果时,大量拥护的字符串可能很难进行阅读。如果将命令整理为表?其实非常简单!只需要输入: mount | column –t: 复制代码 在以上示例中,输出结果因为被空格隔开而显得非常清晰。那么,如果分隔符是冒号或者其它符号(例如cat /etc/passwd)又该怎么办? 只需要调整一条–s参数即可。 cat /etc/passwd | column -t -s: 复制代码 2. 重复一条命令直到成功运行 很多朋友都在网上搜索过这个问题。相关建议包括ping服务器直到生效、检查某一包含特定扩展名的文件是否从特定目录处上传完成以及检查特定URL是否已经存在等。 事实上,大家可以使用while true循环完成这项目标: 在本示例中,>/dev/null 2>&1会将程序的输出结果重新定向至/dev/null。其中包括Standard Error与Standard Out。 这也是我个人最喜爱的Linux命令行使用技巧之一。 3. 通过内存使用量对进程加以排序 ps aux | sort -rnk 4: 复制代码 4. 根据CPU使用量对进程加以排序 … 继续阅读

发表在 Linux | 留下评论

Java人员必须要会的10个技能

以下为java大数据计算招聘公司排行前10的技能
 Spring 299 MySQL 290 JavaScript 216 Linux 165 J2EE 151 设计模式 148 Struts2 138 Hibernate 132 Mybatis 130 jQuery 128 这是从450家企业的招聘信息中统计而来,月小升博客觉得还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。 尽管Struts2漏洞频出,但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。新兴互联网公司,一般来说主要是Spring家族居多,spring、spring Mvc以及Spring Boot 出现的频率较多。 从图中可以看出,分布式服务框架应用也是大部分企业招聘的必要条件了,阿里系的Dubbo名列前茅。相应的分布式应用程序协调服Zookeeper也出现在其中。 时下很流行的RESTful架构,准确的来说它是一种标准。也是很多企业考察的对象。 以下是出现次数超过100的一些技能,大家可以做一个参考。 Spring 299 MySQL 290 JavaScript 216 Linux 165 J2EE 151 设计模式 … 继续阅读

发表在 JAVA | 标签为 , , , , | 留下评论

bug对你的四个好处

“大多数开发人员只是想写新的功能,他们不想使用维护和修补漏洞”。这也是大多数开发人员是错过的乐趣和好处就是发现和修复bug。 每个错误都可以教你一些东西。 反馈是一个关键,它是敏捷开发的主要原则之一。单元测试和迭代开发技术更快地提供反馈。与单元测试你的代码是否有效的问题上得到反馈,和每个交付版本你可以听听客户认为的新特性。错误报告是另一种形式的反馈您的代码。一个错误的可以有许多不同的原因。一些可能性是:一个简单的编码错误(比如一个嵌套的if语句,你最终在错误的分支),或者一个错误的假设你(也许传入的消息并不总是有某些字段,所以你有一个空指针异常),或有缺失的要求(你应该回答消息以不同的方式,如果一个给定的参数存在),或客户使用软件在一个意外的(但正确),导致错误。 在这些情况下,您可以学习如何代码,它是关于你的产品或系统的作用。例如,当我在Tilgin VoIP开发产品,有一个情况我们收到了一个错误的信息,导致我们的软件循环下去。消息所包含元素使用tag-length-value编码(电磁阀)参数,长度值元素的总长度。这样你可以跳过未使用或未知元素向前跳“长度”的字节数。在这种情况下,长度值是零,所以跳过我们指向相同的元素后,指出在跳之前,导致无限循环。这个bug前,仔细检查我的代码长度值太大值会导致阅读过去的消息缓冲区。不过,在那之前,我从来没有想到,一个零长度可能是同样糟糕。 自己的代码变得更容易调试。 当你花时间故障问题和修复bug,它不会花很长时间,直到你想让自己的代码尽可能容易调试。这是令人沮丧的不所有可用的信息。一个非常常见的问题是不包括动态信息的异常。例如,假设有代码,预计值范围在0 – 20。有多少次你看到一个异常,只是说“非法价值”?不告诉你如果你想找到一个bug。如果例如21日收到,应该说“非法值:21日不在范围0 – 20”。它有助于包括允许范围,肯定有助于包括当前值。当前值可能是21日或-128年或65535年。所有这些可能给你一个线索是什么导致了它,你不从一个普通的“非法价值”。甚至Steve McConnell打破这个规则在某些地方的优秀作品代码完成。例如,在第15章中有一个例子,一个意想不到的发现类型的字符,但错误消息不包括字符的问题。每次你找到并修复一个错误,你需要问问自己:我应该做有什么在我的代码不同,以消除错误避免未来再次出错吗?有什么我应该做,使这种错误更容易避免发生在未来吗? 你和客户会很高兴。 正如我所提到的,为什么我爱编码、编程的乐趣之一就是做对别人有用的东西。你得到同样的踢修复一个缺陷,但在不同的时间尺度。提供新功能通常需要一段时间,但一个bug修复可以在一个小时内完成。每个固定的错误让你感觉你是完成一些东西,这是一个伟大的感觉。有点矛盾,修复一个缺陷会使客户满意。如果没有一个错误首先,不会有需要修复它,那么为什么他们应该快乐吗?然而,我的经验是,他们乐于接受一个bug修复,尤其是如果它是快速解决。每个人都知道总是会有缺陷。重要的是,有人准备修复它们很快被发现时。 解决问题是有趣的。 许多程序员喜欢解决问题,像数学难题,编程挑战,数独或填字游戏。甚至谋杀谜团饲料解读:你看看线索,试着找出它的发生而笑。调试和修复bug是相同的。每个错误都是一个新的谜题找出。经常看到一个新的错误报告的时候你的第一反应是:这是不可能的吗?怎么能这样呢?这是当你开始寻找线索。日志怎么说?从系统错误报告吗?此时系统中发生了什么?最近任何改变——新软件,配置更改,交通干扰?让找出开始!这些都是四个原因我喜欢调试和修补漏洞太多。你的经验是什么? 后记:月小升认为,正确的策略是没次编写一小段代码,就多加测试,把bug消除在集成之前,越在前期检测,越容易查到bug,而且后期调用无bug的模块,团队作业效率会高出很多。不过bug总会有的,面包也总会有的。 翻译原文:https://henrikwarne.com/2012/10/21/4-reasons-why-bugs-are-good-for-you/

发表在 互联网观察 | 标签为 , | 留下评论

apache 自带压力测试工具ab 来场测试吧

apache自带压力测试工具 叫 ab 装了apache 在bin下就有了。 ab -n 20 -c 10 http://java-er.com/ -n 请求数量 -c并发数 你也可以 ab -n 1000 -c 100 your domain 返回结果 This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache … 继续阅读

发表在 JAVA, Linux, PHP | 标签为 , , | 留下评论

java 程序员如何成长

作为刚刚进入Java领域的新同学,无论是高校的毕业大学生,还是有志转行的在职人员,都面临着诸多如下的困惑。 l 如何学习Java语言? l 在Java学习过程中需要掌握哪些技能? l 各大公司对Java开发的要求是什么? l Java 学习过程中有哪些注意事项? l Java 工程师的职业发展规划是什么? 我把Java 的学习过程分为5个阶段:理论阶段、开发阶段、进阶阶段、实战阶段以及深造阶段。 理论阶段 在具体谈论Java知识点之前,我想先跟同学们聊聊Java 语言自身的一些特点、生态系统以及适用的场景,这有助于我们更好的学习语言本身。 首先,我们从Java 语言自身的实现机制来聊聊Java 语言的一些特性: 面向对象:Java 是一门面向对象的编程语言,封装、继承、多态这些特性使得Java 语言适用于大型软件系统的研发。 跨平台:这是Java 最重要的特性之一,由于有虚拟机的支持,Java 代码可以无缝运行在任何操作系统中,无需重新编译; 透明内存管理:做C/C++的同学最头疼的事情就是内存泄漏问题,在Java中,由于虚拟机会自动回收不再使用的内存空间,所以程序员无需显式回收内存。 足够的性能:性能一直是Java为人诟病的问题之一,但是在java6 之后,随着JVM虚拟机编译优化技术的不断进步,垃圾回收算法的不断优化,Java的性能已经能够胜任绝大多数系统的要求,甚至在性能要求极为苛刻的底层系统中,我们也能看到Java的身影。 此外,Java 还有完善的生态系统: Java 拥有数量众多的第三方类库,作为一个开发者,你会发现作为一名Java程序员是一件很幸福的事情,因为很多事情别人都已经帮你做好了,你需要做的只是把别人造好的轮子组装起来,实现你的业务需求。 Java 拥有非常完善的开发环境Eclipse,集成了非常多实用的功能,且操作界面非常友好。 Java 有非常多优秀的框架,基于这些框架,可以快速开发出一个可扩展的业务系统。 Java 拥有非常活跃的社区和论坛,当你遇到问题的时候,你可以快速的得到其他人的帮助。 … 继续阅读

发表在 JAVA | 标签为 , , | 2 条评论

php数组的21个操作合并,拆分,删除,排序…

1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: array array_merge (array array1 array2…,arrayN) 这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。 2. 追加数组 array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并在一起,形成一个联合的数组.两者之间的区别在于,当某个输入数组中的某个键己经存在于结果数组中时该函数会采取不同的处理方式.array_merge()会覆盖前面存在的键/值对,替换为当前输入数组中的键/值对,而array_merge_recursive()将把两个值合并在一起,形成一个新的数组,并以原有的键作为数组名。还有一个数组合并的形式,就是递归追加数组。其形式为: array array_merge_recursive(array array1,array array2[…,array arrayN]) 程序实例如下: 现在键 mango 指向一个数组,这个数组由两个颜色值组成的索引数组。 3. 连接数组 array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其形式为: array array_combine(array keys,array values) 注意,两个输入数组必须大小相同,不能为空。示例如下 4. 拆分数组 array_slice() array_slice()函数将返回数组中的一部分,从键offset开始,到offset+length位置结束。其形式: array array_slice (array array, int … 继续阅读

发表在 PHP | 标签为 , , | 留下评论

海外支付stripe对接支付

strip支付 https://stripe.com/docs/checkout/tutorial <form action="index.php" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_wIAv7SdDJV2B6zPPUdnXnJCd" data-amount="999" data-name="Leoptique Inc." data-description="Widget" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto"> </script>     </form> 测试的信用卡号 4242424242424242 各种测试的信用卡 https://stripe.com/docs/testing#international-cards 注意填写日期的时候,尽管可以随便写,但是你不能写年份低于当前的,比如15 就不行。我写19就可以了 2019年到期 2015年到期,就不行了,说明卡过期了。 strip 返回的数据,采用POST方式 array(3) { ["stripeToken"]=> string(28) "tok_19xSp5GoFgQiAmhVvbVsCIGI" ["stripeTokenType"]=> string(4) "card" ["stripeEmail"]=> string(15) "asdasdf@afd.com" … 继续阅读

发表在 PHP | 标签为 , , , | 留下评论

mysql Lost connection to MySQL server at ‘reading initial communication packet

mysql 爆出,本地连接正常,远程链接无法链接,爆出错误 Lost connection to MySQL server at ‘reading initial communication packet 大量无法远程链接的问题 1.iptables 导致 看看iptables -L 2.mysqld 下增加 skip-name-resolve 我加了发现不行 看下面 3.bind-adress 我发现mysqld 还有一句 bind-address = ::ffff:127.0.0.1 [mysqld] #bind-address = ::ffff:127.0.0.1 local-infile=0 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended … 继续阅读

发表在 数据库 | 标签为 | 一条评论