2008-04-24 Thu
2008年北京的春天似乎格外的长。
4月5号和朋友们去黑龙潭的时候
一边是花开,一边还有冬日未融化的冰(现在应该融尽了吧),芦苇丛还有秋天的萧瑟:

这一周,家里的花已经开始绽放,养在屋子里的花,纯白与翠绿的相间,美丽:

想起罗大佑的几句歌词:
春天的花开秋天的风以及冬天的落阳
忧郁的青春年少的我曾经无知的这么想
-The End-
相关文章|Related Articles
评论数量(0)|Add Comments
本文网址:http://www.eygle.com/archives/2008/04/spring_flower_home.html
YouTube is a very popular web service that allows people to share video content online. Although YouTube and other streaming video websites satisfy many users, you may have reasons to create your own streaming video website. Perhaps you work for a company that wants a more professional face on their media. Or, you may want more control over exactly how your videos are presented.
I am a soldier in the U.S. Army, currently deployed to Afghanistan. I wanted to be able to share videos with my family from away from home. I wished to maintain my privacy and have better control over my audience. Whether you wish to share videos for educational purposes, share screencasts for documenting software features, or simply entertain, this article will show you how to set up a streaming video website using open source software.
This technique outlines acquiring a video stream from a digital video camera, processing the video stream to the distribution format, and creating a website that will stream the video to users.
Video cameras of the class described in this article have two things in common. First, they store video using the Digital Video (DV) format. Second, they interface with a computer using an IEEE-1394 bus. If a video camera satisfies these two requirements, then it should be compatible with the techniques described here.
In order to facilitate real-time processing and increase the visual quality of recordings, the DV format provides for very limited compression of video data. As a result, files in the DV format tend to be very large. At its rate of approximately 36Mb per second, DV can consume 1GB of disk space in four minutes. Obviously, DV is not a good choice for a distribution format. Before uploading our video content to the website, we will compress its audio using Vorbis and its video using Theora. The audio and video tracks will be encapsulated using the Ogg container format.
Acquiring video
The first step is to acquire a video stream from a digital video camera. Dvgrab is the application that supports this step. Install it on Fedora using the command:
yum install dvgrab
The dvgrab utility interacts with a digital video camera over an IEEE-1394 bus to record the camera’s video stream to a computer’s hard disk. To copy data from a camera, place the camera in play mode and use rewind or fast forward to position the camera’s tape to the beginning of the desired video segment. Connect the camera to the computer using an IEEE-1394 cable. The command dvgrab --format raw --autosplit sample- will begin the transfer. As the transfer begins, the camera will begin to run its tape.
If the camera has an LCD panel, it will display the tape as it plays. The --autosplit option was used, dvgrab will attempt to identify separate recordings and save them using the filename sample-NUM.dv.
Editing and compressing video
Once a video is captured to disk, it is now ready for editing. There are several up-and-coming free software video editor applications. One such application is Pitivi.
Pitivi is written in Python and uses the GStreamer media framework. To install Pitivi (and some necessary GStreamer plugins), use the command yum install pitivi gstreamer-plugins-good.
Once Pitivi is installed, we will use it to encode our DV recording with Ogg. After starting the Pitivi application, click on the button labeled “Import clips…” Select video files and press the “Add” button to make them available within Pitivi.
Once you have selected all of the clips you want, press “Close.” You should now see your videos displayed in the top left corner of the Pitivi application as seen in Figure 2. You may drag and drop the videos into the timeline at the bottom of the application’s window. Once done, the window should look something like Figure 3.
Now that we have assembled our clips, it is time to encode them into the final video. This is done by selecting File->Render. The application will present a new window. Click on the button labeled “Choose File” and enter a name for the file you are about to create. Next, click on “Modify”
to select the target video’s parameters. Figure 4 show the parameters appropriate for our website. We will encode a 320×240 resolution video using Ogg, Vorbis, and Theora. Click “Ok” and then “Record.”
Depending on the length of your video, encoding may take a long time. While you wait for it to encode, download and install the Apache webserver using the command yum install httpd. Once your video processing is complete, copy the resulting file to /var/www/html. I will call this file example.ogg.
Distributing video
Cortado is a Java applet capable of playing streamed video from within a web browser. The applet is open source and is maintained by a company named Fluendo. We will use Cortado to provide a cross-platform way to play the videos on our website. The Cortado applet may be downloaded from Fluendo’s website. The file we will use is cortado-ovt-stripped-0.2.2.jar, which should be copied to /var/www/html. The “ovt” in the filename stands for Ogg, Vorbis, and Theora, the media formats supported by the applet.
Now that we have our video and Java applet installed in /var/www/html, we will write a quick HTML file that references both objects. The following is a simplified index.html for our project that should also be placed in /var/www/html:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <title>Test video>/title> </head> <body> <applet code="com.fluendo.player.Cortado.class" archive="cortado-ovt-stripped-0.2.2.jar" width="320" height="240"> <param name="url" value="http://www.example.com/example.ogg"/> <param name="keepAspect" value="true"/> <param name="video" value="true"/> <param name="audio" value="true"/> <param name="bufferSize" value="200"/> </applet> </body> </html>This HTML document references the Cortado Java applet that exists in the same directory. The applet takes several parameters, most notably the "url" and "bufferSize." The "url" points to the video file and must be a full URL. The fully qualified domain name or IP address referenced must match that of the webserver. The "bufferSize" parameter sets the size of the client-side buffer and should be increased if the video does not play smoothly because of network latency. For a description of Cortado's parameters, see the Cortado README file, distributed with the project's source code. All the tools necessary for building a very simple video website are now at your fingertips. It is time to start the Apache web server and welcome your audience. To start Apache, execute the command:/sbin/service httpd startTo ensure it starts each time the server reboots, execute:
/sbin/chkconfig httpd onLoading the URL http://www.example.com/ in a Java-enabled browser will play the video file. When running Fedora, the java-1.7.0-icedtea-plugin is capable of executing the Cortado applet.
You’re now ready to record, encode, and share a video over the web–with complete control over how they are presented. And, better yet: The software used is a completely open source solution for streaming video.
看到有人翻译的《10 things you (probably) didn’t know about PHP》,发现在此次之前2、8两条并不知道,1、3虽然熟知但是去没有实际应用。
由于阅读本blog的绝大多数朋友都是有PHP基础的,所以决定转载过来给大家看看。
1.使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。
2.在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 “joeuser@wwwphp.net” 而不是 “joeuser@php.net” 的家伙们,这个方法可以很方便的抓住他们。
(more…)
?????????Fenng ????????? dbanotes.net. ![]()
????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????:
????????????"?????????????????????????????????????...?????????????????????"
??????(?????????)????????????(?????????)???"??????????????????"
??????(??????)???????????????????????????...????????????...???????????????????????????????????????"????????????"
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(??????????????????????????????????????????)???"??????????????????"??????????????????????????????:"??????????????????"???
--EOF--
????????????|Related Articles
????????????(6)|Add Comments
???????????????http://www.dbanotes.net/mylife/the_forbidden_kingdom.html
???????????????????????????? Follow Twitter / Fenng
一直以来都知道我的外公很厉害,但是不知道原来这样厉害。哈佛研究生毕业,电信网络科教的开拓者,中国脉码调制新式设备的奠基人。。。口水ing。
想在google里面搜一下外公的名字,是因为妈妈发来的一篇说我的外公和外婆的文章。
本来已经转帖了文章,后来想想也不知道作者是谁,也没得到他/她的同意,还是删去了。
传统的文件同步方案有rsync(单向) 和 unison(双向)等,它们需要扫描所有文件后进行比对,差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将非常耗时。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。
之前看了Amazon的Dynamo的设计文档,它们每个节点的数据是通过Hash Tree来实现同步,既有通过日志来同步的软实时特点(msyql, bdb等),也可以保证最终数据的一致性(rsync, unison等)。Hash Tree的大体思路是将所有数据存储成树状结构,每个节点的Hash是其所有子节点的Hash的Hash,叶子节点的Hash是其内容的Hash。这样一旦某个节点发生变化,其Hash的变化会迅速传播到根节点。需要同步的系统只需要不断查询跟节点的hash,一旦有变化,顺着树状结构就能够在logN级别的时间找到发生变化的内容,马上同步。
文件系统天然的是树状结构,尽管不是平衡的数。如果文件的修改时间是可靠的,可以表征文件的变化,那就可以用它作为文件的Hash值。另一方面,文件的修改通常是按顺序执行的,后修改的文件比早修改的文件具有更大的修改时间,这样就可以把一个目录内的最大修改时间作为它的修改时间,以实现Hash Tree。这样,一旦某个文件被修改,修改时间的信息就会迅速传播到根目录。
一般的文件系统都不是这样做的,目录的修改时间表示的是目录结构最后发生变化的时间,不包括子目录,否则会不堪重负。因为我们需要自己实现这个功能,利用Linux 2.6内核的新特性inotify获得某个目录内文件发生变化的信息,并把其修改时间传播到它的上级目录(以及再上级目录)。Python 有 pyinotify,watch.py的代码如下:
#!/usr/bin/python from pyinotify import * import os, os.path flags = IN_CLOSE_WRITE|IN_CREATE|IN_Q_OVERFLOW dirs = {} base = '/log/lighttpd/cache/images/icon/u241' base = 'tmp' class UpdateParentDir(ProcessEvent): def process_IN_CLOSE_WRITE(self, event): print 'modify', event.pathname mtime = os.path.getmtime(event.pathname) p = event.path while p.startswith(base): m = os.path.getmtime(p) if m < mtime: print 'update', p os.utime(p, (mtime,mtime)) elif m > mtime: mtime = m p = os.path.dirname(p) process_IN_MODIFY = process_IN_CLOSE_WRITE def process_IN_Q_OVERFLOW(self, event): print 'over flow' max_queued_events.value *= 2 def process_default(self, event): pass wm = WatchManager() notifier = Notifier(wm, UpdateParentDir()) dirs.update(wm.add_watch(base, flags, rec=True, auto_add=True)) notifier.loop()
在已经有Hash Tree的时候,同步就比较简单了,不停地获取根目录的修改时间并顺着目录结构往下找即可。需要注意的是,在更新完文件后,需要设置修改时间为原文件的修改时间,目录也是,保证Hash Tree的一致性,否则没法同步。mirror.py的代码如下 #!/usr/bin/python import sys,time,re,urllib import os,os.path from os.path import exists, isdir, getmtime src = sys.argv[1] dst = sys.argv[2] def local_mirror(src, dst): if exists(dst) and mtime == getmtime(dst): return if not isdir(src): print 'update:', dst open(dst,'wb').write(open(src).read()) else: if not exists(dst): os.makedirs(dst) for filename in os.listdir(src): local_mirror(os.path.join(src,filename), os.path.join(dst,filename)) os.utime(dst, (mtime,mtime)) def get_info(path): f = urllib.urlopen(path) mtime = f.headers.get('Last-Modified') if mtime: mtime = time.mktime(time.strptime(mtime, '%a, %d %b %Y %H:%M:%S %Z')) content = f.read() f.close() return int(mtime), content p = re.compile(r'([\d.]+?) +([\w/]+)') def remote_mirror(src, dst): mtime, content = get_info(src) if exists(dst) and mtime == int(getmtime(dst)): return print 'update:', dst, src if not src.endswith('/'): open(dst,'wb').write(content) else: if not exists(dst): os.makedirs(dst) for mt,filename in p.findall(content): mt = int(float(mt)) lpath = dst+filename if not exists(lpath) or int(getmtime(lpath)) != mt: remote_mirror(src+filename, lpath) os.utime(dst, (mtime,mtime)) if src.startswith('http://'): mirror = remote_mirror else: mirror = local_mirror while True: mirror(src, dst) time.sleep(1)
如果源文件不在同一台机器上,可以通过NFS等共享过来。或者可以通过支持列目录的HTTP服务器来访问远程目录,mirror.py 已经支持这种访问方式。server.py 是用webpy做的一个简单的只是列目录的文件服务器。由于瓶颈在IO上,它的性能不是关键。server.py的代码如下: #!/usr/bin/python import os,os.path import web import time root = 'tmp' HTTP_HEADER_TIME = '%a, %d %b %Y %H:%M:%S %Z' class FileServer: def GET(self, path): path = root + path if not os.path.exists(path): return 404 mtime = time.localtime(os.path.getmtime(path)) web.header('Last-Modified', time.strftime(HTTP_HEADER_TIME, mtime)) if os.path.isdir(path): for file in os.listdir(path): if file.startswith('.'): continue p = os.path.join(path,file) m = os.path.getmtime(p) if os.path.isdir(p): file += '/' print m, file else: print open(path,'rb').read() urls = ( "(/.*)", "FileServer", ) if __name__ == '__main__': web.run(urls, globals())
为了获得更好性能,以达到更好的实时性,Hash Tree最好是平衡的,比如BTree。如果一个文件发生变化,同步它需要进行的IO操作为N*M,其中N为数的层数,M为每层的文件数目。现在我们N为2,M最大为10000,适当减少它可以获得更好的性能,比如N为4,M为100。在以后创建目录结构时,最好能够考虑这方面的因素。
之前hongqn推荐过一个利用inotify的文件同步方案,同步方式类似于mysql和bdb等,由于过于复杂导致不可靠而没有采用。上面这个方案只用了一百多行Python代码就基本解决问题了,是不是很帅?:-)
Author:NinGoo posted on NinGoo.net
自从Amason推出SimpleDB,基于key-value键值对的分布式数据存储系统受到了广泛关注,类似的系统还有Apache的CouchDB,以及最近重磅推出的Google App Engine的基于BigTable的Datastore API等,毫无疑问,分布式数据存储系统提供了更好的横向扩展能力,是未来的发展方向。但是现阶段,对比传统的RDBMS,也还有一定的差距和不足。Ryan Park撰文指出了SimpleDB的10大不足之处:
1.数据完整性无法保证
类似SimpleDB的分布式数据存储系统目前还无法实现和RDBMS一样严格的完整性约束,例如唯一性约束和外键约束等,所以数据的完整性需要在应用中来实现。
2.数据一致性无法保证,将导致非常糟糕的用户体验
SimpleDB做写入操作做了优化,调用API时只需要写入数据到一台SimpleDB服务器即返回写入成功的信息,随后数据会被分布复制到更多的SimpleDB服务器上,而在分布完成之前无法查询到最新的数据。所以需要在应用中来处理这种查询延时导致的数据一致性问题。
3.数据聚合将需要更多的额外编码实现
SimpleDB没有实现诸如join,group by,sum/average,sort等,这些操作都需要在应用中来实现。
4.复杂查询和即席查询更难实现
SQL标准已经出现很多年,数据库引擎对于一些复杂的SQL查询做了足够多的优化。SimpleDB对于过于复杂的查询和条件不定的Ad hoc查询没有提供特别的支持,所以SimpleDB还不太适合数据仓库等OLAP应用。
5.数据聚合操作性能比RDBMS差
RDBMS引擎对于join,group by等聚合操作做了很多优化,优化器可以提供根据不同的情况使用诸如hash join,nested loop join等方式来实现。自己在应用中实现这些操作可能效率会不如成熟的RDBMS。当然,这一点有些牵强,在应用中实现有可能更坏也有可能更好,从分布式趋势来看,数据库将倾向于做越来越简单的数据存储,计算更多的应该交给前面的应用服务器来完成。
6.数据的导入导出,备份等操作更慢更繁琐
RDBMS提供了很多成熟的数据迁移和备份工具,这一点刚刚出世的SimpleDB等自然有不足,但这不是问题,只要有需求和时间,就会有工具。
7.SimpleDB并没有想象中的快
Todd Hoff在一篇文章中的数据:从SimpleDB的1000条记录的表中读取10条记录需要141ms,从100000条记录中读取10条记录需要266ms,而从1000000记录中读取10条需要433ms,这比RDBMS明显要慢很多。当然,对于分布式系统,数据量越大才能体现出优势。在小数据量的情况下,集中式比分布式肯定更有优势。
8.RDBMS也可以良好的可扩展性
列举了一些RDBMS的成功应用案例,如Facebook和Livejournal使用MySQL,myspace使用MS SQL Server,Salesforge.com使用Oracle。通过良好的应用设计、数据的垂直分割和水平分割、主从复制和群集等技术,传统的RDBMS也能实现不错的可扩展性,支撑大型的网站系统毫无问题。
9.超级可扩展性是一种过度设计
技术应该以适用为原则,过度设计是一种巨大的浪费。
10.SimpleDB非常有用,但也要用在合适的场合
SimpleDB并不是为了替代OLTP数据库而生的,它的key-value存储结构更加适用于处理半结构化的数据。好的产品也要用的合适的地方才能扬长避短。
Related Articles


A few weeks ago I was asked to isolate some functionalities from Mark Callaghan’s MySQL patch bundle. They were extensions adding per-user and per-table accounting to the database, accessible with a new set of commands such as SHOW TABLE_STATISTICS, SHOW INDEX_STATISTICS and SHOW USER_STATISTICS. The first two can interest anyone to periodically check what data or which index are the most active or which are not being used at all and could be candidates for dropping. All the patch features will surely be a great help for hosting providers to produce detailed reports on how each customer utillizes the database.
Having many different users running their queries on a single database instance means they will be constantly "battling" for the resources, each one caring only for his own application, completely ignoring the fact they chose shared hosting. Of course this alone is not a problem and theoretically if you don’t over-allocate, the users should never become conscious of the struggle happening underneath.
Obviously, that’s only in the ideal world and either it's not even possible or, at best, economically inefficient to allocate the entire machine for only a few customers simply because their skills in SQL are limited.
The real life customers generate very uneven load - some barely any and some a lot. It has to be said that the SQL performance is very tricky, it's very easy to produce large sets of data for the hardware to process from even small tables. Therefore often the resulting database load may not be directly related to the web traffic some customer has. The load can also be changing in time, mostly growing, often spiking. One way or another after a while every server becomes too tight for everyone. And for you it is best to be pro-active, to observe the changes as they happen and react before any user can start complaining. You can watch the load growth and based on that make the decision on splitting half of the users to some newly purchased hardware. But how to avoid the undesired situation that you only sort out the least active customers from the heavier ones?
It's probably not uncommon someone uploads a really badly designed application, which runs queries not using indexes or which examine a lot of rows. This can elevate the load, but just as well it can bring the server down. You can have slow query log enabled and review it occasionally, but doing it offline means you can’t react in the real time on the critical situation. You can have some sophisticated mechanisms to browse the process list or scan the slow log live, but that is a bit ugly solution.
That is where this patch can be very useful. With simple MySQL SHOW command it gives you the basic statistics on the database activity broken down by users, tables or indexes. Monitoring those numbers every minute can show you changes in usage by customer and immediately catch any spikes as they happen pinpointing the source to make an intervention. Looking at totals over a longer period you can catch users causing the most traffic to help you with some strategic decisions.
Sample outputs:
-
mysql> SHOW USER_STATISTICS LIKE 'hosting2'\G
-
*************************** 1. row ***************************
-
User: hosting2
-
Total_connections: 84
-
Concurrent_connections: 0
-
Connected_time: 20
-
Busy_time: 1
-
Rows_fetched: 7861
-
Rows_updated: 240
-
Select_commands: 1759
-
Update_commands: 254
-
Other_commands: 85
-
Commit_transactions: 0
-
Rollback_transactions: 0
-
mysql> SHOW TABLE_STATISTICS LIKE 'hosting2%';
-
+--------------------------------+-----------+--------------+-------------------------+
-
| TABLE | Rows_read | Rows_changed | Rows_changed_x_#indexes |
-
+--------------------------------+-----------+--------------+-------------------------+
-
| hosting2.wp_terms | 335 | 2 | 4 |
-
| hosting2.wp_comments | 12 | 1 | 3 |
-
| hosting2.wp_options | 6586 | 200 | 400 |
-
| hosting2.wp_postmeta | 5 | 2 | 6 |
-
| hosting2.wp_posts | 542 | 4 | 12 |
-
| hosting2.wp_term_relationships | 720 | 9 | 18 |
-
| hosting2.wp_users | 109 | 1 | 3 |
-
| hosting2.wp_links | 910 | 7 | 21 |
-
| hosting2.wp_term_taxonomy | 729 | 3 | 6 |
-
| hosting2.wp_usermeta | 427 | 6 | 18 |
-
+--------------------------------+-----------+--------------+-------------------------+
-
10 rows IN SET (0.00 sec)
-
mysql> SHOW INDEX_STATISTICS LIKE 'hosting2%';
-
+--------------------------------------------+-----------+
-
| INDEX | Rows_read |
-
+--------------------------------------------+-----------+
-
| hosting2.wp_options.option_name | 287 |
-
| hosting2.wp_usermeta.meta_key | 8 |
-
| hosting2.wp_term_relationships.PRIMARY | 720 |
-
| hosting2.wp_postmeta.post_id | 1 |
-
| hosting2.wp_links.link_visible | 455 |
-
| hosting2.wp_terms.PRIMARY | 67 |
-
| hosting2.wp_posts.type_status_date | 459 |
-
| hosting2.wp_term_taxonomy.term_id_taxonomy | 204 |
-
| hosting2.wp_posts.PRIMARY | 9 |
-
| hosting2.wp_term_taxonomy.PRIMARY | 5 |
-
| hosting2.wp_usermeta.user_id | 413 |
-
+--------------------------------------------+-----------+
-
11 rows IN SET (0.00 sec)
The statistics for tables and indexes can be cleaned with the corresponding FLUSH command (e.g. FLUSH INDEX_STATISTICS).
All that can be fed into scripts to bring you automated reports or to perform actions such as:
- list users by the number of queries issued or any other information
- find active tables which do not have any indexes used meaning table scans
- nag users they should consider upgrading to a dedicated server because their usage is very high
- temporarily block users having huge spike in MySQL usage
Personally I would see a few more things implemented. A few examples to mention:
- per-user CPU time usage, some queries may be CPU bound rather than reading lots of rows
- support for prepared statements which all currently fall under Other_commands
- a few MySQL performance counters broken down by users (full joins, table scans, disk temp tables, etc.)
- limiting command availability to SUPER users only or restricting regular users to see their own statistics only
- information_schema support to allow SELECT query transformations, joins and better filtering for the statistics
Also combining these new commands with our msl patch, which introduces the advanced query logging, would give the administrator powerful tool to almost effortlessly catch the users doing bad things on the database and point them to the specific problems they have (e.g. particular query using full joins).
If you want the statistics patch mentioned in this article, then Bluehost.com CEO, Matt Heatton, has published it on his blog.
Entry posted by Maciej Dobrzanski | 8 comments
这几天发现在任务管理器里多了一个peer.exe进程,这个进程是做什么的呢?
用tlist (这个小工具真的非常有用) 检查发现原来是安装的一个下载软件启动的:
C:\>tlist 1920
1920 peer.exe Peer_Event_Sink_Window
CWD: C:\Program Files\GridService\
CmdLine: "C:\Program Files\GridService\peer.exe" -n Grid
VirtualSize: 55736 KB PeakVirtualSize: 58948 KB
WorkingSetSize: 7472 KB PeakWorkingSetSize: 7552 KB
NumberOfThreads: 19
1924 Win32StartAddr:0x006b54a0 LastErr:0x00000000 State:Waiting
400 Win32StartAddr:0x0064775d LastErr:0x00000000 State:Waiting
404 Win32StartAddr:0x0064775d LastErr:0x00000000 State:Waiting
408 Win32StartAddr:0x0064775d LastErr:0x00000000 State:Waiting
fs2you 是常用的一个网络硬盘工具,下载上面的内容需要安装一个客户端,这个客户端会启动的几个相关进程是:Peer.exe、Peerconf.exe和PrreAdapter.exe。
这3个进程安装在X:\Program Files\GridService目录中。
通常是设置了自动启动,会启动这个进程,可以去掉自动启动,也可以手工kill掉。
-The End-
相关文章|Related Articles
- WLLoginProxy.exe进程的作用及清除
- Xp中关闭移动硬盘/U盘自动播放的方法
- wmiprvse.exe进程是什么?
- Dopoda S1无法ActiveSync同步之问题解决
- IBM ThinkPad之驱动82801FBM设备
评论数量(0)|Add Comments
本文网址:http://www.eygle.com/archives/2008/04/peer_exe_fs2you.html
2007年,大约是4月的时候,腾讯公司才决定在它的空间里弄出一部分来做名博,就是找一些知名人士和媒体圈的朋友给他们充当枪手积聚人气,很不幸的是,他们也给了我一个名额,希望我在腾讯的博客里写点东西。当时给的号码是622006588。
霜华的名字的来历是我以前写的两句诗中摘出来的两个字,至今还在这个QQ的签名里,地区写的香港也是我当时更改资料时写进去的。
写了也就写了吧,但是由于以前的号码用的习惯了,所以发的文章都在之前的号码里,所以这个号码一直没怎么用,因为可以开群,我就拿他开了4个群。
昵称还是网友署的“霜华”,空间已改成“曹景行”
群的管理员都是我认识的或者是在群里挑选的,开始时大部分人是从我原来的QQ里加进去的,当然,是我把以前的QQ加在这4个群里做了管理员,才能办到的。比如这个广电之家@传媒群系群,群号12551488,我就是请安徽卫视的好朋友秋水长天做管理员,另外一个是我另外的QQ号。
编辑之家的群12556696,两位管理员,一位是我在南京晨报时的同事酒不醉人,一位是我在新周报时的同事小石头。
记者的家@传媒群系群12547988,两个管理员,九牛一毛是我的好朋友,长期在南京上海之间来往,猫奔是河北电视台的一位记者,在我的另外一个QQ上都可以找到他们。

群记者酒馆@传媒群系12554445两个管理员,鼎鼎是我好朋友四川科技报编辑,俄底修斯是好朋友北京电视台娱乐记者。
网友有证据表明他原本拥有那个空间
可是我在3个月前的一天我发现,我进不了这个QQ了,这密码我曾经改过一次,我用尽我能想到的所有密码试遍了都不能进去,我明白是被盗号了。于是我就申诉,每次都不厌其烦的填上一大堆数据,但是经过十几次的努力,包括打了好多长途电话,以及和腾讯工作人员联系,都无果而终。如果说以前怀疑还是只是怀疑,那么,到昨天为止,江湖中腾讯公司官方盗号的传闻终于得到最终确认。
因为这个号在不久前还是空的空间,昨天居然发现,一下变成了凤凰卫视的曹景行老师的空间。曹老师是我敬仰的一位老新闻工作者,我在东方早报工作时曾经有过工作上的接触。我相信这个号不是曹老师看上了而盗取的。事情的真相只有一个,那就是腾讯公司在送了之后又偷偷地偷了回去。
如果腾讯觉得送了这个号给我吃亏了,完全可以光明正大的告诉我,是缴费给你还是收回去,可以商量。但是你这样偷偷默默的做出这样的事情,算什么?就是普通人之间送了东西,过几天觉得吃亏了可以当面说:那东西我还要用,你能不能还给我?如果你送了别人的东西,你自己不告诉别人就偷走了,至少是品德有问题吧?实际上是犯罪!
2003年网友本人和曹景行在南京美龄宫合影
通过我的个人一点经历,完全可以说明,腾讯公司在商业道德方面是有品质问题的。以前是骗小孩子钱,现在是老头大人一起骗。过几天是不是还准备用几亿QQ用户发动政变夺取政权啊?至少可以用你的QB破坏和谐社会啊?
对了,你现在可以封掉那个QQ,也可以关了那几个群,但是别忘了,还有那么多在群里的人都可以证明的,除非你把几百个QQ一起黑了!你试试看。陈凯歌的名言可以送给你,马化腾!
希望有和我一样遭遇的QQ用户,站起来,揭露腾讯公司的无耻面目。集体携手,找寻司法解决的途径!
网友的申诉邮件截图
谷歌从进入中国那一天起,一般都认为,它必需通过对百度的强力挑战,来争夺中国搜索引擎市场的领导地位──百度不是一直都被称为“中国的Google” 吗。但两年半以来,形势并不乐观。百度的市场份额从五成升至接近八成,谷歌仅仅从更弱小的搜索引擎手里抢了点儿零食,塞牙缝都不够,挑战百度?从来都没有出现过这样的机会。所以我说,Game over。
以Google所具有的资金、技术、人才、品牌,谷歌的现状确实比较尴尬。李开复现在把超越百度的希望,寄托在手机搜索上。 不过,手机搜索是一个完全不同的领域,面对的是完全不同的设备、使用情境、运营模式和商业模式,Web上积累的优势,不可能完全转移到手机上。而且,在可预见的未来,手机搜索的应用深度和广度,以及对经济的推动力,也注定无法与PC相比。谷歌将目标转向移动搜索,或许可以理解为谷歌被迫承认现状,也算是一种务实的态度。
谷歌真的没有机会吗?我并不这么认为。谷歌的错误,只是它选择了错误的竞争对手。
为什么要把百度当作竞争对手?仅仅因为它是一家搜索引擎吗?其实百度的成功,并不完全在于搜索,“更懂中文”之说,不过是个营销策略。MP3搜索从来都不是一个技术问题,百度贴吧已经是中国最大的虚拟社区,百度知道则是最成功的问答式知识社区,Hao123更是把Yahoo!十几年前的思路和模式直接继承下来。百度在众多竞争对手的强劲挑战下,市场份额仍保持增长,品牌形象日益深入人心,是因为百度有一系列适应中国市场现状的产品,这些产品迎合了年轻人、低技术人群的需求,以娱乐、休闲为特色,并逐渐形成一道厚重的围墙,严密地保护着它的核心收入来源──网页搜索和竞价排名。这也是我认为百度最大的竞争对手是腾讯的原因。
Google是什么?我认为与其说Google是一家搜索引擎,不如说它是一架“商业引擎”或“经济引擎”。看看它的产品线,从AdWords/AdSense,到Google Apps,从Google Docs,到Google App Engine,绝大多数跟企业业务、生意、工作流、团队协作等直接相关。Google目前在全球拥有超过30个数据中心(地图),用于数据中心的花销,2006年是19亿美元,2007年是24亿美元。这些数据中心已经成为Google巨大的发电站,为Google不断增加的计算能力和存储能力,提供源源不断的能量。现在,通过Google App Engine,你就可以利用Google的存储、计算能力和数据资源,驱动你自己的业务,就像把你家卧室的电线,接到Google的“云”里。
通过以上对比,你仍然认为百度和Google是同类公司吗?
过去两年多,谷歌在中国做了什么?我认为谷歌所做的全部事情,就是让它自己更像百度,而不是更像Google。因为它将百度当作对手,所以它认为必需以百度的方式来和百度竞争,并且认为这就是“适应中国国情”、本地化。其结果,就是谷歌放弃自身所有的优势,去做它根本不擅长的事,而且这些事即使它做得并不差,但根本无法说服用户改换门庭。这个错误跟Yahoo!所犯的错误是同样的,拿自己的劣势,去跟别人的优势竞争。
谷歌真正的对手应该是谁?
马云成为市委书记、省委书记们的座上宾,很能说明一些问题。官员们更关心本地经济的发展,关心GDP的增长,关心所谓政绩,所以他们相中了马云。阿里巴巴是什么?一家七成员工是销售人员的中介公司,在技术上并无积累,也无重大创新,却用8年时间,把自己塑造成了技术推动经济发展的代表,成为新经济的旗帜。 而谷歌却在跟百度比,看谁更会讨好低端用户,把“商业引擎”的桂冠,拱手让给了阿里巴巴。
谷歌跟百度拼低端,还有一个明显的劣势,就是在政府眼中,谷歌是外人。在涉及意识形态问题时,主管部门很容易与百度沟通,却不太方便跟谷歌打交道,这时候谷歌就是个制造麻烦的角色,处处设限就在所难免。谷歌之前遭遇的种种挫折,在很大程度上是因为,谷歌给政府留下了太强的意识形态的印象,这恰恰是跨国公司在中国经营的大忌。
所以,谷歌应该好好向马云学习,认真地把阿里巴巴当作竞争对手,而不是百度。
刚才在MSN上和别的部门同事聊天,说着说着他就说“我知道你是一个好领导”,虽然已经有很多人这样对我说过了,但心里仍然是一阵阵的窃喜。
这段时间由于在存储部落中发了公司招聘技术工程师的文章,有好多朋友给我发来了简历,还专门说是因为我才投简历的,相信我会是一个好领导。不管这些朋友是真心这样说的,还是因为我负责部分面试任务,朋友们这样说往往让我既高兴又诚惶诚恐。
我不知道自己是不是一个好领导,只晓得自己一直和部门中的同事关系都不错,有的公司已经离开很久了,大家的关系也很亲密。
和同事相处我一直把握着几个原则:
1、大家都是来工作的,所以完成工作是第一位的。
2、大家都是来挣工资的,兄弟们跟着你认真干,你也得努力让兄弟们挣到钱。
3、你不是老板,所以别总以老板的角度来和兄弟们说话和做事。
4、大家找工作都不容易,所以别轻易辞掉他,不妨试着给他换个工种。
5、真诚地对待每一个人,在没有确认他真的不值得你这样做之前。
前几天公司召开第一季度中高层管理会,主要讨论各个部门在第一季度完成的工作,并展望第二季度的公司发展。管理会上针对多个部门工作中存在的问题,我提出了很多意见,有的问题说的也很尖锐。搞得后发言的部门都提前和我打招呼,希望我少提问题。
考虑到大家的反应,在管理会结束前几分钟,我站起来给大家说了这样的话:
不好意思,再耽误大家几分钟吃饭的时间,主要是想给个别部门以及部门领导道个歉。
在这两天的管理会上,包括在2008年初的管理会上,我针对多个部门的工作提出过很多意见和建议。也许有人会认为我说的超出了我的工作范围,也许有人会认为我说的不对,也可能有人会认为我的做法不对。虽然我是在座的所有人中职位最低的,能力最差的,但我和很多人不同一点就是:我在2005年,也就是UIT最苦难的时候来的,经过很多人共同的艰苦努力,UIT发展到了现在这样的大好局面,不管我的工作给起多大的做少,至少我在这一段时间内,付出了我百分之百的努力,也对UIT献出了我百分之百的忠诚。所以,每当看到有任何可能会延缓UIT快速发展,甚至有可能阻碍UIT快速发展的事情,我总是忍不住要指出来。不管大家是否认可我的做法,我以前说了,现在说了,以后还要说。直到有一天UIT发展到好得到让我无话可说,或者老板把我开掉。
长久以来,我心里一直有一个伟大的愿望:也许一两年后,当我走出去,走到一堆所谓的外国存储技术专家面前,我可以很自豪的告诉他们“我来自中国的UIT,我们有世界上最好的存储设备!!!”
呵呵,会后好多人说我真能煽情!我真的煽情吗,难道我变得有点像NP奶奶了?不过我也清楚地记得当说到最后一句话时我真的有点激动。
前几天公司召开第一季度中高层管理会,主要讨论各个部门在第一季度完成的工作,并展望第二季度的公司发展。管理会上针对多个部门工作中存在的问题,我提出了很多意见,有的问题说的也很尖锐。搞得后发言的部门都提前和我打招呼,希望我少提问题。
考虑到大家的反应,在管理会结束前几分钟,我站起来给大家说了这样的话:
不好意思,再耽误大家几分钟吃饭的时间,主要是想给个别部门以及部门领导道个歉。
在这两天的管理会上,包括在2008年初的管理会上,我针对多个部门的工作提出过很多意见和建议。也许有人会认为我说的超出了我的工作范围,也许有人会认为我说的不对,也可能有人会认为我的做法不对。虽然我是在座的所有人中职位最低的,能力最差的,但我和很多人不同一点就是:我在2005年,也就是UIT最苦难的时候来的,经过很多人共同的艰苦努力,UIT发展到了现在这样的大好局面,不管我的工作给起多大的做少,至少我在这一段时间内,付出了我百分之百的努力,也对UIT献出了我百分之百的忠诚。所以,每当看到有任何可能会延缓UIT快速发展,甚至有可能阻碍UIT快速发展的事情,我总是忍不住要指出来。不管大家是否认可我的做法,我以前说了,现在说了,以后还要说。直到有一天UIT发展到好得到让我无话可说,或者老板把我开掉。
长久以来,我心里一直有一个伟大的愿望:也许一两年后,当我走出去,走到一堆所谓的外国存储技术专家面前,我可以很自豪的告诉他们“我来自中国的UIT,我们有世界上最好的存储设备!!!”
呵呵,会后好多人说我真能煽情!我真的煽情吗,难道我变得有点像NP奶奶了?不过我也清楚地记得当说到最后一句话时我真的有点激动。
- 段义和济南爆炸案的蝴蝶效应 (0)
- 正在写投标方案 (0)
- 早起、心里很烦乱 (0)
- 投标方案书写完了 (0)
- 我是个好领导? (1)
- 开会、开会还是开会 (1)
- 回来吧,毛家菜! (5)
- 和网友的聊天记录 (0)
- 变了又变 (3)
- 原来半夜加班是这么痛苦 (2)
2008-04-23 Wed
2008-04-22 Tue
2008-04-21 Mon
AnySQL.net
DBA notes
eagle's home
Give you some color to see see!
AnySQL.net English
Oracle Scratchpad
Oracle Life
OracleDBA Blog---请享受无法回避的痛苦!
Uploads from dbanotes
Chanel [K]
xzh2000的博客
Oracle Security Blog
ERN空间
Eddie Awad's Blog
MySQL Performance Blog
The Tom Kyte Blog
del.icio.us/fenng/oracle
AIXpert
O'Reilly Databases
Red Hat Magazine
DBASupport
DB2 Magazine 中文版
developerWorks : AIX 专区的文章,教程
Pythian Group Blog » Log Buffer
车东[Blog^2]
blue_prince
玉面飞龙的BLOG
此生 今世
人生就是如此
Orange Tiger 木匠 的 移民生活
生活帮-LifeBang
Hey!! Sky!
dba on unix
Oracle Notes Wiki
Brotherxiao's Home
柔嘉维则@life.oracle.eng
Fenng's shared items in Google Reader
jametong's shared items in Google Reader
缥缈游侠-logzgh
Tanel Poder's blog: Core IT for geeks and pros
DBA Tools
ilonng
yangtingkun
NinGoo@Net
Oracle & Unix
Inside the Oracle Optimizer - Removing the black magic
Ricky's Test Blog
DBA@Taobao
存储部落
Think in 88
Alibaba DBA Team
Oracle Team @SNC
淘宝数据仓库团队
OracleBlog.cn












