0%

一行中并排显示两图片,搜索了下,有说两张并排这么写的:

1
2
3
4
<figure class="half">
  <img src="http://xxx.jpg">
  <img src="http://yyy.jpg">
</figure>

试了下,在Hexo中并不好使,估计这个需要额外安装包支持。

想了下解决方案应该很简单,直接使用自带的表格功能实现即可,无需增加额外依赖:

工厂模式是一种常见设计模式,大多数资料会将其分为三种:简单工厂模式(Simple Factory),工厂模式(Factory Method)和抽象工厂模式(Abstract Factory)。按照《HeadFirst Design Pattern》的说法,Simple Factory其实不能称之为一种设计模式,因为它主要思想是把对象创建的功能隔离开来,也是工厂模式思想的基础。本文主要讨论工厂模式和抽象工厂模式的对比及不同应用场景,假设读者对两种模式已有基本了解。

9月中旬休假,选了一下休假目的地,主要以自然景观为主,开始想去稻城亚丁,但看了下景点平均海拔在4700米,想到之前在香格里拉3500米有点轻微高反的情形并考虑到旅途的休闲和舒适性,最终选择了青甘大环线。

记忆中只有儿时看过电视上放映《红楼梦》,尤其在暑期,四大名著循环放映,如果是西游记则百看不遍,如果看到红楼梦就换台,小时眼中的红楼梦只是一个娘了吧叽的纨绔子弟与一群小姐在大观园中每日嬉戏的故事。后来高中时得空看了原著,原著中诗词甚多,又是半文言,加上人物关系繁杂,看到一半终于还是弃了,从此再不愿碰。

卧室荧光吸顶灯是易耗品,自己动手更换启辉器和灯管是常规操作。百度和知乎了半天,发现带有“更换方法详解”之类的文章全是类似软文的屁话,文章写得臭长,关键信息一点没有。换个灯管是个非常简单的事情,不过还是图解下更换流程,供爱动手的小白参考。

stunnel简介

stunnel 是一个开源跨平台进行通信加密的软件。它可以对原生不支持加密通信的服务(如FTP, Telnet等)在上层提供加密功能,而无须修改这些服务的代码。

Selenium简介

Selenium 是一个浏览器自动测试框架,可以通过模拟各种浏览器行为完成各种测试任务。但它能做的远不止这些,一个更实用的功能是作网页内容爬取。

在贝叶斯推断和参数估计等相关文献中常见$P(X|Y)$与$P(X;Y)$两种不同的表示方法,常常令初学者感到困惑:参数$Y$和随机变量$X$到底是什么关系?二者有什么区别?

《人类简史》的作者在“宗教的法则”一章中对于宗教的出现和解释非常犀利,从成文来看,作者看起来应该像是一个无神论者。搜索引擎上也能看到许多关于基督教徒如何看待《人类简史》的搜索。此处引用一些原文中比较精彩的片段,梳理下宗教发展的轨迹。

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. — C. A. R. Hoare


The Law of Leaky Abstractions: All non-trivial abstractions, to some degree, are leaky. — Joel Spolsky


There are only two hard things in Computer Science: cache invalidation and naming things. — PHIL KARLTON

2021-06-20: 使用Hexo扩展的方式可以更简洁地定制页面,避免了本文实现的一些弊端。 Hexo添加自定义分类菜单项并定制页面布局(简洁版)

2020-07-22: 更新hexo-generator-category到v1.0.0后,对应的generator.js代码进行了修改。 2019-11-27: 更新NexT v7.5.0的customcategory.swig文件,与老版本v6.6.0不同。

实际工程中有时需要将同步方法包装在异步方法之中。比如一个类实现了异步接口,而实际实现可能是本地计算的同步操作,也可能是需要HTTP请求的异步操作。对于前者,如果实现中没有await关键字,编译器会提示该方法缺少await运算符,将以同步方式运行。将二者统一的解决方案是使用Task.FromResult将结果包装成一个已完成的Task返回。举例:

TCP为什么需要三次握手

简单答案:

  1. client与server需要交换各自的Initial Sequence Number (ISN),至少需要三次交换。
  2. 若采用两次握手,server可能会浪费资源为延迟到达的SYN包建立连接。

ISN交换至少需要三次

典型的TCP三次握手过程如下图(Computer Networking: A Top-Down Approach):

简介

面向对象软件设计中,如何使软件易读、易维护和灵活适应需求是一个永恒的话题。SOLID原则即为大家在概念上指明了我们应如何达到这些设计目标。相较于设计模式,SOLID是高层次的抽象思想指导,可以说具体的设计模式是SOLID原则的实现。

简介

C# 5引入了async/await异步编程模型,旨在进一步简化异步编程的难度,让异步执行的代码看起来像同步代码一样简洁和容易理解。但初学者往往会将此异步编程模型与多线程编程模型混淆,以致引起一些不必要的错误如死锁或性能损失。