最新 | 最热门 | 最高评价

+0  记一次关于系统性能的有趣讨论

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年09月04日 10:29 | 点击: 1145 | 展开摘要
有个同事问我:"你开发的分布式数据库系统, 如何避免 scan 扫描操作返回了 pending 事务状态的数据?"

我说:"把数据扫描出来, 然后逐个判断过滤掉 pending 状态的数据."

我感到奇怪, 对于他的问题, 解决方案非常显然啊. 解决方案非常直观, 兵来将挡水来土掩, 我相信他也能想到, 不想要的数据当然要剔除掉, 否则呢? 那么, 他的问题的点在哪?

没错, 他接着问了:"我 scan 的时候只想返回 key, 但是, 要判断状态, 是不是还得去读取

查看全文: http://www.udpwork.com/item/18148.html

+0  内存对齐问题和编译器优化

Tag: 技术
云风 发于 2021年08月24日 15:43 | 点击: 590 | 展开摘要
昨天在公司内部的“不作不死”(程序员)群里,有同学贴了个知乎上的帖子 。表示这个问题居然关闭 gcc 的 builtin-memset 就解决了,感觉很玄学。

我说,这个感觉才是对的。关于文章中表达的 “添加编译选项-no-builtin-memset后,一切就正常了。然后大家都如释重负,不但解决了问题,又学到的新知识。” ,我认为这“如释重负”对于程序员来说才是种不正常的感觉,正常应该是“更加困扰”了才对呀。

到底是怎么回事,文章线索不全,无法判断。不过我直觉上感觉和我

查看全文: http://www.udpwork.com/item/18119.html

+0  程序设计核心原则: 直观

Tag: IT技术和评论 | 算法
ideawu 发于 2021年08月07日 09:41 | 点击: 361 | 展开摘要
好的代码应该是直观的, 简单的. 直观就是"所思就所写", 想的是什么样就要把代码写成什么样子, 不要七拐八绕.

例如, 在做结构设计和流程设计时, 我们分析出某个功能流程应该这样做:

先做步骤1, 然后做步骤2.

什么是程序设计? 程序设计就是流程, 是串行化, 是先后顺序. 所以, 文档设计完毕之后, 必须写下这样的代码:

step1();
step2();

没错, 就是非常直观的两个函数调用语句, 一眼就能看出有先后顺序, 先 1 后 2. 但是, 初学者往往

查看全文: http://www.udpwork.com/item/18115.html

+0  程序员的必备品质

Tag: IT技术和评论
ideawu 发于 2021年07月27日 21:31 | 点击: 454 | 展开摘要
1. 判断力

在开发复杂系统时, 有判断力(决断力), 懂得去选择简单正确的架构和方案, 先把系统做出来. 大部分的程序员并没有这种思考决断能力. 如果让他们自己做决策, 他们会陷入思维混乱, 面对多个选项时优柔寡断. 几乎每一次内心将要下决断, 都会被"性能优化"思想给驳回.

2. 持续改进能力

虽然大部分程序员没有开发一个完整系统的能力, 但是, 仅仅用最简单的方案把系统做出来, 还不是终点. 只要方案足够简洁, 第一版一般能满足短期需求, 也许不能满足. 但业务的

查看全文: http://www.udpwork.com/item/17980.html

+0  复杂软件系统开发的第一原则: KISS

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年07月23日 21:44 | 点击: 647 | 展开摘要
俗话说:

Keep It Simple, Stupid!

由于大部分新手程序员在从学生转换成为工程师之前, 都经过所谓的"算法"编程训练, 特别是不少人还主动进行大量的"刷题"行为, 因此, 对"性能"的追求被潜移默化地植入了所有程序员的基因, 这就造成了程序员往往把细节上的所谓性能优化放到第一优先的位置.

这种片面追求细节性能, 从而缺少大局观的思维, 其实是非常错误的. 比如 C++ 程序员, 几乎把性能优化等同于减少内存拷贝和无锁(lock free), 认为内存

查看全文: http://www.udpwork.com/item/17983.html

+0  ANSI escape code 及 Lua 封装

Tag: 技术
云风 发于 2021年05月20日 17:05 | 点击: 767 | 展开摘要
这两天想给一个想法做个简单的原型,因为涉及人机交互,需要在屏幕上绘制一些简单的交互元素。当然,现在有很多工具可供利用。过去遇到这种事情,我会尝试用已有的各种开源游戏引擎(我尤其推荐 PICO-8),或是直接在浏览器中用 css/javascript 写等等。

最近几年我玩了大量 RogueLike ,想尝试一下在 console 下用 ascii 字符来拼凑画面。这很有趣,能让我回忆起小时候 Apple ][ 上花掉的大把时光。同时我想用 Lua 来做开发,却不想引入 nc

查看全文: http://www.udpwork.com/item/17507.html

+0  ZSH 自动读取 macOS 系统代理配置并设置环境变量

Tag: 技术向 | macOS | zsh | oh-my-zsh
skk 发于 2020年12月07日 10:47 | 点击: 432 | 展开摘要
和其它 Linux 的 DE 一样,macOS 也支持在「系统偏好设置」中设置 HTTP 代理、HTTPS 代理,但是 macOS 并不会在终端(Terminal、iTerm)的 shell 中自动生效系统代理配置。为了方便日常使用,我决定好好研究一下 macOS 的系统代理。
macOS 系统代理的行为
和 Linux 和 Windows 只有一种系统代理配置不同,macOS 为每一种网络设备(Wi-Fi、Ethernet、Bluetooth PAN 等)维护了独立的网络配

查看全文: http://www.udpwork.com/item/17945.html

+0  USTC Hackergame 2020(中科大信安赛)write up

Tag: 技术向 | CTF | Hackergame
skk 发于 2020年11月07日 06:00 | 点击: 501 | 展开摘要
作为一只 CS 零基础、信安零基础、CTF 零基础的菜狐狐,苏卡卡今年又来参加 USTC Hackergame 啦!由于一边做题一边总结思路(指写 Write Up),所以苏卡卡应该是第一个发布非官方的 USTC Hackergame 2020 Write Up 的吧(嘿嘿)。
题图来自 USTC Hackergame 2019「Happy LUG」
签到题

只要提取 1 个 flag 就好啦!可是,为什么这个反人类的 form-control 的步长竟然是 0.00001

查看全文: http://www.udpwork.com/item/17947.html

+0  Bilibili 2020「1024 程序员节」CTF Write Up

Tag: 技术向 | CTF | Bilibili
skk 发于 2020年10月25日 17:44 | 点击: 373 | 展开摘要
周六不放假休息,还在这加班搞 CTF?
10 月 24 日不睡觉、凌晨两点钟我还在水群,结果在 USTC@LUG 的群里看见有人在打 Bilibili 的 CTF。我刚刚好一年(指 370 天)没有打过 CTF 了(上一次打正式的 CTF 还是去年参加的 USTC Hackergame 2019),所以想着来玩玩。虽然 CTF 结束之前不应该分享和公开 Write Up 和题解,不过 Bilibili 这 CTF 既然这么离谱,那我也没必要按照常理出牌。
本文更新于 2020

查看全文: http://www.udpwork.com/item/17948.html

+0  从 Google Analytics 的统计代码说起 —— 谈谈 script 标签的 async 和 defer 属性

Tag: 技术向 | Chrome | JavaScript | 异步 | Firefox | 浏览器
skk 发于 2020年10月13日 17:25 | 点击: 398 | 展开摘要
之前我在「天下武功,唯快不破 —— 我是这样优化博客的」一文中提到「对于大部分浏览器来说,确保 JS 异步加载和执行的做法其实是在操作 DOM 动态插入 <script async>」,但是并没有给出详细原因。这一次我以 Google Analytics 的统计代码为引子,详细讲讲 <script> 的 async 和 defer 属性、以及它们背后的故事。
拆开 Google Analytic 的统计代码
现在 Google 推出了 Google T

查看全文: http://www.udpwork.com/item/17949.html

+0  再快一点,再快一点 —— 优化博客白屏时间的实践

Tag: 技术向 | 前端性能优化 | CSS
skk 发于 2020年10月03日 16:40 | 点击: 322 | 展开摘要
两个多月以前,我写了一篇文章 介绍我是如何优化我的博客的,但是我对于博客的白屏时间仍然不满意。过去一个月我在博客上进行了一系列优化实践,终于成功将博客的白屏时间减少了将近 50%,这篇文章就来记录优化的过程和方案。
确定和分析白屏时间
First Paint 和 First Contentful Paint 是衡量白屏时间的重要指标。Google Chrome 团队提供了专门的库 web-vitals 用于在浏览器中衡量这些指标。直接在本地开发环境中引入该库:

<sc

查看全文: http://www.udpwork.com/item/17950.html

+0  我就感觉到快 —— zsh 和 oh my zsh 冷启动速度优化

Tag: 技术向 | lazyload | macOS | zsh | oh-my-zsh | bash
skk 发于 2020年08月10日 11:59 | 点击: 374 | 展开摘要
不论是在 WSL、Linux 还是 macOS 上,强大的 zsh 一直是我的不二法宝,而 oh my zsh 自然成了最趁手的瑞士军刀,我自己还编写了数个 oh my zsh 插件和主题。直到有一天我突然发现:见鬼,为什么开个 iTerm2 的 Tab 要等上好几秒钟?
zsh 启动耗时测量
首先,我们需要一个客观衡量 zsh 启动速度的标准,而使用 macOS 和众多 Linux 发行版中自带的 time 可以轻松计算任何命令的执行用时,包括 shell:

$ /usr

查看全文: http://www.udpwork.com/item/17952.html
|<<<1234567>>>| 一共62页, 737条记录