欢迎来到皮皮网官网

【百草源码】【平台接口源码】【dble源码阅读】走近源码

时间:2024-12-23 07:56:06 来源:android 源码开发环境搭建

1.专业解读之 通过斯坦福大学计算机硕士走近CS
2.如何破解电脑报黑客游戏第一关
3.带你走近MISRA C:2012
4.走近源码:神奇的走近源码HyperLogLog
5.人一旦没有了梦想会怎么样
6.给孩子报网上编程课选择编程猫好吗?

走近源码

专业解读之 通过斯坦福大学计算机硕士走近CS

       斯坦福大学的计算机科学硕士项目共有9个专业方向,具体如下:

       2. 生物计算

       生物计算是走近源码跨学科的专业,主要研究生物和医学信息学领域的走近源码计算挑战及解决方案。课程包括高级算法、走近源码数据库、走近源码网络、走近源码百草源码建模和仿真等,走近源码以及生物计算、走近源码生物工程和医学信息学。走近源码课程示例:生物医学图像分析和解释的走近源码计算方法、人类基因组源代码、走近源码计算分子生物学的走近源码表示和算法。可以考虑的走近源码分支:实际计算、人工智能。走近源码

       3. 计算机及网络安全

       计算机及网络安全让学生深入了解当前计算机科学家在设计和开发安全、走近源码关键系统时所面临的挑战。课程内容包括网络与网络安全、高级操作系统、密码学、安全数据库等。课程示例:计算机网络与网络安全、密码学导论、计算机网络导论。可以考虑的分支:系统、人工智能。

       4. 人机交互

       人机交互关注如何为用户设计,从大型墙壁计算到手持设备和无形的“无处不在的计算机”。HCI教授以用户为中心的设计思维和用户研究方法。HCI研究应用于协作工作、信息可视化和“有形计算”等领域。课程示例:人机交互设计导论、交互设计工作室。可以考虑的分支:实际计算、系统、人工智能。

       5. 真实世界计算

       真实世界计算让你涉猎所有内容,并与其他每个专业共享相同的课程。许多想专注于图形的人都选择了真实世界计算,因为它是唯一可以让你根据自己的深度计算所有图形课程的专业。对于想要学习机器人技术的人来说,这也是一个受欢迎的选择。课程示例:机器人学、计算机图形学、计算机图形:动画和模拟。

       6. 软件理论

       软件理论关注编程语言和应用程序在安全等领域的特性。这一领域与理论计算机科学非常相似,但应用领域略多一些。值得一提的是,ST的学生倾向于学习更多关于编程语言、编译器和数据库的系统式课程。课程示例:程序分析和优化、随机算法和概率分析。可以考虑的分支:理论计算机科学、系统、人工智能。平台接口源码

       7. 系统

       系统专业化是大多数“硬核编程”类的所在地,这些类是你想到计算机科学时就会想到的。但挑战更大——设计下一代互联网主干,管理不断扩大的数据集,以及平衡安全和隐私。课程示例:软件设计工作室、操作系统高级话题、网络高级话题。可以考虑的分支:实际计算、软件理论、人工智能。

       8. 理论计算机科学

       理论计算机科学关注反应系统、编程语言理论和算法。这种专业化与软件理论非常相似,但稍微抽象一些。TCS的学生倾向于选择更多的逻辑和形式方法课程。课程示例:自动机和复杂性理论导论、优化和算法范式。可以考虑的分支:软件理论、人工智能、实际计算。

       9. 信息管理和分析

       信息管理和分析涵盖了现代数据库和信息管理系统的基本原理,以及挖掘海量数据集的方法。课程内容包括为数据库和信息系统开发应用程序,负责系统设计、架构和管理,应用数据挖掘和机器学习中的算法和技术对大量数据集进行分析。相关主题包括系统端上的分布式系统、网络和安全,以及应用端上的文本挖掘、生物信息学、web搜索和社交媒体。课程示例:数据库系统原理、海量数据集挖掘、信息检索和web搜索。可以考虑的分支:系统、理论计算机科学。

如何破解电脑报黑客游戏第一关

       精英黑客关:

       第一关:

       if (script1=="") {

       window.open("r-2.html","",blank) }

       else {

       alert(MM_str) 意思是如果输入则跳转到r-2.html页面。。否则跳转到MM_str,即"你旁边的人对你说“兄弟,你不会把这地方引爆吧?”显然后者是密码错误才会出现的情况。。所以密码是

       第二关:

       </SCRIPT>

       <script language="JavaScript" type="text/javascript">

       <!--

       function MM_caJS() {

       password=document.table.html.value

       if (password=="") {

       window.open("r-3.html","_self") }

       else {

       alert("其他人对你说“兄弟,这东西要是爆炸了,我们就都成历史了!”")

       }

       }

       //-->

       </script>

       用以前的方法不行了。。然后再用r-3,html也不可以。。。然后大家看<input name="Submit" type="button" onclick="MM_callJS('qiying()')" value="确定" />

       这段代码。。。dble源码阅读。有一个onclick="MM_callJS('qiying()')"函数调用。。因为源文件中没有qiying所以可能是外部调用。。然后就可以找到:<script language="JavaScript" type="text/javascript" src="ad.js"></script> 把ad.js下载下来,打开就可以找到密码了。。密码

       第三关:

       找到 ar wd ="%3Cscript%language%3D%JavaScript%%type%3D%text/javascript%%src%3D%pws.js%%3E%3C/script%3E" 很欺骗性,,,还是下载pws.js文件。。。

       第四关:

        function MM_setTextOfTextfield(objName,x,newText) 关键是这个,newtext是关键词嘛。。呵呵。下一关。。然后就要找MM_setTextOfTextfield这个函数是什么意思。。。然后搜索到<input name="Submit" type="button" onclick="MM_setTextOfTextfield('td','','tr')" value="确定" 用tr测试ok了。。

       第五关:

       查看源代码。细心点可以发现,密码提交那里不一样了。。。这个是flash的。。

       这个我也迷茫了。。不过我猜密码有可能在flash源文件里之类的。。。 baidu一下,硕思闪客精灵。。可以还原flash。。。可以从院文件里找到密码

       第六关:

       还是看源文件。。看到

       ".-","-...","-.-.","-..",".","..-.",

       "--.","....","..",".---","-.-",".-..",

       "--","-.","---",".--.","--.-",".-.",

       "...","-","..-","...-",".--","-..-",

       "-.--","--..",".-","-...","-.-.","-..",

       ".","..-.","--.","....","..",".---",

       "-.-",".-..","--","-.","---",".--.",

       "--.-",".-.","...","-","..-","...-",

       ".--","-..-","-.--","--.."," ",".-.-.-",

       "--..--","..--..","---...","-....-","!") 当场晕倒。。

       爬起来继续看下面的代码

       for(i=0;i < 3;i++){

       ot += morse;}

       这个for(i=0;i<3;i++)看来是只要前三组。其他的没用

       over。。 结果是可以下个墙纸。。。呜呼。pb内存源码。/tr/end.html

       PS:不过硕思闪客精灵这个东西挺好用的。。嘿嘿`

       心理医生关:

       第一关:

       通过身份查询得知他是年出生,今天正好是他的生日。

       首先就猜了一个:,结果不对。回过头去一看,原来人家说的今天是年月日。于是重新猜:。过。

       第二关:

       只知道:第二道门的警卫平时酷爱音乐,尤其崇拜那些世界著名音乐大师。他前不久刚买了一套今年发行的CD,是为了纪念某位音乐大师的诞辰而发行的。

       去谷歌了一下,是莫扎特诞辰。于是输入姓名,不对,然后输入其出生年月:过关。

       第三关:

       这道门的密码将会非常长。 不过全科研中心的人都知道Ion博士是个懒人。另外,他前不久听到Ion博士通过快速通道时,嘴里嘟囔着“T+M”。

       指挥中心给你们传回了Ion博士的个人资料:

       职员号:

       电话:

       手机:

       一看博士是懒人,又什么T+M的,觉得是电话(T)和手机(M),于是得到密码:。过关。

       第四关

       前方就是控制中心!走近了以后你们才发现,原来想要进入控制中心也需要输入密码。

       指挥中心传回的信息是,该密码由某位技术人员设定,据说他宣称该密码没人能破解得了,也绝对猜不出来。

       记得某人曾经说过有一关是空密码,试一下,又过。

       第五关

       指挥中心给你们的信息是,由于安全主机非常重要,所以肯定不会用生日一类的数字做密码

       该技术人员曾经说过他设置的密码即使黑客破解出来了也不会知道。

       指挥中心目前只知道该密码为6-8位。

       蹊跷之事:估计那句话的意思就是密码它本身有点意思。输入六个星号,不对,输入八个。OK了。

       第六关:

       输入管理员密码来暂停监控程序,终于可以暂停监控程序了!但是管理员密码究竟是什么呢?这么多道关卡层层保护着安全中心,想来那管理员密码一定更难猜了,最重要的SWAPIDC主机源码是,竟然一点相关信息都没有!

       随便猜,都猜成:admin

       结果劳资也下了一壁纸~

带你走近MISRA C:

       随着软件定义汽车概念的兴起,汽车软件开发的工作量开始呈指数级增加,当前车载软件代码量已经达到1亿-3亿行。这是一个什么概念呢,相当于比Windows系统还高出一个数量级。据调查,大部分的车载软件都是使用C语言进行开发,因为C执行效率高、代码量小,因此在汽车的小型控制部件中被广泛使用。尽管C语言在嵌入式系统中如此流行,但仍有很多缺陷:

       1. C是弱类型语言。在下面代码中,char类型和int类型是可以直接运算的,因为char类型会被提升为int,这就是C中的隐式类型转换,将精度较小的转换为大精度的,在这个意义上讲,它并不符合强类型语言的定义。

       2.C相较于其他的语言有更多的操作符,因此其也有更多不同的操作符优先级,其中的大多数都不是能直观判断的,所以通常会被程序员误解。

       3.C程序一般不为常见问题提供运行时检查,例如运算异常(如零除),溢出,指针的有效性或者数组越界。

       汽车工业软件可靠性协会(MISRA)在年发布了第一版针对汽车工业软件安全性的C语言编码规范---MISRA C,让程序员有规范可循。

       从年发布的MISRA C:,只针对汽车制造业的嵌入式开发,到MISRA C:,已经开始扩大覆盖范围到其他高安全性系统。

       MISRA C:包含条规则,其中Directives有条,Rules有条。

       1.Dir 4.:动态内存分配不应被使用。

       原理:任何库的动态内存分配和进程的释放都可能导致未定义的行为。

       2.Rule .3:表达式的值不应分配给具有较窄基本类型或不同基本类型类别的对象。

       原理:C语言允许程序员有相当大的自由度,并允许自动形成不同算术类型之间的赋值。然而,使用这些隐式转换可能会导致意外的结果,可能会丢失值、符号或精度。如MISRA基本类型模型所强制的,使用更强的类型可以降低这些问题发生的可能性。

       MISRA C:的规则按照性质分为两类:指令(Directives)和规则(Rules)。规则有三种不同类别:”强制(Mandatory)”、”要求(Required)”和“建议(Advisory)”;其中具体结果如下图所示。

       那么,在任何情况下都可以明确地说明该条代码违反了规则吗?

       出于此问题,MISRA C:规则的Rules具有可判定性Decidable/Undecidable,他们的区分标准为是否能在任何情况下明确回答“该代码是否遵循了这条规则”?

       要注意的是,可判定性并不适用于Directives规则。

       Rules的分析范围分为Single Translation Unit/System:

       Helix QAC与MISRA C:

       很明显,MISRA C:规则就是为静态测试而生的。Perforce公司的静态分析工具Helix QAC,是汽车行业中主流的静态分析器,其开发团队是MISRA C&C++编码委员会的创始会员,也是MISRA C&C++委员会最具影响力的会员。Helix QAC具有业界领先的编码规范覆盖度,目前MISRA C:的编码规范覆盖度达到了%,而对MISRA C:的编码规范覆盖度已达到%。是嵌入式静态分析领域公认的行业领导及先驱。

       下面以开源工程wget为例,演示一下Helix QAC是如何定位违反MISRA C:规则的代码。

       诊断消息:“包含文件代码不受重复包含的保护”正是MISRAC:规则Dir 4.的映射,通过诊断消息开发人员就可以了解到代码违反MISRA C:规则的情况,从而对代码进行修改使其合规。

       Rule 9.1:对象在初始化前不能被使用。

       这里大家或许会疑惑,为什么同一个规则下会产生两种诊断消息呢?答案是:数据流分析。

       数据流分析是Helix QAC的高级分析,Helix QAC通过内置的数据流分析器分析运行时的行为。数据流分析可以识别各种问题,包括可能指示编码错误的条件,以及可能导致程序崩溃的关键未定义行为。

       我们可以看到图中的诊断消息和虽然都是Rule 9.1产生的,但是分成了Suspicious和Apparent两种。我们在代码中看一下这两条诊断消息的不同。

       诊断消息的源码如下:

       在行声明了数组saved_lengths,行对saved_lengths进行赋值操作,在行使用saved_lengths。但saved_lengths的赋值操作不一定会进行,因为该操作在for循环中进行,如果for循环没有达到执行条件导致并未执行,那么此时saved_lengths就没有初始化。所以此条诊断消息是Suspicious。

       诊断消息源码如下:

       可以看到,在行声明变量dt,但后面并未对dt进行初始化。所以此条诊断消息是Apparent。

       由此可见Helix QAC数据流分析功能的强大。Helix QAC的数据流功能也在不断地更新,在即将到来的新版本.4中,数据流计划从Helix QAC引擎中分离出来,成为自己的组件。

       在近期发布的最新版本Helix QAC .3中,引入了对微软Visual Studio 的支持,提供更广泛的编译器支持,以及对C++和C的升级语言支持。此外,此版本具有使用“qainject”自动生成 CCT 的功能,可简化构建理解和编译器设置。

       作为Perforce公司的合作伙伴,北汇信息将为客户提供优质的静态代码测试工具和服务。更多Helix QAC相关内容:王牌代码静态测试工具Helix QAC .2 中的新增功能 - 知乎 (zhihu.com) 开发人员使用Helix QAC实现静态代码测试合规性的五大原因 - 知乎 (zhihu.com) 嵌入式系统和物联网中的软件安全 - 知乎 (zhihu.com) 企业级自动代码静态分析器Helix QAC--从应用层级保证代码质量和安全(一) - 知乎 (zhihu.com)

走近源码:神奇的HyperLogLog

       深入理解HyperLogLog的魅力,Redis中的高效基数统计工具。只需掌握基本命令,便可运用,但若要探究其原理和源码实现,本文将引导你探索更多。基数,这个数学概念,用于比较集合大小,如整数集和有理数集的基数相同,但统计大数据集基数时,传统的Set结构和bitmap方法都有局限。Set占用大量内存,bitmap虽节省空间,但统计个对象仍需G,HyperLogLog的出现解决了这个问题。

       HyperLogLog的原理基于概率算法,通过hash值的第一个1的位置,而非每个元素值,来估算基数。想象一下Jack和丫丫的硬币游戏,HyperLogLog就像Jack的思维工具,通过计算概率来估算最长回合次数。Redis的HyperLogLog利用桶的概念,通过位定位桶,位的伯努利过程,精确地存储信息,仅用K内存实现密集存储或更节省的稀疏结构。

       源码解析中,PFADD命令负责添加元素,而PFCOUNT用于合并多个对象并计算基数。通过理解头结构体和创建过程,我们可以看到Redis是如何高效利用内存的。最后,推荐使用content.research.neustar.biz...工具来辅助理解HyperLogLog的运作,同时,深入阅读相关文献如Redis新数据结构、HyperLogLog算法实现和Redis深度实践将深化你的理解。

人一旦没有了梦想会怎么样

       1. 生命不是一场赛跑,而是一次旅行。比赛在乎终点,而旅行在乎沿途风景。

       2. 走近原野,才能饱赏春天的美色;融入江河,才能感知夏水的温柔;采摘硕果,才能品尝秋天的味道;走过寒冬,才能感知春天的温暖!

       3. 如果事前多些思考,那么事后就会少点遗憾;如果少年多些努力,那么年老就会多点欣慰;如果人生多点自信,那么事业就会多点成功;如果头脑多点创意,那么生活就会多些色彩;如果对别人多些爱心,那么你就会多些朋友;如果在谈笑中多点幽默,那么朋友就会多点笑声;如果对事业多点奉献,那么你就会多点伟大。

       4. 好心情才会有好风景,好眼光才会有好发现,好思考才会有好主意。

       5. 安乐给人予舒适,却又给人予早逝;劳作给人予磨砺,却能给人予长久。

       6. 人可以不美丽,但要健康;人可以不伟大,但要快乐;人可以不完美,但要追求。

       7. 用知识的浪花去推动思考的风帆,用智慧的火星去点燃思想的火花,用浪漫的激情去创造美好的生活,用科学的力量去强劲腾飞的翅膀!

       8. 只有使自己自卑的心灵自信起来,弯曲的身躯才能挺直;只有使自己懦弱的体魄健壮起来,束缚的脚步才能迈开;只有使自己狭隘的心胸开阔起来,短视的眼光才能放远;只有使自己愚昧的头脑聪明起来,愚昧的幻想才能抛弃!

       9. 不点燃智慧的火花,聪明的头脑也会变为愚蠢;不践行确立的目标,浪漫的理想也会失去光彩;不珍惜宝贵的时间,人生的岁月也会变得短暂;不总结失败的经验,简单的事情也会让你办砸。

       . 宠爱的出发点是爱,落脚点却是恨;嫉妒的出发点是进,落脚点却是退;梦幻的出发点是绚(烂),落脚点却是空;贪婪的出发点是盈,落脚点却是亏。

       . 没有激情,爱就不会模卖燃烧;没有友情,朋就不会满座;没有豪情,志就难于实现;没有心情,事就难于完成。

       . 我们缺少的不是机遇,而是对机遇的把握;我们缺欠的不是财富,而是创造财富的本领;我们缺乏的不是知识,而是学而不厌的态度;我们缺少的不是理想,而是身体力行的实践。

       . 有了成绩要马上忘掉,这样才不会自寻烦恼;有了错误要时刻记住,这雹滚样才不会重蹈覆辙;有了机遇要马上抓住,这样才不会失去机会;有了困难要寻找对策,这样才能迎刃而解。

       . 你可以不高尚,但不能无耻;你可以不伟大,但不能卑鄙;你可以不聪明,但不能糊涂;你可以不博学,但不能无知;你可以不交友,但不能孤僻;你可以不乐观,但不能厌世;你可以不慷慨,但不能损人;你可以不追求,但不能嫉妒;你可以不进取,但不能倒退。

       . 生活需要游戏,但不能游戏人生;生活需要歌舞,但不需醉生梦死;生活需要艺术,但不能投机取巧;生活需要勇气,但不能鲁莽蛮干;生活需要重复,但不能重蹈覆辙。

       . 把工作当享受,你就会竭尽全力;把生活当乐趣,你就会满怀信心;把读书当成长,你就会勤奋努力;把奉献当快乐,你就会慷慨助人。

       . 最美的不一定是最可爱的,最可爱的才是最美的;最好的不一定是最合适的;最合适的才是最好的;最高大的不一定是最受尊敬的,最受尊敬的源码余才是最高大的;最优美的不一定是最动听的,最动听的才是最优美的。

       . 有的人不管年纪多大,却永远年轻;有的人不管是荣是辱,却波澜不惊;有的人不管是富是贫,却朴实为人;有的人不管受讥遭讽,却依然阔步前行;有的人不管自己位有多卑,却永远惦念着祖国母亲!

       . 人生是一本书。有的写得精彩,有的写得平庸;有的写得厚道,有的写得轻薄;有的写得恢弘,有的写得小气;有的写得平顺,有的写得曲折;有的留下光彩,有的留下遗憾;有的留有思考,有的只剩空白!

       . 梦虽虚幻,却是自己的梦想;位虽低微,却是自己的岗位;屋虽简陋,却是自己的家;志虽渺小,却是自己的追求。

       . 做人可以不高尚,但不能无耻;为人可以不伟大,但不能卑鄙;头脑可以不聪明,但不能糊涂;生活可以不乐观,但不能厌世;交友可以不慷慨,但不能损人。

       . 生活的真谛在于创新,生活的理想在于远大,生活的艺术在于选择,生活的步履在于踏实,生活的乐趣在于追求,生活的安乐在于平淡。

       . 过于欣赏自己,就发现不了别人的优点;过于赞赏别人的优点,就会看不见自己的长处。

       . 如果你盼望明天,那必须先脚踏现实;如果你希望辉煌,那么你须脚不停步。

       . 每一个人都拥有生命,却并非每个人都能读懂生命;每一个人都拥有头脑,却并非每一个人都能善用头脑。只有热爱生命,善于动脑的人,才算得上真正拥有生命。

       . 拥有了一颗赤城的心,便拥有了朋友;拥有了一颗善良的心,便拥有了友爱。

       . 不要悲观地认为自己很不幸,其实比你更不幸的人还很多;不要乐观地认为自己很伟大,其实你只是沧海之一粟。

       . 财富是一种寄存,你不能将其带走;荣誉是一道亮光,你无法将其留住;成功是一颗硕果,你无法四季品尝;生命是一种过程,你不能让其停步。

       . 事物是辩证的,当你得到一些东西时,同时也会让你失去另一些东西;当你失去一些东西时,同时也会让你得到一些东西。

       . 弱者只有千难万难,而勇者则能披荆斩棘;愚者只有声声哀叹,智者却有千路万路。

       . 学会赞赏吧,它能拉近朋友间的距离;乐于赞赏吧,它能鼓励朋友不断上进;自我赞赏吧,它能激发自身的潜能。

       . 在人之初,别拿人当幼欺;在人之暮,别拿人当弱辱;在人之前,别拿己当众扬;在人之后,别拿人当猴谤;在人之上,别拿人不当人;在人之下,别拿己不当人。

       . 当你习惯过一种日子,那么,你的一生只过上一天;如果你生活常新,那么你每一天都会过得很精彩。

给孩子报网上编程课选择编程猫好吗?

       感谢编程猫,更感谢我们认真、细心、负责、美丽的麦田老师,孩子从开始的有点抵触到后来的主动学习,在这个过程中我感受到了编程猫的所做教程都是站在孩子的角度,用心、用情、科学系统地让孩子一步一步走近编程、了解编程到最后的走进源码世界,做得很认真,加上麦田老师的认真负责,孩子逐渐喜欢上编程猫。。想了解更多可以百度一下

OSGI的书籍

       1.《深入理解OSGi:Equinox原理、应用与最佳实践》

       ä½œè€…:周志明 & 谢小明,出版时间:-2-1.

       å†…容简介:本书共章,分4个部分。第一部分(第1章):走近OSGi,主要介绍了什么是OSGi以及为什么要使用OSGi。第二部分(第2~4章):OSGi规范与原理,对最新的OSGi R5.0中的核心规范进行了全面的解读,首先讲解了OSGi模块的建立、描述、依赖关系的处理,然后讲解了Bundle的启动原理和调度管理,最后讲解了与本地及远程服务相关的内容。第三部分:OSGi服务与Equinox应用实践(第5~章),不仅详细讲解了OSGi服务纲要规范和企业级规范中最常用的几个子规范和服务的技术细节,还通过一个基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是还通过源码分析了Equinox关键功能的实现机制和原理。第四部分:最佳实践(第~章),总结了大量关于OSGi的最佳实践,包括从Bundle如何命名、模块划分、依赖关系处理到保持OSGi动态性、管理程序启动顺序、使用API基线管理模块版本等各方面的实践技巧,此外还介绍了Spring DM的原理以及如何在OSGi环节中进行程序测试。

       2.《Eclipse RCP与Spring OSGi:技术详解与最佳实践》

       ä½œè€…:陆阳,出版时间:-1-1.

       å†…容简介:全书共分3个部分:基础篇(第1~5章)详细介绍了与Eclipse RCP相关的一系列核心概念、Eclipse RCP开发环境的搭建,以及SWT、JFace、Forms、Nebula和WindowBuilder等Eclipse RCP开发所常用的界面编程技术;高级篇(第6~章)系统讲解了Eclipse RCP应用开发的基础知识、Eclipse RCP软件产品各个组成部分的构建方法,以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP软件,并解决软件开发过程中遇到的故障;实战篇(第~章)详细讲解了Eclipse RCP与Spring OSGi框架、Hibernate ORM框架、JPA规范、Maven工具的整合,以及它与Java的模块化设计。

       3.osgi中文社区

       ç®€ä»‹ï¼šç”±åŒ—京大学软件工程国家工程研究中心“软件协同研发支撑技术”组维护的一个模块化动态化开发技术的公益社区。初学者、进阶者和大牛都可以在这里分享技术和经验,自由的交流和学习,在贡献和收获中充实自己。为更多的学生、研究者和从业者提供更广阔的交流平台。

copyright © 2016 powered by 皮皮网   sitemap