<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[远古的迷茫]]></title>
	  <link>http://hydra1983.blog.163.com</link>
	  <description><![CDATA[ Come on!]]></description>
	  <language>zh-CN</language>
	  <pubDate>Tue, 17 Feb 2009 13:16:43 +0800</pubDate>
	  <lastBuildDate>Tue, 17 Feb 2009 13:16:43 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[hydra1983]]></managingEditor>
	  <webMaster><![CDATA[hydra1983]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[远古的迷茫]]></title>
	  	<url>http://ava.blog.163.com/photo/De4FXOo6DE_sScM2ykriZw==/1421730107365675671.jpg</url>
	  	<link>http://hydra1983.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[2007 年 32 个学习摄影技术的最佳网站 ]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200917104341832</link>
    <description><![CDATA[<div><a href="http://jandan.net/2007/05/01/the-32-best-photography-sites-in-2007.html" target="_blank">原文</a>来自<a href="http://jandan.net/" target="_blank">煎蛋</a><br>五一来临，你的摄影技术还很差吗？快去恶补吧。
<h2>摄影技术技巧、教程</h2>
<ol><li><a rel="external nofollow" href="http://www.radiantvista.com/" title="Radiant Vista"> Radiant Vista </a><br>
每天都会一位专业摄影师从用户提交的相片中挑选出一张进行点评，并给出建议，点评过程提供视频免费下载。可以很快提高你的摄影技巧。 </li><li><a rel="external nofollow" set="yes" href="http://www.tipsfromthetopfloor.com/" title="Digital photography tips from the top floor"> Digital photography tips from the top floor </a><br>
海量的摄影技巧和教程。 </li><li><a rel="external nofollow" href="http://www.msnusers.com/Asktheoleproaboutphotography/joezeltsman.msnw" title="Ask the ' ole pro ' about photography"> Ask the ‘ ole pro ’ about photography </a><br>
作者 Joe Zeltsman 绝对是一位经验丰富的摄影师，他提供广泛而详细的教程，免费的哦 </li><li><a rel="external nofollow" href="http://www.montezucker.com/content.html?page=7" title="Taking the mystery out of lighting - Monte Zucker"> Taking the mystery out of lighting </a><br>
作者 Monte Zucker 会以最简单的文章教会你摄影技术中光影的秘诀 </li><li><a rel="external nofollow" href="http://blog.epicedits.com/" title="Epic Edits"> Epic Edits </a><br>
这个家伙提供大量实用的摄影技巧和教程，他更新非常勤快，建议订阅他的 RSS 。 </li><li><a rel="external nofollow" href="http://www.photographyblog.com/" title="Photography Blog"> Photography Blog </a><br>
该博客更新非常频繁，主要是最新最快的相机周边和新闻。 </li><li><a rel="external nofollow" set="yes" href="http://photography-on-the.net/forum/showthread.php?t=34606" title="Photography on the Net Post-processing tutorials list"> Photography on the Net Post-processing tutorials list </a><br>
这里经常更新稀有的后期处理的文章列表。 </li><p><span ></span>
</p><li><a rel="external nofollow" href="http://www.photoshoproadmap.com/Photoshop-tutorials/Photo-retouching/Most-popular/2/" title="Photoshop Road Map"> Photoshop Road Map </a><br>
一个非常棒的列表，包含了易学的 PhotoShop 处理教程 (“洗”牙，图像平衡技巧等) </li><li><a rel="external nofollow" href="http://www.photoshopsupport.com/tutorials/or/black-and-white.html" title="How to create black and white from color"> How to create black and white from color </a><font color="#ffffff"># Copyright for </font><a rel="external nofollow" href="http://jandan.net/"><font color="#ffffff">Jandan.net</font></a><font color="#ffffff">(http://jandan.net/)</font><br>
一个非常好的教程（来自 <a rel="external nofollow" href="http://www.photoshopsupport.com/" title="Photoshop Support"> Photoshop Support </a> ）教授了一些简单实用的技巧：如何把彩色相片处理成黑白。 </li></ol>
<h2>我喜爱的摄影师<br>
</h2>
<ol><li><a rel="external nofollow" href="http://www.magnumphotos.com/" title="Magnum Photos"> Magnum Photos </a><br>
我（原文作者）知道的最优秀摄影技术站之一，只有那些顶尖的摄影师才能加入这个小组。这个网站有一个展览厅，专门展示成员作品。我最喜欢的摄影师 Trent Parke 也在里面。
</li><li><a rel="external nofollow" href="http://www.mysteryme.com/" title="Mystery Me"> Mystery Me </a><br>
这个家伙最擅长拍摄独一无二的风景照和街道帅照。 </li><li><a rel="external nofollow" href="http://www.pbase.com/sheila" title="Sheila Smart"> Sheila Smart </a><br>
她的作品总是闪烁出独特的光芒。建议看看这篇文章：<a rel="external nofollow" href="http://www.phototakers.com/forum/ftopic51594.html" title="inside the brain of Sheila Smart"> inside her brain </a>. </li><li><a rel="external nofollow" href="http://www.annawarr.com.au/" title="Anna Warr Photography"> Anna Warr Photography<br>
</a>她只拍摄大型音乐会和节日里的悉尼。看过她的相片之后，你的脑海里会对它们挥之不去。去她的 <a rel="external nofollow" href="http://www.flickr.com/photos/54386964@N00/" title="Anna Warr ' s Flickr gallery"> Flickr 展览页面看看吧。</a> </li><li><a rel="external nofollow" href="http://www.photosbyjay.com.au/" title="Photos By Jay"> Photos By Jay </a><br>
完美的婚礼、悉尼的社会新闻与大事摄影（作者的主页。）
</li></ol>
<h2>摄影技术竞技场与社区 </h2>
<ol><li><a rel="external nofollow" href="http://www.flickr.com/" title="Flickr"> Flickr </a><br>
大名鼎鼎，就不多说。 </li><li><a rel="external nofollow" href="http://www.photographyvoter.com/" title="Photography Voter"> Photography Voter </a><br>
一个模仿 digg 的摄影社区。 </li><li><a rel="external nofollow" href="http://www.ngm.com/" title="National Geographic"> National Geographic </a><br>
（美国）国家地理杂志，看过刊登在该杂志的照片吧？没看过？搜索一下，或者进 Google Earth ，打开美国国家地理杂志的图层去看。我最近发现<a rel="external nofollow" set="yes" href="http://www.photographyvoter.com/out.php?title=Shooting-With-National-Geographic-Photographer" title="this article">一篇文章</a>：讲述作者和国家地址杂志的摄影师一起外出拍摄的故事。 </li><li><a rel="external nofollow" href="http://www.luminous-landscape.com/" title="Luminous Landscape"> Luminous Landscape </a><br>
- 广泛而权威的摄影技术，有很多专业级人士聚集在这里。 </li><li><a rel="external nofollow" href="http://www.deviantart.com/" title="Deviant Art"> Deviant Art </a><br>
一个非常棒的社区，不仅仅是摄影技术，还包括其他的：壁纸、系统皮肤、鼠标指针、图标等等的优秀社区。 </li><li><a rel="external nofollow" href="http://www.dpchallenge.com/" title="DP Challenge"> DP Challenge </a><br>
我非常喜欢这个站点，这个强大的社区里有很多出色的摄影师图文并茂地分享他们拍摄的过程与技巧。 </li><li><a rel="external nofollow" href="http://www.photo.net/" title="Photo.net"> Photo.net </a> -<br>
老鸟菜鸟都喜欢聚集在这里，非常活跃。我接触过的最大的社区。 </li><li><a rel="external nofollow" href="http://www.photo.net.au/" title="Photo.net.au"> Photo.net.au </a><span><br>
澳洲版的 <a rel="external nofollow" href="http://photo.net/"> Photo.net .</a></span></li><li><a rel="external nofollow" href="http://www.photoaxe.com/" title="PhotoAxe"> PhotoAxe<br>
</a>很多写得很棒的摄影技术技巧与摄影装配评论。</li><li><a rel="external nofollow" href="http://www.fredmiranda.com/" title="Fred Miranda"> Fred Miranda </a><br>
一个非常活跃的社区，有很多不错的 Photoshop 插件哦。 </li><li><a rel="external nofollow" href="http://www.photosig.com/" title="Photosig"> Photosig<br>
</a>这是一个详尽而易用的摄影技术网站和论坛。 </li><li><a rel="external nofollow" href="http://www.trekearth.com/photos.php?offset=2&amp;%20cat=lens&amp;%20id=1500" title="Trek Earth "> Trek Earth<br>
</a>超多高质量的相片，看了之后，你爬山涉水的渴望与本能就会把你吞噬。 </li></ol>
<h2>摄影装备评价<br>
</h2>
<ol><li><a rel="external nofollow" href="http://www.dpreview.com/" title="DPreview"> DPreview </a> -<br>
该站主要是进行摄影装备的详细而有深度的评价。 </li><li><a rel="external nofollow" href="http://www.steves-digicams.com/" title="Steve ' s Digicams "> Steve ’ s Digicams<br>
</a>这里有很多活跃的用户。 </li><li><a rel="external nofollow" href="http://www.photoreview.com.au/" title="PhotoReview.com.au"> PhotoReview.com.au </a>
</li></ol><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200917104341832</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200917104341832</guid>
    <pubDate>Sat, 7 Feb 2009 22:43:41 +0800</pubDate>
    <dcterms:modified>2009-02-07T22:43:41+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Five Ways to Become a Better Software Developer]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372009013111351292</link>
    <description><![CDATA[<div><div >
 
  <a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/" target="_blank">原文</a><cite>来自</cite><a href="http://joshblog.net/" target="_blank">JoshBlog</a><br><cite>by Josh Tynjala</cite>
   
      
  <p>For a while now, I’ve wanted to put together a
collection of tips for up-and-coming software developers. I’m talking
about talented guys and gals who dream of working on more exciting
projects and maybe getting a little recognition. Not entirely sure how
to go from code <em>monkey</em> to code <em>ninja</em>? I don’t have
all the answers, of course, but each of these suggestions has
personally helped me improve my career and discover other talented
people that were definitely worth meeting.</p>
<h4 >Contents</h4>
<ol><li>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#code-for-fun">Write Code For Fun</a></p>
</li><li>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#architecture">Study Software Architecture and Design Patterns</a></p>
</li><li>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#blog">Start a Blog</a></p>
</li><li>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#community">Join a Community</a></p>
</li><li>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#motivation">Keep Yourself Motivated</a></p>
</li></ol>
<h4 >Write Code For Fun</h4>
<p>For some software developers, coding only happens at the office.
Once they step away from their desk, they won’t touch a compiler until
tomorrow or after the weekend. On the other hand, many of the most
successful developers I know write a little bit of code at home too.
Some contribute to open source projects. Some simply build the
occasional little utility for themselves. Some actually build something
cool enough to become a product and make the developer a little extra
money. Whatever the focus, side projects like these are a great way to
explore interesting ideas and to learn new skills without all the
deadlines and politics you deal with every day at work. </p>
<p>Obviously, you don’t need to make spend every night coding. By all
means, have a social life. However, if you find yourself sitting on the
couch in the middle of the week with nothing to do, brainstorm a
project idea that you’ll find exciting and challenging.</p>
<h5>Fun Side Project Ideas</h5>
<ul><li>
<p>Use some libraries or APIs you’ve been itching to play with, but never had a reason to use in your everyday work.</p>
</li><li>
<p>Create a new application or <a href="https://developer.mozilla.org/en/Extensions">extension to an existing app</a> that will help you get something done faster.</p>
</li><li>
<p>Design a fun little game. Maybe <a href="https://www.mochiads.com/">make</a> <a href="http://www.flashgamelicense.com/">some</a> <a href="http://www.apple.com/iphone/appstore/">money</a> on it.</p>
</li><li>
<p>Try to build something you’ve never seen anyone do with your technology-of-choice before.</p>
</li><li>
<p>If all you know are web apps, switch it up, and learn how to <a href="http://www.amazon.com/So-you-want-write-compiler%3F/lm/R57BBKI3NPO2Q">write a compiler</a> or an operating system kernel.</p>
</li><li>
<p>Try to <a href="http://www.tiobe.com/tiobe_index/index.htm">learn a new programming language</a>.</p>
</li></ul>
<p>Be ambitious. Stretch your limits. It’s okay if you fail. You’ll learn something no matter what the result.</p>
<p>For me, personally, coding in my free time has been the best way to
learn anything about software development and various technologies. I
jump into new frameworks, APIs, and technologies headfirst and come out
with greater knowledge that helps me a thousand times over on the
things I actually get paid to do. My co-workers often say “let’s ask
Josh” when they run into trouble because they know I’ve spent a lot of
time digging into a wide variety of features. In many cases, I’ve
already discovered a bunch of quirks and bugs that they might run into,
and I can often share workarounds so that they won’t get stuck for
hours figuring it all out themselves like I had to do.</p>
<p>Though I never get paid directly for the time I spend on fun side
projects at home, I’ve found that the skills and knowledge I gain on
these sorts of projects earn me better rewards in the long run.</p>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#contents">Back to Top</a></p>
<h4 >Study Software Architecture and Design Patterns</h4>
<p>Beautiful code is useful, reusable, extensible. Strive to make the
quality of your code better as your progress through your career.
Figure out how to make functions and classes more generic. Find ways to
make your code more extensible so that other developers can create
custom functionality easily without changing the internals. Discover
and experiment with new ways to get the same tasks done to figure out
if you can do something better.</p>
<p>One good way to improve the quality of your code is to look at code
written by other developers. Check out the code other members of your
team have written. If you find something interesting or confusing, go
over to their desk and ask about it. Your co-worker will probably enjoy
knowing that you’re interested in his or her work, and you’ll learn
something in the process. Alternatively (no, additionally!), look at
the source code for <a href="http://github.com/popular/watched">prominent open source projects</a>,
and try to figure out how they work behind the scenes. I like to look
at code from libraries and frameworks that I use in my daily work
because I intimately know the input and output of many of the APIs
already. If you’re feeling confident, see if you can improve any of the
code, fix a bug, or add a new feature. One of the best ways to learn is
to get your hands dirty and do some real work.</p>
<p>Likewise, you should let other developers look at your code and
provide suggestions. As you probably know, in a professional
environment, this is called <a href="http://www.codinghorror.com/blog/archives/000495.html">code review</a>.
Allow them to ask questions and make critiques. Don’t be afraid of
someone telling you that something in your module isn’t the best it
could be. It’s easy to feel defensive about something that’s taken a
lot of hard work, especially if you feel proud of how it turned out. I
like to think about it this way: if my code isn’t the best it could be
(most importantly, if it has bugs), I’d rather get it working properly
now than to have a disgruntled user complain about its problems later.
Even worse, they might give up completely and fail to tell me about
what went wrong! Mistakes happen. Acknowledge that something isn’t
perfect, and when you fix something after receiving a bug report, be
happy that you have one less thing to worry about in the future.</p>
<p>Consider learning about <a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29">design patterns</a>.
A design pattern is a commonly accepted way to structure your code to
solve a type of software engineering problem. They don’t provide the
complete solution with everything finished for you. Instead, they
describe a more generic architecture that applies to multiple problems
that have similar requirements. Generally, development frameworks are
the best place to find extensive use of design patterns. Often,
frameworks use patterns to help developers structure projects in a more
standardized and efficient way. Additionally, their use of patterns
help to decouple parts of a project so that future changes have a less
impact across the entire codebase. Many teams like to use a single
framework from one project to the next because it helps the developers
become productive faster both when starting new projects and
maintaining existing projects.</p>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#contents">Back to Top</a></p>
<h4 >Start a Blog</h4>
<p>You know all those cool little projects and experiments you’ll soon be building in your free time? Consider <a href="http://codex.wordpress.org/New_To_WordPress_-_Where_to_Start">starting a blog</a>
where you can share that stuff with others. Blogs don’t just have to be
diaries about the mundane details of your life. For many successful
developers, a blog’s content can be as effective as a resume. I can’t
tell you how many hiring managers have mentioned that they enjoyed
reading a few of my recent blog posts. A blog with excellent
descriptions of technical concepts, source code samples that follow
best practices, and explain things in casual and friendly tone can be a
strong supplement to help an interviewer evaluate a job candidate.</p>
<p>Allow people to comment on your blog posts. Be the person that
starts (or continues) a great conversation. Don’t be afraid of feedback
or criticism. Everyone learns by making mistakes. My Composition
teacher from my freshman year in college once explained that the best
essays tend to have the most red-ink feedback in the margins. Not the
worst ones. He explained that if you get constructive feedback from
someone, its generally because they like what you’ve created, and they
see value in helping you improve it.</p>
<h5>A Few Blog Post Ideas</h5>
<ul><li>
<p>Share some clever code or a useful class you wrote, and explain how
it helped you solve a difficult or normally tedious problem. If it
helped you get something done easier or faster, it’s likely that other
people can benefit from it too.</p>
</li><li>
<p>Talk about the process you used to implement a project from
beginning to end. Tell your audience what worked and what could be
improved the next time you need to build something like that. Everyone
wants to get their work done faster and more smoothly. Learning about
the challenges another person has faced is a great way to be prepared
for the future.</p>
</li><li>
<p>Has a company relevant to your field announced a useful (or useless)
new product or service, or has a prominent industry leader said
something very controversial? Share your own opinion on the subject. <em>Do not</em>
write a “me too” post that’s only a paragraph long just to link to
another blog or website. Collect your thoughts and contribute to the
conversation by writing a response to the news from your unique
perspective. You may discover that all those lame “me too” posts start
linking to your blog as well.</p>
</li></ul>
<p>In short, focus on creating useful content that will help others or
provide relevant information that they may not find anywhere else. If
you put useful information out there, people will find it and then come
back for more.</p>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#contents">Back to Top</a></p>
<h4 >Join a community</h4>
<p>Whether we’re talking mailing lists, user groups, conferences, or
some other venue, developer communities spring up anywhere and
everywhere. These communities can provide awesome ways to improve your
skills by learning from others, to help others by sharing your own
expert knowledge, and to meet like-minded developers that may become
friends, colleagues, and a part of your growing professional network.</p>
<p>Though the least personal, <strong>mailing lists and forums</strong>
are a great way to take a first step into participating in a technology
community. While blogs are a bit more monolithic with a single source
of discussion topics and shorter conversations (if any), forums and
mailing lists produce more longer-term discussion on a wider variety of
topics. In general, things are informal, and a lot of discussion
(depending on the community, of course) starts from someone having a
problem and looking for advice. In more active communities, discussions
about frameworks, best practices, and new techniques for solving
problems can grow to hundreds of messages and provide a wealth of
real-world experience.</p>
<p><strong>Conferences</strong> often give you access to a national or
even worldwide community of people working with your technology of
choice. They provide you with opportunities to travel, to meet
prominent bloggers and community leaders, and to have a good time while
staying relevant to work. They can be expensive, though, so you’ll
often have to ask your employer to pay for your trip, and they’ll
expect you get more out of the experience than personal networking.
They want to know that their investment helped you learn something that
will benefit their business. Your best bet for learning, especially if
you’re like me and you already stay up-to-date on the latest and
greatest through blogs and other online sources, is to go to sessions
that cover technologies or features you don’t normally use or to focus
on sneak-peek type sessions where something is being introduced for the
first time.</p>
<p>If you’d rather stay near home, or if you don’t have the budget for a big conference, consider joining a <strong>local user group</strong>.
These small city- or region-based communities generally offer free
monthly meetings where developers can get together for a few hours chat
about tech. There’s often a presentation by a group member or a
visiting professional on topics similar to those found in conference
sessions, followed by some informal discussion that may meander to a
wide-variety of topics. After the meeting, everyone may go out for a
couple beers and continue chatting about the tech they love. It’s a
great way to find work, look for new employees, and learn what other
developers are doing in your area. You may be surprised to discover
which companies, big and small, have offices nearby. In my opinion, one
of the best parts of a user group meeting is that the informal setting
tends to make everyone more approachable and friendly. It’s not as
intimidating as the crowds of several hundred to several thousand
you’ll swim through at conferences.</p>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#contents">Back to Top</a></p>
<h4 >Keep Yourself Motivated</h4>
<p>Once you start down the road to success, things start to feel a bit
different. People start showing you more respect. They ask for your
opinions on how to best approach a problem. They listen more carefully
when you have something to say. It feels great! However, that’s not
reason to stop working hard to be a better developer.</p>
<p>If you stop working on fun side projects, learning new techniques,
blogging, and participating in communities, you’re going to eventually
fall behind. One day, you’ll discover that all the cool kids are
“suddenly” doing things you don’t quite understand anymore. Sometimes,
this is partially inevitable. Once you’ve become one of the best at
what you do, you start to spend more time on very specialized projects.
You end up in your own little bubble, and you can easily rationalize
not staying on top of every new development. That’s not necessarily a
bad thing, but there’s a line between doing this and getting too
comfortable or losing focus.</p>
<p>Many times, feeding the desire to become a better developer offers
rewards that will continue to motivate you to do more. Praise and
recognition along with chances to work on more exciting and interesting
projects are often enough to keep you excited. At the same time,
overstimulating yourself (by overscheduling) can be a powerful
demotivator. With too much “real” work, you may find yourself too tired
to do the fun stuff like blog or build side projects. When that
happens, you lose a powerful influence: you won’t be stimulating your
mind with new ideas from outside sources. I find myself at my most
creative after I’ve worked on a project in another language or if I’ve
talked shop with other developers working on widely-different projects.</p>
<p>Every developer is different. What works to keep me motivated may
not be what works for you. If you’re feeling a little burnt out, take a
moment evaluate what has changed recently. Brainstorm new ideas or find
inspiration elsewhere. Many developers have non-programming hobbies
like playing an instrument, working on cars, or mountain climbing
(among many, many others). Often, it’s something that they consider
both stimulating and relaxing at the same time. Don’t let yourself get
stuck in a rut too long. Be proactive and figure out what it takes to
get yourself back on track.</p>
<p><a href="http://joshblog.net/2009/01/12/five-ways-to-become-a-better-software-developer/#contents">Back to Top</a></p>
<h4>Final Thoughts</h4>
<p>Certainly, I don’t consider this list of tips an exhaustive
resource. Nor would I say that doing all these things will be right for
every software developer. However, I’ve described many contributing
success factors in my own personal career as I see them. I would have
loved to read an article like this when I was just starting out. If
you’re an experienced developer, what helped you get better at your job?</p>
  
   
 </div></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372009013111351292</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372009013111351292</guid>
    <pubDate>Tue, 13 Jan 2009 11:13:51 +0800</pubDate>
    <dcterms:modified>2009-02-08T16:56:08+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[系统开发——新学科，新教育]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200907105632348</link>
    <description><![CDATA[<div><a href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA" target="_blank">原文</a>来自<a href="http://www.infoq.com/cn/" target="_blank">InfoQ</a><br><p>今天的大学教育，是否足以让一个软件开发人员应对日常工作？如今，敏捷软件开发正以前所未有的速度在业界大行其道，开发人员的技能也需要得到进一步
拓展。本文中，Dave
West博士探讨了一种正在逐渐成为主流的训练方式——“系统开发”，它强调人性化、匠艺、设计、创意、创新和新事物的涌现。如今大学中计算机学科的训练
方式，其价值系统由形式主义、控制、工程和决定论【译注2】构成，Dave
West提出的训练方式正与其大相径庭。在他看来，系统开发应被称为“构建现实”<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#1"><sup>i</sup></a>，
因为它基于一个基本前提：系统开发人员所做的一切，都要与现实整合在一起，并随之发生变化（或可称为重新配置）；而现实又是一个包括人、组织、社会政治与
文化体系在内的复杂系统。从自己的经验中，West提出一种更好的教学方式——使用可被称为“bottega”【译注1】的工作室式教学，以替代如今乏善
可陈的教室和实验室式教学。目前，West博士正在Santa Fe学院使用这种方式。<br></p>

  











        
<p>软件开发这个职业仍未成熟。</p>
<p>没错，我们在流程、质量、职业精神方面的提升已经迈出了很大步伐，而且我们还能交付一些具备高度复杂性、非常可靠并且可用的软件。然而，作为一个行
业，我们仍然努力想达到30%至40%的“成功”率，要想做到“在给定的时间和成本下成功”，这个比率甚至更低。这个隐疾的产生，有很多因素：错误的比喻
（工程）、野心（我们已经解决了简单的问题）、改变的速度（技术和世界），以及对技术与人类自身这两个系统之间边界的混淆。</p>
<p>有一个很重要的因素：我们在学校学到的知识（以及我们学习的方式）与我们所从事职业的要求，这两者之间的鸿沟正在不断加宽、加深。毋庸置疑，过去我们创造的教学方式，更符合当时的实际需要。而且我们也创造出了一套体系，通过过去的方式来教育学生。</p>
<h2>划定疆域</h2>
<p>ACM-AIS-IEEE计算机课程2005年度报告<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#2"><sup>ii</sup></a>指
明：电子工程（Electrical Engineering，简称EE）、计算机工程（Computer
Engineering，简称CE）、计算机科学（Computer Science，简称CS）、软件工程（Software
Engineering，简称SE）、信息技术（Information Technology，简称IT）和信息系统（Information
Systems，简称IS）这六门学科之间有很复杂的重叠。六门之中，前三门（EE、CE和CS）重点放在机器以及与机器相关的理论上。（CS也关注通过
操作系统运作的虚拟机，还有语言编译器）。软件工程和信息系统所教授的知识与软件开发行业比较接近，而信息技术主要讲授有关基础架构，特别是网络、安全和
管理方面的知识。</p>
<p>ACM目前正在制定新的文档，提出一门新的学科——系统开发（Systems
Development，简称SD）。系统开发融合了多个ACM分类包含的技能，包括：来自CS的编程；来自SE的软件、流程和工具；以及来自IS的、对
应用的关注。除上述内容之外，SD还包括：对（通用的、组合而且复杂的）系统的相关扩展知识、对计算原理以及相关科学的历史和原理的深入讲授、对业务和管
理的深入讲授，以及诸如哲学、数学、人类学、艺术、人文学科等其他更多课程。</p>
<p>ACM的六门学科都注入了同样的价值体系，关注形式主义、控制、工程和决定论。而SD与之截然不同，它强调人性化、匠艺、设计、创意、创新和新事物
的涌现。系统开发应该被称为“现实构建”，因为它基于如下基本前提：系统开发所做的每一件事情，都必须跟一个现存的复杂系统紧密相关，而且要改变该复杂系
统；这个复杂系统是由人、组织、社会政治和文化构成的，我们称之为——现实。也就是说：SD基于现实，而且要改变现实。</p>
<h2>Mastery</h2>
<blockquote>理想中的建筑师，应该是一名文学家、一个技术精湛的工匠、一名数学家，熟悉历史研究，勤于钻研哲学，懂得音乐，粗通医学，他还应该是个法学家、略懂星相学，并会做天文计算。
<p align="right">——古罗马建筑师 维特鲁威 公元前25年</p>
</blockquote>
<p>维特鲁威的建筑师必须是饱学之士——对现有的学科都略知一二，同时在一些特定领域极为精深。这个要求也适用于职业的（精通级别的）系统开发者。（不过要注意的是，当今没有人能够熟悉所有现有的学科。）要想走上精通之路，必须经过下列七个步骤：</p>
<ol><li>对概念和相关词汇的机械记忆。</li><li>在别人的指导下应用知识。</li><li>可以独自应用知识。</li><li>在全新的环境中应用知识。</li><li>具备指导他人的能力。</li><li>具备教授他人的能力（无论受众多寡）。</li><li>具备做出原创性贡献或扩展已有领域知识的能力。</li></ol>
<p>职业人士在整个知识体系中应该展现出到第4个步骤的能力，而在一些特定方面应该具备第5到第7个步骤的能力。除步骤1之外，精通之士应该可以依靠自
己的能力去主动完成一些事情，而不是仅仅被动地知道某些事情。后者的偏见正好佐证了意大利历史哲学家维柯（Giambatisa
Vico，1668-1774）的话：“毋庸置疑：人，仅由其创造之物所塑造。”（"We are sure only of that which
we build."）</p>
<h2>所有现有的知识</h2>
<p>之前两节中提到：相对以往来说，系统开发涉及知识的广度和深度要更加宽阔和深入。当然，这些知识不可能像字面上说的覆盖“所有现有的知识”。不过，对于一个拿到上述ACM六种专业之一的硕士学位证的研究生来说，他所学到的知识面，最多也就能达到系统开发所要求的二分之一。</p>
<p>这里我无法一一描述涉及的知识领域。【部分原因是由于目前仍处在定义和去粗取精的过程，为2009年春末要开启的第一个软件开发Bottega做准备。】我想多谈一谈关于模块化和学习环境的话题。</p>
<p>要想根据以往的学分小时、课程、学期、学年等方式来讲授“系统开发者”所应掌握的内容，几乎是不可能的。两倍内容，这就意味着要想拿到学位，花费的
时间会从6年变成12年，根本无法实现。我们没有使用学分小时或是课程的方式，而是提议将知识领域划分为更为细化的具体知识单元。在新墨西哥
Highlands学校的实验中（后文所示），我们使用“能力素质”表示某个知识单元。</p>
<p>可以用马赛克来比喻知识单元（能力素质）及其之间的关系。马赛克表示知识的整个领域，而每一小块“瓷砖”表示单个能力素质。要注意：每一块“瓷砖
”不仅仅代表知识，也包括了实践（知识的应用）、技能和经验等各个方面。正如一幅图画所展示的，马赛克有其主题，构成马赛克的各组瓷砖之间存在模式关系，
这些关系就体现了整幅马赛克的主题。每块“瓷砖”都有一个颜色，也就是与这块“瓷砖”相关知识关联最紧密的学科或领域。哲学、人类学、文学、数学、历史、
自然科学等等学科的知识，散布在整幅马赛克图画之中。让人从整体上了解多门学科知识之间的关系，同时达到了跨学科的知识整合，这在基于单一课程的教学方式
中是无法达到的。马赛克提供了对于要掌握的整个领域的总体概观。主题<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#5"><sup>v</sup></a>则突出了重点，同时没有丧失非重点元素之间的关系。带颜色的瓷砖展现出各学科的贡献，同时在上下文中明确表示出跨学科的关系。学生们不仅知其然，而且知其所以然，同时能够马上将学到的知识应用到到实践中。</p>
<p>这幅马赛克画有多大？要由多少块“瓷砖”构成？</p>
<p>在新墨西哥Highlands学校（报告见后文），我们为系统开发“专业”定义了超过500种“能力素质”。这个数字还不包括文科和其他必修的课
程。基于Highlands的经验，再加上对于“系统开发”“能力素质”的研究，产生了一幅由1000~1500块“瓷砖”构成的马赛克画面。</p>
<p>几乎没有人能够拒绝学习这么多知识的机会（作为教育工作者，我们经常要面临向课程中加入更多主题的诱惑）；可大家都会提出一个很实际的反对意见：你
不能将如此广泛而又深入的知识放入一门课程之中，然后指望学生用常见的6年时间掌握这些知识、并获得学士和硕士学位，这太不现实了。然而，这个反对意见根
本没有考虑到人的学习能力。实际上，该意见基于下面的假设：一个人所能学到的知识，可以压缩到16周的课程，而且每周3次50分钟左右的课时之中。</p>
<p>团队或个人学习某一门指定知识的速度，与他们开发完成某个软件项目的速度不同。敏捷开发认为：许多小瓷砖构成的马赛克图画与“项目待办事项列表”类
似。在一段固定的时间范围中，每个学生从“产品待办事项列表”中选择一系列“能力素质”，并决心在这段时间内掌握，他所做的选择就类似于“sprint任
务列表 ”。在Highlands我们就称之为个人学习计划（individual learning
plans——ILP），并使用为期6周的时间盒。所有的精通之道，“实践”是首要的必经之路。因此，很有必要将ILP与实际的项目工作结合起来，最好是
真实的项目。每个学生可以自己决定自己的个人“学习速度”，这样就可以规划出要用多久完成学业了。</p>
<p>学习速度并不仅仅由个体差异决定，适当的环境可以使其大幅提升。</p>
<h2>Bottega（教室）</h2>
<p>不妨考虑用工作室——bottegavi<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#6"><sup>vi</sup></a>替代如今乏善可陈的教室和实验室，达芬奇就在这样的地方学习和工作。</p>
<ul><li>拥有“店面”，货品和服务生产出来后直接交付给付钱的顾客。</li><li>工作室以技艺至上，为了提升和支持技艺，大家打造工具、发现技巧，并将技艺教授给学徒们。</li><li>这是一个喧闹的地方，多个项目和活动同时进行，墙上和工作台上布满了正在进行中的工作。</li><li>这个地方充斥着技艺要用到的工具。</li><li>有休息之处，以及饮食之所。</li><li>这是一个智慧的中心，是大师、科学家、思考家的“必去之处”。当地的大师和熟练工匠们管理这个中心。</li><li>这里是革新与创造的源泉！</li><li>这里可以很自然地形成跨学科的学习环境与气氛，同时理论与实践的混合难分彼此。</li><li>这里充满了音乐、对话、谈笑，甚至是大声的争论。</li><li>这里分享食物和水，也许还包括睡眠，甚至可能分享爱<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#7"><sup>vii</sup></a>。</li></ul>
<p>Bottega有意模仿了敏捷软件开发提倡的理想工作环境：开放、很多的白板、很多沟通产物、便于移动、协作，社会化。要想取得最好的效果，学生们
必须花费大量时间呆在bottega中，最好是他们绝大部分的时间。Bottega的运作方式就像是“只有一间教室的学校”，每个人，无论掌握程度高低，
都在同一个地方，而且能看到环境中所有的东西。如果屋子里某个地方发生了有趣或是重要的事情，学生们可以坐着椅子滑动到那个地方并参与进去。在这样的环境
中，很多知识不知不觉就被吸收了，就像是海绵吸水那样的渗透方式。由于之前已经完成的非自觉式“背景学习”，如果某个学生需要有意学习或是应用某些知识，
这个过程可以进展迅速。</p>
<p>个人责任感、截止日期、理解客户并使之满意，这些都是成为大师的要素。开发商业产品，提供给学生教育和体验的机会，让他们有机会走上精通之路。这种理想化的环境能建立起来么？能否维持？效果又怎么样呢？</p>
<h2>经验报告——新墨西哥Highlands大学</h2>
<p>2004年8月，34名学生参加了新墨西哥Highlands大学一个与系统开发相关的特别计划，这些学生覆盖了大学新生到研究生的范围。学位计划
没有具体的课程。学生们在他们的“专业”中要掌握500多种“能力素质”，此外还包括通用课程以及一些文科课程，这样在毕业时就可以拿到艺术学士学位。这
个计划是基于学徒制的，计划中每个人都会按照真实的时间要求，开发由客户掏腰包和实际使用的软件，并以此赚取报酬。50%的学生是女性（这对计算机相关的
学位来说很特别），60%多是少数族群，并且几乎80%的学生在经济上都不富裕。Pam Postal和Dave
West，这两位全职的教师设计并运作了这个计划。国际知名的开发者（比如Linda Rising和Ron
Jeffries）访问了该计划，并与学生们一起工作（结对编程），通过手把手的指导和传授其他类型的课程，奉献出了自己的专业知识。所有的开发工作和指
导都是在“只有一间教室的学校”中发生的。我们的工作室环境中有：岛状工作区域，布满各面墙的白板、硬面地板和带有滚轮的椅子。沙发，冰箱和微波炉，这些
设施也为大家提供了方便。大量的时间花在了促进“文化和集体”的沟通上。他们还为新人的加入和学徒水平的提升准备了特别的仪式。在迭代的回顾和仪式上，他
们会一起吃点家常便饭，有时会是特别烹制的菜肴。不同颜色的衬衫标明了不同的学徒水平。这个计划独一无二的Logo在人们之间建立起了身份感和认同感。</p>
<p><img title="系统开发——新学科，新教育 - hydra1983 - 远古的迷茫" src="http://www.infoq.com/resource/articles/systems-development-discipline/zh/resources/agile.jpg" _href="img://agile.jpg" alt=""></p>
<p><small>头上带有横线的X乘以10，表示该计划的目标，希望毕业生的职业素质要十倍于平均水平。软件是我们的媒介，（精通）技艺是我们的目标，人是我们的关注点，系统是我们的视角，敏捷是我们的流程。</small></p>
<p>在第一个和第二个学期之间，课程的新生保持率为100%；而在一般的大学中，同样的时间间隔，保持率为50%。又有50名学生，大多数是新生，要求
加入该计划在2005年秋季的课程。计划第一年结束后，7名从一开始就加入的学生获得了全职的雇佣合同，2名进入了研究所，有一名学生同时满足了获得计算
机科学硕士学位的所有条件。8名学生共同发表了论文，并在洛杉矶的OOPSLA和丹佛的Agile研讨会上发表演讲。</p>
<p>从这第一年（也是唯一一年<a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#8"><sup>viii</sup></a>）的计划中，我们获得了如下经验：</p>
<ul><li>学生们可以在更短时间内学到更多东西。基于这次的经验，我们相信：即使是一般水平的大学新生，也可以在不到5年的时间里学到所有“系统开发”相关的课程（两倍于一般的6年教育）。</li><li>学生学习和理解的深度超出了预期。</li><li>学生可以快速进入到自主的学习过程中。</li><li>学生会选择、安装和配置自己使用的工具。</li><li>“强烈的共同归属感”，“人的价值（软件由人开发、为人服务）”、“开放、协作的学习环境”，这三个因素被女性学生反复提到，并认为这是她们加入并留在计划中的主要原因。</li><li>学生们不仅学到了技术技能，同时也学到了团队协作和项目管理方面的技能。</li><li>所有项目的所有因素都由学生管理，而不是教师。</li><li>有些计算机科学方面的教师，过去反对该计划，到第二个学期时反而成为了积极的参与者。</li><li>学生平均每周在工作室中花费30个小时的时间。</li><li>“喧闹”的环境没有分心，反而成为了资产。</li><li>根据我们真实的客户反映，学生工作成果的质量与职业人士的水平相当。</li><li>即使是最稚嫩的学徒，也可以为项目做出有价值的贡献。他们根本没有阻碍或是拖慢项目进度。</li><li>Pam和Dave平均每周要在工作室中花费超过70个小时。（长期来看，这样的时间投入无法持续。）</li></ul>
<p>计划取消之后，学生们发起了一个签名活动，并与新墨西哥州州长Richardson的职员们举行了会议，同时争得了全国知名人士的支持，学生们是在
之前的会议上与他们相识的。虽然没有影响最后的结果，但是这让人们坚信：该计划应该继续实施，而且有人努力在另外一所大学复制该计划。</p>
<p>关于该计划更详细的报告，已经于2006年发布在InfoQ上：<a href="http://www.infoq.com/articles/NMHU-scrum-university-apprentice"><strong>经验报告──新墨西哥Highlands大学的敏捷开发学徒计划</strong></a>。</p>
<h2>继续前行——Transcendence Corporation，Santa Fe学院和Santa Fe Complex计划</h2>
<p>Transcendence
Corporation是在Highlands计划进行时，基于Highlands的经验成立的；要成为学徒计划的合同代理公司。（根据州立法律，大学禁
止参与类似的工作合同。）Santa Fe学院是一个很小的（学生少于2000人）文科学院，在美术和表演艺术科系上有很强的实力。Santa Fe
Complex计划提供了类似bottega的环境，在数学、自然科学、可视化、基于代理的建模、应用复杂性研究，以及“艺术与科学之间的交叉”等方面的
专业知识。Santa
Fe学院在2007年秋季创立了类似上述描述的计划。在2008年秋季，该计划将被重新修订为基于“能力素质”的5年制科学硕士计划。</p>
<p>到2008年秋季和2009年春季，三个组织将协同工作以达到下列目标：</p>
<ul><li>召集感兴趣的教育工作者和职业人士，成立工作室，以完成上面描述的“课程马赛克”的完整图景。</li><li>提供以bottega风格为目标的工作室，让大学和中学高阶预修班的学生们参加。</li><li>首批招募50名学生，包括至少10到15名高中生，还有10名来自大学的“转系学生”。</li><li>征求项目（基于Highlands的经验，我们提供离岸项目的费率，同时保证更高的质量）、内部实习和外部实习机会。</li><li>建立与组织的赞助机会，特别是国内和国际的咨询公司，他们苦于无法招聘到合适的毕业生，因此一直被迫创建内部的训练营和训练计划。</li><li>在2009年春末、夏初启动第一个bottega。</li></ul>
<p>任何有兴趣加入这个计划、与我们一起工作的人（特别是课程工作室、签约项目工作或是赞助关系这方面的人），欢迎尽快与作者接洽。</p>
<h2>关于作者</h2>
<p><img title="系统开发——新学科，新教育 - hydra1983 - 远古的迷茫" src="http://www.infoq.com/resource/articles/systems-development-discipline/zh/resources/DaveWest.JPG" _href="img://DaveWest.JPG" alt="" align="left">Dave
West有多年软件开发经验，其角色跨越了程序员和IT总监等多个角色。在过去的十五年中，他身跨咨询和学术两界。目前是Santa
Fe学院的业务、创新和技术教授，之前在新墨西哥Highlands大学和St.
Thomas大学担任教职。他自己取得了多个学位，包括亚洲哲学学士学位（Macalester学院）、计算机科学和文化人类学硕士研究生学位
（Wisconsin-Madison大学），还有认知人类学的博士学位（同样在Wisconsin-Madison大学获得）。他是《Object
Thinking》一书的作者，并即将完成自己的第二部书稿，主题关于“重新创造软件开发”。他所拥有的专业知识专注于面向对象、敏捷、设计和变革等领
域。</p>
<h2>注解与引用</h2>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#1">注1</a><font size="2">：我第一次遇到这个词汇及其想法，是在Christiane Floyd等人所著的《Software Development as Reality Construction》一书中，该书由Springer-Verlag于1992年出版。</font></p>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#2">注2</a><font size="2">：数据来自Computing Curricula 2005 – The Overview Report. Copyright ? 2006 by ACM and IEEE.</font></p>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#4">注4</a><font size="2">：我将马赛克画视为抽象而不是具象的艺术，一个主题会由一组瓷砖构成，描绘出一个关注点，同时又不丧失与整体的关联。</font></p>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#5">注5</a><font size="2">：我对bottega核心的描述，来自于Fritjof Capra的出色书籍《The Science of Leonardo》，2007年由Doubleday出版。这些描述也出现在其他许多出版物中。</font></p>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#6">注6</a><font size="2">：
希腊人认为：教育（Paideia）应该由贵族阶级从事，同时认为贵族为希腊人的文化和理念赋予了理智，而文化和年轻人也就“融入”了典范之中。从古代开
始，爱情在这个过程中起到了重要作用，大多数城市的成年贵族受到鼓励，与接受他们指导的年轻人们堕入爱河。——维基百科。【译注3】</font></p>
<p  ><a  href="http://www.infoq.com/cn/articles/systems-development-discipline;jsessionid=150EF41F9470A42DA8314AF03EE40AAA#7">注7</a><font size="2">：
有必要说一下为什么这么好的计划只推行了一年，也是为了说明计划的中止与其本身毫无关系。这是个不那么让人高兴的故事，也很难完全描述清楚一个不负责的人
如何背信弃义。在校董事会通过了计划并批准预算两个月后，还是这个董事会，竟然雇佣了一个毫无教育背景和专业知识的政客担任董事长。根据董事会的记录，该
董事长的首要目标是改变教职员工的种族构成。为了达到该目标，董事长想尽办法向拥有终身教职的“外来”教师施加压力，赶他们走；同时不公平地拒绝教师们终
身教职的申请，非法雇佣管理人员，还有其他种种恶劣行径。他的行为使得学校被美国大学教授协会（AAUP）制裁，诸多失败的诉讼让学校损失了数百万美金。
最后，该董事长被解雇了，目前正在等待起诉，因为他在做州立议会参议员时，涉嫌非法收受联邦建筑项目的回扣。回到过去，教师们领导的新计划正处于此人的打
击列表中。当他发现自己无法破坏该计划时，董事长强令终止该计划，而且没有经过任何教师、董事会和学生们的讨论、建议或是许可。</font></p>
<p>【译注1】bottega是意大利词汇，代指年青艺术学生向艺术大师学习时所在的工作室，尤其用来强调工作室中学生或是助理使用的部分。该词汇还用
来代指另
外一种工作室，其中由一些助理帮助一位画家或是雕塑家完成一件艺术品，这件艺术品最后的署名权属于工作室的监管者——大师级艺术家。在文艺复兴时期，佛罗
伦萨大约有30个bottega，其中最著名的由列奥纳多?达芬奇领衔。</p>
<p>【译注2】决定论（determinism），认为个人并无选择个性或行为的自由, 因为一切都由其背景﹑环境等所决定。</p>
<p>【译注3】“文化”(culture)一词来自拉丁语。在德语中有两个词和文化相对应，
即Bildung(可解释为“教育、文化、文明”［education、culture、civilization］)和Kultur。而希腊语
Paideia(相当于拉丁语
humanitas)似乎涵盖了这两种意思。亚里士多德曾在《伦理学》、《政治学》中对希腊人的paideia洞察至深。伊索克拉底也宣称：“我们所称的
希腊人是paideia上的一致，不是血统上的一致”。Paideia是每一个希腊人都必需接受的文化教育。古代教育史权威马鲁(H.I.Marou)说
Paideia就是：“不论希腊人在哪里安家落户……他们首
要的任务是建立他们自己的机构，他们的教育设施——初级学校和体育馆”。就是这些学校和体育馆在教授那些希腊人、非希腊人如何像希腊贵族一样生活。这种教
育方式可以说是希腊式生活的入门，它造就了一批精英人物，这些精英影响了几代知识分子。学生们学习荷马史诗和柏拉图哲学，结果，Paideia成为联系希
腊世界强有力的纽带。”
因此Paideia几乎完全等同于我们今天所讲的文化理想，在这个意义上，Paideia可以定义为希腊教育的理想和目的，是为教育过程的终极目的所提供
的优雅、美德、高贵和巧妙的混合物。耶格尔使用了Paideia这一概念表现古希腊文化的真正精神。这种通过理想教育来达到某种理想的观念，使今天的教育
观念受到挑战。对于我们来说，教育的目的主要是为了获得某种简单的职业技术教育，缺乏那种高贵的、浪漫的理想。Paideia为随后的西方二千年教育奠定
了基本模式：就全部人生而言，它强调精神和物质两方面的教育。如尤维纳尔(Juvenal，约62-142)所言：“健全的心智存在于健全的体魄之中”。
Paideia造就了古典人文主义。马鲁是以这样的言辞来叙述人文
主义特征的：“这意味着在整个历史时期，每一代人的心灵都有一个基本相同的本质，使得联系和真正的交流变得更为容易……。在一种古典文化里，所有的人都有
一种他们羡慕和模仿的共同的精神财富：同样一些准则、同样一些比喻、同样一些想象、同样一些词语——甚至同样一些语言。
”&nbsp;Paideia是评估希腊文化的基础，在Paideia的影响下，
通过文学、哲学、史学、艺术等因素的混合形成了独具特色的希腊文化。这种新文化以苏格拉底问答教学为肇始，一直到柏拉图《理想国》中达到巅峰。</p>
<p><strong>阅读英文原文：</strong><a href="http://www.infoq.com/articles/systems-development-discipline" target="_blank">"Systems Development": a New Discipline for a New Education</a>。</p><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200907105632348</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200907105632348</guid>
    <pubDate>Wed, 7 Jan 2009 10:56:32 +0800</pubDate>
    <dcterms:modified>2009-01-25T12:59:46+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[从163邮箱导出通讯录到Gmail]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008112845112521</link>
    <description><![CDATA[<div>不知道为什么，163最新版的邮箱竟然取消了通讯录导出的功能。<br><br>因为163不支持邮件内容搜索，因此打算更换到Gmail。准备导出通讯录的时候突然发现，原本的“导入/导出”只剩下了“导入”。Google、百度了老半天也没找到完整的解决方案。于是乎，自己动手，丰衣足食。<br><br>所需软件：<br>1.Microsoft Excel<br>步骤：<br>1.打开163通讯录，复制所有内容到Excel<br>2.复制“姓名”和‘电子邮箱地址“到新的sheet，目的是清除其他额外内容<br>3.复制第二步的内容到记事本（windows 自带的就成），目的是清除Excel自动生成的链接之类的<br>4.从记事本中复制已清除格式的内容到Excel。记事本里应该全部都是姓名和邮箱地址，每行对应一个联系人，姓名和邮箱地址之间用空格分隔<br>5.复制完后，Excel应该有两列，一列对应姓名，一列对应邮箱地址<br>6.在最顶上插入一行，对应姓名的那个单元格中写入”姓名“，对应邮箱地址那列的单元格中写入”电子邮箱“（如果不符合的话Gmail导入会出错）<br>7.保存该Excel为csv文件<br>8.打开Gmail的通讯录，导入上步生成的csv文件即可<br><br>Enjoy!<br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008112845112521</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008112845112521</guid>
    <pubDate>Sun, 28 Dec 2008 16:51:12 +0800</pubDate>
    <dcterms:modified>2008-12-28T16:53:45+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ARCI分析矩阵]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811266049803</link>
    <description><![CDATA[<div><dl><dt><a href="http://wiki.woodpecker.org.cn/moin/UsageArciMap" target="_blank">原文</a>来自<a href="http://wiki.woodpecker.org.cn/" target="_blank">woodpecker</a></dt><dt>`ARCI`分析图表</dt><dd><span  ></span><ul><li>是进行过程设计时的最常用工具 <span  ></span></li><li>通过一个綜合性的矩阵,可以在最小空间中,将一个复杂过程中主要的方方面面全部表现出来! <span  ></span></li><li>以下是个实例: <span  ></span><span  ></span></li></ul></dd></dl><div><table><tbody><tr>  <td colspan="2" style="background-color: rgb(255, 206, 123); text-align: center;"><p > 分析矩阵背景 </p></td>
</tr>
<tr>  <td style="vertical-align: top;"><span  ></span><div dir="ltr"  lang="en"><span  ></span>
<span  ></span><div><table><tbody><tr>  <td colspan="4" style="text-align: center;"><p ><strong>责任层级</strong></p></td>
</tr>
<tr>  <td style="background-color: rgb(255, 122, 122); text-align: center;"><span  ></span><p >A</p></td>
  <td><p > 责任 </p></td>
  <td><p >Accountability</p></td>
  <td><p > 对成败负责和进行协调管理 </p></td>
</tr>
<tr>  <td style="background-color: rgb(241, 255, 148); text-align: center;"><span  ></span><p >R</p></td>
  <td><p > 职责 </p></td>
  <td><p >Responsibility</p></td>
  <td><p > 具体实施 </p></td>
</tr>
<tr>  <td style="background-color: rgb(179, 198, 255); text-align: center;"><span  ></span><p >C</p></td>
  <td><p > 咨询 </p></td>
  <td><p >Consulted </p></td>
  <td><p > 提供意见,救助决策 </p></td>
</tr>
<tr>  <td style="background-color: rgb(191, 222, 145); text-align: center;"><span  ></span><p >I</p></td>
  <td><p >了解</p></td>
  <td><p >Infomed</p></td>
  <td><p > 知晓进度 </p></td>
</tr>
</tbody></table></div><span  ></span><span  ></span></div><div >{<a href="http://wiki.woodpecker.org.cn/moin/UsageArciMap/DutyLevel">/DutyLevel</a><a href="http://wiki.woodpecker.org.cn/moin/UsageArciMap/DutyLevel?action=edit">}<sup>e</sup></a></div><p > </p></td>
  <td style="vertical-align: top;"><div dir="ltr"  lang="en"><span  ></span>
<span  ></span><div><table><tbody><tr>  <td colspan="3" style="text-align: center;"><p ><strong>角色定义</strong></p></td>
</tr>
<tr>  <td><span  ></span><p >CMgt</p></td>
  <td><p >配置管理员 </p></td>
  <td><p >Configuration Management</p></td>
</tr>
<tr>  <td><span  ></span><p >OMgt</p></td>
  <td><p >运营经理 </p></td>
  <td><p >Operation Management</p></td>
</tr>
<tr>  <td><span  ></span><p >PMgt</p></td>
  <td><p >产品经理 </p></td>
  <td><p >Product Management</p></td>
</tr>
<tr>  <td><span  ></span><p >IMgt</p></td>
  <td><p >项目经理 </p></td>
  <td><p >Item Management</p></td>
</tr>
<tr>  <td><span  ></span><p >TMgt</p></td>
  <td><p >技术经理 </p></td>
  <td><p >Technic Management</p></td>
</tr>
<tr>  <td><span  ></span><p >TTL</p></td>
  <td><p >测试团队领导 </p></td>
  <td><p >Test Team Leader</p></td>
</tr>
<tr>  <td><span  ></span><p >RTL</p></td>
  <td><p >相关团队领导 </p></td>
  <td><p >Related Team Leader</p></td>
</tr>
<tr>  <td><span  ></span><p >PTr</p></td>
  <td><p >产品组成员 </p></td>
  <td><p >Product Team Member</p></td>
</tr>
<tr>  <td><span  ></span><p >SEr</p></td>
  <td><p >软件工程师 </p></td>
  <td><p >Software Engineer</p></td>
</tr>
<tr>  <td><span  ></span><p >TTr</p></td>
  <td><p >测试团队成员 </p></td>
  <td><p >Test Team Member</p></td>
</tr>
<tr>  <td><span  ></span><p >RMr</p></td>
  <td><p >相关成员 </p></td>
  <td><p >Related Member</p></td>
</tr>
</tbody></table></div><span  ></span><span  ></span></div><div >{<a href="http://wiki.woodpecker.org.cn/moin/UsageArciMap/KupRoles">/KupRoles</a><a href="http://wiki.woodpecker.org.cn/moin/UsageArciMap/KupRoles?action=edit">}<sup>e</sup></a></div></td>
</tr>
</tbody></table></div><span  ></span><span  ></span><p >
</p><h2 >执行责任说明矩阵</h2>
<span  ></span><p ><span  ></span><span  ></span></p><div><table><tbody><tr>  <td colspan="9"><p >**部运营事务<tt >ARCI</tt>分析表</p></td>
</tr>
<tr>  <td><span  ></span><p >进程 </p></td>
  <td><p ><strong>#</strong></p></td>
  <td><p >OMgt </p></td>
  <td><p >CMgt </p></td>
  <td><p > IMgt </p></td>
  <td><p > PMgt </p></td>
  <td><p >SEr </p></td>
  <td><p >RTL </p></td>
  <td><p >说明...</p></td>
</tr>
<tr>  <td><span  ></span><p >申请 </p></td>
  <td><p ><strong>0</strong></p></td>
  <td style="text-align: center;"><p >~</p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td style="background-color: rgb(255, 122, 122); text-align: center;"><p >A </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td style="background-color: rgb(241, 255, 148); text-align: center;"><p >R </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td><p >SEr组织<tt >&lt;&lt;系统运营配置变更申请表&gt;&gt;</tt>并递交IMgt</p></td>
</tr>
<tr>  <td><span  ></span><p >审核 </p></td>
  <td><p ><strong>1</strong></p></td>
  <td style="background-color: rgb(191, 222, 145); text-align: center;"><p >I </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td style="background-color: rgb(241, 255, 148); text-align: center;"><p >R  </p></td>
  <td style="background-color: rgb(179, 198, 255); text-align: center;"><p >C </p></td>
  <td style="background-color: rgb(255, 122, 122); text-align: center;"><p >A </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td><p >IMgt在PMgt協助下完成审核,确认无误,提交 OMgt，签字确认 </p></td>
</tr>
<tr>  <td><span  ></span><p >接收 </p></td>
  <td><p ><strong>2</strong></p></td>
  <td style="background-color: rgb(241, 255, 148); text-align: center;"><p >R </p></td>
  <td style="background-color: rgb(179, 198, 255); text-align: center;"><p >C </p></td>
  <td style="background-color: rgb(255, 122, 122); text-align: center;"><p >A </p></td>
  <td style="background-color: rgb(189, 221, 141); text-align: center;"><p >I </p></td>
  <td style="background-color: rgb(189, 221, 141); text-align: center;"><p >I </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td><p >OMgt在CMgt協助下完成审核,接受变更，排定计划,通告IMgt/PMgt ，签字确认</p></td>
</tr>
<tr>  <td><span  ></span><p >执行 </p></td>
  <td><p ><strong>3</strong></p></td>
  <td style="background-color: rgb(255, 122, 122); text-align: center;"><p >A </p></td>
  <td style="background-color: rgb(241, 255, 148); text-align: center;"><p >R </p></td>
  <td style="text-align: center;"><p >~</p></td>
  <td style="text-align: center;"><p >~</p></td>
  <td style="background-color: rgb(189, 221, 141); text-align: center;"><p >I </p></td>
  <td style="background-color: rgb(179, 198, 255); text-align: center;"><p >C </p></td>
  <td><p >CMgt同RTL協商／配合，完成变更，签字确认 </p></td>
</tr>
<tr>  <td><span  ></span><p >验收 </p></td>
  <td><p ><strong>4</strong></p></td>
  <td style="background-color: rgb(179, 198, 255); text-align: center;"><p >C </p></td>
  <td style="background-color: rgb(255, 122, 122); text-align: center;"><p >A </p></td>
  <td style="background-color: rgb(191, 222, 145); text-align: center;"><p >I </p></td>
  <td style="background-color: rgb(191, 222, 145); text-align: center;"><p >I </p></td>
  <td style="background-color: rgb(241, 255, 148); text-align: center;"><p >R </p></td>
  <td style="text-align: center;"><p >~ </p></td>
  <td><p >CMgt通告SE签字确认变更按照约定完成 </p></td>
</tr>
</tbody></table></div><span  ></span><span  ></span><span  ></span><p >
</p><h2 >矩阵理解</h2>
<span  ></span><span  ></span><ul><li style="list-style-type: none;">Y轴: <span  ></span></li><li>一般是按照流程的时间序列分离出的关键阶段 <span  ></span></li><li>分离的标准是: <span  ></span><ul><li>每个阶段都有可以衡量的交付物 <span  ></span></li><li>如果没有可以交付的工件,则应该是另一阶段的一部分 <span  ></span><span  ></span><span  ></span></li></ul>X轴: <span  ></span></li><li>一般是整个过程中的相关角色列表 <span  ></span></li><li>和过程相关的标准是: <span  ></span><ul><li>缺少此角色流程无法真正完成 <span  ></span><span  ></span></li></ul>阵列: <span  ></span></li><li>就是在某阶段,某角色,在该流程的职责标识 <span  ></span></li><li>标识的原则是: <span  ></span><ul><li><p >每个阶段都有且仅有一个角色行使A~<tt >责任</tt> <span  ></span></p></li><li><p >每个阶段都尽量安排有一个角色行使R~<tt >职责</tt> <span  ></span></p></li><li><p >每个阶段都应该安排有一个角色行使C~<tt >咨询</tt> <span  ></span></p></li><li><p >每个阶段可以没有角色行使I~<tt >了解</tt> <span  ></span><span  ></span></p></li></ul></li></ul><p >
</p><h2 >矩阵使用</h2>
<span  ></span><span  ></span><p >运用<tt >ARCI</tt>职责图表,可以快速将一个过程中,复杂的团队协作关系标记明白,并明确的观察到职责重叠或是职责缺失的问题; <span  ></span><span  ></span></p><p >而且,重要的是,帮助我们在整理过程中,将思路从现实的复杂人事关系中脱离出来,变成单纯的角色职责分析; <span  ></span><span  ></span></p><p >不过,<tt >ARCI</tt>职责图表的使用前提是: <span  ></span></p><ol type="1"><li>被分析过程是稳定和明确的 <span  ></span></li><li>被分析过程中的相关角色是明确的 <span  ></span></li></ol>没有以上前提,分析出来的结论,无法应用到实际改进中的. </div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811266049803</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811266049803</guid>
    <pubDate>Fri, 26 Dec 2008 18:00:49 +0800</pubDate>
    <dcterms:modified>2008-12-26T18:00:49+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[分散化创新年代的创新策略]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008112611329909</link>
    <description><![CDATA[<div><a href="http://blogs.intel.com/research/2008/12/innovation_policy_in_the_age_o.php" target="_blank">原文</a><span style="font-weight: bold;">来自</span><a href="http://blogs.intel.com/research/" target="_blank">Research@Intel</a><br>



<font style="font-weight: bold;" size="5">Innovation Policy in the Age of Decentralized Innovation</font><br><p>posted by <a href="http://blogs.intel.com/research/authors#dawn_nafus">Dawn Nafus</a> on <a href="http://blogs.intel.com/research/2008/12/innovation_policy_in_the_age_o.php">December 03, 2008</a></p>

 <p>I had the pleasure of recently attending the joint <a href="http://www.oecd.org/document/45/0,3343,en_2649_37417_41437101_1_1_1_1,00.html">OECD-World Bank Conference on Innovation and Sustainable Growth</a>.
Innovation policy appears to be having a bit of a renaissance. As OECD
Secretary-General Angel Gurría put it, with so much innovation
happening as a matter of adoption, or services, innovation policy has
moved beyond raising a country’s patenting rate or dollars spent in
research labs. Indeed OECD economist Sam Paltridge had pointed out that
while the twentieth century tech transfer was marked by leading-edge
industrial engineers visiting factories in developing economies, today
firms like Intel and Nokia are now just as likely to send
anthropologists to talk to end users. </p>


 <a></a>
 <p>Gurría
also noted that innovation is no longer a rich country affair:
innovation plays a role in economic growth at all levels of national
income. Indeed some of the most exciting innovation comes from some of
the poorest corners of the world. Mobile phones now serve as ATMs in
Africa. Latin America has some of the most progressive roaming and
pricing innovations in the world. Our own <a href="http://intel.wingateweb.com/US08/published/sessions/IAIS006/SF08_IAIS006_100r.pdf">Technology Metabolism Index</a> has shown that adoption is not a staged progression from rich countries to poor ones. </p>

<p>While the room full of economists, public policy experts, government
representatives and a lone anthropologist (me) could agree that
conditions have changed, it did not agree on what the public policy
response should be. Controversy focused on whether, as a public policy
goal, poor countries should imitate rich countries to ‘catch up,’ in
light of how much innovation has changed. If innovation is much more
heterogeneous and decentralized than it once was, then we might be more
likely to see multiple paths, not a single one. Many pointed out that
Korea’s innovation policies that lead to it catching up to rich country
income levels would be of questionable legality under current
international trade policies. World Bank official Carlos Alberto Primo
Braga was particularly concerned that an overenthusiasm for
heterogeneous, often user-driven efforts could lead to laissez faire
policies, reminding us that “it is my job to alleviate poverty.” This
raised the question, is it possible to alleviate poverty and stimulate
economic growth without ‘imitate the rich’ as a framework for thinking
about how to do it? As an anthropologist, I would answer yes. Here is
why.</p>

<p>As we leave the twentieth century and head into the twenty first, we
have left the system of mass production and mass media. This has lead
to what the social scientists call a splintering. On the one hand, as
things go global they get more standardized and generic than ever. On
the other hand, heterogeneity and difference are also more important
than ever. For example, as multiple devices make their way into
peoples’ homes, international standards bodies become more important to
ensure there is enough spectrum available for those devices. At the
same time, you become your own FCC of your living room, making
decisions about how close your mobile phone can be to the TV screen
before interference develops. We could say a similar thing is happening
with devices. With over a billion people using information
technologies, it is becoming increasingly difficult to say what they
are actually using them for, other than to connect with others in some
way. A pretty generic explanation! Yet there is increasing diversity in
devices, with MIDs and netbooks and Classmates now in the picture, each
satisfying needs better than a single, generic device could ever do. </p>

<p>Prof. Luc Soete provided the public policy corollary to this
principle. International trade standards, including IPR, are
increasingly important to get right if all countries are going to be
competitive on a global marketplace. It is no use providing aid to
poorer countries if (as some have charged) rich countries use the IPR
system as a way to close their markets. At the same time he predicts
that better trade rules might foster more geographic specialization in
the kinds of innovations each country produces. The twenty first
century is in its infancy, but if the splintering theory proves true,
there still will be plenty of room for large scale players such as
standards bodies and multinational companies to innovate and enable
others to do the same. What changes, however, is that it becomes even
more important to have institutional innovators alongside smart people
making smart technologies.</p></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008112611329909</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008112611329909</guid>
    <pubDate>Fri, 26 Dec 2008 13:13:29 +0800</pubDate>
    <dcterms:modified>2008-12-26T17:57:41+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[对UI设计的一点感悟]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008112412111102</link>
    <description><![CDATA[<div>好的UI对界面设计师而言 = 好的平面设计，好的交互体验，较少的代码量<br>好的UI对交互设计师而言 = 好的交互体验，好的平面设计，较少的代码量<br>好的UI对程序员而言 = 较少的代码量，好的交互体验，好的平面设计</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008112412111102</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008112412111102</guid>
    <pubDate>Wed, 24 Dec 2008 13:21:11 +0800</pubDate>
    <dcterms:modified>2008-12-24T13:21:28+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[使用Flex Builder 3.x 分析工具[中文]]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811225465870</link>
    <description><![CDATA[<div><a href="http://www.riawiki.org/%E4%BD%BF%E7%94%A8Flex_Builder_3.x_%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7" target="_blank"><span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>使用Flex Builder 3.x 分析工具</a><a href="http://www.riawiki.org/%E4%BD%BF%E7%94%A8Flex_Builder_3.x_%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7#.E5.88.86.E6.9E.90.E5.B7.A5.E5.85.B7.E6.9C.80.E9.80.82.E5.90.88.E5.88.9B.E5.BB.BA.2F.E9.94.80.E6.AF.81.E6.83.85.E6.99.AF" target="_blank"></a><br>终于翻译完了！<span style="font-weight: bold;"></span><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811225465870</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811225465870</guid>
    <pubDate>Mon, 22 Dec 2008 17:46:58 +0800</pubDate>
    <dcterms:modified>2008-12-22T17:48:58+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[致新员工书（华为）]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811214133692</link>
    <description><![CDATA[<div>摘自<a href="http://blog.csdn.net/david_lv" target="_blank">阿朱</a>的<a href="http://blog.csdn.net/david_lv/archive/2008/06/13/2542966.aspx">走出软件作坊：三五个人十来条枪 如何成为开发正规军（十六）</a><cite ><span style="text-decoration: underline;"><br></span></cite><p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">(1994.12.25)</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">作者:任正非</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">您有幸进入了华为公司。我们也有幸获得了与您的合作。我们将在共同信任的基础上，度过您在公司工作的岁月。这种理解和信任是愉快奋斗的桥梁与纽带。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">华
为公司是一个以高技术为起点，着眼于大市场、大系统、大结构的高科技企业。以它的历史使命，它需要所有的员工必需坚持合作，走集体奋斗的道路。没有这一种
平台，你的聪明才智是很难发挥，并有所成就的。因此，没有责任心，不善于合作，不能集体奋斗的人，等于丧失了在华为进步的机会。那样您会空耗了宝贵的光
阴，还不如试用期中，重新决定您的选择。进入华为并不意味着高待遇，因为公司是以贡献定报酬的，凭责任定待遇。对新来员工，因为没有记录，晋升较慢，为此
十分歉意。如果您是一个开放系统，善于吸取别人的经验，善于与人合作，借助别人提供的基础，可能进步就会很快。如果封闭自己，怕工分不好算，就需要较长时
间，也许到那时，你的工作成果已没有什么意义了。实践是您水平提高的基础，它充分的检验了您的不足，只有暴露出来，您才会有进步。实践再实践，尤其对青年
学生十分重要。唯有实践后善于用理论去归纳总结，才会有飞跃的提高。有一句名言，没有记录的公司，迟早要跨掉的，多么尖锐。一个不善于总结的公司会有什么
前途，个人也不是如此吗？</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">实
践改造了人，也造就了一代华为人。您想做专家吗？一律从工人做起，已经在公司深入人心。进入公司一周以后，博士、硕士、学士，以及在内地取得的地位均消
失，一切凭实际才干定位，已为公司绝大多数人接受。希望您接受命运的挑战，不屈不挠地前进，不惜碰得头破血流。不经磨难，何以成才。公司要求每一个员工，
要热爱自己的祖国，热爱我们这个多灾多难、刚刚开始振兴的民族。只有背负着他们的希望，才可有进行艰苦的搏击，而无怨言。我们总有一天，会在世界通信的舞
台上，占据一席位子。任何时候、任何地点都不要做对不起祖国、对不起民族的事情。要严格遵守公司的各项制度与管理。对不合理的制度，只有修改以后才可以不
遵守。不贪污、不盗窃、不腐化。严于律己，宽于待人。坚持真理，善于利用批评和自我批评的方法，提高自己，帮助别人。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">您
有时会感到公司没有真正的公平与公正。真正绝对的公平是没有的，您不能对这方面的期望值太高。但在努力者面前，机会总是均等的，只要您努力，您的主管会了
解您的。要承受得起做好事反受委屈。没有一定的承受能力，今后如何能做大梁。其实一个人的命运，就掌握在自己手上。生活的评价，是会有误差的，但决不至于
黑白颠倒，差之千里。您有可能不理解公司而暂时的离开，我们欢迎您回来。您更要增加心理的承受能力，连续工龄没有了，与同期的伙伴的位置拉大了。我们相
信，您会加步赶上，但时间对任何人都是一样长的。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">希
望丢掉速成的幻想，学习日本人的踏踏实实、德国人的一丝不苟的敬业精神。真正生活中能把某一项技术精通就是十分难的。您想提高效益、待遇，只有把精力集中
在一个有限的工作面上，不然就很难熟能生巧。您什么都想会、什么都想做，就意味着什么都不精通，任何一件事对您都是做初工。努力钻进去，兴趣自然在。我们
要造就一批业精于勤，行成于思，有真正动手能力、管理能力的干部。机遇偏多于踏踏实实工作者。公司建立了以各部门总经理为首的首长负责制，它隶属于各个以
民主集中制建立起来的专业协调委员会。各专业委员会委员来自相关的部门，组成少数服从多数的民主管理。议事、不管事。有了决议后由各部门总经理去执行。这
种民主原则，防止在一长制中的片面性，在重大问题上，发挥了集体智慧。这是公司六年来没有摔大跟头的因素之一。民主管理还会进一步扩展，权威作用也会进一
步加强，这种大民主、大集中的管理，还需长期探索，希望您成为其中一员。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">公
司永远不会提拔一个没有基层经验的人做高级领导工作。遵循循序渐进的原则，每一个环节对您的人生都有巨大的意义。您要十分认真地去对待现在手中的任何一件
工作，积累您的记录。要尊重您的现行领导，尽管您也有能力，甚至更强。否则将来您的部下也不会尊重您。要有系统、有分析地提出您的建议，您是一个有文化
者，草率的提议，对您是不负责任，也浪费了别人的时间。特别是新来，不要下车依始，哇啦哇啦。要深入地分析，找出一个环节的问题，找到解决的办法，踏踏实
实地一点一点地去做。不要哗众取宠。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">在
公司的进步主要取决您的工作成绩，一个高科技产业，没有文化是不行的。业余时间可安排一些休闲，但还是要有计划地读些书。不要搞不正当的娱乐活动，绝对禁
止打麻将之类的消磨意志的活动。为了您成为一个高尚的人，受人尊重的人，望您自律。谁为谁服务的问题一定要解决。公司总的是为用户服务，但具体来讲，下一
道工序就是用户，就是您的“上帝”。您必须认真对待每一道用户。</p>
<p removechild="function MyRC(arg1){var self = this;if (self.removeAttribute)self.removeAttribute(&quot;removeChild&quot;);var result = self[&quot;removeChild&quot;](arg1);self[&quot;removeChild&quot;] = arguments.callee; if(arg1.clearAttributes)arg1.clearAttributes();if(arg1.onclick)arg1.onclick=null;if(arg1.onmousemove)arg1.onmousemove=null;if(arg1.onmouseover)arg1.onmouseover=null;if(arg1.ondblclick)arg1.ondblclick=null;if(arg1.onmouseenter)arg1.onmouseenter=null;if(arg1.onmouseleave)arg1.onmouseleave=null;return result;}">要
关心时事，关心国家与民族的前途命运。提高自己的觉悟。但不要卷入任何政治漩涡，指点江山。公司不支持您，也不会保护您。公司坚持员工必须跟着社会潮流
走。当前，要承认只有共产党才能领导中国，否则就会陷入无政府主义。一个高速发展的经济社会，没有稳定，没有强有力的领导，陷入无政府主义状态是不可想象
的。共产党的缺点，通过整党和教育来解决。我们可以帮助它，但必须是善意。公司在飞速的发展，迫切地需要干部，希望您加速磨炼，与我们一起去担起明天的太
阳。 </p><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811214133692</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811214133692</guid>
    <pubDate>Sun, 21 Dec 2008 04:13:36 +0800</pubDate>
    <dcterms:modified>2008-12-21T04:13:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Orbit：和迅雷一样强大，但是没有广告的下载软件【支持多国语言】]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008112135145520</link>
    <description><![CDATA[<div>详情请访问：<a href="http://www.orbitdownloader.com/" target="_blank">http://www.orbitdownloader.com/</a><br><a href="http://dl.orbitdownloader.com/dl/OrbitDownloaderSetup.exe" target="_blank">直接下载</a><br><img title="Orbit：和迅雷一样强大，但是没有广告的下载软件 - hydra1983 - 远古的迷茫" alt="Orbit：和迅雷一样强大，但是没有广告的下载软件 - hydra1983 - 远古的迷茫" src="http://img.blog.163.com/photo/rbYTW_iLJtf9YdNXa_YuPw==/2608991559132167989.jpg">PS:<br>英文到中文的方法，选择View -&gt; Language -&gt; Chinese(Simplified)即可。<br><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008112135145520</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008112135145520</guid>
    <pubDate>Sun, 21 Dec 2008 03:51:45 +0800</pubDate>
    <dcterms:modified>2008-12-21T04:11:25+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[做人、做事，做架构师——架构师能力模型解析]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008112065540132</link>
    <description><![CDATA[<div><a href="http://vipnews.csdn.net/newscontent.aspx?pointid=2008_05_30_150239242" target="_blank">原文</a>来自<a href="http://www.csdn.net/" target="_blank">CSDN</a><h5 align="left"><strong>要想从一名普通程序员发展成为优秀的架构师，“个人特性”与“技术技能”缺一不可；而“技术专业能力”、“人际关系能力”和“业务能力”更是优秀架构师重要的三种能力。</strong><br>
<br><br>
<br><strong>文 / 周爱民（《程序员》2008年4月刊）</strong><br>
<br><br>
<br><strong>引子</strong><br>
<br>究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年或者更久，而仍然得不到任何的发展空间？你觉得自己已成为技术圈中
的大牛，并信心满满地去拿明天就要颁发的某某大奖，然而却仍然停留在同样的技术职位上，去年到今年涨的薪水甚至填不平物价升幅？于是，你开始对老板不满，
对员工不满，对昨天升职的那个同事不满……你开始计划明天就要跑单，或者准备考虑提出加薪却又心怀忐忑。<br>
<br>如果技术人员有发展的轨迹，那么他要么“看透工具的本质，把关注点转移到‘团队’的圈子里去”，要么“顺着代码铺就的道路，亦步亦趋地成为良匠大
师”。仅以技术方向而言，你大概可以做到架构师、总架构师甚至首席架构师；但问题是：你现在还只是一个程序员。那要如何才能踏上通往架构师之路呢？本文为
你解析一个架构师的能力模型。<br>
<br><strong>你能不能做一个好的架构师？</strong><br>
<br>架构师不是界定一个技术高下的职位名称，而是一个职务。所谓职务，包括职——职位，务——工作。前者决定了你具备哪些资源，可以影响到怎样的范围，以及面向的机构，后者则简单地是你需要完成的工作列表。<br>
<br>所以我说“架构师”不是指“一个能做架构的人”。前者是把架构师当职能，后者是当工人。能做一份工作列表中的事，并不等于就成为相应职位上的人。
在管理体系里面，你的个人特性决定了你在哪个位置，而技术技能只是做事实施的必需。架构师这个职务，同时要求较高的个人素质和技术能力，因此它的进取之路
总结起来就是：做人、做事，做架构师。<br>
<br>因此“模型”由“个人特性”和“技术技能”两个方面构成，在第一张图中，我特别说明“个人特性”既包括人际关系的能力，也包括（具体）业务能力；“技术技能”也是如此。所以个人特性主要与“做人”有关，部分地也包含“做事”的要素。<br>
<br><img title="做人、做事，做架构师——架构师能力模型解析 - hydra1983 - 远古的迷茫" alt="" src="http://images.csdn.net/20080530/123.jpg"><br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图1 架构师能力模型<br>
<br>“有效沟通”以及“学会谈判”与做具体的事无关，是个人能力特性的公共方面。前者是过程，后者是知道如何定目标与求结果。而“风险与防备”是做事
过程控制的关键，与前面两项正好构成了一个做事基本能力的完整体系。基本上，这三项个人特性都是一个“普通程序员”所不具备的，甚至在大多数情况下，普通
程序员并不愿意去具备这样的个人特性，因为在许多陷于技术泥淖的开发人员看来：沟通总是会使事情变得更加麻烦，谈判则徒耗时间而无济于事。然而事实上，在
整个的架构决策过程中，架构师需要不停地沟通与谈判。将“架构”变成“决策”的过程，其实就是对各个技术角色（及其思想）兼容并包的过程，你需要不断地协
调需求、实现之间的各种问题，也需要面对各种投资者（时间、资金、人才等方面的决策者）进行谈判，以确定项目的规模——没有规模也就没有范围，没有范围如
何展开设计呢？<br>
<br>一部分开发人员会认为上述过程是“项目经理”的事情，但真的如此吗？当你作为一个更高级别的架构师，以至于要影响到多个项目的决策时，你就全然不会有这种感受了。因为这种情况下，你的决策将先于项目的启动，或者说你已经不单单是一个技术角色了。<br>
<br>设计是架构能力的一部分，但架构师不是设计师——看清楚二者之间的不同，你才真正迈出了架构师职业生涯的第一步。<br>
<br><strong>抽象是思维能力、模型化是表达能力</strong><br>
<br>个人特性中另一个非常重要的方面是“抽象思维”，而这是与架构师角色直接相关的一种能力。这种能力既有职业技能特征，又是普遍性的能力。<br>
<br>所谓普遍性的能力，是指“抽象”在我们——作为人这种个体的——生活中无处不在。例如我们说花、草，说桌、椅……我们用语言去指称任何一个既已存
在的（可以脱离我们的语言而自然存在的）事物时，就用到了抽象。说“桌子”的时候，既没有描述桌子的具体形式，也没有说明它的规格，但我们用这个名词时，
所有人都知道“桌子是什么”。所以，名词概念是整个抽象逻辑系统中的主体。如果失去了这些名词定义，我们基本上不能说话，也不能描述任何东西——那便到了
“只可意会不可言传”的境地。<br>
<br>用现有的成熟语汇去描述你的系统时，大多数人会理解你所表达的含义，例如我们说“这个系统设计为一个三层结构”。然而架构师面临的系统在许多细节
上并不见得能够用成熟的语汇去描述，因此必须自已构建一个抽象系统，这就需要概念抽象能力、概念表达能力和基于概念的逻辑表达能力。<br>
<br>概念抽象能力是一种思维能力。简单地说，就是“把目标分解或概括清楚”：你要么概而言之“它是什么”，要么详细地说明“它包括什么”。必须使用大
量的语汇来陈述这个“什么”，这不单单是表达为文字，也表达为你在思想过程中的一个完整系统。通常用的方法是“映射系统”。例如你可以用数学中的“数轴”
来映射“实数域”。将目标系统形式化为一个概念化的、可讨论的结构系统后，你的抽象过程就基本结束了。<br>
<br><img title="做人、做事，做架构师——架构师能力模型解析 - hydra1983 - 远古的迷茫" alt="" src="http://images.csdn.net/20080530/%E6%9E%B6%E6%9E%842.jpg"><br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图2 能力模型中的个人特性<br>
<br>然而这个“抽象系统”可能只构建在你的思维意识里，还必须把它描绘出来。因为不能只是你自己思考清楚，系统就能设计完成。这个“描绘”就依赖于后面两种表达能力，一种是描绘概念实体，一种是描绘实体上的逻辑——有趣的是，这似乎又回到了“程序＝结构＋算法”。<br>
<br>现在大家回过头来看看UML，或者更多种类的ML（建模语言），他们就用于表达这两个方面的东西：要么是概念实体（例如用一个框表明系统边界），要么是实体上的逻辑（例如用箭头表明逻辑时序）。<br>
<br>所以大家应该清楚，我们再如何称赞UML，它也只是一种对模型化系统的“表达能力”，你只能把它当一种辅助表达的工具去使用，它本身既不能帮助思考，也不见得能作为抽象过程中的或抽象思维环境中的参考。<br>
<br>任何一个优秀的架构师都有自己独特的思考方式，这决定了他如何抽象系统，以及如何“创造性地”设计与构画这个系统。这种“独特的思考方式”贯彻他
从孩童开始的整个成长过程，直至他形成独立的社会观、人生观与世界观。他认识世界的方式和接受世界的能力决定于他如何思考，也反映了他这种思考方式的“独
特性”。但这并不表明他有特立独行的行为特性（我们这里只说他的思考方式），我们不应介意他是否用某种语言（例如UML或者形式化编程语言）来表达他的思
考结果。<br>
<br><strong>推动：设计做大，实施做小</strong><br>
<br>架构师首先是把问题的真正目标确定下来，然后变成系统设计、平台设计或架构设计。而在此之后设计输出将会有两个方向的发展，一是被忠实地贯彻下
来，二是被变形地发展下去。两个方向都存在致命的危险：架构最终能否被完整实现。对前者来说，可能是架构设计过度，或设计本身出现了错误；后者则是对架构
直接的伤害。<br>
<br>所以架构师必须参与实施的全程——尤其是在架构被映射为目标系统的前期。在这个阶段中，架构师的任务就是推动架构实施，以保证在项目全程的设计／
架构／体系的一致性。除了直接跟设计师或设计团队沟通，以保证他们的设计在你可以控制的范围之内以外，架构师还必须有阶段化设计的能力。这种能力用于将一
个原本规模宏大的架构设计，变成较小的、易于实施的、对开发团队来说可控的关键点。例如在体系层次的规划上，设计可能是独立、异质的、可迁移的存储框架来
实现数据层，但在（前期的）实施上，这里可能被表达为本地数据库，并要求前端开发人员必须通过一个清晰的数据交互层来访问——例如一组数据存取接口，或一
个独立数据服务组件。开发人员可能在这里遇到障碍：因为要通过这些中间层来访问本地数据库，纯粹是多余的。然而，正是这“多余的工作”提供了系统弹性，为
并行团队开发公共存储服务争取了周期，也为将来的灵活部署与数据迁移提供了可能。<br>
<br>这里的关键就在于，无论原始系统设定有多大，实施时总是在“做小”。每一个局部的实施块都是可控的，并为它在整个体系空间中留下了位置和接口，这
样才可能由“小的部分”做大。一个大系统的架构师可能同时在考虑许多个项目中的、不同位置的架构，并且清楚这些项目最终的总体规模。而这，就是平台架构师
和体系架构师所涉的领域。<br>
<br><img title="做人、做事，做架构师——架构师能力模型解析 - hydra1983 - 远古的迷茫" alt="" src="http://images.csdn.net/20080530/%E6%9E%B6%E6%9E%843.jpg"><br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 图3 架构师模型图中的“实现能力”<br>
<br>架构真的是“好不好”的问题吗？如同我对工程的理解一样，架构问题的根本，也并不在于它是否完美或漂亮，而是在于是否合用。因此架构师必须对实施
架构的团队以及实施过程有充分了解，知道他们的能力缺陷，知道实现过程要消耗的资源，清楚每个环节可能的故障以及先兆。只有这样，架构师才能设计一个让这
个团队能实现，而且在实现过程中能受控的架构。<br>
<br>要知道，你作为架构师被请来，不是画几张图纸交给项目经理，说：你们去做吧，做不出来是你们不会做。即使你可以身体力行，在这个团队中教大家、培
养大家，那么公司的开销呢？风险呢？这些东西难道就不考虑了？项目的周期因为实现的复杂程度而无法控制时，项目就死掉了。那么，追根究底来说，是不是架构
师的问题？是啊，你为什么会做了一份“不合用”的架构呢？——你都不知道项目如何开发、由谁实施、如何管理等等，又如何能面对这些实际环境去设计架构呢？<br>
<br>所以这一部分能力，是要在你的开发经验、团队经验以及用人识人的经验中去找的。参考模型图的“实现能力”下的“设计能力→了解你的主要沟通对象”和“架构推行”等分支，对你或有一些可用的提示。<br>
<br><strong>局部与全局</strong><br>
<br>架构是一个从全局到局部的过程，而实施正好反过来，是从局部到全局。这也正是“设计做大，实施做小”的另一个层面的含义。设计大才可以见到全局，才知道此全局对彼全局的影响；实施小才可能关注细节，才谈得上品质与控制。<br>
<br>事实上，大多数情况下架构是在为“当前项目之外”去考虑，这可以看成全局关注的一个组成部分。因此我们需要界定所谓“全局”的范围：超出公司或整个产品系列、产品线或规划的范围才是多余的。<br>
<br>所以当架构决策谈及“全局”时，其目标并不见得是“保障当前项目”，而又必须由当前项目去完成。<br>
<br>一个经常被用到的例子是：如果仅为当前项目考虑，那么只需要做成DLL模块；如果为产品线考虑，可能会是“管道＋插件”的结构形式。而“管道＋插件”的形式显然比做成DLL模块更费时，这个时间成本（以及其它成本）就变成了当前项目的无谓开销。<br>
<br>这种全局策略对局部计划的影响是大多数公司不能忍受的，也被很多团队所垢病。然而这却是架构师角色对体系的“近乎必然”的影响——如果你试图在体
系中引用架构师这个角色的话。一些情况下，体系能够容纳这种影响，例如“技术架构师”试图推动某种插件框架，而正好开发人员对这项技术感兴趣，那就顺其自
然地花点工夫去实现了。但如果不是这样，实施者或实施团队看不到“多余的部分”对他们的价值时，来自局部的抵触就产生了。<br>
<br>这种情况下，平衡这些抵触就成了架构推行的实务之一。在我看来，“平衡”是全局的艺术和局部的技术。也就是说，一方面架构师要学会游说，另一方面
也要寻求更为简洁的、成本更小的实现技术。只有当整个体系都意识到（你所推行的）架构的重要性，而且实施成本在他们可以接受的范围之内时，他们才会积极行
动起来。<br>
<br>所以所谓平衡，其实也是折衷的过程。构架师只有眼中见大，才知道哪些折衷可以做，而哪些不能。所谓设计评估（模型图中的实现能力-&gt;设计能
力-&gt;设计评估分支）并不是去分析一个设计结果好或不好，而是从中看到原始的需求，看到体系全局的意图，然后知道在将设计变得更为“适当”时可以做
哪些折衷。同样的原因，架构师也必须知道自己的决策会产生的影响，才能控制它们，以防它们变成团队的灾难。有些时候，架构师甚至需要抛弃一些特性，以使得
项目能够持续下去。因为产品的阶段性产出只是整个战略中的一个环节，而不是全部。<br>
<br><strong>其它</strong><br>
<br>“怎么做一个架构师”这个问题得分成两个部分来看，一个是“做到”，一个是“做好”。由于架构师本身不过是一个技术职位，所以时机成熟了自然会做得到。但问题是，真有一天你被放在这个位置上了，你能做得好吗？<br>
<br>我浏览过几套所谓培训机构的有关架构师的教程，也翻阅过一些讲架构的书。我发现他们普遍地是将架构作为一种“职业技术”来讲，就像培养程序员或者
缝纫工一样来教育。但就我的经验来说，架构并不是一件纯粹表现技术能力的工作，所以并不是翻几本书学几种方法就可以投入“实战”的。更深层的问题是，架构
师其实不是“战”出来的。昨天跟同事讨论这个话题，他把我们这几年来的一些思考用了三句话来概括，非常精彩：从无到有的，是架构；从表到里的，是抽象；从
粗到细的，是设计。<br>
<br>那么到底什么是架构呢？从上面的概括中你是看不到答案的。到底如何做架构呢？从本文中你也是看不到答案的。然而我说，“你看不到答案”的根源其实
是在于你的眼光与心性——后面这个词换成现代白话，就是“思想”。真正阻碍了你成为优秀架构师的，也许正是你既有的知识与思想方法，扔掉它们，接受一些全
然有别的信息，也许正是良好的开端。<br>
<br>或许你现在正愤愤然：这篇文章怎么空洞无物？——我甚至能想象到一些读者的表情。然而请在问题面前停下来，不要急于给出答案。正如你将“?”稍微变下形，它就成为了“!”一样，问题的本身，就是答案。<br>
<br><strong>作者简介</strong><br>
<br>周爱民（aimingoo），具有十余年的软件开发、项目管理和团队建设的经验，现担任盛大网络的平台架构师，著有《大道至简》、《Delphi源代码分析》等。</h5><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008112065540132</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008112065540132</guid>
    <pubDate>Sat, 20 Dec 2008 18:55:40 +0800</pubDate>
    <dcterms:modified>2008-12-20T18:55:40+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[10种用来改进用户交互设计的技术]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008111610653146</link>
    <description><![CDATA[<div><p><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/" target="_blank">原文</a>来自<a href="http://www.smashingmagazine.com/" target="_blank">smashingmagazine</a></p><p>Web design consists, for the most part, of interface design. There
are many techniques involved in crafting beautiful and functional
interfaces. Here’s my collection of 10 that I think you’ll find useful
in your work. They’re not related to any particular theme, but are
rather a collection of techniques I use in my own projects. Without
further ado, let’s get started.</p>
<h3>1. Padded block links</h3>
<p>Links (or anchors) are inline elements by default, which means that
their clickable area spans only the height and width of the text. This
clickable area, or the space where you can click to go to that link’s
destination, can be increased for greater usability. We can do this by <strong>adding padding</strong> and, in some cases, also <strong>converting the link into a block element</strong>. Here’s an example of inline and padded links, with their clickable areas highlighted to show the difference:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/padded_links_diagram.png" alt="Inline and padded links" width="480" height="232"></p>
<p>Obviously, the larger the clickable area is, the easier it is to
click on the link because there is less of a chance of missing it.
Converting links into block elements makes the text area span the whole
width of the container, unless the width is specified otherwise. This
makes it ideal for links located in sidebars. We can do it with the
following code:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>a&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>display</span><span>:&nbsp;</span><span>block</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>padding</span><span>:&nbsp;</span><span>6px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">a {
 display: block;
 padding: 6px;
}
</pre>
<p>Make sure to also add a healthy dose of padding to the links,
because converting a link into a block only affects its behavior and
width; adding padding ensures that the link is high enough and has some
room to breathe.</p>
<h3>2. Typesetting buttons</h3>
<p>Attention to every detail is what separates a great product from a
mediocre one. Interface elements such as buttons and tabs are clicked
on many times a day by your users, so it pays to typeset them properly;
and by typesetting I mean positioning the label. Here’s a couple of
examples of the kind of misplaced labels I sometimes notice:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/badly_typeset_buttons.png" alt="Badly typeset button labels" width="287" height="56"></p>
<p>At first glance they look okay, but notice that the text is placed
too high because the lowercase letters have been used as a guide to
align the text vertically in the center, like so:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/button_typeset_1.png" alt="Badly typeset button labels" width="300" height="160"></p>
<p>However, if we use uppercase letters as well as lowercase letters with ascenders (”t,” “d,” “f,” “h,” “k” and “l”), <strong>the balance shifts upwards</strong>,
making the label appear too high on the button. In such cases, we
should set the type using the uppercase height as a guide — or set it a
little bit higher if most of the letters are lowercase. Here’s what I
mean:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/button_typeset_2.png" alt="Badly typeset button labels" width="300" height="160"></p>
<p>This gives the whole button a more <strong>balanced look and feel</strong>. Little touches like this go a long way towards making your interface more polished and satisfying to use.</p>
<h3>3. Using contrast to manage focus</h3>
<p>Similarly, you can also manage the focus of your visitors’ attention
with contrast between elements. Here’s an example of a post headline
and some meta information underneath regarding who posted the article
and its date:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/headline1.png" alt="A typical blog post headline" width="480" height="80"></p>
<p>All the text is set in black. Let’s decrease the contrast between
the meta information (the date and author’s name) and the background by
putting the text in a light shade of gray:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/headline2.png" alt="Headline with adjusted contrast" width="480" height="80"></p>
<p>The highest contrast element here is the headline, so it literally
pops out at us. The other elements fade into the background. Here, I’ve
chosen the author as the second-most important element, and the date as
the least. The font also differs in size and style, but the contrast
level can be very powerful. Let’s reverse the order of importance to
date, author and headline:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/headline3.png" alt="Another headline with adjusted contrast" width="480" height="80"></p>
<p>You can see how effective it is in shifting focus: the date now pops
out at you, while the headline fades away. This technique comes in very
handy for information-heavy websites, such as blogs, forums and social
networks, in which you want to make a lot of information easily
scannable while still showing a lot of additional things, like dates.
Fading the extras allows visitors to easily focus their attention on
the most important pieces of text.</p>
<h3>4. Using color to manage attention</h3>
<p>Color can also be used to effectively <strong>focus your visitors’ attention on important or actionable elements</strong>.
For example, during the US presidential election, pretty much all of
the candidates’ websites had the donation button colored red. Red is a
very bright and powerful color so it attracts attention, and it stands
out even more when the rest of the website is blue or another colder
color.</p>
<p>Warmer tones like red, yellow and orange are naturally bright and so
tend to attract the eye. They also “expand” when set against colder
colors like blue and green. This means that an orange button on a blue
background looks like it’s flowing outwards and taking the front seat.
Conversely, a blue button on an orange background contracts inward,
wishing to stay in the background. Here’s a picture to illustrate:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/colors.png" alt="Comparing warm and cold colors" width="370" height="141"></p>
<p>Here’s a couple of examples of websites that use color effectively to direct users’ attention to the important elements:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/function.jpg" alt="Function website" width="480" height="289"><br>
<em>Function features a “We’re Hiring” link on its jobs page. To ensure
the link is not missed, the designers set it against a red background
that pops out from the dark background header, effectively grabbing
attention.</em></p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/causecast.jpg" alt="Causecast website" width="480" height="298"><br>
<em>Causecast use color effectively. Four bright pink elements pop out
at you: the logo, the feedback link, the donate link and the website
description message.</em></p>
<p>Want the “About” blurb on your website to grab the visitor’s focus?
Make the background yellow. Want to make the “Join” button stand out?
Color it orange. Make sure not to highlight too many elements, though;
if you do, they may get lost in each other’s company.</p>
<h3>5. White space indicates relationships</h3>
<p>One of the most crucial elements in an interface is the white space
between elements. If you’re not familiar with the term white space, it
means just that: space between one interface element and another, be it
a button, a navigation bar, article text, a headline and so on. By
manipulating white space, we can indicate relationships between certain
elements or groups of elements.</p>
<p>So, for example, by putting the headline near the article text we
indicate that it is related to that text. The text is then placed
farther away from other elements to separate it and make it more
readable. Here’s an example in which white space could be improved:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/bad_whitespace.png" alt="Whitespace usage here can be improved" width="480" height="242"></p>
<p>The text looks all right and is certainly readable, but because the
spaces above and below each heading are equal, they don’t separate each
piece of text clearly. We can improve this by increasing the white
space between each section and also by slightly tightening the line
height of the paragraphs:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/good_whitespace.png" alt="Improved whitespace" width="480" height="242"></p>
<p><strong>This results in more clearly defined blocks</strong>; we can
easily tell which headings go with which pieces of text and can see the
separate sections clearly. Good designers often squint or glance at
their work from a distance, which lets them see the blocks of elements
separated by white space as they merge together. If you cannot see
these groups clearly then you may need to tweak your white space.</p>
<h3>6. Letter spacing</h3>
<p>Web design is pretty limiting for typographers. But while there are
only a few safe Web fonts and not a great many things you can do to
style them, it’s worth remembering that we do still have some level of
control. “Tracking” is a term used in the field of typography to
describe the adjustment of <strong>spacing between letters in words</strong>. We’ve got the ability to do this with CSS using the <em>“letter-spacing”</em> property.</p>
<p>If used with restraint and taste, this property can be effective in
improving the look of your headlines. I wouldn’t recommend using letter
spacing on the body text because the default spacing generally provides
the best readability for smaller font sizes.</p>
<p>Here’s an example of letter spacing in use:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/letter_spacing.png" alt="Letter spacin examples" width="340" height="155"></p>
<p>And here’s the CSS code used for the above examples:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>h1&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-family</span><span>:&nbsp;</span><span>Helvetica</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-size</span><span>:&nbsp;</span><span>27px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>h2&nbsp;{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-family</span><span>:&nbsp;</span><span>Helvetica</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-size</span><span>:&nbsp;</span><span>27px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>letter-spacing</span><span>:&nbsp;-</span><span>1px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>h3&nbsp;{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-family</span><span>:&nbsp;Georgia;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-size</span><span>:&nbsp;</span><span>24px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>letter-spacing</span><span>:&nbsp;</span><span>3px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-variant</span><span>:&nbsp;</span><span>small</span><span>-caps;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-weight</span><span>:&nbsp;</span><span>normal</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">h1 {
 font-family: Helvetica;
 font-size: 27px;
}

h2 {
 font-family: Helvetica;
 font-size: 27px;
 letter-spacing: -1px;
}

h3 {
 font-family: Georgia;
 font-size: 24px;
 letter-spacing: 3px;
 font-variant: small-caps;
 font-weight: normal;
}
</pre>
<p>The effect can be useful when you want to craft a more aesthetically
pleasing or more original heading. Here, I’ve used only a couple pixels
for letter spacing, but already it makes a big difference to the style
of the font.</p>
<h3>7. Auto-focus on input</h3>
<p>Many Web applications and websites feature forms. These may be
search forms or input forms inviting you to submit something. If this
form is the <strong>core feature</strong> of your application or website, you may want to consider <strong>automatically focusing the user’s cursor on the input field</strong>
when the website loads. This will speed things up because users can
start typing right away without having to click on it. A good example
of this is Google and Wikipedia’s websites.</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/wikipedia_auto_focus.png" alt="Wikipedia auto focus" width="420" height="70"><br>
<em>Upon arriving at <a href="http://www.wikipedia.org/">Wikipedia.org</a>, the search box is already highlighted, ready to accept text.</em></p>
<p>To automatically focus on input fields, you’ll need a little bit of
JavaScript. There are various solutions, and the one you should use
depends on the functionality you want to achieve. The simplest way to
do it would be to add the following to your body tag:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>&lt;</span><span>body</span><span>&nbsp;</span><span>onLoad</span><span>=</span><span>"document.forms.form_name.form_field.focus()"</span><span>&gt;</span><span>&nbsp;&nbsp;</span></span></li></ol></div><pre style="display: none;">&lt;body onLoad="document.forms.form_name.form_field.focus()"&gt;
</pre>
<p>Your form code should look something like:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>&lt;</span><span>form</span><span>&nbsp;</span><span>method</span><span>=</span><span>"get"</span><span>&nbsp;</span><span>name</span><span>=</span><span>"form_name"</span><span>&nbsp;</span><span>action</span><span>=</span><span>"#"</span><span>&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;</span><span>input</span><span>&nbsp;</span><span>type</span><span>=</span><span>"text"</span><span>&nbsp;</span><span>name</span><span>=</span><span>"form_field"</span><span>&nbsp;</span><span>size</span><span>=</span><span>"20"</span><span>&nbsp;</span><span>/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>&lt;</span><span>input</span><span>&nbsp;</span><span>type</span><span>=</span><span>"submit"</span><span>&nbsp;</span><span>value</span><span>=</span><span>"Go"</span><span>&nbsp;</span><span>/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span><span>&lt;/</span><span>form</span><span>&gt;</span><span>&nbsp;&nbsp;</span></span></li></ol></div><pre style="display: none;">&lt;form method="get" name="form_name" action="#"&gt;
 &lt;input type="text" name="form_field" size="20" /&gt;
 &lt;input type="submit" value="Go" /&gt;
&lt;/form&gt;
</pre>
<p>Now, every time the page loads, the text field called “form_field” will be automatically selected, ready for input.</p>
<p>The only problem with this is that if your users want to return to
the previous page using the Backspace key, they will be out of luck
because they’ll just be deleting characters in the input field.
Thankfully, Harmen Janssen has another simple JavaScript solution you
can find <a href="http://www.whatstyle.net/articles/51/focus_onload_but_keep_backspace_intact">here</a>.
Harmen’s script allows the Backspace key to go to the previous page
when there are no characters left in the input field to delete.</p>
<h3>8. Custom input focus</h3>
<p>While the default look of form elements suffices for most functions,
sometimes we want something a little prettier or a little more
standardized across various browsers and systems. We can style input
fields by simply targeting it with an “id,” “class” or plain old
“input,” like so:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>input&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>border</span><span>:&nbsp;</span><span>2px</span><span>&nbsp;</span><span>solid</span><span>&nbsp;</span><span>#888</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>padding</span><span>:&nbsp;</span><span>4px</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>font-size</span><span>:&nbsp;1em;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>background-color</span><span>:&nbsp;</span><span>#F8F8F8</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">input {
 border: 2px solid #888;
 padding: 4px;
 font-size: 1em;
 background-color: #F8F8F8;
}
</pre>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/styled_input_field.png" alt="Default and styled input fields" width="300" height="165"></p>
<p>What’s more interesting is also being able to style the input field
when it’s in focus; that is, the state it’s in when it has been
clicked. To do this, we need to attach a “<strong>:focus</strong>” after the “input” property:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>input:focus&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>border-color</span><span>:&nbsp;</span><span>#000</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>background-color</span><span>:&nbsp;</span><span>#FFFE9D</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">input:focus {
 border-color: #000;
 background-color: #FFFE9D;
}
</pre>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/input_focused.png" alt="Input field in focus" width="300" height="60"></p>
<p>If you’re using custom backgrounds to style your input field, they
may clash with some browsers and operating systems’ default focus
styles. For example, here’s a screenshot of a custom-styled form
clashing with the default blue OS X glow effect:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/blueglow.png" alt="OS X input glow" width="245" height="51"></p>
<p>In such cases, you could also use the “input:focus” property to
remove the default styling. The default blue glow in the screenshot
above can be removed by disabling the “outline” property:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>input:focus&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>outline</span><span>:&nbsp;</span><span>none</span><span>;&nbsp;&nbsp;</span></span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">input:focus {
 outline: none;
}
</pre>
<p>The blue glow effect will now be gone:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/noglow.png" alt="OS X input glow removed" width="245" height="51"></p>
<p>Obviously you would only want to remove the outline if you’re
replacing it with your own styling, so that you don’t negatively affect
the accessibility and usability of your forms.</p>
<h3>9. Hover controls</h3>
<p>Some Web applications have extra utility controls, such as edit and
delete buttons, that don’t necessarily have to be shown beside every
item at all times. They can be hidden to <strong>simplify the interface and focus visitors’ attention on the main controls and content</strong>. For example, these hover controls are used in Twitter when you hover over messages:</p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://88.198.60.17/images/user-interface-techniques/twitter_hover_controls.png" alt="Twitter's hover controls" width="480" height="248"></p>
<p>These hover controls can be achieved with some simple CSS code,
without any JavaScript. Simply style the &lt;div&gt; with the controls
when its parent &lt;div&gt; is in a hover state. Here’s the code to
hide and show the controls (using a &lt;div&gt; with the class
“controls” inside a &lt;div&gt; with the class “message”):</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>.message&nbsp;.controls&nbsp;{&nbsp;</span><span>display</span><span>:&nbsp;</span><span>none</span><span>;&nbsp;}&nbsp;&nbsp;</span></span></li><li><span>.message:hover&nbsp;.controls&nbsp;{&nbsp;<span>display</span><span>:&nbsp;</span><span>block</span><span>;&nbsp;}&nbsp;&nbsp;</span></span></li></ol></div><pre style="display: none;">.message .controls { display: none; }
.message:hover .controls { display: block; }
</pre>
<p>When you hover over the “message” &lt;div&gt;, the “controls”
&lt;div&gt; inside it will appear, along with all of its content,
giving you the same functionality as shown in the Twitter screenshot
above.</p>
<p>There may be an issue with accessibility because screen readers may
not be able to read the hidden &lt;div&gt;. There are plenty of other
ways to hide the inner &lt;div&gt;, such as offsetting it with a
negative margin that takes it off the page (e.g. “left-margin:
-9999px”), coloring its text the same color as the background or simply
placing another &lt;div&gt; on top of it.</p>
<p>This technique should of course be used with <strong>restraint</strong> because you don’t want to hide your important controls; but if used correctly, it can be useful for <strong>cleaning up your interface</strong> by removing those extra utility links that you don’t want to show up at all times.</p>
<p>Note that this doesn’t work in IE6, so you’ll need to override the
hiding property in your IE6-specific style sheet or, if you don’t have
one, simply use the following IE6-specific code inside the &lt;head&gt;
section of your code:</p>
<div><div><div><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" viewsource="" ,this);return="" false;="">view plain</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" copytoclipboard="" ,this);return="" false;="">copy to clipboard</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" printsource="" ,this);return="" false;="">print</a><a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/#" about="" ,this);return="" false;="">?</a></div></div><ol start="1"><li><span><span>&lt;!--[if&nbsp;lt&nbsp;IE&nbsp;7]&gt;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&lt;style&nbsp;type=<span>"text/css"</span><span>&nbsp;media=</span><span>"screen"</span><span>&gt;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;.message&nbsp;.controls&nbsp;{&nbsp;<span>display</span><span>:&nbsp;</span><span>block</span><span>;&nbsp;}&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&lt;/style&gt;&nbsp;&nbsp;</span></li><li><span>&lt;![endif]--&gt;&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;">&lt;!--[if lt IE 7]&gt;
  &lt;style type="text/css" media="screen"&gt;
    .message .controls { display: block; }
  &lt;/style&gt;
&lt;![endif]--&gt;
</pre>
<h3>10. Verbs in labels</h3>
<p>You can make options dialogs much more usable by thinking through
the labels you use on buttons and links. If an error or message pops up
and the options are “Yes,” “No” and “Cancel,” you have to read the
whole message to be able to answer. Seems normal, right?</p>
<p>But we can actually speed things up by using verbs in the labels.
So, if instead of “Yes,” “No” and “Cancel,” we have “Save,” “Don’t
Save” and “Cancel” buttons, you wouldn’t even need to read the message
to understand what the options are and which action to perform. <strong>All the information is contained in the button labels.</strong></p>
<p><img title="10种用来提高用户交互设计的技术 - hydra1983 - 远古的迷茫" src="http://78.46.108.98/images/user-interface-techniques/save_dialogs.png" alt="WordPad and OS X save dialogs" width="480" height="364"></p>
<p>Using verbs in labels on buttons and links makes the options dialogs
more usable because the labels contain all of the information the user
needs to be able to make a decision.<strong></strong></p>
<h3>To Conclude</h3>
<p>Hopefully, you’ve found a few new techniques that will be useful in
your work. As always, using them effectively comes down to restraint
and thoughtful implementation. For example, controls that appear on
hover may clean up your interface, but they will also increase the
learning curve because people may not notice these controls at first.
But showing all controls at all times may not be the best strategy
either because users would need to scan more things to find what
they’re looking for.</p>
<p>Striking the right balance between what you show and what you hide
is a delicate art and is completely in your hands as the designer.
Don’t use a technique just because it exists: <strong>use it if it makes sense in your context</strong>.</p>
<h4>About the author</h4>
<p><em>Dmitry Fadeyev is the founder of the <a href="http://www.usabilitypost.com/">Usability Post</a> blog, where you can read his thoughts on good design and usability.</em></p></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008111610653146</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008111610653146</guid>
    <pubDate>Tue, 16 Dec 2008 10:06:53 +0800</pubDate>
    <dcterms:modified>2008-12-16T11:58:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Joel Spolsky在耶鲁大学的演讲]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811111190295</link>
    <description><![CDATA[<div><div >
                              <p><a href="http://www.ruanyifeng.com/blog/2007/12/joel_spolsky_talk_at_yale_part_i.html" target="_blank">原文</a>来自<a href="http://www.ruanyifeng.com/blog/" accesskey="1">阮一峰的网络日志</a></p><p><a href="http://www.ruanyifeng.com/blog/2007/12/bg2007121201.jpg"><img title="Joel Spolsky在耶鲁大学的演讲 - hydra1983 - 远古的迷茫" alt="bg2007121201.jpg" src="http://www.ruanyifeng.com/blog/2007/12/bg2007121201-thumb.jpg" width="100" height="140"></a></p>

<p>Joel Spolsky是一个美国的软件工程师，他的网络日志<a href="http://www.joelonsoftware.com/" target="_blank">“Joel谈软件”</a>（Joel on Software）非常有名，读者人数可以排进全世界前100名。</p>
                           </div>
                           
                              <p>上个月28号，他回到母校耶鲁大学，与计算机系的学生座谈。他发表了一个演讲，回顾自己的人生经历，并总结了一些个人的体会。</p>

<p>我读完他的演讲稿，很受触动，觉得他的人生体会非常具有启示性。这篇演讲非常长，分为三个部分（<a href="http://www.joelonsoftware.com/items/2007/12/03.html" target="_blank">一</a>、<a href="http://www.joelonsoftware.com/items/2007/12/04.html" target="_blank">二</a>、<a href="http://www.joelonsoftware.com/items/2007/12/05.html" target="_blank">三</a>）。我没有时间全文翻译，就摘录一些精彩的段落，一共有四段。</p>

<p><strong>大学里最有用的课程</strong></p>

<p>Joel说，他在大学里上过的最有用的课，是一门他只上了一回，然后就再也没有去过的课。</p>

<p>由于父母都是大学教授，亲戚朋友都是学术界里的，大多有博士学位，所以Joel从小就认定自己也会去读博士，将来搞学术。可是，有一门课程改变了他的想法，使他最终没有去报考研究生院。</p>

<p>这门课程叫做“动态逻辑”（Dynamic Logic）。在第一堂课上，教授证明了一个命题。假定有一个程序“f := not f,”
f是表示真假的逻辑值，那么结论是程序运行偶数次后，f的值保持不变。整个证明过程非常冗长，要花几个小时讲解，一共有几十步。课后习题则是，证明如果f
值保持不变，那么程序必然运行了偶数次。</p>

<p>课后，Joel花了很多时间做题，还去图书馆借来了参考书。但是，他逐渐感到这样做没有意义：用大量琐碎的、容易出错的步骤，去证明一个凭直觉就能
认定成立的命题，这不是一个富有实效的工作方法。在Joel看来，计算机更应该用来解决错误，而不是让人们陷入逻辑的陷阱，去产生错误。（I
decided that this Dynamic Logic stuff was really not a fruitful way of
proving things about actual, interesting computer programs, because
you’re more likely to make a mistake in the proof than you are to make
a mistake in your own
intuition.）通过这件事，他认识到，自己不适合做纯思辨性的学术研究。因此，他就退掉了这门课，并且以后也没有选择去上研究生院。</p>

<p>Joel认为，就是这门只上了一次的课，恰恰成为了他在大学中上过的最有用的课，因为它帮助他选择了正确的人生道路。</p>

<p><strong>所以，Joel的第一个结论是：人生中重要的是，关注那些真正的问题（real problem），不要陷入那些细枝末节的问题（trivial problem）。就像苏格拉底说的，“认识你自己”。</strong></p>

<p>此外，Joel说，还有一门叫做CS 323的课，也很有用。这门课有大量的课后习题，都是关于编程的，平均每星期要花40个小时来做题。</p>

<p>Joel发现他能够做出大部分的题目，更重要的是，他发现自己喜欢做这些题。这样一来，他就明白自己是适合编程的。另一方面，很多其他学生对这门课
感到无比头疼，觉得编程既枯燥又痛苦，每周40小时做这种题简直是一种刑罚。这些人于是明白，虽然同样是计算机系的学生，但是他们并不适合编程。这是一件
好事，因为这样他们就避免了以后选择错误的职业。否则，让一个不喜欢编程的人，一生都与程序打交道，这是多么悲惨的一件事啊！</p>

<p><strong>在Viacom的日子</strong></p>

<p>毕业以后，Joel先在微软公司干了一段日子，然后回到纽约，进入维亚康母公司（Viacom），为这家巨型的娱乐传播公司编写软件，成为IT部门里一个程序员（in-house programmer）。</p>

<p>后来，Joel回忆起来，认为这是他一生中最痛苦的日子，并且劝告计算机系的学生尽可能不要去做“in-house programmer”。</p>

<p>原因有三个。</p>

<blockquote><div>

<p>首先，你永远没有办法正确地编写软件，你不得不用最方便的方法编写软件。因为软件支出非常高昂，所以公司会要求尽可能节省成本，你不可能试用新技术，只能使用现有的最成熟、最保守的技术。</p>

<p>其次，你没有办法将一个项目做到尽善尽美。一旦程序可以正常运行，你的工作也就结束了，可以接下去干公司的下一个项目了。你的作用是解决问题，而不
是将软件写得尽可能好。如果你是在一个专业的技术性公司，比如Google或Facebook，情况就完全不一样，你的软件写得越好，公司就会越成功，所
以公司会支持你在一个项目上不断做下去。</p>

<p>最后，传统公司IT部门里的程序员，只属于公司内部的维护人员，而不是直接从事核心业务的人员。因此，你永远办法进入管理层。但是，在技术性公司，程序员会变成CEO。</p>

</div></blockquote>

<p>因为这三个原因，Joel觉得in-house
programmer不是一个好的职业，不幸的是，80%的程序员属于这一类，年复一年，很多人的生命就是这样被耗干的。（it’s
frightening because this is what probably 80% of programming jobs are
like, and if you’re not very, very careful when you graduate, you might
find yourself working on in-house software, by accident, and let me
tell you, it can drain the life out of you.）</p>

<p><strong>Joel的第二个结论是：选择职业时，不要只考虑职位是否专业对口，应该尽量选择业务方向与你专业相同的公司。</strong></p><p><br><strong></strong></p><div  >
                              <p>虽然，维亚康母公司（Viacom）口头表示很重视互联网，但是，分配给程序员的工作间，总是很小的屋子，光线黯淡，而且还用搁板分割出小间，供三个人使用。经理们各自的办公室则完全不同，都有大玻璃窗，可以俯视哈德逊河。</p>

<p>在一次公司内部的圣诞晚会上，Joel见到了负责互联网战略的执行董事。Joel问他，公司打算怎么使用互联网，后者只是泛泛地说，互联网很重要，
这是未来的发展方向。Joel感到很失望，他相信这个执行董事其实对互联网毫无认识，只不过是人云亦云。说到底，这个董事对这一切可能根本无所谓，反正他
每年都有200万美元的年薪，保持现状就是最好。对他来说，Joel就是一个打字员似的“写网页的人”，Joel做了什么和工作中的付出，他并不关
心。（It convinced me that he had no flipping idea whatsoever what it was
that was happening and what the internet meant or what I did as a
programmer, and he was a little bit scared of it all, but who cares,
because he’s making 2 million dollars a year and I’m just a typist or
“HTML operator” or whatever it is that I did, how hard can it be, his
teenage daughter can do that.）</p>

<p>所以，Joel决定辞职了。</p>

<p><strong>管理人员的作用</strong></p>

<p>离开维亚康母以后，Joel进了一家叫做Juno Online Services的互联网公司，这家公司提供网上免费电子邮件服务。那个时候是90年代中期，hotmail和gmail都还没有成立。</p>

<p>作为程序员，Joel在这里工作得很愉快，但是公司本身的经营却不成功。虽然是一家互联网公司，但是，Juno Online
Services完全采用传统的“从上至下”的管理方式，就是领导想出来一个主意，然后命令程序员负责实现，结果就是对技术细节一无所知的人，决定了一
切。</p>

<p>这同硅谷的方式完全不同，在那里，管理人员只负责创造一个良好的工作环境，然后让真正的聪明人把东西做出来。（What I was used
to from the west coast was an attitude that management is just an
annoying, mundane chore someone has to do so that the smart people can
get their work done.）硅谷公司内部的运作更像大学里的学术讨论会，会议主席的作用只是主持会议而已。 </p>

<p><strong>Joel的第三个结论是，公司管理层的作用就是搬动家具、清理出空间，让有才华的研究人员做出一流产品。（Managers
exist to get furniture out of the way so the real talent can do
brilliant work.）</strong></p>

<p>Juno Online Services经营得不成功，以及对员工才华的不尊重，使得Joel在2000年下定决心，不再为别人打工了，开始创业。</p>

<p><strong>表达能力的重要性</strong></p>

<p>在创业之初，Joel并不知道该去做什么。他看到许多很蠢的人，拿着很蠢的商业计划，开办互联网公司。他想，这样的公司都能开出来，那么我也能开公
司，只要我比他们少蠢10%就可以了，我要按照我的想法来管理，对每一个程序员都给予最大的尊重，那样就有机会做出高质量的产品。我们不关心风险资本家怎
么说，也没有高高在上的领导，我们只关心客户的感受，用软件解决客户的问题，从而获得报酬，生存下去。（In those days, I was
seeing lots of really dumb people with really dumb business plans
making internet companies, and I thought, hey, if I can be, say, 10%
less dumb than them, that should be easy, maybe I can make a company
too, and in my company, we’d do things right for a change.） We’d treat
programmers with respect, we’d make high quality products, we wouldn’t
take any shit from VCs or 24-year-olds playing President, we’d care
about our customers and solve their problems when they called, instead
of blaming everything on Microsoft, and we’d let our customers decide
whether or not to pay us.）</p>

<p>在这种想法的鼓励下，Joel创办了<a href="http://www.fogcreek.com/" target="_blank">Fog Creek</a>软件公司。</p>

<p>从创业之初，Joel就开始将自己的想法和遇到的事情，写成文章，发表在互联网上。当时还没有Blog这种东西，但是他其实已经在写了。Joel慢
慢发现，他的文章真的有人看，并且读者越来越多，其中很多人最终都接受了他的想法。实际上，Joel写的很多东西都不是原创性的，其中还时不时包括一些笑
话，但是读者不在乎，<a href="http://www.joelonsoftware.com/" target="_blank">“Joel谈软件”</a>成了一个热门网站，平均每篇文章都有几十万、甚至上百万的读者。</p>

<p>这对Joel的创业帮助极大，Fog Creek本来是一家无名的小软件公司，但是由于很多人读Joel的文章，因此他们也了解并且相信Joel的公司。这使得Fog Creek从创业的第一年起就是盈利的，并且每年都在发展。</p>

<p>Joel将创业的成功，部分归功于他在大学里受过的写作训练，那时有一个教授每周都要布置写论文，并且对平庸的文章恨之入骨，不给学分。这使得Joel学会了将复杂的话题说得清晰易懂，并且引人入胜。</p>

<p><strong>因此，Joel的第四个结论是，一个普通工作人员和一个领袖之间的差别，就是有没有良好的表达能力。</strong>（Being
able to write clearly on technical topics is the difference between
being a grunt individual contributor programmer and being a leader.）</p>

<p>（完）</p>
                           </div></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811111190295</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811111190295</guid>
    <pubDate>Thu, 11 Dec 2008 13:19:00 +0800</pubDate>
    <dcterms:modified>2008-12-11T13:19:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Flex 开发基于Flash Player 10应用程序时碰到的问题]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008111115847175</link>
    <description><![CDATA[<div>问题：<br>希望从本地加载一个Image，然后获取它的Hash，以与现有图片的Hash进行匹配，如果相符则证明该Image已经被加载过（或上传过）。<br>load &amp; save 只在flash player 10里支持，确认flash player 版本正确<br>而
且使用的是3.2的SDK, 移除了默认的player\9\playerglobal.swc
，添加进去player\10\playerglobal.swc，确保link type是external。调用
FileReference.load()，编译时没有任何错误。但运行时会弹出提示:<br>

<br>ReferenceError: Error #1069: 在 flash.net.FileReference 上找不到属性 <a href="http://www.adobe.com/2008/actionscript/Flash10/::load" target="_blank">http://www.adobe.com/2008/actionscript/Flash10/::load</a>，且没有默认值。<br><br>或者<br><br>ReferenceError: Error #1069: 在 flash.net.FileReference 上找不到属性 <a href="http://www.adobe.com/2008/actionscript/Flash10/::load" target="_blank">http://www.adobe.com/2008/actionscript/Flash10/::save</a>，且没有默认值。<br><br>解决方案：<br>在Properties-&gt;Flex Compiler里面将Require Flash Player Version 设为10.0.0，重新编译后运行，没有任何问题<br><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008111115847175</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008111115847175</guid>
    <pubDate>Thu, 11 Dec 2008 01:58:47 +0800</pubDate>
    <dcterms:modified>2008-12-11T01:58:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[FLINT:基于ActionScript的粒子系统]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811955719967</link>
    <description><![CDATA[<div><h1>Site</h1><a href="http://flintparticles.org/" target="_blank">http://flintparticles.org/</a><h1>Examples</h1>
   <p>Click a thumbnail to see the flash movie and code for each example.</p>

<p>
<a href="http://flintparticles.org/examples/explode-image"><img src="http://flintparticles.org/images/examples2/explodeimage.jpg" alt="Explode Image" title="Explode Image" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/brownian-motion"><img src="http://flintparticles.org/images/examples2/brownianmotion.gif" alt="Brownian Motion" title="Brownian Motion" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/logofire"><img src="http://flintparticles.org/images/examples2/logofire.jpg" alt="The flint logo on fire" title="The flint logo on fire" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/flocking"><img src="http://flintparticles.org/images/examples2/flocking.gif" alt="Flocking birds" title="Flocking birds" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/sparkler"><img src="http://flintparticles.org/images/examples2/sparkler.jpg" alt="Sparkler" title="Sparkler" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/gravity-wells"><img src="http://flintparticles.org/images/examples2/gravitywells.jpg" alt="Gravity wells" title="Gravity wells" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/fire-and-smoke"><img src="http://flintparticles.org/images/examples2/fireandsmoke.jpg" alt="Fire and smoke" title="Fire and smoke" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/snowfall"><img src="http://flintparticles.org/images/examples2/snowfall.jpg" alt="Snowfall" title="Snowfall" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/logo-firework"><img src="http://flintparticles.org/images/examples2/logofirework.jpg" alt="Logo shaped firework" title="Logo shaped firework" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/mutual-gravity"><img src="http://flintparticles.org/images/examples2/mutualgravity.jpg" alt="Mutual gravity" title="Mutual gravity" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/catherine-wheel"><img src="http://flintparticles.org/images/examples2/catherinewheel.jpg" alt="Catherine Wheel" title="Catherine Wheel" width="150" border="0" height="150"></a>

<a href="http://flintparticles.org/examples/firework"><img src="http://flintparticles.org/images/examples2/firework.jpg" alt="Firework" title="Firework" width="150" border="0" height="150"></a>
</p></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811955719967</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811955719967</guid>
    <pubDate>Tue, 9 Dec 2008 17:57:19 +0800</pubDate>
    <dcterms:modified>2008-12-10T11:55:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[国家/区域 列表]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/111750372008119336766</link>
    <description><![CDATA[<div>做项目的时候要让用户选择自己的国家区域，突然发现手头没有现成的，简单google ,baidu了一下也没找到，干脆根据<a href="http://zh.wikipedia.org/w/index.php?title=%E4%B8%96%E7%95%8C%E5%9C%B0%E7%90%86%E7%B4%A2%E5%BC%95&amp;variant=zh-cn" target="_blank">wikipedia提供的信息</a>，基于XML自己写了一份。现共享之。<br>因为编码问题，所以最好<a href="http://hydra1983.googlepages.com/country_region.xml" target="_blank">直接下载</a>，当然也可以直接编程加载这个XML文件。<br>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>&lt;root&gt;<br>&nbsp; &lt;item name="Абхазия/????????/А?сны"/&gt;<br>&nbsp; &lt;item name="?????????"/&gt;<br>&nbsp; &lt;item name="Landskapet ?land"/&gt;<br>&nbsp; &lt;item name="Shqip?ria"/&gt;<br>&nbsp; &lt;item name="???????"/&gt;<br>&nbsp; &lt;item name="American Samoa"/&gt;<br>&nbsp; &lt;item name="Andorra"/&gt;<br>&nbsp; &lt;item name="Angola"/&gt;<br>&nbsp; &lt;item name="Anguilla"/&gt;<br>&nbsp; &lt;item name="Antigua and Barbuda"/&gt;<br>&nbsp; &lt;item name="Argentina"/&gt;<br>&nbsp; &lt;item name="????????"/&gt;<br>&nbsp; &lt;item name="Aruba"/&gt;<br>&nbsp; &lt;item name="?sterreich"/&gt;<br>&nbsp; &lt;item name="Australia"/&gt;<br>&nbsp; &lt;item name="Az?rbaycan ?????????"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Bahamas"/&gt;<br>&nbsp; &lt;item name="Bahrain"/&gt;<br>&nbsp; &lt;item name="Bangladesh"/&gt;<br>&nbsp; &lt;item name="Barbados"/&gt;<br>&nbsp; &lt;item name="Belarus"/&gt;<br>&nbsp; &lt;item name="Belgium"/&gt;<br>&nbsp; &lt;item name="Belize"/&gt;<br>&nbsp; &lt;item name="Benin"/&gt;<br>&nbsp; &lt;item name="Bermuda"/&gt;<br>&nbsp; &lt;item name="Bhutan"/&gt;<br>&nbsp; &lt;item name="Bolivia"/&gt;<br>&nbsp; &lt;item name="Bosnia and Herzegovina"/&gt;<br>&nbsp; &lt;item name="Botswana"/&gt;<br>&nbsp; &lt;item name="Brazil"/&gt;<br>&nbsp; &lt;item name="British Indian Ocean Territory"/&gt;<br>&nbsp; &lt;item name="Brunei"/&gt;<br>&nbsp; &lt;item name="Bulgaria"/&gt;<br>&nbsp; &lt;item name="Burkina Faso"/&gt;<br>&nbsp; &lt;item name="Burundi"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Cambodia"/&gt;<br>&nbsp; &lt;item name="Cameroon"/&gt;<br>&nbsp; &lt;item name="Canada"/&gt;<br>&nbsp; &lt;item name="Cape Verde"/&gt;<br>&nbsp; &lt;item name="Cayman Islands"/&gt;<br>&nbsp; &lt;item name="Central African Republic"/&gt;<br>&nbsp; &lt;item name="Chad"/&gt;<br>&nbsp; &lt;item name="Chile"/&gt;<br>&nbsp; &lt;item name="China"/&gt;<br>&nbsp; &lt;item name="Christmas lsland"/&gt;<br>&nbsp; &lt;item name="Cocos (Keeling) Islands"/&gt;<br>&nbsp; &lt;item name="Cook Islands"/&gt;<br>&nbsp; &lt;item name="Colombia"/&gt;<br>&nbsp; &lt;item name="Comoros"/&gt;<br>&nbsp; &lt;item name="Congo (Brazzaville)"/&gt;<br>&nbsp; &lt;item name="Congo (Kinshasa)"/&gt;<br>&nbsp; &lt;item name="Costa Rica"/&gt;<br>&nbsp; &lt;item name="C?te d'Ivoire"/&gt;<br>&nbsp; &lt;item name="Croatia"/&gt;<br>&nbsp; &lt;item name="Cuba"/&gt;<br>&nbsp; &lt;item name="Cyprus"/&gt;<br>&nbsp; &lt;item name="Czech Republic"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Denmark"/&gt;<br>&nbsp; &lt;item name="Djibouti"/&gt;<br>&nbsp; &lt;item name="Dominica"/&gt;<br>&nbsp; &lt;item name="Dominican Republic"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Ecuador"/&gt;<br>&nbsp; &lt;item name="Egypt"/&gt;<br>&nbsp; &lt;item name="El Salvador"/&gt;<br>&nbsp; &lt;item name="Equatorial Guinea"/&gt;<br>&nbsp; &lt;item name="Eritrea"/&gt;<br>&nbsp; &lt;item name="Estonia"/&gt;<br>&nbsp; &lt;item name="Ethiopia"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Falkland Islands (Islas Malvinas)"/&gt;<br>&nbsp; &lt;item name="Faroe Islands"/&gt;<br>&nbsp; &lt;item name="Fiji"/&gt;<br>&nbsp; &lt;item name="Finland"/&gt;<br>&nbsp; &lt;item name="France"/&gt;<br>&nbsp; &lt;item name="French Polynesia"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Gabon"/&gt;<br>&nbsp; &lt;item name="Gambia"/&gt;<br>&nbsp; &lt;item name="Georgia"/&gt;<br>&nbsp; &lt;item name="Germany"/&gt;<br>&nbsp; &lt;item name="Ghana"/&gt;<br>&nbsp; &lt;item name="Gibraltar"/&gt;<br>&nbsp; &lt;item name="Greece"/&gt;<br>&nbsp; &lt;item name="Greenland"/&gt;<br>&nbsp; &lt;item name="Grenada"/&gt;<br>&nbsp; &lt;item name="Guam"/&gt;<br>&nbsp; &lt;item name="Guatemala"/&gt;<br>&nbsp; &lt;item name="Guernsey"/&gt;<br>&nbsp; &lt;item name="Guinea"/&gt;<br>&nbsp; &lt;item name="Guinea-Bissau"/&gt;<br>&nbsp; &lt;item name="Guyana"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Haiti"/&gt;<br>&nbsp; &lt;item name="Honduras"/&gt;<br>&nbsp; &lt;item name="Hong Kong SAR"/&gt;<br>&nbsp; &lt;item name="Hungary"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Iceland"/&gt;<br>&nbsp; &lt;item name="India"/&gt;<br>&nbsp; &lt;item name="Indonesia"/&gt;<br>&nbsp; &lt;item name="Iran"/&gt;<br>&nbsp; &lt;item name="Iraq"/&gt;<br>&nbsp; &lt;item name="Ireland"/&gt;<br>&nbsp; &lt;item name="Israel"/&gt;<br>&nbsp; &lt;item name="Italy"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Jamaica"/&gt;<br>&nbsp; &lt;item name="Japan"/&gt;<br>&nbsp; &lt;item name="Jersey"/&gt;<br>&nbsp; &lt;item name="Jordan"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Kazakhstan"/&gt;<br>&nbsp; &lt;item name="Kenya"/&gt;<br>&nbsp; &lt;item name="Kiribati"/&gt;<br>&nbsp; &lt;item name="Korea North"/&gt;<br>&nbsp; &lt;item name="Korea South"/&gt;<br>&nbsp; &lt;item name="Kosovo"/&gt;<br>&nbsp; &lt;item name="Kuwait"/&gt;<br>&nbsp; &lt;item name="Kyrgyzstan"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Laos"/&gt;<br>&nbsp; &lt;item name="Latvia"/&gt;<br>&nbsp; &lt;item name="Lebanon"/&gt;<br>&nbsp; &lt;item name="Lesotho"/&gt;<br>&nbsp; &lt;item name="Liberia"/&gt;<br>&nbsp; &lt;item name="Libyan"/&gt;<br>&nbsp; &lt;item name="Liechtenstein"/&gt;<br>&nbsp; &lt;item name="Lithuania"/&gt;<br>&nbsp; &lt;item name="Luxembourg"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Macao SAR"/&gt;<br>&nbsp; &lt;item name="Macedonia"/&gt;<br>&nbsp; &lt;item name="Madagascar"/&gt;<br>&nbsp; &lt;item name="Malawi"/&gt;<br>&nbsp; &lt;item name="Malaysia"/&gt;<br>&nbsp; &lt;item name="Maldives"/&gt;<br>&nbsp; &lt;item name="Mali"/&gt;<br>&nbsp; &lt;item name="Malta"/&gt;<br>&nbsp; &lt;item name="Isle of Man"/&gt;<br>&nbsp; &lt;item name="Marshall Islands"/&gt;<br>&nbsp; &lt;item name="Mauritania"/&gt;<br>&nbsp; &lt;item name="Mauritius"/&gt;<br>&nbsp; &lt;item name="Mayotte"/&gt;<br>&nbsp; &lt;item name="Mexico"/&gt;<br>&nbsp; &lt;item name="Micronesia"/&gt;<br>&nbsp; &lt;item name="Moldova"/&gt;<br>&nbsp; &lt;item name="Monaco"/&gt;<br>&nbsp; &lt;item name="Mongolia"/&gt;<br>&nbsp; &lt;item name="Montenegro"/&gt;<br>&nbsp; &lt;item name="Montserrat"/&gt;<br>&nbsp; &lt;item name="Morocco"/&gt;<br>&nbsp; &lt;item name="Mozambique"/&gt;<br>&nbsp; &lt;item name="Myanmar"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Nagorno-Karabakh"/&gt;<br>&nbsp; &lt;item name="Namibia"/&gt;<br>&nbsp; &lt;item name="Nauru"/&gt;<br>&nbsp; &lt;item name="Nepal"/&gt;<br>&nbsp; &lt;item name="Netherlands"/&gt;<br>&nbsp; &lt;item name="Netherlands Antilles"/&gt;<br>&nbsp; &lt;item name="New Caledonia"/&gt;<br>&nbsp; &lt;item name="New Zealand"/&gt;<br>&nbsp; &lt;item name="Nicaragua"/&gt;<br>&nbsp; &lt;item name="Niger"/&gt;<br>&nbsp; &lt;item name="Nigeria"/&gt;<br>&nbsp; &lt;item name="Niue"/&gt;<br>&nbsp; &lt;item name="Norfolk Island"/&gt;<br>&nbsp; &lt;item name="orthern Cyprus"/&gt;<br>&nbsp; &lt;item name="Northern Mariana Islands"/&gt;<br>&nbsp; &lt;item name="Norway"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Oman"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Pakistan"/&gt;<br>&nbsp; &lt;item name="Palau"/&gt;<br>&nbsp; &lt;item name="Palestine"/&gt;<br>&nbsp; &lt;item name="Panama"/&gt;<br>&nbsp; &lt;item name="Papua New Guinea"/&gt;<br>&nbsp; &lt;item name="Paraguay"/&gt;<br>&nbsp; &lt;item name="Peru"/&gt;<br>&nbsp; &lt;item name="Philippines"/&gt;<br>&nbsp; &lt;item name="Pitcairn Islands"/&gt;<br>&nbsp; &lt;item name="Poland"/&gt;<br>&nbsp; &lt;item name="Portugal"/&gt;<br>&nbsp; &lt;item name="Pridnestrovie"/&gt;<br>&nbsp; &lt;item name="Puerto Rico"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Qatar"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Réunion"/&gt;<br>&nbsp; &lt;item name="Romania"/&gt;<br>&nbsp; &lt;item name="Russia"/&gt;<br>&nbsp; &lt;item name="Rwanda"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Saint Helena"/&gt;<br>&nbsp; &lt;item name="Saint Kitts and Nevis"/&gt;<br>&nbsp; &lt;item name="Saint Lucia"/&gt;<br>&nbsp; &lt;item name="Saint Pierre and Miquelon"/&gt;<br>&nbsp; &lt;item name="Saint Vincent and the Grenadines"/&gt;<br>&nbsp; &lt;item name="Samoa"/&gt;<br>&nbsp; &lt;item name="San Marino"/&gt;<br>&nbsp; &lt;item name="S?o Tomé and Príncipe"/&gt;<br>&nbsp; &lt;item name="Saudi Arabia"/&gt;<br>&nbsp; &lt;item name="Senegal"/&gt;<br>&nbsp; &lt;item name="Serbia"/&gt;<br>&nbsp; &lt;item name="Seychelles"/&gt;<br>&nbsp; &lt;item name="Sierra Leone"/&gt;<br>&nbsp; &lt;item name="Singapore?"/&gt;<br>&nbsp; &lt;item name="Slovakia"/&gt;<br>&nbsp; &lt;item name="Slovenia"/&gt;<br>&nbsp; &lt;item name="Solomon Islands"/&gt;<br>&nbsp; &lt;item name="Somali"/&gt;<br>&nbsp; &lt;item name="Somaliland"/&gt;<br>&nbsp; &lt;item name="South Africa"/&gt;<br>&nbsp; &lt;item name="South Ossetia"/&gt;<br>&nbsp; &lt;item name="Spain"/&gt;<br>&nbsp; &lt;item name="Sri Lanka"/&gt;<br>&nbsp; &lt;item name="Sudan"/&gt;<br>&nbsp; &lt;item name="Suriname"/&gt;<br>&nbsp; &lt;item name="Svalbard"/&gt;<br>&nbsp; &lt;item name="Swaziland"/&gt;<br>&nbsp; &lt;item name="Sweden"/&gt;<br>&nbsp; &lt;item name="Switzerland"/&gt;<br>&nbsp; &lt;item name="Syrian"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Taiwan"/&gt;<br>&nbsp; &lt;item name="Tajikistan"/&gt;<br>&nbsp; &lt;item name="Tanzania"/&gt;<br>&nbsp; &lt;item name="Thailand"/&gt;<br>&nbsp; &lt;item name="Timor-Leste"/&gt;<br>&nbsp; &lt;item name="Togo"/&gt;<br>&nbsp; &lt;item name="Tokelau"/&gt;<br>&nbsp; &lt;item name="Tonga"/&gt;<br>&nbsp; &lt;item name="Trinidad and Tobago"/&gt;<br>&nbsp; &lt;item name="Tunisia"/&gt;<br>&nbsp; &lt;item name="Turkey"/&gt;<br>&nbsp; &lt;item name="Turkmenistan"/&gt;<br>&nbsp; &lt;item name="Turks and Caicos Islands"/&gt;<br>&nbsp; &lt;item name="Tuvalu"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Uganda"/&gt;<br>&nbsp; &lt;item name="Ukraine"/&gt;<br>&nbsp; &lt;item name="United Arab Emirates"/&gt;<br>&nbsp; &lt;item name="United Kingdom"/&gt;<br>&nbsp; &lt;item name="United States"/&gt;<br>&nbsp; &lt;item name="Uruguay"/&gt;<br>&nbsp; &lt;item name="Uzbekistan"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Vanuatu"/&gt;<br>&nbsp; &lt;item name="Vatican City"/&gt;<br>&nbsp; &lt;item name="Venezuela"/&gt;<br>&nbsp; &lt;item name="Vietnam"/&gt;<br>&nbsp; &lt;item name="Virgin Islands, British"/&gt;<br>&nbsp; &lt;item name="Virgin Islands, United States"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Wallis and Futuna"/&gt;<br>&nbsp; &lt;item name="Western Sahara"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Yemen"/&gt;<br>&nbsp; <br>&nbsp; &lt;item name="Zambia"/&gt;<br>&nbsp; &lt;item name="Zimbabwe"/&gt;<br>&lt;/root&gt;<br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/111750372008119336766</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/111750372008119336766</guid>
    <pubDate>Tue, 9 Dec 2008 15:36:07 +0800</pubDate>
    <dcterms:modified>2008-12-09T15:39:28+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Profiler Agent 导致的安全沙箱冲突问题]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811532014179</link>
    <description><![CDATA[<div>将Flash Player debug版升级到10.x后经常出现<br><br>Error #2044: 未处理的 securityError:。 text=Error #2048: <span href="http://bbs.actionscript3.cn/tag.php?name=%E5%AE%89%E5%85%A8"  >安全</span><span href="http://bbs.actionscript3.cn/tag.php?name=%E6%B2%99%E7%AE%B1"  >沙箱</span><span href="http://bbs.actionscript3.cn/tag.php?name=%E5%86%B2%E7%AA%81"  >冲突</span>:file:///E|%2Fclient%5Fdev%2F.metadata%2F.plugins%2Fcom.adobe.<span href="http://bbs.actionscript3.cn/tag.php?name=flash"  >flash</span>.profiler%2FProfilerAgent.swf?host=localhost&amp;port=9999 不能从 localhost:9999 <span href="http://bbs.actionscript3.cn/tag.php?name=%E5%8A%A0%E8%BD%BD"  >加载</span>数据。<br>
&nbsp; &nbsp; &nbsp; &nbsp; at ProfilerAgent()[C:\faramir\<span href="http://bbs.actionscript3.cn/tag.php?name=flex"  >flex</span>\sdk\modules\profiler3\as\ProfilerAgent.as:127]<br><br>如果降低到9.x版，问题自然也就解决了，可是很希望使用10.x做debugger<br>在网上搜索了一下：<br><span>Ross Phillips 在</span><a href="http://www.fingersdancing.net/2008/06/flex-debugger-crashing-eclipse-safari.html" target="_blank">这篇文章</a><span>里说明了一下这个问题是如何产生的，以及如何解决这个问题。</span><br><br>解决方案：<br>将mm.cfg的第一行<span style="font-family: courier new;"><br><br>PreloadSwf=/Users/[username]/Documents/workspace/<br>.metadata/.plugins/com.adobe.flash.profiler/<br>ProfilerAgent.swf?host=localhost&amp;port=9999</span><br><br>删除掉，重新启动你的firefox或者任何使用了flash player的软件，这样就不会出现这个错误提示了。<br><br>mm.cfg的位置如下所示 :<br><br><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><th width="201"><p>Operating system</p>    </th>
    <th width="314">
      <p>Create mm.cfg file in this directory</p>    </th>
  </tr>
  <tr>
    <td>
      <p>Macintosh OS X</p>    </td>
    <td>
      <p>MacHD:Library:Application Support:macromedia:</p>    </td>
  </tr>
  <tr bgcolor="#f8f8f8">
    <td>
      <p>Microsoft Windows Vista </p>    </td>
    <td>
      <p>C:\Users\<i>user_name</i>\</p>    </td>
  </tr> <tr bgcolor="#f8f8f8">
    <td>
      <p>Microsoft Windows 2000/XP</p>    </td>
    <td>
      <p>C:\Documents and Settings\<i>user_name</i>\</p>    </td>
  </tr>
  <tr bgcolor="#f8f8f8">
    <td>Microsoft Windows 95/98/ME<br></td>
    <td>%HOMEDRIVE%\%HOMEPATH%\</td>
  </tr>
  <tr bgcolor="#f8f8f8">
    <td>
      <p>Linux</p>    </td>
    <td>
      <p>/home/<i>user_name</i>
</p></td></tr></tbody></table><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811532014179</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811532014179</guid>
    <pubDate>Fri, 5 Dec 2008 15:20:14 +0800</pubDate>
    <dcterms:modified>2008-12-05T15:20:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Web發展史上的十大里程碑]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/1117503720081151556765</link>
    <description><![CDATA[<div><a href="http://www.wowbox.com.tw/blog/article.asp?id=3123" target="_blank">原文</a>来自<a href="http://www.wowbox.com.tw/" target="_blank">wowbox</a><br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/01.jpg" alt="" border="0"><br><strong>簡介</strong><br>web發展史上的十大里程碑，你瞭解多少 ？<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/02.jpg" alt="" border="0"> <br><strong>1. Linus Torvalds 創造了Linux核心</strong><br>當
1991年Linux Torvalds發佈了 Linux ,
便遇到了其他UNIX系統開發者的嚴厲批評。一些人認為，它使用了錯誤的計算機架構（32位），根本就是錯誤的。儘管如此，Torvalds仍然開發他自
己的UNIX內核,
最終成為了事實上的web服務器軟件（更不要說個人電腦上的流行操作系統）。因為Torvalds發佈這個軟件是基於GNU許可證的，所以它能比那些在封
閉的專有許可證下面的軟件傳播的更快。<br><br>Linux是互聯網的核心：它幾乎是每個web主機使用和支持的軟件，並且它有龐大，忠實和狂熱的追隨者。它是開源軟件最流行的例子，並且它使web發展的可能更多。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" style="cursor: pointer;" title="在新窗口打開圖片" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/03.jpg" alt="" border="0"><br><strong>2. The Mosaic Browser Launches</strong><br>沒
有Mosaic互聯網會變的更加索然無味，第一個瀏覽器真正的普及到了互聯網。在1993年發佈的版本，Mosaic是第一款支持書籤，圖標和一套光溜溜
的用戶界面（1993年的標準），並且最大的革新是:圖片支持。直到這一點出現在Web歷史上，圖片下載才成為可能。隨著圖片可以內置顯示，它完全改變了
互聯網瀏覽的改變，並且大大有助於互聯網日益成為主流。<br><br>Mosaic完全改變了因特網數據傳輸方式。沒有它，整個web的發展會是一個非常非常不同的路。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/04.jpg" alt="" border="0"><br><strong>3. W3C 發佈CSS1.0規範</strong><br>自從20世紀70年代以來，CSS已經以不同的形式運用在計算機上了。直到1996年12月一個世界萬維網組織的一個工作組才發佈了CSS1.0規範。微軟不久之後推出了IE3,提供有限的CSS支持。其餘的，正如他們所說，成為了歷史。<br><br>我不需要太深入CSS如何改變web開發方式的原因。CSS允許開發者用外聯的樣式表來取代那些難以維護的內嵌樣式，這幾秒鐘之內就可改變全站的設計。並不需要返回到每個html頁去尋找需要單獨改變的文本元素。<br><br>感謝CSS, 網站設計現在變的更加容易去維護和創造（即使在瀏覽器渲染的時候有些微妙變化）。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/05.jpg" alt="" border="0"><br><strong>4. 開源運動的正式開始</strong><br>開源運動已經以多種形式出現了很長很長時間了。信不信由你，Web不是為了商業的原因被創造的。它只是一種交流信息的方式。一旦成為了網站變成了盈利的途徑，變成了商業空間，自由交流在WWW會變的更加封閉。直到今天還有很多人這樣消極並依舊這樣做。<br><br>非
常感謝開源運動。因特網就是在開源的幫助下被創建的，其根源可追溯到20世紀60年代。 1998年的時候，主要參與者在Tim
O'Reilly的『免費軟件高級會議』上碰頭，決定使用「開源」這一稱呼並且開始了開源的第一步。Licensing被發放，用以保護開發者和軟件版
權，同一時間，允許其他開發者自由分發和修改源代碼。<br><br>開源以軟件的形式使大量的「現代」web更有力量。Wordpress, Firefox, PHP 和 Linux 僅僅少數幾個網絡上的開發者就影響著web的發展和瀏覽。如果沒有開源協議，軟件將會更加封閉，我們會看到更少的創新解決方案。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/06.jpg" alt="" border="0"><br><strong>5. PHP 被Rasmus Lerdorf發佈</strong><br>多虧了開源，像 PHP 這樣的動態語言才可以在web開發者之間自由的分發。你很難找到沒有安裝PHP的主機。 它是web編程事實上的最流行的語言。它被安裝在超過2000多萬的網站和100多萬web服務器上。<br><br>當1995年PHP被 Rasmus Lerdorf 介紹的時候，它就迅速被許多人視為一個優秀的web編程語言。它運行在網絡服務器上，可以嵌入在html裡，可以和SQL數據庫很好的工作。它允許開發者快速的去創建和維護複雜的數據庫驅動的站點。<br><br>有
很多在因特網上最流行的站點（過去和現在），都是基於PHP的。 Facebook, Yahoo! 和 Wikipedia 都在運行PHP。
同時，幾十個流行的網絡應用軟件是建立在PHP上的： Wordpress, Drupal, phpBB 和其他許多項目都採用了方便的語言。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/07.jpg" alt="" border="0"><br><strong>6. PayPal 創立</strong><br>雖
然往往引起爭議，PayPal無疑是開創了在線處理金錢交易的先河。 PayPal
創立於1998年，當初是作為一種在類似於eBay這拍賣網站上給投標人和賣方之間安全寄錢方式而開發的。PayPal
變的越來越受eBay用戶的歡迎，到了2000年2月，每天已經有超過200000的拍賣額。
在易趣收購PayPal支付處理系統之後，開始允許商家使用他們的API.該API允許開發人員容易的處理金錢交易，並且為網站訪問者的支付服務和訂閱提
供了方便安全的方式。<br><br>PayPal 使得開發者有了一個通過他們提供的服務快速賺錢的方式。 由於它的廣泛普及，無論是訂閱服務或是一次性費用，PayPal都被用來處理款項。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" style="cursor: pointer;" title="在新窗口打開圖片" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/08.jpg" alt="" border="0"><br><strong>7. Firefox 發佈</strong><br>在
2003年， Internet Explorer制約了web瀏覽器的空間。IE最大的競爭對手網景公司已經退居其次，基本上沒有競爭。
微軟的web瀏覽器享受著web瀏覽器市場總額的94%這個豐厚的份額。因此，競爭的缺乏使得IE項目處於停滯狀態，曾經被認為從版本1到6每年都更新的
IE瀏覽器，變成了，2006年發佈的IE7和IE6相差5年這樣一個差距。IE發展落後的這些年，引發了Mozilla的開源web瀏覽器
Firefox創作的火花。 <br><br>2003年Firefox初次發佈引爆了現場。Firefox瀏覽器解決了很多IE陳舊的缺點。
初始發佈版本包括了分頁瀏覽，拼寫檢查，live書籤等許多特性，早期的採用者都非常喜歡這個軟件。但更重要的是對於web開發者的，Firefox是基
於遵循web標準的Gecko渲染引擎的。 <br><br>Web標準有助於降低web開發的成本和複雜性。當前的兼容設計意味著要支持大量不同的瀏
覽器和他們的渲染『怪癖』（譯者註：不同瀏覽器渲染效果有所不同）。Internet
Explorer不符合web標準是臭名昭著的，使得設計者和開發者的開發生活更加困難(因為他們仍然擁有一個主要瀏覽器市場份額)。
隨著Firefox變得越來越流行，並且朝標準和規範推動著新的舉措，web會變成一個更好的發展的地方。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/09.jpg" alt="" border="0"><br><strong>8. Ruby on Rails 成為主流</strong><br>雖然大多數人沒有看到這個在web發展史上里程碑式的特別事件，但是Ruby on Rails的崛起式極其重要的，因為它象徵著一種廣泛的改變－使用框架和敏捷軟件開發去高效的開發網站。 <br><br>David
Heinemeier Hansson在2004年發佈了Ruby on Rails。自那時起，許多以其他語言為核心的web開發框架也被發佈了。
RoR 是一個model-view-controller 框架,
也就是說，它可以用腳手架（scaffolding）和其他輔助方法來消除程序中的重複任務。通過消除這些單調的編碼任務，開發者可以在多個項目裡有更快
的周轉時間。<br><br>框架加快了開發工作的開發時間和改變的方式。 自那時起，各大網站，像Twitter，就用web框架建立起完整的web服務。當Apple的Leopard操作系統和ROR關聯起來的時候，Ruby on Rails成為了一個重要的里程碑。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/10.jpg" alt="" border="0"><br><strong>9. 37 Signals發佈了Getting Real 電子書</strong><br>37
Signals
在過去的五年中一直時最受歡迎的web開發公司。不僅僅是他們建立了優質的產品，同時他們也是現代web開發的精神領袖，特別是對敏捷web開發的擁護。
他們的旗艦產品 Basecamp 是被Ruby on
Rails的第一個版本構建的，並最終導致了2004年框架概念的產生。他們的web開發哲學已經是他們的一個重要組成部分，在web開發者之間普及。同
時他們在2006年發佈的Getting Real 電子書也普及小型的敏捷的web開發實踐。<br><br>Web開發者們已經開始擁抱敏捷web開發實踐和Getting Real電子書裡的哲學。甚至像Google和微軟這樣的大公司也減少繁文縟節，接受了這個概念，去用較小的團隊更快的開發週期來開發更好的web產品。<br><br><img          title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" title="Web發展史上的十大里程碑 - hydra1983 - 远古的迷茫" src="http://www.wowbox.com.tw/blog/attachments/month_0811/Web%E7%99%BC%E5%B1%95%E5%8F%B2%E4%B8%8A%E7%9A%84%E5%8D%81%E5%A4%A7%E9%87%8C%E7%A8%8B%E7%A2%91/11.jpg" alt="" border="0"><br><strong>10. Amazon 推出雲存儲和雲服務</strong><br>隨
著2006年Amazon S3 和 EC2 的推出，雲存儲和web
services正式成為了里程碑。創業公司只需要支持他們的實際使用的帶寬費用就可以省掉他們日益成長需要增加昂貴服務器的費用。理論上講，這種服務你
只需要「按你的流量」支付一定費用就可以在幾分鐘內擴充規模。雲web服務創建了一個更快更便宜的傳統web服務器的替代品。<br><br>雲服務在成本和速度方面降低了web創業的門檻。因為雲計算，通信的突發意外也不再是問題，當機時間也幾乎消除。 雲服務確保任何web開發人員可以開始他們的想法，而不必考慮資金或是昂貴的服務器費用，使你的web創意更好的變成現實。
     </div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/1117503720081151556765</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/1117503720081151556765</guid>
    <pubDate>Fri, 5 Dec 2008 13:05:56 +0800</pubDate>
    <dcterms:modified>2008-12-05T13:05:56+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[標記語言 學習資源 ]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811511594138</link>
    <description><![CDATA[<div><a href="http://www.wowbox.com.tw/blog/article.asp?id=3130" target="_blank">原文</a><strong><span style="font-weight: normal;">来自</span></strong><a href="http://www.wowbox.com.tw/" target="_blank"><strong><span style="font-weight: normal;"></span></strong>wowbox blog </a><strong><span style="font-weight: normal;"></span><br>標準化設計解決方案 - 標記語言和樣式手冊 <br>Web Standards Solutions The Markup and Style Handbook<br><br>Part 2： Simplebits Of Style&nbsp;&nbsp;簡短精悍的樣式</strong><br><br><strong>Chapter 16 下一步</strong><br><br>現在你知道了如何使用標準改進你的網站了，要記住學習是永無止境的。方法和技術都在不斷調整，改進和更新，甚至在我撰寫本書最後幾個字的時候也沒有停止過。<br><br>還有什麼方法比站在網絡巨人的肩膀上更容易領先呢?現在已經有上千個在探討符合標準的開發，設計方式的奇妙了。<br><br><strong>下一步要往哪裡前進?</strong><br><br>在本書結束前，我收集了一些我喜愛的資源，我強烈建議你們時常訪問一下這些網站，以便跟上標準世界的最新發展。<br><br><strong>組織和出版物：</strong><br><br><strong>W3C</strong><br><a href="http://www.w3.org/" target="_blank">http://www.w3.org</a><br><br>World Wide Web Consortium 是所有標準起源的地方，這是指引Web，制定我們日常使用的標準的組織，這個網站包含了任何標準的技術細節，雖然有些難以瀏覽，消化，但這的確是標準資料決定性的來源。<br><br>特別有幫助的是W3C的驗證工具(<a href="http://validator.w3.org/" target="_blank">http://validator.w3.org</a>).經常使用這個工具，以便確保你的標記語法完全正確，你能驗證某個URL，或者上傳本地正在編輯的文檔。<br><br><strong>Web Standards Project</strong><br><a href="http://www.webstandards.org/" target="_blank">http://www.webstandards.org</a><br><br>成立於1998年，Web Standards Project (WaSP)對大眾提倡Web標準，同時為網頁設計者，開發者提供教學資源，教導如何貫徹符合標準的做法，WaSP同時也與瀏覽器，軟件製造商合作，並鼓勵他們遵循提倡的標準。<br><br>Web Standards Project的網站上包含了所有與標準有關資源。<br><br><strong>A List Apart</strong><br><a href="http://www.alistapart.com/" target="_blank">http://www.alistapart.com</a><br><br>1998年由Jeffrey Zeldman和Brian Platz成立，A List Apart雜誌探索了網頁內容的意義，設計和開發過程，同時把焦點集中在技術與遵循網頁標準能夠得到好處上。<br><br>這個不可或缺的在線雜誌在符合標準的設計，開發以及商業主題內發表了許多優秀的提示和技巧。對建站者來說，這是非讀不可的。<br><br><strong>CSS Zen Garden</strong><br><a href="http://www.csszengarden.com/" target="_blank">http://www.csszengarden.com</a><br><br>由WaSP成員Dave Shea種植照料的，CSS Zen Garden示範了以CSS為基礎的設計能夠達到何種視覺效果。設計者參考同一份標記結構，提交自己的CSS設計，結果就是一份持續更新的先進的CSS設計展示場。<br><br>這是個絕佳的靈感來源，也適合扔給對CSS反對者(我是指那些相信CSS辦不到位大設計的人，哈！或許會讓你想到某些人?)<br><br><strong>Dive into Accessibility</strong><br><a href="http://www.diveintoaccessibility.org/" target="_blank">http://www.diveintoaccessibility.org</a><br><br>Mark Pilgrim發行了這本電子書，幫助人們瞭解易用性的實現有多簡單，以及那些人能從中獲益。<br><br>以五個不同人的觀點出發，每個人都有不同的殘疾，這裡提供的信息十分容易理解。看過Mark的解釋之後，你就知道怎麼把網站變得更好了。<br><br><strong>CSS-discuss</strong><br><a href="http://www.css-discuss.org/" target="_blank">http://www.css-discuss.org</a><br><br>css-discuss 是個郵件組，專門討論CSS以及在現實中應用它的方法。這是個探索CSS的好去處，問問題，得到解答的好地方。這邊有許多樂於助人的朋友，他們有充足知識帶領你搞定幾乎所有問題。<br><br><strong>Web-Graphics</strong><br><a href="http://web-graphics.com/" target="_blank">http://web-graphics.com</a><br><br>Web-Graphics 是個超文本設計資源，鏈接和評論的集合。一群著名的編輯在此提供符合web標準的設計，開發新聞。是個獲知團隊新信息的好地方。<br><br><strong>Digital Web Magazine</strong><br><a href="http://www.digital-web.com/" target="_blank">http://www.digital-web.com</a><br><br>由Nick Finck發行，Digital Web Magazine是份佈滿專欄，新聞和教學的寫給網絡設計師在線雜誌。<br><br><strong>The Weekly Standards</strong><br><a href="http://weeklystandards.com/" target="_blank">http://weeklystandards.com</a><br><br>就像它的名字那樣，The Weekly Standards 每週更新，而且獻給遵守標準，考慮未來小心設計的網站。這裡你能找到許多根據標準設計，經常更新的網站。<br> <br><strong>具備影響力和靈感的日誌</strong>：<br><br>標準社群裡最具天份的設計師與開發者有許多會在自己的個人站發表日誌，只要經常閱讀這些日誌，你就能再大師傳授知識的時候學到不少東西。<br><br><strong>Jeffrey Zeldman Presents: The Daily Report</strong><br><a href="http://www.zeldman.com/" target="_blank">http://www.zeldman.com</a><br><br>Jeffrey
Zeldman，可以說是Web標準的教父，從1995年就開始發佈網頁設計新聞與相關資訊。Zeldman是前面提過的Web Standards
Group的發起人之一，也是A List Apart雜誌的發行者，與Designing With Web
Standards的作者。如果沒有這傢伙的努力，這本書也不會出現。<br><br>這個網站是符合標準設計的資訊源泉，也是放在收藏夾裡必須定期訪問的網站之一。<br><br><strong>Stopdesign</strong><br><a href="http://www.stopdesign.com/" target="_blank">http://www.stopdesign.com</a><br><br>Douglas Bowman，最出名的作品是根據標準方法重新設計的Wired News(<a href="http://www.wired.com/" target="_blank">http://www.wired.com</a>)以及Adaptive Path(<a href="http://www.adaptivepath.com/" target="_blank">http://www.adaptivepath.com</a>)，發行許多有用的教學，評論，同時在Web標準世界裡影響了許多設計者的想法。他在Wired News製作的使用的技巧在我為Fast Company重新設計網站是對我影響極深，而且沒人比他更留意細節。<br><br><strong>mezzoblue</strong><br><a href="http://www.mezzoblue.com/" target="_blank">http://www.mezzoblue.com</a><br><br>沒有人能比Dave Shea更關心標準化社區的一舉一動了，他也是CSS Zen Garden的維護者。在mezzoblue，Dave經常處理符合標準的設計的最新問題，經常帶領社區處理現有問題，這個網站是個有趣的資源庫。<br><br><strong>meyerweb.com</strong><br><a href="http://www.meyerweb.com/" target="_blank">http://www.meyerweb.com</a><br><br>Eric Meyer被視為CSS任何方面的專家，他為這個主題寫了幾本很棒的書，同時在顧問，演講與Netscape工作是不斷提倡Web標準化。他的網站有很棒的CSS註釋，以及一些非常棒的展示和實驗。<br><br><strong>Tantek Celik</strong><br><a href="http://tantek.com/log/" target="_blank">http://tantek.com/log/</a><br><br>稍早提過的盒模型Hack的作者的網站。他也是Microsoft的員工，與W3C的CSS，HTML工作群成員。<br><br><strong>What Do I Know?</strong><br><a href="http://www.whatdoiknow.org/" target="_blank">http://www.whatdoiknow.org</a><br><br>設計師Todd Dominey的個人站，他是許多符合標準偉大設計的幕後推手，作品包括"PGA Championship"的美妙網站(<a href="http://www.pgachampionship.com/" target="_blank">http://www.pgachampionship.com/</a>)<br><br><strong>Asterisk*</strong><br><a href="http://www.7nights.com/asterisk/" target="_blank">http://www.7nights.com/asterisk/</a><br><br>網頁設計師與開發者D. Keith Robinson的個人站，他經常提供與標準設計，開發議題相關的想法和問題。<br><br><strong>superfluousbanter</strong><br><a href="http://www.superfluousbanter.org/" target="_blank">http://www.superfluousbanter.org</a><br><br>Dan Rubin和Didier Hilhorst不止製作美觀的網站，也在這裡提供相關資訊。<br><br><strong>Simon Willison's Weblog</strong><br><a href="http://simon.incutio.com/" target="_blank">http://simon.incutio.com</a><br><br>Simon Willison是開發者，Web Standards Project成員，在此撰寫關於"PHP，Python，CSS，XML與普通網絡開發"的相關資訊，他總站在網絡標準之上，檢查它們如何與其他網絡開發工作產生關聯。<br><br><strong>Brainstorms and Raves</strong><br><a href="http://www.brainstormsandraves.com/" target="_blank">http://www.brainstormsandraves.com</a><br><br>Shirley E. Kaiser是Web Standards Project的指導委員會成員，在此"幾乎每天記錄關於網絡設計，開發，標準，排版，音樂等等的消息"。<br><br><strong>Living Can Kill You</strong><br><a href="http://www.saila.com/columns/lcky/" target="_blank">http://www.saila.com/columns/lcky/</a><br><br>除了"加拿大新媒體的生活，從線上新聞到建立網站"之外，Craig Saila的日誌經常刊登一些關於Web標準的無價資訊。另外，他的名字很酷！<br><br><strong>參考書籍：</strong><br><br>也要提一下幾本書，這幾本絕佳的書籍對於工作著的設計師來說，都是不可獲取的參考資料。<br><br>Designing with Web Standards<br>By Jeffrey Zeldman(New Riders，2003)<br><br>這本書基本上為網絡設計者"指引了命運"。Jeffrey Zeldman仔細地解釋Web標準規範，它們的好處及為何要使用它們，讓我們都在同一水平線上，你一定要讀。<br><br>Cascading Style Sheets: The Definitive Guide<br>By Eric Meyer (O'Reilly &amp; Associates, 2000)<br><br>這是本CSS的權威參考資料。從中能學會所有CSS屬性和他們的工作方式。<br><br>Speed up Your Site: Web Site Optimization<br>By Andrew B. King (New Riders, 2003)<br><br>這本書會教會你如何以符合標準的標記語法與CSS為你的網站提升速度，所見大小以及輔助搜索引擎製作索引。<br><br><strong>離別語</strong><br><br>這
系列的介紹即將抵達終點了，希望在帶領你看過整系列的介紹之後，你會對符合標準的網站構建法擁有全新的認識，看過幾種能達成相同效果的方法之後，你就能開
始在自己的項目裡做出更好的選擇，同時相信你也準備好將冗長古老的標記語法轉成靈活的結構化的XHTML與CSS設計。感謝您的閱讀，這過程應該很有趣！<br><br><span style="color: Purple;">這
系列的介紹真是辛苦原作者了！我們給他掌聲鼓勵！也給自己鼓勵一下，要調整它的標點符號也真是夠辛苦的！也希望大家都喜歡，能活用善用這些知識！真的看不
懂嗎？建議還是先放下，先看些你懂得東西，等有天你成長了再回來看也不遲的，WOWBOX希望能為各位紀錄好跟網頁有關的知識！</span>
     </div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811511594138</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811511594138</guid>
    <pubDate>Fri, 5 Dec 2008 11:59:04 +0800</pubDate>
    <dcterms:modified>2008-12-05T11:59:04+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Flex table ]]></title>	
    <link>http://hydra1983.blog.163.com/blog/static/11175037200811403659149</link>
    <description><![CDATA[<div><a href="http://code.google.com/p/flex-table/" target="_blank">flex table</a> 终于open source到google code上了！！<br><h2><a>Demo</a></h2><p><a>Here is a simple demo of the usage of this widget. The source is published as well. </a></p><p><a href="http://hydra1983.googlepages.com/FlextableRefined.html" rel="nofollow">Let me have a look</a> </p><h3><a>Screenshot</a></h3><p><a><img title="Flex table  - hydra1983 - 远古的迷茫" alt="Flex table  - hydra1983 - 远古的迷茫" src="http://flex-table.googlecode.com/svn/trunk/doc/images/flex-table-demo-screenshot-1.JPG"> </a></p><p><a><img title="Flex table  - hydra1983 - 远古的迷茫" alt="Flex table  - hydra1983 - 远古的迷茫" src="http://flex-table.googlecode.com/svn/trunk/doc/images/flex-table-demo-screenshot-2.JPG"> </a></p><h3><a>Description</a></h3><ol><li><a>insert controls <br>insert some flex controls into each cell of the specified table widget.<br><br> </a></li><li><a>remove all controls <br>remove all the controls from each cell of the specified table widget.<br><br> </a></li><li><a>remove controls from selected cell <br>remove all the controls from the selected cells of the specified table widget.<br><br> </a></li><li><a>the menu of the table </a></li></ol><ul><li><a>merge cells <br> merge all the selected cells.<br><br> </a></li><li><a>split cells <br> split the selected cell.<br><br> </a></li><li><a>Insert Columns to the Left <br> insert several cells into the table widget on the left side of the top-left cell of the selected cells.<br><br> </a></li><li><a>Insert Columns to the Right  <br> insert several cells into the table widget on the right side of the top-right cell of the selected cells.<br><br> </a></li><li><a>Insert Rows Above <br> insert a row contained several cells into the table widget above the topmost selected cells.<br><br> </a></li><li><a>Insert Rows Below <br> insert a row contained several cells into the table widget below the bottommost selected cells.<br><br> </a></li><li><a>Delete Entire Row <br> delete the entire rows contains the selected cells. </a></li></ul><br></div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
	    <comments>http://hydra1983.blog.163.com/blog/static/11175037200811403659149</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://hydra1983.blog.163.com/blog/static/11175037200811403659149</guid>
    <pubDate>Thu, 4 Dec 2008 00:36:59 +0800</pubDate>
    <dcterms:modified>2008-12-04T00:38:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  Orbit]]></title>	
    <link>http://img.blog.163.com/photo/RwMn-Jdal2QF2wwTU3agjw==/5136918324970383632.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/RwMn-Jdal2QF2wwTU3agjw==/5136918324970383632.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/RwMn-Jdal2QF2wwTU3agjw==/5136918324970383632.jpg" border="0" width="240" height="174" alt="Orbit  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/RwMn-Jdal2QF2wwTU3agjw==/5136918324970383632.jpg</guid>
    <pubDate>Sun, 21 Dec 2008 04:05:17 +0800</pubDate>
    <dcterms:modified>2008-12-21T04:05:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  Fnk]]></title>	
    <link>http://img.blog.163.com/photo/CdNWUngIqV356MTr-nmQBw==/5081749229535016209.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/CdNWUngIqV356MTr-nmQBw==/5081749229535016209.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/CdNWUngIqV356MTr-nmQBw==/5081749229535016209.jpg" border="0" width="240" height="124" alt="Fnk  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/CdNWUngIqV356MTr-nmQBw==/5081749229535016209.jpg</guid>
    <pubDate>Mon, 17 Nov 2008 07:53:43 +0800</pubDate>
    <dcterms:modified>2008-11-17T07:53:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  20080916002602]]></title>	
    <link>http://img.blog.163.com/photo/_PzrRF8DJAAPg2MhTPQGyw==/4581849670896707424.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/_PzrRF8DJAAPg2MhTPQGyw==/4581849670896707424.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/_PzrRF8DJAAPg2MhTPQGyw==/4581849670896707424.jpg" border="0" width="240" height="240" alt="20080916002602  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/_PzrRF8DJAAPg2MhTPQGyw==/4581849670896707424.jpg</guid>
    <pubDate>Sat, 15 Nov 2008 03:01:24 +0800</pubDate>
    <dcterms:modified>2008-11-15T03:01:24+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  未命名]]></title>	
    <link>http://img.blog.163.com/photo/MmMMohgH6eE9Zr3GcHi-YQ==/3675500245888515065.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/MmMMohgH6eE9Zr3GcHi-YQ==/3675500245888515065.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/MmMMohgH6eE9Zr3GcHi-YQ==/3675500245888515065.jpg" border="0" width="233" height="240" alt="未命名  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/MmMMohgH6eE9Zr3GcHi-YQ==/3675500245888515065.jpg</guid>
    <pubDate>Sun, 19 Oct 2008 18:43:52 +0800</pubDate>
    <dcterms:modified>2008-10-19T18:43:52+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  未命名1]]></title>	
    <link>http://img.blog.163.com/photo/keQbRYlv2ZtZCe6Kl0Q8sw==/3675500245888515063.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/keQbRYlv2ZtZCe6Kl0Q8sw==/3675500245888515063.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/keQbRYlv2ZtZCe6Kl0Q8sw==/3675500245888515063.jpg" border="0" width="240" height="113" alt="未命名1  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/keQbRYlv2ZtZCe6Kl0Q8sw==/3675500245888515063.jpg</guid>
    <pubDate>Sun, 19 Oct 2008 18:43:52 +0800</pubDate>
    <dcterms:modified>2008-10-19T18:43:52+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  noteflight]]></title>	
    <link>http://img.blog.163.com/photo/9oktvT_7pgOvVyB15uQniA==/328481297822235510.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/9oktvT_7pgOvVyB15uQniA==/328481297822235510.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/9oktvT_7pgOvVyB15uQniA==/328481297822235510.jpg" border="0" width="240" height="163" alt="noteflight  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/9oktvT_7pgOvVyB15uQniA==/328481297822235510.jpg</guid>
    <pubDate>Wed, 8 Oct 2008 09:18:07 +0800</pubDate>
    <dcterms:modified>2008-10-08T09:18:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  enjoyflashgame.com@09 23 13.453-]]></title>	
    <link>http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg" border="0" width="189" height="240" alt="enjoyflashgame.com@09 23 13.453-  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg</guid>
    <pubDate>Mon, 1 Sep 2008 09:27:19 +0800</pubDate>
    <dcterms:modified>2008-09-01T09:27:19+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  enjoyflashgame.com@09 23 13.453-]]></title>	
    <link>http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg" border="0" width="189" height="240" alt="enjoyflashgame.com@09 23 13.453-  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/VIwc1rADIi-zK5a0OL5sFw==/634444597506693615.jpg</guid>
    <pubDate>Mon, 1 Sep 2008 09:26:28 +0800</pubDate>
    <dcterms:modified>2008-09-01T09:26:28+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  mxml_vs_actionscript_2]]></title>	
    <link>http://img.blog.163.com/photo/3YwdXd3AEgrChejqpOwAlw==/1485343452102577892.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/3YwdXd3AEgrChejqpOwAlw==/1485343452102577892.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/3YwdXd3AEgrChejqpOwAlw==/1485343452102577892.jpg" border="0" width="240" height="125" alt="mxml_vs_actionscript_2  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/3YwdXd3AEgrChejqpOwAlw==/1485343452102577892.jpg</guid>
    <pubDate>Mon, 7 Jul 2008 17:30:12 +0800</pubDate>
    <dcterms:modified>2008-07-07T17:30:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  mxml_vs_actionscript_1]]></title>	
    <link>http://img.blog.163.com/photo/hUASp5J2cQ5qS0huLZ8YUg==/1485343452102577887.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/hUASp5J2cQ5qS0huLZ8YUg==/1485343452102577887.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/hUASp5J2cQ5qS0huLZ8YUg==/1485343452102577887.jpg" border="0" width="240" height="116" alt="mxml_vs_actionscript_1  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/hUASp5J2cQ5qS0huLZ8YUg==/1485343452102577887.jpg</guid>
    <pubDate>Mon, 7 Jul 2008 17:30:12 +0800</pubDate>
    <dcterms:modified>2008-07-07T17:30:12+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  heroturko]]></title>	
    <link>http://img.blog.163.com/photo/NKKzjcOFFG_Wk-HSP_t7bA==/1413004383087997444.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/NKKzjcOFFG_Wk-HSP_t7bA==/1413004383087997444.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/NKKzjcOFFG_Wk-HSP_t7bA==/1413004383087997444.jpg" border="0" width="240" height="54" alt="heroturko  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/NKKzjcOFFG_Wk-HSP_t7bA==/1413004383087997444.jpg</guid>
    <pubDate>Sat, 5 Jul 2008 23:56:22 +0800</pubDate>
    <dcterms:modified>2008-07-05T23:56:22+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  weird iframe]]></title>	
    <link>http://img.blog.163.com/photo/c6Moi-d41RAhsZC-RIZNCw==/2292050735355579698.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/c6Moi-d41RAhsZC-RIZNCw==/2292050735355579698.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/c6Moi-d41RAhsZC-RIZNCw==/2292050735355579698.jpg" border="0" width="240" height="156" alt="weird iframe  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/c6Moi-d41RAhsZC-RIZNCw==/2292050735355579698.jpg</guid>
    <pubDate>Thu, 26 Jun 2008 11:55:35 +0800</pubDate>
    <dcterms:modified>2008-06-26T11:55:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012232178710394]]></title>	
    <link>http://img.blog.163.com/photo/FBIEjbq5dSWiYmbugz0Tig==/1201053725624863187.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/FBIEjbq5dSWiYmbugz0Tig==/1201053725624863187.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/FBIEjbq5dSWiYmbugz0Tig==/1201053725624863187.jpg" border="0" width="240" height="152" alt="F200706201012232178710394  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/FBIEjbq5dSWiYmbugz0Tig==/1201053725624863187.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:53 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012217687995358]]></title>	
    <link>http://img.blog.163.com/photo/265UlIQTLH3qLHfE5GPDuA==/619526423740487777.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/265UlIQTLH3qLHfE5GPDuA==/619526423740487777.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/265UlIQTLH3qLHfE5GPDuA==/619526423740487777.jpg" border="0" width="240" height="145" alt="F200706201012217687995358  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/265UlIQTLH3qLHfE5GPDuA==/619526423740487777.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012201786021033]]></title>	
    <link>http://img.blog.163.com/photo/SXMm1tPjEJ7q9iy7x1G1dA==/874261277663637244.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/SXMm1tPjEJ7q9iy7x1G1dA==/874261277663637244.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/SXMm1tPjEJ7q9iy7x1G1dA==/874261277663637244.jpg" border="0" width="240" height="151" alt="F200706201012201786021033  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/SXMm1tPjEJ7q9iy7x1G1dA==/874261277663637244.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012192619241043]]></title>	
    <link>http://img.blog.163.com/photo/jJGdRN-qHgp2Rc3cF7ms7w==/2595199285272564065.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/jJGdRN-qHgp2Rc3cF7ms7w==/2595199285272564065.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/jJGdRN-qHgp2Rc3cF7ms7w==/2595199285272564065.jpg" border="0" width="240" height="156" alt="F200706201012192619241043  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/jJGdRN-qHgp2Rc3cF7ms7w==/2595199285272564065.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012191620364533]]></title>	
    <link>http://img.blog.163.com/photo/8fq-5uRsoLcsvnDUXrqBpw==/3435683565730587703.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/8fq-5uRsoLcsvnDUXrqBpw==/3435683565730587703.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/8fq-5uRsoLcsvnDUXrqBpw==/3435683565730587703.jpg" border="0" width="240" height="148" alt="F200706201012191620364533  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/8fq-5uRsoLcsvnDUXrqBpw==/3435683565730587703.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012188333225442]]></title>	
    <link>http://img.blog.163.com/photo/tBJ1j4pFLuzvY5OLoKfZgw==/3453135014286771320.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/tBJ1j4pFLuzvY5OLoKfZgw==/3453135014286771320.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/tBJ1j4pFLuzvY5OLoKfZgw==/3453135014286771320.jpg" border="0" width="240" height="156" alt="F200706201012188333225442  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/tBJ1j4pFLuzvY5OLoKfZgw==/3453135014286771320.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012185616233201]]></title>	
    <link>http://img.blog.163.com/photo/nyhWsGJICqNhGLlnrDbTtA==/1414130282994691646.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/nyhWsGJICqNhGLlnrDbTtA==/1414130282994691646.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/nyhWsGJICqNhGLlnrDbTtA==/1414130282994691646.jpg" border="0" width="240" height="150" alt="F200706201012185616233201  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/nyhWsGJICqNhGLlnrDbTtA==/1414130282994691646.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:44 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[相片:  F200706201012185016240421]]></title>	
    <link>http://img.blog.163.com/photo/7lL7O2kRW4reyqLc9uqjiQ==/2053359955104664088.jpg</link>
    <description><![CDATA[<div>
	<a href="http://img.blog.163.com/photo/7lL7O2kRW4reyqLc9uqjiQ==/2053359955104664088.jpg" target="_blank">
	<img src="http://img.blog.163.com/photo/7lL7O2kRW4reyqLc9uqjiQ==/2053359955104664088.jpg" border="0" width="240" height="156" alt="F200706201012185016240421  Come on!"/>
	</a><br/><br/>
</div>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">http://img.blog.163.com/photo/7lL7O2kRW4reyqLc9uqjiQ==/2053359955104664088.jpg</guid>
    <pubDate>Sun, 8 Jun 2008 02:31:08 +0800</pubDate>
    <dcterms:modified>2008-06-08T02:31:08+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  设计]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069093084074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.w3cpro.cn/" target="_blank">Web标准设计</a>
	</li>

	<li>
	<a href="http://www.celiacalle.com/" target="_blank">Caution Boys & Girls</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069093084074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:56:16 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:56:16+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  工具]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069092080074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.wotsit.org/" target="_blank">查看文件后缀</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069092080074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:48:28 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:48:28+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  人脸识别]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069092083074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://cobweb.ecn.purdue.edu/~aleix/" target="_blank">Aleix M. Martinez</a>
	: 一位研究人脸识别的科学家，提供人脸识别数据库</li>

	<li>
	<a href="http://www.face-rec.org/" target="_blank">人脸识别主页</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069092083074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:46:35 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:46:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  资料]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069092087074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0402chong2/index.html#4" target="_blank">DB2 UDB 连通性快捷表: 第 5 部分</a>
	</li>

	<li>
	<a href="http://hi.baidu.com/lecherline/blog/item/1f9f3a4cdca56ff8d62afc70.html" target="_blank">C#程序实现动态调用DLL的研究</a>
	</li>

	<li>
	<a href="http://www.cctv.com/lm/131/61/85875.html" target="_blank">量子力学</a>
	: 量子物理学的实验与哲学基础 安东·泽林格</li>

	<li>
	<a href="http://blog.sina.com.cn/u/499e9764010004x6" target="_blank">php+IIS配置</a>
	</li>

	<li>
	<a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/d70e796a-c2b9-4849-837b-dd5d93f12f33.mspx?mfr=true" target="_blank">运行 Windows Script Host</a>
	</li>

	<li>
	<a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/14622133-ced5-4ad4-a898-73b8f2b654f3.mspx?mfr=true" target="_blank">执行常见命令行任务的新方法</a>
	: 批处理中的call命令</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069092087074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:44:15 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:44:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  书籍]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069083081074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="Operating System" target="_blank">操作系统</a>
	</li>

	<li>
	<a href="http://books.elsevier.com/companions/1558605827/more_bloopers.asp" target="_blank">GUI设计禁忌</a>
	</li>

	<li>
	<a href="http://www.woodpecker.org.cn/diveintopython/" target="_blank">Phyon研究</a>
	</li>

	<li>
	<a href="http://doc.chinahtml.com/Manual/Python/tut/" target="_blank">Phyon 手册</a>
	</li>

	<li>
	<a href="http://www.cs.ucr.edu/~rhyde/articles.htm" target="_blank">The Art of Assembly Language Programming</a>
	: 汇编语言程序设计的艺术</li>

	<li>
	<a href="http://learning.sohu.com/7/0604/41/column220414127.shtml" target="_blank">杰克.韦尔奇自传</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069083081074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:39:47 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:39:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  娱乐]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069083085074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://post.baidu.com/f?kz=109333786" target="_blank">初级侦探学校</a>
	</li>

	<li>
	<a href="http://www.ghljj.com/?open=http://www.ghljj.com/stargate/index.htm" target="_blank">星际之门资料</a>
	</li>

	<li>
	<a href="http://lib.verycd.com/2004/12/02/0000028788.html" target="_blank">星际之门SG1全集下载</a>
	: 里面有各季的链接</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069083085074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:38:32 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:38:32+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  数学]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069083087074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://51mm.whut.edu.cn/maths/download.htm" target="_blank">武汉理工大学数学建模协会</a>
	: 里面有一些MATLAB数学建模的资料</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069083087074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:37:05 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:37:05+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  牛人]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087085069082081074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.10kb.net/kb/default.asp" target="_blank">小明</a>
	: Flex,Actionscript,FMS</li>

	<li>
	<a href="www.icebin.net" target="_blank">IceBin's Blog</a>
	</li>

	<li>
	<a href="http://blog.ezse.com" target="_blank">Shawn's Blog</a>
	</li>

	<li>
	<a href="http://www.zhuoqun.net/default.asp?CateID=8&page=3" target="_blank">Dreamer's Blog</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087085069082081074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:35:10 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:35:10+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[web:  程序设计]]></title>	
    <link>http://hydra1983.blog.163.com/prevResource.do?selectId=fks_087071081087080068087086074066085087086070084085081</link>
    <description><![CDATA[<ul>
	<li>
	<a href="http://www.codeplex.com/entlib" target="_blank">patterns & practices – Enterprise Librar</a>
	: The patterns & practices Enterprise Library is a library of application blocks designed to assist developers with common enterprise development challenges.</li>

	<li>
	<a href="http://www2.zzu.edu.cn/qwfw/hbyycai/index.htm" target="_blank">汇编语言程序设计</a>
	</li>

	<li>
	<a href="http://book.csdn.net/bookfiles/110/index.html" target="_blank">JavaScript高级程序设计</a>
	</li>
</ul>]]></description>
	    <author><![CDATA[hydra1983]]></author>
    <guid isPermaLink="false">collection/static/fks_087071081087080068087086074066085087086070084085081</guid>
    <pubDate>Fri, 6 Jul 2007 00:32:09 +0800</pubDate>
    <dcterms:modified>2007-07-06T00:32:09+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>