关于 The “extra.asset-installer-paths” option is deprecated

用composer 安装新项目的时候可能不会碰到这种提示

The “extra.asset-installer-paths” option is deprecated, use the “config.fxp-asset.installer-paths” option

在给yii2安装扩展或者更新yii2时,会遇到这个问题。

打开composer.json文件

问题出在这段json

github上给出了解决办法

https://github.com/yiisoft/yii2-app-advanced/issues/243

 

array_combine的小坑

array array_combine ( array $keys , array $values )

如果$keys有值相同的元素,那么坑就来了

如下,要根据sort对数组进行排序,在sort值都不相等的情况下,一行代码就搞定。

但是sort就有相等的情况,为了避开这个问题,只好放弃php内置方法。

把原来写的快排改了改

 

AWS实例计费注意

免费一年的EC2到期,体验还是非常好的,对于挂个博客、个人站还是绰绰有余。

大陆使用亚洲地区的EC2,速度还是可以保障,推荐汉城(首尔)或东京路线,购买时要注意地域的选择。

现在已经支持银联支付,还是蛮方便。

AWS免费实例是按需计费的,按时间计费,到期可是要按小时收费的,$0.0144 每小时,要是忘了到期时间,那就入坑了。30天是$10.368,折合人民币约¥68.36。

预留实例就是包年,但还不全是这个意思,有三种预付方式,如果准备长期使用1年以上,灵活度越低越省。灵活度体现在预付方式和标准/可变。预付,一次性全额付最经济。标准不能调整操作系统和租期,可变可以,所以标准更不灵活但长时间稳定用的话更省。

这种计费方式还是蛮科学。

 

如何理解RESTful

首先应该注意到ful后缀,就说明这是一个用来形容某件事或物的。

REST:Representational State Transfer,这个组合真没法翻译,网上的几种译法:表现层状态转移、表征状态转移、表述性状态传递……。这nima都什么意思?谁能看懂???

挨个查了每个单词的意思,用中文不管怎么拼凑都无法理解,翻译就先搁一边。

这个概念到底在说什么呢?

先说它是什么。

 

举个栗子,不要考虑合理性

假设一

有一本触屏电子书,用户可以对电子书进行CURD(create创建 update修改 read读 delete删)

电子书厂商满足了用户这个需求,在电子书设置了 C U R D 四个按钮

用户要增加文字,必须要点击C按钮,告诉电子书你要干什么才能于电子书互动

这里有个问题,不是所有厂商都用 C U R D四个字母来代表这四个操作,可能用其他符号来代替,这样用户在面对不同厂商的电子书时,有一定的学习成本

另外,这本电子书上真的需要这四个按钮吗?可以取消吗?

假设二

还是有触屏一本电子书,用户可以对电子书进行CURD

电子书厂商满足了用户这个需求,但是并没有设置C U R D按钮

那用户怎么跟电子书进行互动

在早些年前,有一个机构制定了一个标准,对任何电子书都有哪些操作,并且给出了操作的名字

比如 get 用来 读,post 用来 添加,put 用来 修改,delete用来 删除等等

于是有厂家按照这个标准设计了一款触屏电子书,用户要修改时,需要在触屏里输入put,之后就可以改了。

于用户只要读懂这个机构的标准,就能操作遵守这个标准生产的电子书,而且这本电子书不需要按钮。

 

理解例子 一 二后,REST这个概念是什么?其实它描述了一种操作方式。

REST描述的是应用层上,客户端对服务器端的一种请求方式。

http协议中,网络请求有很多方式,比如get post put delete heade,http协议并没有强制说get 只能读不能删 ,post只能修改不能读,http协议建议开发者实现的网络接口符合这些单词的字面意思,比如用get方法,只读取,用post方法只创建,用put方法只修改等等。

我们说客户端要对服务端进行请求,那是不是要有个地址。

对非REST风格的url

对于用什么http方法就没有严格限定了,假设都用post方法

post http://zlzxy.com/users/getUser
post http://zlzxy.com/users/creatUser
post http://zlzxy.com/users/updateUser
post http://zlzxy.com/users/deleteUser

 

REST风格的url

get http://zlzxy.com//users/{userId} 获取userId对应的user信息
post http://zlzxy.com//users 创建一个新的user
put http://zlzxy.com//users/{userId} 更改userId对应的user信息
delete http://zlzxy.com//users/{userId} 删除userId对应的user。

 

对于非REST风格的请求,对应的操作都在URL里体现

而REST风格的,对应的操作在请求方法里体现

 

至于这么做有什么好处,等下文……

 

 

 

 

操作系统中,挂起的含义

转自

阻塞挂起状态(Blocked, suspend):进程在外存并等待某事件的出现

就绪挂起状态(Ready, suspend):进程在外存,但只要进入内存,即可运行

 

挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况:

阻塞→阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时,发生这种转换,以提交新进程或运行就绪进程

就绪→就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程

运行→就绪挂起:对抢占式系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态

 

激活(Activate):把一个进程从外存转到内存;可能有以下几种情况:

就绪挂起→就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,发生转换

阻塞挂起→阻塞:当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程

12330