github专利
1、作业放到Github上被抄了,该怎么做?
首先,我觉得让你放到GitHub上面,不是立马让你放上去,你可以等到期末考完出分数之后再放进去。但是,作业既然被抄袭了,下一次就更应该注意起来,不应该继续的放到GitHub上面作业,这次的作业只能是重新写一份了,虽然知道写一份作业很辛苦,但是,以后也一定要注意安全和隐私的问题,只有,在绝对安全的情况下才敢发送到这种没有隐私的地方,但是,一定要注意这一次的失误,所以这些抄作业的人,你们也一定要想想一份作业有多么的不容易,你们在窃取别人的成果是可恶的,这种事情,在从合法性的角度上说,和很多的人都一样,要看license的要求。如果说改变几个变量名就说是自己的确实很不厚道。但从个人的角度上来说,自己开源的项目就已经做好了这个心理准备,既然开源就有被抄袭的可能性。 这些东西不是道德的问题而是法律的问题。搞清楚licence的去壳范围和附带的条件,有没有credit的要求有没有branding的限制,有没有专利授权等等的都是很大的一个问题。既然作业放到GitHub上面被抄袭了,要做的做好的事情就是,要么,以后不要在GitHub上面去写文章,既然你写了就要去担任被抄袭的风险,但是,既然开发了软件,别人模仿可耻吗?可耻,但是你为什么要做这个产品呢?所以在使用GitHub的时候一定要想清楚自己做这件事情的后果,虽然被抄袭是法律的问题,但是,也是不会有人去管的。 应该静下心来,想想应该如何面对这次作业吧!也要做以后的警惕!
2、如何优雅地使用Sublime Text3
1、概览:
这是我的桌面,无杀软。(壁纸出处:塞伦盖蒂国家公园狮子,感谢@棒棒糖elaine)
2、使用云服务
比如 Chrome 的书签同步插件 Xmarks(在天朝自带的同步功能有些鸡肋,但是除了书签之外的数据可以使用自带同步功能); Evernote 写笔记、GTD、知识系统管理;将平时不用的但是有价值的东西上传到网盘里; 使用同步文件夹,将重要的文件同步上传到云空间;项目都同步到 SVN 或 GitHub 中。
使用云端软件平台(云端 - 创新生活新体验),把软件都装在上面,也可以将本地软件导入平台中(虚拟化),这样即使是重装系统后也无需重装应用,可携带缓存文件夹到不同电脑上使用平台上的软件,无需安装。绿色,便于管理。
3、美化
3.1 如上面有人说的,使用Mactype字体渲染。(优化后效果好很多)
3.2 使用 clover 创建标签式资源管理器窗口(Clover Brings Chrome-Style Tabs to Windows Explorer.)
3.3 使用 NetSpeedMonitor 来监控网速。(FlorianGilles.com)
3.4 用一个快速而且不弹框的好输入法:《小狼毫》(Downloads - rimeime - 下载 Rime 输入法)
这是相关的介绍:推荐一个神级输入法——Rime ( 谢谢 @郭家宝 提醒更新)
4、优化
定期清理系统垃圾,使用CCleaner(CCleaner - PC Optimization and Cleaning)。
一个月碎片整理一次。使用Defraggler(Defraggler - File and Disk Defragmentation)。
5、其他
优雅地使用Windows唯一的手段就是找到符合自己的操作习惯,把不顺心的情况化解,并乐于挖掘适合自己的功能或者操作,包括快捷键、个性化设置等。
嗯,有人喜欢「番茄工作法」的吗? 对于精力不集中的人,建议使用Focus Booster,一款小巧优雅的软件。(下载:focus booster)
有人想要一个款优雅的 editor,这里推荐一款性感无比的编辑器:Sublime Text 2(各种配色任你选:daylerees/colour-schemes 路 GitHub)
- - Update - -
有人说桌面没有一个图标以及任务栏隐藏就很优雅吗?为什么要学Mac OS?
我想说:这些都是个人习惯问题,只要用得顺手,在两三步下可以迅速找到自己要用得东西就行了。 精简就一定是Mac的专利?
写的时候没想到大家反响这么积极啊,弄到我都有些心虚了,谈不上优雅,只能算利用工具提高生产里而已
3、个人开发的app应用版权信息怎么写?
可以申请登记计算机软件著作权,相当于申请了专利,在app内标注产品所有权,比如手掌v5.0版权所有:冠宇纵恒,这样的提示标识,发现侵权,及时警告或者通过法律途径解决。
4、学习编程好不好?
因为我本人就是学习计算机软件专业的,根据我的亲身体会就是:从近期看,学习软件编程专业的前景还是挺好的。但是从长远来看:其实该专业本身也是吃青春饭的,所以说如果从长远来看,如果学习编程只是停留在编写程序源代码的层次上的话,那么随着自己年龄的增长,总会有一天自己已经无法编写程序了。到了那个时候,就会感觉到计算机这个行业实在是更新得太快了,自己已经落伍了;但是如果自己趁年轻除了熟练掌握计算机编程技能之外,还能够多学习一些计算机理论课程,具有坚实的计算机理论基础(例如:熟练掌握数据结构及其算法、高等数学、概率统计、离散数学等)的话,那么今后随着自己年龄的增长,即使自己不能够编写程序源代码了,但是此时就可以依靠自己具备的这些坚实的计算机理论基础,自己能够承担公司、或者是国家的重大科研项目,然后再带领一个软件研发团队搞开发。
5、程序员如何才能成为独立开发者?
我们根据职场发展通路和能力水平,把程序员分成如下四个等级:
普通开发者
熟练开发者、高级开发工程师、技术组长
技术专家、架构师、一线经理
科学家、首席(资深)架构师、部门研发总监
今天这篇文章,我们来讨论普通开发者如何进阶为熟练开发者。
我们会先定义普通开发者应该达到的能力水平,然后再介绍他应该在哪方面提升才可能进到下一个阶段。
普通开发者的能力水平
先看我经常提到的一张图——技术成长阶段图:
普通开发者处在第一个成长阶段:专项能力提升。
专项能力提升阶段是初级阶段,你为了搞定事情,必须先具备某些基础能力,比如某种编程语言(Java / C++/ Python / JavaScript 等)、某个IDE (Visual Studio / Qt Creator / Android Studio / Eclipse / WebStorm 等)、某种技术框架(Netty / Qt / SSH / MyBatis / AngularJS 等)。
这个阶段最重要的就是提升专项能力,让自己能够迅速搞定一些别人安排给你的事情,体现出你的价值。
在这个阶段,最起码达到下列水准:
能理解并完成别人分解好的叶子任务
能自己完成一个功能模块的开发
以前端开发者为例,在这个阶段,你必须能将从 UI 过来的某个页面原型转换为可运行、可操作的真实 Web 页面。比如登录页面、比如商品详情展示页面,要能做到实现可视化页面和业务逻辑跳转。
以 Android App 开发者为例,在这个阶段,你必须能搞定类似登录、支付等这类功能。以 App 的登录功能为例,你要能使用特定的布局和组件实现自适应的登录界面,还要能学习使用类似微信、微博等第三方账户的 SDK ,实现第三方账户登录。
你可能很难自己设计一套完整的登录功能(包含口令加密、单点登录、Cookie 使用、验证码、密码找回、第三方登录、多终端同步、角色鉴权、用户数据存储等),但是当熟练开发者或者高级开发者完成了设计,把某个小功能分配给你的时候,你要能够理解这个设计,并将这个设计实现出来,和整个登录系统整合在一起,能够正常运转。
当你能够搞定这些事情的时候,你的专项技术水平起码是这样的:
能熟练搭建需要的开发和测试环境
熟悉所用编程语言的基础语法,有这门语言的知识地图,熟悉该语言本身的各种基础功能,了解这门语言的高级功能
能调用已有技术框架的 API 来实现特定功能
能在实现同一功能的多组 API 之间选择合适的那一组
能熟练使用开发环境和各种辅助工具进行调试
可以解决易复现的、逻辑简单的软件 Bug
能自主学习某个新框架的基础 API ,参考 DEMO 完成某个功能的基本实现
我的总结可能不完善或存在 Bug ,请大家在留言区指正、补充。
我想到一个身边的例子,刚好和我们讨论的这个话题契合。
有一次和朋友 G 聊天,他说他部门有位做前端开发的程序员 X ,一直在用 jQuery 实现各种页面,代码冗余,结构凌乱。Vue.js 出来后,G 想在新版本中使用,就安排 X 学习 Vue.js ,让他参考公司产品某两个页面的功能和布局,简化设计,做两个带异步数据请求功能的页面出来看看效果,结果一个星期过后,X 告诉 G ,Vue.js 太复杂,开发文档看不明白,代码也搞不懂,进行不下去……
如果你像 X 这样的状态,就说明你还停留在普通开发者阶段,只能在他人指导和安排下编码实现特定的细分功能。
要想进阶,就要先在专项技术能力上达到我们前面所列清单描述的水平(那是基础要求),然后再对照熟练开发者的能力要求,有针对性的去学习提高,稳步进入下个阶段。
普通和熟练的关键区别
对照前面的技术成长阶段图,熟练开发者处在中间阶段,拥有自己的技能体系。
为了搞明白拥有自己的技能体系是什么概念,我们先来看两组概念:
知识、知识体系
技能、技能体系
简单说,知识是能引发改变的信息,技能是运用知识解决问题的一系列思维和动作的组合。但这样讲不大容易明白,我们举个软件开发领域的例子。 C++中的虚函数是一个知识点,用虚函数这个特性定义模块接口,实现模块的动态加载,就是技能。
接下来为了行文方便,我不再区分知识和技能,直接把知识等同于技能,甚至用知识一词代替技能。请在阅读时根据上下文加以区分。
知识和知识体系的关系,技能和技能体系的关系,就像树木和森林的关系,就像瑞士军刀上小刀、小剪子、小螺丝刀和瑞士军刀的关系。
这样打个比方,应该可以体会到“体系”是什么了。
所谓知识体系,就是若干相互联系的、可以用来解决特定场景问题的知识的组合。
Ok,现在回头来看普通开发者和熟练开发者的区别,就简单多了。
普通开发者因为不断完成任务,不断做项目,接触、使用了各种各样的“知识点”,于是拥有了各种离散的知识,但这个知识和那个知识很少关联,他拥有的知识,是散兵游勇,如下图所示:
当你的知识点各不关联时,你在遇到问题时,就很难进行系统思考,就很难获得解决办法。
而熟练开发者,则(被动或主动)经历了知识点的梳理、整合过程,把零散的知识点围绕着某个应用场景联系起来,形成了知识体系。就像下图:
当你有了知识体系之后,遇到和你知识体系对应的场景相关的问题,就可以快速找到相关的知识,系统的分析问题,最终解决问题。
你看,是否拥有知识体系,导致了熟练开发者和普通开发者的一个非常重要的区别:熟练开发者能够独立负责一个模块或子系统的设计和开发工作,拥有分析问题、解决问题的能力和任务分解的能力,可以分配任务给普通开发者。
进阶修炼方向
好啦,从技术水平的角度讲,普通开发者和熟练开发者的区别就在于:普通开发者的知识不成体系,而熟练开发者构建了与某个应用场景相关的知识体系。
这样看来,普通开发者要想进阶,方向就非常明确了:构建自己的知识体系。
那么,怎么构建知识体系呢?先参考我的另一篇文章:构建知识图谱,让自己更值钱。如果后续有机会,我会重构一篇新的文章,再聊聊构建知识体系这个话题。
6、个人开发的app应用版权信息怎么写?
可以申请登记计算机软件著作权,相当于申请了专利,在app内标注产品所有权,比如手掌v5.0版权所有:冠宇纵恒,这样的提示标识,发现侵权,及时警告或者通过法律途径解决。
7、中国的区块链项目有哪些?
中国的优秀区块链项目还是不少的