Sqlite常规操作 add update select

用到了数据库,花了好长时间才搞定,把遇到的问题记录一下,sqlite语法:

select,最简单的语句

select * from table where condition

add

add中有两个需求

1.没有表的时候创建表

create table if not exists

2.如果存在则更新,不存在就插入

insert or replace into table ()values()

这里需要配合 primary key,用unique会报错

3.update

update table set x = x where condition

 

多次遇到 near syntax error,这些肯定是语法拼写错误,请仔细检查。

 

WDMyCloud配置Apache访问Subversion

1.确保WDMyCloud是最新的版本,应该是WDMyCloud v04.04.01-112以后,并且确保Apache2的版本号是2.4.9版本。

2.安装Subversion Server

3.配置并启用Apache dav_svn模块

在文件的尾部增加如下内容:

4.创建Subversion用户

5.重启 Apache2

6.网络访问“http://wd-mycloud/svn”。
7.检出项目 “svn co http://wd-mycloud/svn/project project

Android动画 Interpolator

目录


  1. 简介
  2. 简单插值器
    1. AccelerateInterpolator 加速插值器
    2. DecelerateInterpolator 减速插值器
    3. AccelerateDecelerateInterpolator 加速减速插值器
    4. LinearInterpolator 线性插值器
    5. BounceInterpolator 弹跳插值器
    6. AnticipateInterpolator 回荡秋千插值器
    7. AnticipateOvershootInterpolator
    8. CycleInterpolator 正弦周期变化插值器
    9. OvershootInterpolator
  3. 参考链接

简介


interpolator可以翻译成插值器。

Android中interpolator最底层的接口如下:

TimeInterpolator是在Android API11时加入的,之前类就叫Interpolator

现在Interpolatro继承了它。


简单插值器


注意下面的图,对应你脑海中的插值的大小应该是斜率。

1.AccelerateInterpolator 加速插值器

源代码如下:

加速的快慢度由参数fractor决定。

当fractor值为1.0f时,动画加速轨迹相当于一条y=x^2的抛物线。如下图:
AccelerateInterpolator

fractor不为1时,轨迹曲线是y=x^(2*fractor)(0<x<=1)的曲线。

示例:当fractor为4时,插值器的加速轨迹曲线如下图:
AccelerateInterpolator_Fractor_4

如果你在使用AccelerateInterpolator时,想要那种一开始很慢,然后突然就很快的加速的动画效果的话。

就将fractor设置大点。

你可以到这里调试下你想要的抛物线效果:http://www.wolframalpha.com/input/?i=x%5E%282*3%29%280%3Cx%3C%3D1%29

Android提供的一个不同factor的加速插值器:

(1)accelerate_cubic, factor为1.5

2. DecelerateInterpolator 减速插值器

源代码如下:

根据getInterpolationa(float input);方法可以知道。

fractor为1.0f。它减速的轨迹曲线为1-(1-x)^2。如下图:

DecelerateInterpolator

fractor增大到4时,曲线轨迹如下图:
DecelerateInterpolator_Fractor_4

3. AccelerateDecelerateInterpolator 加速减速插值器

源代码如下:

根据getInterpolation()方法可以得出其变化曲线如下:
AccelerateDecelerateInterpolator

4. LinearInterpolator 线性插值器

这可是最简单的插值器:

5. BounceInterpolator 弹跳插值器

源代码如下:

根据getInterpolation()得到以下插值曲线图:
BounceInterpolator

6.AnticipateInterpolator 回荡秋千插值器

这个插值器的值变化过程,可以想像成荡秋千时的一个段过程。(此时秋千已经在比较上面的位置了,一放手就可以荡下来)。你开始用力推向更上面,然后秋千终将荡回下面。

tension值就好比推力的大小。

源代码如下:

根据getInterpolation()方法。
tension为默认值2.0f时,曲线图如下:
AnticipateInterpolator_Tension_2

tension值为4.0f时,曲线图如下:
AnticipateInterpolator_Tension_4

7. AnticipateOvershootInterpolator

源代码如下:

根据getInterpolation()方法,

可以得到当tension为默认值时,曲线图为:

AnticipateOvershootInterpolator

8. CycleInterpolator 正弦周期变化插值器

源代码:

当cycle时为1时,即变化一周时,曲线图如下:
CycleInterpolator

9. OvershootInterpolator

源代码:

tension为默认值2时,曲线图如下:
OvershootInterpolator_Tension_2

tension的值为4时,曲线图如下:
OvershootInterpolator_Tension_4

通过学习了解Android自带的这些Interpolator,我们可以很好的根据自己的使用场景使用这些Interpolator了。也可以很容易的写出我们自己的Interpolator


参考链接


android动画(一)Interpolator

Windows映像劫持调试程序

简介


“映像劫持”,也被称为“IFEO”(Image File Execution Options),在Windows NT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而Windows NT架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就可以正常运行。

注册表位置:

Debugger参数


它是IFEO里第一个被处理的参数,系统如果发现某个程序文件在IFEO列表中,它就会首先来读取Debugger参数,如果该参数不为空,系统则会把Debugger参数里指定的程序文件名作为用户试图启动的程序执行请求来处理,而仅仅把用户试图启动的程序作为Debugger参数里指定的程序文件名的参数发送过去。

实例操作


1. 在管理员状态下执行regedit.exe,定位到以下注册表项:

2. 在Image File Execution Options下建立一个子键,名为XLUEOPS.exe,不区分大小写。现在确保位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File ExecutionOptions\XLUEOPS.exe\,下,建立一个字符串值类型的注册表项,名为Debugger,值为指定的调试器。
3. 再次运行XLUEOPS.exe查看运行情况,可以发现调试器已经启动了。

安装微软Win10更新KB3122947出现80070643错误解决办法

近日微软为Win10用户推送了编号为KB3122947的更新补丁,主要用于解决Win10系统升级后部分隐私设置选项被恢复默认的问题。不过从国内外很多网友的反馈来看,很多用户在安装时出现错误。当补丁下载完成准备安装时出现了0x80070643错误,如果你也遇到了这个问题可参考下面的方法来解决。

当出现该错误时,系统其实已经下载好更新程序,此时你可以使用DISM命令行工具手动部署该更新。

1.首先按Win+X或者右键单击开始按钮,打开“命令提示符(管理员)”;
2.输入下面的命令(复制粘贴)回车即可:

注意:以上命令以64位版本为例,参数packagepath后面的字符串为补丁下载路径。如果你使用的是32位Windows10系统可以打开Download文件夹,通过更新时间来确定文件路径。

参考链接:

解决Gson解析Json时,Json 中Key为Java关键字的问题

最近在一个项目中,服务器使用 json 作为返回信息的格式,为了加快开发速度,我使用 Gson 代替 Java 语言中自带的 JSONObject 来解析 json 格式。

当我正在享受 Gson 给我带来的便利的时候,我遇到问题了。

因为 Gson 在转化 json 字符串到对象的时候,要求类的成员变量的名称必须和 json 中的 key 值相同。但是郁闷的是,在封装一个接口的时候发现,json 字符串中的 key 为 Java 的关键字。

按照 Gson 的约定,就必须编写一个变量名为new的类,但是结果可想而知,编译不通过。

幸好,Google 已经为我们想好了解决办法,只要对该变量添加Field Naming Support就可以了。

到此,就完美地解决了我们遇到的问题。

引用链接 解决Gson解析Json时,Json 中Key为Java关键字的问题

OpenSCAD用户手册/OpenSCAD用户界面

目录


用户界面


视图导航


视图设置


WordPress 5.2.4内嵌CSS

目录


  1. 安装配置自定义插件
  2. 链入外部样式表
  3. 内部样式表
  4. 导入外部样式表
  5. 内嵌样式
  6. 多重样式表的叠加

安装配置自定义插件


需要在当前主题的 functions.php 中添加自定义代码,才能实现在文章中自定义 CSS 样式表,插件内容如下:

添加完成之后,会在文章编辑页面的最下面,出现 CSS 编辑窗口,之后在这个窗口中添加 CSS 会被自动保存。

链入外部样式表


链入外部样式表是把样式表保存为一个样式表文件,然后在页面中link标记链接到这个样式表文件,这个标记必须放到页面的区内,如下:

上面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel="stylesheet"是指在页面中使用这个外部的样式表。 type="text/css"是指文件的类型是样式表文本。href="mystyle.css"是文件所在的位置。

一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。

样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css。内容是定义的样式表,不包含HTML标记,mystyle.css这个文件的内容如下:

(定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件)


内部样式表


内部样式表是把样式表放到页面head区里,这些定义的样式就应用到页面中了,样式表是用style标记插入的,从下例中可以看出style标记的用法:

注意:有些低版本的浏览器不能识别style标记,这意味着低版本的浏览器会忽略style标记里的内容,并把style标记里的内容以文本直接显示到页面上。为了避免这样的情况发生,我们用加HTML注释的方式(<!--注释-->)隐藏内容而不让它显示:


导入外部样式表


导入外部样式表是指在内部样式表的style里导入一个外部样式表,导入时用@import,看下面这个实例:

例中@import "mystyle.css"表示导入mystyle.css样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,但导入外部样式表输入方式更有优势。实质上它相当于存在内部样式表中的。 注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。


内嵌样式


内嵌样式是混合在HTML标记里使用的,用这种方法,可以很简单的对某个元素单独定义样式。内嵌样式的使用是直接将在HTML标记里加入style参数。而style参数的内容就是CSS的属性和值,如下例:

(这个段落颜色为土黄色,左边距为20象素) 在style参数后面的引号里的内容相当于在样式表大括号里的内容。 注意:style参数可以应用于任意BODY内的元素(包括BODY本身),除了BASEFONTPARAMSCRIPT


多重样式表的叠加


上一章里我们已经提到样式表的层叠顺序,这里我们讨论插入样式表的这几种方法的叠加,如果在同一个选择器上使用几个不同的样式表时,这个属性值将会叠加几个样式表,遇到冲突的地方会以最后定义的为准。例如,我们首先链入一个外部样式表,其中定义了h3选择符的colortext-aligfont-size属性:

(标题3的文字颜色为红色;向左对齐;文字尺寸为8号字) 然后在内部样式表里也定义了h3选择符的text-align和font-size属性:

(标题3文字向右对齐;尺寸为20号字) 那么这个页面叠加后的样式就是:

(文字颜色为红色;向右对齐;尺寸为20号字) 字体颜色从外部样式表里保留下来,而对齐方式和字体尺寸都有定义时,按照后定义的优先而依照内部样式表。 注意:依照后定义的优先,所以优先级最高的是内嵌样式,内部样式表高于导入外部样式表,链入的外部样式表和内部样式表之间是最后定义的优先级高。

参考链接


WordPress 让特定的文章使用特定的CSS样式

CSS:position、float

之前写css,一直是把position:absolute当做android的FrameLayout用的,其他类似。

后来看了下面的文章,满面羞愧。

这些基础的东西,还是要了解透彻的,一直不求甚解的搞下去,自己都不知道做的什么,为什么会出现这种错误,希望能从下面的内容中,总结出一个类似于Androidlayout的规则。

关于position看下面的文章就够了

http://blog.csdn.net/chen_zw/article/details/8741365

css属性大全

http://css.doyoe.com/

这里主要记一下看完自己的理解:

文档流

首先需要了解什么是文档流,可以理解为方块布局,从上到下,从左到右的布局方式就是文档流。

1.margin和padding是占用文档流的,也就是说,layout函数一定是这么写的

element.margin + elment.width/height +element.padding = dom真正占用的空间。

position:static很容易理解,完全遵循文档流。

position:relative 有点特殊,本身遵循文档流,但可以在文档流中使用top left bottom right设置偏移,偏移不遵循文档流。需要注意的是,后面的dom会按照relative元素不偏移来排列。layout函数中完全可以把relative按照static先处理,最后在当前位置进行偏移。

注:relative static无父辈时以body为参考;

position:absolute 脱离文档流,使用top left bottom right设置偏移,偏移参照为父辈最近的非static元素(之前一直认为absolute参照window,深刻检讨)。

注:absolute无父辈时以html为参考。

1、body默认有9个px的margin

2、absolute的元素没有设置top、left时,默认是文档流的位置,会造成设置了absolute,看起来没有效果的现象。

position:fixed fixed以window为参考(即不管你怎么scroll,位置都不会变),设置偏移。

float:absolute会屏蔽掉float,其他的可以共存。

float不遵循文档流。

clear:clear是配合float使用的。意思是把dom的哪边给清除掉。

如clear:both,意思是两边都不许浮动。

如果我来写 html的layout,

1.dom tree static,relative的按照文档流布局,relative单独处理下偏移,完全不影响文档流。

fixed很简单粗暴。

2.处理absolute float

absolute屏蔽float

absolute需要寻找父辈非static元素直到html,比较蛋疼。这个webkit在渲染的时候会把absolute的元素单独出来一层。

float是浮动排版,按文档流布局就差不多。

当然,css3还有更多的排版方式,上面几种已经基本够用,如果还要学习的话就是box了。