LMLPHP后院

Laravel框架illuminate\support\collection排序问题技术

maybe yes 发表于 2015-04-03 00:59

Laravel 的 Collection 的排序有个问题,前几天折腾了好久,一直怀疑是自己代码有问题。Collection 对象执行 sort 后需要执行 values 方法,否则 Collection 对象的 items 排序结果没有生效。当然手动的 toArray() 是生效的。查看 Collection sort 方法内部实现是调用了 PHP 的 uasort 函数,该函数排序后会维持原来的 key => value 关系。

官方文档截取如下:

Collection values()

Reset the keys on the underlying array.

Return Value

Collection

MacOS使用Web代理调试工具Charles技术

maybe yes 发表于 2015-04-01 00:37

出名的抓包工具有很多,也有很多浏览器插件调试工具,在 Windows 上比较出名的 WEB 调试工具有 Fiddler ,自己曾经抢票的时候用过它做 Auto Response。

在 Mac OS X(罗马字符,发言 ten) 上的 WEB 抓包调试工具 Charles 还是第一次使用,在搜索引擎上也找不到,不过挺好用的。安装后自动配置,然后进入设置齿轮图标 -> Proxy Settings,勾选 HTTP Proxy 下的 Enable transparent http proxying,端口默认,点击 OK,完成。最后点击界面中一个白色圆形的中间含有红色小圆点的图标启动,start recording。

百度统计onunload事件拖慢网页加载速度技术

maybe yes 发表于 2015-04-01 00:11

刚刚开始使用百度统计的时候,有时候查看浏览器对网页的渲染情况,发现在 FireFox 上页面变慢了很多,第一个请求文档加载完毕后,紧接着下一个请求就是百度统计,这一点曾经让我迷惑了很久,一直不清楚是怎么回事,后来清除了百度统计代码后的第二次加载页面就没有了统计请求(清除后的第一次还是有的)。

后来我在百度知道里面提问,问题的内容大概是百度统计是如何做到在文档 onload 之后就立刻发出请求的。过了好几天,最后问题由于没人回复被关闭。

再后来才知道是浏览器的 onunload 事件导致的,自己也专门写过测试网页和脚本证明这点。这个事件不是所有的浏览器都支持的,目前发现 Firefox 是支持的,很奇怪的是,为什么 Firefox 这样设计呢,离开了后导致下一个网页在等待这个请求完成,网页迟迟不渲染。所以一直不太喜欢百度统计,也很少上去看,还是 CNZZ 的界面看的比较舒服,不知道为什么。

来几句励志的文字院内

maybe yes 发表于 2015-03-30 23:18

真正能励志的东西,往往是最真实,最原始的东西。也许一个人的无能,和对自己无能的认知就是最大的励志。

人的痛苦在于错误的追求。

你现在所经历的任何一件事,每一次的呼吸,每一刻的存在都是最好的事情,都应该珍惜。

Always believe that something wonderful will be happen,永远相信美好的事情即将发生。

人的坚持在于睡觉,睡了一觉,形势就会变化 - Jack Ma。

我觉得我找到了我最喜欢的事情,那就是睡觉。

这个世界上的公司只有两种,一种是你痛恨的,一种是你不喜欢的。

ubuntu vps 搭建 VPN server技术

maybe yes 发表于 2015-03-30 13:30

找到一篇比较好的文章,ubuntu 下的 VPS 搭建 VPN server。链接:https://vpnreviewer.com/how-to-install-vpn-server-pptp-debian-ubuntu-linux-vps。

Last login: Sun Mar 29 23:11:05 2015 from 101.231.33.158
root@may:~# vi /etc/pptpd.conf
root@may:~# vi /etc/ppp/pptpd-options
root@may:~# vi /etc/ppp/chap-secrets
root@may:~# sysctl -p
net.ipv4.ip_forward = 1
root@may:~# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2598 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2598 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:157633 (157.6 KB)  TX bytes:157633 (157.6 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1072658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1070483 errors:0 dropped:5084 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:317907819 (317.9 MB)  TX bytes:306448988 (306.4 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:107.155.101.65  P-t-P:107.155.101.65  Bcast:107.155.101.65  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

root@may:~# iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
root@may:~# iptables -A FORWARD -i venet0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
root@may:~# iptables -A FORWARD -i ppp0 -o venet0 -j ACCEPT
root@may:~# service pptpd restart
Restarting PPTP:
Stopping PPTP: pptpd.
Starting PPTP Daemon: pptpd.
or

iptables:

iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o venet0 -j MASQUERADE
// try iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o venet0 -j SNAT --to-source xxx.xxx.xxx.xxx
root@may:~# iptables -I FORWARD -s 10.10.0.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300 
2024-05-15 00:43:25 1715705005 0.014043