临街小站


  • 首页

  • 归档

  • 标签

  • 相册

  • 搜索
close
临街小站

乌鸦你是谁

发表于 2017-01-25 | 分类于 随笔 | 阅读次数



不知不觉就走到了这个尴尬的数字

期盼着08,期盼着12,却原来已经在冷夜中蹒跚了数千个日日夜夜

好嘛,也是把最初的幼稚与青涩用完的时候了吧

年纪大了总会变得多愁善感

本以为是云淡风轻,看着游客飘来荡去,顺着指尖,还是把最近的心思揉在一起丢到这里

每个小站都是我不同的生活态度

封存一些不想被熟知的你们探索的琐论杂情

这里没有飞来飞去的广告

没有生活所迫的编辑夺人眼球的标题

我们用心记录所有随心所欲,不会因为假定的时时刻刻deadline画出没有意义的花瓶

有的尽是自由的灵魂,祛除的都是非要不可


小站匆匆的陌生游客是否就是我所要的自由呢,我不在乎你怎么漂流到这里,也不会深究你是谁

我是浅水中的一条河鱼,我就把这当成是我的自由罢

对我而言,你就是深夜中扑腾的乌鸦,我们相遇,交谈或相离,不会记下彼此的记号


当期盼变成抗拒,当行进变成蹒跚

别样的云清风淡,别样的人生海海


写在5位数之前,写在solar与lunar之间,写在惊醒与微醺之后

不想懂没结果的是为什么

不去问黑夜的乌鸦你是谁

阅读全文 »
临街小站

subprocess模块的使用

发表于 2016-12-18 | 分类于 python | 阅读次数

最近在考虑如何在一个独立的程序上加一个GUI壳子,原来的程序是通过console接受输入输出的,查阅资料发现了subprocess模块,这里记录一下。

引入

从名字就可以听出来,subprocess是python管理子进程的模块。运行python的时候,正常情况下我们都是在创建并运行一个进程。通过subprocess可以新建一个子进程执行程序,并通过subprocess提供的api与新创建的子进程联系。

subprocess中最基础也最重要的就是基于Popen()函数,Popen()方法根据参数新建一个进程并执行,后面的一些列参数是对这个新创建的进程的管理。

阅读全文 »

临街小站

系统结构读书笔记

发表于 2016-12-05 | 分类于 体系结构 | 阅读次数

《Computer Architecture A Quantitative Approach》部分读书笔记

本书的第二版,相比前面的版本,经过了一些修整。第一版的基础内容,第一章(Fundamentals of Computer Design)和第二章(Performance and Cost)在这个版本中,是在开篇第一章中(Fundamentals of Computer Design)介绍的,编者认为两者放在一起比独立的分开讲解效果更好一些。

介绍

计算机出现的几十年间,从20世纪70年代开始,微处理器的性能增长率逐年增长,从最开始的每年25%左右,20世纪70年代末期的35%。

这样的增长速率以及大规模微处理器生产的成本优势,导致微处理器在计算机事业中的因素占比越来越大。同时,计算机市场的两个明显改变使得在一种新型的体系结构下实现了商业成功:

首先,虚拟技术消除了原本的编程语言的装配过程,减少了母必爱代码的兼容性要求;另外标准化的创作、独立的操作系统(例如Unix)以及更低的成本和风险带来了一种新型的体系结构。

阅读全文 »

临街小站

tornado安全技巧

发表于 2016-11-24 | 分类于 python | 阅读次数

安全cookies

Tornado的安全cookie使用加密签名验证cookies的值是否被除了服务器之外的程序修改过,未被我们授权的(不知道安全密钥)程序无法在应用不知情下修改cookies

使用安全cookie

Tornado的set_secure_cookie()和get_secure_cookie()方法设置、请求浏览器的cookies,防止浏览器的恶意修改,在此之前,我们需要在构造函数中指定cookie_secure参数。

成功设定之后,应用在程序内部获取的cookie还是本身的值,在浏览器或抓包工具查看,发现cookie已经被加密,如果不知道密钥,无法获知cookie内容

阅读全文 »
临街小站

tornado2

发表于 2016-11-16 | 分类于 tornado | 阅读次数

模板基础

与之前的Django类似的是,tornado同样是使用了MVT模式,通过模板渲染网页,tornado服务器端提取数据填充到模板文件中返回给client

前面我们为了测试tornado异步框架以及最简单的request-response流程,没有使用Template,仅仅是简单的直接self.write写入到输出流返回给client

py流程

实际的开发流程中,都会用到template模板,类似下面:

阅读全文 »

临街小站

uwsgi

发表于 2016-11-16 | 分类于 网络 | 阅读次数

wsgi

先来讲讲Web应用,抛开dns、网络连接这些先不谈,我们只看服务器与浏览器client之间,静态Web应用一般是这样的流程:

  1. 浏览器发送一个http请求

  2. 服务器收到request,生成或者找到请求的文件

  3. 服务器将html文件作为response的body部分返回/无需渲染文件直接返回

  4. 浏览器收到响应后,从response取出数据并填充、渲染

类似Apache、Nginx这类static server最擅长干的事情,就是我们提前将浏览器要访问的html页面、static文件(img、css、js)等放到静态服务器的指定位置,服务器接受请求返回文件

阅读全文 »

临街小站

Linux 网络IO模式(转)

发表于 2016-11-15 | 分类于 网络 | 阅读次数

Linux IO模式-人云思云

IO模式

对于一次IO访问,数据会先被拷贝到操作系统的内核缓冲中,然后应用会从缓冲区中获取数据,这中间有两个过程:

  1. 等待数据准备(waiting for data to be read)

  2. 将数据从内核拷贝到进程中(copying the data from the kernel to the process)

    阅读全文 »
临街小站

阻塞/非阻塞&同步/异步

发表于 2016-11-14 | 分类于 网络 | 阅读次数

同步/异步

The Sockets Networking API

同步和异步的区别在于,做一件事情,消息通知的流程。在同步中,是由发起者(调用者)主动等待消息反应,而异步情况则是有被动者(被调用者)通过反馈机制通知发起者来处理返回的消息

所以区分同步与异步,主要是消息处理前的行为

阻塞/非阻塞

阻塞是在调用结果返回之前,当前线程/进程将会被挂起,直到结果返回才会继续执行。

非阻塞情况不会阻塞当前线程,该线程还可以执行。

所以阻塞与非阻塞的关注点应该在于发出请求之后,请求未返回之前这段时间,线程是否有能力(被允许)执行之后的任务

阻塞是由系统自动执行阻塞原语(block),使自己由运行状态变为阻塞状态。进程进入阻塞状态之后,不会占用CPU资源

coroutine与异步回调

阅读全文 »
1…456…24
clinjie

clinjie

189 日志
38 分类
69 标签
RSS
github weibo zhihu
Creative Commons
© 2019 clinjie
由 Hexo 强力驱动
主题 - NexT.Muse