本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 这是一道Prolog经典的练习题,中文翻译版来自阮一峰的文章<Prolog 语言入门教程>. 问题 Boddy 先生死于谋杀,现有六个嫌疑犯,每个人在不同的房间,每间房间各有一件可能的凶器,但不知道嫌疑犯.房间.凶器的对应关系.请根据下面的条件和线索,找出谁是凶手. 六个嫌疑犯是三男(George.John.Robert)三女(Barbara.Christine.Yolanda). 六个嫌疑犯分别待在六个房间…
本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 逻辑式编程语言极简实现(使用C#) - 2. 一道逻辑题:谁是凶手 第二天,好为人师的老明继续开讲他的私人课堂. "今天讲NMiniKanren的运行原理."老明敲了敲白板,开始涂画代码,"我们从一个喜闻乐见的例子开始." KRunner.PrintResult(KRunner.Run(null, (k, q) => { var x = k.Fresh(); var y =…
本文是本系列的完结篇.本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 逻辑式编程语言极简实现(使用C#) - 2. 一道逻辑题:谁是凶手 逻辑式编程语言极简实现(使用C#) - 3. 运行原理 下午,吃饱饭的老明和小皮,各拿着一杯刚买的咖啡回到会议室,开始了逻辑式编程语言的最后一课. 老明喝了一口咖啡,说:"你看咖啡机,是不是咖啡的列表." "啥?"小皮有点懵圈,"你说工厂的话还好理解,列表不太像." &qu…
相信很多朋友对于逻辑式编程语言,都有一种最熟悉的陌生人的感觉.一方面,平时在书籍.在资讯网站,偶尔能看到一些吹嘘逻辑式编程的话语.但另一方面,也没见过周围有人真正用到它(除了SQL). 遥记当时看<The Reasoned Schemer>(一本讲逻辑式编程语言的小人书),被最后两页的解释器实现惊艳到了.看似如此复杂的计算逻辑,其实现竟然这么简洁.不过碍于当时水平有限,也就囫囵吞枣般看了过去.后来有一天,不知何故脑子灵光一闪,把图遍历和流计算模式联系在一起,瞬间明白了<The Reaso…
ES 框架简介 ES 是一款 极简,灵活, 高性能,扩建性强 的php 框架. 未开源之前在商业公司 经历数年,数个高并发网站 实践使用! 框架结构 整个框架核心四个文件,所有文件加起来放在一起总行数不超过400 行  |--src //受保护代码文件夹  |--lib |--es.php //启动文件 |--controller.php //控制器文件 |--model.php //模型文件 |--view.php //视图引擎  |--controller //控制器业务文件  |--vie…
Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言 1. 编程语言的主要的种类 逻辑式语言..函数式语言...命令式语言 1 2. 逻辑式语言,,不必考虑实现过程而只需考虑定义和结果 1 3. 第五代语言 1 1. 编程语言的主要的种类 逻辑式语言..函数式语言...命令式语言 在FAQ3里说过,世界上有C和LISP两种编程语言,你现在学了C,以后学了C++.Java..NET  等等,也仍然只认识了半个世界.LISP和 Haskell构成了另外半个世 2. …
寒假持续摸鱼中~此为老早以前博客的重写,当时还是分开写的,这里汇总重写,正好复习一遍~ 春招我来了! 所有有意思的,一股脑先扔进收藏,然后再也不看哈哈,真是糟糕. 今日事,今日毕,说起来容易. 当时竟然不是用markdown写的! 当时使用var还需要解决必报的问题!而如今使用ES6的let,自带领域的感觉就是不一样! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF…
页面初始化 mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支持在mui.init方法中配置的功能包括:创建子页面.关闭页面.手势事件配置.预加载.下拉刷新.上拉加载. 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中.如下为打印当前页面URL…
1.前言 话说最近一段时间受疫情的影响,股市各种妖魔横行.本人作为一个入股市不满三年的小韭菜,就有幸见证了好几次历史,也是满心惊喜,就权当是接受资本市场的再教育了吧. 小韭菜的炒股方法其实很简单,这两年多来一直死守着一只股票,不满仓,也不空仓,逢低就买点,逢高就卖点.靠着这种守株待兔的笨方法,没有赚到大钱,但好在也不至于亏钱,目前的累计收益率是25.83%. 年初复工前窝在家,天天抱着个手机,实时看着股票行情,心情也跟着起飞下降,好不惬意:复工上班后,不能一直抱着手机看,突然还有点不习惯了. 怎…
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node/stream stream 概念 Node.js 诞生是为了解决 I/O 密集的 Web 性能问题,最常使用的两个模块就是文件系统和网络,而这两个模块都是 stream 的重度用户,stream 是 Node.js 从入门到进阶的必经之路 Node.js 对 stream 是这样解释的 A str…
简介 unstated是一个极简的状态管理组件 看它的简介:State so simple, it goes without saying 对比 对比redux: 更加灵活(相对的缺点是缺少规则,需要使用者的自觉) redux的状态是存放在一棵树内,采用严格的单向流 unstated的状态是用户自己定义,说白了就是object,可以放在一个组件的内,也可以放在多个组件内 针对React,一致的API redux必须编写reducer和action,通过dispatch(action)改变状态,它…
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node/duplex-and-transform 双工流就是同时实现了 Readable 和 Writable 的流,即可以作为上游生产数据,又可以作为下游消费数据,这样可以处于数据流动管道的中间部分,即 rs.pipe(rws1).pipe(rws2).pipe(rws3).pipe(ws); 在 No…
CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美中不足的是: SharpFont太大了,有上千行代码,且逻辑复杂难懂. SharpFont画出的字形精度有限,虽然也很高,但是确实有限.用OpenGL渲染出来后会发现边缘不是特别清晰. SharpFont对加粗.斜体.下划线.删除线如何支持,能否支持?完全不知道. Graphics+Font 最近我…
So,也许你觉得ES6让你视野大开,但是并不是性能也能跟得上~ 首先,让我们先来一个简单的性能测试: 数组去重 es5写法: function delSame(arr){ var n = []; ; i < arr.length; i++){ ) n.push(arr[i]); } return n; } es6极简写法: function es6DelSame(arr){ return Array.from(new Set(arr)) } 测试性能的方法当然是用console.time();函…
缘起 一个合格的可维护项目,必须要有足够的文档,因此一个项目开发到一定阶段后需要适当的编写文档.项目的类型多种多样,有许多项目属于内部项目,例如一个内部的开发引擎,或者一个本身就是面向开发者的项目. 本文考虑的是这种面向开发者的项目文档编写.通过本文,你将快速获得如下技能: 理解开发项目文档的基本要素 掌握编写有头有尾结构化文档的能力 获得1个开发项目文档编写的模版项目和现成工具 感受 在开始之前,我们先通过几个现成的例子,直观的感受一个面向开发者的项目,其专业的文档应该是什么样的.我们通过直接…
DeBug Python 代码的方式有很多种?比如: (1)设置断点 (2)print函数 (3)... 本文要介绍的是一个新开源的项目PySnooper ,只要给有疑问的代码加上装饰器,各种信息一目了然,找出错误也就非常简单. 项目地址:https://github.com/cool-RR/pysnooper 极简DeBug工具PySnooper  一般情况下,想要知道哪一行代码在运行.哪一行不运行.本地变量的值是多少时,大部分人会使用 print 函数,在关键部分打印某个或某组变量的值.形状…
写在前面 这篇我们对用户权限进行极简设计并保留其扩展性.首先很感谢大家的阅读,前面六章我带着大家快速入门了ASP.NET Core.ASP.NET Core的启动过程源码解析及配置文件的加载过程源码解析并引入依赖注入的概念.Git的快速入门.Dapper的快速入门.Vue的快速入门.不知道大伙掌握的怎么样了!如果你有兴趣的话可以加入我们的.NET Core实战项目群637326624跟更多的小伙伴共同进行交流下. 接下来我们就正式进入.NET Core实战项目之CMS的设计篇了.在设计篇呢,我们…
写在前面 上一篇文章中我带着大家进行了权限部分的极简设计,也仅仅是一个基本的权限设计.不过你完全可以基于这套权限系统设计你的更复杂的权限系统,当然更复杂的权限系统要根据你的业务来进行,因为任何脱离实际业务的权限设计都是耍流氓!今天这篇文章我们就对CMS系统的内容进行设计.同时下篇文章准备带着大家理解一下架构设计. 这几天我也想了很多,要不要把这个CMS做的尽可能完善,考虑的尽可能周到!想想还是算了,前面还是以极简为主,不然的话严重影响这个系列教程的进度,导致已经有很多朋友都留言要崔更了(这里非常…
Typora极简教程 ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档.” 1. 基本操作 1.1 内容目录 语法 [toc] 1.2 标题 语法 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 1.3 引用 语法 > 引用内容1 > 引用内容2 >> 引用内容3 效果 引用内容1 引用内容2…
看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-analysis/blob/master/underscore-1.8.3.js/src/underscore-1.8.3.js 一.架构的实现 1.1:架构 (function(){ var _={}; this._=_; }.call(this)); 1.2:引入exports判断,如果不支持exp…
有些话说在前头 因为公司产品业务重构且功能拆分组件化,往后会有很多的接口文档需要留存,所以急需一款文档管理系统.当时选型要求3点: 1.不能是云平台上的Saas服务,整个系统都要在自己公司部署维护(数据安全)2..NET平台开发(利于维护)3.开源(可按需重构) 大约三周前,在线上找了很久开源的文档管理系统但都不尽人意.(showDoc很好,但可惜不是.NET平台的,自个在公司大约有7个测试服务器资源(都是Windows Server),虽然有物理机权限可以自己随意创建虚拟机资源,但是考虑未来维…
MongoDB 极简实践入门 1. 为什么用MongoDB? 传统的计算机应用大多使用关系型数据库来存储数据,比如大家可能熟悉的MySql, Sqlite等等,它的特点是数据以表格(table)的形式储存起来的.数据库由一张张排列整齐的表格构成,就好像一个Excel表单一样,每个表格会有若干列,比如一个学生信息表,可能包含学号.姓名.性别.入学年份.高考成绩.籍贯等等.而表格的每一排,则是一个个学生的具体信息.在企业级应用和前互联网时代,关系型数据库几乎是不二选择.关系型数据库的特点是有整齐划一…
Asky极简架构 开源Asky极简架构.超轻量级.高并发.水平扩展.微服务架构 <Asky极简教程:零基础1小时学编程>开源教程 零基础入门,从零开始全程演示,如何开发一个大型互联网系统,开源教程 + 开源代码 + 开源解决方案 零基础1小时学完前3节后,可学会基本编程思路,后面的教程是在这基础上的逐步深入 每节教程学习时间30分钟左右,由浅入深,循序渐进,从 完全不懂编程 到 逐渐掌握编程技能 到 开发大型互联网系统 dnc简介 dnc = .NET Core.dotnet Core 简写…
原作者StevenSLXie; 原链接(https://github.com/StevenSLXie/Tutorials-for-Web-Developers/blob/master/MongoDB%20%E6%9E%81%E7%AE%80%E5%AE%9E%E8%B7%B5%E5%85%A5%E9%97%A8.md); MongoDB 极简实践入门 1. 为什么用MongoDB? 传统的计算机应用大多使用关系型数据库来存储数据,比如大家可能熟悉的MySql, Sqlite等等,它的特点是数据以…
前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不断的维护和拓展中,比如最近重构了dashboard,加入了全屏功能,新增了tabs-view等等.所以项目会越来越复杂,不太适合很多初用vue的同学来构建后台.所以就写了这个基础模板,它没有复杂的功能,只包含了一个后台需要最基础的东西.vueAdmin-template 主要是基于vue-cli w…
作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. 排序算法内容聚合 5. 多线程内容聚合 Nginx 极简教程 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. 示例Demo: https://github.com/dunwu/nginx-tutorial/tree/master/demos Demo目录中的示例模拟了工作…
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是有没想到的用法. Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性.如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发.作者简单概览了 30 段代码,它们都是平常非常实用的技巧,我们只要花几分钟就能从头到尾浏览一遍. 1. 重复元素判定 以…
极简Docker和Kubernetes发展史 https://www.cnblogs.com/chenqionghe/p/11454248.html 2013年 Docker项目开源 2013年,以AWS及OpenStack,以Cloud Foundry为代表的开源Pass项目,成了云计算领域的一股清流,pass提供了一种“应用托管”的能力.当时的虚假机和云计算已经是比较普遍的技术了,主流用法就是租一批AWS或者OpenStack的虚拟机,然后用脚本或者手工的方式在机器上部署应用Cloud Fo…
今天这篇文章的主题是:寄生. Jerry最近看到朋友圈里一位朋友分享的一张寄居蟹的照片,对于Jerry这种在内地长大的又很宅的人来说,没有机会看到寄居蟹,所以觉得很新鲜: 寄居蟹主要以螺壳为寄体,寄居的最大螺体直径可达15厘米以上.其外形介于虾和蟹之间,多数寄居于螺壳内. 另一种比较出名的寄生生物,就是Jerry小时候在电视上看到的<异形>,这种生物通过卵生的方式降生,成为下图这种俗名叫抱脸虫的二阶形态后,通过口器管将异形幼虫注入宿主体内,这样抱脸虫就完成了自己的使命,不多时便会死去. 异形幼…
前言 随着分布式架构微服务的兴起,DDD(领域驱动设计).CQRS(命令查询职责分离).EDA(事件驱动架构).ES(事件溯源)等概念也一并成为时下的火热概念,我也在早些时候阅读了一些大佬的分析文,学习相关概念,不过一直有种雾里看花.似懂非懂的感觉.经过一段时间的学习和研究大佬的代码后,自己设计实现了一套我消化理解后的代码.为了突出重点,避免受到大量实现细节的干扰,当然也是懒(这才是主要原因),其中的所有基础设施都使用了现成的库.所实现的研究成果也做成了傻瓜式一键体验(我对对着黑框框敲命令没什么…