notes
notes copied to clipboard
个人笔记
### 背景 openssl与curl两者往往是配套使用的,比如为了使用 curl 访问 https。 但是在安装时,往往有点蛋痛。这里大致记录下,备忘。 测试组合版本号如下 **curl version: 7.64.1 openssl version: 1.1.1b** ### 步骤 1. 首先干掉可能的干扰项 (ssl lib 等, 根据自己安装情况,自行补充) ```shell sudo yum remove libssl-dev openssl-devel libcurl-devel curl-devel...
### 背景 表面看起来,好像 `and` 与 `&&`, `or` 与 `||` 是可以互相替代的。 然而,事实其实并非如此。 ```php $a = true and false; $b = true && false; ``` 上面的例子,`$a` 会得到 `true` 值。而 `$b` 才是 `false`。...
有的时候,有的系统 (OSX),有点装13。 比如,它就开始瞧不起 OpenSSL 了... 你一通折腾升级成功了,变成了 [email protected] 了。 然后 `pecl install mongodb` 扩展,然后报错了... ```shell configure: error: Cannot find OpenSSL's xxxx ``` ### 步骤: ```shell pecl download mongodb tar zxvf mongodb*.tgz...
### 背景 某些时候时候,我们可能需要对多个 `$or` 条件下的结果,求得其交集。 比如,要求同时满足如下两个组合条件: 1. 要求价格(price)要么为 0.99,要么为 1.99 2. 要求要么处于在售(sale)状态,要么其库存量(qty)小于20 ### 示例代码 **1. 错误示范(invalid demo)** ```javascript db.inventory.find({ { $or : [ { price : 0.99 }, { price...
### 背景 话说,企图用 MongoDB 全文检索来替代搜索引擎的可以放弃了。 什么分词、评分就不说了,连模糊匹配都做不到。 ### 建议 实在需要的,可以配合上**正则**检索一起使用。 ```javascript // demo for find db.articles.find( { $or: [ { $text: { $search: "cake" } }, { my_field_a: /cake/ }, //...
### 背景 通常我们都会用 ES6的方式来导入和导出模块,而其中有个叫 `import()` 的方法,是在运行时动态加载模块用的。 vue 中建议在路由配置中用此方法来进行代码拆分,达到根据路由变化,动态加载依赖组件的目的。这种方式被官方成为 [vue路由懒加载](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) 以上看起来并没有什么问题。 但是,如果你的项目足够复杂,路由层级肯定也很复杂。 相应的,需要动态加载的组件会非常之多。 这个时候你会惊奇的发现,天,怎么暴增了那么多资源请求。 全是各种以 chunk 命名的 js,这个数量可能会多达上千个。  ### 原因分析 通过分析,发现这些请求均来自打包之后的入口文件 index.html 在其 head 标签中,包含了大量的如下形式的 link 标签。 ```html ... ```...
### 背景 cypress.io 是个极好的东西。尤其是用 cypress.io 来进行端到端测试。 不过,凡事也都有其局限性。cypress.io 目前只支持单实例运行同一个测试文件。 而且,官方固执的认为,你不需要一次性开启多个浏览器实例来测试交互。 在众多开发者提出的疑问里面,巴拉巴拉一大堆,最后都是不了了之。  以上官方不支持多浏览器实例的理由 而且,它的请求和响应是被封装为自动完成的。也就是说,你企图在实例内发出的请求, 其返回的头信息中包含的 cookie 都是自动被设置到实例中的。 因为它这样的封装,导致我们无法同时登录两个账户并完成交互操作。 ### 办法 1. 用 cy.task() 方法在后台开启一个单独的 node 任务,直接发请求给后端。 以达到通过后台登录和操作其他账户的目的。比如将 axios 封装到一个 task 的监听事件。...
### 场景 升级到 PHP 7.3.0 之后,运行 `preg_* ` 系列的内置函数,会出现类似下面的报错。 ```php Warning: preg_match(): JIT compilation failed: no more memory in xxx Warning: preg_match(): JIT compilation failed: no more memory in xxx...
### 情形 在使用 chrome 的过程中,经常会出现无法打开 chrome 开发者工具的情况。 在 Cypress.io 打开的 Chrome 实例里面尤其如此。 ### 解决方式 ```shell # Inspector is indeed hidden. # move its position to a visible area. Ctrl +...
### 火钳劝学,稍微劝自己一下 1. [Rust](https://github.com/rust-lang/rust) 系统级编程语言 2. [Go](https://github.com/golang/go) 服务器端编程语言 3. [Julia](https://github.com/JuliaLang/julia) 数据科学型编程语言 4. [Dart](https://github.com/dart-lang/sdk) 客户端编程语言 ### 分割线 个人看好这几个,留个脚印。 时不时劝自己一下。。。  万般皆下品,唯有血压高 苦逼的程序猿