hanvonwcd's Profile

40
points

Questions
13

Answers
4

  • Asked on 2016年5月21日 in 侃爷到.


    分享:
    • 964 views
    • 1 answers
    • 0 votes
  • Asked on 2016年5月20日 in 云计算.

    简单使用Git和Github来管理自己的代码和读书笔记 – bxxfighting的个人空间 – 开源中国社区 //

    以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git

    和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下来继续使用。

    我这里简单的记录一下我使用的过程,最简单的使用都是,高级的功能我一直没有使用到,虽然买一本《Git权威指南》

    但是很多东西用不到就不能够真的会。下面开始简单介绍我使用的方法,我这个是在windows上使用的。我使用分两种情况,

    因为我的代码都是在Linux下写的,所以在linux下主要是托管代码用,在windows下主要是托管笔记使用的,比如一些PDF

    文档,我在看的时候会加入自己的注释,这样使用托管功能,在哪里都可以接着注释,不用总是拷贝或者总是需要复制。

    1. 先注册github.com的账号官方网站: https://github.com/

    注册界面,第一个用户名,以后会用到,我的是bxxfighting

    2.      登录界面

    3.      登录成功后界面

    4.      创建仓库,我现在创建一个测试仓库叫buxingxing,仓库分公开的和私有的,公开的是免费的,私有的是收费的,我使用的是公开的仓库,如下创建方式

    点击New repository按钮,弹出如下界面,第一行填仓库名,就叫个buxingxing,第二行是对这个仓库的描述,之后那个Public就是公共仓库的意思,接下来的README就是在仓库里创建一个README文件,可以往里写一些介绍你这个项目的功能之类的东西,再下面那个Add gitignore按钮,可以选择你这个项目是用什么语言之类的,后面那个License我没有选,点击”Create repository”

    5.      创建仓库成功后,界面如下显示,可以点击README.md来编译这个文件

    在windows下安装Git

    1.      下载网址: http://git-scm.com/download/

    2.      下载完毕,打开安装,点击”next”

    3.      点击”next”

    4.      可以更改安装路径后,点击”next”,我没有更改,就是使用的默认路径。

    5.      这里我把所有的选项都选中了。

    6.      直接默认,点next.

    7.      默认设置,点Next

    8.      默认设置,点击next。

    9.     默认设置,点击”next”

    使用git和github托管项目代码

    1.      双击图标”Git Bash”

    2.      打开界面如下

    3.      配置Git,图示如下:

    a)        先输入ssh-keygen –t rsa –C “邮箱地址”,注意ssh-keygen之间是没有空格的,其他的之间是有空格的

    b)        回车之后,会出现一行,让你输入一个保存密钥的地方,括号里面是它默认的位置,这里会让你输入几次内容,都不用输入,直接回车就可以了,可以看到如图的效果(这里最好都不要输入,直接回车,我第一次更改了保存的路径,就出了问题,少了一个文件):

    c)        回车之后,这样密钥就生成了,可以打开id_rsa.pub(位置根据你的电脑来看)来查看,我使用的是记事本直接打开的这个文件,里面的所有内容就是这个密钥,一会需要使用的时候,就直接全选复制就可以了

    d)        现在转到github网站上去配置一下ssh key,点击箭头指示的三角图标,选择Settings,然后点击左侧的SSH Keys,之后点击右侧的Add SSH Key,这样就会出现添加SSH Key的界面,在Title这一栏填一个名字,名字随意起,之后打开刚才生成的那个文件id_rsa.pub,全选复制里面的内容到Key这一栏中,点击Add Key按钮完成操作,这时你填的邮箱会收到一封确认的邮件,不用管它

    e)        验证一下是否设置成功,在git bash下输入如下命令:

    ssh –T git@github.com

    如果你是第一次,会让你输入yes或no,这时输入yes就可以了,其它显示就和我这个是一样的。如果你的是出现不是这些内容,有可能是显示权限问题什么的,就应该是我上面提到的那种情况,你看一下你生成密钥时是否操作正确,目录下是否有那个known_hosts这个文件

    f)        现在配置一下用户名和邮箱:

    git config –global user.name “用户名”

    git config –global user.email “邮箱”

    4.      到现在为止,我们就算把Git和github配置完了,现在就来托管我们的项目吧,刚才我们已经在github上面创建了一个叫buxingxing的仓库,那么我们现在就在本地创建一个目录,来管理这个仓库。

    a)        随意创建了一个目录叫buxx

    b)        右击目录,出现的菜单中有Git Bash Here,点击它。

    c) 这时候就在这个目录上打开了我们的终端。

    d) 这时候输入 git init,来完成初始化工作。这时候目录里面就多了一个.git的目录了。注意中一共有三个命令,init/remote/pull均在上面显示,下面几步效果都在这张图中显示出来了。

    现在继续在终端上输入如下命令,增加对我们github上创建的buxingxing仓库的管理。

    git remote add origin git@github.com:bxxfighting/buxingxing.git

    其中bxxfighting是我在网站上注册时使用的用户名,buxingxing.git是我为这个项目建立的仓库名,在网站上显示是这样的:

    e)        由于我建立仓库的时候创建README.md之时,已经算一次提交了,我需要先在本地同步一下仓库的内容,命令如下:

    git pull git@github.com:bxxfighting/buxingxing.git

    完成的效果如下图,并且本地目录下多出了README.md文件

    现在我们在本地目录创建我们的文件,比如下图是我创建的文件:

    f)        下面就要把我刚创建的文件上传到到仓库上去了,首先执行增加命令,如下:

    git add .    (这后面是一个英文的句号)

    add后面加了一个点,是想要提交所有文件,如果想提交指定的文件,可以写文件名,执行完增加命令后,要执行提交命令,如下:

    git commit –m “这里写下你自己的记录本次提交内容的信息”

    -m后面跟提示信息,这个提示信息是一定要写的,不仅是规则,同时也方便我们记录我们提交的过程,写清晰为什么提交或修改了什么是非常有用的,提交完成后,我们就要把它推送到远程仓库上去了,命令如下:

    git push git@github.com:bxxfighting/buxingxing.git

    这样就完成了我们要做的所有任务

    现在就基本上可以使用了,每次增加了新文件就先add,然后commit,如果只是改了文件的内容,只执行commit就行了,当然最后一步都是要执行push,把所以改变推送到我们的github上去托管。

    其实,这里有一处提醒,就是最后push那一步,提醒中说,已经有更牛逼的办法了。所以,你自己去根据提示去看看什么牛逼的办法吧,如果懒,就这么用就行倒是。

    到这就差不多了,我每次用其实都来看看,不是总是用,有点记不住,第一次这样就过就记下了,方便以后使用。其实

    这真是非常方便的,可以使用熟练,管理自己的代码和笔记很好的东西,以前管理代码,最近发现每次看电子书,里面写上笔记,但是同步费劲,现在决定用它来管理了,回去在自己的笔记本上也这样来用,就可以同步自己看的进度了。


    分享:
    • 1013 views
    • 1 answers
    • 0 votes
  • Asked on 2016年5月20日 in 移动互联.
    顶着高级头衔,但感觉我也只能算一个中级吧。

    1. 会熟练使用Profiler来调试应用性能。比如其中有一个很好的模板叫Time Profiler,会告诉你应用当中哪行代码花了最长时间,当你界面卡顿的时候,用这个可以很快找到优化点。
    2. 写测试,写测试不仅仅可以帮助你找BUG,更重要的时会让你去思考如何更好地架构你的应用,其实很多好的工程师,代码架构能力都是很不错的。同时也会用OS X Server和XCode配置 Continuous Integration。
    3. 可以轻松编写多线程代码,熟悉NSOperation,GCD等
    4. 熟知一些常用的系统类库的原理和Best Practics,比如Core Data,这个玩意儿要玩得好,也是很花时间的。
    5. iOS应用,UI占很重要的一部分,可能大部分时候你只需要使用默认的UI组件就行,但是有些时候,你必须要自己去实现一些UI组件和动画,这个时候Core Animation啊,UIDynamics啊都是很值得去学习的点。

    我一般的路径是,当要解决一个问题或实现一个功能的时候,我尽量自己去实现,但当自己写的东西无法达到预期的时候(性能太差,实现不了或代码逻辑过于复杂)我才会去找第三方库。

    还有就是,如果你做了两年都觉得自己没啥大进步的话,那问题可能是你手头的项目并没有什么高的要求,没有性能问题要你解决,公司也对很多细节问题无所谓,那作为有要求的工程师,你要么自己有项目可以帮助自己提高(比如我总是会自己写应用来学习一些新API和技术);要么就换家公司吧。


    分享:
    • 1061 views
    • 1 answers
    • 0 votes
  • Asked on 2016年5月19日 in 机械.
    “机械工程师”说说我的感受吧。
    首先说题主的问题,机械工程师价值几何?

    我认为机械工程师非常有价值,而且好的机械工程师理所当然要更有价值,但是这种价值在现在的大环境和小环境下均不会有好的体现,如果你是一名机械专业的学生,那么在现在的社会环境下等你毕业之后这种价值也不会有太大的体现,想通过机械这门技术生存,可以保证你饿不死,但是想过上高质量的生活,您还是赶紧转到其他高大上的专业吧。

    正如 @百毒 同学说的,机械其实是一门非常丰富要跨多门学科的专业,跟谁都有接壤,跟谁都挨着,但是自己又自成一体,这绝对算的上一门高大上的专业,尤其是在100多年前,但是到了今天,机械这门学科已经发展的太成熟了,成熟的有些过了。随便看看高校里机械专业的PHD们,有谁的研究方向会是纯粹的”机械“,不是他们不务正业,而是发展了这么多年,机械行业的方向已经变了,以前需要各种四连杆各种奇怪结构实现的运动方式,现在只需两个电机加个PLC就搞定了。所以这只大章鱼就需要把触角伸向无数个有交叉的学科,可能会和电相关,搞成了机电一体化,也可能会偏控制,或是有限元分析,甚至都有可能是数据库(我是机械专业的小硕,毕业论文就是数据库···)。总之机械行业这种成熟的发展,最终却造成了其价值得不到体现的最重要原因:门槛太低!

    听了斯坦福毕业的同行说的国外就业情况和薪资水平,实在是羡慕,但是在国内我绝对不会相信那个公司会脑残的给一个机械专业毕业生这么高的起薪。毕竟美帝这样的老牌资本主义国家是从一百多年前的工业革命发展过来的,对机械工程师的重视是有历史传承的。但是我天朝不一样,机械行业的成熟导致他的门槛非常低,现在随便哪个学校的本科生,只要是机械专业的(不是机械专业有点工科背景的比较机灵的也行)随便培养几个月一样可以熟练画图,和干了几年的没什么差别,顶多慢点。而现在一般的企业发展,机械工程师的工作做到这也就差不多了,顶多有些经验的再去设计个新的结构,再或者校核个强度,对于一般公司的机械工程师工作也就是这些了,然而能胜任这些工作的人真的是一抓一大把,只要你有一些工科背景,成为一名机械工程师真的不难。感觉这份工作是不是跟说相声的很像,谁都可以上台来一段相声,可是谁能说得好把人逗乐,那可就不一定了,可是能说逗不乐听众的不是相声演员么,机械工程师也是同理。国内这种行业内的浮躁气氛进一步加剧了这种想象,看到一台设备,然后就逆向工程一下,改吧改吧差不多就拿出来卖或者申请个什么项目“骗钱”就OK了,可这里面的关键Know-how有人知道么?这个零件为什么要搞成圆的而不是方的有人想过么?对这些原理性的,物理层面技术的不重视就更进一步造成了机械工程师就那么一会事的印象。然而一个好机械工程师真正要做的并不是简单的画画图,标标尺寸公差就完了,一个好的机械工程师要综合考虑全局,平衡各方面的需求,需要熟悉各交叉学科的知识,甚至要更懂,清楚的明白一个设备或一个零件的原理,这种交叉的深度搞到量子力学都是有可能的,所以以上这些才是一个好的机械工程师价值的体现。可是大部分公司是不会考虑这些的,而且一个企业运行,尤其是生产制造类的企业,他的成本很高,设备的引进会是很大一部分,因此也就不可能在人力成本上投入更多,所以你会发现国内的机械工程师薪资水平绝对是在中下游的。

    所以,机械工程师这个职业谁都可以施展施展,不需要太多的技术含量就可以混一混,搞到最后只能是想挣更多钱的换到采购、销售了,其他的人只能是熬资历了,美其名曰积累经验。
    PS:虽然经验很重要,但是对于一个好的机械工程师来说,经验绝对不是最重要的。

    ———————————————————————————————————————————————–(分割线)————————————————————————
    看到 @何小猫问那最重要的是什么,那我就再补充下答案。
    对于一个机械工程师来说,经验不是最重要的,因为那样容易被经验所禁锢,从而没法走出思维定式,最终导致产品类型的僵化,失去了创新创造的机会。

    举个小例子,我想大多数在制造类企业工作过的人,尤其是国企,大概都会有这种感受,一个零件准备从别的设备上借鉴过来,但是它的壁厚怎么定呢?决定不了?那就问一下有经验的老工程师吧,结果给出答案是5mm,但是这个5mm哪里来的呢?因为他以前做个一个设备,相似的零件是4mm的,那5mm肯定是没问题啊(那4mm的零件实际上很有可能是从别的设备上3mm扒过来的)。发现什么问题了么?是不是从始至终没人从根上考虑壁厚到底多少合适,没人在乎这个,为什么?因为麻烦,因为有别人的经验在,不想多此一举。其实,解决这个问题非常简单,自己找出材料力学的书或者找个软件,大概估算一下心里不就有底了么。说到底过分依赖经验的后果就是失去了寻找事情本来面目的动力。

    所以我认为一个机械工程师一定要多带着“为什么”的心,多问为什么然后找到问题的根,我不在乎你是不是经验把他搞定的,评判好坏的标准就是它有没有道理,从根源上把问题解决就好了。

    也正因为我总是这样追根问底,怀疑一切,所以也经常被人误会,感觉什么事好像就你对,把别人想的都像SB一样。情况有些和 @萧啸寒类似,但是想开了也就好了,因为我不迷信权威,我只寻找事实。

    好,回到问题本身,我认为一个好的机械工程师最重要的是什么:
    1. 有独立思考的能力,会寻找问题的根本原因(往往不是机械上的)。
    2. 平衡各方的全局观。
    3. 想象力和创造力。


    分享:
    • 1103 views
    • 1 answers
    • 0 votes