<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[E飞]]></title><description><![CDATA[聊做保存]]></description><link>https://blog.youkuaiyun.com/efeics</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; efeics]]></copyright><item><title><![CDATA[推送网页到kindle]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/51801948</link><guid>https://blog.youkuaiyun.com/efeics/article/details/51801948</guid><author>efeics</author><pubDate>Fri, 01 Jul 2016 15:36:29 +0800</pubDate><description><![CDATA[自己做了一个微信公众号 web2kindle，用来推送网页到kindle。关键环节
使用Node.js搭建web服务，响应微信请求，记录用户信息、push信息等。
使用python搭建后端服务，扫描记录下的push信息，抓取网页内容他，生成mobi文件，推送到指定邮箱等。
使用readability提取网页主要内容。
使用亚马逊提供的kindlegen生成mobi文件。
使用方式：
关注微信公众号：]]></description><category></category></item><item><title><![CDATA[Google S2，球面几何，希尔伯特曲线]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/51706748</link><guid>https://blog.youkuaiyun.com/efeics/article/details/51706748</guid><author>efeics</author><pubDate>Sat, 18 Jun 2016 18:44:55 +0800</pubDate><description><![CDATA[GEO]]></description><category></category></item><item><title><![CDATA[TLV格式 及 VARINT数值压缩存储方法]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/46240199</link><guid>https://blog.youkuaiyun.com/efeics/article/details/46240199</guid><author>efeics</author><pubDate>Sat, 30 May 2015 22:29:15 +0800</pubDate><description><![CDATA[最近需要使用Thrift格式进行数据序列化反序列化，遇到一些问题，所以看了下thrift的java库以及python库，学习了下thrift的存储格式，主要使用thrift的TCompactProtocol。
发现该序列化方式主要使用了TLV格式式来存储每个字段，使用VARINT来表示其中的L。


1. TLV 格式
很简单，Type-length-value（类型-长度-值）。在一串]]></description><category></category></item><item><title><![CDATA[ubuntu 无法进入图形界面]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/38118735</link><guid>https://blog.youkuaiyun.com/efeics/article/details/38118735</guid><author>efeics</author><pubDate>Fri, 25 Jul 2014 15:25:15 +0800</pubDate><description><![CDATA[ubuntu13.10 链接iphone 无限点击信任，]]></description><category></category></item><item><title><![CDATA[SQLite的原子提交]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/19160715</link><guid>https://blog.youkuaiyun.com/efeics/article/details/19160715</guid><author>efeics</author><pubDate>Thu, 13 Feb 2014 14:36:26 +0800</pubDate><description><![CDATA[转自 http://blog.youkuaiyun.com/LocalVar/article/details/3620555


-------------------------------------------------------------------------------------------------------


原文链接


1.    引言

像SQLITE]]></description><category></category></item><item><title><![CDATA[Android SQLite的 select 操作分析]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/19034081</link><guid>https://blog.youkuaiyun.com/efeics/article/details/19034081</guid><author>efeics</author><pubDate>Mon, 10 Feb 2014 12:20:19 +0800</pubDate><description><![CDATA[就像 《Android SQLiteStatement 编译、执行 分析》 中所说的，SQLite中所有SQL语句都需要先编译为stmt，然后执行。
上述文章介绍了SQLiteStatement在android层面的编译执行。然而，类SQLiteStatement只能用以执行无返回值或者只有一行一列（1X1）的sql语句，例如INSERT ALERT 等，而像SELECT这种返回结果可能多行多列的则不适用。
android对select提供了专门的执行方法rawQuery()，对其也有特殊的SQLiteQu]]></description><category></category></item><item><title><![CDATA[Android SQLiteStatement 编译、执行 分析]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/18995433</link><guid>https://blog.youkuaiyun.com/efeics/article/details/18995433</guid><author>efeics</author><pubDate>Sat, 08 Feb 2014 22:28:30 +0800</pubDate><description><![CDATA[SQLite中所有SQL语句都需要先编译为stmt，然后执行。
本文分析Android SQLite 对sql语句编译为statement，并将其执行的过程。]]></description><category></category></item><item><title><![CDATA[Android SQLite 打开、操作分析]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/18970483</link><guid>https://blog.youkuaiyun.com/efeics/article/details/18970483</guid><author>efeics</author><pubDate>Sat, 08 Feb 2014 12:32:33 +0800</pubDate><description><![CDATA[分析Android中使用sqlite时调用的关系。SQLiteDatabase SQLiteSession SQLiteConnectionPool SQLiteConnection关系]]></description><category></category></item><item><title><![CDATA[Android SQLite 支持嵌套事务吗？]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/18739361</link><guid>https://blog.youkuaiyun.com/efeics/article/details/18739361</guid><author>efeics</author><pubDate>Fri, 24 Jan 2014 20:30:26 +0800</pubDate><description><![CDATA[Android SQLite相关java源码中多次提到支持 nested transaction。
而SQLite本身不支持嵌套事务，只能使用 savepoint 代替。 https://www.sqlite.org/lang_savepoint.html
嵌套事务即是类似于

BEGIN
     BEGIN
     ......
也许没有太多人会直接这样写，更多情况是，一个程序执行]]></description><category></category></item><item><title><![CDATA[Android SQLite 是否开启了 shared-cache 模式？]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/18716679</link><guid>https://blog.youkuaiyun.com/efeics/article/details/18716679</guid><author>efeics</author><pubDate>Thu, 23 Jan 2014 22:59:42 +0800</pubDate><description><![CDATA[没有默认开启
并且也未提供相关控制API


--------------------------------------
shared-cache 模式：同一线程或同一进程对同一数据库的连接（connection）可以以共享缓存的方式呈现，实际上对于数据库只有一个连接。
http://www.sqlite.org/sharedcache.html

关注到这个模式是因为，在SQL]]></description><category></category></item><item><title><![CDATA[ContentProvider源码分析]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/17964391</link><guid>https://blog.youkuaiyun.com/efeics/article/details/17964391</guid><author>efeics</author><pubDate>Tue, 07 Jan 2014 17:55:23 +0800</pubDate><description><![CDATA[转自 http://blog.youkuaiyun.com/u010961631/article/details/14227421




一、前言



        ContentProvider作为Android四大组件之一，承担着数据存储的作用，本文用一个最典型的删除（delete）操作，按照Android源码，从应用层的getContentResolver()入手，一步步的分析到]]></description><category></category></item><item><title><![CDATA[Python操作泄露的QQ群数据库]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/17013721</link><guid>https://blog.youkuaiyun.com/efeics/article/details/17013721</guid><author>efeics</author><pubDate>Thu, 28 Nov 2013 22:49:29 +0800</pubDate><description><![CDATA[之前没有一点儿操作数据库的实际经验，python也没有实现过完整的程序。几乎是走一步搜一步，学到的倒也挺多，对数据库没有那么陌生了。遇到的最大问题却是编码问题……]]></description><category></category></item><item><title><![CDATA[Sublime Text 2 C++编译运行简单配置]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/16920267</link><guid>https://blog.youkuaiyun.com/efeics/article/details/16920267</guid><author>efeics</author><pubDate>Sun, 24 Nov 2013 15:24:55 +0800</pubDate><description><![CDATA[sublime Text 2 是一个强大的跨平台的文本编辑器。

这几天都在用这个编辑器来写C++的程序。

刚刚装上的时候不能编译运行啊什么的痛苦死了。




编译问题 ：

首先你的电脑里面要有g++的编译器。怎么看有木有呢？

只要打开命令控制台 输入 gcc 或者 g++ 若提示如下图所示即可。







如果你没有的话就去下载一个DEV-C]]></description><category></category></item><item><title><![CDATA[Python中文问题]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/14453659</link><guid>https://blog.youkuaiyun.com/efeics/article/details/14453659</guid><author>efeics</author><pubDate>Thu, 07 Nov 2013 16:37:20 +0800</pubDate><description><![CDATA[以下皆为Python2.x中--------------------


1、str与unicode

s = '哈哈'		#str对象
u = u'哈哈'		#unicode对象

Python系统内部表示字符串使用unicode对象，采用默认编码。
str对象，即展现出的字符串，经过了utf-8或gbk方式等编码。
Windows下命令行控制台使用gbk编码，所以在控制台中s]]></description><category></category></item><item><title><![CDATA[大端、小端及其判定]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/13767547</link><guid>https://blog.youkuaiyun.com/efeics/article/details/13767547</guid><author>efeics</author><pubDate>Thu, 31 Oct 2013 10:43:25 +0800</pubDate><description><![CDATA[小端（little-endian） 
机器易于处理的字节序 
地址低位存储值的低位 
地址高位存储值的高位 


大端（big-endian） 
最直观的字节序 
地址低位存储值的高位 
地址高位存储值的低位 


说的是CPU处理数据的方式。可用C语言中的联合体union来判定当前机器的字节序，因为union是由地址低位开始分配变量的。

#include 

int]]></description><category></category></item><item><title><![CDATA[Python学习简记]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/13758381</link><guid>https://blog.youkuaiyun.com/efeics/article/details/13758381</guid><author>efeics</author><pubDate>Wed, 30 Oct 2013 22:52:06 +0800</pubDate><description><![CDATA[1、def approximate_size(size, a_kilobyte_is_1024_bytes=True):
函数声明以def开头；不指定返回值（返回renturn语句中的值，或者空值）；参数不必指定类型，自动追踪；调用函数时，参数顺序无关，但若某参数出现参数名，其后参数也必须出现参数名approximate_size(size=4000, a_kilobyte_is_1024_by]]></description><category></category></item><item><title><![CDATA[C++学习简记]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/13758217</link><guid>https://blog.youkuaiyun.com/efeics/article/details/13758217</guid><author>efeics</author><pubDate>Wed, 30 Oct 2013 22:51:05 +0800</pubDate><description><![CDATA[1、signed符号位为1表示负数。对unsigned类型变量赋值，若越界则取模，即使为负数。对signed越界赋值未定义。
2、float类型6位小数，double至少10位。long运算代价高于int。double相对float的计算代价可以忽略，甚至比float要快的多。
3、L'a'可用以表示w_chart类型。
4、多行字面值 \必须是该行尾字符，后继行行首的任何空格和制表符都是字]]></description><category></category></item><item><title><![CDATA[C语言学习简记]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/13755887</link><guid>https://blog.youkuaiyun.com/efeics/article/details/13755887</guid><author>efeics</author><pubDate>Wed, 30 Oct 2013 22:36:17 +0800</pubDate><description><![CDATA[1、常量表达式在编译时求值，而非在运行时求值
2、数值常量、字符常量、字符串常量、枚举常量 enum moths {JAN=1, FEB, MAR, APR}
3、外部变量、局部变量（静态变量、自动变量）。外部变量、静态变量未初始化自动置为0，自动变量未初始化置为无效值。const限定的值无法改变。
4、习惯上把变量和函数的extern声明放在一个单独的头文件中。
5、贪心法。c编译器将尽]]></description><category></category></item><item><title><![CDATA[Linux的进程通信（IPC）]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/12842967</link><guid>https://blog.youkuaiyun.com/efeics/article/details/12842967</guid><author>efeics</author><pubDate>Thu, 17 Oct 2013 20:29:38 +0800</pubDate><description><![CDATA[小米电话面试，询问linux下进程间通信的方式，竟然互斥都扯上去了，最快的通信方式也错了，特地学习




进程间通信的目的

数据传输：一个进程需要将它的数据发送给另一个进程，发送的数据量在一个字节到几兆字节之间。
共享数据：多个进程想要操作共享数据，一个进程对共享数据的修改，别的进程应该立刻看到。
通知事件：一个进程需要向另一个或一组进程发送消息，通知它（它们）发生了某种事件]]></description><category></category></item><item><title><![CDATA[结构体对齐问题以及强制类型转换问题总结]]></title><link>https://blog.youkuaiyun.com/efeics/article/details/12586937</link><guid>https://blog.youkuaiyun.com/efeics/article/details/12586937</guid><author>efeics</author><pubDate>Thu, 10 Oct 2013 21:48:04 +0800</pubDate><description><![CDATA[一、什么是对齐

    现在使用的计算机中内存空间都是按照字节划分的，从理论上讲似乎对任何类型的变量的访问都可以从任何地址开始，但实际上计算机系统对于基本数据类型在内存中的存放位置都有限制。举个例子，一个变量占用n个字节，则该变量的起始地址必须能够被n整除，即存放起始地址%n = 0。各种基本数据结构类型在内存中是按照这种规则排列，而不是一个紧接着一个排列的。这就是内存对齐。

    ]]></description><category></category></item></channel></rss>