编程

推荐2个网友自办的网络周刊 – 科技爱好者周刊 / 潮流周刊

科技爱好者周刊 内容科技相关,作者阮一峰 (Twitter @ruanyf)。每周精选一张图片。“本周话题”应该为作者原创写作内容。比如231期,讨论了Twitter裁员,其中用了Twitter用户数和员工数随着时间变化曲线,发现2014年后用户数量基本稳定在3亿左右,而员工数确翻了一倍左右,所以把员工数减少回2014年的人数应该是可以的。 另外收集了不少科技相关的网络内容并提供链接。比如231期介绍了63岁日本退休工程师Hiroyuki Ueda自学Swift,开发了“双重计算器”(Twin Cal)App。主要解决人脑记不住计算中间结果的问题。在AppStore看了一下,Twin-Calc卖3.99,同时有个免费版的T-Calc-Lite。 更多内容请看科技爱好者周刊。 潮流周刊 作者Tw93 (Twitter @HiTw93)。页面设计非常小清新。和科技爱好者周刊类似每期内容有:封面故事,技术相关,潮流开源,随便看看。105期里介绍的HyperUI.dev就非常好用,里面有很多例子用tailwind做出好看的Web UI元素的例子。 周刊链接 科技爱好者周刊 潮流周刊 本文链接

Javascript定时更新DOM例子,简单得一看就会

本文用一个简单的例子示范一下怎样用Javascript来定时更新网页里的DOM。DOM全程是Document Object Model,也就是HTML网页上的元素。使用Javascript能让原本静态的HTML动起来。 效果如下: Counter Demo 以下例子代码全部在一个HTML文件里,可以命名为updatedom_demo.html,内容如下: 保存后用浏览器打开就能看到动画网页。 本文链接

怎样用CDN加载和使用moment.js时区库做Javascript的时区转换?

在旧金山湾区时间与北京时间转换,用Javascript方便地实现时区转换例子一文中示范了怎样用moment.js做时间的时区转换的例子。例子里下载了moment.js和moment-timezone-with-data.js,如官方文档所说的,加载如下 那么能不能不下载,直接用CDN呢?也是可以的 那么之前的例子就变成如下 使用CDN就不再需要把两个js文件下载和html文件放一起,而加载地址改成CDN的URL。使用上和原来一样。

旧金山湾区时间与北京时间转换,用Javascript方便地实现时区转换例子

在当今这个服务全球化时代,时区转换是使用各种编程语言时经常遇到的问题。之前的这篇文章讲了Python实现时间在不同时区的换算,本文讲一下怎样用Javascript实现。多亏了moment.js这个库,时区转换实现非常直观方便,比Python的pytz好用点。Google出来排名前几名的文章感觉并不满意,所以在这总结分享一下,以便需要的时候很容易找到end to end能工作的例子。 从上面例子可以看到,真的非常简单,基本就是一个moment对象调用tz函数,参数为新时区的名字,就生成了表示新时区时间一个新的moment。可以用format打印出来来验证其准确性。 在Chrome浏览器验证 Javascript的好处就是有个浏览器就可以跑,不需要设置什么环境。验证上面代码可以打开moment.js的官网,打开developer tool的console, 注意,一定要在这个网站下打开developer tools,这样moment会在浏览器环境里,在其他网站下打开会找不到moment。 运行上面代码如下 已知湾区时间(-0700)比北京时间(0800)晚15小时,所以上面结果是正确的。moment(sftime)是创建一个copy,如果用sftime.tz(‘Asia/Shanghai’)就会改变sftime这个对象本身的内容,而我们想新建一个bjtime的对象存放北京时间。 建立一个HTML文件来运行代码 如果需要在本地建立一个HTML,可以把moment.js和moment-timezone-with-data.js下载下来,放在和将要创建的test_moment.html文件放一起。编辑test_moment.html如下: 在Chrome打开test_moment.html可以看到空白页面。打开developer -> Javascript Console可以看到结果

旧金山湾区时间与北京时间转换,用python实现时区转换例子

San Francisco Time ?? Beijing Time ?? 把一个时区的时间,比如湾区9:00am,转换成另一个时区的时间,比如北京/香港/新加坡时间,应该是很简单的问题。用Python做时区转换好像挺麻烦的,容易出错。Google出来的前几条结果都不是很让人满意,本文总结我测试过可靠可行不太复杂的方法,以及一些容易出错的地方。 先上可行的Python例子,把三藩(SF)湾区时间9am, 转换成对应的北京时间,用了datetime和pytz。先构造一个湾区时间的对象,然后转化成北京/香港/新加坡时间。 加上注解和debug信息。 可以看到建立的湾区时间时区为-0700而北京时间为0800,可以验证湾区和中国时差为15小时。 时区行话解释 全球标准时间用的是位于英国的格林威治时间(GMT, Greenwich Mean Time)。因为以前格林威治天文台是世界中心,本初子午线或者0度经线就定义为穿过它的经线。然后又有了一个叫世界协调时间的东西(UTC, Coordinated Universal Time)。这个和GMT基本一致,大概就是北京话和普通话的区别吧。北京在Greenwich的东边,时间领先GMT/UTC 8小时,所以叫东八区,代号0800。而湾区在格林威治的西边,时间滞后7个小时(美国国会通过了永久使用夏令时法案),所以叫西7区,代号-0700。而两地时差为7+9=15,北京时间比湾区时间领先15个小时。 同理,日本和韩国位于东9区,代号为0900,那么时间就比为与东八区的中国早1小时。 当地真实时间和约定标准时间 一个地方的真实时间只取决于太阳相对当地的位置,也就是取决于当地经度。但是为了方便,每个国家可以人为规定用什么时间。比如整个中国虽然跨了几个纬度,确人为规定了各地都使用北京时间。新加坡真实时间应该为0655,确规定使用0800,也许是和大中华区保持一致比较方便。 回到Python上,这也正是pytz包的一些坑的来源。pytz用的是地理意义上的真实时间,而人们真正使用的是当地法律约定的时间,这两者是有差别的。 Python datetime不设时区是什么时间? 如果新建一个datetime对象,不设时区的话,会是当地时间。 用epochconverter转换1656658800.0,正是湾区时间2022-07-01 00:00:00 如果replace了timezone,就把底下的timestamp变了,而不是保持timestamp而改变时间表示形式(日期,小时/分/秒)。所以replace(tzinfo=…)并不是做时区变换。而且注意下面例子里上海时间是0806,并不是0800,应该用了地理意义上的真实时间而不是法定时间。这个地理时间在生活中基本没用,这个pytz的坑之一。 参考 Python3中datetime时区转换介绍与踩坑 python datetime时区转换 技巧:用datetime模块处理时区转换,不要用time模块 将UTC、EST时区的时间转化成北京时间(python) pytz库时区的坑(转) The Solution…
Read more

Python Pathlib生存手册,几个短例子极速上手

Pathlib是Python里自带的处理OS路径的library,功能非常强大,可以代替原来的os.path。本文提供几个简单的例子供查询,帮您极速上手,引用到自己的python project里。 创建操作Path对象例子 可以用”/“直接得到下一层目录或文件的Path对象 Home Path对象例子 需要注意的是,Path constructor的参数不认识~。需要用Path.home()。 验证tilda不work 验证Path.home() work 当前目录例子 如果需要当前目录的对象可以用cwd函数或者.加resolve函数 遍历文件夹例子 也就是implement bash命令 用pathlib实现如下 外面函数python_find接受path string,里面的递归函数_python_find接受pathlib.Path object。用iterdir列出当前input path下的所有对象,先打印它们的路径,如果是目录,就继续调用递归函数_python_find打印下一层目录里面的内容。 Pathlib删除文件例子 删除文件 删除目录/文件夹 rmdir只能删除空的文件夹/目录,如果内部还有其他文件或目录会报错。 删除非空目录/文件夹 这个只能自己用上面两个函数用递归实现。这里我增加了显示被删除文件size的信息。 参考 一分钟学一个 Python 标准库之 Pathlib PathLib recursively remove directory? pathlib — Object-oriented filesystem paths

CSS 格子layout例子

1 2 3 4 5 6 7 CSS代码 HTML代码 padding是div内部内容和div格子上下左右边界的距离 display: grid 决定了内部div (“inner” class)从左到右排练,如果不用,每个div各占一行 grid-template-columns 决定了一行放几个内部div,和每个内部div宽度,可以是%也可以绝对距离 boarder用来debug,显示格子边界大小 用鼠标选中格子里两行,cmd+c,cmd+v 复制黏贴到编辑器里,出了还是一个一行,打横显示是浏览器的特效。

修复 wordpress 中文繁简转换插件的问题

给网站添加了WP Chinese Conversion,可以进行简体繁体转换了。 目前这个WP Chinese Conversion插件的版本是1.1.16,已经5年没更新了。PHP升级后有了些变化,于是这个插件就有了些error/warning。自己动手将就改了一下,修改都在wp-chinese-conversion.php,把error/warning fixed了。本文记录一下。 each function被新版PHP给deprecated了 把这用到each的代码,比如这个 改成 create_function也被PHP给deprecated了 把用到create_function的地方改成anonymous function,比如这段 改成 总结 修改这两function用到的地方后,就正常工作了。

PHP随手笔记 array和hashtable,打印,REPL,While Loop

自己运营wordpress网站,而wordpress是用PHP开发的,遇到问题就看看代码,所以时不时也得学点PHP,记点笔记。 PHP的array也是hashtable array的index是从0开始的连续的数字,而hashtable的index是任意东西。逻辑上确实可以用hashtable实现array。但是物理上一般array内存空间是连续的,不知道PHP怎么实现。以后可以看看。 打印 print_r($some_object)可以打印object,而echo $some_string只能打印string REPL 本地 online可以用replit.com。我的本地版本是8,需要用7,测试一个叫each的function,8已经淘汰掉这个function了。目前replit还是7,可以测试。 While Loop例子