我做了一个法律文库,这可能是最简洁、便捷查询法律条文的地方
🔥 废话少说
网站大概长下面那个样子,链接在此:https://www.justlaws.cn
💡 想法
经常在 b 站看罗老师的视频,偶尔看到有意思的案例的时候会去查阅相关的法条,然而手动百度法律条文并不是一件美事,期间可能会误入给钱才能继续阅读的百度文档、满屏广告排版混乱的奇葩网站甚至是某律所的广告页。多次尝试后,总结下来两个网站还是不错的,一个是全国人大的官网,另一个是相应法律的百度百科,然而就算直接在这两个网站找,也免不了一顿搜索,毕竟它们的内容不只是法律,这就显得十分不方便,至少不够优雅。直到上周末在 GitHub 上看到了一个关于宪法的项目,它把宪法单独收录到了一个网站中,于是就萌生了把所有法律收录到一个网站的想法。
🍔 准备工作
既然是个独立的项目,肯定需要一个亮眼的域名了。justlaws.cn 包含两个含义:
just 解释为正义的,法律当然是守护正义最有力的手段了
just 解释为仅仅,这是一个纯粹的只有法律的网站
买下域名,连夜申请了 ICP 备案,花了三天时间走完了流程。
在等待备案的过程中就开始开发了。正好借着这个项目的机会,尝试使用了 Vuepr ...
なんでもないや
上白石萌音
VuePress 2.0 中使用 Algolia DocSearch 文档搜索功能的配置
已经一个多月没有更新博客了,这段时间在学习 Spring Cloud 微服务开发,也有几周没更新 JustLaws 网站了,想起来还有一个搜索功能要增强,这次就来试试 Algolia DocSearch 吧!
主要流程
流程简单来说分为两步:
1. 创建 Algolia 索引
2. 在 VuePress 中配置 Algolia DocSearch
创建 Algolia 索引
官方提供了多种方式来创建 Algolia 索引,最简单的方式是提交网站的 URL 给 DocSearch 官方,DocSearch 团队会帮你创建索引,并将 apiKey 和 indexName 发送到你的邮箱。但是这一方式有一些限制,其中一条是你的网站必须是开源项目的技术文档或者技术博客,我们的法律文库显然不满足这个条件,所以我们需要自己手动创建索引。
环境配置
首先需要注册一个 Algolia 的账号,注册完成后来到控制台,系统会自动帮你创建好一个应用,可以将应用的地区改成香港,这样在搜索查询的时候延迟会低一些。接着需要手动创建一个索引,我们之后运行爬虫的结果会全部存储在这个索引中。
创建完索引后,来到 ...
7 Years
Once I was seven years old.
JustLaws 法律文库贡献指南
选择法律
进入全国人大网现行有效法律目录页面,挑选你想要收录的法律,记住法律的全名即可进入下一步,本文以《中华人民共和国种子法》为例。
获取原文
进入国家法律法规数据库,搜索法律原文。此时需要注意,搜索结果中可能包含多个版本,需要选择时效性为有效,公布日期为最新的版本。
点击进入阅读页面,选择 WPS 版本,点击下载。
获取代码
进入 JustLaws 仓库并 fork 到自己账号。git clone 自己的仓库到本地。
创建文件
推荐使用 VS Code 打开项目,后续操作快捷键以 VS Code 为例。在法律类型下创建法律名称的文件夹,例如种子法属于经济法,即在 economic 下创建 seed-law 文件夹,文件夹名称请百度该法律的英文对照,使用全小写字母,单词用 - 分隔,无需保留 the People's Republic of China。
在新创建的文件夹下创建名为 README.md 的文件。
注意:对于法律条文多余 200 条的法律需要创建多个 MarkDown 文件,其网页由多个页面组成,例如民法典,每一编都是一个 MarkDown 文件。而大部分的法 ...
Love Story
《Love Story》是一首由美国乡村音乐女歌手泰勒·斯威夫特(Taylor Swift)创作和演唱的乡村流行歌曲。
阻止文明倒塌:Jonathan Blow 在莫斯科 DevGAMM 上的演讲
本文为转载内容,来自作者:这样重这样轻
推荐访问原文地址:立即访问
编者按:
在 2019 年 5 月 17 号,莫斯科的 DevGAMM 上,Jonathan Blow 发表了一个题为『阻止文明倒塌』的长达一小时的奇怪演讲。我把这个演讲总结为下面这篇文字记录。
善意提醒:不懂编程不代表你我不能阅读一篇和计算机有关的演讲,并有所思考,只能跟风刷刷梗;另外,对于 Blow 的观点,作为成年人我们应该可以有自己的反思。
我个人对这个演讲的逻辑非常赞叹,但也认为他明显偏重了软件系统本身的问题,而对另一个甚至更根本的问题选择了视而不见。那就是当代效率提升过程中的真正瓶颈:人的协作。如果仔细观察软件,以及其他可以类比的当代文明复杂系统,大规模的人际协作中无法改进的沟通效率、责任分配、人性的不可管理,都让系统不可避免地显现为笨拙甚至荒谬的面貌。而抽象层级的提高,也绝不仅仅是软件的趋势而已,正如它所带来的问题也绝不仅是机器的问题。
如果你不知道 Blow 是谁:他是一个独立游戏设计师,《时空幻境》和《见证者》的作者,感兴趣可以听我对他的介绍评述电台关于游戏的信仰。
以下是正文。
阻止文明倒塌
乔 ...
基本计算器问题的双栈通用解法
题目
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。
整数除法仅保留整数部分。
示例 1:
输入:s = “(1+(4+5+2)-3)+(6+8)”
输出:23
示例 2:
输入:s = " 3+5 / 2 "
输出:5
说明
这一类题有多种变式,如 224. 基本计算器 中表达式只含有 +, - 和 (),227. 基本计算器 II 中含有 +, -, *, /,772. 基本计算器 III 中含有 +,-, *, / 以及 ()。本文介绍的双栈通用解法适用于以上所有题目。
算法流程
首先创建两个栈 nums 和 ops,分别存放表达式中的数字和操作符。
然后从前往后遍历表达式,对于遍历到的字符做分类讨论。
空格:跳过
(:加入到 ops 中,等待与之匹配的 )
):使用现有的 nums 和 ops 进行计算,直到遇到左边最近的一个左括号为止,计算结果放回到 nums
数字 : 从当前位置开始继续往后取,将整一个连续数字整体取出,加入 nums
运算符:加入到 ops 中。在加入之前先把栈内可以算的都算掉(只有「栈内运算符」比「当 ...
Spring Data Neo4j 开发记录
简介
由于课题涉及到了知识图谱,需要把企业制造资源信息以图的形式存储起来,因此打算采用 Neo4j 这个图数据库来实现。课题项目后端是使用 Spring Boot 开发的,Spring Data 中也恰好提供了 Neo4j 的 API。Sping Data Neo4j 的最新版本已经来到了 6.0+,而网上的相关教程大多都是 5.0 版本的,其中不免有许多版本差异,因此我主要参照官方文档进行开发,并且记录一下遇到的问题。
开发流程
节点实体类编写
Neo4j 中的一类节点对应 Java 语言中的一个类。
如下代码所示,是制造资源类型节点的实体映射类。
123456789101112131415161718192021@Node@Data@Builderpublic class ResourceType { @Id @GeneratedValue private UUID uuid; @Property private String name; @Property private String description; @Crea ...
岛屿类问题的通用解法、DFS 遍历框架
在 LeetCode 中,「岛屿问题」是一个系列问题,比如:
200. 岛屿数量 (Easy)
463. 岛屿的周长 (Easy)
695. 岛屿的最大面积 (Medium)
827. 最大人工岛 (Hard)
我们所熟悉的 DFS(深度优先搜索)问题通常是在树或者图结构上进行的。而我们今天要讨论的 DFS 问题,是在一种「网格」结构中进行的。岛屿问题是这类网格 DFS 问题的典型代表。网格结构遍历起来要比二叉树复杂一些,如果没有掌握一定的方法,DFS 代码容易写得冗长繁杂。
本文将以岛屿问题为例,展示网格类问题 DFS 通用思路,以及如何让代码变得简洁。
网格类问题的 DFS 遍历方法
网格问题的基本概念
我们首先明确一下岛屿问题中的网格结构是如何定义的,以方便我们后面的讨论。
网格问题是由 m × n 个小方格组成一个网格,每个小方格与其上下左右四个方格认为是相邻的,要在这样的网格上进行某种搜索。
岛屿问题是一类典型的网格问题。每个格子中的数字可能是 0 或者 1。我们把数字为 0 的格子看成海洋格子,数字为 1 的格子看成陆地格子,这样相邻的陆地格子就连接成一个岛屿。
在这 ...