分类 心得体会 下的文章

Git基础教程1——本地单分支的版本控制工具

以前面向公司的一些代码开发人员(非专业程序员)做了一次基于Git的命令行的Git培训。
第一次培训向所有培训者介绍了Git的革新和伟大,然而不出意外,所有人的表情都是一脸懵懂的表情,然后持续到第一次培训结束。然后第二次培训的话,来的人就只有第一次培训的一半不到。
因此,在这一次的系列培训中,我将不会给你介绍Git的功能有多么高级,Git的实现由多么伟大,我只会带你切身感受Git给我们带来的开发上的便利。

首先,先问大家一个问题:你有没有手动做过版本控制?可能大家有所疑问:什么是版本控制。
给大家看一张图片:

MySQL修改字段名称

今天需要修改一下table的某个字段名称,以前PHPmyAdmin用的比较多,较少接触alter命令,就直接查了一下,找到了这个命令:

alter table {table_name} change {old_field_name} {new_field_name} {filed_value_type};

误以为field_value_type可以省略,输了几次都报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

真是黑人问号!不得已之下加上了field_value_type,居然执行成功了。顿时怒了,你特么不是在逗我么,我只是想改一下字段名称啊,为啥还得加上字段类型啊。

不过没办法,既然这么要求,只能这么用了。这边可以用describe {table_name}命令查看当前各字段的类型。

Clang需要注意的一些不同于其他语言的地方

1、C语言需要include对应的库的头文件,比如使用printf的时候就需要include stdio.h。库的头文件里面有函数的声明,这样编译器就可以判断函数调用的对不对了。
2、C语言里面没有字符串,只能使用字符数组来模拟字符串,如果模拟的话字符数组需要比里面所有字符还要多一位,因为最后需要添加一个“哨兵字符”。&switch检查不了任何数组,包括字符数组。
3、C语言中没有布尔值,只能用不为零的值和0两个值来模拟布尔值。
4、C语言中不会记录数组的长度,可以想象存储在内存中的数组是多么赤裸裸的样子。
5、C语言执行某个函数会有返回值,0的话代表执行成功,非0的话代表执行失败。然而在其他语言中,执行语句不会有返回值,只会当异常发生时抛出异常。
6、c语言中有指针,指针有点像对象引用。使用一个变量指针就相当于使用那个变量的复制品,不过复制品只能用*(pointer variable)的形式进行操作。
7、c语言中的数组在参数传递的时候不是copy值的,其实是退化成指针传递过去,但是函数中的参数声明不是声明一个指针啊,摔!
8、虽然《head first c》里面说sizeof(msg)结果是指针的长度,这边的msg是传递到函数中的字符数组!然而为啥在main函数里面长度好好的,这边长度就不对了,难不成main函数里面的msg不是指针?
突然想起来当年上C语言课时候老师貌似提到过,在main函数里面的msg变量会保存字符串长度,但是传递到函数之后就丢失了么?

使用gmail邮箱作为SMTP遇到的问题:AuthenticationFailedException: 534-5.7.14

公司要安装Atlassian系列软件,安装过程中需要设置邮箱,设置邮箱界面直接提供了gmail邮箱的选项,然而按照这个设置了依旧提示错误:

javax.mail.AuthenticationFailedException: 534-5.7.14
<https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsNX
534-5.7.14
No6jJbDc4l7fZ_WLdBD0sNHIIp_nLvplRMm0bYFBnZBF_XOyVvNSdd1FenDZJPwBTFQyRH
534-5.7.14
lriPK3myMm-dXkW3zK0-6XpO7BzI8hfRcByG1k7YiVzXlddTvs7QhjtgCWNcrzMBuPhoof
534-5.7.14
GjME2TgYzXJVHz5MV98nRnr_kq-kP7RmgOtX3IQHLwM5E8QGBC9-2THVQr_Ch_U0-1nZsc
534-5.7.14 yoPuNEw> Please log in via your web browser and then try
again.

1、先在Bing查找这个问题,跳出了很多链接,但是看不出个所以然。
2、按照上面<>中的url地址进入提示的网址,但是这个网址提供的建议对于我解决这个问题没有帮助。
3、不得不翻墙请出Google,搜索的第一个结果是StackOverflow的网址。点进去一看,使用biniam_Ethiopia的回复中的方法解决了这个问题。

貌似是Google因为安全问题屏蔽了SMTP的访问,需要自己手动开启,但是手动开启的地方靠自己找完全找不到,这就尴尬了,浪费了好多时间的说。

GitHub TOP项目分析

今天把GitHub TOP的项目仔细浏览了一下,做一点简单的分析。

  • 在star数超过100的项目里,JS的项目有15276个,是第二名Java的两倍还多,JS做为前端开发的唯一语言,现在正在蓬勃兴起中。
  • Java,编程语言的老牌霸主,在GitHub经历了初期的颓势之后,随着GitHub的越加普及和Android项目增长,现在已经逐渐找回数量上的优势。
  • Python语言star超过100的项目有5978个,略少于Java,Ptyhon借助多个领域不错的表现领先同类竞争对手。
  • Object-C排在第四位,star超过100的项目数量达到4614个,略领先Ruby语言,在苹果设备上一家独大原本是其优势所在,但是swift的出现带来了很多压力。
  • Ruby语言虽然也是功能强大的脚本语言,但是和Python在多领域大放光彩不同,现在Ruby主要在Web领域出出风头,不过力压Web霸主PHP充分表现其实力不容小觑。
  • PHP语言颓势明显,star超过100的项目只有3413个,PHP一直在保守和激进之间徘徊,在诸多竞争对手的冲击下颇为狼狈。
  • C语言作为工业界的霸主,在偏互联网的Github上依旧占据了一席之地。
  • C++语言作为老牌语言,也成功跻身榜单之中,颇为难得。
  • Go语言是唯一上榜的新语言,其对工程的友好赢得了大量程序员的青睐。
  • HTML作为前十唯一的标记语言,可喜可贺,其在GitHub上主要分成两类项目:资料类项目和样式类项目。

下面是Star数排前十的项目分析:
1、FreeCodeCamp/FreeCodeCamp
这个项目是 https://FreeCodeCamp.com 网站维护的,这个网站是一个编程学习网站,估计用户挺多的,这个项目的star达到惊人的160k,几乎相当于第二名的两倍。
2、twbs/bootstrap
第二名的项目是大名鼎鼎的bootstrap,相比前三名另外两个都是资料类项目,bootstrap作为一个前端框架获得这种成功令人惊讶。当然,在我看来,这得益于前端统一为JS语言带来的福利。待会儿我们会看到前十会有大量的JS项目的出现。
3、vhf/free-programming-books
第三名的项目是免费的编程书籍资料,这个项目得到如此高的star数再正常不过。不过居然被bootstrap挤到第三的位置,也只有令人感慨JS的强势地位。
4、d3/d3
JS的可视化类库,d3在可视化领域打拼多年,和第二名bootstrap,第五名Angular.js,第六名React,第八名jQuery一样都在各自领域占据绝对优势地位。
5、angular/angular.js
又一个JS项目,angular作为Web应用框架的代表,一直以来都有着超高的人气。
6、facebook/react
react作为一个革命性的JS项目,带来了虚拟DOM等Web开发的新思路,获得大量程序员的肯定。
7、FortAwesome/Font-Awesome
终于又出现了一个资料类项目,关于HTML字体相关资料的。
8、jquery/jquery
作为JS界应用最广泛的类库,jQuery也跻身Star榜单前十,虽然地位在各类新秀的冲击下岌岌可危,但是依旧保持着强大的影响力。
9、robbyrussell/oh-my-zsh
这是前十项目中的最大怪胎,因为它是一个基于shell语言的项目。作为一种在上文中盘点中未出现的语言,居然能有一个项目跻身前十,这个项目受到多大的欢迎不用多说了吧。尝试一下,你会发现你的命令行居然可以这么智能和便捷。
10、sindresorhus/awesome
资料类项目,整合了GitHub上的大量“awesome xxxx”命名的项目的资料。
到此为止,共有5个JS项目,4个资料类项目,1个Shell项目。