<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/fayaadev" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/fayaadev" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 12 Nov 2009 01:56:39 GMT</lastBuildDate><title>我要发芽</title><description>发芽网开发记录</description><link>http://www.2maomao.com/blog</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Thu, 12 Nov 2009 06:25:23 GMT</pubDate><item><title>代码发芽网重新支持临时代码</title><link>http://www.2maomao.com/blog/code-fayaa-anonymous-again/</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://fayaa.com/code/&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/uploads/code_fayaa_anony.png&quot; alt=&quot;代码发芽网新界面&quot; title=&quot;代码发芽网新界面&quot; width=&quot;537&quot; height=&quot;291&quot; class=&quot;alignnone size-full wp-image-1266&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(上上周做的了，直到今天才有时间写）&lt;/p&gt;
&lt;p&gt;代码发芽网改版以后，&lt;a href=&quot;http://www.2maomao.com/blog/fayaa-codee-update-and-other/&quot;&gt;把临时高亮代码的支持去掉了&lt;/a&gt;，也就是说，不管你有没有登录，所有的代码都会发布，别人也看得到&lt;/p&gt;
&lt;p&gt;当时考虑的情况是：保不保存都没关系，因为用来高亮的代码都是要贴到网上的，给出了“高亮不保存”按钮反而添乱。&lt;/p&gt;
&lt;p&gt;然后有朋友在贴了代码以后，写信给我要求删除；如是者三，我也纳闷，跟其中一位朋友聊聊为啥，才知道有时候贴代码是在本地用的，并不想公开。&lt;/p&gt;
&lt;p&gt;想了又想，决定还是尊重用户的选择；为了区分，我加上了一个“临时自用，请不要保存”的选项。&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Fcode-fayaa-anonymous-again%2F&amp;amp;linkname=%E4%BB%A3%E7%A0%81%E5%8F%91%E8%8A%BD%E7%BD%91%E9%87%8D%E6%96%B0%E6%94%AF%E6%8C%81%E4%B8%B4%E6%97%B6%E4%BB%A3%E7%A0%81&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/295508198/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/code-fayaa-anonymous-again/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/295508198/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/295508198/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/code-fayaa-anonymous-again/feed/</wfw:commentRss><description>(上上周做的了，直到今天才有时间写）
代码发芽网改版以后，把临时高亮代码的支持去掉了，也就是说，不管你有没有登录，所有的代码都会发布，别人也看得到
当时考虑的情况是：保不保...&lt;img src=&quot;http://www1.feedsky.com/t1/295508198/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/code-fayaa-anonymous-again/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/295508198/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/295508198/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><pubDate>Thu, 12 Nov 2009 09:56:39 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/code-fayaa-anonymous-again/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1237</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/code-fayaa-anonymous-again/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/295508198/5187098</fs:itemid></item><item><title>一道老面试题 - 为什么镜子可以颠倒左右却不能颠倒上下？</title><link>http://www.2maomao.com/blog/interview-question-mirror-reverse/</link><content:encoded>&lt;p&gt;题目描述如下：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/view/155/&quot;&gt; 题酷发芽网#155：想象你在镜子前，请问，为什么镜子中的影像可以颠倒左右，却不能颠倒上下？&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这道题目其实有很大的迷惑性，面试官是在考察你的逻辑思维能力&lt;/p&gt;
&lt;p&gt;有两种答案如下：&lt;br /&gt;
1. 因为人的眼睛是左右对称的，而不是上下对称得（这个是有问题的，闭上一只眼，还是同样的结果）&lt;br /&gt;
2. 因为镜子里面人的左右是反的，上下是正的（等于把题目重复了一遍）&lt;/p&gt;
&lt;p&gt;事实上我也想不到一个很好的回答，只把&lt;a href=&quot;http://fayaa.com/tiku/view/155/#ans262&quot;&gt;一条条的想法&lt;/a&gt;列在下面，欢迎讨论&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;镜子里的影像的“左右”，如果相对于站在镜子前的人来说，根本没有变化，左还是左，右还是右。所以所谓颠倒的&lt;strong&gt;左右&lt;/strong&gt;，是指镜子里的人的左右跟现实中的人的左右相反&lt;/li&gt;
&lt;li&gt;只要镜子放置的位置，能够对于某个参考坐标系“&lt;strong&gt;取反&lt;/strong&gt;”就会产生“&lt;strong&gt;颠倒&lt;/strong&gt;”的效果&lt;/li&gt;
&lt;li&gt;所以我觉得是参照物的不同，上下的参照物是地心，左右的参照物是人的中心&lt;/li&gt;
&lt;li&gt;对于站在镜子前的情况，地心并未被取反（因为地心跟镜子在同一个平面上）。题目还是有限制的“&lt;strong&gt;你在镜子前&lt;/strong&gt;”，否则如果你&lt;strong&gt;站在镜子上，或者把镜子顶在头上，镜子就能颠倒上下&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;实际上，严格来说，只要镜子稍微偏离一点点，使得地心跟镜子不在同一平面，镜子就能颠倒上下，站在镜子上和头顶着镜子只是一个人能够清楚感受这一点的特例&lt;/li&gt;
&lt;li&gt;但是由于“左旋”跟“右旋”始终是镜像关系，所以左右始终是能颠倒的，不论怎么摆放&lt;/li&gt;
&lt;/ol&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Finterview-question-mirror-reverse%2F&amp;amp;linkname=%E4%B8%80%E9%81%93%E8%80%81%E9%9D%A2%E8%AF%95%E9%A2%98%20-%20%E4%B8%BA%E4%BB%80%E4%B9%88%E9%95%9C%E5%AD%90%E5%8F%AF%E4%BB%A5%E9%A2%A0%E5%80%92%E5%B7%A6%E5%8F%B3%E5%8D%B4%E4%B8%8D%E8%83%BD%E9%A2%A0%E5%80%92%E4%B8%8A%E4%B8%8B%EF%BC%9F&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988798/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/interview-question-mirror-reverse/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988798/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988798/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/interview-question-mirror-reverse/feed/</wfw:commentRss><description>题目描述如下：
 题酷发芽网#155：想象你在镜子前，请问，为什么镜子中的影像可以颠倒左右，却不能颠倒上下？
这道题目其实有很大的迷惑性，面试官是在考察你的逻辑思维能力
有两种答案...&lt;img src=&quot;http://www1.feedsky.com/t1/294988798/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/interview-question-mirror-reverse/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988798/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988798/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><pubDate>Wed, 11 Nov 2009 08:32:36 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/interview-question-mirror-reverse/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1247</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/interview-question-mirror-reverse/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988798/5187098</fs:itemid></item><item><title>网站图标在线生成工具 - Ever the best online favicon creator(Beta)</title><link>http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/</link><content:encoded>&lt;p&gt;最近几天搞装修，七拼八凑买到了一个不到五十平的蜗居，暂时先用着吧&lt;br /&gt;
等老子有钱了，哼哼&amp;#8230;买它两个五十平的，一个留着住，一个拆着玩儿 &lt;img src='http://www.2maomao.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;资金不足的情况下，只能够自己张罗装修得大部分，一个字：忙！&lt;/p&gt;
&lt;p&gt;所以这个工具写好一周了，直到今天才有时间把它介绍给大家&lt;/p&gt;
&lt;p&gt;下面请我们以隆重的掌声欢迎这份给祖国大妈六十周年庆典的献礼。。。啪啦啪啦&lt;br /&gt;
（路人甲：这也能献礼，这不是欺负人家不能拒绝嘛。。。）&lt;/p&gt;
&lt;p&gt;这是一个工具&lt;br /&gt;
这是一个制作图标的工具&lt;br /&gt;
这是一个制作网站图标favicon的工具&lt;br /&gt;
这是一个&lt;strong&gt;专门制作网站图标favicon的免费在线工具&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;好吧，废话不多说，关门，放图片：&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tool/favicon/&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/uploads/favicon_beta.jpg&quot; alt=&quot;favicon_beta&quot; title=&quot;favicon_beta&quot; width=&quot;400&quot; height=&quot;324&quot; class=&quot;alignnone size-full wp-image-1224&quot; /&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;列一下这个&lt;a href=&quot;http://fayaa.com/tool/favicon/&quot;&gt;网站图标(favicon)在线工具&lt;/a&gt;的功能：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. 支持铅笔、刷子、直线、方框、填充、魔棒填充（不大容易介绍，自己研究一下就行了）等工具&lt;br /&gt;
2. 可以移动整个图片，还有方便的吸管工具&lt;br /&gt;
3. 随时可以清除重来，还可以无限回退所有改动操作&lt;br /&gt;
4. 支持透明色（就是背后是那种棋格图案的地方）&lt;br /&gt;
5. 支持所有主流浏览器：IE/Firefox/Chrome/Safari&lt;/p&gt;
&lt;p&gt;实际上，由于功能实在太过于简单，直接去试试就行了，只要记得工具栏最右边的图标是保存并下载就行&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;后续开发计划&lt;/strong&gt;&lt;br /&gt;
准备这一个月有时间的话，看一下flash和AS3，用它来实现一些图片处理的功能&lt;/p&gt;
&lt;p&gt;后续的功能主要有：&lt;/p&gt;
&lt;p&gt;1. 从图片导入图标：上除图片或者打开web图片，图片放缩成16&amp;#215;16，然后开始&lt;br /&gt;
2. 从已有的网站图标开始创作：输入网址，导入其favicon&lt;br /&gt;
3. 生成的图标可以在线共享，在发芽网上永久保留&lt;br /&gt;
4. 从已有的图片导入调色板&lt;br /&gt;
5. 更大更好更全：支持创建32&amp;#215;32的icon，支持渐变色，支持创建光标文件(.cur)，支持创建动态光标。。。&lt;/p&gt;
&lt;p&gt;我很清楚，这些计划里面的大多数都会泡汤，兴趣的转移总是很快的&lt;/p&gt;
&lt;p&gt;还没有失去兴趣之前，能做多少做多少吧&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;strong&gt;实现细节&lt;/strong&gt;&lt;br /&gt;
好了，王婆自夸结束，说一下实现细节：&lt;br /&gt;
1. 前端就不说了，就是js+css&lt;br /&gt;
2. 后端使用python做的一个array to ico的工具，代码共享在&lt;a href=&quot;http://fayaa.com/code/&quot;&gt;代码发芽网&lt;/a&gt;上了，有兴趣的自己&lt;a href=&quot;http://fayaa.com/code/view/6094/&quot;&gt;去看看&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;关于浏览器的不兼容，前面已经抱怨过了，这次忍不住又出来抱怨一下：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;先说说IE&lt;/strong&gt;: 速度慢，贼慢，现在还没有时间调performance，不知道到底是啥原因。&lt;br /&gt;
另外，它支持设置css的background-position属性，但是不支持获取这个属性。&lt;br /&gt;
要想获取的时候，必须先要得到background-position-x，再得到background-position-y，然后组合起来。。。&lt;/p&gt;
&lt;p&gt;相关讨论参见：&lt;a href=&quot;http://stackoverflow.com/questions/594870/fix-for-background-position-in-ie&quot;&gt;Fix for background-position in IE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;再说说Firefox&lt;/strong&gt;: 速度适中，但是不能直接设置和获取background-position-x/y。&lt;br /&gt;
写多了web页面的人都知道css sprite是怎么回事吧，不能用直接设置、获取-x/y，意味着你先要获取background-position，然后通过字符串解析出x和y，然后改变其中一个值，再组合起来设置回去。。。&lt;/p&gt;
&lt;p&gt;相关讨论参见：&lt;a href=&quot;http://commadot.com/background-position-y-firefox-fails/&quot;&gt;Background-position-y, firefox-fails!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;最后说说Chrome&lt;/strong&gt;: 速度飞快，流畅的就像本地程序一样，支持background-position，也支持单独的-x/y。似乎一切都很完美。&lt;/p&gt;
&lt;p&gt;但是当我把鼠标光标变成自定义光标(cursor属性)的时候，比如油漆桶工具，鼠标就得用个油漆桶样式的，鼠标的焦点(hotspot)就在油漆桶下面的尖尖上，但是这个hotspot的设置在chrome下是没有用的，它会固执的认为(0,0)才是真正的hotspot！&lt;/p&gt;
&lt;p&gt;而且，不同于前面说的IE和Firefox的bug，没有办法可以绕过。&lt;/p&gt;
&lt;p&gt;对于方框和划线工具来说，这是很不爽的-鼠标点击了的某个格子，实际却作用在了左上角的格子上&amp;#8230;&lt;br /&gt;
无奈之下，只好写了一段代码判断浏览器，对于Chrome进行特殊处理，用系统的cursor来代替。。。&lt;/p&gt;
&lt;p&gt;关于这个bug的相关讨论参见：&lt;br /&gt;
 &lt;a href=&quot;http://code.google.com/p/chromium/issues/detail?id=12244&quot;&gt;Issue 12244: cursor:url(*.cur) does not respect hotspot&lt;/a&gt;&lt;br /&gt;
 &lt;a href=&quot;http://code.google.com/p/chromium/issues/detail?id=1446&quot;&gt;Issue 1446: hand cursor&amp;#8217;s hot spot is misplaced&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;简单的应用，居然引出这么多的浏览器bug，说明准守w3c css3的标准是多么重要啊&amp;#8230;日！&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Fthe-best-online-favicon-creator-beta%2F&amp;amp;linkname=%E7%BD%91%E7%AB%99%E5%9B%BE%E6%A0%87%E5%9C%A8%E7%BA%BF%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7%20-%20Ever%20the%20best%20online%20favicon%20creator%28Beta%29&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988799/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988799/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988799/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/feed/</wfw:commentRss><description>最近几天搞装修，七拼八凑买到了一个不到五十平的蜗居，暂时先用着吧
等老子有钱了，哼哼&amp;#8230;买它两个五十平的，一个留着住，一个拆着玩儿  
资金不足的情况下，只能够自己张罗装修得...&lt;img src=&quot;http://www1.feedsky.com/t1/294988799/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988799/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988799/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>思维像发情的猴子</category><category>发芽网开发记录</category><pubDate>Fri, 16 Oct 2009 08:28:41 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1223</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/the-best-online-favicon-creator-beta/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988799/5187098</fs:itemid></item><item><title>在题库发芽网上试用了Google Ajax Search API</title><link>http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/view/56/&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/uploads/fayaa_tiku_and_google_ajax_api.png&quot; alt=&quot;fayaa_tiku_and_google_ajax_api&quot; title=&quot;题酷发芽网的相关题目&quot; width=&quot;287&quot; height=&quot;322&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网&lt;/a&gt;在每个题目页面的右侧边栏底端都可以看到相关题目，这是最近对Google Ajax Search API的一次尝试。&lt;/p&gt;
&lt;p&gt;插播一条广告：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;欢迎订阅&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网&lt;/a&gt;的两个RSS： &lt;a href=&quot;http://feed.feedsky.com/tikutees&quot;&gt;最新题目&lt;/a&gt; &amp;#038;  &lt;a href=&quot;http://feed.feedsky.com/tikuanswers&quot;&gt;最新回答&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;关于&lt;a href=&quot;http://code.google.com/apis/ajaxsearch/&quot;&gt;Google Ajax Search API&lt;/a&gt;，不多说，自己看链接里面的内容，或者简单理解为：&lt;strong&gt;让你的网站都可以拥有Google那样快的搜索速度！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当然，&lt;strong&gt;前提&lt;/strong&gt;是：Google索引了你网站的内容，而且是最新的，这个好办，做个sitemap就行了，有了这个，Googlebot抓的很勤劳的，Django自带了一个sitemap组件，很好用&lt;/p&gt;
&lt;p&gt;另外，在&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题库发芽网&lt;/a&gt;的首页上，你可以看到右上方有个小小的搜索框，在里面输入“&lt;strong&gt;球&lt;/strong&gt;”然后回车，你就来到了题酷搜索&lt;a href=&quot;http://fayaa.com/tiku/search/球/&quot;&gt;结果页面&lt;/a&gt;里面，上面啥也没有，但是在右侧边栏最下面，你可以看到许多结果。&lt;/p&gt;
&lt;p&gt;你还可以试试在那个Google搜索框里输入想搜索的内容，呵呵实时相应的哦。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;另外&lt;/strong&gt;： 如果你在&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题库发芽网&lt;/a&gt;上发过帖子的话，可能会注意到那里也有Ajax应用 - 比如你可以输入“二叉树”，然后按Tab把焦点挪到内容输入框，就会出现已经存在的相关问题列表，主要用来防止重复发文。&lt;/p&gt;
&lt;p&gt;这个也是仿&lt;a href=&quot;http://stackoverflow.com&quot;&gt;Stackoverflow&lt;/a&gt;的功能，Stackoverflow针对的是英文内容，只要mysql端支持full text search就可以做到，但是对于中文内容来说，还需要分词以及mysql中文匹配插件，做起来很费劲，就暂时用Google Ajax API替代了。&lt;/p&gt;
&lt;p&gt;最后，关门，放代码：&lt;/p&gt;
&lt;div style=&quot;background:#fdfdfd;color:black;&quot;&gt;&lt;u&gt;JavaScript语言&lt;/u&gt;: &lt;a href=&quot;http://fayaa.com/code/view/4569/&quot;&gt;打算用在题库发芽网中的：基于Google API搜索同类内容&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;source&quot; style=&quot;font-family: Consolas, 'Lucida Console', 'Courier New'; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); &quot;&gt; &lt;span style=&quot;color: rgb(136, 136, 136); &quot;&gt;/*&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(136, 136, 136); &quot;&gt;*&amp;nbsp; How to load jQuery and then use the Search API with it.&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(136, 136, 136); &quot;&gt;*/&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;google&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;load&lt;/span&gt;(&lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;jquery&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(136, 136, 136); &quot;&gt;// on page load complete, fire off a jQuery json-p query&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(136, 136, 136); &quot;&gt;// against Google web search&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;OnLoad&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;(){&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;url&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;http://ajax.googleapis.com/ajax/services/search/web?q=华容道游戏%20site:fayaa.com/code/view/&amp;amp;v=1.0&amp;amp;rsz=large&amp;amp;callback=?&amp;quot;&lt;/span&gt;;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;getJSON&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;function&lt;/span&gt; (&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;data&lt;/span&gt;) &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;responseData&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;responseData&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;length&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 221); font-weight: bold; &quot;&gt;0&lt;/span&gt;) &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;responseData&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt;;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;html&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 221); font-weight: bold; &quot;&gt;0&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;length&lt;/span&gt;;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;++&lt;/span&gt;) &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-weight: bold; &quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;r&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;results&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;];&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;html&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+=&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;#39;&amp;lt;a href=&amp;quot;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;url&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;#39;&amp;quot; title=&amp;quot;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;replace&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 136, 0); background-color: rgb(255, 240, 255); &quot;&gt;/(&amp;lt;([^&amp;gt;]+)&amp;gt;)/ig&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;#39;&amp;quot;&amp;gt;&amp;#39;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;title&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;}&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(221, 34, 0); background-color: rgb(255, 240, 240); &quot;&gt;&amp;#39;#content&amp;#39;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;html&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;html&lt;/span&gt;);&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;}&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;});&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;google&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;setOnLoadCallback&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;OnLoad&lt;/span&gt;);&lt;/div&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Ftiku-and-google-ajax-search-api%2F&amp;amp;linkname=%E5%9C%A8%E9%A2%98%E5%BA%93%E5%8F%91%E8%8A%BD%E7%BD%91%E4%B8%8A%E8%AF%95%E7%94%A8%E4%BA%86Google%20Ajax%20Search%20API&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988800/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988800/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988800/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/feed/</wfw:commentRss><description>题酷发芽网在每个题目页面的右侧边栏底端都可以看到相关题目，这是最近对Google Ajax Search API的一次尝试。
插播一条广告：
欢迎订阅题酷发芽网的两个RSS： 最新题目 &amp;#038;  最新回答

关于Goog...&lt;img src=&quot;http://www1.feedsky.com/t1/294988800/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988800/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988800/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><category>编程随笔</category><pubDate>Mon, 14 Sep 2009 08:25:09 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1139</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/tiku-and-google-ajax-search-api/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988800/5187098</fs:itemid></item><item><title>面试题之链表问题汇总 - 倒转单链表 / 有环链表 / 倒数第k元素 / …</title><link>http://www.2maomao.com/blog/interview-questions-about-linked-list/</link><content:encoded>&lt;p&gt;现在插播一条广告：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;欢迎订阅&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网&lt;/a&gt;的两个RSS： &lt;a href=&quot;http://feed.feedsky.com/tikutees&quot;&gt;最新题目&lt;/a&gt; &amp;#038;  &lt;a href=&quot;http://feed.feedsky.com/tikuanswers&quot;&gt;最新回答&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;关于链表问题的面试题目如下：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/view/5/&quot;&gt;面试题之链表问题 - 倒转单链表&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/6/&quot;&gt;找出倒数第k个元素(或中间元素）&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/53/&quot;&gt;二级链表展开&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/49/&quot;&gt;链表加法运算&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/44/&quot;&gt;删除环状单链表的一个节点&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/17/&quot;&gt;两个有序链表的合并&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/8/&quot;&gt;如何判断两个链表是否交叉&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/7/&quot;&gt;判断单链表是否有环？&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/57/&quot;&gt;求两个有序链表的交集&lt;/a&gt;&lt;br/&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;最新结果参见：&lt;a href=&quot;http://fayaa.com/tiku/tag/%E9%93%BE%E8%A1%A8/&quot;&gt;题酷发芽网上标签为“链表”的题目&lt;/a&gt;&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Finterview-questions-about-linked-list%2F&amp;amp;linkname=%E9%9D%A2%E8%AF%95%E9%A2%98%E4%B9%8B%E9%93%BE%E8%A1%A8%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB%20-%20%E5%80%92%E8%BD%AC%E5%8D%95%E9%93%BE%E8%A1%A8%20%2F%20%E6%9C%89%E7%8E%AF%E9%93%BE%E8%A1%A8%20%2F%20%E5%80%92%E6%95%B0%E7%AC%ACk%E5%85%83%E7%B4%A0%20%2F%20%26%238230%3B&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988801/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/interview-questions-about-linked-list/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988801/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988801/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/interview-questions-about-linked-list/feed/</wfw:commentRss><description>现在插播一条广告：
欢迎订阅题酷发芽网的两个RSS： 最新题目 &amp;#038;  最新回答

关于链表问题的面试题目如下：
面试题之链表问题 - 倒转单链表
找出倒数第k个元素(或中间元素）
二级链表展...&lt;img src=&quot;http://www1.feedsky.com/t1/294988801/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/interview-questions-about-linked-list/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988801/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988801/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>一些链接</category><category>发芽网开发记录</category><pubDate>Fri, 11 Sep 2009 08:50:25 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/interview-questions-about-linked-list/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1159</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/interview-questions-about-linked-list/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988801/5187098</fs:itemid></item><item><title>牛b的比特流</title><link>http://www.2maomao.com/blog/niubi-bitwise-operations/</link><content:encoded>&lt;p&gt;你知道下面这段代码干了啥吗？&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;a ^= b&lt;br /&gt;
b ^= a&lt;br /&gt;
a ^= b&lt;br /&gt;
&lt;/code&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;如果你碰巧知道，那么 &lt;strong&gt;x^-x&lt;/strong&gt; 呢？WTF~!&lt;/p&gt;
&lt;p&gt;冯.诺依曼计算机中，程序无论编成什么样子，最终都会变成一堆堆的0和1，也是因为这样，对于bit操作的研究，一直都没有停歇，已知的很多优秀的算法实现，都用到了bit操作&lt;/p&gt;
&lt;p&gt;一般的语言，比如python或者C(++)都支持 &lt;strong&gt;与&amp;amp; 或| 异或^ 反~&lt;/strong&gt; 操作。这四种基本操作的意义这里就不说了(关于完备性，参见离散数学)，通常我们还会用到 &amp;lt;&amp;lt; 以及 &amp;gt;&amp;gt; 操作，分别表示把bits向左、右移位。另外，所有加减乘除的操作，内部同样是bit搞来搞去。&lt;/p&gt;
&lt;p&gt;你可能见过这种代码： a&amp;gt;&amp;gt;=1 ，这个是干嘛的，仔细想想就明白了，这是除二操作，比直接除法运算要高效一些，同理，乘以2就是a&amp;lt;&amp;lt;=1&lt;/p&gt;
&lt;p&gt;或许你还见过这个：(UINT)-1 ，这是啥？翻开计算机基础教材看看补码那一节就知道了。这是win32编程常用的小手段，代表0xFFFFFFFF&lt;/p&gt;
&lt;p&gt;还有&lt;strong&gt;异或&lt;/strong&gt;操作，这个操作自己就可以组合出其他所有逻辑操作！因为他是完备的。它还有一个非常非常有趣的性质：&lt;strong&gt;a^a = 0 &lt;/strong&gt;！&lt;/p&gt;
&lt;p&gt;回到文章开头的内容，那三行a和b异或来去的代码干了什么？&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;a ^= b //a=a^b, b=b&lt;br /&gt;
b ^= a //a=a^b, b=(a^b)^b=a&lt;br /&gt;
a ^= b //a=(a^b)^a=b, b=a&lt;br /&gt;
&lt;/code&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;到最后一行，可以看到，这三行代码完成了a和b的交换(swap)。有些公司面试的时候会问：知道怎么不用中间变量实现swap(a,b)吗？ok，你会了！恭喜你，学会抢答了！面试官脸色一变，随即抛出另一道题目：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;有一组数字，从1到n，中间少了一个数，顺序也被打乱，放在一个n-1的数组里，设计算法在O(n)时间O(1)空间内找出丢失的数字！&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;怎么办？&lt;br /&gt;
还好你学会了异或运算：ok，很简单，从1到n异或一遍，再从从数组里面异或一遍，最后的值就是那个丢失的数字&lt;/p&gt;
&lt;p&gt;面试官脸色再变，说数字丢失了两个，咋办？没想清楚的看&lt;a href=&quot;http://fayaa.com/tiku/view/2/&quot;&gt;这里&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;插播一条广告：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;欢迎订阅&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网&lt;/a&gt;的两个RSS： &lt;a href=&quot;http://feed.feedsky.com/tikutees&quot;&gt;最新题目&lt;/a&gt; &amp;#038;  &lt;a href=&quot;http://feed.feedsky.com/tikuanswers&quot;&gt;最新回答&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;好了，异或运算先说到这里就先打住，说说 x &amp;amp; -x 这个变态的数字吧，他是啥意思？你仔细演算了一遍发现，哦，原来是一个数字最后面那个1，比如x=b111111100，x &amp;amp; -x 就是b100 (这里的b表示binary，二进制)&lt;/p&gt;
&lt;p&gt;这有啥用？这时候下一个面试官进来了，再次抛出一道题目：&lt;a href=&quot;http://fayaa.com/tiku/view/47/&quot;&gt;找寻下一个“二进制1等量”数：&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;对于两个二进制数，如果他们的二进制表示中1的数目相等，我们称他们为“二进制1等量”的&lt;br /&gt;
给定一个数，设计一个算法F找出比它稍大的“二进制1等量”数&lt;br /&gt;
（稍大的意思是离它最近的那个）&lt;br /&gt;
比如：&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
3 = 0011&lt;br /&gt;
5 = 0101&lt;br /&gt;
F(3) = 5&lt;/p&gt;
&lt;p&gt;6 = 0110&lt;br /&gt;
F(5) = 6&lt;br /&gt;
...&lt;br /&gt;
&lt;/code&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;这可咋办？别急，通常面试官放出这种题目来，是看你有没有思路，别被题目吓住就行。&lt;br /&gt;
不过，我最终被答案吓住了，以下是求解的算法：&lt;/p&gt;
&lt;div class=&quot;source&quot; style=&quot;font-family: Consolas, 'Lucida Console', 'Courier New'; color: rgb(0, 0, 0); background-color: rgb(249, 247, 237); &quot;&gt; &lt;span style=&quot;color: rgb(0, 0, 128); font-weight: bold; &quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;snoob&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 128); font-weight: bold; &quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;x&lt;/span&gt;) &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;{&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 128); font-weight: bold; &quot;&gt;unsigned&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;smallest&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ripple&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ones&lt;/span&gt;;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// x = xxx0 1111 0000&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;smallest&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;x&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&amp;amp;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;x&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// 0000 0001 0000&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ripple&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;x&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;smallest&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// xxx1 0000 0000&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ones&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;x&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;^&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ripple&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// 0001 1111 0000&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ones&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;=&lt;/span&gt; (&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ones&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255); &quot;&gt;2&lt;/span&gt;)&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;smallest&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// 0000 0000 0111&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 128); font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ripple&lt;/span&gt; | &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;ones&lt;/span&gt;; &lt;span style=&quot;color: rgb(0, 136, 0); font-style: italic; &quot;&gt;// xxx1 0000 0111&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;感觉如何？反正我看到里面的二进制搞来搞去已经傻掉了。整个&lt;a href=&quot;http://fayaa.com/tiku/view/47/?sorting=-vote_count#sortbox&quot;&gt;求解过程可以参见这里&lt;/a&gt;，里面的分析相当精彩，不容错过。&lt;/p&gt;
&lt;p&gt;说到这里，比特&lt;strong&gt;流&lt;/strong&gt;，不再只是流水的那个&lt;strong&gt;流&lt;/strong&gt;，已经是“迎风一刀流”这样的&lt;strong&gt;流&lt;/strong&gt;了&lt;/p&gt;
&lt;p&gt;真别说，有个叫Henry S. Warren的家伙就专门研究了bit操作，还写了本书，叫做&lt;a href=&quot;http://www.hackersdelight.org/&quot;&gt;Hacker&amp;#8217;s Delight&lt;/a&gt;(翻译版叫做&lt;a href=&quot;http://www.douban.com/subject/1159177/&quot;&gt;《高效程序的奥秘》&lt;/a&gt;)，其中第3章（&lt;a href=&quot;http://www.hackersdelight.org/basics.pdf&quot;&gt;点击下载英文pdf&lt;/a&gt;）就详细而又完备的讲解了bit流，值得一看。上面那个找寻二进制“1”等价的问题在文章里有详细描述，他甚至指出了这个问题的现实意义 - 比如从N个数里面挑选K个，你可以从K个1开始，一直生成到K个1加上(N-K)个0为止，由于算法效率高，不需要递归，用起还是很爽的！（&lt;a href=&quot;http://fayaa.com/tiku/view/74/?sorting=-vote_count#sortbox&quot;&gt;参照阅读递归方式的X-Selection算法&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;该书中还提到：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;x &amp;amp; (x-1) 可以用来确定一个数是不是2的幂&lt;br /&gt;
x &amp;amp; (x+1) 可以判断一个数是不是2^n-1这种形式，也就是说，全都是1!&lt;br /&gt;
x | (x-1) 可以把x后面的所有0变成1，00101000 =&gt; 00101111&lt;br /&gt;
((x | (x-1)) + 1) &amp;#038; x 可以把最右边那一串1给抹了，01011000 =&gt; 01000000&lt;br /&gt;
x | (x+1) 可以把最右边的那个0变成1，10100111 =&gt; 10101111&lt;br /&gt;
&amp;#8230;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;等等等等，还有很多，好了，就此打住，想了解更多的自己看可以&lt;a href=&quot;http://www.hackersdelight.org/basics.pdf&quot;&gt;免费可以下载到的pdf样章&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;：有趣的是，发文24小时之内就读到一位朋友在Google Reader上面分享的文章：&lt;a href=&quot;http://www.catonmat.net/blog/bit-hacks-header-file/&quot;&gt;bithacks.h - bit hacks header file&lt;/a&gt;，里面定义了一堆的宏来做位操作：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;B8(x) - turns x written in binary into decimal,&lt;br /&gt;
B_EVEN(x) - tests if x is even (bithack #1),&lt;br /&gt;
B_ODD(x) - tests if x is odd (!(bithack #1)),&lt;br /&gt;
B_IS_SET(x, n) - tests if n-th bit is set in x (bithack #2),&lt;br /&gt;
B_SET(x, n) - sets n-th bit in x (bithack #3),&lt;br /&gt;
B_UNSET(x, n) - unsets n-th bit in x (bithack #4),&lt;br /&gt;
B_TOGGLE(x, n) - toggles n-th bit in x (bithack #5),&lt;br /&gt;
B_TURNOFF_1(x) - turns off the right-most 1-bit in x (bithack #6),&lt;br /&gt;
B_ISOLATE_1(x) - isolates the right-most 1-bit in x (bithack #7),&lt;br /&gt;
B_PROPAGATE_1(x) - propagates the right-most 1-bit in x (bithack #8),&lt;br /&gt;
B_ISOLATE_0(x) - isolates the right-most 0-bit in x (bithack #9),&lt;br /&gt;
B_TURNON_0(x) - turn on the right-most 0-bit in x (bithack #10).
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;我也把代码转贴了一下： &lt;a href=&quot;http://fayaa.com/code/view/5883/&quot;&gt;Bit Hacks Header File(bithacks.h)&lt;/a&gt; 和 &lt;a href=&quot;http://fayaa.com/code/view/5884/&quot;&gt;Bit Hacks Test Cases(bithacks_test.cpp)&lt;/a&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
好了，想继续研究的，附赠两个Link：&lt;br /&gt;
&lt;a href=&quot;http://graphics.stanford.edu/~seander/bithacks.html&quot;&gt;http://graphics.stanford.edu/~seander/bithacks.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.cs.bris.ac.uk/Teaching/Resources/COMS21102/slides-dan/&quot;&gt;http://www.cs.bris.ac.uk/Teaching/Resources/COMS21102/slides-dan/&lt;/a&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;呵呵文到最后，说两个关于自己的：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;br /&gt;
我的&lt;strong&gt;18位身份证&lt;/strong&gt;号码，&lt;strong&gt;1和0占据了14个&lt;/strong&gt;！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;br /&gt;
写这篇文章翻出两年前的旧文： &lt;a href=&quot;http://www.2maomao.com/blog/chinese-vs-english-2-vs-10/&quot;&gt;中文和英文哪个表达能力更强？二进制和十进制哪个更厉害？&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这篇文章是我2007年的得意之作，至今依然是，可惜很少有人感兴趣，特此自我推荐。&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Fniubi-bitwise-operations%2F&amp;amp;linkname=%E7%89%9Bb%E7%9A%84%E6%AF%94%E7%89%B9%E6%B5%81&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988802/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/niubi-bitwise-operations/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988802/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988802/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/niubi-bitwise-operations/feed/</wfw:commentRss><description>你知道下面这段代码干了啥吗？
a ^= b
b ^= a
a ^= b


如果你碰巧知道，那么 x^-x 呢？WTF~!
冯.诺依曼计算机中，程序无论编成什么样子，最终都会变成一堆堆的0和1，也是因为这样，对于bit操作的...&lt;img src=&quot;http://www1.feedsky.com/t1/294988802/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/niubi-bitwise-operations/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988802/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988802/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><category>编程随笔</category><pubDate>Thu, 10 Sep 2009 08:49:18 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/niubi-bitwise-operations/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1146</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/niubi-bitwise-operations/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988802/5187098</fs:itemid></item><item><title>Python语言: head.py 输出文件开头的8个字节的二进制表示</title><link>http://www.2maomao.com/blog/output-header-of-file-in-python/</link><content:encoded>&lt;p&gt;最近在写一个在线favicon编辑器，其ico格式很让人不爽，写了个工具生成ico格式的文件&lt;br /&gt;
为了手动检查生成结果，写了这个脚本检查其文件头内容：&lt;/p&gt;
&lt;div style=&quot;background:#fdfdfd;color:black;&quot;&gt;&lt;u&gt;Python语言&lt;/u&gt;: &lt;a href=&quot;http://fayaa.com/code/view/5861/&quot;&gt;head.py 输出文件开头的8个字节的二进制表示&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;source&quot; style=&quot;font-family: Consolas, 'Lucida Console', 'Courier New'; color: rgb(0, 0, 0); background-color: rgb(249, 247, 237); &quot;&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#! /usr/bin/env python&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;# -*- coding: utf-8 -*-&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;# Recently I start to write an ico file maker&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&amp;nbsp;&amp;nbsp; this script helps on analyze the file header&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;# Usage:&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&amp;nbsp;&amp;nbsp; head xxx.ico&amp;nbsp;&amp;nbsp;&amp;nbsp; - output 16 bytes&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&amp;nbsp;&amp;nbsp; head xxx.ico 32 - output 32 bytes&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(128, 128, 128); &quot;&gt;#&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(14, 132, 181); font-weight: bold; &quot;&gt;sys&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;f&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;open&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;sys&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;argv&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;],&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;rb&amp;quot;&lt;/span&gt;)&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;L&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;16&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;len&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;sys&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;argv&lt;/span&gt;) &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;L&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;int&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;sys&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;argv&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;])&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;read&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;L&lt;/span&gt;)&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;len&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;):&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;print&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;xbytes&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;background-color: rgb(224, 224, 224); &quot;&gt;%02x&lt;/span&gt;&lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;%&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;ord&lt;/span&gt;(b) &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; b &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;print&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;len&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;):&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;print&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;x &amp;quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;join&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;xbytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;])&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 96, 176); font-weight: bold; &quot;&gt;to_bits&lt;/span&gt;(b&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;):&lt;/span&gt;&lt;br /&gt; &amp;nbsp; bs &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[]&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;while&lt;/span&gt; b&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;:&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; bs&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;append&lt;/span&gt;(b&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;1&lt;/span&gt;)&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;&amp;gt;&amp;gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;1&lt;/span&gt;&lt;br /&gt; &amp;nbsp; bs &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;map&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; bs)&lt;br /&gt; &amp;nbsp; bs&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;reverse&lt;/span&gt;()&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;return&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;join&lt;/span&gt;(bs)&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;zfill&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;)&lt;/p&gt;
&lt;p&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;bits&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;to_bits&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;ord&lt;/span&gt;(b)) &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; b &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;]&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;print&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold; &quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;len&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 112, 32); &quot;&gt;bytes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;),&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;):&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style=&quot;color: rgb(0, 128, 0); font-weight: bold; &quot;&gt;print&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot;b &amp;quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;+&lt;/span&gt; &lt;span style=&quot;background-color: rgb(255, 240, 240); &quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;join&lt;/span&gt;(&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;bits&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(48, 48, 48); &quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 208); font-weight: bold; &quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); &quot;&gt;])&lt;/span&gt;&lt;/div&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Foutput-header-of-file-in-python%2F&amp;amp;linkname=Python%E8%AF%AD%E8%A8%80%3A%20head.py%20%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6%E5%BC%80%E5%A4%B4%E7%9A%848%E4%B8%AA%E5%AD%97%E8%8A%82%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E8%A1%A8%E7%A4%BA&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988803/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/output-header-of-file-in-python/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988803/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988803/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/output-header-of-file-in-python/feed/</wfw:commentRss><description>最近在写一个在线favicon编辑器，其ico格式很让人不爽，写了个工具生成ico格式的文件
为了手动检查生成结果，写了这个脚本检查其文件头内容：
Python语言: head.py 输出文件开头的8个字节的二进...&lt;img src=&quot;http://www1.feedsky.com/t1/294988803/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/output-header-of-file-in-python/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988803/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988803/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>小小工具</category><category>发芽网开发记录</category><pubDate>Wed, 09 Sep 2009 15:15:18 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/output-header-of-file-in-python/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1144</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/output-header-of-file-in-python/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988803/5187098</fs:itemid></item><item><title>题酷发芽网发布 - 精彩、经典IT面试题库、智力题库收集</title><link>http://www.2maomao.com/blog/tiku-is-online/</link><content:encoded>&lt;p&gt;&lt;span style=&quot;font-size:20px;font-weight:bold;&quot;&gt;挖哈哈，终于超过100个题啦！&lt;/span&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;&lt;img src=&quot;http://fayaa.com/static/images/logo/snap_tiku.gif&quot; alt=&quot;题酷发芽网&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网&lt;/a&gt;上线试用了一周以后，现在正式发布了！&lt;/p&gt;
&lt;p&gt;有啥用？多了去了：比如面试前回顾，比如面试人的时候拿抽几道题，又比如刚学了一门新语言想练练手。。。&lt;/p&gt;
&lt;p&gt;一些经典面试题如下：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;微软经典面试题&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/view/7/&quot;&gt;面试题之链表问题 - 判断单链表是否有环？&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/4/&quot;&gt;面试题 - 字符串两边对齐&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/81/&quot;&gt;传说中的微软面试题 - 飞机加油问题&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/29/&quot;&gt;聪明的囚犯抓豆子问题&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/7/&quot;&gt;面试题之链表问题 - 判断单链表是否有环？&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/6/&quot;&gt;面试题之链表问题 - 找出倒数第k个元素(或中间元素）&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/4/&quot;&gt;面试题 - 字符串两边对齐&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/3/&quot;&gt;面试题 - 原地倒转字符串&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/2/&quot;&gt;面试题 - 寻找丢失的数字&lt;/a&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google经典面试题&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fayaa.com/tiku/view/102/&quot;&gt;100*100部分有序矩阵数组的排序&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/101/&quot;&gt;25匹赛马血拼Top五&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://fayaa.com/tiku/view/40/&quot;&gt;整数0-n中&amp;quot;1&amp;quot;的个数&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:18px;font-weight:bold;&quot;&gt;更多面试题、经典编程算法题参见：&lt;a href=&quot;http://fayaa.com/tiku/&quot;&gt;题酷发芽网所有题目&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BTW&lt;/strong&gt;: 界面基本参照&lt;a href=&quot;http://StackOverflow.com&quot;&gt;StackOverflow.com&lt;/a&gt;，SO太让人敬仰了&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Ftiku-is-online%2F&amp;amp;linkname=%E9%A2%98%E9%85%B7%E5%8F%91%E8%8A%BD%E7%BD%91%E5%8F%91%E5%B8%83%20-%20%E7%B2%BE%E5%BD%A9%E3%80%81%E7%BB%8F%E5%85%B8IT%E9%9D%A2%E8%AF%95%E9%A2%98%E5%BA%93%E3%80%81%E6%99%BA%E5%8A%9B%E9%A2%98%E5%BA%93%E6%94%B6%E9%9B%86&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988804/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/tiku-is-online/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988804/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988804/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/tiku-is-online/feed/</wfw:commentRss><description>挖哈哈，终于超过100个题啦！



题酷发芽网上线试用了一周以后，现在正式发布了！
有啥用？多了去了：比如面试前回顾，比如面试人的时候拿抽几道题，又比如刚学了一门新语言想练练手。...&lt;img src=&quot;http://www1.feedsky.com/t1/294988804/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/tiku-is-online/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988804/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988804/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><pubDate>Thu, 03 Sep 2009 09:29:21 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/tiku-is-online/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1131</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/tiku-is-online/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988804/5187098</fs:itemid></item><item><title>更新发芽网到Django1.1，因为傻逼年年有，今年特别多</title><link>http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/</link><content:encoded>&lt;p&gt;今天忍不住把&lt;a href=&quot;http://fayaa.com/&quot;&gt;发芽网&lt;/a&gt;后台更新了到了&lt;a href=&quot;http://docs.djangoproject.com/en/dev/releases/1.1/&quot;&gt;Django1.1&lt;/a&gt;，不是因为这个更快更好，主要是因为有个傻逼，天天到&lt;a href=&quot;http://fayaa.com/code/&quot;&gt;代码发芽网&lt;/a&gt;上孜孜不倦的贴黄色网站链接，删帖删到手软&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fayaa.com/code/&quot;&gt;代码发芽网&lt;/a&gt;搞代码高亮的网站，留垃圾留言之前看看坑行不行？&lt;/p&gt;
&lt;p&gt;最最关键的是，这些标明了是“Sex Movie”以及“Adult Video”的链接，都他妈是不可访问的！！！&lt;br /&gt;
是可忍孰不可忍！挂掉他！！！&lt;/p&gt;
&lt;p&gt;这时候才发现，在Django原来自带的后台里，删除内容的时候只能一个个点开，一个个删&lt;/p&gt;
&lt;p&gt;这才想起来最近Django更新过，去碰碰运气看到了1.1版的后台已经支持批量删除了，说不定大家都被这样的傻逼惹毛了&lt;/p&gt;
&lt;p&gt;直接备份数据库，然后更新，批量删除&lt;/p&gt;
&lt;p&gt;另外又检查了一下，还有一堆内容不长过10个字符的帖子，都是匿名帖。&lt;/p&gt;
&lt;p&gt;日，没办法，空间有限，挥霍不起，在匿名发帖的时候加上了Captcha&lt;/p&gt;
&lt;p&gt;匿名发帖的朋友，对不住了，麻烦发帖前做一下简单的算术：个位数的加法，应该还行吧&lt;br /&gt;
实在觉得烦，注册并登陆一下就不用填了，5分钟不到的时间，一年都不用重新登录&lt;br /&gt;
如果不想注册又不想做算术又想要贴黄站链接，请直接来信交流，谢谢&lt;/p&gt;
&lt;p&gt;BTW1: 科技进步原来真是由色情推动的&lt;br /&gt;
BTW2: 4500个帖子里面有600个spam，真是无语了&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Ffayaa-now-django1dot1-for-bullshiters%2F&amp;amp;linkname=%E6%9B%B4%E6%96%B0%E5%8F%91%E8%8A%BD%E7%BD%91%E5%88%B0Django1.1%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%82%BB%E9%80%BC%E5%B9%B4%E5%B9%B4%E6%9C%89%EF%BC%8C%E4%BB%8A%E5%B9%B4%E7%89%B9%E5%88%AB%E5%A4%9A&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988805/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988805/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988805/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/feed/</wfw:commentRss><description>今天忍不住把发芽网后台更新了到了Django1.1，不是因为这个更快更好，主要是因为有个傻逼，天天到代码发芽网上孜孜不倦的贴黄色网站链接，删帖删到手软
代码发芽网搞代码高亮的网站，留...&lt;img src=&quot;http://www1.feedsky.com/t1/294988805/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988805/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988805/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><category>编程随笔</category><category>DJango</category><pubDate>Sun, 09 Aug 2009 15:09:16 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1107</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/fayaa-now-django1dot1-for-bullshiters/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988805/5187098</fs:itemid></item><item><title>代码发芽网高亮引擎更新了(版本：1.1dev_20090523)</title><link>http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/</link><content:encoded>&lt;p&gt;终于有时间把&lt;a href=&quot;http://fayaa.com/code/new/&quot;&gt;代码发芽网&lt;/a&gt;的高亮引擎Pygments到1.1dev_20090523版&lt;br /&gt;
支持的语言多了不少（已经支持&lt;strong&gt;164&lt;/strong&gt;种编程语言了，包括asp.net），效果还不错&lt;/p&gt;
&lt;p&gt;其他的更新包括：&lt;br /&gt;
. Firefox下右边滚动条时隐时现引起页面跳动的问题&lt;br /&gt;
. 编辑代码界面的改进（更高的编辑框等等）&lt;br /&gt;
. 添加了收藏按钮&lt;br /&gt;
 （就是页面右边靠着顶栏的那个长长的小按钮，来自addthis.com），以前用十八帮的，不知为何会引起页面混乱&lt;br /&gt;
. 修正了在Chrome浏览器下“代码评论打分按钮”布局混乱的问题&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;新添加的编程语言支持&lt;/strong&gt;&lt;br /&gt;
==================&lt;br /&gt;
 * Antlr/Ragel, thanks to Ana Nelson&lt;br /&gt;
 * (Ba)sh shell&lt;br /&gt;
 * Erlang shell&lt;br /&gt;
 * GLSL&lt;br /&gt;
 * Prolog&lt;br /&gt;
 * Evoque&lt;br /&gt;
 * Modelica&lt;br /&gt;
 * Rebol&lt;br /&gt;
 * MXML&lt;br /&gt;
 * Cython&lt;br /&gt;
 * ABAP&lt;br /&gt;
 * ASP.net (VB/C#)&lt;br /&gt;
 * Vala&lt;/p&gt;
&lt;p&gt;还包括一些bug fix，详见&lt;a href=&quot;http://dev.pocoo.org/projects/pygments/browser/CHANGES&quot;&gt;Pygments的Changelog&lt;/a&gt;&lt;/p&gt;
&lt;a class=&quot;a2a_dd addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.2maomao.com%2Fblog%2Fcode-fayaa-pygments-update-11de%2F&amp;amp;linkname=%E4%BB%A3%E7%A0%81%E5%8F%91%E8%8A%BD%E7%BD%91%E9%AB%98%E4%BA%AE%E5%BC%95%E6%93%8E%E6%9B%B4%E6%96%B0%E4%BA%86%28%E7%89%88%E6%9C%AC%EF%BC%9A1.1dev_20090523%29&quot;&gt;&lt;img src=&quot;http://www.2maomao.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; height=&quot;16&quot; alt=&quot;Share/Bookmark&quot;/&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/294988806/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988806/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988806/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/feed/</wfw:commentRss><description>终于有时间把代码发芽网的高亮引擎Pygments到1.1dev_20090523版
支持的语言多了不少（已经支持164种编程语言了，包括asp.net），效果还不错
其他的更新包括：
. Firefox下右边滚动条时隐时现引起页...&lt;img src=&quot;http://www1.feedsky.com/t1/294988806/fayaadev/feedsky/s.gif?r=http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/fayaadev/294988806/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/fayaadev/294988806/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>发芽网开发记录</category><pubDate>Sat, 23 May 2009 15:08:21 +0800</pubDate><author>半瓶墨水</author><comments>http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/#comments</comments><guid isPermaLink="false">http://www.2maomao.com/blog/?p=1079</guid><dc:creator>半瓶墨水</dc:creator><fs:srclink>http://www.2maomao.com/blog/code-fayaa-pygments-update-11de/</fs:srclink><fs:srcfeed>http://www.2maomao.com/blog/category/fayaa/feed</fs:srcfeed><fs:itemid>feedsky/fayaadev/~7078787/294988806/5187098</fs:itemid></item></channel></rss>