作者存档

Ubuntu11.10安装QtSDK卡死的问题

最近在玩32位的Ubuntu 11.10,在安装QtSDK1.1.4时会卡死。起初以为是Unity的问题,于是装了Gnome 3,再安装依然是卡死。从网上查到的资料看来,貌似是由于QT的安装程序与Ubuntu的主题style之间存在不和谐的关系导致的,解决方法有两种:

一是安装时使用sudo来执行安装程序,即运行sudo ./_SDK_Lin32_offline_v1_1_4_en.run

二是在运行安装程序时添加参数-style cleanlooks,即运行./Qt_SDK_Lin32_offline_v1_1_4_en.run -style cleanlooks

WP模拟器无法启动:Windows Phone Emulator is doing complete OS boot

很久没写东西了。其实并不是没什么可以写的,而是一直琢磨着换个主题,一直想等主题做好了再写新文章。只可惜新主题难产了,有些东西怕忘记还是趁早记下来的好……

这两天Nokia Lumia系列的Windows Phone手机风头正劲,于是乎我手痒想装个模拟器看看Windows Phone的系统好玩不好玩。环境搭起来很简单,我原本就有Visual Studio 2010,只需要更新一下装个SP1,然后在微软网站下载了Windows Phone SDK的在线安装,漫长的等待之后就安装成功了~~

SDK安装成功后新建Windows Phone游戏的工程尝试一下,但模拟器无法正常运行,启动后一直处于” Emulator is doing complete OS boot“的状态,按Windows Phone Developer Tool 的Release Notes 发布说明中关于硬件的要求检查了遍,2GB的内存,支持DX11,WDDM1.1的显卡驱动,完全满足要求啊。网上关于这个问题的答案也基本都是说这个硬件要求的。

后来在MSDN上的一条回复中找到了真正的答案…我用的本本Acer 3830TG是双显卡的,然后我在设置里面把显卡设置成了使用Nvidia卡。这个设定导致了此问题的产生。解决方法如下:

1. 进入”NVIDIA控制面板”(从”控制面板”进入,或者通过桌面右键菜单进入)
2.在右侧列表中选择“管理3D设置”
3.然后把全局设置改成“自动选择”

参考:http://social.msdn.microsoft.com/Forums/zh-TW/wp7msdntaiwan/thread/f1729cb5-2838-4ac6-8078-71b0a6d307a0/

SVN修改已提交版本的Log

在工作中一直是使用svn进行项目的版本控制的,有时候由于提交匆忙,或是忘了添加Log,或是Log内容写的有错误。今日遇到此类情况,想要在查看项目的日志时添加log或是修改log内容,遇到如下错误:
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
显然此情况是svn服务端设置的问题,版本在提交后不允许修改log。需要在服务端添加一个hook来允许log的修改。我用的服务器是Windows下的VisualSVN Server,在库的属性页面的Hooks选项卡下找到Pre-revision property change hook(参考图1),双击修改其内容。
猛击阅读全文

svn服务器限制IP访问

在自己机器上用VisualSVN架了个svn服务器,最初只是通过用户名密码来限制无关人员访问。近期考虑到安全问题,决定限制访问ip,只允许部分ip地址的用户访问svn。找VisualSVN的设置,里面有个Server Binding,发现不是这么用的…然后看了下VisualSVN的安装目录,它是用的Apache~~再然后,就没有然后了~~~

配置步骤如下:

1) 修改apache配置文件,编辑VisualSVN Server\conf\httpd.conf(如果你直接使用的apache搭建的服务器,则配置文件位于apache\conf\httpd.conf),在文件中添加下面语句,使用这个模块的功能

LoadModule authz_host_module bin/mod_authz_host.so

2) 在<Location //>(根据你自己的配置情况,也有可能是<Directory />之类的,就是svn的路径配置那块)中添加

Order deny,allow

allow from 192.168.1.30/28 #相当于192.168.1.30/255.255.255.240,允许16~31段访问

deny from all

allow和deny的写法参照apache的官方文档:http://httpd.apache.org/docs/2.2/en/mod/mod_authz_host.html

在线图像处理与网页截图工具-Pixlr

前几日在网上闲逛,发现个不错的网站 Pixlr,提供在线图像编辑的功能,该站基于Flash实现,支持很多个国家的语言,常用的P图功能在这里都能找到。
Pixlr Editor的界面与Photoshop非常相似,是目前我见过的在线版图像处理程序中最好用且功能最全的。Pixlr支持图层,支持部分快捷键,集成了部分常用的照片处理功能,像老照片、交叉冲印等,还有近30款滤镜可以用,完全可以满足日常应用需求。

Pixlr主界面

猛击阅读全文

安装IE9失败且所需更新补丁无法安装的问题

今天IE9正式版发布了,立马下载来换掉那个慢腾腾的IE8,结果在安装IE9的时候各种不成功…

运行安装程序,结果安装程序让装更新,但是需要的4个系统更新补丁下载后都没法安装,报错:此更新不适用于您的计算机。在Windows的Update里面也一直获取不到已经安装的更新列表。
最后在Google出了解决方法:
1.打开注册表编辑器(在“运行”里输入regedit)
2.在注册表编辑器中找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
3.将其属性RegistrySizeLimit(REG_DWORD类型的)的值改为 FFFFFFFF(8个F :) ),然后重启计算机
4.以管理员身份运行“SFC /SCANNOW”,等扫描结束后重新运行IE9的安装程序即可成功安装。

貌似遇到这个问题的人不多,据说这个问题是由于安装过ArcGIS造成的…
安装后测试了下,9的代理服务器机制一如既往的不给力,不过对CSS3和HTML5的支持还是可以的,感觉比Firefox4还要好一些。不过对于常年墙外的我来说,IE的代理服务器机制不给力就意味着IE和Chrome都不能日常应用,还是得无奈的用Firefox啊~~

svn服务器变更后客户端的解决方案

最近实验室的svn服务器上几个几乎不再用的项目的Repositories更改了名字,而以前check out的工作目录中依然记录着旧的svn地址,如何从将工作目录的svn地址更改到新的svn地址呢?

解决方法很简单,当svn服务器更换了ip地址,或者服务器上的Repository改名之后,客户端需要在工作目录的根目录上点右键 ->TortoiseSVN -> Relocate.其他的SVN客户端类似,只需将工作目录Relocate一下即可。

Windows7中部分窗口字体显示不正常的问题

这几天不知道什么原因,7系统的一些对话框中的字体变得又宽又大又难看,比如保存对话框中的“保存”等按钮,消息对话框中显示的消息等等,全变成了下面图中那样的德性。
看着窗口里难看的字体啊
猛击阅读全文

Synergy – 让多台电脑共用一套键盘鼠标

今年寒假在家面对着两台本本,一台本本用来下载东西、测试程序,另一台本本用来上网、工作。同时用两台电脑最麻烦的事情就是鼠标要不停的换过来换过去的,相当不爽。
在朋友的推荐之下见到了Synergy这款软件。Synergy是一款开源软件,它可以让你在多台电脑之间共享鼠标键盘(用起来感觉就像一台电脑接两台显示器那样)。此外,Synergy是跨平台的,支持Windows,Mac OS以及各Linux平台。
猛击阅读全文

STL vector中的元素删除

删除vector中的元素,最容易的方法就是使用vector的erase()函数。

1
2
3
4
5
6
7
8
vector vec;
for ( vector::iterator iter = vec.begin(); iter! = vec.end();)
{
    if(某条件成立)
        iter = vec.erase(iter);
    else
        iter ++;
}

如果要清空vector中的元素,可以使用erase()循环删除,也可以用clear()函数。

1
2
3
4
5
6
for ( vector::iterator iter = vec.begin(); iter! = vec.end();)
{
        iter = vec.erase(iter);
}
//或者直接clear
vec.clear();

需要注意,如果vector中存储的元素是指针,那么erase()或者clear()并不会删除指针指向的对象或者内存空间,要小心内存泄漏问题。

此外,还需要注意的是,erase()函数虽然会删除指定位置的元素,但是元素所占用的内存空间并不会被释放掉,也就是说,被删除的元素所占的内存空间还是被vector占有的,而没有被系统回收。
要解决这个问题可以使用vector中的swap()函数。
假设vector vec起初有1000个元素,后来删掉500个,那么要释放掉那500个int所占的空间,可以这样:

1
2
3
4
5
6
7
8
9
std::vector(vec).swap(vec);
//上面这行代码相当于下面两行
//即先产生一个跟vec中现有内容相同且占用空间刚好满足其大小的vector tmp
//然后把tmp与vec对换
//当出了tmp的作用域(例如下面的一对大括号)后,tmp所占的空间就被释放掉了
{
    std::vector tmp(vec);
    tmp.swap(vec);
}

无觅相关文章插件,快速提升流量