`
rcfalcon
  • 浏览: 234040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
孩子的好奇心,总是无穷的。 记得我小时候,最喜欢看的书就是十万个为什么,家里的几本都被我翻烂了,面对一个个陌生的问题,总是那么的好奇,总是缠着“大人们”问这问哪,寻根究底。 读小学一、二年级的时候流 ...
今天需要写一个功能,对于数据库中的数据,在用户通过WEB显示出来的时候,自动启动服务器端脚本对每个数据的有效性进行检测,并将结果呈现给用户。 我考虑的就是,呈现每条数据的时候,启动一个ajax通信进程,将结果反馈回来就OK了。 细节方面需要考虑的是,每个进程完成任务后在回调的时候如何知道它的“宿主”数据是哪一个(哪条数据发起的任务)。 还有由于XMLHttpRequest对于每个任务都是私有的,我们需要多任务并发,所以这里我使用一个类封装整个任务。每次启动一个类对象,将其作为类的私有成员。 下面看看我们的客户端脚本模型 //检测URL的ajax进程类 functi ...
大家在访问 google或百度的时候,假如要搜索“阿凡达”,我们可能只需要输入一个 “阿”字,网站就会自动匹配一些词组供我们选择,这个设计非常人性化。今天我们就此技术简要介绍,本文假设读者不清楚ajax技术细节。 先说说AJAX,我之前也没有关注过这方面,稍微了解了一下,其实它就是一个客户端脚本与服务器动态通信,在WEB界面不刷新的情况下就可以进行交互的一个技术。这个技术能带来非常棒的用户体验,将网页从“表单”提交方式,变成了界面互动方式,使得整个页面看上去交互性更强大,更方便。 ajax 大致流程如下: 1客户端脚本 - 2触发事件 - 3访问服务器脚本 - 4通过固 ...
96年,小学4年级,LOGO语言 —— 当时就觉得这个海龟语言很低效,但是很画出很多奇妙的规则图形。 97年,小学5年级,FBASIC —— 小霸王、裕兴普及型电脑上带的一个8位机游戏开发小语言。 98年,小学6年级,QBASIC、文曲星BASIC —— 尝试自己做点纯文字小游戏和小应用。。太2了,当时还用BASIC自认为很聪明的把DOS“封装”了一次,不用敲命令就能进行一些日常控制……(当时我的电脑上没windows,电脑跑个windows3.2慢成牛,不过当时很惊奇的发现windows3.2能多任务,觉得很不可思议。。) 98年,小学6年级毕业,VB —— 进入windows世界。 ...
现在我们的整个系统基本可用了,还缺少什么? —— 客户端自动升级。 当我们把整个系统部署下去之后,如果打补丁、升级版本等,都需要让用户重新下载的话,肯定用户会觉得很厌烦。 所以我们应该要开发一个loader,客户端能够自动检测更新、升级,并可以在服务器端打包升级流及升级流信息下发。 在此系统中,我直接是服务器下发一条升级信息(带版本号),然后与客户端当前版本号进行配对,若高于客户端,则开始客户端更新升级。 这里由于我们的客户端很小,所以我直接将客户端exe通过TCP传输下来。客户端接收完毕之后,自我关闭,换成更新过的exe启动。 这里有个小伎俩,一个exe程序如何升级自身 ...
需要共享资源,则需要探测本地资源分布情况。 此处我们用的算法比较2……不过还是说说吧。 下面使用MFC的CFileFind实现一个本地文件递归收集器,以jason格式存储文件路径和文件大小: #ifndef COLLECTER_H_ #define COLLECTER_H_ #include<iostream> #include<vector> #include "StdioFileEx/StdioFileEx.h" #define TargetFile "result.txt" #defi ...
继续上次说的,其实任务调度宏观上普遍分为两种,实现上总的来说就是一个串行、一个并行,上次我们介绍的TCP传送服务我们是使用并行的实现的(任务池),这次我们再来一个串行的,这就简单多了,就是一个队列,FIFO,我们用它来实现下载任务(假设我们下载任务只能单独进行)。 我们用一个NS_Download_Pool类来封装对其的管理。 #ifndef NETSHARE_DOWNLOAD_POOL_H_ #define NETSHARE_DOWNLOAD_POOL_H_ #include "StdioFileEx/StdioFileEx.h" #include & ...
前段时间和朋友一起做了一个类似于电驴、迅雷 + MSN工具的毛坯模型,基本上所有功能都是从socket通信级别向上实现。 整体架构为C/S架构,使用MFC实现。技术上都是很老的东西,此文主要介绍类似于 电驴 的这样一个软件的设计思路和部分代码框架。 我们实现的代码不是很优化,仅为设计思路的佐证。 我最初做这个小软件的想法是,方便一个小型网络中大家的资源共享和交流。 每个人都能共享出自己的一部分文件,当然这个可以通过WINDOWS的共享文件夹或者LINUX的SAMBA实现,不过假如在我并不知道共享源的情况下,就很难获得资源了。有人说,直接在WINDOWS的网上邻居里可以看到局域网上大家 ...
这两天碰到一个小问题卡了我老半天……就是LINUX下PHP程序与其他程序通信。 我们需要实现用户在WEB页面上进行操作时可以启用我们在服务器端的后台程序(用C、C++编写)。 之前在windows下,已经使用命名管道实现(请见我之前的博文http://blog.csdn.net/rcfalcon/archive/2010/02/09/5303142.aspx),这次将服务器整体移往LINUX下。 服务器环境 CentOS 5 + apache + mysql + php 于是乎基本按照之前的代码框架,很快就在服务器端调通了。(但是我是使用的root用户直接运行的PHP脚本测试 ...
高三的时候准备信息学奥赛,到处做编程题。。 当时自己为AC了这道题得意了好一阵子…… 是TOJ上的一道题目, 其解题思路涉及到 随机贪心。。 什么是随机贪心?这里用我自己的话给个简单的介绍吧。 贪心算法就是根据问题的本质,给出一个最优解导向,然后不断的去迭代进而求出最优解。 而在很多时候,未必能准确的找到这个最优解导向(或者根本不存在,比如NP问题),但却可以找到一个近似的导向算法(近似贪心算法)。那么我们也可以在迭代若干次之后得到一个最优解的近似解。 假如我们打乱整个系统的初始状态为其等效状态,然后再进行上述迭代,又可以求到一个近似解。 如果我们能穷举出所有的等效初始状态 ...
今天在电脑里掏出来自己以前试着使用SDL游戏引擎的时候做的一个简单版 是男人就坚持20秒的小游戏。。 玩家通过键盘WSAD操作人物躲避四面八方来的物体,看最终能坚持多长时间。 图片是随便在网上找的或者自己画的。 GAME OVER 简单的贴一下代码~ #pragma comment(lib, "sdl/lib/SDL.lib") #pragma comment(lib, "sdl/lib/SDLmain.lib") #pragma comment(lib, "sdl/lib/SDL_ttf. ...
最近工作开始做一个简单演示系统(用PHP、C++),我负责WEB方面以及网站后台数据库等。 之前开发用的环境是WAMP,我用的就是自己机器的windows XP + apache + mysql + php。 现在需要将网站整体架构移往LINUX下,由于我对LINUX也不熟,我就装了一个图形界面的CentOS5。 首先是CentOS5的LAMP环境搭建,这个还是没啥问题,直接在图形界面下点吧点吧就安装好了。 然后是php程序,直接拷过去之后可以运行。。但是中文乱码。 嗯,没辙,改成UTF8格式,搞定了。 然后是整体拷贝mysql数据库内容,使用mysqldump工具直接将 ...
这几天工作中需要写个程序对于一个视频网站地址,如优酷的某个地址,提取出其中的FLASH地址来。 然后我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能。 贴一下关键代码: <?php //获取优酷页面中的flash地址 function get_flash_url( $url ) { $lines = file($url); foreach ($lines as $linenum=> $line) { preg_mat ...
这个是我之前做的一个2D游戏(未完成)中的一部分, 实现的整个游戏的状态机引擎部分框架,在此分享一下我的代码。 众所周知,一个游戏(或者一个应用程序),我们都可以把各部分界面切分为不同的状态,然后整个系统过程就是一个有限状态机。 我这里做的工作就是实现这个状态机框架以及具体的调度过程。 游戏主引擎类头文件 /* * CopyRight 2009 - 2010 GDE工作室 * 游戏主引擎 * =================================== * 09/12/12 cg create */ #ifndef GDE_GAM ...
HGE引擎提供一个基本的GUI控件类,其不实现任何功能,但是提供一套虚函数和属性供派生类使用。 开发者可以在此基础之上开发属于自己的控件,总的来说还是比较方便的。 我在开发自己的游戏框架过程中,吸取了许多经验教训。 建议HGE引擎的使用者们不要直接在渲染过程中使用HGE提供的图形函数,而应该将他们全部都封装在GUI控件派生类中, 这样有几大好处。 1. 更贴近面向对象,使得程序框架清晰; 2. 更好管理资源,使用和释放都在同一个小模块中,即使规模扩大,也方便维护; 3. 易复用,我们可以整理一套统一的基类,然后逐步派生、组合实现我们需要的功能。 下面给出我在开发过程中 ...
Global site tag (gtag.js) - Google Analytics