Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

OpenSSL 凸显了技术单一面的风险

OpenSSL 凸显了技术单一面的风险

10年前,微软的Windows占据了桌面的绝对统治地位,计算机安全专家Dan Geer博 士为此发出警告,认为Windows的垄断构成了国家安全威胁。他公开了24页的报告《CyberInsecurity: The Cost of Monopoly》,报告公开当天他被所在的公司解雇。他在报告中建议应该打破微软的垄断,或者至少减少微软对消费者的锁定或选择的限制。10年后,微软 不再成为威胁,现在的威胁变成了OpenSSL。由于OpenSSL的开源和免费,它不知...
支持 Markdown 的网页 slides 工具总结

支持 Markdown 的网页 slides 工具总结

在注重效率的今天,很多人都不喜欢制作 PPT,特别是技术人员。流行的 PPT 制作工具往往需要用户关注太多内容无关的细节。而像 TeX 这样强大的系统又似乎太过于重量级了。现在越来越流行制作网页格式的 slides,并通过浏览器来播放和发布。 这样做有很多优点:包括跨平台(特别在移动端)、无需特殊软件支持、分享方便、轻量级等。可惜并不是所有人都精通网页编程技术,即便是最常见的 html 和 css,也常常造成 slides 编写人员的困扰。一款最理想的 s...
Heartbleed 漏洞万能扫描工具出炉

Heartbleed 漏洞万能扫描工具出炉

虽然主流网站宣布已经修复心脏出血(heartbleed)漏洞,但实际上对于企业和普通网民来说心脏出血漏洞的警报远未解除。根据FireEye 的报告,目前超过1.5亿从Google应用商店下载的Android应用依然存在OpenSSL心脏出血漏洞。甚至在Google修补Android操 作系统漏洞后,也并不能消除Android应用的心脏出血漏洞。面对无处不在的“心脏出血”漏洞,企业和个人用户迫切需要一个功能能够全面扫描网络环境中的各种...
Qt 5入门指南之Qt Quick编程示例

Qt 5入门指南之Qt Quick编程示例

使用Qt创建应用程序是十分简单的。考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了不同的方法。在开始之前,请确保你已经下载了QtSDK的商业版本或者开源版本,并且你也已经熟悉了Qt的开发工具。QtSDK提供了QtCreator集成开发环境使得开发Qt的应用程序十分简单。用户界面的选择除了直观上知道Qt是跨平台的,提供了包括线程,网络通信以及视频回放和网络摄像头等的跨平台抽象外,Qt提供了两种独立的方法创建用户界面。QtQuick模...
Java创建线程的三种方式及其对比

Java创建线程的三种方式及其对比

Java中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。使用Java线程池执行任务 http://www.linuxidc.com/Linux/2014-11/108794.htmpackage com.thre...
Python 字符串编解码研究

Python 字符串编解码研究

Python 2.X 在输入汉字和特殊字符的时候,经常遇到编码解码的问题,究其原因,编译器默认将文件当做ascii编码,因此要正确的实现编解码的转换,需要进行一些设置。首先让我们来了解几个概念。文件编码、字符串编码、系统编码代码中字符串的默认编码与代码文件本身的编码一致。举个例子,如果是在utf8的文件中,那么字符串就是utf8编码;如果是在gb2312的文件中,则其编码为gb2312。 但是,如果指明了字符串为unicode字符串,那么就是unicode...
构建Android的交叉编译器、用NDK编译移植

构建Android的交叉编译器、用NDK编译移植

在之前的文章中提到了用arm-none-linux-gnueabi-gcc交叉编译移植程序到Android平台上。也提到了,Android中没有glibc,所以arm-none-linux-gnueabi-gcc编译出来的程序需要在编译时指明连接器,并且将所需要的动态库拷贝到Android机器中。详见:http://www.linuxidc.com/Linux/2014-03/97499.htm所以为了能够更方便的使用交叉编译器移植我们所需要的程序或者库到...
C/C++随机数生成方法

C/C++随机数生成方法

一、随机数测试C++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-random integral number)。生成随机数时需要我们指定一个种子,如果在程序内循环,那么下一次生成随机数时调用上一次的结果作为种子。但如果分两次执行程序,那么由于种子相同,生成的“随机数”也是相同的。《C++ 设计新思维》 下载见 http://www.linuxidc.com/Linux/2014-07/1048...
C#中Interlocked不能保证的事情

C#中Interlocked不能保证的事情

Interlocked类MSDN中对他的定义为:为变量在多线程共享的情况下提供原子操作。很多人对于Interlocked的使用,仅限于Interlocked.Increment方法,这个方法在多线程环境下,总可以保证变量自增的正确性。那么原子方法的定义是什么呢?顾名思义,原子一般认为是不可再分的,所以原子方法就是不可再分的方法,即在一个原子操作中,处理器能够在一个指令传输中完成读值和写值, 也就是说,在原子操作完成之前,任何IO机制或处理器都不能对这个内存...
C#读写锁ReaderWriterLockSlim的使用

C#读写锁ReaderWriterLockSlim的使用

读写锁的概念很简单,允许多个线程同时获取读锁,但同一时间只允许一个线程获得写锁,因此也称作共享-独占锁。在C#中,推荐使用ReaderWriterLockSlim类来完成读写锁的功能。某些场合下,对一个对象的读取次数远远大于修改次数,如果只是简单的用lock方式加锁,则会影响读取的效率。而如果采用读写锁,则多个线程可以同时读取该对象,只有等到对象被写入锁占用的时候,才会阻塞。简单的说,当某个线程进入读取模式时,此时其他线程依然能进入读取模式,假设此时一个线...
<< 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 >>