CSS Grid 布局完全指南(图解 Grid 详细教程)
CSSGrid布局是CSS中最强大的布局系统。与flexbox的一维布局系统不同,CSSGrid布局是一个二维布局系统,也就意味着它可以同时处理列和行。通过将CSS规则应用于父元素(成为GridContainer网格容器)和其子元素(成为GridItems网格项),你就可以轻松使用Grid(网格)布局。如果你刚刚接触CSSGrid布局,那么我强烈建议你首先阅读《5分钟学会CSSGrid布局》这篇文章作为你的最简入门。当你对CSSGrid布局有了基本的认识之后,再来阅读这篇指南。简介CSSGrid(网格)布局(又称为“Grid(网格)”),是一个二维的基于网格的布局系统它的目标是完全改变我们基于网格的用户界面的布局方式。CSS一直用来布局我们的网页,但一直以来都存在这样或那样的问题。一开始我们用表格(table),然后是浮动(float),再是定位(postion)和内嵌块(inline-block),但是所有这些方法本质上都是只是hack而已,并且遗漏了很
[译] 如何禁用链接:从入门到放弃
有一天,我在工作中产生了关于如何禁用链接的思考。不知为何,去年我无意添加了一个「disabled」锚点样式。但有一个问题:你无法在HTML中真正禁用链接(拥有合法href属性)。更何况,你为什么要禁用它呢?链接是Web的基础。某种意义上,我的同事看起来并不打算接受这个事实,所以我开始思考如何真正实现它。我知道这将付出很多努力,所以我想证明为了这种非传统的交互并不值得付出努力和代码。但我担心一旦被证明这是可以实现的,他们将无视我的警告继续做类似的尝试。这还没有动摇我,不过我觉得我们可以开始看我的研究了。第一:不要这样做。一个被禁用的链接不能称作一个链接,它只是一段文本。如果需要禁用一个链接的话,你需要重新思考你的设计。Bootstrap有一个为锚点标签添加.disabled类的例子,我很讨厌这点。虽然他们至少提及了这个类只提供了一个禁用样式,但这仍然是一种误导。如果你真的想禁用一个链接,你需要做更多的工作而不是只是让它看起来被禁用了。万无一失的办法:移除href属性如果你决定无视我的警
安全人员发现基于 .NET 平台且使用开源项目的勒索软件
Zscaler的安全研究人员发现两款新的基于.NET平台的勒索软件,它们使用了开源项目以加密用户的文件。被称为Vortex和BUGWARE的两款勒索软件可实现在线攻击,例如通过发送包含恶意URL的垃圾邮件进行传播和攻击,它们都已被编译成微软中间语言(MSIL),并用'Confuser'工具对代码进行了混淆加密。Vortex勒索软件使用了AES-256位加密来对受害者机器中的图像、视频、音频、文档,以及其他潜在的重要数据文件进行加密。加密完成后,恶意软件会尝试通过创建注册表项以及名为“AESxWin”的注册表键来实现持久化。此外,安全人员还观察到恶意软件会删除受感染机器上的快照文件,以防止用户无需支付赎金即可恢复其数据。在分析恶意软件的commandandcontrol(C&C)通信时,安全研究人员观察到它会发送系统信息并请求用于加密和解密密钥的密码API。Vortex完全基于AESxWin,这是一个免费的加密和解密工具,代码托管在GitHub上。因此,只要用于加密的密码是已
IT人员的职业天花板在哪里?
和很多行业一样,IT行业从业者一般在35岁左右也会遇到职业天花板,似乎不可避免地出现不同大小、长短的瓶颈,有的可能是工作停滞不前,能力和业绩不再增长,有的可能是发生职业倦怠,效率和质量都在下降,让人深受困扰。很多IT人自嘲或被人戏谑为“码农”,希望能有所改观。这倒不是对农民的蔑视,而是说那种年复一年日复一日对着屏幕勾首猫腰的工作状态,就如同农民伯伯“面朝黄土背朝天,庄稼之人不得闲”。作为甲方,接触过不少IT公司的工程师,不得不说,很多程序员完成工作的水准和对自己的要求,被称作“码农”丝毫不过。以前听有些公司说,一般不会要培训机构出来的程序员。因为之所以会进入培训机构,主要原因是技能不达标。即使是计算机专业,大多数也是混出来的,连基本的数据算法、二进制八进制十六进制转换之类的知识都不懂,更不用提系统的编程语言。数学基础、逻辑思维不足,干活浮于表面,知其然而不知其所以然,发展后劲不足。这种说法虽然有些偏颇,但不是没有道理。培训机构,作为入行的手段,能够让程序员尽快上手。但若满足于通过培训速成的那点本领,就想事业有持续发展,那无疑是自欺欺人
IAS2017互联网架构峰会(实录)
“架构是什么?不同的领域、不同的视角会有不同的答案。如果加上了“互联网”三个字,那么她的内涵就更加丰富了。”这是ias官方的介绍词,本次活动很意外地在南京举行了,虽然相比其他城市的学术峰会来讲,参加的来宾不算多,但主讲嘉宾足够重量,也许这意味着南京互联网企业开始进入蓬勃发展期了。写在前面先聊聊我对这2天的总结吧:今年大部分的主讲嘉宾都分享服务治理、服务发现、云原生、微服务、熔断、异地多活、弹性扩容、压测、分布式日志收集、docker、k8s实践等。关于服务器治理,可能我们普遍以为springcloud使用率并不高,而事实上包括mobike等多个公司使用了springcloud。关于dubbo框架,大家都知道阿里停止更新好久了,可是,最近听说最近阿里也要重启该框架了,看来服务器治理真的要火。很多人可能会说前几年的技术我们都还没普及,一下子又来了一大堆新技术,不得不说,作为各个行业的领头军,他们的技术水平可能甩了我们很多小公司几千条街。但我觉得,对于我们,只需要从中汲取能应用到自己公司的技术即可。第一天可能是主办方对来的嘉宾有点
JeeSite|数据分页与翻页
翻页在各种项目中都会用到,在JeeSite开源项目中使用翻页也非常的容易,只要在配置文件中进行就可以就可以使用,系统的默认值为30页。配置文件在src\main\resources\jeesite.properties文件中,配置如下:page.pageSize=30但是这种配置并不能满足所有的分页要求,也就是说在不同的列表中每页的条数是不同的。如果在配置文件中修改分页条数,那么会影响到整个项目的分页,它是一个全局的配置参数,这样就很不方便了。JeeSite手册的分页在做项目的时候,由于使用JeeSite的默认页数无法满足项目的需求,因为不可能每个列表页都以30条记录作为一页,因此只能看手册。看手册又没有具体理解如何使用,JeeSite手册中最分页的描述如下://设置分页参数,则分页,如果不设置,则根据条件获取全部user.setPage(page);//执行分页查询page.setList(userDao.findPage(user));按照手册的方法简单的尝试了一下,但是没有效果,因此就只能查看分页的源码了。分页源码在
编译型语言、解释型语言、脚本语言之间的区别与联系
任何语言都必须翻译成机器语言,计算机才能运行高级语言编写的程序。翻译的方式有两种:一个是编译,一个是解释。1.编译型语言编译型语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译为机器语言的文件比如exe文件,以后要运行就不需要重新编译了,直接使用编译好的结果(exe文件)就好了,编译型语言的程序执行效率高。如:c/c++2.解释型语言解释型语言不需要编译,在运行程序的时候才翻译,比如解释型basic语言,专门有一个解释器能够直接执行basic程序,每个语言都是在执行的时候才翻译。解释型语言每执行一次就要翻译一次,效率比较低,但是跨平台性好。如:Java,c#,basic,Python3.脚本语言脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。与程序代码的关系:脚本也是一种语言,其同样由程序代码组成注:脚本语言一般都有相应
kafka简单配置测试
下载kafka下载地址:点击打开链接,不要下错了,src后缀的源码,我们需要的是另外一个,里面包含了kafka需要的.jar包,如果你对源码感兴趣可以下源码下来研究一下.安装kafka解压下载文件:tarxvfkafka_2.11-1.0.0.tar,进入解压目录cdkafka_2.11-1.0.0.tar启动zookeeperKafka使用zookeeper作为其分布式协调框架,很好的将消息生产、消息存储、消息消费的过程结合在一起。同时借助zookeeper,kafka能够生产者、消费者和broker在内的所以组件在无状态的情况下,建立起生产者和消费者的订阅关系,并实现生产者与消费者的负载均衡。因此我们在启动kafka前需要先启动zookeeper。在我们刚刚下载的kafka中已经打包了zookeeper,我们可以使用kafka打包好的zookeeper。当然我们也可以单独下载配置zookeeper,这里不再叙述。首先我们配置环境变量(我的环境ubuntu-12.04):
一些杂感杂想(二)
2014年拍摄于天津西青昨天谈了一下加班和团队的东西(见《一些杂感杂想》),今天继续这个话题再分享一些我个人的思考,以及天天写业务代码该怎么办的东西。我们对加班问题要充分重视起来,当程序员把加班当常态,公司把加班当成常态或理所当然的时候,确实值得思考。这不是对万恶的资本主义的控诉,而是对自我的深刻反省,如果经常加班,第一反应不应该是自我感动,而应该是警醒和扪心自问:你真的知道加班意味着什么吗?一般来说,我们既无法改善公司的管理,也不能招人帮自己干活,因此应该好好反思一下自己的工作效率。而且,经常加班的人,自己的工作效率有没有问题,心里应该都是有点B数的。这里我推荐大家看一篇文章:加班是如何毁掉你的职业生涯?天天写业务代码的焦虑现在很多人都很焦虑,焦虑什么?焦虑天天写业务代码还经常加班导致越上班技术越low,市场竞争力越来越低,还有很多人存在一年经验用很多年的情况。特别是现在Web前端行业,普遍焦虑,因为三四年的时间里,这个细分行业从无到有到飞速发展,各种框架和构建工具层出不穷,JS能做的事也越来越多,还没来得及学习
技术债务与程序员的信用
公众账号原文https://mp.weixin.qq.com/s?__biz=MzAxMTEyOTQ5OQ==&mid=2650610989&idx=1&sn=5c29ae4d3c2fce4f14c649f8fdda1da0&chksm=834c7ad9b43bf3cf45f47b8703a8b9c43391e0799769ab12353bba6f6a921b5de3faddf90127#rd
Spring Cloud微服务架构—服务注册与发现
SpringCloud简介SpringCloud是一个基于SpringBoot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。SpringCloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:SpringCloudConfig、SpringCloudNetflix、SpringCloud0CloudFoundry、SpringCloudAWS、SpringCloudSecurity、SpringCloudCommons、SpringCloudZookeeper、SpringCloudCLI等项目。微服务构架“微服务架构”在这几年非常的火热,以至于关于微服务架构相关的开源产品被反复的提及(比如:netflix、dubbo),SpringCloud也因Spring社区的强大知名度和影响力也被广大架构师与开发者备受关
Android/Linux I2C 驱动架构分析
#alps\kernel-3.18\include\linux\i2c.h/**表示一个i2c适配器,即挂接在i2c总线上的i2c控制器*i2c_adapteristhestructureusedtoidentifyaphysicali2cbusalong*withtheaccessalgorithmsnecessarytoaccessit.*/structi2c_adapter{structmodule*owner;unsignedintclass;/*classestoallowprobingfor*/conststructi2c_algorithm*algo;/*thealgorithmtoaccessthebus*/structdevicedev;/*theadapterdevice*/....};/**表示一个i2c设备驱动*/structi2c_driver{unsignedintclass;/*
MySQL 【去重留一】一条sql语句完成 思路总结
前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,这里分享下这段sql语句和思路。需求分析数据库中存在重复记录,删除保留其中一条(是否重复判断基准为多个字段)解决方案碰到这个需求的时候,心里大概是有思路的。最快想到的是可以通过一条sql语句来解决,无奈自己对于复杂sql语句的道行太浅,所以想找大佬帮忙。找人帮忙因为这个需求有点着急,所以最开始想到的是,可以找这方面的同行来解决,然后分享这个问题给@赵七七同学,结果这货随便百度了一下,就甩给我一个从未用过的sql语句,让我自己尝试,心里万匹那啥啥啥奔腾而过...自己百度找到了一条sql语句:DELETEFROMvitaeaWHERE(a.peopleId,a.seq)IN(SELECTpeopleId,seqFROMvitaeGROUPBYpeopleId,seqHAVINGcount(*)>1)ANDr
fish-ui 1.0.88 发布,Vue 2 的组件库
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。转载请注明:文章转载自开源中国社区[http://www.oschina.net]本文标题:fish-ui1.0.88发布,Vue2的组件库本文地址:https://www.oschina.net/news/91150/fish-ui-1-0-88-released
vue滑动切换路由思路
【TED】如何利用大数据做出正确的判断——SebastianWernickehttp://open.163.com/movie/2016/1/E/V/MBCBMP41R_MBCBN6SEV.html演讲者首先讲述了亚马逊和Netflix利用所谓的“大数据”对观众感兴趣的视频内容进行判断,然后制作影视作品的故事。亚马逊举办了一场比赛,通过做出的8集不...
AliOS Things v1.1.1新特性
摘要:今年杭州云栖大会上,AliOSThings正式发布,10/20在github上开源v1.1.0版本。经过AliOSThings团队及合作伙伴1个多月的努力,很高兴有些更新可以和大家分享。AliOSThingsv1.1.1包含了ESP32支持,AT框架,3BIN,JS运行环境,Testbed基础设施等新特性。今年杭州云栖大会上,AliOSThings正式发布,10月20号在github上开源v1.1.0版本。经过AliOSThings团队及合作伙伴1个多月的努力,很高兴有些更新可以和大家分享。AliOSThings回顾作为公众号的第一篇文章,在展开之前,先简单回顾一下AliOSThings的一些基本特性。AliOSThings的愿景是,通过云端一体,创造新的服务,提供更好,更丰富的用户体验,并在不同的行业应用中降低运营成本,提高效率。AliOSThings是一个LayerArchitecture,自下而上包含:BSP:芯片厂商的板级代码HAL:硬件抽象层Kernel:包含自研的Rhino内核,Yloo
js数组指南
1.创建数组vararray=newArray();vararray=newArray(size);//指定数组的长度vararray=newArray(item1,item2……itemN);//创建数组并赋值2.取值、赋值varitem=array[index];//获取指定元素的值array[index]=value;//为指定元素赋值3.添加新元素array.push(item1,item2……itemN);//将一个或多个元素加入数组,返回新数组的长度array.unshift(item1,item2……itemN);//将一个或多个元素加入到数组的开始位置,原有元素位置自动后移,返回新数组的长度array.splice(start,delCount,item1,item2……itemN);//从start的位置开始向后删除delCount个元素,然后从start的位置开始插入一个或多个新元素4.删除元素array.pop();//删除最后一个元素,并返回该元素array.shift();//
JSONP原理解析
前言我工作以来接触的第一个项目就是前后端分离的,前端静态文件有自己独立域名,通过接口来获取数据进行渲染等操作。跨域的方法不需要多言,随便一搜,就有很多,但最常用不外乎jsonp和CORS。jsonp着重于前端,也算是前端Hack技巧,CORS重于后端,服务端需要配置的地方会较多。这篇解析一下jsonp的实现原理。基本原理基本原理很容易说明白,在html页面中有一些标签是不受跨域限制的,比如img,script,link等。如果把我们需要的数据,放在一个js文件里面,这时,我们就能突破浏览器同源的限制。创建script标签《高性能JavaScript》中提到了动态脚本元素,作者写道:文件在该元素被添加到页面时开始下载。这种技术的重点在于:无论何时启动下载,文件的下载和执行过程不会阻塞页面其他进程。使用动态脚本节点下载文件时,返回的代码通常会立刻执行(除了Firefox和Oprea,它们会等待此前所有动态脚本节点执行完毕。)当脚本自执行时,这种机制运行正常。引用1保证了JSONP请求的时候不会阻塞主线程,引用2保证了JSONP代码
JavaScript 中的 CSS:基于组件的样式的未来
本文由伯乐在线-dimple11翻译,刘唱校稿。未经许可,禁止转载!英文出处:JonathanZ.White。欢迎加入翻译组。我们通过采用内联式CSS样式,可以获得Javascript中所有编程支持,它的好处就像CSS预处理器(变量、混入和函数)一样,而且也能解决CSS中的很多问题,比如全局命名空间和样式冲突。为了深入探索Javascript中写CSS解决的问题,可以看这个著名的演示:ReactJS中引入CSS。关于Aphrodite上的性能改进范例,你可以在KhanAcademy:Aphrodite上查到内联式CSS代码,如果想学习更多Javascript中CSS最佳实践的相关知识,可以查阅Airbnb的样式指南。另外,我们使用内联式Javascript样式来建立组件,处理我前一篇文章中介绍的一些设计基本原理:在你能掌握设计之前,必须先掌握设计的基本原理。一个启发式的例子我们从一个简单的例子入手:创建
基于 HTML5 Canvas 的简易 2D 3D 编辑器
基于HTML5Canvas的简易2D3D编辑器不管在任何领域,只要能让非程序员能通过拖拽来实现2D和3D的设计图就是很牛的,今天我们不需要3dMaxs等设计软件,直接用HT就能自己写出一个2D3D编辑器,实现这个功能我觉得成就感还是爆棚的,哈哈!只要你会想,能做,就能根据这个编辑器延展成bigthing!本例地址:http://www.hightopo.com/demo/drag-create-data/下面是实现效果图:我们首先将所有需要用到的json文件作为矢量图输出,矢量图的好处是组件上的图元缩放都不会失真,并且不再需要为Retina显示屏提供不同尺寸的图片,在devicePixelRatio多样化的移动时代,要实现完美的跨平台,矢量可能是的最低成本的解决方案。HT通过ht.Default.setImage函数来注册图片,可以是base64、jpg、png以及json格式的图片:ht.Default.setImage('edit','image