IT技术博客大学习 共学习 共进步

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT JavaScript/ 2016-04-20 13:15:30 / 浏览 1,780

谈谈 external 模式的打包

模块化在前端日新月异的工程化工具的推动下已经摆脱了前端模块加载器(SeaJS、RequireJS)的束缚,现在通常的方案是使用 browserify 或 webpack 来将模块化的文件打包,然后直接在浏览器端使用。 但是通常的打包策略是将整个项目打包成一个文件 bundle.js,默认情况下 bundle.js 中囊括了所有的依赖,包括第三方的从 node_modules 中加载的文件,这会造成 bundle.js 非常臃肿,而且在生产环境中不能很好的利用静态资源的缓存策略。这些打包技术在国外非常火,生产环境提供一个 bundle.js 的做法在国外的网络环境下毫无压力,但是国内的网络环境和国外的没法比,为了下载的性能还是建议分开打包。

IT JavaScript/ 2016-04-20 13:14:18 / 浏览 2,300

JavaScript 被忽视的细节

《JavaScript 权威指南》这本书从第四版开始,一直到第六版,每个版本我都逐字逐句读过几遍,然而每一遍下来的感受却完全不一样。上上周的周一,再次翻开了这本犀牛书,这一次我是带着批判精神和研究精神过来的,所以看的时候也写下了一些感受和笔记,都是些容易被忽略的点,部分内容犀牛书上不一定有提到。之前都发在微博上,稍微整理了一番,放在这里,方便阅读。

IT 算法/ 2016-04-17 17:48:52 / 浏览 1,300

排行榜奖金的发放方法

作为设计理想,玩家不会成为一个整体,他们之间有竞争。更高的名次有更高的奖励,所以不会轻易降分。 但事实上,由于玩家可以充分的沟通相互信任,不会陷入囚徒困境。竞争多花的钱而获得的高名次奖励,远远比不上交替名次而获得的系统额外发放。另外,在原来的低名次段,原本没有名次奖励的位置,也可以通过操纵排名而获益。

IT 编程语言/ 2016-04-05 14:57:08 / 浏览 2,580

谈谈Go语言的字符串设计

那天有用户向我反馈在使用 GoJieba 的过程中发现内存泄露的Bug。 具体现象就是这个测试代码 test.go 跑着跑着内存一直增长。 刚开始以为是代码里面的C语言部分内存没有正确释放导致的, 查了很久一直没有找到问题所在。 最后发现这个Bug非常白痴,是因为 C.CString 使用不当导致的。 在调用了 C.CString 之后需要手动释放内存。 这个Bug非常白痴,但是却反映了我之前对Go语言string理解不彻底的隐患。 才导致在我第一眼看到 C.CString 的时候, 就下意识的认为这个函数肯定没有动态申请新的内存, 和 C++ string::c_str() 一样,复用了内存。 所以也就肯定不需要手动释放。 当然这些只是『我以为』。

IT 网络系统/ 2016-04-05 14:54:35 / 浏览 2,740

三种解密 HTTPS 流量的方法介绍

Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全壁垒土崩瓦解。拿 HTTPS 来说,它的「内容加密、数据完整性、身份认证」三大安全保证,也会受到非法根证书、服务端配置错误、SSL 库漏洞、私钥被盗等等风险的影响。很多同学认为只要访问的网站地址前有一把小绿锁就绝对安全,其实不然。本文通过介绍三种最常规的 HTTPS 流量解密方法及原理,浅谈一下 HTTPS 的安全风险。

IT 信息和交互/ 2016-04-05 14:53:17 / 浏览 3,240

一起来看看淘宝首页的个性化

随着互联网技术以及软硬件技术的快速发展,网络已经成为人们生活中不可或缺的一部分,在长期的互联网冲浪中,网民对网络信息的辨识度日益增进,网络信息提供方也必须与时俱进,抓住用户的要害。 就拿我们淘宝的业务来看,几年前看到最多的是以商品为维度分类、分层;而现在,一切以人为中心,围绕用户做产品,帮助用户挖掘消费区间,帮助用户找到自己感兴趣的东西。淘宝首页就被拿出来开了一刀,作为淘宝的门户,它承载了万千入口,如何让用户直达兴趣之地?那自然少不了千人千面地展现内容。今年淘宝首页的改版,无处不散发个性化的味道。

IT Java/ 2016-04-05 13:55:49 / 浏览 4,060

JVM内存结构

前言 在Java语言开发过程中,out of memory错误是很常见的一种错误。对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生。在JAVA 8中内存结构有进行了改变,Metaspace替代了PermGen。

IT PHP/ 2016-04-05 13:52:36 / 浏览 3,560

PHP返回内容过长时被nginx截断的解决办法

背景 周日把博客的版本升级到最新,顺便又从新部署了nginx和PHP的环境。使用了PHP7。从新部署环境后发现原先发布博客文章时,编辑框不能正常显示。如图: 分析 查看了html源代码,发现html源代码被截断了。因此,导致网页内容显示不全。 之后的整个分析过程绕了一大圈,即是tcpdump,又是用tcpflow进行网络包分析。最后,还是从nginx的错误日志中发现了端倪。

IT Apache/ 2016-04-05 13:47:42 / 浏览 2,580

Nginx配置$request_uri与$uri变量的区别

$request_uri:这个变量就是HTTP头部的 path + query_string, 例如 /my/act?a=1。 $uri:这个变量对应到服务器上的一个文件(资源), 所以, 可能不等于 $uri, 因为可能被 rewrite 过. 例如浏览器请求 /my/act?a=1, 对应的资源(URI, $uri) 是 /dir/file.php, 当然, query_string 不属于 uri 的一部分。 由此可见, $request_uri 这个变量的名字是有歧义的, URI 并不包含 query_string, 但这个变量却包含。

IT MySQL/ 2016-04-05 10:30:08 / 浏览 2,780

MySQL锁问题最佳实践

最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供RDS的用户参考。

IT MySQL/ 2016-04-05 10:17:11 / 浏览 3,920

MySQL防范SQL注入风险

互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低、成本低、收益大,颇受各层次的黑客们所青睐。 一般来说,SQL注入的手法是利用各种机会将恶意SQL代码添加到程序参数中,并最终被服务器端执行,造成不良后果。

IT Android开发/ 2016-04-02 23:07:35 / 浏览 2,180

Android Studio使用过程中遇到的一些问题及解决方案

  由于之前的项目太复杂,主要是考虑到JNI在AS上编译不方便,还要考虑到项目进度,最近才从Eclipse转到AS,主要方案是AS中只引用jar包和so,JNI的编译还是在Eclipse中进行。这过程中遇到过很多问题,记录下来方便后续查阅,本文中遇到的所有问题都是在Windows系统下。

IT 发现/ 2016-04-02 22:59:49 / 浏览 1,820

使用 Elasticsearch 实现博客站内搜索

一直以来,为了优化本博客站内搜索效果和速度,我使用 bing 的 site: 站内搜索做为数据源,在服务端获取、解析、处理并缓存搜索结果,直接输出 HTML。这个方案唯一的问题是时效性难以保证,尽管我可以在发布和修改文章时主动告诉 bing,但它什么时候更新索引则完全不受我控制。 本着不折腾就浑身不自在的原则,我最终还是使用 Elasticsearch 搭建了自己的搜索服务。Elasticsearch 是一个基于 Lucene 构建的开源、分布式、RESTful 搜索引擎,很多大公司都在用,程序员的好伙伴 Github 的搜索也用的是它。本文记录我使用 Elasticsearch 搭建站内搜索的过程,目前支持中文分词、同义词、标题匹配优先、近期文章优先等常见策略。