Windows安装MinGW使用gcc和g++命令

MinGW 是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/LinuxWindows平台生成本地的Windows程序而不需要第三方C运行时库。

这样在windows下的cmd中就可以使用gccg++命令了吧?那就开始配置环境变量以及所需要的MinGW安装

1、安装在DD:MinGW

2、配置环境变量

添加环境变量中的PATH的值

D:MinGWbin(注意这里不要删除其他的PATH值,第二要改成自己安装的目录位置,第三是和前面其他的值要用英文的分号分开

新建LIB_PATH值是D:MinGWlib(这里也要改成自己安装的实际目录)

新建C_INCLUDE_PATH值是D:MinGWinclude

Continue reading

蛇形矩阵

<?php
/*
* 蛇形矩阵一
*/
$n = 5;
//填充数组,array_fill第一个参数是起始下标,第二个是总个数,第三个是元素
$arr = array_fill(0, $n, array_fill(0, $n, 0));
$x = 0;
$y = $n – 1;
$p = $arr[$x][$y] = 1;//开始位置
//向下,向左,向上,向右(注意范围)
while($p < $n * $n) {
while($x + 1 < $n && $arr[$x+1][$y] == 0) {
++$x;
$arr[$x][$y] = ++$p;
}
while($y – 1 >= 0 && $arr[$x][$y-1] == 0) {
–$y;
$arr[$x][$y] = ++$p;
}
while($x – 1 >= 0 && $arr[$x-1][$y] == 0) {
–$x;
$arr[$x][$y] = ++$p;
}
while($y + 1 < $n && $arr[$x][$y+1] == 0) {
++$y;
$arr[$x][$y] = ++$p;
}
}
for ($i = 0;$i < $n;$i++) {
for($j = 0; $j < $n;$j++) {
echo $arr[$i][$j].” “;
}
echo “<br>”;
}
?>

输出结构是:

13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5

今天看书看到的,就写出来。今天又加强学习了array_fill数组填充函数

开灯问题

<?php

/*

* 开灯问题

* 描述:

* n盏灯,编号为1——n,第一个人把所有的灯打开,第二个人会按下所有编号为2的倍数的开关

* 这样本来开着的灯会关上,第三个人会按下3的倍数的开关,那么关的灯会打开,开的灯会

* 关掉,依次类推,问最后开着的灯的编号是?(k<=n<=1000)

*/

$n = 100;

$k = 10;

//第一个参数是开始的索引,第二个是填充个数,第三个是填充的元素值

$deng = array_fill(1, $n, 0);

for ($i = 1;$i <= $k;$i++) {

for ($j = 1;$j <= $n;$j++) {

if ($j % $i == 0) {

$deng[$j] = !$deng[$j];

}

}

}

for ($i = 1;$i <= $n; $i++) {

if($deng[$i]) {

echo $i.” “;

}

}

?>

这样不论如何变换都可以知道结果了,比如:关着的编号是?刚开始灯是开着的,然后求关着和开着的呢???是不是很有意思呢?

位运算权限控制

大家玩Linux的时候应该知道读12执行4,其实这样的数据都是因为位运算

比如:在网站中经常使用的权限控制(增删改的权限)[很多大公司都是使用这个]

使用三位表示增删改,对应关系如图

0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

这个列表大家能看明白吧?

也就是最高位标识是否拥有增的权限,中间一位标识是否拥有删的权限,第三栏标识是否用改的权限,第四栏标识的是前面三位的十进制表达

数据库存储的是十进制数,在使用的时候需要转换成二进制(我这里使用PHP来表示)

默认是0,这样我们需要授权的时候只用使用“|”来授权

//定义权限

define(‘UPD’, 1<< 0);     // 更新权限放在最右边

define(‘DELE’, 1<<1);     // 删除权限向左移一位

define(‘ADD’, 1<<2);    // 增加权限向左移两位

授权

$is = UPD | ADD;//更新和增加的权限十进制是5,二进制是101

如果需要判断是否拥有这样的权限

$is & UPD 101 & 001 

如果需要取消授权那么可以使用异或^来移除权限

 

Zend Framework自动加载、简单路由配置(Bootstrap.php)

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
/*
* 自动加载
*/
protected function _initAutoloader()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
‘namespace’ => ‘Application’,
‘basePath’ => APPLICATION_PATH,
));

return $autoloader;
}
/*
*模块配置
*/
protected function _initDefaultModuleAutoloader()
{
$this->_resourceLoader = new Zend_Application_Module_Autoloader(array (‘namespace’ => ‘Default’, ‘basePath’ => APPLICATION_PATH . ‘/modules/default’));
$this->_resourceLoader = new Zend_Application_Module_Autoloader(array (‘namespace’ => ‘Admin’, ‘basePath’ => APPLICATION_PATH . ‘/modules/admin’));
}
/*
* 路由配置
*/
protected function _initRequest()
{
$router = new Zend_Controller_Router_Rewrite();
$frontController = Zend_Controller_Front::getInstance();
$front = Zend_Controller_Front::getInstance();
$front->setRouter($router);

/*
* 路由配置
*/
$router->addRoute(“index_i”, new Zend_Controller_Router_Route(‘/i/:i’,array(“module” => “default”, “controller” => “index”, “action”=>”index”)));
$router->addRoute(“index_l”, new Zend_Controller_Router_Route(‘/l’,array(“module” => “default”, “controller” => “index”, “action”=>”list”)));
$router->addRoute(“index_s”, new Zend_Controller_Router_Route(‘/s’,array(“module” => “default”, “controller” => “index”, “action”=>”search”)));
$router->addRoute(“index_n”, new Zend_Controller_Router_Route(‘/news/:id’,array(“module” => “default”, “controller” => “index”, “action”=>”news”)));

}

}

 

Zend FrameWork 配置文件(初级版)

[production]
;命名空间配置以及自动命名空间注册
autoloadernamespaces[] = “Zend_”
autoloadernamespaces[] = “Paper_”
appnamespace = “Application”
;运行时设置
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.DATE.timezone =”Asia/Shanghai”
;zend类库目录设置
includePaths.library = APPLICATION_PATH “/../library”
;引导文件配置,其中第二句可以省略
bootstrap.path = APPLICATION_PATH “/Bootstrap.php
bootstrap.class = “Bootstrap”
;前端控制器、默认模块、模块分组配置
resources.frontcontroller.moduledirectory = APPLICATION_PATH “/modules”
resources.frontController.controllerDirectory = APPLICATION_PATH “/controllers”
resources.frontcontroller.defaultModule = “default”
;为了统一模块类名,这里需要设置默认模块前缀需要带上
resources.frontcontroller.params.prefixDefaultModule = true
;程序运行异常配置
resources.frontcontroller.throwexceptions = true
resources.frontController.params.displayExceptions = 1
;配置layout布局文件
resources.layout.layoutPath = APPLICATION_PATH “/layouts”
;数据库连接设置
resources.db.adapter = “PDO_MYSQL”
resources.db.isdefaulttableadapter = true
resources.db.params.dbname = “Joyous
resources.db.params.username = “Joyous
resources.db.params.password = “123456”
resources.db.params.host = “localhost”
resources.db.params.charset = “UTF8”

mac os x常用快捷键

1.重命名文件夹或者文件(enter)

2.打开其他文件夹(打开finder,再顶部菜单(就是靠近黑苹果那个)“前往”,然后下面有个“前往文件夹”输入/var即可到达)

3.窗口最小化(command+m)再dock右侧还能看到

4.关闭窗口(command+w)

5.剪切(command+option+v)这样复制之后就会把源文件删除

6.推出应用程序(command+q)

7.删除文件(command+delete)

8.复制(command+c)

9返回(command+向上)

10.刷新网页使用(command+r)

11.全部隐藏直接返回桌面(command+option+h+m)

12.隐藏应用(command+h)

Mac OS X安装php工作环境

1.安装Apche

Sudo apachectl start

2.开启php支持

sudo vi /etc/apache2/httpd.conf

找到LoadModule php5_module libexec/apache2/libphp5.so 去掉前面的#

3.编辑PHP.ini

sudo cp /etc/php.ini.default /etc/php.ini

4.重启Aache测试环境

sudo apachectl restart

编写文件 sudo vi /Library/WebServer/Document/i.php内容是

<?php

echo phpinfo();

?>

5.配置网站根目录到/var/www(注意这里的www是我自己建立的,因为我习惯使用这个目录)

sudo vim /etc/apache2/httpd.conf

文档最后添加:

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /var/www

ServerName localhost

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory /var/www>

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

allow from all

</Directory>

</VirtualHost>

6.安装mysql

http://www.mysql.com/downloads/mysql/

下载dmg的可以直接安装

安装教程http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html

安装之后mysqlroot密码貌似是空的

需要使用/usr/local/mysql/bin/mysqladmin -u root password “mypass”;

7.安装zendstudi教程http://www.evget.com/zh-CN/Info/catalog/18264.html

备注:使用PHP连接MySQL可能会报错“Can’t connect to local MySQL server through socket ‘/var/mysql/mysql.sock’”,或者使用localhost无法连接MySQL而需要127.0.0.1,原因是连接时候php默认去找/var/mysql/mysql.sock了,但是MAC版本的MYSQL改动了文件的位置,放在/tmp下了。处理办法是按如下修改php.ini:

mysql.default_socket = /tmp/mysql.sock

mysql管理工具使用MySQL Workbench的安装

或者使用phpmyadmin或者使用navaicat

如果phpmyadmin提示2002错误,修改confin.inc.php

将$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
改为$cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1’;

Ubuntu安装redmine

1.环境已经安装LAMP环境(http://www.0377joyous.com/archives/87.html)
2.安装redmine
第一步:
apt-get install redmine redmine-mysql
apt-get install libapache2-mod-passenger(这个是apache+redmine的一个模块认证)
sudo apt-get install ruby-full(ruby -v看版本gem -v没有就会安装sudo apt-get install rubygems)
sudo apt-get install rails

其中中间需要配置数据库用户和密码(跳过即可)
第二步:建立一个数据库redmine(注意要是用utf8编码,不然可能会乱码)
第三步:修改/etc/redmine/default/database.yml
production:
adapter: mysql#这个是数据库种类
database: redmine#这个是数据库名字
host: localhost#这个是数据库服务器
port: 3306#端口
username: root#数据库用户名
password: joyous#数据库密码
encoding: utf8#数据库编码\
注:冒号后面的空格不要去掉!!!
第四步:修改apache配置(/etc/apache2/httpd.conf)
RailsEnv production
RailsBaseURI /redmine
添加上面两句即可
第五步:建立软连接
ln -s /usr/share/redmine/public /var/www/redmine
第六步 :生成数据库
进入/usr/share/redmine/
执行:RAILS_ENV=production rake db:migrate

rake generate_session_store

#我的安装一直提示有错误,把这个执行后就好了!!

这个会生成redmine的表结构
第七步:重启apache
/etc/init.d/apache restart

访问:localhost/redmine
就会看到你的项目管理redmine了!

备注:redmine1.X版本的/var/lib/redmine/default/files需要上传附件,请给apache用户组有写入权限!