阅读更多

sourceforge 2009-7月优秀项目:Piwik

项目介绍

Piwik 是一个利用Php+MySQL技术构建的开源网页统计工具,它能够提供网站的访问者、关键词、最受欢迎的页面等统计信息。Piwik 的目标很明确:做一个开源的 Google Analytics,但又不仅仅是模仿。


Piwik支持插件,这意味着你可以方便的添加新的插件,自定义自己的Piwik,也可以去掉一些你不需要的功能。要正常使用Piwik,至少需要PHP 5.1.3版本和MySQL 4.1版本。

 

 

Piwik是如何诞生的?

Piwik的前身是phpMyVisites,这是一个简单的网络统计工具。虽然也很受大家的欢迎,但是总体结构没有很好的模块化,以至于没能在开发者社区大展鸿图。我们决定从头开始,建立了一个新的模块(基于插件),开放的网络分析平台。2007年7月,Matthieu设想出了Piwik的原型,花费了大约4个月的时间推出了预览版。不久后的几个月Julien Rouvière加入,第一个公开的alpha版在2008年5月28号推出。


 
项目页:http://sourceforge.net/projects/piwik/

查看详情:http://sourceforge.net/community/potm-200907/

更多sourceforge优秀项目


sourceforge优秀项目介绍之五十三:silex “开源RIA”

sourceforge优秀项目介绍之五十二:DOSBox ‘DOS模拟器’

sourceforge优秀项目介绍之五十一:DotProject 项目管理工具

  • 大小: 9 KB
  • 大小: 136.3 KB
来自: sourceforge.net
11
2
评论 共 3 条 请登录后发表评论
3 楼 airport 2009-07-29 08:40
我用了,感觉不是很好,还是给放弃了,和google analytics比还是有不少差距,无论界面功能都是。

看来开发的团队加入的还是不够。
2 楼 whaosoft 2009-07-29 07:26
长的和google那个蛮像的
1 楼 xieye 2009-07-28 15:12
php的东东一定要支持

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • COM笔记-CoCreateInstance

    COM笔记-CoCreateInstance 很有用的 开发参考 比如 CoCreateInstance(CLSID_VideoRenderer,0,CLSCTX_ALL,IID_IBaseFilter,(void**)&pPreview);这里面的参数是什么意思 ?这个文档可以告诉你。。 欢迎联系:393877568

  • CoCreateInstance 解析

    CoCreateInstance 创建组件的最简单的方法是使用CoCreateInstance函数。 在COM库中包含一个用于创建组件的名为CoCreateInstance的函数。此函数需要一个CLSID参数,在此基础上创建相应组件的一个实例,并返回此组件的某个接口。   CoCreateInstance 的声明 HRESULT _stdcall  CoCreateInstance(

  • COM笔记-类厂

    CoCreateInstance实际上并没有直接创建COM组件 ,而是创建了一个被称作是类厂的组件。而所需的组件正是由些类厂创建的。类厂组件的唯一功能就创建其他的组件。创建组件的标准接口是IClassFactory,用CoCreateInstnce创建的组件实际上是通过IClas

  • 获取COM接口CoCreateInstance启动的进程PID

    CoCreateInstance是一个让COM变得更加有趣和可用的工具。然而,它并没有让你知道一个非常重要的信息——新启动的进程的id。也没有其他的API可以告诉我们这一点。这就是微软所谓的设计。 当我们启动像Excel或者PowerPoint时,问题就出现了。当你需要它们提供服务的时候,他们做得很好。但去尝试让他们退出,你就要开始抓狂了。一些Excel流程是不可能消失的。然后你就会明白为什么你...

  • 类厂IClassFactory和组件的创建

     CoCreateInstance是创建组件时使用得最多的一种方法,但由于其灵活性不足以满足所有组件的需求,因此引入了类厂。所有的组件都是类厂创建的。CoCreateInstance实际上也是按照一般发方法通过类厂来创建组件的。当客户直接使用类厂时,将能够获得更高的灵活性。1.         CoCreateInstance函数此函数需要一个CLSID参数来创建相应组件的一个实例,并

  • java内存泄漏

    内存泄露是指程序中间动态分配了内存,但在程序结束时没有释放这部分内存,从而造成那部分内存不可用的情况,而且指向这块内存空间的指针不再存在时,这块内存也就永远不可达了,内存空间就这么一点点被蚕食。简单来说就是一个不再被程序使用的对象或变量还在内存中占有存储空间的情况。而在 Java 语言中引进了垃圾回收机制,由垃圾回收器负责回收不再使用的对象,既然有垃圾回收器来负责回收垃圾,那么是否还会存在java内存泄露的问题呢? 我们先来了解一下java的内存垃圾回收机制:不论哪种语言的内存分配方式,都需要返回所分配内存

  • COM 学习笔记,2------引用计数,注册,类厂

      引用计数 AddRef 和 Release 函数 当客户从组 件取 得一 个接口 时 , 此引 用计 数值 将 增 1。 当 客户 使用 完某个接口后 , 组件的引用计数值将减 1。 当引用计数值 为 0 时 , 组件 即可将自 己从内存 中删除   三个简单的原则: 返回之前调用AddRef,对于那些返回接口指针的函数,在返回之前应用相应的指针调用AddRef 。这些函数包括Qu...

  • CoCreateInstanceEx函数使用

    CoCreateInstanceEx常用于创建远程组件,因为考虑到远程访问时要在网络上来回传递信息,所以此函数允许一次询多个接口。 CoCreateInstanceEx参数说明 共有如下六个参数,分别为: REFCLSID   rclsid:指定要实例化COM组件的GUID IUnknown   *punkOuter: DWORD   dwClsCtx:指定服务器组件的类型,可以为以

  • 创建一个 MFC+ATL ComExe, 如同Word一样的带有AppID,Com接口 等混合型程序

    1. 首先创建一个MFC 项目2. 菜单->插入->ATL对象3. 提示点确认后,会增加以下文件    APP.idl      接口文件   APP.rgs    COM自动注册文件,程序编译后会以资源形式存在程序中,方便Atl的UpdateRegistryFromResource函数注册/反注册   另外APP.cpp文件内会增加一下函数   App::Un

  • ATL接口映射宏详解

    ATL接口映射宏详解(下)   五.COM_INTERFACE_ENTRY_AGGREGATE(iid, punk) 参ATL例程COMMAP       这一节中将介绍ATL中用于聚集对象的宏。聚集对象的概念请参阅其它参考书。     现在先看一看这个宏的典型用法:     class CAgg : public IDispatchImpl, public ISup

  • COM_INTERFACE_ENTRY2类型转换失败处理

    <br />错误描述如下:<br />1>d:/visual studio 2005/projects/iehost/maindlg.h(112) : error C2440: 'static_cast' : cannot convert from 'ATL::IDispEventSimpleImpl<nID,T,pdiid> *' to 'IDispatch *'<br />1>        with<br />1>        [<br />1>            nID=37,<br />1>

  • 实例深入学习COM技术

    COM技术介绍一、COM介绍1、  定义(Component Object Model)COM是微软公司的最高级的,包罗万象的二进制通讯规范(也就是说是大家都要遵守的合同)。用于软件组件间跨进程,跨机器,和操作系统进行交互操作。COM是透明位置的。它可以在EXE,DLL或者远程机器上使用。OLE是一个主要与用户界面相关的高级功能的集合。COM和OLE的概念界限原本就不清晰,总是

  • CoCreateInstance

     函数功能描述:用指定的类标识符创建一个Com对象CoCreateInstance用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;创建多个同一CLSID的对象时, 可以参考 CoGetClassObject 函数。函数原形:STDAPI CoCreateI

  • ATL接口映射宏详解[2]

    5:CComCreator::CreateInstance(void* pv, REFIID riid, LPVOID* ppv) { T1* p = NULL; ATLTRY(p = new T1(pv))//创建类厂对象 if (p != NULL) { p->SetVoid(pv); p->InternalFinalConstructAddRef(); hRes = p->FinalCons

  • atl接口

    ATL生成实现 参考http://blog.csdn.net/ghevinn/article/details/31729951/#comments 总结: 1.查找atl 注册信息:regsvr32  FirstAtl.dll 后,打开注册表,ctrl+F 后输入 FirstAtl.dll 开始搜索信息,直到出现下图 其中ProgID就是需要的信息 2.c++快速调用 #

  • 通过ATL开发COM_2实现IUnknown接口

    每个COM组件需要实现这三个功能1. 实现IUnknown接口 (通过 CComObjectRootEx 实现)2. 实现一个类工厂,支持组件的创建 (通过 CComCoClass 实现)3. 实现自注册 ATL是如何实现IUnknown接口的? 组件通过派生CComObjectRootEx 获得 IUnknown支持template class CComObj

  • ATL接口映射宏详解[7]

    七、COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid) 参ATL例程COMMAP 先看看这个宏的定义: #define COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid)/ {&iid,/ (DWORD)&_CComCacheData,/ (DWORD)offsetof(_ComMapClass

Global site tag (gtag.js) - Google Analytics