All posts by 龙生
25 个超棒的 jQuery 消息提醒插件
网页上漂亮的消息提醒不仅耳目一神,关键是引起用户的主题,实实在在起到提醒而不扰民的用途。本文向你推荐 25 个漂亮的 jQuery 消息提醒插件,你值得拥有。 偷个懒不翻译了,大家点击图片可直达官网。 1. jQuery Toastmessage jquery-toastmessage-plugin is a JQuery plugin which provides android-like notification messages. The toasted messages arriving on the screen in a seamless and natural way. 2. jQuery Notification Menu A jQuery plugin to add notification bubbles and a notification list to any menu. 3. Noty noty 是一个很有用的 jQuery 插件,用于创建 alert, success, error and confirmation 信息提示框,替换浏览器标准的对话框。每个提醒都是添加队列并进行显示的。 4. Notify Notify! is a jQuery Notification Plugin which adds simple notifications bars that you can use on your website and application to assist users while […]
View Details15款值得学习的小型开源项目,带你快速步入开源世界
对于初学者来说,小型开源项目更容易理解和学习,那么目前有哪些值得学习的小型开源项目?本文收集整理了知乎上网友推荐的一些不错的小型项目,代码基本都在5000行以内,感兴趣的朋友可以研究下~ SeaJS Sea.js是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。Sea.js 追求简单、自然的代码书写和组织方式,代码非常精简。 Koa Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。 pssh pssh 提供了并行版本的 OpenSSH 工具,特别适合用来控制有大量机器需要连接的情况,包括并行版本的 ssh、scp、rsync 和 kill 命令。该项目是Python写的,代码清晰而简短,数据结构定义的很清楚,看了之后你会称赞的。 grep-at-point 在写代码的时候,有时候会需要查看某个函数/类/变量在哪些地方被使用过。该项目用emacs lisp语言写成,可实现在项目目录下,所有指定扩展名的文件中,搜索当前光标所在的单词。 compile-make 该项目可实现emacs中一键编译的需求。在项目目录下寻找Makefile文件,并执行make命令进行编译。 语言:emacs lisp ;代码行数:19。 sigslot 很精简的 signal slot的实现,跨平台。这个源码有2000多行,但是一大半是为了模板适配不同个数的参数的代码,干货不足1000行。 UCOS uC/OS II(Micro Control Operation System Two)是一个可以基于 ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。 SQLite SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。SQLite亦可以作为桌面数据库使用。 thttpd thttpd 是一个小型的、简单的、可移植的、快速以及安全的HTTP服务器。 Boa Webserver boa是一个小型的web服务器,可以用于多种平台,在嵌入式中比较常见。 C4 4个函数实现的c编译器,大约500行。基本上已经比较完备了,可以自己编译自己。 GLib GLib 是一个包含很多有用的 C 程序的开发包,例如树、哈希、列表等。GLib 之前是属于 GTK 工具包的一部分,现在独立出来成为单独项目。 tj/co 不到三百行,用于改善 node 异步回调语法。 shadowsocks shadowsocks 是一个基于 python 的轻量级 socks 代理软件(谁用谁知道)。 aosabook 这是一本牛书aosabook的续集,500 Lines or Less的源码。里面每一章的代码不超过500行,实现了web服务器、爬虫、OCR等等“大型系统”,每一章由不同领域的大牛完成。看看作者列表,可以说是软件领域的名人堂。 from:http://www.techug.com/15-simple-opensource-projects
View Details这 30 类 CSS 选择器,你必须记在脑袋里!
大概大家读知道id,class以及descendant选择器,并且整体都在使用它们,那么你正在错误拥有更大级别的灵活性的选择方式。这篇文章里面提到的大部分选择器都是在CSS3标准下的,所以它们只能在相应最新版本的浏览器中才能生效,你完全应该把这些都记在你聪明的脑袋里面。 1. * ? 1 2 3 4 * { margin: 0; padding: 0; } 在我们看比较高级的选择器之前,应该认识下这个众所周知的清空选择器。星号呢会将页面上所有每一个元素都选到。许多开发者都用它来清空margin和padding。当然你在练习的时候使用这个没问题,但是我不建议在生产环境中使用它。它会给浏览器凭添许多不必要的东西。 *也可以用来选择某元素的所有子元素。 ? 1 2 3 #container * { border: 1px solid black; } 它会选中#container下的所有元素。当然,我还是不建议你去使用它,如果可能的话。 DEMO 兼容性 IE6+ Firefox Chrome Safari Opera 2. #X ? 1 2 3 4 #container { width: 960px; margin: auto; } 在选择器中使用#可以用id来定位某个元素。大家通常都会这么使用,然后使用的时候大家还是得相当小心的。 需要问自己一下:我是不是必须要给这个元素来赋值个id来定位它呢? id选择器是很严格的并且你没办法去复用它。如果可能的话,首先试试用标签名字,HTML5中的新元素,或者是伪类。 DEMO 兼容性 IE6+ Firefox Chrome Safari Opera 3. .X ? 1 2 3 .error { color: red; } 这是个class选择器。它跟id选择器不同的是,它可以定位多个元素。当你想对多个元素进行样式修饰的时候就可以使用class。当你要对某个特定的元素进行修饰那就是用id来定位它。 DEMO 兼容性 IE6+ Firefox Chrome Safari Opera 4. X Y ? 1 2 3 li a { text-decoration: none; } 下一个常用的就是descendant选择器。如果你想更加具体的去定位元素,你可以使用它。例如,假如,你不需要定位所有的a元素,而只需要定位li标签下的a标签?这时候你就需要使用descendant选择器了。 专家提示:如果你的选择器像X Y Z A B.error这样,那你就错了。时刻都提醒自己,是否真的需要对那么多元素修饰。 DEMO 兼容性 IE6+ Firefox Chrome […]
View Details程序员真正的价值
文章出处:池建强 问:池老师,我是个不爱互动的人,但是您所有的文章我都看了,非常感谢您的引导,我入手了人生第一台 MBP。现在问题来了,但是找不到更合适的人解答,只能求助于您了,如果您有时间的话。问题是这样的:我有个32bit unix file(开启一个服务进程),在 Mac 上执行时错误提示是:exec format error,但是在 Linux 服务器却可以执行,为何?Mac 上有可以运行的方案吗?期待您的回复,不胜感激。 答:Linux 和 OS X 是不同的操作系统,可以尝试在 OS X 里重新编译这个文件。 问:非常感谢!如果没有文件源码是不是就只能认命了? 答:可以在 Mac 上装 Docker,然后对服务进行端口映射就可以了。 答:茅塞顿开。谢池老师。 以上是我和一位读者的对话,这位小伙子在拿到答案之后像一缕烟尘一样消失无踪,之后再也没有出现过。 在微信上加了很多 MacTalk 的读者之后,经常会收到一些奇奇怪怪的问题,关于职场、关于选择、关于朋友、关于 Mac、关于技术等等,不一而足。但是我能回答的却很少。问题不好没法回答,问题太复杂没法回答,问题领域超出我的认知也没法回答,耗时太长的问题我也没 时间回答,实在是惭愧的紧。好在偶尔也能够帮助一些小伙伴解决一些实际问题,心理上略感安慰,比如上面这个问题。 把这段程序员之间的对话翻译一下,大致是这么个故事: 一 位读者有一个32位的 Unix 可执行文件,可以在某种版本的 Linux 服务器上正常运行,运行这个文件作用就是起个进程,开端口,然后与其他程序进行交互。但是这个文件拿到 Mac 上完全没办法运行。就在他趴在 Mac 上愁肠百结万念俱灰的时候,突然想到了「池老师」。不就是这个老家伙把 Mac 夸的像一朵玫瑰一样,让每个程序员都去采摘么?现在扎手了,你不管谁管?于是他给我发来消息,意思就是管也得管,不管也得管,您看着办。 我 拿到问题一看,不难。Linux 和 OS X 虽然师出同门,都是从老前辈 Unix 那儿毕业的,但是后来毕竟各练各的,在 Linux 编译好的程序不可能在 OS X 上用,但是在 OS X 上重新编译一下可能就没事了。我把这个想法告诉了这位程序员,得到的反馈是:对不起哥,没有源代码! 我被这个冷酷的回复震惊了,立刻意识到 刚才的想法并不是最优解决方案,因为在重新编译的过程中,各种包的依赖关系和编译错误足以让你焦头烂额,我随即提供了 B 计划:在 OS X 上安装 Docker,轻量级的容器 Docker 可以运行各种版本的 Linux,把文件扔到 Docker 里,然后通过主机和 Docker 之间的端口映射即可轻松解决这一问题。 虽然这里面会涉及很多技术细节,但是方向是没有问题的,所以这位程序员立刻表示「茅塞顿开」,然后「biu 」的一声就在屏幕对面消失了,没有留给我说「不客气」的机会。 这个问题装个 Linux 虚拟机也可以解决,但是虚拟机过于耗费资源,而且不如 Docker 灵活,所以不是最佳解决方案。Docker 是。 做 为一个程序员,我们除了要掌握多门程序语言和多种数据库,了解前端技术、后端技术,通晓网络七层架构,知道 TCP/IP三次握手和四次挥手,编写漂亮的代码,设计优美的架构……之外,我们还要解决研发、程序运行和产品上线过程中遇到的各种问题,而且被要求以最 小的代价来解决问题……我们容易吗? […]
View Details25 个响应式的 jQuery 导航菜单插件
2014年11月23日源创会年度盛典(北京站)正在报名 每次发这类文章时,用户集中反馈的问题包括: 好像以前发过 —— 答:标题类似,内容不同 怎么只有名称和图片,没有介绍 —— 答:介绍千篇一律,没什么特别的,图片更加直接,当然了最主要是为了偷懒,哈哈 怎么那么多前端的内容? —— 答:多不好吗? 1. MenuItems 2. Sidr 3. Material Menu 4. Responsive Tabbed Navigation 5. PGW Menu 6. jQuery Slimmenu 7. jQuery Sliding Menu 8. Responsive Tabs 9. Mmenu 10. Flex Nav 11. Responsive Full Width Tabs 12. Fixed Nav 13. Daisy Nav 14. Navgoco 15. Naver 16. Smart Menus 17. jQuery Fluid Content Scroller 18. Menu-aim 19. HorizontalNav 20. SlickNav 21. TinyNav.js 22. Menutron 23. Flaunt.js 24. jPanel Menu 25. Repsonsive Toggle Menu via codegeekz from:http://www.oschina.net/news/56988/responsive-jquery-navigation-plugins
View Details为你下一个项目准备的 50 个 Bootstrap 插件
Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。 本文向你推荐 50 个 Bootstrap 的插件,可以考虑在你下一个项目中使用它们。 1. Bootstrap Multiselect 2. Bootstrap Dialog 3. Bootstrap Confirmation 4. Bootstrap Tag Input 5. Bootstrap File Input 6. Bootstrap WYSIWYG 7. Bootstrap Select 8. pNotify Pines Notify 是一个 JavaScript 的消息提醒插件,基于 Bootstrap 框架和 jQuery UI 框架。 9. Bootstrap Forms Helper 10. Pongstagr.am 11. X-editables X-editable 基于 Bootstrap、jQuery UI 和 jQuery 实现了网页文本即时编辑的功能。支持包括文本框、textarea、下拉列表、日期选择等。支持 IE7+ 和其他浏览器。 12. Bootstrap Lightbox Plugin 13. Editable Table 14. Timepicker 15. ClockPicker 16. Bootstrap Video Player 17. Bootstrap Progressbar 18. jQuery Sortable 19. Bootstrap Star Rating 20. Bootstrap Growl 21. Feedback […]
View Details利用mysql的binlog恢复数据
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库。用于slave端执行增删改,保持与master同步。 1.开启binary log功能 需要修改mysql的配置文件,本篇的实验环境是win7,配置文件为mysql安装目录\MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可 eg: [mysqld] …… log_bin = mysql_bin …… log_bin是生成的bin-log的文件名,后缀则是6位数字的编码,从000001开始,按照上面的配置,生成的文件则为: mysql_bin.000001 mysql_bin.000002 …… 配置保存以后重启mysql的服务器,用show variables like '%bin%’查看bin-log是否开启,如图: 2.查看产生的binary log bin-log因为是二进制文件,不能通过记事本等编辑器直接打开查看,mysql提供两种方式查看方式,在介绍之前,我们先对数据库进行一下增删改的操作,否则log里边数据有点空。 create table bin( id int(10) primary key auto_increment,name varchar(255));(测试前我已经建表) insert into bin(name) values ('orange'); 1.在客户端中使用 show binlog events in 'mysql_bin.000001' 语句进行查看,为了排序美观,可以在结尾加\G使结果横变纵,此时结尾无需加;语句结束符。 eg: mysql> show binlog events in 'mysql_bin.000001’\G ……………省略…………… *************************** 3. row *************************** Log_name: mysql_bin.000001 Pos: 174 Event_type: Intvar Server_id: 1 End_log_pos: 202 Info: INSERT_ID=2 *************************** 4. row *************************** Log_name: mysql_bin.000001 Pos: 202 Event_type: Query […]
View Detailsbinlog文件分析与mysqlbinlog工具的修改
问题 本文主要带着以下问题进行学习: 1、什么是binlog,有什么作用 2、binlog有哪些格式 3、分析一条典型binlog ,说明从binlog中可以得到哪些信息 4、如何修改mysqlbinlog,使得可以显示最后一条记录 这里主要考虑binlog的使用及相关格式,而不是关注binlog的写入时机。 一、简介 binlog又叫二进制日志文件,它会将mysql中所有修改数据库数据的Query以二进制的形式记录到日志文件中,如:create,insert,drop,update等;(对于select操作则不会被记录到binlog里,因为它并没有修改数据库的数据)。binlog一般存储在数据目录下,并且命名为:mysql-bin.***(这个可以在配置文件中修改my.cnf:log-bin=mysql-bin,就是文件名的前缀;mysqld在每个 binlog 名后面添加一个数字扩展名。每次启动服务器或刷新日志时增加文件的大小大于max_binlog_size,一个事务不会被拆分开)。 binlog主要是用于保证数据完整的,如主从备份,通过从binlog文件中读取操作来在salve机上进行同样的操作,保证主从备份,当然不可能每次都从开始的地方redo,所以每条记录都有一个时间截TIMESTAMP。 二、简单的使用binlog show binary logs; #显示binlog文件 purge binary logsto 'mysql-bin.**' #删除到**文件 bin/mysqlbinlog binlogfile #解析binlog文件 利用binlog恢复数据: bin/mysqlbinlog --start-datetime=’2011-7-7 18:0:0′--stop-datetime=’2011-7-7 20:07:13′ data/mysql-bin.000008 |mysql -u root 三、类型 binlog的格式有三种,这也反应了mysql的复制技术:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。相应地,binlog的格式也有三种:STATEMENT,ROW,MIXED。 mysql>showvariables like 'binlog_format' #查看binlog的格式 使用mysqlbinlog解析的binlog: MIXED(STATEMENT): # at 193(开始位置) #110708 10:03:06(时间截) server id(产生该事件的服务id) 1 end_log_pos(日志的结束位置) 280 Query(事件类型) thread_id=10 exec_time=0 error_code=0 SETTIMESTAMP=1310090586/*!*/; insert into tvalues(17) /*!*/; ROW模式: BEGIN /*!*/; # at 174 # at 214 #110708 10:49:22server id 1 end_log_pos 214 Table_map: […]
View DetailsMysql Binlog三种格式介绍及分析
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中。 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter表等操作,ROW格式会产生大量日志,因此在考虑是否使用ROW格式日志时应该跟据应用的实际情况,其所产生的日志量会增加多少,以及带来的IO性能问题。) 缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行时候相同 的结果。另外mysql 的复制,像一些特定函数功能,slave可与master上要保持一致会有很多相关问题(如sleep()函数, last_insert_id(),以及user-defined functions(udf)会出现问题). 使用以下函数的语句也无法被复制: * LOAD_FILE() * UUID() * USER() * FOUND_ROWS() * SYSDATE() (除非启动时启用了 --sysdate-is-now 选项) 同时在INSERT …SELECT 会产生比 RBR 更多的行级锁 2.Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改。 优点: binlog中可以不记录执行的sql语句的上下文相关的信息,仅需要记录那一条记录被修改成什么了。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题 缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容,比如一条update语句,修改多条记录,则binlog中每一条修改都会有记录,这样造成binlog日志量会很大,特别是当执行alter table之类的语句的时候,由于表结构修改,每条记录都发生改变,那么该表每一条记录都会记录到日志中。 3.Mixedlevel: 是以上两种level的混合使用,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种.新版本的MySQL中队row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录。至于update或者delete等修改数据的语句,还是会记录所有行的变更。 二.Binlog基本配制与格式设定 1.基本配制 Mysql BInlog日志格式可以通过mysql的my.cnf文件的属性binlog_format指定。如以下: binlog_format = MIXED //binlog日志格式 log_bin =目录/mysql-bin.log //binlog日志名 expire_logs_days = 7 //binlog过期清理时间 max_binlog_size 100m //binlog每个日志文件大小 2.Binlog日志格式选择 Mysql默认是使用Statement日志格式,推荐使用MIXED. 由于一些特殊使用,可以考虑使用ROWED,如自己通过binlog日志来同步数据的修改,这样会节省很多相关操作。对于binlog数据处理会变得非常轻松,相对mixed,解析也会很轻松(当然前提是增加的日志量所带来的IO开销在容忍的范围内即可)。 3.mysqlbinlog格式选择 mysql对于日志格式的选定原则:如果是采用 INSERT,UPDATE,DELETE 等直接操作表的情况,则日志格式根据 binlog_format 的设定而记录,如果是采用 GRANT,REVOKE,SET PASSWORD 等管理语句来做的话,那么无论如何 都采用 SBR 模式记录 三.Mysql Binlog日志分析 通过MysqlBinlog指令查看具体的mysql日志,如下: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SET TIMESTAMP=1350355892/*!*/; BEGIN /*!*/; # at 1643330 #121016 10:51:32 server […]
View DetailsWindows下MySQL日志的启用
1. 首先连接上mysql,查看日志服务是否开启 点击(此处)折叠或打开 show global variables like \’log_bin%\'; 输入上面的命令可以查看当前mysql的日志服务是否开启,图为OFF状态,表示还未开启,MySQL默认状态下是未开启日志服务的。 2. 开启日志服务 配置MySQL根目录下的my.ini文件,在[mysqld]下面添加存放日志的路径,此处我写的是绝对路径,在MySQL的根目录下我创建了log/log-bin/logbin.log路径, 创建目录时要注意以下两点: a) 目录的文件夹命名中不能有空格,否则在访问日志时会报错。 b) 指定目录时要以*.log结尾,即不能仅仅指定到文件夹的级别,上面我创建的路径写了logbin.log,那么在log/log-bin/目录下会产生logbin.000001和logbin.index两个日志文件; 否则不会有日志文件产生。 3. 重启mysql服务 my.ini文件修改后保存,需要重启mysql服务才能生效。windows下右键“计算机”->“管理”->“服务和应用程序”->“服务”里面,选择“MySQL”,然后点击“重启动”,即完成重启服务。 4. 再次查看mysql的日志服务状态,就会看到开启状态 5. 查看日志 在DOS状态下,进入MySQL的bin目录下执行mysqlbinlog命令,可以查看指定的日志文件,例如查看logbin.000001日志 要注意查看日志的目录,因为我的日志目录是和bin在同一级别中,因此先../返回上级目录,再查找log/log-bin/logbin.000001日志。 from:http://blog.itpub.net/29660208/viewspace-1188431/
View Details