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

技术文章精选

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

最新文章

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

IT 网络系统/ 2020-02-07 14:18:40 / 浏览 3,000

内网穿透神器frp

在许多情况下,我们希望把内部的服务暴露到外网来使用,比如说: 1、在公司内网开发程序,要和微信联调; 2、想要随时随地登录家里的树莓派,使用上面的服务 在这些情况下,我们就会很迫切的希望有一个内网穿透服务,帮我们把内部的端口,暴露到外网来。

IT Python/ 2020-02-05 15:19:07 / 浏览 2,120

Python:一切皆对象

很多Python书籍和Python教程都会提到Python中一切皆对对象,但是这些教程往往不会深入解释这句话到底什么意思,这篇文章主要讨论下Python中一切皆对象这句话的深层含义。

IT 系统架构/ 2020-02-05 15:13:31 / 浏览 1,980

浅谈 Web 应用的内存优化

随着 Web 应用复杂程度越来越高,以及 NodeJS 大规模投入生产环境,许多 Web 应用都会长时间运行, JavaScript 的内存管理显得更为重要。 JavaScript 具备自动回收垃圾的机制, 执行环境会负责管理代码在执行环境过程中使用的内存,将某些不再被使用的的变量所占用的内存释放掉,正因如此,大多数情况我们在前端开发的时候,并不是那么关注我们的页面用了多少内存,是否合理,需不需要优化。 JavaScript 基础中有很多重要的知识点是和内存相关的,比如深拷贝和浅拷贝、闭包、原型、引用数据类型和引用传递等。

IT MySQL/ 2020-02-05 15:06:55 / 浏览 1,760

如何获取 MySQL innodb 的 B+tree 的高度

MySQL 的 innodb 引擎之所以使用 B+tree 来存储索引,就是想尽量减少数据查询时磁盘 IO 次数。树的高度直接影响了查询的性能。一般树的高度在 3~4 层较为适宜。数据库分表的目的也是为了控制树的高度。那么如何获取树的高度呢?下面使用一个示例来说明如何获取树的高度。​

IT 奋斗/ 2020-02-05 10:45:13 / 浏览 1,660

程序员职业生涯巡礼

最近杂七杂八写了一些东西,其实主线一直围绕了程序员职业生涯这个主题,也是我春节读书思考的一些成果。文章比较长,断断续续发在了 MacTalk 上,但总归不是一篇完整的东西。今天重新整理修订,形成了一篇完整的文章,题目就是:关于程序员职业生涯的八点感想。 说的是程序员,其实很多东西是相同的,如果你也在互联网行业,应该会有点帮助。

IT 用户研究/ 2020-02-05 10:44:35 / 浏览 2,220

淘宝用户增长的5+1个策略

用户增长是一件个性化非常强的事情,淘宝在增长中执行的诸多策略或许拿到其他场景就完全没有效果。但另一方面,这些策略背后的思考路径和执行过程中总结的经验,是有参考意义的,有机会给读者在日常增长工作中带来一些提示。所以,本文不会出现太多实现细节,更多关注在策略制定背景和设计逻辑上。 所以本文从我们对用户分层的定义开始,重点分享淘宝过去一段时间在“拉新”和“召回”两个方面的思考和经验。

IT 系统架构/ 2020-02-03 12:38:46 / 浏览 1,920

让 lua 运行时动态切换操作系统线程

最近我们在开发引擎时遇到一个和操作系统有关的问题,想了个巧妙地方法解决。我感觉挺有意思,值得记录一下。 在 ios 上,如果你的程序没能及时处理系统发过来的消息(比如触摸消息等),系统有机会判定你的程序出了问题,可能主动把进程杀掉。 完全自己编写的应用程序,固然可以把处理消息循环放在最高优先级。即使有大量耗时操作,也可以通过合理的安排代码,不让消息处理延后。但作为引擎,很难阻止使用者阻塞住主线程做一些耗时的操作。所以,通常我们会把窗口消息循环和业务逻辑分离,放到两个不同的线程中。这样,消息处理线程总能及时的处理系统消息。

IT 系统架构/ 2020-02-02 11:20:18 / 浏览 2,620

保障IDC安全:分布式HIDS集群架构设计

近年来,互联网上安全事件频发,企业信息安全越来越受到重视,而IDC服务器安全又是纵深防御体系中的重要一环。保障IDC安全,常用的是基于主机型入侵检测系统Host-based Intrusion Detection System,即HIDS。在HIDS面对几十万台甚至上百万台规模的IDC环境时,系统架构该如何设计呢?复杂的服务器环境,网络环境,巨大的数据量给我们带来了哪些技术挑战呢?

IT 网络系统/ 2020-02-02 10:55:04 / 浏览 2,940

直播/点播中HTTP Live Streaming(HLS)协议的简介与使用

HTTP Live Streaming(缩写是 HLS )是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。是苹果公司 QuickTime X 和 iPhone 软件系统的一部分。它的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8)playlist 文件,用于寻找可用的媒体流。

IT 网络系统/ 2020-02-01 20:00:49 / 浏览 2,820

你不在意的HTTPS证书吊销机制

《长安十二时辰》里的望楼系统由“传递系统+加密系统”组成,靖安司作为一个军事级别的机构,信息传递绝对是多重加密的。通传陆三是暗桩,导致信息传递系统泄密,这些问题如果发声在HTTPS通讯中,丢了密钥,会怎样?是不是也没法防范这个私钥被利用了?

IT 其他/ 2020-02-01 19:50:55 / 浏览 2,080

树莓派 Raspbian 家长控制

​功能说明 该脚本能够监控指定网络设备,如网络电视、机顶盒等,访问树莓派,不限服务(包括SMB, NFS等)。典型场景是机顶盒访问树莓派文件共享服务。 该脚本使网络设备只能在一段时间内,默认1小时,访问树莓派,之后冷却1小时,以防止过度访问。 该脚本需要经过需改,才可以部署到OpenWRT等依赖ash的网络设备中。

IT MySQL/ 2020-02-01 19:46:44 / 浏览 1,700

修改重置MySQL5.7得root登录密码

一台测试服务器,很久没有登录使用,忘记了mysql得root密码,经过搜索引擎一番查找,发现需要进行如下步骤做root密码重置。

IT 系统架构/ 2020-02-01 19:45:48 / 浏览 2,040

ECS 中的概念缺失

经过长时间的思考和实践,最近一个多月,我们的 ECS 框架做了较大的调整。其中一部分工作已经在前一篇消息发布订阅机制中介绍,另一部分工作其实开展的更早,但因为我想多沉淀一段时间再写。到本周基本基本改动完毕,可以总结一下了。 ECS 框架几乎只在游戏开发领域提出,我认为这主要是因为目前只有在游戏领域,周期性的大量对象的状态变换才是主流行为。而在其它人机交互领域,响应外部事件才是主流。这是为何 System 在游戏领域如此重要的原因。

IT 其他/ 2020-02-01 17:01:15 / 浏览 2,200

视频的容器与格式

视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。 视频格式是视频播放软件为了能够播放视频文件而赋予视频文件的一种识别符号。 视频格式一般有两个部分构成:一个是视频封装格式,一个是视频编码格式。 视频封装格式简单点来理解的话就是一个【容器】,这个【容器】里封装什么样的【编码格式】最后得到一个完整的视频。

IT 用户研究/ 2020-02-01 16:50:18 / 浏览 1,960

增长二三事

最近对增长有了一些新的思考,正好又听了Hola Group Growth负责人Daisy的一次分享,把一些心得体会汇总记录一下。

IT 系统运维/ 2020-02-01 16:49:42 / 浏览 2,180

centos查找大文件

查找大于200M的文件 find / -type f -size +200M 查看当前目录占磁盘空间 du -h --max-depth=1 目录按照占用空间大小排序 du -h --max-depth=2 | sort -n​

IT 系统运维/ 2020-02-01 16:45:03 / 浏览 2,260

游戏引擎中的资源生命期管理问题

最近我们开发中的游戏引擎在修理资源管理模块中的 bug 时,我提出了一些想法,希望可以简化资源对象的生命期管理。 其实这个模块已经被重构过几次了。我想理一下它的发展轨迹。 最开始,我们不想太考虑资源的生命期问题,全部都不释放。当然,谁都明白,这种策略只适合做 demo ,不可能用在产品中。 因为我们整个引擎的框架是用 lua 搭建,那么,最直接的想法就是利用 lua 自带的 gc 来回收那些不被引用的资源对象。我不太喜欢这个简单粗暴的方法。因为首先, gc 不会太及时,其次 gc 方法触发的时机很难控制,容易干扰正常的运行流程。图形显示模块是时间敏感的,如果因为资源释放占用了 cpu 的话,很容易变成肉眼可查的卡顿。

IT 系统架构/ 2020-02-01 16:44:33 / 浏览 2,260

资源文件的转换问题

我们上周在游戏引擎上面的工作中遇到一些 bug ,涉及到过去的一些设计问题。维持讨论了几天解决该问题的方案。今天终于把最终方案确定了下来,值得做一个记录。 bug 出在游戏资源文件的转换上面。 游戏里用到的资源通常需要一个导入资源库的过程,例如你的原始贴图是一个 png 文件,但是引擎需要的是对应运行平台的压缩格式,windows 上是 dxt ,手机上是 ktx 等等。这个过程,在 Unity 等商业引擎中,是放在资源导入流程中。 我们的引擎把这个转换过程放在虚拟文件系统这个层次。这个设计决策是因为,我感觉统一导入资源是个痛点,用的人通常需要等待导入过程。Unity 用了 cache server 来解决这个痛点,但我认为 cache server 也存在一些设计问题 ,这个会在后面再展开一次。