韩磊@当下

分类:胡编

一份特别的生日礼物

我给自己五十岁生日的礼物是用Cursor+claude-3.5/3.7+deepseek+gpt 4o写了个blog系统,并且将基于WordPress的旧blog迁移过来。 整个过程用了大概不到5个小时,我几乎一行代码都没有写。大多数时间用于测试运行、得到(错误的或不够好的)结果、反馈给AI,再测试AI重写的代码。我顺手改了极少数代码,因为这样要比告诉AI要求再得到修改后的代码快得多。多数时候,我就像苛刻的甲方,不停让AI改这改那。 虽然这只是很小规模的编程实践,但AI表现出来的能力与专业度已经令我刮目相看。另一方面,它偶尔冒的错误也非常愚蠢。在这次小小编程实践中,这种愚蠢往往出现... 阅读全文 »

《程序员的7个创新秘诀》(The Creative Programmer)译者序

创造力早已是重要的科学课题。它不是巫术,也不是成功学,更加不是少数人才能拥有的天赋才能。几十年以来的研究表明,创造力可以通过后天努力获得,同时也与时间、空间及人的因素紧密相关。 每天通过写代码改变世界的程序员群体是最需要创造力的群体。可惜的是,过去许多年以来,教育界和产业界都致力于培养程序员的编程技能(包括工程技能)。对软技能的重视虽然已有体现,但将“创造力”作为独立话题和各种软硬技能的汇总点来讲述,还不多见。在这样的背景下,《程序员的7个创新秘诀》就尤其显得难能可贵。 这本书基于作者及其团队的研究成果,围绕创造力七大主题(技术知... 阅读全文 »

《整洁代码的艺术》译者序

这是一本讲述常识的书。 如果你已经有多年职业经验,读到书中内容,不免会觉得都是老生常谈。然而,常识之所以需要被一遍又一遍地普及,正是由于人们总以为自己已经掌握了常识。殊不知我们常常混淆“掌握”与“知道”,拿知道当掌握,不免一遍又一遍地违背常识、吃够苦头。 这是一本讲述编程领域常识的书。自从有软件以来,技术专才们对它的研究和实践产出了各种方法论和流派。最近十来年,“整洁代码”成为其中一支主要思想派别,也成了软件界的主流常识。罗伯特·C·马丁(鲍勃大叔)的“整洁”系列著作被奉为圭臬,拿知道当掌握的戏码又一次上演。我们继续违背常识,写着并不整洁的代码,吃够苦头。 ... 阅读全文 »

Clean Craftsmanship译者序

2021年2月,老朋友张春雨(侠少)在微博上给我发私信,问我有没有兴趣翻译Robert C. Martin(Uncle Bob)的新书。我和侠少平时联系不多,但常常收到他安排寄来的赠书。赠书收得多了,总觉得欠着人情,该用什么方式还一还才好。 这个“什么方式”,也许是几顿酒饭、几杯咖啡,但绝对不是翻译一本书。算起来,截至2020年,我已经有十年没做图书翻译工作。去年翻了一本小书,眼睛和腰椎颈椎都有点不舒服。一定赔本但不一定赚吆喝的事,还是不干为好。 侠少对我了解甚深,他只说了一句话,就成功说服我接下任务。他说,“这是(Bob)大叔的封山作。第一本和... 阅读全文 »

《Unix传奇》中“消失”的链接

我2020年翻译了Brian W. Kernighan的Unix: A History and a Memoir一书,中文版书名是《Unix传奇:历史与回忆》。原版中有一些网页链接,根据我国公开出版物相关规范,中文版删掉了这些链接。 我把这些“消失”的链接整理如下,供读者参考: P46 丹尼斯·里奇介绍肯·汤普森对电脑游戏的贡献的短文: www.bell-labs.com/usr/dmr/www/ken- games.html P61 杰拉德维护的网站 spinroot.com/pjw P70 贝尔实验室网站丹尼斯主页上他兄弟姐妹的谢... 阅读全文 »

桐先生午夜故事之报应

本市头号报纸的总编辑莫喻快要急疯了。 事情要从昨天说起。 昨天早上,我出了地铁口,像往常一样,在写字楼旁的咖啡档要一杯拿铁外带,顺便买一份日报。现今手机上什么消息都有,没几个人看报,除了摊派订阅那部分,卖不了多少。好在喉舌的作用还未被否定,每年有固定拨款下来,局面也算维持得下去。 到办公室坐下,打开纸杯盖,摊开报纸。头版显著位置,报道一位领导昨天参加的活动。 大概是没看清秘书写的讲稿,领导将“滇越铁路”误读成“镇越”铁路,闹了个笑话。其实这不算大事,但现场有人用手机录了像,又传到网上。很短时间就转发百万,搞得相关部门很尴尬。 报纸应该会装作不知道这些小插曲吧。我想着,一边看报道。 ... 阅读全文 »

桐先生午夜故事之对赌

我将瓶中深褐色的烈性啤酒倒进杯子,一厘米厚的泡沫刚好在杯口露头。雷琛跟我碰了碰杯,一饮而尽,对我说:“那天喝断片儿了,就记得你送我去酒店,谢谢啊。” “举手之劳,”我也干杯,“不过你这身膘是该减减了,司机、俩保安加上我,生拉硬拽才把你送进房间。” 那是两天前的事。 在一个商务应酬酒会上,我与坐在身边的雷琛攀谈起来。几杯威士忌喝下去,寒暄迅速演变为称兄道弟。忘了为什么话题抬杠,以酒量定胜负,结果把雷琛给喝倒了,满口胡话,问不出家里人电话号码。主人家还要招待其他客人,腾不开身。我叫了个车,送他去酒店开房休息。次日,雷琛起来后,打电话给我,说是要还房钱。几百块钱倒不要紧,这哥们还算有趣,值得交... 阅读全文 »

迁移Blog平台

实在受不了Community Server的弱智垃圾评论处理手段,因为它不开源,自己修改也很麻烦,所以决定迁移到Word Press。由于hanlei.name原来用的数据库服务器只对内网开放,故WP提供的直接迁移手段用不了。折腾半天后,终于找到近乎完美的解决方案: 1、用 Keyvan Nayyeri 编写的 Community Server 2.1 BlogML Converter ,格式导出CommunityServer的数据(BlogML格式)。过程很简单,按压缩包中的文档指示,把文件传到CS相应目录下,到后台访问SyndicationOptions.aspx(“RSS设置”),... 阅读全文 »

Flickr for LiveWriter和谐版

我一直用微软的Windows Live Writer写Blog。最近,由于大家知道的原因,Flickr!图片不能访问,所以LiveWriter的Flickr!引用插件也运行不正常。 后来装了伊朗人的 Firefox插件 ,在Firefox里面倒是可以看到图片,但LiveWriter还是用不了Flickr的图片。我查看了Firefox插件的代码,对照里面给出的替换URL,照葫芦画瓢修改Flickr for LiveWriter插件的代码。没花什么功夫,就简单粗暴替换了一下URL地址。方法虽然烂,能用就行。 如果你也用LiveWriter写Blog,并且需要在LiveWriter里面引用Fli... 阅读全文 »

《Beginning C# Objects中文版》勘误

有热心读者在Dearbook上贴出这本书中的一些错误,我一一作了回复,整理转贴如下: 对于使用C#的OO出学者来说,这确实是难得的好书。我是抱着重新梳理一下OO知识的心态来看的,虽然到目前(刚看完第五章)还没遇到什么特别精彩的文字,但是层层推进的写作风格和出色的翻译还是把该讲到的知识点都讲到了,而且还对易混淆的地方做了重点解释,比如override和overload。   但是今天看书的过程并不是太愉快,因为发现了几处比较严重的错误(严重=颠倒了事实,对初学者很不利),在这里贴出来,有些也可能是我理解错了,还请译者和读者甄别:      1.P59,正数第8行    原文: &... 阅读全文 »

C# FAQ:关于泛型

(本文来自 Microsoft C# Team的FAQ Blog 。我会尽量跟踪这个站点,并不断增补内容。) Q: C#泛型与C++ templates相比如何? A: 这个问题相当复杂。 Anders曾在一篇 访问 中提到这个话题。 需要说明的是,泛型和templates的目的并不一样。有些工作templates做起来比泛型好,反之亦然。 模型(Model) C++ templates使用编译时模型。当在C++程序中使用templates时,如同有一个微宏处理器在起作用一般。 C#泛型不只是编译器的一个特性,也是运行时环境的特性。类似List&l... 阅读全文 »

设置TextBox的PasswordChar属性

if (ckbShowPassword.Checked){ tbPassword.PasswordChar='\0'; } else{ tbPassword.PasswordChar='*'; } 用tbPassword.PasswordChar=' ';是不行的。其实char类型的初始值就是'\0',在这里不过是还其本来面目罢了。 阅读全文 »

.Text简单客户端:架构草案

设置部分:设置WebService URL、UserName、Password。Password应该做加密。暂时不支持Proxy。目前本地Username/Password和远端一样,但在后台应预留未来扩展空间。现在只支持单个blog。 本地登录成功后,自动登录远端WebService,获取相应的Blog信息、Category信息。具体流程: Login Locally->Login WebService->Get Blog Infomation DataSet->Get Category List DataSet->Display post interfa... 阅读全文 »

.Text简单客户端进度

基本完成WebService部分。明天做客户端部分。比较烦人的是如果用.NET做,则客户端机器必须安装有.NET Framework SDK。不过想到这东西也就是自己用,就无所谓了。嘿嘿。 今天来学院的专家是北大外语学院院长刘曙雄教授。虽然出了一点小问题(笔记本电脑插了个没开的电源),后来还是比较顺利地进行了整个过程。 也许月半说得对,我追求的尽善尽美,真的别人不会在意。但是,如果只有别人在意的事才去做的话,人活得会不会太累呢? 阅读全文 »

.Text简单客户端设想

.Text支持用metaBlogAPI或者WebService做客户端。不过前者只有英文版软件可用(如wBloggar),而且似乎不大灵光,后者则太过简单,连Category都不支持。所以打算自己做一个简单的、第一版只支持新增Post的客户端。大体结构如下—— DATABASE | .TEXT STORED PROCEDURE (我的意思是.Text提供的SQL Server过程) ... 阅读全文 »

资源库系统

前两天开始写东方研究资源库的东西,感觉不错。特别是用Microsoft Application Block来做数据库访问,方便极了。我自己写了一个连接字符串访问方法,这下更方便啦。 打算这个星期之内完成。预计要注意的地方: 1、资源文件的上传下载管理。现在的想法是把二进制内容放在数据库,不过大尺寸的文件怎么办呢?是否应该放在硬盘目录中?再考虑。 2、缩略图。是否应该生成缩略图?对于图片当然这样会比较好,但是就复杂一些了。 阅读全文 »

听力教学项目重构

从昨天开始用ASP.NET重构之前用Delphi做的听力远程教学系统,目前为止进度一般。今天完成了基于页面的权限控制和用户登录部分。根据项目需求,没有做成完整的权限控制,仅简单在页面上放置一个自定义的权限检查控件,根据用户角色决定是否让访问。如果权限不对就回到访问来源页。部分代码—— public class PageAccessControl : System.Web.UI.UserControl { private void Page_Load(object sender, System.EventArgs e) { String clientRole=S... 阅读全文 »

Google from VS.NET?

看看这里,满有意思的一篇文章: http://msdn.microsoft.com/msdnmag/issues/03/11/Bugslayer/default.aspx 阅读全文 »

.TEXT居然不能在随笔编辑界面贴图!

本来它用FTB控件,是支持上传贴图的,可是因为.TEXT接管了所有请求,把对上传图片aspx的请求转给default.aspx了。害得我搞了半天都不行,原来……真是有够恶心啊。改天得修理修理,没有贴图太烦人啦。 阅读全文 »

这个看起来不错

About FxCop FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses reflection, MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects in the following areas: naming conventions... 阅读全文 »

兵器谱之Application Block

其实有很多工具被我们忽略了。例如这个早已出现的Application Block,是微软出的一个.NET Helper工具包,包括一个数据库工具和一个异常处理工具。 数据库工具 :执行SQL命令、存储过程并返回DataReader或DataSet或不返回; #异常处理工具 :处理、跟踪、记录异常。 阅读全文 »

About IBS Portal

IBS Portal真是经典的范例,实在值得好好研究。看看这两个Method: //********************************************************************* // // PortalSecurity.IsInRole() Method // // The IsInRole method enables developers to easily check the role // status of the curr... 阅读全文 »

如何在ASP.NET中获得JavaScript弹出窗口Yes/No值

The sample code?is on the most frequently asked query on "How to get the confirmation of Yes/No from a javascript pop up and display the value on the page using ASP.NET"? Create a webpage main.aspx Drag and drop a?hidden control and <asp:button> control on the web form. Step 1. ... 阅读全文 »