openwrt

openwrt 框架结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
tools和toolchain目录:包含了一些通用命令, 用来生成固件, 编译器, 和C库.

build_dir/host目录:是一个临时目录, 用来储存不依赖于目标平台的工具.

build_dir/toolchain-目录:用来储存依赖于指定平台的编译链. 只是编译文件存放目录无需修改.

build_dir/target-目录:用来储存依赖于指定平台的软件包的编译文件, 其中包括linux内核, u-boot, packages,
只是编译文件存放目录无需修改.

staging_dir目录:是编译目标的最终安装位置, 其中包括rootfs, package, toolchain.

package目录:软件包的下载编译规则, 在OpenWrt固件中, 几乎所有东西都是.ipk, 这样就可以很方便的安装和卸载.

target目录:目标系统指嵌入式设备, 针对不同的平台有不同的特性, 针对这些特性, "target/linux"目录下按照平台进行目录划分, 里面包括了针对标准内核的补丁, 特殊配置等.

bin目录:编译完OpenWrt的二进制文件生成目录, 其中包括sdk, uImage, u-boot, dts, rootfs构建一个嵌入式系统完整的二进制文件.

config目录:存放着整个系统的的配置文件.

docs目录:里面包含了整个宿主机的文件源码的介绍, 里面还有Makefile为目标系统生成docs.

include目录:里面包括了整个系统的编译需要的头文件, 但是是以Make进行连接的.

feeds目录:扩展软件包索引目录.

scripts目录:组织编译整个OpenWrt的规则.

tmp目录:编译文件夹, 一般情况为空.

dl目录:所有软件的下载目录, 包括u-boot, kernel.

logs目录:如果编译出错, 可以在这里找到编译出错的log.


jshn : 一个 josn 对象转换库
ubus : 一个系统总线

使用acme.sh配置letsencrypt证书

越来越多的人开始意识到 https 的重要性了,letsencrypt 证书免费而且兼容性好。在一般情况下都足够用。如果需要更高级别的证书可以考虑付费的。

首先,我这里的需求是前端有两台 web 服务器,前端有一台作为均衡负载。所以常规的使用域名作为验证的方法是不可行的,在看 acme.sh 时发现了它支持使用 DNS 作为验证。满足了我的要求。

阅读更多

Mac 上的 SQLServer 客户端 Oracle SQL Development

最近需要写一个小的业务,业务部门提供的数据库是 SQLServer 。需要找一个在 Mac 上连接 SQLServer 的客户端。

Oracle 开发了一个很好用的免费 SQL Developer 工具。需要稍微的配置一下。

下载 sql developer

下载SQL开发。 甲骨文公司有一个很好的免费的SQL开发工具, SQL Developer 这将允许您连接到该数据库服务器。

1
2
http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index-097090.html

下载驱动

下载该软件的 JDBC 驱动

1
2
http://sourceforge.net/projects/jtds/files/

将下载的文件解压后,得到一个 jtds-x.x.x.jar 的文件,将这个文件放到一个目录,比如 /Library/Java/Extensions

设置
—F
运行 Oracle SQL Developer ,主菜单 -> Preferences -> Database -> Third Party JDBC Drivers->Add Entry

将 jtds-x.x.x.jar 添加进来。

完成这个步骤后就可以创建到 SQLServer 和 Sybase 的新链接了。你会在以前 Oracle 的选项卡中看到 SQLServer 和 SyBase 的选项卡。

kettle 数据导入乱码.md

在使用 kettle 处理数据,导入到 mysql 时出现了中文乱码的问题,有两种情况:

  1. mysql 编码问题,这个直接修改表编码即可
  2. kettle 导入的编码问题,需要在【数据库连接】-【选项】里面添加一条
1
2
characterEncoding:utf8

用单例和动态类在sqlalchemy中做动态表绑定

当我们的数据表需要分库的时候,如果使用了 sqlalchemy 来做 ORM,在做数据表和类关联的时候就很痛苦了,一个类只能和一个表关联。
当然还有一种方法就是修改 model.tablename.name 来解决,但是这个有个问题是只能绑定一次,实例化后修改就无效了。所以我们就需要使用 type 来动态的创建一个类,到这里问题又来了,如果在不同的时候创建了两个相同的类名的时候,程序就会抛出异常。所以类名必须是单例的。整个的实现如下:

阅读更多

mac .net core尝试

以下是对.net core 发布的尝试,内容完全来自微软官方的文档粘贴,主要是用来记录尝试的过程。

阅读更多