首页 文章 精选 留言 我的

精选列表

搜索[沈向洋院士],共10000篇文章
优秀的个人博客,低调大师

美国对向阿联酋提供黑客服务的前NSA雇员处以罚款处罚

据外媒报道,美司法部对三名前美国家安局(NSA)雇员处以罚款,据悉,这三名雇员在阿联酋一家网络安全公司担任雇佣黑客。49岁的Marc Baier、34岁的Ryan Adams和40岁的Daniel Gericke违反了美国出口管制法律,该法律要求公司和个人在向外国政府提供国防相关服务之前必须从国务院国防贸易控制理事会(DDTC)获得特别许可证。 资料图 根据法庭文件了解到,三名嫌疑人帮助阿联酋公司开发并成功部署了至少两种黑客工具。 这三人今日(当地时间9月14日)跟美司法部达成了一项史无前例的暂缓起诉协议,他们分别同意在三年的刑期内分别支付75万美元、60万美元和33.5万美元以避免入狱。 虽然法庭文件被大量修改,但Baier、Adams和Genicke的故事是众所周知的,他们的行为由一名告密者最先曝光并在2019年1月的一项路透社调查中被记录下来。 根据路透社的报道和美司法部官员的说法,这三人在2016年1月至2019年11月期间为阿联酋公司DarkMatter担任承包商角色。 这些前NSA分析师曾在“乌鸦计划(Project Raven)”中工作,“乌鸦计划”是DarkMatters内部的一个团队,由十几名前美情报人员组成。 在这个项目中,他们三人帮助开发了两个iOS零点击漏洞Karma和Karma 2。 路透社指出,这两个漏洞都是针对iPhone手机设计的,阿联酋官员利用它们监视持不同政见者、记者和政府反对派领导人。 除了罚款,美司法部的协议还包括以下条款: 与相关部门和FBI部门充分合作; 立即放弃任何外国或美国安全许可; 终身禁止未来通过美国安全审查; 未来的就业限制,包括禁止涉及CNE(计算机网络开发)活动或出口国防物品或提供国防服务的就业(如CNE技术); 对某些阿联酋组织的就业限制。 美代理助力总检察长Mark J. Lesko表示:“这项协议是对两种不同类型的犯罪活动进行调查的首个此类决议:提供未经许可的出口控制的国防服务以支持计算机网络开发--以及一家商业公司创建、支持和操作专门用于允许他人未经授权从世界各地(包括美国)的计算机访问数据的系统。” 另外,他还补充道:“雇佣黑客和那些支持此类违反美国法律的活动的人完全有可能因为他们的犯罪行为而被起诉。” “这些人选择无视警告,并利用他们多年的经验来支持和加强外国政府的进攻性网络行动,”FBI华盛顿外勤办公室主管助理局长Steven M. D 'Antuono指出,“这些指控和相关处罚表明,FBI将继续调查此类违规行为。” 鸿蒙官方战略合作共建――HarmonyOS技术社区 【责任编辑:赵宁宁 TEL:(010)68476606】

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

美企被爆向政府倒卖用户信息,中国软件危害国家安全?

美国以所谓的TikTok不安全为由,对中国软件进行封杀。但是近期却被报道美国一家企业将自己开发的软件,嵌入大量手机应用程序中,对全球手机用户信息进行窃取。并且相关人员表示,该美国企业倒卖信息,被窃取的信息流向美国政府。美国的双标已经到了令人发指的地步。以“国际警察”身份自居,借维护安全、民主,插手他国内政。一方面打着世界和平的幌子,一方面却做着威胁世界的危险行为。 美企Anomaly Six与美国政府关系密切 《华尔街日报》表示,美国企业Anomaly Six是由两名国防退伍军人建立,据了解,他们都曾与美国政府进行密切合作。相关数据显示,500多款手机程序中都潜伏着该企业设计的软件,只要用户使用程序,其位置信息就会被记录。 相关人员表示,大部分软件、程序开发企业都是许可第三方软件介入其中,他们可以从中赚到一定的费用,第三方从中获取信息,进行出售获取利益。大部分用户是无法得知自己的程序是否存在第三方介入,因为大多数隐私政策不会被公开披露。媒体报道,如今美国并没有限制倒卖信息的监管规定。 倒卖信息企业和情报机构有关? 相关人员表示,Anomaly Six还与Babel Street公司有牵扯,该公司的一款产品Locate X,就被用来提取手机用户的信息。并且Anomaly Six的创始人曾在其任职,和美国国防务等机构有着密切的关系。根据法庭记录,Locate X的设计参杂美国政府官员的建议,被应用于军事情报方面。报道称,被提取的手机用户信息,应用于对其行为、习惯的预测。相关人员表示,用户在毫不知情的情况下,享受着“无毒无害”的程序,结果私人信息却被倒卖、收集。 美国的行为越来越受到世界的争议,面临总统大选,糗事却层出不穷。世界经济受到损伤,需要各国国家携手共进,美国不负责的行为,使其自身损失大量利益。为维护自己所谓的“第一”,美国部分政客不惜动用抹黑、打压他国手段,不利于世界进步。美国若仍一意孤行,也终将为自己的失败买单。

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

终于可以向重复的鉴权代码说byebye 了 -- (玩转 AOP和Annotation )

缘起 最近在写代码时,不可避免的会写成出进行大量的鉴权逻辑。 如下面代码所示,每一个方法都要添加一个鉴权逻辑(样例只有4个方法,实际工作中会很多) class Action{ public void get() { checkRights(); //鉴权代码 //业务代码 } public void put() { checkRights(); //鉴权代码 //业务代码 } public void delete() { checkRights(); //鉴权代码 //业务代码 } public void post() { checkRights(); //鉴权代码 //业务代码 } } 作为一个善于偷懒的码农,看到如上代码应该会敏锐得意识到‘Don't repeat yourself’的编程箴言了,重复代码带来的问题,我就不再累述了,相信大家都身受其害。 如何解决呢? 那么该如何消除到这些大量烦人的重复逻辑呢。 有的同学可能已经想到了,可以在web框架的流水线中增加一个鉴权处理器,这的确是一个可行方案,我们这里就不详细解释了。 这里给出另外一个利用AOP进行重复代码消除的技术,那么什么是AOP呢? 这里说下个人比较粗浅的理解:AOP(Aspect-Oriented Programming)面向切面编程,是一种根据位置描述规则(Pointcut切点)把代码(Advice)添加(织入weav)到指定位置的技术。 通过 (位置描述规则 + 代码)把散落在代码中的重复逻辑提取出来,对重复代码完成的这形式的抽象就叫AOP。 AOP在天然支持元编程的语言里面(如lisp),很容易直接写代码实现。 但是在大部分不支持元编程的语言,就由各种工具或框架各显神通了,如C++里面有AspectC++等。 在java世界中有2个著名的实现一个是经典全能版的AspectJ、另外一个阉割版的Spring AOP。 我们的项目使用spring,一开始很自然的想使用 SpringAOP,但是很不幸 SpringAOP 仅支持容器管理对象的AOP,这无法满足我的需求。 所以只能使用AspectJ了。 AspectJ 有2种织入方式(使用acj编译器静态织入,使用javaagent动态织入),这里顺便提一下 javaagent技术,它允许用户在类加载前改变类的字节码,受益于java的动态能力,aspectJ可以优雅的实现动态织入技术。 AOP的核心思想是比较简单的,但是切点规则相当繁琐,不容易全面掌握,Pointcut表达式以后再详细写吧。 把AOP run起来,废了不少时间,解决了各种奇葩问题,因此现在这里写一下过程,供对AOP应用有兴趣的同学参考。 项目实践 下面以项目为例详细说明实现过程,这里使用了动态织入的方式: 增加包依赖 注意: aspectJ包的版本和java 版本一致,否则运行时会出现类被损坏的异常。 我们项目使用的java8,这个地方我掉过坑。 <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.12</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.12</version> </dependency> classpath路径里面增加 META-INFO/aop.xml 配置很简单,一个切面类。 织入目标的包路径(注意要包含切面类的路径,否则切面类会缺少需要被织入的aspectOf()方法,这也是掉过坑的) <?xml version="1.0"?> <aspectj> <aspects> <aspect name="com.taobao.bright.service.system.auth.AclRightAspect"/> </aspects> <weaver options="-showWeaveInfo "> <include within="com.taobao.bright.web.sre.module..*" /> <include within="com.taobao.bright.service.system.auth.*" /> </weaver> </aspectj> 启动方式 有2种方式 1. javaagent方式 (我使用的这种方式) java "-javaagent:/Users/qiyu/.m2/repository/org/aspectj/aspectjweaver/1.8.7/aspectjweaver-1.8.7.jar" 2. tomcat server.xml配置文件增加 <Context><Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/> </Context> 实现代码样例 废话少说,放码过来! 2个注解类,一个切面类都贴出来了,供大家参考借鉴。 //权限位注解 @Repeatable(AclRightAnnotations.class) @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface AclRightAnnotation { AclRightType value() ; } //可以添加多个权限位的注解 (java8新特性) @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface AclRightAnnotations { AclRightAnnotation[] value() ; } @Aspect public class AclRightAspect { //含有AclRightAnnotation注解的目标类且为public方法 切点定义 @Pointcut("@within(com.taobao.bright.service.system.auth.AclRightAnnotation) && execution(public * *(..))") public void classPointCut() {} //含有AclRightAnnotation注解的方法且为public方法 切点定义 @Pointcut("@annotation(com.taobao.bright.service.system.auth.AclRightAnnotation) && execution(public * *(..))") public void actionPointCut() {} // @Around("classPointCut() || actionPointCut()") public void checkPermission(ProceedingJoinPoint joinPoint) throws Throwable { MethodSignature methodSig = (MethodSignature) joinPoint.getSignature(); //通过getDeclaredAnnotationsByType反射方法,获取注解中的权限位 AclRightAnnotation[] methodAnnotations = methodSig.getMethod().getDeclaredAnnotationsByType(AclRightAnnotation.class); AclRightAnnotation[] classAnnotations = joinPoint.getTarget().getClass().getDeclaredAnnotationsByType(AclRightAnnotation.class); List<AclRightAnnotation> annotations = new ArrayList<>(); annotations.addAll(Arrays.asList(classAnnotations)); annotations.addAll(Arrays.asList(methodAnnotations)); boolean hasRight = false; String right = ""; for(AclRightAnnotation acl : annotations){ right= acl.value().getValue(); if(AclRightCache.checkCurrentUserRight(right)){ hasRight = true ; break; } } if(!hasRight){ Object[] methodArgs = joinPoint.getArgs(); for(Object arg: methodArgs){ if (arg instanceof Context) { //返回鉴权异常给客户端 Context context = (Context) arg; Result<String> result = new Result<>(); result.addActionError("No permission!"); context.put(Result.KEY_SIGN, result); } } }else { joinPoint.proceed(); } } } 使用代码样例 使用起来就很简单了,直接在类或方法上增加注解就可以了。 一行代码就可以搞定这个类的注释了。如果方法上需要特殊的权限,也可以增加注解。 //权限注解可以加到类或方法上。 加在类上,会对类中所有public方法都生效。 多个权限位之间是OR的关系,即有一个权限位验证通过即可。 @AclRightAnnotation(value = AclRightType.BRIGHT_STATION_VIP_MANAGE) class Action{ public void get() { //业务代码 } public void put() { //业务代码 } public void delete() { //业务代码 } public void post() { //业务代码 } } AOP的使用过程大致如上,使用如上方法后消除了项目代码中大量的重复鉴权代码。欢迎各位参考交流。

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

包银消费CTO汤向军:消费金融大数据风控架构与实践

风险在哪里 1.1 信用风 根据银行业的风险理论,信用风险是指借款人因各种原因未能及时、足额偿还债权人或银行贷款而违约的可能性。 信用风险的风控重点在于,甄别客户违约的原因究竟是还款能力,还是还款意愿问题。如果客户真的由于各方面的原因,暂时不具备还款能力,这是概率问题。即使发生了,处置起来也不会有什么损失。而如果是还款意愿问题,存在较大的资金损失概率。 1.2 欺诈风险 在风控中,欺诈风险比信用风险要大得多,所以反欺诈是重中之重。一般来说正常的客户,如果不是刻意骗贷的,只是因为家里出现突发事故、生意出现问题、暂时失业等等原因而导致资金周转不过来而逾期的,这毕竟是少数,而且借款只是逾期,能够还款的概率还是比较高。 消费金融行业绝大多数不良是因为欺诈引起的,如果反欺诈能够比较有效的情况下,信用风险控制在5%以内没有太大问题。 主要挑战 消费金融发放的

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

学习虚幻4需要储备的知识(2D游戏开发者向)

这些都是入门可读的资料,所有英文资料都有中译本。 2D游戏引擎可认为是3D游戏引擎的子集+优化(可选)。简单的2D游戏引擎可以基于Draw(不用节点)和继承树(不用ECS),甚至没多少继承(直接堆Class)……而3D游戏引擎则要复杂一些。 各种效果术语扫盲 如果只是术语扫盲,官方文档好多是机翻,而且写的很详细(复杂)(各种流程,原理,例子,gif,视频混在一起),完全不如那些游戏网站,或者卖硬件的写的简单清楚,简单几句话就写完了(毕竟人家是要卖的),比如这个: 玩得更明白 显卡帝揭秘3D游戏画质特效 组件式引擎、ECS 现代引擎架构基本上都是组件式的,之前的那个似乎可以称作是继承树结构。继承人人都知道,但是继承的弊端并不是一两句话就能说清楚的。组件式扫盲文挺多,但是好多没有UML图和案例,这两个算是写的清楚点的: 一个基于组件的动态对象系统 Refactoring Game Entities with Components 游戏引擎整体概述 《游戏引擎基础知识》系列 本文是游戏记者西川善司在Fami通杂志上连载的系列专栏内容。 游戏引擎基础知识第一讲 游戏引擎怎么来的 游戏引擎基础知识第二讲 著名的游戏引擎 游戏引擎基础知识第三讲 五花八门的中间件 《Game Engine Architecture》 很棒的书,作者译者都是资深人士,看完就知道大概了,先有整体印象非常重要,否则你要在一堆记忆碎片上自己建立,那是很蛋疼的。如果实在没精力读的话,留着当字典查也行。 本文转自 老G 51CTO博客,原文链接:http://blog.51cto.com/goldlion/1765094 ,如需转载请自行联系原作者

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

卫向军 | 从正交分解架构设计到矩阵式团队管理

大家好,俗话说,早起的鸟儿有虫吃,非常高兴在新年之初与大家做一场矩阵式团队管理的交流分享。 今天的分享主题: 《从正交分解架构设计到矩阵式团队管理》 带团队就是管人、管事、管钱、管心,合理的组织架构是实现这四点的重要保障,组织架构有三种划分方式:按职能、按业务以及矩阵式,它们各有其优缺点。从多年研发管理和系统架构经验中,对比矩阵式团队管理与正交分解架构设计的相通之处,深入思考总结出一套管理方法,并将其应用在组织设计、绩效考核、团队文化各个层面,本分享希望与大家探讨: 1. 矩阵式团队管理的专业性与规模性两者如何协调? 2. 矩阵式团队管理与正交分解法背后的哲学,康威定律,分工与协作。 3. 在矩阵式管理架构下,基于绩效考核与定级定岗,打造业绩型、学习型、主动型的研发团队。 4. 合理运用培训与激励提高产出。 三种常见的组织架构设计各自的

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

HPE以88亿美元向Micro Focus出售大部分软件业务

9月7日,HPE称已经同意以88亿美元的价格将其软件业务出售给英国公司Micro Focus。 HPE股东将获得这家联合公司50.1%的股权,但HPE并没有控股权益。它将一直留在Micro Focus董事会,并获得后者支付的250亿美元现金。 周三,HPE CEO,Meg Whitman(上图)宣称,公司营收略有下降,但仍击败了华尔街分析师预测。最初股价在盘后交易中下降2%以上,但在电话财报会议之后有所反弹。 软件销售包括HPE的应用交付管理,大数据,企业安全,信息管理和治理以及IT运营管理业务,但并不包括Helion混合云基础设施平台。Whitman称后者是HPE战略——“成为混合型IT领导厂商,现阶段运行客户的数据中心,未来将这些数据中心桥接到云并为它们将来的边缘计算和物联化做好准备”的一个关键部分。 该交易相当于剥离了HPE的软件应用产品组合,但不包括系统软件产品,即云和基础设施管理战略。“我们仍想进军软件业务,但不是应用软件。” Whitman在电话会议中如是说。 Micro Focus创立40年,以销售Cobol编译器起家,近期开始进行大肆收购,2014年以12亿美元收购了Attachmate Group,今年初又以5.4亿美元收购Serena Software。Micro Focus之前的收购包括Novell和Linux供应商SUSE。作为交易的一部分,HPE和Micro Focus表示它们将形成一种商业合伙模式,让SUSE成为 HPE的首选Linux合作伙伴,并将HPE Helion OpenStack云部署,Stackato部署平台与SUSE的OpenStack合并。 Micro Focus市值44.5亿美元,2015年营收为8.43亿美元。此次收购案预计约使其年营收翻五倍达到45亿美元。Micro Focus执行总裁,Kevin Loosemore将领导软件部门。Robert Youngjohns目前领导HPE的软件业务,他将成为战略部署部门的执行副总裁。HPE COO,Chris Hsu也将继续留在软件业务部门。 该交易对大数据软件制造商Autonomy(HP收购的一家英国公司)而言也是一次回归——在2011年HP曾花费102亿美元将其买下,但却争议不断。因为随即HP在2012年发现此次交易中,Autonomy账面减值了88亿美元,继而指控Autonomy主管操作财务数据,提升公司价值。即便Autonomy一直是该公司大数据产品线的一个主要部分。 Micro Focus称希望在3年内将HPE软件资产利润提升约20%。HPE股东将通过他们联合企业的股份来看到利润效益。 在营收方面,虽然HPE存储业务出现疲软,但表现依旧强大。营收122亿美元,比前一年下降6%,但调整剥离资产和汇率之后,营收仅下降1%,其净营收为每股49美分,轻松打败华尔街分析师的44美分预测。现金流增长10%并且该公司在回购和股息方面向股东返还了15亿美元。 HPE从去年11月由HP分拆以来,就一直对自身投资组合穷削猛砍。5月份将其占营收三分之一的企业服务业务与Computer Sciences合并。 这也证实了一位分析师的质疑——自去年11月以来,该公司未能完成更多收购案或实现利润增长,但Whitman坚持她正在按原计划执行当时的战略。“我们根据核心战略需要进行增加或放弃投资组合,”她表示。“我们仍处于服务业务中,但这是一种不同类型的业务。这是一个投资组合与我们视为竞争优势的战略的契合问题。” (SGI),并且Whitman称它们是投资组合战略实力的证明。“我认为你可以看一看更多诸如Aruba和SGI的小型收购案。这和我们去年部署的战略相符,每一天我都会看到专注的价值,未来四或五年,在日趋狭隘的领域里,我们将主要以速度,专注,灵活性和创新为目的。” Whitman表示更为专注的HPE因为HPE的产品线覆盖了计算机,存储和网络组件,将强势对战Dell Technologies和思科。它的两家竞争对手都没有这三大元素。此外,她还称成本削减已经接近尾声。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册