如果你的机器已经装有 Oracle 数据库 的话,那很简单,Navicat 可以直接连接到 Oracle 。 如果没装,那 Navicat 会提示你需要安装 Oracle 客户端,如果不是必要,千万别装 Oracle 客户端,先不说它的块头很大,有四五百兆,装完后你很难卸载干净。 根据 Navicat 官方的文档,其实只需要下载 Oracle 的 Instance Client 即可。这个包只包含一些 dll 文件,无需安装解压即可。 要根据不同的 Oracle 版本来下载 Instance Client 的版本,对应关系如下: Oracle 9i 或者更新的版本,需要使用 Instance Client 11 这个版本 Oracle 8 和 8i 用 Instance Client 10 版本。 另外必须注意的时候,只能下载 32 位版本,因为 Navicat 不支持 64 位的版本,另外要下载 Basic 版本 (40M),而不是 Basic Lite 版(11兆),因为 Basic Lite 版不支持中文,连接的时候会告诉你 服务器 端的编码不被支持。 下载 Oracle Instance Client 下载完毕后解压到任意一个目录,然后打开 Navicat -> 工具 -> 选项 -> OCI ,如下图所示: 在 OCI library 地方选择解压的目录下的oci.dll文件,确定后即可。 接下来就是新建一个 Oracle 连接,注意连接类型必须选择 Basic,否则你就又要搞很多配置文件。 如下图所示: 下面是连接后的截图 搞定了,开始吧。 最后,Navicat Lite 支持三个数据库的版本下载地址: http://download.navicat.com/download/nav icat8_lite_cs.exe
Wine 开发版本 1.6-rc1 发布。 这是即将迎来的 Wine 1.6 的首个候选版本,也标志着进入代码冻结周期。 请针对这个版本尽可能详尽测试,以帮助我们得到一个尽可能好的 Wine 1.6。本次更新: typelib 构建支持的新实现。 基于 OpenGL 着色语言的固定功能顶点着色器的支持。 虚拟桌面模式中桌面启动器的支持。 修复日文竖排的支持。 添加克罗地亚语翻译。 各种 bug 修复。 据说QQ支持大幅改善,欢迎大家测试。 另外,该版本简体中文 po 翻译只有50 %,欢迎各位有心人士参与翻译,谢谢。 更多更新信息,请参考 发布信息
1、由于memcache是基于libevent库,需要先安装libevent yum install libevent 2、Memcached下载地址: http://www.danga.com/memcached/ 解压后,进入memcache的文件目录 ./configure -prefix=/usr/local/memcached #设置memcached的安装目录,这个时候会生成文件Makefile make make intall 3、启动memcached /usr/local/memcached/bin/memcached -u root -d -m 64 -l 127.0.0.1 -p 11211 遇到报错:error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory 解决这个问题的方法: 首先 find / -name libevent-2.0.so.5 找到缺少的链接文件到底在那儿。 LD_DEBUG=libs /usr/local/memcached/bin/memcached -v 从Debug信息中就知道程序去哪里找链接库了。 做一个软连接 ln -s /usr/local/libevent/lib/libevent-2.0.so. 5 /usr/lib64/libevent-2.0.so.5 PHP 的memcache扩展 yum install php-pecl-memcache phpinfo中查看memcache模块是否安装成功 connect('127.0.0.1', 11211); $mem-> set('role_1', '100111111111', 0, 3600);
PHP5.4.x编译出错 ext/iconv/iconv.o: In function `_php_iconv_strlen': /soft/sources/php-5.4.9/ext/iconv/iconv. c:660: undefined reference to `libiconv_open' /soft/sources/php-5.4.9/ext/iconv/iconv. c:683: undefined reference to `libiconv' /soft/sources/php-5.4.9/ext/iconv/iconv. c:717: undefined reference to `libiconv_close' ext/iconv/iconv.o: In function `_php_iconv_appendl': /soft/sources/php-5.4.9/ext/iconv/iconv. c:401: undefined reference to `libiconv' /soft/sources/php-5.4.9/ext/iconv/iconv. c:438: undefined reference to `libiconv' ext/iconv/iconv.o: In function `_php_iconv_substr': /soft/sources/php-5.4.9/ext/iconv/iconv. c:780: undefined reference to `libiconv_open' /soft/sources/php-5.4.9/ext/iconv/iconv. c:804: undefined reference to `libiconv' /soft/sources/php-5.4.9/ext/iconv/iconv. c:859:
Nginx 大家都知道, 但是很多人能了解到常用的location指令的优先级别是怎么样的,这个也许知道的 人就不多了吧. 先前记得有个国人说过一个nginx的“bug”(), 就是关于location配置不当造成的, 这其实并不是nginx的bug, 而是 人员的对nginx配置location优先级别理解不很透彻造成的. nginx官方已经指明了location指令说明: syntax: location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... } default: — context: server, location 让我们先来理解下, nginx 规则处理请求是在对路径匹配在URI规范化以后进行. 所谓规范化, 就是先将URI中形如“%XX”的编码字符进行解码, 再解析URI中的相对路径“.”和“..”部分, 另外还可能会压缩相邻的两个或多个斜线成为一个斜线: = 开头表示精确匹配, 必须完全吻合才会执行; ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url 路径即可, 如果最大前缀匹配的路径以“^~”开始,那么nginx不再检查正则表达式. nginx不对url做编码,因此请求为/assets/20%/css.css,可 以被规则^~ /assets/ /css.css匹配到(注意是空格); ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的正则匹配, 与~相反是大小写同等对待的; / 通用匹配, 如果没有其它匹配,任何请求都会匹配到. 优先级别基本可以这么认为: (location =) > (location 完整路径) > (location ^~ 路径) > (location ~* 正则) > (location 路径) > (/)
编译php5.3.x时候出现错误 /usr/include/mysql/my_global.h:361:24: error: asm/atomic.h: No such file or directory. 这里备忘一下, 网上找到一个没办法的办法: 用Perl正则注释掉:( $ perl -pi -e 's##include #//#include #' /usr/include/mysql/my_global.h @SEE: http://help.directadmin.com/item. PHP ?id=333
很多时候我们需要对一些网站进行密码保护,比如团队内部的站点、demo站点等等。这 里所说的密码保护是 服务器 级的,并非网站应用层的注册登录那一套,而是利用服务器配置和htpasswd文件来 实现访问的密码验证。 最后的效果就类似(不同 浏览器 的界面有所不同): 如果认证失败,就会报HTTP错误:401 Authorization Required。 要实现这样的功能,就需要更改服务器的配置,并设定好用于登录的用户名和密码。 首先我们需要更改网站的 Nginx 的server配置, Ubuntu 服务器的话这个配置文件通常位于/etc/nginx/sites-enabled/ ,比如我这里就使用默认的配置文件/etc/nginx/sites-enabled /default来做一个例子: server { server_name www.fancycedar.info root /www/fancycedar # ... location / { # 添加下面两行 auth_basic "Restricted"; auth_basic_user_file htpasswd; # ... # ... 接下来需要创建htpasswd文件,这里有一些细节需要注意: htpasswd的路径 和nginx.conf在同一级目录即可。Ubuntu服务器的话一般就在/etc/ nginx/下面。 htpasswd的内容 每一行为一个用户,格式为username:password。但是要注意,这里的p assword不是明文,而是将password进行crypt(3)加密后的字符串 。 你可以使用一段 PHP 代码来生成htpasswd中的password: // 密码明文 $password = 'some password'; // 对密码进行加密 $password = cry
方法一(返回的是json字符串格式): /** * Curl版本 * 使用方法: * $post_string = “app=request&version=beta”; * request_by_curl(‘http://facebook.cn/rest Server.php’,$post_string); function actionPost($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包 curl_setopt($curl, CURLOPT_COOKIEFILE, ‘cookie.txt’); // 读取上面所储存的Cookie信息
经典RPG游戏《博得之门》粉丝历经七年之功打造的《无冬之夜2》Mod《Baldu rs Gate Reloaded 》正式发布,Mod发布在Nexusmods上,下载需要登录(免费注册)。《Bal durs Gate Reloaded》是《博得之门》及其扩展包《剑湾传奇》的3D重制版,运行该Mod 需要《无冬之夜2》及其资料片《背叛者面具》和《泽希尔风暴》,如果玩家购买过Ste am曾经出售(已下架)的《无冬之夜2》白金版,那么运行Mod的要求已经满足,但有 测试显示可能存在不兼容问题。 《Baldurs Gate Reloaded》的开发始于2006年11月,发起人是游戏设计师Drew Rechner和一群自称 Baldur's Gate: Reloaded Team的开发者,它提供了第三人称和俯视视角。
一年一年度的开源界活动LinuxCon Japan 2013于2013年5月29日至31日,在日本东京市椿山庄附设会议中心举办。本年 度再次邀请 Linux 之父Linus Torvalds出席。 活动第一天主持演讲的是Linuxpilot专家顾问之一的Jim Zemlin。当日他以Linux基金会总裁的身份主持名为“How can you better take advantage of Open Source?”的演讲。之后有NEC Corporation of America的代表Terry Nakajima介绍Linux基金会旗下的SDN(Software Defined Networking)开发计划OpenDaylight。最后是由NTT、Goog le、Rackspace的代表主持的Virtualization & Open Cloud Panel。 第二天的主要嘉宾是Linux之父Linus Torvalds,他表示母国芬兰教育是免费的,令他可以有机会在大学的8年半间,有 时间去开发Linux。他形容开发Linux是一个“傻瓜”的举动,但正正是当时的教 育环境,才能令学生有这种傻瓜的冒险精神。 第三天的演讲由Linux新闻网站Linux Weekly News(LWN)的主编Jon Corbet介绍Linux开发状况的Linux Weather Forecast。Jon同时也是Linux核心开发者。另一场演讲A World Without OpenStack and the OpenStack Community由OpenStack基金会的Kyle MacDonald主持。Intel、 Red Hat 、富士通、日立、NTT等机构均有摊位展出。
2013年Google I/O大会,推出了新的 Android 集成IDE“Android Studio”,最大的转变就是从Eclipse切换到了IntelliJ IDEA。 Google终于抛弃了Eclipse了 IDE是个大坑,不是谁想做就能做的,关键问题是做了也赚不了大钱。Google才不 会吃力不讨好,搞Chrome可以给搜索带流量,搞Android能打击对手苹果,搞 IDE能干啥?所以,Google需要只是一个集成的傻瓜包而已。让只有一个月 JAVA 基础的人,也可以直接下载了这一个傻瓜包,照着教程就能学习Android,而不是把 大把的时候花在折腾插件上。 目标明确了,那剩下就是跟谁合作的问题。Eclipse开源,市场份额大,所以Goo gle最开始和Eclipse合作,出了ADT傻瓜包。ADT说白了就是SDK+Ec lipse+Android Plugin for Eclipse。但是Eclipse有个问题,太慢了,至少对于我来说。 也许是一些新的feature,Eclipse架构很难支持。不管怎么样,Googl e发现Eclipse没什么意思了,而IntelliJ这边发展不错,现在已经号称是 最好用的Java开发环境了。 于是Google转身就投向了IntelliJ IDEA。对于IntelliJ来说,有Google带头的话,肯定会有大把的流量过 来,辛苦了这么多年,终于算是熬到头了。 那Android Studio是什么? Is Android Studio a fork of IntelliJ IDEA? No. Android Studio and the Android plugin for IntelliJ IDEA are built from the same code, and all of the changes in Android Studio ar
1.环境 Ubuntu 12.04 64bit bind9 192.168.1.2 2.安装 apt-get install bind9 3.配置 1)缺省状态下默认是当作缓冲 服务器 来配置安装的 cd /etc/bind/ #主要配置文件 /etc/bind/named.conf /etc/bind/named.conf.options /etc/bind/named.conf.local 配置缓冲服务器 vi named.conf.options forwarders { 202.96.128.166; 8.8.8.8; }; #转发广东电信和google的dns 配置主服务器 vi named.conf.local //正向解析 zone “gaojinbo.com” { type master; file “/etc/bind/db.gaojinbo.com”; //反向解析 zone “10.10.10.in-addr.arpa” { type master; notify no; file “/etc/bind/db.gaojinbo.com.rev”; #配置正向解析 vi /etc/bind/db.gaojinbo.com $TTL 604800 @ IN SOA gaojinbo.com. root.gaojinbo.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS ns.gaojinbo.com. @ IN A 192.168.1.2 ns IN A 192.168.1.2 www IN A 192.168.1.2 #配置反向解析 vi /et
工作需要,需要查看某个组名是否包括一个指定的用户名。 (因为用户通过内部的管理页面加入了某个组,但是需要时间同步,因此需要到 服务器 上查看是否已经同步完成,即是否该组中已经包括了指定的用户名) 方法如下: cat /etc/groups | grep dc-group 进一步可以grep 一下用户名 cat /etc/groups | grep dc-group | grep user1 以上二例以 dc-group为组名,以user1为用户名
韩国 Samsung Electronics 藉 Android 之势,一跃而成手机界的龙头。很多专家都会从市场角度分析 Samsung 为何如此成功,但真正从技术角度去理解其成功因素的人却很少。笔者这次就从另一个角度 ,分析 Samsung 强大的理由。 根据美国市场研究机构 IDC 在2013年1月24日发表的一份报告,在2012年第四季的世界手机市场中,Sam sung Electronics 出货量位列榜首占 29%与第二位的 Apple 相差7.2个百分点。其他 Android 手机厂商的出货量都在 5以下,第叁位的华为和第四位的 SONY 分别只占 4.9和 4.5与 Samsung 手机出货量同时跃进的,是 Samsung 向 Linux 核心提交修正档的数目。 Android 使用的核心代码来自 Linux,所谓的核心修正档,是指改进 Linux 核心功能的程式。眾所周知全世界有眾多的开发者和企业,都有参与 Linux 核心的开发,并定期向 Linux 核心开发团队贡献修正档代码。Linux Kernel Patch Statistic 公开的资料显示,目前以企业名义贡献得最多的分别是 Red Hat 和 Intel,但在 Linux 最新核心版本3.8上,最近的两个月 Samsung 提交的修正档多达393个,在同期的企业和团体中排名第七。Samsung 提交修正档的数量自 2010 年 8 月 Linux 核心推出 2.6.35 时起激增,时间刚好是第一代 GALAXY Tab 推出之前。 贡献代码会马上为公司带来盈利吗?不会。但因而带来的技术优势,却并非用金钱可以衡量 。透过提交大量代码,企业将可对 Linux 发展方向有更深的理解,对 Linux 发展蓝图有更大的「话语权」,从而配合自家技术的战略部署,其中一个例子便是微软。微 软在 2009 年曾
经过我的亲自测试,WordPrss在开启了Memcached以后,速度有质的提升 ,几乎可以媲美WP Super Cache等静态化插件。下面是安装方法。 前提条件: PHP 安装了memcache扩展(可以在phpinfo.php中查看) 2, 服务器 安装了memcached(服务端软件,默认端口11211) WordPress 启用Memcached 方法超级简单,下载 object-cache.php 文件到wp-content目录即可。 然后,享受飞一般的WordPress吧! 网上还有另一种说法,说是要进行以下步骤,经过我的测试,以下步骤是不需要的: 1,在wp-contents目录建立cache目录,并给予775、777权限 2,在wp-config.php里添加一行 define(‘ENABLE_CACHE’, true); 3,为PHP安装memcached扩展 查看Memcached版本 [root@zhukun ~]# telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 输入stats,会返回如下信息: STAT pid 7150 STAT uptime 451 STAT time 1370327501 STAT version 1.4.7 STAT libevent 2.0.12-stable 一般版本号在1.2.4以上就可以了。
世界变化太快,我们总在担心错过。关注的人越来越多,订阅的RSS泛滥成灾。相反,身 边朋友无话可说,创作能力大幅退化。错过的原来是时光,最美好的年华,浪费在别人的家 长里短、八卦横飞中。 是时候结束这种游戏了。在 一个人的微博 中,分享了相关理念。现在,让我们动起手来,在云端搭建反社交APP:一个人的RSS 阅读器、一个人的微博、一个人的维基、一个人的科学笔记... 何谓反社交APP 反社交并不意味反人类,而是将关注点从输入转为输出;行为模式从转发到创作。 无需将原本用于创作的时间再去过滤噪音 隐私的APP,仅向特定好友开放 数据完全由自己掌握的APP 如何选择恰到好处的反社交APP?我的挑选标准如下: 代码开源 代码简洁、简洁、简洁 代码基于Ruby、 Python 等运行,能够直接发布在heroku上 代码库在 Github 上关注人上千,持续维护与更新 没有明显错误 移动端支持优良或者修改容易 本文前提条件 假设你已熟悉: Git与 Github 已安装 heroku Toolbelt 已拥有 Github heroku RSS阅读器 首选介绍的是RSS阅读器 stringer 。搭建无需特殊方法,直接按照官方教程处理即可。 cd ~/dev/antisocial git clone git://github.com/swanson/stringer.git cd stringer heroku create git push heroku master 然后配置即可。 heroku config:set SECRET_TOKEN=`openssl rand -hex 20` heroku run rake db:migrate heroku restart 在heroku添加信用卡信息,以获得免费调度插件shceduler的使用权限。 heroku addons:add s
新增: 全新2013界面 加入多语言机制,可根据需要设置语言 ET新增图表读取支持 ET新增TXT、CSV、PRN文件读写,支持多编码 ET新增XML文件读写 ET新增XLSX文件加解密支持 WPS 新增TXT文件读写,支持多编码 修复: ET写XLSX文件时丢失部分自选图形填充效果 无法打开文件名含有反斜杠的文件 WPP插入特定背景音乐文件导致崩溃 特殊说明: WPS Office For Linux 从此次版本起提供国际化功能,为了国内外保持一致的安装包名称,我们决定将安装包名称 由 wps-office 更改为 kingsoft-office,与国际版本保持一致,大家安装新版本之前请先卸载旧 版本以免无法安装! 打包修改: kingsoft-office_9.1.0.4032~a10_i386.deb SHA1SUM: 6744c142eaea4af06e8f7d0e0cdd6c25c973ffbb kingsoft-office-9.1.0.4032-0.1.a10.i686. rpm SHA1SUM: 86d8051fe55796d8a49eec32fbbdb9cf0b759827 kingsoft-office_9.1.0.4032~a10_x86.tar.x z SHA1SUM: 8a71ac00c8e22fa43d75379b215038807fc4d503
thttpd简介 thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持, Nginx 需要支持cgi,可以安装这个轻量级的web server。 thttpd安装 cd /tmp/ wget http://acme.com/software/thttpd/thttpd-2 .25b.tar.gz tar xzf thttpd-2.25b.tar.gz cd thttpd-2.25b/ ./configure -prefix=/usr/local/thttpd make && make install 可能出现的错误: htpasswd.c:52: error: conflicting types for ‘getline’ 解决方法:编辑htpasswd.c ,把getline替换成get_line thttpd配置 新建/usr/local/thttpd/conf/thttpd.conf文件: # BEWARE : No empty lines are allowed! # This section overrides defaults # This section _documents_ defaults in effect # port=80 # nosymlink # default = !chroot # novhost # nocgipat # nothrottles # host=0.0.0.0 # charset=iso-8859-1 host=127.0.0.1 port=8008 user=thttpd logfile=/usr/local/thttpd/log/thttpd.log pidfile=/usr/local/thttpd/log/thttpd.pid dir=/usr/local
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输 速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。 使用CDN有3个好处 优化跨ISP网络访问速度,在国内大联通和大电信之间是世界上最远的距离,在国外,中 国和其他地区很平行,用cdn可以优化全球响应速度 节约流量成本,CDN机房都一般都放在带宽便宜的小城市,带宽成本大概是BGP机房的 1/3 快速提升性能,对于结构复杂的系统,部署CDN可以在不改动代码段情况提升网站整体性 能,立竿见影 市面上有很多CDN供应商,比较著名有 Akamai (全球最大) chinacache webluker cloudflare chinacache 如果需要自己搭建CDN系统,有3种主流方案可以选择 squid varnish Nginx +memcache 存储模式 配置复杂度 purge效率 共享存储 squid 可以并联,但是配置复杂 varnish 硬盘/内存 比较简单 nginx 需要编程 可以,支持一致性存储 典型用户 Squid http://www.squid-cache.org ,大多数CDN供应商都用squid varnish http://www.varnish-cache.org ,用户较少,sina微博在用 nginx+memcache 搜狐CDN集群,淘宝的部分业务 存储共享 对于大规模网站的CDN,存储共享是个强需求。为了消除单点,不可能只使用一台CDN 服务器 ,如果只是简单做 负载均衡 ,单台CDN server 上需要存储全部数据,存储利用率太低了 squid支持几个实例并联,实际使用的人不多 varnish 只能用单实例 nginx+memcache 天然的 分布式 当然,采用squid/varnish 也有解决办法: 需要在它
红帽的 Josh Boyer 充满好奇心的比较了 Fedora 18 和 Ubuntu 13.04 所搭载的 Kernel 3.8 在配置上的不同,发现了一些有趣的地方。 注意:下文为意译 Josh Boyer 分别选用当下 Fedora 18 中的 3.8.11-200.fc18 和 Ubuntu 13.04 中的 Linux -image-3.8.0-19-generic 在 X86 64 位环境下进行比较,两者使用相同的上游内核。 底层设置 Ubuntu 将最大可使用内核数设定为 256 而 Fedora 仅为 128;同时 Ubuntu 启用了更多 NUMA (非一致性内存访问)支持,并且设定了更高 NUMA 可支持数。考虑到 Canonical 打算统一 Ubuntu 桌面版和 服务器 版中的内核,Ubuntu 启用这些 SMP 相关的选项完全可以理解。 在计时器中断唤醒次数上 Fedora 设为 1000,而 Ubuntu 设为 250。通常来说较大的值意味着能提供更快的交互响应,更适用于桌面应用;较小的值则 更便于服务器能更加专注的完成工作,而非响应中断。不过两者都启用了按需响应,CPU 在空闲时不会被无用的计时器唤醒打扰。未来估计两者都会逐步迁移到 3.10 内核引入的零计时器唤醒,更好的降低休眠时能耗。 同时 Ubuntu 也默认启用了快速无 HZ 选项,增加了内核进入空闲状态的机会,可以减少能耗。Fedora 曾在该选项刚刚引入上游时启用过,但是后续的诸多问题又使其被禁用了。经过几个内核的 修订该功能相比当初稳定许多,值得重新考虑。 默认选择 Ubuntu 的默认 I/O 调度器为 deadline 而 Fedora 为 CFQ (Completely Fair Queueing)。 默认 CPU 频率控制策略方面,Fedora 遵循常规的为按需调控,