要不要再学学下面的文章?
写给开发人员的实用密码学(六)—— 对称密钥加密算法 (thiscute.world)
在密码学里面,最容易搞混的词估计就是「密码」了,cipher/password/passphrase 都可以被翻译成「密码」,需要注意下其中区别。
by @技术头条 2024-01-14 19:01 查看详情
nginx 防火墙模块开发总结 (www.addesp.com)
那段时间我的站点有时会打不开,起初以为是网络问题,后来越来越严重,进入后台才发现数据库 IO 拉满了。看了看 nginx 的日志才发现站点被疯扫,于是打算做点什么。

然后在 Github 上看了几个防火墙模块,要不然功能不全,要不然使用复杂,于是萌生了自己写模块的想法。
by @技术头条 2023-12-26 22:24 查看详情
apt 软件源格式解析 (www.addesp.com)
每次安装完 Ubuntu 的第一件事情就是给 apt 换源,而换源过程基本就是复制粘贴,今天突然发现自己复制粘贴这么久也不知道粘贴了什么,于是了解了一下并分享出来。总之就是一篇看了也没什么用的文章,了解一下而已。
by @技术头条 2023-12-11 22:55 查看详情
开源软件 FFmpeg 生成模型使用图片数据集 (soulteary.com)
本篇文章聊聊,成就了无数视频软件公司、无数在线视频网站、无数 CDN 云服务厂商的开源软件 [ffmpeg]。分享下如何使用它将各种视频或电影文件,转换成上万张图片数据集、壁纸集合,来让下一篇文章中的模型程序“有米下锅”,这个方法特别适合宫崎骏、新海诚这类“壁纸合集”类电影。
by @技术头条 2023-11-29 23:44 查看详情
写给开发人员的实用密码学(三)—— MAC 与密钥派生函数 KDF (thiscute.world)
我们都更喜欢使用密码来保护自己的数据而不是二进制的密钥,因为相比之下二进制密钥太难记忆了,字符形式的密码才是符合人类思维习惯的东西。

可对计算机而言就刚好相反了,现代密码学的很多算法都要求输入是一个大的数字,二进制的密钥就是这样一个大的数字。
by @技术头条 2023-11-06 23:05 查看详情
写给开发人员的实用密码学(二)—— 哈希函数 (thiscute.world)
更好的哈希函数可以使用这样的方案:它将第一个字节作为状态,然后转换状态(例如,将它乘以像 31 这样的素数),然后将下一个字节添加到状态,然后再次转换状态并添加下一个字节等。 这样的操作可以显着降低碰撞概率并产生更均匀的分布。
by @技术头条 2023-11-06 23:04 查看详情
写给开发人员的实用密码学(一)—— 概览 (thiscute.world)
从开发人员的角度理解密码学概念不需要你是一个厉害的数学家。 这个系列的文章将尽量以最浅显的方式教你应用密码学的基础知识,而且包含大量循序渐进的代码示例和实践练习——就像你学习 Web 开发、数据库或 APP 开发一样。
by @技术头条 2023-11-06 23:03 查看详情
开源与 “半开源” 之间的战争和软件的历史一样久远 (linux.cn)
你是否知道 macOS 曾经是开源的?确实,它曾经是。

macOS 的核心基于 Darwin,这是一种 Unix 操作系统。史蒂夫·乔布斯Steve Jobs 回归苹果公司时,引入了他的基于 Unix 的 NeXTStep 操作系统。到了 2000 年,苹果公司逐步放弃了他们的经典 Mac 操作系统,转而支持 macOS Darwin。除了来自 NeXTStep 的部分,Darwin 还大量借鉴了开源的 FreeBSD 和 Mach 操作系统的设计。
by @技术头条 2023-11-06 22:43 查看详情
一起针对中国某摄像头企业的超复杂恶意软件攻击分析 (paper.seebug.org)
本文披露了近期针对我国某摄像头公司的一起网络攻击活动,并对相关的攻击武器PureCrypter和PureLogs及其采用的技术和对抗手法进行了全面和深入的分析,包括基于所有类型、字段、属性、方法等的名称混淆、基于“spaghetti code”的控制流混淆、自定义的动态代理调用(隐藏类及方法)、基于“Protobuf”的数据结构封装等多种对抗技术的交叉运用,此外还分析了攻击中采用的多模块多阶段的套娃模式,包括10个具有层级关系的Loader及DLL模块等。同时我们还对追踪过程中发现的“黑雀”攻击现象进行了披露和分析,这些高效的黑吃黑手段给黑客产业链带来了更多的复杂性,也让网络秩序变得越发不安全。
by @技术头条 2023-10-30 23:42 查看详情
更精准的时延:使用软件时间戳和硬件时间戳 (colobu.com)
一般情况下,我们通过在应用层读取时间戳,计算两个时间戳的延时($t1 - t0$),就可以得到时延,就足够了。通过观察这个数据,我们可以看到网络的时延情况(latency)和抖动(jitter)。但是有时候,我们想知道物理网络传输网络的时延是多少,比如北京A机房到B机房的时延,如果通过应用层的时间戳来计算,误差就太大了。为什么呢?
by @技术头条 2023-10-24 23:54 查看详情
技术头条

有个朋友的朋友想做一个公益的事。因为出资的都是教育水平较高的精英人士,所以对项目的监控透明度要求比较高。于是这个朋友的朋友就想了,信息时代嘛,IT工具不是可以促进交流提升效率么?于是他对我说:我们想做个app,可以干这个这个这个……我打断他说,别着急,做软件很贵的,你不一定玩得起。


做个软件究竟有多贵?我们可以做一个非常粗略的估算。市场上定制开发软件的人工成本按一人月20,000人民币来算,平均每人天1,000人民币。根据《软件估算》提供的经验数据,随软件复杂度变化,在整个交付项目期间,平均每个程序员每天产出的代码量在2行到200行之间。如果以平均每天产出100行代码来算,则编写每行代码的成本是10元钱。

把软件写出来只是第一步。软件要放在某个环境上去运行的。服务器端的软件要部署在可靠的服务器上,要有可靠的网络连接。客户端的软件(比如一个app)要安装在使用者的电脑或手机上。软件要维护要升级要管理要排错的。有了一个软件,有了一台服务器,就得有掌握这个技能的人来管理它的。根据Oracle引用Enterprise Management Associates的数据,60%~70%的IT预算耗费在运营和维护上。于是我们可以大致估算到,加上运营和维护成本,一行代码的成本就会达到30元。

那么一个app会有多少行代码呢?当然也随复杂度不同会有很大变化,只能举两个例子作为参考。RapidFTR是一个用于“家庭跟踪和团聚”的Android应用。当战争、地震、海啸等灾害发生时,国际援助团队可以用这个应用来寻找失散的儿童。这个软件大约有34,000行代码。另一个Android应用是克林顿健康倡议给非洲国家开发的基层医疗物流管理软件,乡村医生可以用这个工具来管理他们的药品库存。这个软件的代码超过46,000行。换句话说,这两个目标很单纯、功能并不复杂的Android应用,拥有它们的成本都在百万人民币以上。

而且上面估算的还只是软件本身的开发、运营和维护成本。在IT的基础上调整组织机构、优化工作流程、创造高质量内容、市场传播推广……那需要的人财物力就更加难以估计了。更不用说,移动互联网本身是一个充满变化与创新的领域,犯错与试错是家常便饭。所以你看,想开发一个新软件,这是多么贵的事。

软件这么贵,是不是没钱的组织、尤其公益组织就注定享受不到科技带来的强大能力了?不是。其实有大量的软件工具已经存在,它们非常成熟,它们经过了无数用户的检验、能很好地完成它们想要完成的任务,而且它们非常便宜甚至免费。要做个网站吗?Ghost或者WordPress都可以。要点对点的传播?微信和QQ是蛮不错的工具。想收集很多人的观点和意见?金数据就是干这个的。发邮件期刊?可以考虑MailChimp。需要客户关系管理(CRM)?其实一个设计合理的Excel表单就可以做得很好。

所以,一个机构想要用IT技术提升能力,首先需要的是互联网思维,是设计能力。首先理解自己的目标用户,理解用户的整个体验,理解体验之中的困难与挑战,然后选择适当的工具来应对这些困难与挑战。当你把问题细化到一个具体的设计挑战,往往就能找到现成的工具来解决它。至于开发一个新软件这种又贵又费神的事情,还是能不做就不做吧。

本文转载于:http://gigix.thoughtworkers.org/2015/6/3/how-expensive-developing-software/

by @技术头条 2015-09-23 18:15