- 从头开始读skynet源码(1)main入口干了什么
BanFS
skynet1024程序员节后端
使用skynet一年半了。源码也断断续续读了不少,也看了几篇skynet的源码分析。他们都说的很好。但是觉得分析只是给你一个理解代码的观点,但是没个人的理解方式是不一样的,我也写一写我自己的理解。下面进入正题。首先,还是要有一个观念,skynet是干嘛的,云风前辈的Skynet设计综述,wiki什么的都是要读的。然后进入正题。从我学习开始,我理解的一个C/C++程序都是从main函数开始运行的,s
- 探索AI的前世今生:从图灵测试到ChatGPT的辉煌历程
AI与编程之窗
人工智能人工智能chatgptAI机器学习神经网络专家系统深度学习
引言你是否曾在科幻电影中看到过那些智能超群的机器人,或是掌控世界的人工智能系统?在《终结者》里,天网(Skynet)成为了人类的梦魇,能够自我学习、进化,甚至操控全球的武器,与人类展开了一场生死存亡的对决。这样的情节让人不禁思考:我们离这样的未来还有多远?或许你也曾在《钢铁侠》中见识过贾维斯(J.A.R.V.I.S.)——那个无所不能的智能助手,它不仅能操控整个斯塔克大厦,还能为托尼·斯塔克提供即
- Go 语言 vs C+Lua(Skynet)游戏服务器方案对比分析
你采不起的野花
golanglua游戏
为啥挑这两个呢?因为两种技术分别对应CSP模型和Actor模型,都是经过时间检验的成熟且可靠的并发模型,问了很多地方,经过gpt整理得出如下报告。从开发效率、运行性能、热更新扩展、云部署与水平扩展能力、多类型游戏支持等五个维度系统对比Go和基于Skynet的C+Lua两种游戏服务器技术方案,并给出不同场景下的选型建议。下表列出了各关键指标在两种方案中的优劣势对比(后续正文中引用来源):指标/特性G
- Skynet:轻量级在线游戏框架教程
翁晔晨Jane
Skynet:轻量级在线游戏框架教程项目地址:https://gitcode.com/gh_mirrors/skynet/skynet1.项目介绍Skynet是一个由xzben开发的开源项目,它主要设计用于构建高效、可扩展的在线游戏服务端。不同于电影中的复杂人工智能系统,这个Skynet专注于简化网络游戏中服务器端的逻辑处理,提供了一套灵活的消息处理机制和轻量级的服务管理方案。通过其高度模块化的设
- skynet.rawcall使用详解及应用场景
monGyrate
SkynetSkynetLua游戏服务器
目录核心特性函数原型使用场景场景1:高性能二进制传输(如文件转发)场景2:自定义序列化协议(如ProtocolBuffers)场景3:跨服务共享内存(避免拷贝)配套接收方实现与skynet.call的对比注意事项典型错误示例总结skynet.rawcall是Skynet框架中用于直接传递原始二进制数据的低级通信接口,适用于需要绕过自动序列化/反序列化、手动控制内存或实现高性能传输的场景。以下是其详
- skynet.forward_type使用详解
monGyrate
SkynetSkynetLua游戏服务器
目录核心结论底层机制解析1.消息内存生命周期2.消息类型与协议处理函数用法详解函数签名示例代码关键使用场景场景1:消息转发(避免数据被释放)场景2:处理复杂内存对象配置表示例与说明注意事项总结skynet.forward_type是Skynet中用于精细化控制消息内存管理和重定向消息处理流程的核心机制,尤其在需要自定义内存释放或实现消息转发时至关重要。以下是对其作用、原理及用法的详细解析:核心结论
- skynet.call使用详解
monGyrate
SkynetSkynetLua游戏服务器
目录skynet.call详细解析1.函数签名与参数2.内部实现机制3.会话ID与协程调度4.超时与错误处理5.返回值处理6.协议类型的影响7.skynet.callvsskynet.send8.示例代码分析9.最佳实践10.总结skynet.call详细解析1.函数签名与参数函数签名:skynet.call(addr,typename,...)addr:目标服务的地址(整数或字符串形式的服务名)
- 上位机图像处理和嵌入式模块部署(树莓派4b用skynet实现进程通信)
嵌入式-老费
junit
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]】前面我们说过,在工业系统上面一般都是使用多进程来代替多线程。这后面,主要的原因还是基于安全的考虑。毕竟一个系统里面,如果很多的功能都focus在一个进程里面,这本身比较危险。因为这意味着,如果一个线程里面的code不是很健壮,那么整个系统就无法正常运行了。所以大家普遍采用的方法还是多进程。当然多进程就会
- skynet使用json收发数据
gdut17
Lua
skynetapi常用的apiskynet.newserviceskynet.forkskynet.startskynet.dispatchsocket.listensocket.startsocket.read,write(require"socket")!!!socket.recv,send(require"client.socket")cjson.decodecjson.encodemain
- skynet.dispatch 使用详解
monGyrate
SkynetSkynetLua游戏服务器
目录skynet.dispatch函数详解1.函数定义与参数2.消息处理流程3.使用示例示例1:处理Lua协议消息示例2:处理自定义协议消息4.关键机制(1)协程与阻塞操作(2)消息响应5.与skynet.register_protocol的协作6.注意事项7.典型应用场景总结skynet.dispatch函数详解skynet.dispatch是Skynet框架中用于注册消息处理函数的核心API。
- skynet网络包库(lua-netpack.c)的作用解析
monGyrate
skynetSkynetLua游戏服务器
目录网络包库(`lua-netpack.c`)的作用解析1.数据包的分片与重组2.网络事件处理3.内存管理4.数据打包与解包动态库(.so)在Lua中的使用1.编译为动态库2.Lua中加载与调用(1)加载模块(2)核心方法(3)使用示例3.注意事项总结网络包库(lua-netpack.c)的作用解析该库是Skynet框架中用于高效处理网络数据包的核心模块,主要功能包括:1.数据包的分片与重组协议格
- skynet.netpack四个核心函数详解
monGyrate
skynetSkynetLua游戏服务器
目录1.`netpack.filter(queue,msg,sz)`2.`netpack.pop(queue)`3.`netpack.tostring(msg,sz)`4.`netpack.clear(queue)`完整使用场景示例总结在Skynet中,netpack模块提供了四个核心函数,用于处理网络数据包的接收、粘包解析和队列管理。以下是这四个函数的详细解析:1.netpack.filter(
- Skynet 中 snlua 服务 init 细节
Winston-Tao
skynet源码阅读skynetc语言消息队列网络编程
本篇作为《Skynet中snlua服务启动整体流程分析》的内容补充,主要是从C语言层面一步步剖析,到Lua层面(loader.lua、服务启动脚本),最后再讲解如何将回调函数设为skynet.dispatch_message。主要希望能更好地理解Skynet如何初始化一个snlua服务,并让你对它的启动机制有一个全面、细致的认知。一、前置背景:snlua服务是什么?在Skynet中,snlua是最
- Skynet 中 snlua 服务启动整体流程分析
Winston-Tao
skynet源码阅读skynet游戏开发C语言游戏服务器框架lua
前言:在Skynet中,Lua扮演了极其重要的角色。Skynet大多数业务逻辑都跑在一个个Lua服务里,而能够将Lua环境嵌入到Skynet框架下,并与Skynet消息调度机制完美结合,正是snlua服务所承担的核心功能。本文将着重分析snlua服务的核心实现,包括其初始化过程、协程扩展(Profile)、内存管理,以及如何与Skynet主循环交互等细节,帮助你在阅读Skynet代码或自定义服务时
- skynet网络包库(lua-netpack.c)的作用解析
monGyrate
skynetskynet游戏服务器网络C语言Lua
目录网络包库(`lua-netpack.c`)的作用解析1.数据包的分片与重组2.网络事件处理3.内存管理4.数据打包与解包动态库(.so)在Lua中的使用1.编译为动态库2.Lua中加载与调用(1)加载模块(2)核心方法(3)使用示例3.注意事项总结网络包库(lua-netpack.c)的作用解析该库是Skynet框架中用于高效处理网络数据包的核心模块,主要功能包括:1.数据包的分片与重组协议格
- [Skynet 基础】(二) 创建日志服务
OSwich
skynet基础ubuntu开发语言
文章目录概述基本配置使用Lua定制日志服务概述日志模块主要用于格式化输出程序日志,方便后续从日志中定位程序运行过程中出现的问题。当然日志除了日志内容本身之外,还应该包括文件名、行号、时间戳、线程、协程号、日志级别等信息。在输出错误日志时,还应附加程序的函数调用栈信息,便于后续分析和排查问题。日志系统一般分为5个等级:DEBUG:调试用的日志,线上运行时屏蔽不输出INFO:普通日志,线上运行时输出,
- 游戏引擎:BigWorld(大世界3D游戏引擎)、KBengine、Skynet
持续努力
游戏游戏引擎3d服务器
BigWorld:服务端引擎+客户端引擎BigWorld公司网址http://www.bigworldtech.com/该引擎是澳大利亚BigWorldPty.Ltd所开发的,由服务器软件、内容创建工具、3D客户端引擎、服务器端实时管理工具组成,为致力于构建富有创造力的一流的新一代网络游戏的开发商降低了开发周期和成本。作为世界上最优异的大型多人在线网络游戏(MMO)解决方案,与其他著名商业游戏引擎
- 基于 skynet 的 MMO 服务器设计
嘎嘎嘎498451
服务器
最近,我们的合作方陌陌带了他们的一个CP到我们公司咨询一下skynet做mmo游戏项目中遇到的一些问题。因为他们即将上线一款MMO,在压力测试环节暴露了许多问题。虽然经过我们的分析,有很多问题出在他们的压力测试程序本身编写的bug,但同时也暴露出服务器的设计问题。核心问题是,他们在实现mmo服务器时,虽然使用了skynet框架,但却把所有的业务逻辑都放在了同一个lua服务中,也就是一切都运行在一个
- Skynet入门(一)
笨鸟先飞的橘猫
luaSkynet
概念skynet是一个为网络游戏服务器设计的轻量框架。但它本身并没有任何为网络游戏业务而特别设计的部分,所以尽可以把它用于其它领域。设计初衷如何充分利用它们并行运作数千个相互独立的业务。模块设计建议在skynet中,用服务(service)这个概念来表达某项具体业务,它包括了处理业务的逻辑以及关联的数据状态。使用skynet实现游戏服务器时,不建议把业务状态同步到数据库中,而是存放在服务的内存数据
- go hive skynet_MMORPG游戏服务器技术选型参考-Go语言中文社区
weixin_39908948
gohiveskynet
游戏服务器一般追求稳定和效率,所以偏向于保守,使用的技术手段也是以已经过验证、开发人员最熟悉、能HOLD为主要前提。1、典型按场景分服设计开发语言:c++数据库:mysql架构:多个网关:维持与玩家间的SOCKET连接,可处理广播、断线重连等逻辑。一个或多个账号登陆验证服务器:处理登陆、排队等逻辑。多个场景服务器:处理在本地图上能解决的逻辑,如:打怪、玩家间战斗、接任务、完成任务等各种不需要跨地图
- skynet
吓人的鸟
编程语言-c/c++编程语言-luaskynetcluagameserver
https://github.com/cloudwu/skynet电商不是有C2BB2CC2C这些个概念么,互动百科的CEO甚至还对抄袭美其名曰:COPYTOCHINA(C2C)。鸟人今天也为C2B赋予新意:COPYTOBLOG。哈哈研究skynet的朋友请移步云风的博客,我这里纯属抄袭下来做标记笔记用的,因为个人阅读习惯如此。http://blog.codingnow.com/2012/08/s
- Skynet:套接字线程工作原理
「已注销」
微服务luac语言
涉及的到的相应结构体以及预定义注释为://用于标记socket结构体的状态#defineSOCKET_TYPE_INVALID0//socket结构体未被使用#defineSOCKET_TYPE_RESERVE1//socket结构体已被分配,但是还没有实际进行网络连接#defineSOCKET_TYPE_PLISTEN2//已经绑定套接字监听端口号,但是没有添加到epoll监听事件,调用star
- skynet 源码阅读 -- 「揭秘 Skynet 网络通讯」
Winston-Tao
skynet源码阅读skynetc语言网络编程epoll
本文将聚焦Skynet网络通讯的核心线程thread_socket,并深入探讨skynet_socket_poll、forward_message、socket_server_poll等关键函数如何协作,实现高效的网络数据收发与消息分发。1.背景与目标Skynet之所以能轻量高效,网络I/O模块的功劳不可忽视。它利用一个独立线程不断poll网络事件,把事件打包成socketmessage再转交给目
- skynet源码分析(7)--skynet中的timer
心中那自由的世界
作者:
[email protected],转载请注明作者skynet的timer是做游戏用得比较频繁的一个功能,分析一下它的源码还是有意义的。而且核心的C源码除了timer和网络以外,已经基本分析得差不多了。其它都是跟luacapi相关,或者是跟lua交互比较多的。timer的源码在skynet-timer.c和skynet-timer.h中。在开始看代码之前,请大家默念三遍:1秒=10
- 【skynet源码阅读系列】03_skynet_context_new
程序员杨小哥
skynet
上一节看了skynet_start()的一部分代码,那部分代码主要做了下面几件事。如果当前进程收到SIGHUP信号,则调用handle_hup函数,将SIG设为1检查配置文件内的deamon配置,这个配置对应一个文件路径,文件内的记录进程的pid号,防止重复启动skynet进程,第一次启动将自动将进程号写入文件。重定向了文件描述符,把文件描述符0,1,2重定向到了/dev/null,相当于当前进程
- skynet 源码阅读 -- timer 的实现原理
Winston-Tao
skynet源码阅读c语言skynettimer时间轮算法
1.Timer驱动的核心流程1.1Timer线程驱动以下是timer线程的核心流程代码。Skynet的Timer模块是通过一个单独的线程(thread_timer)来定期更新定时器的状态。每隔2500微秒(2.5ms)更新一次定时器的状态。ps:为什么是2500?staticvoid*thread_timer(void*p){structmonitor*m=p;skynet_initthread(
- skynet 源码阅读 -- 核心概念服务 skynet_context
Winston-Tao
skynet源码阅读skynet游戏开发C语言游戏服务器框架lua
本文从Skynet源码层面深入解读服务(Service)的创建流程。从最基础的概念出发,逐步深入skynet_context_new函数、相关数据结构(skynet_context,skynet_module,message_queue等),并通过流程图、结构图、以及源码片段的细节分析,希望能对Skynet服务的创建有一个由浅入深的系统认识。1.前言在Skynet中,“服务(Service)”是最
- skynet 源码阅读 -- 启动主流程
Winston-Tao
skynet源码阅读skynetskynet启动游戏服务器框架c语言
Skynet启动主流程分析Skynet是一个轻量级、高并发的服务器框架。它在启动时会进行一系列初始化操作,并启动多个不同功能的线程(Monitor、Timer、Worker、Socket),从而实现消息分发、定时器、网络I/O等核心功能。本文主要从main()函数开始一步步trace,循序渐进地看Skynet的启动过程以及各条线程的分工,为后续深入阅读Skynet源码做铺垫。1.启动入口main函
- go hive skynet_golang-栈内存空间
weixin_39980596
gohiveskynet
Go语言设计与实现中关于栈空间的描述多数架构上默认栈大小都在2~4MB左右,极少数架构会使用32MB作为默认大小。用户程序可以在分配的栈上存储函数参数和局部变量。Go语言的逃逸分析遵循以下两个不变性1.指向栈对象的指针不能存在于堆中;2.指向栈对象的指针不能在栈对象回收后存活;栈内存空间Go语言使用用户态线程Goroutine作为执行上下文,它的额外开销和默认栈大小都比线程小很多,然而Gorout
- skynet cluster集群笔记
半夏知半秋
skynet笔记服务器lua系统架构
skynetcluster集群笔记前言cluster相关方法说明集群设计方案:集群中常遇到的问题:注意事项:前言skynet是一个基于事件驱动的分布式游戏服务器框架,支持构建高性能、高并发的网络程序。在skynet中,集群是指将多个节点连接在一起,共同协作完成任务的一个系统,一个skynet集群架构中涉及的一些名词如下:1.节点:skynet中的节点是指运行着skynet实例的独立服务器。每个节点
- Java开发中,spring mvc 的线程怎么调用?
小麦麦子
springmvc
今天逛知乎,看到最近很多人都在问spring mvc 的线程http://www.maiziedu.com/course/java/ 的启动问题,觉得挺有意思的,那哥们儿问的也听仔细,下面的回答也很详尽,分享出来,希望遇对遇到类似问题的Java开发程序猿有所帮助。
问题:
在用spring mvc架构的网站上,设一线程在虚拟机启动时运行,线程里有一全局
- maven依赖范围
bitcarter
maven
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile
依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用
- Jaxb org.xml.sax.saxparseexception : premature end of file
darrenzhu
xmlprematureJAXB
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
- CSS Specificity
周凡杨
html权重Specificitycss
有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢? because specificity
CSS 的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。
规则:
HTML标签的权重是1
Class 的权重是10
Id 的权重是100
- java与servlet
g21121
servlet
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
- eclipse中安装maven插件
510888780
eclipsemaven
1.首先去官网下载 Maven:
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.2.3-bin.tar.gz
下载完成之后将其解压,
我将解压后的文件夹:apache-maven-3.2.3,
并将它放在 D:\tools目录下,
即 maven 最终的路径是:D:\tools\apache-mave
- jpa@OneToOne关联关系
布衣凌宇
jpa
Nruser里的pruserid关联到Pruser的主键id,实现对一个表的增删改,另一个表的数据随之增删改。
Nruser实体类
//*****************************************************************
@Entity
@Table(name="nruser")
@DynamicInsert @Dynam
- 我的spring学习笔记11-Spring中关于声明式事务的配置
aijuans
spring事务配置
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
- java 动态代理简单实现
antlove
javahandlerproxydynamicservice
dynamicproxy.service.HelloService
package dynamicproxy.service;
public interface HelloService {
public void sayHello();
}
dynamicproxy.service.impl.HelloServiceImpl
package dynamicp
- JDBC连接数据库
百合不是茶
JDBC编程JAVA操作oracle数据库
如果我们要想连接oracle公司的数据库,就要首先下载oralce公司的驱动程序,将这个驱动程序的jar包导入到我们工程中;
JDBC链接数据库的代码和固定写法;
1,加载oracle数据库的驱动;
&nb
- 单例模式中的多线程分析
bijian1013
javathread多线程java多线程
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载。
饿汉式:
package com.bijian.study;
public class Singleton {
private Singleton() {
}
// 注意这是private 只供内部调用
private static
- javascript读取和修改原型特别需要注意原型的读写不具有对等性
bijian1013
JavaScriptprototype
对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有
- 【持久化框架MyBatis3六】MyBatis3集成第三方DataSource
bit1129
dataSource
MyBatis内置了数据源的支持,如:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<data
- 我程序中用到的urldecode和base64decode,MD5
bitcarter
cMD5base64decodeurldecode
这里是base64decode和urldecode,Md5在附件中。因为我是在后台所以需要解码:
string Base64Decode(const char* Data,int DataByte,int& OutByte)
{
//解码表
const char DecodeTable[] =
{
0, 0, 0, 0, 0, 0
- 腾讯资深运维专家周小军:QQ与微信架构的惊天秘密
ronin47
社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心
- java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
bylijinnan
java
public class MinOfShiftedArray {
/**
* Q69 旋转数组的最小元素
* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
* 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
*/
publ
- 看博客,应该是有方向的
Cb123456
反省看博客
看博客,应该是有方向的:
我现在就复习以前的,在补补以前不会的,现在还不会的,同时完善完善项目,也看看别人的博客.
我刚突然想到的:
1.应该看计算机组成原理,数据结构,一些算法,还有关于android,java的。
2.对于我,也快大四了,看一些职业规划的,以及一些学习的经验,看看别人的工作总结的.
为什么要写
- [开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖
comsci
开源项目
为什么这样说呢? 因为科学和技术的发展有时候需要一个平缓和长期的积累过程,但是行政和商业体系本身充满各种不稳定性和不确定性,如果你希望长期从事某个科研项目,但是却又必须依赖于某种行政和商业体系,那其中的过程必定充满各种风险。。。
所以,为避免这种不确定性风险,我
- 一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )
cwqcwqmax9
sql
见 http://www.itpub.net/forum.php?mod=viewthread&tid=239011
Web翻页优化实例
提交时间: 2004-6-18 15:37:49 回复 发消息
环境:
Linux ve
- Hibernat and Ibatis
dashuaifu
Hibernateibatis
Hibernate VS iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mappi
- 备份MYSQL脚本
dcj3sjt126com
mysql
#!/bin/sh
# this shell to backup mysql
#
[email protected] (QQ:1413161683 DuChengJiu)
_dbDir=/var/lib/mysql/
_today=`date +%w`
_bakDir=/usr/backup/$_today
[ ! -d $_bakDir ] && mkdir -p
- iOS第三方开源库的吐槽和备忘
dcj3sjt126com
ios
转自
ibireme的博客 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份
Github上排名靠
- html wlwmanifest.xml
eoems
htmlxml
所谓优化wp_head()就是把从wp_head中移除不需要元素,同时也可以加快速度。
步骤:
加入到function.php
remove_action('wp_head', 'wp_generator');
//wp-generator移除wordpress的版本号,本身blog的版本号没什么意义,但是如果让恶意玩家看到,可能会用官网公布的漏洞攻击blog
remov
- 浅谈Java定时器发展
hacksin
java并发timer定时器
java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。
Timer与ScheduleThreadPoolExecutor对比:
1.
Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列
- 移动端页面侧边导航滑入效果
ini
jqueryWebhtml5cssjavascirpt
效果体验:http://hovertree.com/texiao/mobile/2.htm可以使用移动设备浏览器查看效果。效果使用到jquery-2.1.4.min.js,该版本的jQuery库是用于支持HTML5的浏览器上,不再兼容IE8以前的浏览器,现在移动端浏览器一般都支持HTML5,所以使用该jQuery没问题。HTML文件代码:
<!DOCTYPE html>
<h
- AspectJ+Javasist记录日志
kane_xie
aspectjjavasist
在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。
@Override
public String get(String key) {
// long start = System.currentTimeMillis();
// System.out.println("Be
- redis学习笔记
MJC410621
redisNoSQL
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
- 使用redis实现分布式锁
qifeifei
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret
- BI并非万能,中层业务管理报表要另辟蹊径
张老师的菜
大数据BI商业智能信息化
BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP、CRM、SCM、进销存、HER、OA等。
BI系统不同于传统的管理信息系统,他号称是一个整体应用的解决方案,是融入管理思想的强大系统:有着系统整体的设计思想,支持对所有
- 安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题
wudixiaotie
function
1.在~/.bashrc最后加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
2.重新启动terminal输入:
rvm use ruby-2.2.1 --default
把当前安装的ruby版本设为默