聚合文章列表
13 浏览

Python:PhantomJS 无头浏览器获取通知内容

无头浏览器即headlessbrowser,是一种没有界面的浏览器重写的原因在于原来的网站多加了安全措施,直接POST操作会被封掉,而且有意打算用面向对象重写一次。参考内容等请点进《Python:定时获取通知内容并发送到邮箱》查阅要注意的是用apt安装,使用过程会出现Message:Error-UnabletoloadAtom'find_element'fromfile':/ghostdriver/./third_party/webdriver-atoms/find_element.js'的错误,搜索到python3.x-PhantomJSwithSelenium-UnabletoloadAtom''find_element"-StackOverflow,推荐这样安装aptpurgephantomjswgethttps://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.

JavaScript 2017-11-26 发布
14 浏览

翻译连载 | 附录 A:Transducing(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

原文地址:Functional-Light-JS原文作者:KyleSimpson-《You-Dont-Know-JS》作者关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是HTML最坚实的梁柱;分享,是CSS里最闪耀的一瞥;总结,是JavaScript中最严谨的逻辑。经过捶打磨练,成就了本书的中文版。本书包含了函数式编程之精髓,希望可以帮助大家在学习函数式编程的道路上走的更顺畅。比心。译者团队(排名不分先后):阿希、blueken、brucecham、cfanlife、dail、kyoko-df、l3ve、lilins、LittlePineapple、MatildaJin、冬青、pobusama、Cherry、萝卜、vavd317、vivaxy、萌萌、zhouyaoJavaScript轻量级函数式编程附录A:TransducingTransducing是我们这本书要讲到的更为高级的技术。它继承了第8章数组操作的许多思想。我不会把Transducing严格的称为“轻量级函数式编程”,它更像是一个顶级的技巧。

JavaScript 2017-11-23 发布
23 浏览

《京保养》基于Vue+Vuex的单页面应用实践

接到《京保养》项目需求,了解到是移动端项目,运用于微信公众号及京东APP。通过与后端研发沟通,后端将提供所有的数据展示接口,这样最终商定使用前后端分离技术,而作为前端这边就非常适合选择基于webpack+Vue的单页面应用来实现。前期组内也有基于单页面应用的项目总结,他们的总结的确让我在本项目中少走了很多弯路,但是不同的项目又遇到了不同的新问题,本文将会介绍我所遇到的新问题及解决方案。感兴趣的同学可以通过以下两个入口先去体验下京保养应用,然后回来接着看文章:微信公众号搜索“京东汽车用品”–关注公众号–菜单栏“京保养”,见图1;京东APP–我的–我的爱车–京保养,见图2。图1图2如果你在APP中找不到“我的爱车”入口,你得先在京东APP–我的–设置–添加档案–我的爱车–绑定自己的爱车,然后才会有入口。为什么要使用Vuex初拟技术选型,项目开始了,而开发过程中发现,项目中有不同的表单视图需要大量数据的共享。而仅使用单页面的路由来传参并不能满足需求,因为数据量

JavaScript 2017-11-23 发布
AD 友情赞助
14 浏览

利用Angular实现多团队模块化SPA开发框架

0、前言当一个公司有多个开发团队时,我们可能会遇到这样一些问题:技术选项杂乱,大家各玩各业务重复度高,各种通用api,登录注销,权限管理都需要重复实现(甚至一个团队都需要重复实现)业务壁垒,业务之间的互通变得比较麻烦部署方式复杂,多个域名(或IP地址)访问,给用户造成较大的记忆难度多套系统,风格难以统一等等...当然,解决方式有不少。以下就来讲解下我们这边的一种解决方案。1、思路AngualrAngular(注:非AngularJS)是流行的前端MVVM框架之一,配合TypeScript,非常适合用来做后台管理系统。由于我们曾今的一套Angularjs开发框架,我们继续选择Angular来进行实现,并尽可能的兼容AngularJS的模块。SPA选SPA还是多页?多余Mvvm来说,多页并不是标配。而且多页开发中,我们势必会关注更多的内容,包括通用header,footer,而不仅仅是页面的核心内容。模块化为什么要模块化呢?当有多个团队开发时(或者项目较大时),我们希望各个团队开发出来的东西都是

JavaScript 2017-11-23 发布
16 浏览

JavaScript学习笔记(八)——变量的作用域与解构赋值

在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意!如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/学习。在JavaScript中,用var申明的变量实际上是有作用域的。如果一个变量在函数体内部申明,则该变量的作用域范围是整个函数体,在函数体外部,不能被引用。'usestrict';functionfoo(){varx=1;x=x+1;}x=x+2;//ReferenceError!无法在函数体外引用变量x如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用。也就说,两个函数内部的同名变量相互独立,互不影响:'usestrict';functionfoo(){varx=1;x=x+1;}functionbar(){varx='A';x=x+'B';}由于JavaScript的函数可以嵌套,所以,内部的函数可以访问外部函数定义的变量,反

JavaScript 2017-11-23 发布
18 浏览

JavaScript 观察者 (发布/订阅) 模式

定义观察者模式定义了对象之间一对对多的依赖关系,当一个对象改变了状态,它的所有依赖会被通知,然后自动更新。和其他模式相比,这种模式又增加了一个原则:在相互作用的对象之间进行松散耦合设计所以主要的想法是我们要有一个大的对象来处理订阅(Subject/Observable),以及很多对象(Observers)被订阅然后等待事件触发。还有一个重要的点就是Observers接受消息的顺序是随机的,所以你不要依照Observers添加的顺序。基础例子varObservable={observers:[],addObserver:function(observer){this.observers.push(observer)},removeObserver:function(observer){varindex=this.observers.indexOf(observer)if(~index){this.observers.splice(index,1)}},notifyObservers:funct

JavaScript 2017-11-26 发布
AD 友情赞助
17 浏览

仿v2ex过程中的问题记录

最近经常观察各种APP的设计、配色之类的,今天没事决定仿一下V2EX的首页,动手更能加深印象。代码地址:https://github.com/owenliang/v2ex-clone体验地址:https://owenliang.github.io/v2ex-clone/这里主要记录一下心得。配色一般整个底色都会选择一个浅灰,比如:#e2e2e2。阴影或者分割线,可以采用rgba颜色。它支持透明度控制,类似于:background-color:rgba(0,0,0,0.22)这样的颜色,其实就是黑色在不同透明度下的效果,最后一个值越小颜色越浅,效果特别好。字体颜色同样很重要,貌似很少使用纯黑色字体,因为有点刺眼。可以采用一些淡化一些的颜色,如果是白底可以用#555、#666、#ccc这样的颜色,如果是灰底那么采用白色字体就可以。浮动还是行块我一开始做多个div横向布局,想用inline-block比较省事,即便inline-block的height高度,line-height行高,font-size

HTML 2017-11-23 发布
17 浏览

基于SwiperJs的H5/移动端下拉刷新上拉加载更多

基于SwiperJs的H5/移动端下拉刷新上拉加载更多最早时,公司的H5项目中曾用过点击一个“加载更多”的DOM元素来实现分页的功能,后来又用过网上有人写的一个上拉加载更多的插件,那个插件是页面将要滚动到底部时就自动请求数据并插入到页面的后边,其实这样也是可以的,不过在我们的负责人看了之前的效果后提出的要求是希望页面滚动到底部时先暂时不加载更多的数据,而是当页面滚动到底部且用户还在往上拉动页面时再加载更多。这样的好处是,万一用户只是想滚动到底部只看看被屏幕遮挡住的其他数据而没有想要看更多的数据时,就不用再请求数据了。于是我就查资料找到了一个基于iscroll的插件实现的这种效果。具体的效果实现代码请戳向这里:基于zepto的H5/移动端tab切换触摸拖动加载更多数据。注意在这里提醒一下大家,如果你实际开发的项目中出现了在也一个页面中会有tab切换,在每个切换的内容中又有上拉加载更多的需求,建议你可以把每个tab切换的效果做成单独的页面来模拟tab切换,这样的好处是在一个页面中就不会有各种各样的判断来满足上拉加载更多的效果在不同tab之前切

CSS 2017-11-23 发布
15 浏览

canvas图表(3) - 饼图

原文地址:canvas图表(3)-饼图这几天把canvas图表都优化了下,动画效果更加出色了,可以说很逼近echart了。刚刚写完的饼图,非常好的实现了既定的功能,交互的动画效果也是很棒的。效果请看:饼图https://edwardzhong.github.io/sites/demo/dist/chartpie.html功能点包括:组织数据绘制3.数据动画的实现;4.鼠标事件的处理。使用方式饼图的数据方面要简单很多,因为不用多个分组的数据。把所有的数据相加得出总数,然后每个数据分别求出百分比,有了百分比再相乘360度的弧度得出每个数据在圆盘中对应的要显示的角度。varcon=document.getElementById('container');varpie=newPie(con);pie.init({W:1600,H:1000,title:'网站用户访问来源',toolTip:'访问来源',data:[{value:435,name:'直接访问'},{value:310,name:'邮件营

HTML5 2017-11-23 发布
AD 友情赞助
14 浏览

【APT报告】海莲花团伙利用MSBuild机制免杀样本分析

2017-11-2310:48:09阅读:224次来源:安全客作者:360天眼实验室背景进入2017年以来,360威胁情报中心监测到的海莲花APT团伙活动一直处于高度活跃状态,近期团伙又被发现在大半年内入侵了大量网站执行水坑式攻击。海莲花团伙入侵目标相关的网站植入恶意JavaScript获取系统基本信息,筛选出感兴趣的目标,诱导其执行所提供的恶意程序从而植入远控后门。基于所收集到的IOC数据,360威胁情报中心与360安全监测与响应中心为用户发现了大量被入侵的迹象,协助用户做了确认、清除及溯源工作,在此过程中分析了团伙所使用的各类恶意代码样本。为了顺利实现实现植入控制,海莲花团伙所使用的恶意代码普遍加入了绕过普通病毒查杀体系的机制,利用带白签名程序加载恶意DLL是最常见的方式。除此之外,部分较新的恶意代码利用了系统白程序MSBuild.exe来执行恶意代码以绕过查杀,以下为对此类样本的一些技术分析,与安全社区分享。MSBuild介绍MSBuild是微软提供的一个用于构建应用程序的平台,它以XML架构的项目文件来控制平台

.Net 2017-11-23 发布
13 浏览

IdentityServer4(10)- 添加对外部认证的支持之QQ登录

IdentityServer4(10)-添加对外部认证的支持之QQ登录前言前面我们提到过IdentityServer4是可以添加外部认证的,如果外部认证支持OAuth2,那么添加到IdentityServer4是非常简单的,在ASP.NETCore下提供了非常多的外部认证实现,比如Google,Facebook,Twitter,Microsoft帐户和OpenIDConnect等,但是对于我们国内来说最常用的莫过于QQ登录。申请QQ登录1.访问QQ互联官方网站:https://connect.qq.com/2.点击“应用管理”->“创建应用”,填写你的网站信息,这里的信息请不要胡乱填写,这个会影响审核的,以后要是修改了这些信息需要重新审核。填写完善资料的时候,唯一一个需要注意的就是回调地址,这里我们后面详细介绍。3.等待审核结果,这里审核还是非常快的,一般一天左右就行了注意:如果网站没有备案号我不知道是否能通过申请,我自己是拥有备案号的,然后网站LOGO必须上传,不然会申请不过的。添加QQ登录QQ登录是支持

.Net 2017-11-23 发布
12 浏览

REPO 风格之争:MONO VS MULTI

简评:两种管理代码库的方式甚至是两种哲学的碰撞。首先,我们解释一下什么是monorepo和multirepo。这两者都是管理组织代码的方式,顾名思义monorepo就是把所有的相关项目都放在一个仓库中(比如React,Angular,Babel,Google...),multirepo则是按模块分为多个仓库。这两者的核心区别可以归结为你相信怎样的哲学能让团队在一起工作的效率最高(多元化vs集中管理)。从multirepo的角度来看,这样让每个子团队拥有自己的repo,可以用他们自己擅长的工具、workflow等等。多元化能促使各个团队尽可能的提升自己的效率。但代价也在于会增加很多沟通成本,如果你在你们项目用到的库中发现了一个bug,就必须到目标库里修复它、打包、发版本,然后再回到你的库继续工作。在不同的仓库间,你不仅需要处理不同的代码、工具,甚至是不同的工作流程。甚至你只能去问维护这个仓库的人,能不能为你做出改变,然后等着他们去解决。而从monorepo来看,让不同的团队走自己的路,并不见得能提高生产

.Net 2017-11-23 发布
AD 友情赞助
16 浏览

深入分析 | 恶意软件如何使用合法工具隐藏恶意代码

恶意软件的作者通常会使用各种技术来规避防护机制,隐藏有害活动。其中有一种技术就是在可信进程中隐藏恶意代码。通常来说,使用隐藏技术的恶意软件会将其代码注入到系统进程中(如explorer.exe),但是有一些样本采用了其他有趣的方法,所以我们在本文中会分析这种恶意软件。我们将目光锁定在各种.NET样本上,这些样本使用了来自Microsoft.NETFramework的可信程序InstallUtil.exe即安装程序工具。微软的介绍:安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源。此工具与System.Configuration.Install命名空间中的类一起工作。这种技术由信息安全研究员CaseySmith做了简单的介绍(点此查看PoC)。简而言之,控制台程序InstallUtil.exe运行一个恶意的.NET程序集,然后绕过程序集的入口点,如此一来所有恶意活动都可以隐藏在可信程序中了。恶意软件样本的传播遵循一种标准模式:基本上是通过带密码保护的文件来传播给用户,并且大部分情况下可执

.Net 2017-11-23 发布
14 浏览

微软潘正磊:没有反思就没有进步,微软现在更开放

至顶网CIO与应用频道11月23日北京消息:11月1日,2017微软技术暨生态大会(MicrosoftTechSummit)在京召开,这是微软中国年度最盛大的科技峰会,活动上分享了微软的最新动态,以及微软在云计算、大数据、混合现实、人工智能、量子计算等领域的最新布局。微软公司全球开发平台事业部的资深副总裁潘正磊、微软中国云计算和企业服务事业部云开发高级产品经理胡德民在会后接受了媒体的采访,分享了微软针对开发者的策略以及提供的技术支持。我看到之前Fastcompany写了一篇报道叫SatyaNadellaRewritesMicrosoft’sCode,而且确实萨提亚也讲到了,他也学过分布式计算,但是做了云的架构之后才重新认识什么是分布式计算,那个规模大到包括技术研究的范畴了。理论上,我们整个Aruze云都是基于VisualStudio开发的,那从我们开发的理念上,开发工具上,和开发算法上怎么适应用,特别是Aruze这种大规模的云的这样的一个时代的变化,能不能给我们讲讲它里面的精髓在什么地方?潘正磊:

.Net 2017-11-23 发布
13 浏览

C# WPF动点任意移动气泡画法(解决方案使用到数学勾股定理、正弦定理、向量知识)。

C#WPF动点任意移动气泡画法(解决方案使用到数学勾股定理、正弦定理、向量知识)。许久没写博客了,最近在研究WPF下气泡的画法,研发过程还是比较艰辛的(主要是复习了高中的数学知识,MMP全忘光了),这篇博客主要是提供一个思路给大家参考,如果有大神还有更好的解决方案可以不吝您的言论尽情留言。拿个这个类型的功能项目,首先分析可以假设气泡是由:椭圆/矩形/圆(椭圆的特例)和三角形组成,OK首先分步骤介绍研发步骤:第一:首先我的所有的图形都是基于矩阵画出来的,坐标轴起点是(0,0),假设一个拖拉点DynamicPoint(x,y),和一个固定点FixedPoint(m,n);由两点即可确定一个矩形大小,从里面画出内接图形和一个三角形;1、新建矩形varTriagleRect=newRect(FixedPoint,DynamicPoint);2、假设矩形之内存在一个等比例大小的圆,而圆是由圆心和半径组成的直线所划过的弧确定的,半径R,圆心CenterXY

.Net 2017-11-23 发布
15 浏览

那些大名鼎鼎的软件项目是如何得名的?

Kafka最初在LinkedIn领导Kafka开发小组的JayKreps解释说,既然Kafka是一个为写消息而优化的系统,那么使用作家的名字来命名它再好不过了。他在大学时期上过很多文学课程,很喜欢作家FranzKafka,于是就以“Kafka”来命名这个项目。JavaScriptJavaScript最初叫作Mocha,后来改名LiveScript,不久之后Netscape和Sun公司达成共识将其改名JavaScript,旨在成为一门与Java互补的脚本语言。MySQLMichaelMontyWidenius是MySQL创始人之一,他的一个女儿名叫“My”。Git“git”在英式英语的俚语里有“饭桶”、“废材”的意思。LinusTorvalds说:“我是一个自负的混蛋,我所有的项目命名都带有浓烈的个人风格”。之前有Linux,现在有git。git的帮助文档里把自己描述成“愚蠢的内容跟踪器”。JavaJava最开始叫作Oak(橡树),因为JamesGosling办公室外面有一颗橡树。中间还使用过“Green”这个名字,最后

消息系统 2017-11-23 发布
15 浏览

rocketmq4.1.0部署详细步骤

cddistribution/target/apache-rocketmq其中,mvn打包时超时,我用了下面的镜像。centralMavenRepositorySwitchboardhttp://repo1.maven.org/maven2/central

消息系统 2017-11-26 发布
14 浏览

程序员小知识:JS数组常用方法操作

今天igeek手册与大家分享的是:JS数组常用方法操作,希望大家看完能有所收获哦~1、push添加最后一项在数组末尾添加一项,并返回数组的长度,可以添加任意类型的值作为数组的一项。vararr=[1,2];arr.push(6)//arr:[1,2,6]arr.push('aa')//arr:[1,2,6,"aa"]arr.push(undefined)//arr:[1,2,6,"aa",undefined]arr.push({a:"A",b:"B"})//[1,2,6,"aa",undefined,{a:"A",b:"B"}]2、unshift在最前面添加一项vararr=[1,2];arr.unshift(9)//[9,1,2]arr.unshift('aa')//['aa',9,1,2]3、pop删除最后一项删除最后一项,并返回删除元素的值;如果数组为空则返回undefine。对数组本身操作vararr=[1,2,3,

程序员 2017-11-23 发布
14 浏览

致虾米音乐“穷X”事件程序员:你不需要道歉

虾米音乐:这不是我要的头条...事情的经过大概是这样的:不知被人从哪里扒出来的虾米音乐的MAC客户端的代码,里面的注解将虾米音乐免费赠送的VIP用户称为“穷逼VIP”。这个可能是发现者觉得该注释相当的有趣,于是就把它分享到网上,并无恶意。然而,意想不到的是一传十,十传百,事件持续发酵,愈演愈烈,最后竟然引起轩然大波,在舆论的压力下,始作俑者,不得不出面道歉。

程序员 2017-11-26 发布
15 浏览

程序员免费自学编程的12个网站-从现在开始提高自己!

正文开始很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至可以提供一些帮助,当我的团队需要解决一些bug的时候。现在,如果你想学编程的话,这12个网站可以帮助你,它们都提供了免费的课程供你学习,因此你无需担心费用的问题。1.Codecademy其中,Codecademy是最受欢迎的免费编程学习网站之一。事实上,已经有超过2400万人通过这家公司的教育模式学会了编程。Codecademy开设的课程有HTML&CSS,JavaScript,jQuery的,PHP,Python和Ruby。2.CourseraCoursera成立于2012年,如今已经成长为一个主要以营利为目的的技术教育公司,现提供来自119家机构的超过1000门课程。如果你想要获得证书,可能需要为一定的课程付费,这里也有一些来自不同大学的免费编程课程,如华盛顿大学,斯坦福大学,多伦多大学和范德比尔特大学等。3.edXedX是另一个领先的在线学习平台,重

程序员 2017-11-23 发布
AD 友情赞助