Write the Code. Change the World.

11月 10

最近有一个观点令我感触很深,这个观点是来自 《Start Marketing The Day You Start Coding》这本书,大致内容如下

你的想法并不值钱,你的代码也不值钱,因为应用程序的构建十分简单。成功的互联网公司与失败的互联网公司的最大差别在于营销。所以,在你开始编码的第一天就进行营销吧,像人们展示你的原型,收集反馈信息,不断的进行改进。

同理,《Rework》也有过类似的观点

你觉得自己的想法很有价值?那么就试着把它卖掉,看看能有什么收获。基本上你什么也得不到。想法如果不付诸实施,那就永远只能是一个想法而已,每个人都有奇思妙想。

一旦这样去做了,你就会明白自己的激情和兴趣到底是真心实意,还是三分钟热度。万一不成,你照样回去每天上你的班就好了。不必承担任何风险,没有任何损失,只是浪费了一点时间而已,还是挺划算的。

当你拥有某种极强烈的渴望时,你就能挤出时间来——不管你身上是否还背负着其他责任。事实上,大部分人的渴望并不是那么强烈。于是他们拿时间当借口来进行自我保护。不要再扔出一堆借口来妄图脱身了,你的终极职责就是让你自己的梦想成真。

另外,永远不会有正当其时的时候,你总会觉得要么年纪太轻,要么太老,要么太忙,抑或是其他什么原因。如果你总是为找不到完美的时刻而困扰,那么,完美的时机永远不会出现。

文章来源

https://learnku.com/articles/38902

阅读全文 >>

11月 10

区块链相关

什么是区块链:https://zhuanlan.zhihu.com/p/133484995

比特币难度值:https://yushuangqi.com/blog/2017/understand-bitcoin-difficulty.html#%E6%AF%94%E7%89%B9%E5%B8%81%E9%9A%BE%E5%BA%A6%E5%80%BCdifficulty

比特币词汇表:http://eth.geeknr.com/zh/GLOSSARY.html。

比特币入门教程(阮一峰):http://www.ruanyifeng.com/blog/2018/01/bitcoin-tutorial.html。

btcpoo
之Stratum协议:https://www.shuzhiduo.com/A/QW5Y0vAKJm/

阅读全文 >>

11月 03

laravel-permission 用来控制接口的权限(更细致入微,易操作),sanctum 也是用来控制权限(路由),两者一起使用,会引起 guard 的错误。这个需要好好的处理一下。

常见报错如下:

The given role or permission should use guard `web` instead of `sanctum`.

laravel-permission 使用的 guard 是默认的,而 sanctum 使用的是 sanctum。 我们手动设置 guard 默认的 guard 为 sanctum,并在 User 模型中,指定为 sanctum 即可。

阅读全文 >>

10月 26

eleme ui 的 el-select 组件会自动清除数据空格,无论空格在左边,右边还是中间。某些场景下,这个让人难以接受, 怎么办了。方法是有的。

操作一波

<el-select v-model="form.id" clearable placeholder="请选择">
    <el-option
           v-for="item in list"
           :key="item.id"
           :label="item.raw"
           v-html="item.label"
           :value="item.id">
     </el-option>
</el-select>

# list 的内容
let list = [
   {
      id: 1,
      label: '        凤舞九天',
      raw: '凤舞九天'
   }
]

这样就可以了。babel 看情况需要,加上 v-html ,用   代替空格。

阅读全文 >>

10月 25

el-tree 蛮好使用的,就是排版的方向永远都是从上到下。同一级没办法,合向并着展示。那么,想要实现这种效果,就得自己改代码,操作了。

操作一波

vue 中,el-tree 的默认节点和数据如下:

阅读全文 >>

10月 25

项目有时候是需要一眼看清楚各个对象的层级关系,树样子就比较明晰。下边通过一个无线嵌套数组(每个对象的 children 有对象,表示有子对象),来展示看看效果。

效果渲染截图

阅读全文 >>

10月 23

响应格式的统一,对前端来说,是一种更好的体验。这里借鉴别人的地方,仅仅对 response 做统一格式响应。

规范的响应结构

RESTful 服务最佳实践

code—— 包含一个整数类型的 HTTP 响应状态码。
status—— 包含文本:”success”,”fail” 或”error”。HTTP 状态响应码在 500-599 之间为”fail”,在 400-499 之间为”error”,其它均为”success”(例如:响应状态码为 1XX、2XX 和 3XX)。
message—— 当状态值为”fail” 和”error” 时有效,用于显示错误信息。参照国际化(il8n)标准,它可以包含信息号或者编码,可以只包含其中一个,或者同时包含并用分隔符隔开。
data—— 包含响应的 body。当状态值为”fail” 或”error” 时,data 仅包含错误原因或异常名称。

阅读全文 >>

10月 23

使用 Lumen 8 + Api Resource  进行 API 开发

写在前面

统一响应结构,的确很有用。一种是官方默认的响应返回,比如自定义的 Request 的 validate。一种是自定义结构的。想要好的体验,就得两种统一处理起来。

工作中使用 Laravel 开发 API 项目已经有些年头了,发现每次启动新的 Api 项目的时都会在 Laravel 基础上进行一些预处理,包括针对 API 项目的结构设计,统一响应结构的封装,异常的捕获处理以及授权模块的配置等。总是在做一些重复的工作,那索性将这些常用的基础封装做成一个「启动模板」好了。

项目地址戳这儿

阅读全文 >>

10月 16

服务器时间久了,有可能忘记曾经编译安装的 nginx 和 php 的配置。但是想知道,怎么办呢。

操作一波

nginx

nginx -V

# 输出
nginx version: nginx/1.16.1
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
built with OpenSSL 1.1.1f  31 Mar 2020
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/alidata/service/nginx --pid-path=/alidata/service/nginx/run/nginx.pid --with-http_stub_status_module --with-threads --with-file-aio --with-pcre-jit --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_realip_module --with-http_addition_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-stream_realip_module --with-http_slice_module --with-pcre --with-openssl=/usr/local/src/base/1-openssl/openssl-1.1.1f --with-openssl-opt=enable-tls1_3 --add-module=/opt/ngx_brotli/ --add-module=/usr/local/src/nginx/headers-more-nginx-module-0.33

阅读全文 >>