Centos官方制作安装u盘的说明
记录一下,本人尚未实验过 http://wiki.centos.org/HowTos/InstallFromUSBkey
To enable multithreading globally, use the threaded option: [text] options {threaded(yes) ; }; [/text] To enable multithreading only for a selected source or destination, use the flags(“threaded”) option: [text] source s_tcp_syslog { tcp(ip(127.0.0.1) port(1999) flags(“syslog-protocol”, “threaded”) ); }; [/text]
配置了远程记录日志,重启后报错,配置没有问题,所以不贴了,报错内容如下: [bash] 启动 syslog-ng:Error binding socket; addr=‘AF_INET(0.0.0.0:6000)’, error=‘Permission denied (13)’ Error initializing source driver; source=‘s_test2_network’, id=‘s_test2_network#0’ Error initializing message pipeline; [失败] [/bash] 问题出在 SELinux上,关掉就OK 特此记录。
[bash] top - 17:00:51 up 98 days, 4:59, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 164 total, 1 running, 160 sleeping, 0 stopped, 3 zombie Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.6%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1880380k total, 1672504k used, 207876k free, 233416k buffers Swap: 4030456k total, 2884k used, 4027572k free, 1018268k cached [/bash] 第一行: top - 17:00:51 - 当前时间 up 98 days, 4:59, - 系统连续运行了多少时间 2 users, - 当前登录用户数 load average: 0.00, 0.00, 0.00 - 系统负载【任务队列的平均长度】 分别表示 1/5/15 分钟的值 第二行: Tasks: 164 total, - 进程总数 1 running, - 正在运行的进程数 160 sleeping, - 睡眠中的进程数 0 stopped, - 停止的进程数 3 zombie - 僵尸进程数 第三行: Cpu(s): 0.2%us, - 用户空间CPU使用率 0.1%sy, - 内核空间CPU使用率 0.0%ni, - 用户空间内改变过优先级的进程的CPU使用率 99.6%id, - 空闲CPU 0.1%wa, - 等待输入输出的CPU使用率 第四行: Mem: 1880380k total, - 总物理内存 1672504k used, - 使用的物理内存 207876k free, - 空闲物理内存 233416k buffers - 用来内核缓存的内存 第五行: Swap: 4030456k total, - 交换分区总量 2884k used, - 使用的交换分区 4027572k free, - 空闲的交换分区 1018268k cached - 缓冲的交换分区总量
python编译后性能并不会提升,但是1来可以减少文件量,2来可以对明文的代码封装,还是挺好的。 makefile #编译后文件的去处 BINDIR := …/bin #源代码所在目录 BASEDIR := …/src #编译参数 可选 DBGFLAGS ?= -O ifeq ($(findstring -O,$(DBGFLAGS)),-O) COM := .pyo else COM := .pyc endif define dirflow FILES := $(wildcard $(1)) DIRS := $$(foreach e, $$(FILES), $$(if $$(wildcard $$(e)/), $$(eval DIRS := $$(DIRS) $$(e)))) FILES := $$(filter-out $$(DIRS),$$(FILES)) ALLFILES := $$(ALLFILES) $$(FILES) $$(foreach e,$$(DIRS),$$(eval $$(call dirflow,$$(e)/))) endef $(eval $(call dirflow ,$(BASEDIR))) sources := $(filter %.py,$(ALLFILES)) clean_com := $(patsubst %.py, _clean_%.py, $(sources)) MKDIR := mkdir -p TEST := test -d RM := rm -rf .PHONY : all all:$(sources) %.py:bin_dir @echo Go into $(dir $@) $(shell $(TEST) $(subst $(BASEDIR),$(BINDIR),$(dir $@)) || $(MKDIR) $(subst $(BASEDIR),$(BINDIR),$(dir $@))) python $(DBGFLAGS) -m py_compile $@ mv $(patsubst %.py, %$(COM), $@) $(subst $(BASEDIR),$(BINDIR),$(dir $@)) @echo Compile $@ done. bin_dir: $(shell $(TEST) $(BINDIR) || $(MKDIR) $(BINDIR)) .PHONY: clean clean: $(clean_com) $(RM) $(BINDIR) $(clean_com):bin_dir $(RM)$(patsubst _clean_%.py, %$(COM), $@)
DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统。 使用 Dmidecode 这个工具可以查看硬件的各种信息。 Dmidecode 应该在主流的 Linux 发行版中都可以找到,因此你只需通过所用发行版的包管理器安装即可,如: aptitude install dmidecode # Debian/Ubuntu yum install dmidecode # Fedora pacman -S dmidecode # Arch Linux emerge -av dmidecode # Gentoo 在linux上,我们可以使用dmidecode来查找DMI信息,其中的“system information”就包含了这些系统信息,如: -t 是指定要查看的信息类型 可以看下dmidecode的在线帮助,还有很多种信息的
环境是64位的Centos6.3 牵涉到的用户:
用户密码文件 /etc/vsftpd/vuser.list
,一行用户一行密码
1 | ftpuser |
生成密码库的命令如下:
1 | # 没有db_load的 apt install db-util |
1 | auth required pam_userdb.so db=/etc/vsftpd/vuser |
1 | #disable anonymous |
1 | #实体用户 |
1 | useradd -s /sbin/nologin -d /home/vsftpuser vsftpuser |
1 | #虚拟用户根目录 |
1 | mkdir /home/vsftpuser/ftpuser |
1 | /etc/init.d/vsftpd restart |
时间轴 Director 一切都从Director开始,Director是所有游戏都需要的基础对象,它把所有LimeJS的逻辑连接到了网页上的单独空间。如果你熟悉flash的话,你可以把它当作stage(舞台),如果你是cocos2d用户,你可以把它视为cocos2d自身的Director。如果你对两者都不熟悉,你就把它当成一个前端控制器。 每个游戏只有一个Director。它掌控了游戏的全局viewport(视点),并且控制哪个scenes(场景)是可见的。在建立游戏逻辑的开始,你需要创建一个Director实例。它的构造函数的参数包括DOM容器元素、stage(舞台)宽和高(像素)。 var director = new dfkit.Director(document.body,320,460); Scene Scene(场景)是一个包含可视元素的用于覆盖整个viewport(视点)的独立部分。这表示同一时间点上只有一个scene(场景)是激活的。例如:在一般的游戏逻辑里,你可能需要一个菜单场景,一个游戏结算的场景。通过调用 director.replaceScene(scene) 或者 director.pushScene(scene)来让一个场景可视。不同点是后者不会移除之前的scene(场景),只是将其隐藏方便之后通过director.popScene()激活。 var scene = new lime.Scene(); director.replaceScene(scene); Transitions 单纯用replaceScene()在场景间快速切换可能吸引不了眼球。为了做的更好些可以在调用replaceScene()时用 transition 和 duration 属性。transition定义了当前场景消失和新场景激活的动画效果。当前支持 Slide(滑动)和 Move(位移)以及 Dissolve(淡入)效果。 director.replaceScene(menuscene,lime.transition.SlideInRight); director.replaceScene(gamescene,lime.transition.Dissolve,2); ScheduleManager(调度管理) Lime中的所有东西都是基于repaint-dirty (重绘-不一致)模式。也就是说当你每次改变了某些东西,你的方法调用并不等于 DOM或者Canvas2dContext调用。你设置的属性将会被标记为dirty并在下一帧被重绘。这允许我们只更新一次,更新那些需要更新的内容、并无状态的保存所有内容。无状态保存更新允许我们在任何时候切换渲染方法。因为JS没有提供任何on-enter-frame事件,所以我们使用了一个静态的lime.sheduleManager对象来模拟。它提供以下方法: schedule(callback, context) – 在每一帧里调用一个方法。Context是this作用域。 unschedule(callback, context) – 清除之前的schedule方法。 scheduleWithDelay(callback, context, delay, opt_limit) – 和schedule类似,但是回调函数只有在超过delay(自上一次执行的延迟时间)秒数时候才会被调用。 callAfter(callback, context, delay) – 在delay指定的时间后调用一次回调函数。 不要在代理里使用JS自带的setTimeout()和setInterval()方法。lime.scheduleManager给你提供了能实现同一功能但却更丰富的方法。你的回调函数只有超过距离上次执行delay的时间后才会被再次执行。这使你能够让动画更加平滑,即使实在CPU性能急剧改变的情况下。 var velocity = 2; lime.scheduleManager.schedule(function(dt){ var position = this.getPosition(); position.x += velocity * dt; // if dt is bigger we just move more this.setPosition(position); },ball); Pausing(暂停) 使用scheduleManager代替timer发放可以充分利用暂停功能。当你希望暂停游戏时,只需调用Director对象的setPaused(true)。这将会暂停所有计划中的方法和动画。一旦你调用setPaused(false),所有的代码又会继续执行,就如同什么都没发生一般。当你的游戏暂停时,lime.PauseScene将会被激活。如果你想自定义暂停场景,你可以覆盖这个类的功能。 mygame.director.setPaused(true); Layers(层) 现在我们准备在屏幕上放点东西了。为了更好的管理你的显示对象,我们引入了lime.Layer对象,你可以把它想象成Photoshop里的图层。Layer可以用来装东西。它和其他的可视对象的行为相同,只是它没有body和尺寸,它们只能用来包含子对象。所以你只需创建好它们,添加到树中,设置合适的位置把子对象添加进去。必须申明的是,Layer不是必须的,你可以在场景中加入任何对象,Layer让你的生活更简单。 var layer = new lime.Layer().setPosition(100,100); scene.appendChild(layer); for(var i=0;i<5;i++){ var box = customMakeBoxFunc().setPosition(i*50,0); layer.appendChild(box); }
Starming 星光社 - 给你最好的文字最美的画面. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 里面好多素材~~