首页 文章 精选 留言 我的

精选列表

搜索[最权威安装],共10000篇文章
优秀的个人博客,低调大师

2019细腻的python入门学习图,你难道不想了解一下吗?

前言 最近python火爆程度可谓是顶级流量语言,认识它的人也越来越多,当然学习的人也是蒸蒸日上,隐隐有第一语言的噱头,学的人多了,小白自然也很多,你们在学习的过程中总会遇到一些烦恼,不知道从何学起,都希望能够得到一份python学习路线图。 对于一些0基础的想要学习python的人来说,学习方法非常重要,学习方法不对,努力也白费,所以我们需要有一个正确的学习方法。 Python学习路线一:Python基础 必学知识:【Linux基础】【Python基础语法】【Python字符串】【文件操作】【异常处理】【Python面向对象】【项目实战】 路线讲解:该路线循序渐进,科学合理,帮助学习者建立正确的编程思想,具备基本的编程能力; Python学习路线二:Python高级编程 必学知识:**【Python平台迁移Linux】【Python常用第三方库】【Python高级语法】【Python正则表达式】【网路编程】【系统编程】【数据结构与算法】【项目实战】** 路线讲解:该路线强调数据结构和算法的学习,着重提升学习者的编程核心能力;使学习者能够熟练掌握Python高级用法及网络相关知识,能够独立承担Python网络相关的开发; Python学习路线三:web前端开发 必学知识:【HTML】【CSS】【UI基础】【Java】【DOM】【事件】【jQuery】【混合开发】【项目实战】 路线讲解:使学习者掌握web前端开发的相关知识,在工作中搭建高质量网站; Python学习路线四:后端开发 必学知识:【Linux网站配置】【git项目管理】【Python框架Django】【flask框架】【接口开发】【数据库MySQL、MongoDB、Redis开发】 路线讲解:熟练掌握框架的使用,掌握数据库原理及相关优化; Python学习路线五:爬虫开发 必学知识:**【爬虫开发原理】【requests+beautifulsoup4静态网页解析】【selenium动态网页解析】【scrapy框架】【分布式爬虫系统】【项目实战】**路线讲解:使学习者能够掌握爬虫的工作原理,独立承担爬虫的相关工作,亦能够独立设计及实现分布式爬虫框架; Python学习路线六:人工智能 必学知识:【数据分析】【数据可视化】【机器学习理论与实践】【TensorFlow图像实战】【项目实战Python人工智能项目】 路线讲解:理论与实践并重,加强理论的讲解,理解机器的学习原理,更加系统完善的了解整个Python学习流程。 小编推荐一个学python的学习qun 740322234无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

优秀的个人博客,低调大师

祝贺龙果开源支付系统--荣获2017码云火爆开源项目第9名

2017 年度码云热门项目排行榜 TOP 50 出炉啦!我们根据所有开源项目在码云的用户关注度、活跃度、访问量等信息来对“热门”进行量化,从而筛选出了其中最“热门”的 50 个,它在一定程度上预示着业界的最新流行趋势。 值得注意的是,榜单中涌现出了不少新兴项目,由此可见,国内的开源气氛越来越好,国内的开源也在蓬勃发展。 http://www.oschina.net/news/92438/2017-mayun-top-50 前 20 名预览 龙果支付系统是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。主要特点:具备支付系统通用的支付、对账、清算、资金账户管理、支付订单管理等功能;目前已接通“支付宝即时到账”和“微信扫码支付”通道;支持直连和间连两种支付模式,任君选择;通过支付网关,业务系统可以轻松实现统一支付接入;搭配运营后台,支付数据的监控和管理可以兼得;配套完善的系统使用文档,可轻松嵌入任何需要支付的场景; 龙果支付系统产品技术团队是一支拥有多年第三方支付系统设计研发经验的团队,会为龙果支付系统持续提供商业级的免费开源技术服务支持。 码云地址:https://gitee.com/roncoocom/roncoo-pay授权协议:Apache

优秀的个人博客,低调大师

可能是把Java内存区域讲的清楚的一篇文章

写在前面(常见面试题) 基本问题: 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式) 拓展问题: String类和常量池 8种基本类型的包装类和常量池 Java程序员必看文档 哈哈 皮一下!我自己开源的一个Java学习指南文档。一份涵盖大部分Java程序员所需要掌握的核心知识,正在一步一步慢慢完善,期待您的参与。Github地址:https://github.com/Snailclimb/Java-Guide 。看一眼,我觉得你一定不会后悔,如果可以的话,可以给个Star鼓励一下! 1 概述 对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。 2 运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。这些组成部分一些事线程私有的,其他的则是线程共享的。 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 2.1 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完。 另外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。 2.2 Java 虚拟机栈 与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期和线程相同,描述的是 Java 方法执行的内存模型。 Java 内存可以粗糙的区分为堆内存(Heap)和栈内存(Stack),其中栈就是现在说的虚拟机栈,或者说是虚拟机栈中局部变量表部分。 局部变量表主要存放了编译器可知的各种数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置)。 2.3 本地方法栈 和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。 在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一。 2.4 堆 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。 Java 堆是垃圾收集器管理的主要区域,因此也被称作GC堆(Garbage Collected Heap).从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以Java堆还可以细分为:新生代和老年代:在细致一点有:Eden空间、From Survivor、To Survivor空间等。进一步划分的目的是更好地回收内存,或者更快地分配内存。 2.5 方法区 方法区与 Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做 Non-Heap(非堆),目的应该是与 Java 堆区分开来。 HotSpot 虚拟机中方法区也常被称为 “永久代”,本质上两者并不等价。仅仅是因为 HotSpot 虚拟机设计团队用永久代来实现方法区而已,这样 HotSpot 虚拟机的垃圾收集器就可以像管理 Java 堆一样管理这部分内存了。但是这并不是一个好主意,因为这样更容易遇到内存溢出问题。 相对而言,垃圾收集行为在这个区域是比较少出现的,但并非数据进入方法区后就“永久存在”了。 2.6 运行时常量池 运行时常量池是方法区的一部分。Class 文件中除了有类的版本、字段、方法、接口等描述信息外,还有常量池信息(用于存放编译期生成的各种字面量和符号引用) 既然运行时常量池时方法区的一部分,自然受到方法区内存的限制,当常量池无法再申请到内存时会抛出 OutOfMemoryError 异常。 JDK1.7及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。同时在 jdk 1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域 推荐阅读:《Java中几种常量池的区分》: https://blog.csdn.net/qq_26222859/article/details/73135660 2.7 直接内存 直接内存并不是虚拟机运行时数据区的一部分,也不是虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用。而且也可能导致OutOfMemoryError异常出现。 JDK1.4中新加入的 NIO(New Input/Output) 类,引入了一种基于通道(Channel) 与缓存区(Buffer) 的 I/O 方式,它可以直接使用Native函数库直接分配堆外内存,然后通过一个存储在 Java 堆中的 DirectByteBuffer 对象作为这块内存的引用进行操作。这样就能在一些场景中显著提高性能,因为避免了在 Java 堆和 Native 堆之间来回复制数据。 本机直接内存的分配不会收到 Java 堆的限制,但是,既然是内存就会受到本机总内存大小以及处理器寻址空间的限制。 3 HotSpot 虚拟机对象探秘 通过上面的介绍我们大概知道了虚拟机的内存情况,下面我们来详细的了解一下 HotSpot 虚拟机在 Java 堆中对象分配、布局和访问的全过程。 3.1 对象的创建 下图便是 Java 对象的创建过程,我建议最好是能默写出来,并且要掌握每一步在做什么。 ①类加载检查: 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 ②分配内存: 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块确定大小的内存从 Java 堆中划分出来。分配方式有 “指针碰撞” 和 “空闲列表” 两种,选择那种分配方式由 Java 堆是否规整决定,而Java堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决定。 内存分配的两种方式:(补充内容,需要掌握) 选择以上两种方式中的哪一种,取决于 Java 堆内存是否规整。而 Java 堆内存是否规整,取决于 GC 收集器的算法是"标记-清除",还是"标记-整理"(也称作"标记-压缩"),值得注意的是,复制算法内存也是规整的 内存分配并发问题(补充内容,需要掌握) 在创建对象的时候有一个很重要的问题,就是线程安全,因为在实际开发过程中,创建对象是很频繁的事情,作为虚拟机来说,必须要保证线程是安全的,通常来讲,虚拟机采用两种方式来保证线程安全: CAS+失败重试: CAS 是乐观锁的一种实现方式。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。虚拟机采用 CAS 配上失败重试的方式保证更新操作的原子性。 TLAB: 为每一个线程预先在Eden区分配一块儿内存,JVM在给线程中的对象分配内存时,首先在TLAB分配,当对象大于TLAB中的剩余内存或TLAB的内存已用尽时,再采用上述的CAS进行内存分配 ③初始化零值:内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象头),这一步操作保证了对象的实例字段在 Java 代码中可以不赋初始值就直接使用,程序能访问到这些字段的数据类型所对应的零值。 ④设置对象头: 初始化零值完成之后,虚拟机要对对象进行必要的设置,例如这个对象是那个类的实例、如何才能找到类的元数据信息、对象的哈希吗、对象的 GC 分代年龄等信息。 这些信息存放在对象头中。 另外,根据虚拟机当前运行状态的不同,如是否启用偏向锁等,对象头会有不同的设置方式。 ⑤执行 init 方法: 在上面工作都完成之后,从虚拟机的视角来看,一个新的对象已经产生了,但从 Java 程序的视角来看,对象创建才刚开始,<init> 方法还没有执行,所有的字段都还为零。所以一般来说,执行 new 指令之后会接着执行 <init> 方法,把对象按照程序员的意愿进行初始化,这样一个真正可用的对象才算完全产生出来。 3.2 对象的内存布局 在 Hotspot 虚拟机中,对象在内存中的布局可以分为3快区域:对象头、实例数据和对齐填充。 Hotspot虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的自身运行时数据(哈希吗、GC分代年龄、锁状态标志等等),另一部分是类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是那个类的实例。 实例数据部分是对象真正存储的有效信息,也是在程序中所定义的各种类型的字段内容。 对齐填充部分不是必然存在的,也没有什么特别的含义,仅仅起占位作用。 因为Hotspot虚拟机的自动内存管理系统要求对象起始地址必须是8字节的整数倍,换句话说就是对象的大小必须是8字节的整数倍。而对象头部分正好是8字节的倍数(1倍或2倍),因此,当对象实例数据部分没有对齐时,就需要通过对齐填充来补全。 3.3 对象的访问定位 建立对象就是为了使用对象,我们的Java程序通过栈上的 reference 数据来操作堆上的具体对象。对象的访问方式有虚拟机实现而定,目前主流的访问方式有①使用句柄和②直接指针两种: 句柄: 如果使用句柄的话,那么Java堆中将会划分出一块内存来作为句柄池,reference 中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息; 直接指针: 如果使用直接指针访问,那么 Java 堆对像的布局中就必须考虑如何防止访问类型数据的相关信息,reference 中存储的直接就是对象的地址。 这两种对象访问方式各有优势。使用句柄来访问的最大好处是 reference 中存储的是稳定的句柄地址,在对象被移动时只会改变句柄中的实例数据指针,而 reference 本身不需要修改。使用直接指针访问方式最大的好处就是速度快,它节省了一次指针定位的时间开销。 四 重点补充内容 String 类和常量池 1 String 对象的两种创建方式: String str1 = "abcd"; String str2 = new String("abcd"); System.out.println(str1==str2);//false 这两种不同的创建方法是有差别的,第一种方式是在常量池中拿对象,第二种方式是直接在堆内存空间创建一个新的对象。记住:只要使用new方法,便需要创建新的对象。 2 String 类型的常量池比较特殊。它的主要使用方法有两种: 直接使用双引号声明出来的 String 对象会直接存储在常量池中。 如果不是用双引号声明的 String 对象,可以使用 String 提供的 intern 方String.intern() 是一个 Native 方法,它的作用是:如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。 String s1 = new String("计算机"); String s2 = s1.intern(); String s3 = "计算机"; System.out.println(s2);//计算机 System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象, System.out.println(s3 == s2);//true,因为两个都是常量池中的String对 3 String 字符串拼接 String str1 = "str"; String str2 = "ing"; String str3 = "str" + "ing";//常量池中的对象 String str4 = str1 + str2; //在堆上创建的新的对象 String str5 = "string";//常量池中的对象 System.out.println(str3 == str4);//false System.out.println(str3 == str5);//true System.out.println(str4 == str5);//false 尽量避免多个字符串拼接,因为这样会重新创建对象。如果需要改变字符串的花,可以使用 StringBuilder 或者 StringBuffer。 String s1 = new String("abc");这句话创建了几个对象? 创建了两个对象。 验证: String s1 = new String("abc");// 堆内存的地值值 String s2 = "abc"; System.out.println(s1 == s2);// 输出false,因为一个是堆内存,一个是常量池的内存,故两者是不同的。 System.out.println(s1.equals(s2));// 输出true 结果: false true 解释: 先有字符串"abc"放入常量池,然后 new 了一份字符串"abc"放入Java堆(字符串常量"abc"在编译期就已经确定放入常量池,而 Java 堆上的"abc"是在运行期初始化阶段才确定),然后 Java 栈的 str1 指向Java堆上的"abc"。 8种基本类型的包装类和常量池 Java 基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean;这5种包装类默认创建了数值[-128,127]的相应类型的缓存数据,但是超出此范围仍然会去创建新的对象。 两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。 Integer i1 = 33; Integer i2 = 33; System.out.println(i1 == i2);// 输出true Integer i11 = 333; Integer i22 = 333; System.out.println(i11 == i22);// 输出false Double i3 = 1.2; Double i4 = 1.2; System.out.println(i3 == i4);// 输出false Integer 缓存源代码: /** *此方法将始终缓存-128到127(包括端点)范围内的值,并可以缓存此范围之外的其他值。 */ public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); } 应用场景: Integer i1=40;Java 在编译的时候会直接将代码封装成Integer i1=Integer.valueOf(40);,从而使用常量池中的对象。 Integer i1 = new Integer(40);这种情况下会创建新的对象。 Integer i1 = 40; Integer i2 = new Integer(40); System.out.println(i1==i2);//输出false Integer比较更丰富的一个例子: Integer i1 = 40; Integer i2 = 40; Integer i3 = 0; Integer i4 = new Integer(40); Integer i5 = new Integer(40); Integer i6 = new Integer(0); System.out.println("i1=i2 " + (i1 == i2)); System.out.println("i1=i2+i3 " + (i1 == i2 + i3)); System.out.println("i1=i4 " + (i1 == i4)); System.out.println("i4=i5 " + (i4 == i5)); System.out.println("i4=i5+i6 " + (i4 == i5 + i6)); System.out.println("40=i5+i6 " + (40 == i5 + i6)); 结果: i1=i2 true i1=i2+i3 true i1=i4 false i4=i5 false i4=i5+i6 true 40=i5+i6 true 解释: 语句i4 == i5 + i6,因为+这个操作符不适用于Integer对象,首先i5和i6进行自动拆箱操作,进行数值相加,即i4 == 40。然后Integer对象无法与数值进行直接比较,所以i4自动拆箱转为int值40,最终这条语句转为40 == 40进行数值比较。 写在最后 开源文档推荐 Java-Guide:一份涵盖大部分Java程序员所需要掌握的核心知识,正在一步一步慢慢完善,期待您的参与。 Github地址:https://github.com/Snailclimb/Java-Guide 参考: 《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》 《实战java虚拟机》 https://www.cnblogs.com/CZDblog/p/5589379.html https://www.cnblogs.com/java-zhao/p/5180492.html https://blog.csdn.net/qq_26222859/article/details/73135660 https://blog.csdn.net/cugwuhan2014/article/details/78038254 你若盛开,清风自来。 欢迎关注我的微信公众号:“Java面试通关手册”,一个有温度的微信公众号。公众号有大量资料,回复关键字“1”你可能看到想要的东西哦!

优秀的个人博客,低调大师

这份NLP研究进展汇总请收好,GitHub连续3天火的都是它

最近,有一份自然语言处理 (NLP) 进展合辑,一发布就受到了同性交友网站用户的疯狂标星,已经连续3天高居GitHub热门榜首位。 合集里面包括,20多种NLP任务前赴后继的研究成果,以及用到的数据集。 这是来自爱尔兰的Sebastian Ruder,倾力汇总而成。 他在爱尔兰国立大学 (戈尔韦) 读博。另一个身份,是AI创业公司Aylien的研究人员。 塞巴斯蒂安说,NLP近来发展太快了,即便作为局内人,也很难顺畅地跟进这个领域里发生的事。 无微不至的仓库 要找到最常用的数据集,要了解自己研究的问题有了哪些新进展,还是很费力的。 所以,他就在GitHub上面建了一个仓库,追踪各种自然语言任务的研究成果,还有对应的数据集。 这是一间整齐的仓库,任务是按字母顺序排列—— · CCG supertagging · Chunking · Constitu

优秀的个人博客,低调大师

简单方便的ip-mac绑定,透明网桥如何实现IP-MAC绑定?

IP-MAC绑定一直是局域网管理的一个重要部分。但是其实现却往往比较复杂,一般会有如下问题: 大部分路由器的IP-MAC绑定功能比较局限。一般就是简单的ARP绑定。客户机手动修改IP等方式来突破。 路由器由于硬件限制,允许的IP-MAC绑定条目比较少,一般在256条以内。 交换机上进行IP-MAC绑定,配置和维护的工作量会比较大。 三层交换机的IP-MAC绑定往往需要专业技术人员才可以操作。 今天,我要介绍的是一种非常简单方便的IP-MAC绑定方式,无需修改交换机和路由器,不改变当前网络结构和配置,即插即用,web界面配置。非常简单方便就可以实现对局域网内客户机的IP-MAC绑定。具体介绍如下: 1. 透明网桥部署 用一台WSG设备(WFilter NGF)做透明网桥,串接在路由器和交换机之间。网络结构如下图: 网桥是完全透明的,串接在网络中,无需对局域网的IP配置、网络结构等做任何改动。就可以发挥作用。 2. 通过Web界面配置IP-MAC绑定 WSG在网桥模式下,一样可以实现完整的上网行为管理和审计功能。在本例中,我们只关注“IP-MAC绑定”的相关配置。如图: 局域网的客户机可以直接扫描导入,或者文本批量导入。如图: 对未绑定的客户机,可以禁止或者允许上网。 在网关模式下,你可以选择是否给未绑定的设备分配IP(需要在WFilter的接口设置中启用DHCP)。而在网桥模式下,DHCP服务是默认不启动的,如果你想要给客户机自动分配绑定的IP地址,那么这个选项是这样的,如下图: 当然,启用这个DHCP选项后,需要把你现有的DHCP服务关闭掉,否则DHCP会冲突。 3. 总结下具体步骤 利用透明网桥来实现IP-MAC绑定,具体步骤如下: 网桥模式部署一台WSG设备。 导入IP-MAC绑定列表。 IP-MAC绑定的配置中,对未绑定的IP禁止上网。 启用网桥DHCP服务(可选) 通过透明网桥来进行IP-MAC绑定,真正做到了不修改现有网络参数、不改变现有网络架构,有够简单吧? 本文转自 笨小驴 51CTO博客,原文链接:http://blog.51cto.com/12800391/2083405,如需转载请自行联系原作者

优秀的个人博客,低调大师

史上盛大的黑科技年会前夕,阿里妹做了一个重大决定

9月8日,本周五晚上,阿里巴巴集团将在黄龙体育中心召开2017集团年会,来自全球各地的数万名员工都将齐聚杭州。 黄龙体育中心现场 “阿里年会大数据”有多吓人?14班专列、100家酒店、7000个房间、1700车次大巴、12万瓶饮用水…… 此次数万名阿里员工从全球各地赶来,其中包括来自21个国家的800多位外籍员工,而本次几乎所有海外阿里员工都将来到杭州。这其中,很多人可能是第一次来到杭州和阿里总部。 半年前,阿里巴巴“NASA”计划正式启动,面向未来20年组建强大的独立研发部门,建立新的机制体制,为服务20亿人的新经济体储备核心科技。 而此次年会在黑科技应用方面也必须堪称彻底: 年会现场,现场每人都会配发一支IoT手环——这40000只手环采用阿里自主研发的物联网技术实时精准控制,每个手环都独立接收和执行命令,并达到毫秒级精度的响应量级; 现

优秀的个人博客,低调大师

13个流行机器学习框架 帮你解决网络安全机器学习的困难问题

在过去的一年中,机器学习发展得热火朝天,已成为主流。机器学习的“空降”并非仅仅由廉价的云环境以及日益强大的GPU硬件驱动,同时也受到了开源框架的蓬勃发展的影响。这些开源框架用于提取机器学习中最困难部分,使机器学习可供广泛开发者使用。 用机器学习解决网络安全问题开源机器学习框架能助力 《你的机器学习到底解决了什么?》一文中指出 没有什么机器学习厂商,只有应用机器学习解决特定问题的厂商,因为它本身无法独立解决任何问题,只是解决特定问题的手段,至少应该用于事件响应、高级威胁检测、溯源和调查。 《解读Gartner提出的网络流量分析解决方案》一文中介绍了绿盟科技全流量威胁分析方案 全流量威胁分析方案,是针对目前APT分析发现困难的问题。运用大数据处理的相关技术,提供对较长时间跨度的海量网络流量数据进行挖掘分析的能力;结合机器学习、

优秀的个人博客,低调大师

云计算时代什么人才“抢手” 美国这3个“敲门砖”最好使

随着云计算的风起云涌,相关的技术人才也逐渐成为抢手货,在各大招聘网站上与云计算相关的职位成为了“香饽饽”。近日,Infoworld发表文章,认为在美国云计算市场打算有所作为的从业者,一定不能忽视AWS认证,物联网与云,无服务器计算与容器这三方面的技能储备。他们很有可能成为你未来,成为云计算抢手人才的敲门砖! 云计算是一个高速发展的领域,所以雇主正在不断变化中寻求发展。同时也对云计算技能人才不断提出新的需求。 以下三种技能可以提升你的个人身价: 获得AWS认证。如果你选择开发人员或架构师的职业发展路径,一定要储备AWS技能,企业非常重视所有AWS认证。 虽然认证不是企业衡量人才的唯一原因,但是企业不能忽视这个审核云端人才的标准,所以具有某种程度的技能认证是一种简单的验证方法来。就如同互联网时代,思科系列认证,微软MVP,Oracle OCP认证等一样。 物联网和云。企业现在非常重视这两项技术。因为机器正在与所有事物进行人机对话。两者融合的技术,必不可少。 而且,AWS、微软和Google等在这方面也都在加大产品和服务的投入。并且许多企业正在寻找了解多个公有云的人,而大多数物联网系统都是基于云端的。 无服务器计算或容器。无论是无服务器计算,还是容器都已经成为了时下美国技术市场的关键词,尽管它们还在不断发展中。所以对这些新领域的技术人员,也受到企业招聘的高度关注。 从国内云计算的发展情况来看,也许过渡还要些时日,但作为IT技术从业者应该居安思危,早作技术方面的储备。 本文转自d1net(转载)

优秀的个人博客,低调大师

在图片中加入噪点就能骗过 Google 顶尖的图像识别 AI

近期,一群来自华盛顿大学网络安全实验室(NSL)的计算机专家发现,恶意攻击者可以欺骗Google的CloudVision API,这将导致API对用户提交的图片进行错误地分类。 近些年来,基于AI的图片分类系统变得越来越热门了,而这项研究针对的就是这种图片分类系统。现在,很多在线服务都会采用这种系统来捕捉或屏蔽某些特殊类型的图片,例如那些具有暴力性质或色情性质的图片,而基于AI的图片分类系统可以阻止用户提交并发布违禁图片。 虽然这种分类系统使用了高度复杂的机器学习算法,但是研究人员表示,他们发现了一种非常简单的方法来欺骗Google的Cloud Vision服务。 Google的Cloud Vision API存在漏洞 他们所设计出的攻击技术其实非常简单,只需要在一张图片中添加少量噪点即可成功欺骗Google的Cloud Vision API。其中的噪点等级可以在10%到30%范围内浮动,同时也可以保证图片的清晰度,而且这足以欺骗Google的图片分类AI了。 向图片中添加噪点其实也非常的简单,整个过程并不需要多么高端的技术,一切只需要一个图片编辑软件即可实现。 研究人员认为,网络犯罪分子可以利用这种技术来传播暴力图片、色情图片或恐怖主义宣传图片。除此之外,Google自己的图片搜索系统也使用了这个API,这也就意味着,当用户使用Google进行图片搜索时,很可能会搜索到意料之外的图片。 解决这个问题的方法很简单 研究人员表示,修复这个问题其实跟攻击过程一样的简单,所以Google的工程师们完全没必要紧张。 为了防止这种攻击,Google只需要在运行其图片分类算法之前,对图片中的噪点进行过滤就可以了。研究人员通过测试发现,在噪点过滤器的帮助下,Google的Cloud Vision API完全可以对图片进行适当的分类。 后话 研究人员已经将这种攻击的完整技术细节在其发表的论文中进行了描述,感兴趣的用户可以阅读这篇论文【传送门】。已经值得注意的是,这群研究人员在此之前也使用过类似的方法来欺骗Google的Cloud Video Intelligence API【参考资料】。注:他们在一个视频中每两秒就插入一张相同的图片,最后Google的视频分类AI会根据这张不断重复出现的图片来对视频进行分类,而分类的依据并不是视频本身的内容。 本文来自开源中国社区 [http://www.oschina.net]

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册