This is from http://www.mjmwired.net/resources/mjm-fedora-f9.html (I always use this guy's installation guides, they are easy to understand) So, don't use the installer from Nvidia's website.
 
Fedora recommends users install a 3rd-party RPM packaged driver instead of using the installer from Nvidia's website. Currently Livna provides a well packaged driver, installable via yum.
 
First, setup Livna Repository
$ sudo rpm -ivh http://rpm.livna.org/livna-release-9.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna
 
Install the nvidia driver through Livna:
$ sudo yum install kmod-nvidia
 
If a kernel update is installed at the same time (most likely), then a reboot will be required. If not, then simply log out completely of Gnome or KDE and the Nvidia driver should load. The Nvidia logo will flash quickly once.

Fedora 8 mouse invisible issue

[不指定 2008/09/10 23:28 | by ipaddr ]

I tried to install 64 bit fedora 8 today.

The installation went smoothly. When I came to the login interface, the mouse pointer was invisible. It was so frustrated.

I did some search on internet and  found that this problem appears on 64 bit linux with Nvida display card. So it may be a driver issue.

Fortunately there is a workaround that seems work for me.

su
gedit /etc/grub.conf

Remove the “rhgb” in the file. Then reboot again, the mouse pointer seems to come back now.

MediaWiki的Fedora皮肤

[不指定 2008/09/09 00:10 | by ipaddr ]

Fedora的官方网站,使用的也是MediaWiki,皮肤看上去很漂亮,应该是Fedora自己定制的,网上搜索了一下,还真提供下载:

http://git.fedorahosted.org/git/fedora-web.git?p=fedora-web.git;a=tree;f=fedoraproject.org/mediawiki;hb=HEAD

(来源:http://www.eit.name)马上下载试试看 。

可以直接在WEB上面下载,也可以使用Git下载:
$ git clone git://git.fedoraproject.org/git/fedora-web.git

Gnome Partition Editor

[不指定 2008/09/07 23:20 | by ipaddr ]

http://gparted.sourceforge.net/

GParted is the Gnome Partition Editor application. Before attempting to use it, here is some basic background information.

A hard disk is usually subdivided into one or more partitions. These partitions are normally not re-sizable (making one smaller and the adjacent one larger). The purpose of GParted is to allow the individual to take a hard disk and change the partition organization therein, while preserving the partition contents.

GParted is an industrial-strength package for creating, destroying, resizing, moving, checking and copying partitions, and the file systems on them. This is useful for creating space for new operating systems, reorganizing disk usage, copying data residing on hard disks and mirroring one partition with another (disk imaging). See Features, before using it.

GParted uses GNU libparted to detect and manipulate devices and partition tables.

Several (optional) "file system" tools provide support for file systems not included in libparted.
These optional packages will be detected at runtime and do not require a rebuild of GParted.

GParted is written in C++ and uses gtkmm for its Graphical User Interface (GUI). The general approach is to keep the Graphical User Interface as simple as possible. Every attempt was made to conform to the GNOME Human Interface Guidelines.

GParted comes under the terms of the General Public License

Visual Diff Tools in Linux

[不指定 2008/09/07 21:05 | by ipaddr ]
Running the regular diff between two text files to see the differences is not so elegant for the human eye to decode. Luckily there are plenty of tools out there to make this easy.

Command Line:

sdiff    file-1  file-2


This is a much more elegant tool compared to diff, if you are looking for a quick command-line utility that shows the difference between two text files. While using it on big files, its better to pipe the output to less command.

sdiff file1 file2 | less

Disadvantage - this is a read-only output. No editing or merging is possible. But its a great tool for a quick visual inspection.

vimdiff   file-1   file-2


This can open "n" number of files in a vertically split vim environment. This has color highlighting to specify the areas that differ in the file. Editing is possible. This is a complete vim-environment, so all the vim keys are usable.

Emacs:

M-x ediff-buffers
This is an emacs equivalent of vimdiff with copy to left, copy to right, merge changes and much more. This is a special ediff mode which has its own key bindings. Hit ? to get help on the keyboard shortcuts.

Colored highlighting for distinguishing differences. Easy navigation to diff regions.

A maximum of 3 files can be compared and merged. Both comand-line and gui mode are available.

Visual Tools:

Meld:

Can compare two or three files and allows editing. The differences are dynamically updated. This can work with version control systems like CVS, SVN etc. Folder comparison is possible.

Guiffy:

Multi-platform visual diff and merge tool. Has a three-pane view for comparing two-files and the third pane to view the merged output file. Works in Window, Linux and Mac OS X. Folder comparison is possible.

I am sure there are more tools out there (such as xxdiff) but I don't feel like reviewing them (too ugly). :)

kdiff3:

An excellent tool from the kde bunch. I loved it. Has the option to compare 2 or 3 files. Has an extra window pane to look at the out of the merged file. Directory differences and merging are possible.

[转]分布式缓存问题解决

[不指定 2008/08/11 23:30 | by ipaddr ]
缓存产品目标锁定在支持分布式应用的3种开源产品身上:JbossCache、OSCache和SwarmCache,JbossCache采用数据复制策略,OSCache又大又全,重点在页面缓存上,SwarmCache虽然很小巧,但分布式是核心,采用的是失效机制。最终采用SwarmCache实现。全面了解一种开源产品,首要的是看它的文档了,随后的日志我会贴出他的Tutorial。

Hibernate3对各种缓存的提供了很好的支持,细看它的文档才发现它支持的额外3种缓存产品正好是上面列出的,EHCache是Hibernate自身的缓存实现,不支持分布式应用。这下子倒免去了写CacheProvider的工作。下载swarmcache-1.0RC2a二进制和源码,将jgroups-all.jar和swarmcache-1.0RC2.jar拷贝至 \WEB-INF\lib\下,

配置Hibernate.cfg.xml将provider_class换为指定的Provider
<property name="hibernate.cache.provider_class">net.sf.hibernate.cache.SwarmCacheProvider</property>

打开查询缓存的支持
<property name="hibernate.cache.use_query_cache">true</property>

配置

<class-cache class="com.foo.YourCacheEntity" usage="nonstrict-read-write" region="cache.region"/>
关于最后一行配置的说明,因为SwarmCache不支持严格的读写缓存,所以要配置成nonstrict-read-write,各个缓存之间需要用名字隔离,如cache.region。

重新启动Tomcat后,SwarmCache中的组播服务启动:

-------------------------------------------------------
GMS: address is pysh:1967
-------------------------------------------------------

如果另外一个也作了同样配置的web启动,他们之间通过组播消息可以相互通知:

2006-09-19 17:49:06 INFO JavaGroupsCommunicator:76 - A host has joined the cache notification bus: pysh:1967

测试应用:

在机器A上,通过Hibernate对Entity做了修改,机器B得知缓存Entity已经无效,机器B会remove此缓存,重新从数据库里加载。

Flickr Architecture

[不指定 2008/08/06 14:32 | by ipaddr ]

http://highscalability.com/flickr-architecture

Flickr is both my favorite bird and the web's leading photo sharing site. Flickr has an amazing challenge, they must handle a vast sea of ever expanding new content, ever increasing legions of users, and a constant stream of new features, all while providing excellent performance. How do they do it?

Site: http://www.flickr.com/

最近应聘系统架构师,面试回答一些问题,加上之前做的一些功课,搜索到一些文章,感觉有必要总结一下,到底如何做一个成功的系统架构师呢?
首先,何谓系统架构师?
IBM工程师的说明是:
  架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体。他们负责让业务规则及需求与工程实践及限制相适应,以确保成功
中文Wiki上的说明是:
  系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单
这两个解释,加起来基本说明了系统架构师的定义。

JAVA系统架构师应该看的几本书
Thinking in Java
Effective Java
UML基础、案例与应用
UML入门提高
软件工匠
设计模式——可复用面向对象软件的基础
重构-改善既有代码的设计
敏捷软件开发-原则、模式、实践
企业应用架构模式
Expert One-on-One J2EE Development without EJB

软件工程——实践者的研究方法
软件领导--成功开发软件的指导准则
后面的两本书,其实已经有点属于项目经理的范畴了,不过还不是很深入,看看对做成功的系统架构师是很有好处。
企业应用的系统架构师应该关注的几个方面
数据持久层的设计
在Spring和Hibernate,ibatis出来以前,几乎每家公司都有自己的一套方法和架构,而架构师的50%的精力也会集中到这上面,EJB只是增加架构师的负担。在Spring出来以后,基本上,大多数的架构师都从重复设计这个轮子的无用功中解脱出来了。 Rod的轮子太好用了,基本上,大家只要套上去就行了,或者,剩下最重要的事情,是选择一个合适的数据库连接池的开源项目吧
MVC架构的具体设计
MVC只是个概要的概念,具体如何实现的具体技术很多,根据项目设计最恰当的架构
大并发性访问
使用缓存,在数据量达到一定程度时,使用集群技术,优先考虑利用服务器的集群,其次是硬件集群,最后才是应用本身加入集群功能
超大数据量返回结果
尽量使用分页,优化SQL语句,循环处理数据时尽可能共用对象,只保留关键数据,及时释放内存占用
超大文件的读取和生成
尽可能快的读取大文件,并进行分析。写入大文件时,如何及时释放内存。学会适当利用操作系统的命令行资源来更快完成任务。

多线程的应用和管理
线程池的管理和监控,线程的启动(包括定时启动),结束,回收,线程资源的释放

用户界面可用性设计
平衡速度和可用性,恰当的使用异步和同步技术,展现关键数据为重点
分布式的数据交流和集成
选择恰当的数据交互方式,从最泛滥低效的Web Service到最实用的文件共享
群集系统的管理
如何确保缓存的同步?如何确保对象唯一性?如何保证各台机器的同步?
是否采用EJB?如何利用J2EE的特性(例如JNDI)
复杂的业务规则
规则引擎和工作流引擎场景和应用

其实,作为一个真正的系统架构师,不应该局限于企业应用的系统,这种系统往往有数据库的局限性,有时候,应该考虑是否可以横向跨越,直接对其它系统做一些架构考虑,在没有丰富的实战经验的前提下,而只是看了其它人的系统和代码,就能够给出有效的设计指导。
例如对于一个下载软件,可以有如下考虑:
1. 未明和非法url的检验,已经下载失败的容许,信息记录
2. 多线程下载一个文件,文件的切分和拼合,部分切片丢失的拼合可能性
3. 下载线程管理
4. 服务器或者P2P的机器之间的通讯协议
5. 速度监控和限制
6. 下载进度的监控和显示
作为一个在线播放软件,可以做如下考虑
1. 播放速度的保证
   机器的问题基本不存在了,关键是网络问题。如何在检测网络速度,根据影片的质量,并缓冲足够多的内容,保证播放一直尽可能顺利的完成。
2. 播放质量的保证
   如何利用DirectX等技术,最快的进行渲染,是自己写底层,还是利用已有的API
由于没做过类似的项目,可以写的东西还是少很多了。
系统架构师应该有的素质:
1、 实际的编程经验
  最少2年吧,多了就不说了,其实从大学就开始钻研的话,
2、 书面表达能力和口头交流能力
   综合利用架构图,UML图,文字和代码片断,表达自己设计思想,至于是Word还是ppt,应该通吃
  在开发人员中发现架构师的最有价值标准是有效的沟通。您需要技术娴熟、经验丰富的开发人员,这样的人员需要有就项目中的业务相关问题进行沟通的经历。架构师经常必须对理解方面的差距进行预计,然后才能有所贡献。他们必须愿意克服困难来确保技术和业务观点的融合。他们并不必对意见交换工作进行计划和协调;这仍然主要是项目经理的工作。他们的任务是确定表述系统设计时的最佳工具和构件,以促进有效的意见交换。他们必须能够判断当前方法显得不足而需要采用新方法的情况。写作技能也非常重要,还需要具有制作草图的技能或使用制图软件的能力。
3、 自觉主动;积极解决设计问题
  架构师的日常工作目标经常并不明确。很多开发人员直接参考功能规范来列出任务清单。架构师通常则是向这些开发人员提供所需结构的人员,以便尽可能提高工作效率。好的候选者不仅进行沟通方面的工作,而且也会预计各种设计问题并加以解决——通常在没有任何具体指示的情况下自觉进行。无论所分配的职责如何,积极参与项目的开发人员都有机会从一起工作的人员中脱颖而出。
4、 抽象思维能力和总结能力
  架构师,顾名思义,在系统未搭建好之前,就要能够有一个草图在心。而如果是对现有系统的改造,那么能在看过系统的文档(如果有的话)和代码后,就能总结出系统的架构特点。
  架构师必须能够理解表述模糊的概念并将其变成相关各方能够理解的项目构件。他们必须能够理解抽象概念,并以具体的语言对其进行沟通。开发人员中好的候选者经常要求或自己主动解释开发生命周期中容易混淆的问题。他们能迅速评估各种想法并将其纳入后续工作的操作建议中。
  开发人员经常具有很强的数学能力,而好的架构师则倾向于表现出更强的口头表达能力。管理人员经常说开发人员具有“工程意识”,而这是一个用于评估架构师的非常有意义的方面。架构师应该具有很强的解决技术问题的能力,但还必须能够准确获知更为全面的人员如何与技术交互的信息。这要求具有某种形式的抽象思维(而不再是代码的细节),这种思维能力可能较难形成。
5、 全面的技术资讯吸收能力和选择鉴别能力
  作为开发人员出身,对于某一个具体问题的研究能力(虽然很多人总结为google能力),已经相当具备了。但是对技术资讯的全面接受和选择性深入了解能力,并且做出正确的判断,那些技术无非是厂家的噱头,而那些技术是真正可以用到项目,提高项目质量的好技术,这种能力确实至关重要的。

Java:抽象类和接口的区别

[不指定 2008/08/05 11:45 | by ipaddr ]
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。

Glow:非常漂亮的GNOME主题(ZT)

[不指定 2008/08/04 10:31 | by ipaddr ]

在上篇日志:Galaxium Messenger中,文中截图的主题风格的讨论差点盖过了Galaxium本身这个客户端。

这是我最近使用GNOME桌面主题:Glow,确实非常漂亮。因为其自带了很多款配色,在统一的Widget样式上,你可以找到自己喜欢的配色。

应朋友要求,所以写篇有关主题的安装与配置。


—–

这款主题名叫:Glow,来自GNOME-Look.org,与一般的GTK+2的主题不同,它需要另外一个系统并没有自带的GTK+引擎才能使用。因此在安装主题前,需要安装这个名为Aurora的GTK+引擎。

Aurora Gtk Engine可以在这里下载到:

http://www.gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438

下载的压缩包里面有两个文件,解压后,其中aurora-1.4.tar.gz是引擎相关的,gtkrc_themes.tar.bz2是引擎自带的三个主题,你可以自己试用之。

将其中的aurora-1.4.tar.gz解包,假设解压至主目录~/aurora-1.4。

接下来我们要编译aurora了,确认你已经安装好了相关开发包,如果没有的话,请打开终端执行sudo apt-get install gnome-core-devel

准备好以后,就开始编译吧!打开你的终端,然后执行下面的指令:

cd ~/aurora-1.4
./configure --prefix=/usr --enable-animation(其中enable-animation这个参数用于启用动画效果,aurora引擎具备一些动画效果)
make
sudo make install(或者你可以用sudo checkinstall来打包)

安装完成后,就可以去下载Glow主题了。

访问:http://www.gnome-look.org/content/show.php/Glow?content=85996

下载其中的GTK2 Theme(如果你是xfce桌面,选择Xfwm4),这里强烈建议安装Emerald边框,这样才能达到一致的效果。

安装Glow主题和Emerald的边框不必多言,到“系统”->“首选择”->“外观”即可安装。至于Emerald,首先保证你sudo apt-get install emerald,然后打开Emerald Theme Manager即可安装。

安装后,根据你自己喜欢的配色,选择喜爱的Glow吧!其中我选择的是Glow Water,即截图中显示的主题。还有各种亮色、暗色、绿色、红色等配色,一定有你喜欢的。

至于图标主题的话,我使用的是Linux下普遍的Tango主题,大家也可以根据自己的喜好使用。


分页: 22/57 第一页 上页 17 18 19 20 21 22 23 24 25 26 下页 最后页 [ 显示模式: 摘要 | 列表 ]