<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>baypm2014 (那笔小薪)</title>
    <link>https://ruby-china.org/baypm2014</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>已取消</title>
      <description>&lt;h4 id="工程生产力 - 测试开发工程师"&gt;工程生产力 - 测试开发工程师&lt;/h4&gt;&lt;h6 id="工作职责:"&gt;工作职责：&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;进行测试工具、测试技术、测试平台、产品研发测试过程等方面的创新，提升测试效率&lt;/li&gt;
&lt;li&gt;参与测试开发工程师的各项日常工作，践行工程师文化，提升测试团队专业技术能力&lt;/li&gt;
&lt;li&gt;深入理解公司业务流程，分析问题，设计系统并实现&lt;/li&gt;
&lt;li&gt;对技术有热情，持续学习，乐于熟悉新的技术产品&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="职位要求:"&gt;职位要求：&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;计算机相关专业，本科及以上学历&lt;/li&gt;
&lt;li&gt;扎实的编程能力和数据结构知识，熟练掌握 Java/go/python/ruby 中的至少一门语言&lt;/li&gt;
&lt;li&gt;有工具平台开发经验&lt;/li&gt;
&lt;li&gt;精通测试方案和方法的设计，熟悉业界主流测试模型、测试平台和工具&lt;/li&gt;
&lt;li&gt;有责任心、敢于担当，工作积极主动&lt;/li&gt;
&lt;li&gt;热爱互联网，对互联网相关业务或技术充满好奇及热情&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="坐标：杭州"&gt;坐标：杭州&lt;/h6&gt;&lt;h6 id="公司：涂鸦智能"&gt;公司：涂鸦智能&lt;/h6&gt;&lt;h4 id="有意向的朋友可以将简历发送到："&gt;有意向的朋友可以将简历发送到：&lt;/h4&gt;</description>
      <author>baypm2014</author>
      <pubDate>Wed, 05 Aug 2020 10:58:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/40234</link>
      <guid>https://ruby-china.org/topics/40234</guid>
    </item>
    <item>
      <title>涂鸦智能 - 工程生产力团队 - Java 工程师</title>
      <description>&lt;h4 id="职位Java开发工程师-工程生产力"&gt;职位 Java 开发工程师 - 工程生产力&lt;/h4&gt;&lt;h6 id="岗位职责："&gt;岗位职责：&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;负责公司内部中台的搭建维护，攻坚效能的提升，解决内部业务流转的流程问题；&lt;/li&gt;
&lt;li&gt;深入理解公司业务流程，分析问题，设计系统并实现；&lt;/li&gt;
&lt;li&gt;对技术有热情，持续学习，乐于熟悉新的技术产品。&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="岗位要求："&gt;岗位要求：&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;熟悉 Java 语言，对相关技术领域的开源产品有深入的理解；&lt;/li&gt;
&lt;li&gt;熟悉分布式、性能调优、缓存、消息、搜索等机制；&lt;/li&gt;
&lt;li&gt;熟悉 MySQL 等数据库中的一种或多种，有数据库调优经验，了解 MySQL 及相关分布式存储技术；&lt;/li&gt;
&lt;li&gt;思维清晰，头脑灵活，能独立分析并解决复杂的线上问题；&lt;/li&gt;
&lt;li&gt;2 年以上 Java 相关的开发经验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="加分项："&gt;加分项：&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;熟悉 Golang 者优先；&lt;/li&gt;
&lt;li&gt;熟悉 python/ruby 等脚本语言者优先；&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="坐标：杭州"&gt;坐标：杭州&lt;/h6&gt;&lt;h6 id="公司：涂鸦智能"&gt;公司：涂鸦智能&lt;/h6&gt;&lt;h6 id="薪资：看面试效果匹配。"&gt;薪资：看面试效果匹配。&lt;/h6&gt;&lt;h4 id="有意向的朋友可以将简历发送到：baypm2000@163.com"&gt;有意向的朋友可以将简历发送到：baypm2000@163.com&lt;/h4&gt;</description>
      <author>baypm2014</author>
      <pubDate>Mon, 22 Jun 2020 10:23:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/39990</link>
      <guid>https://ruby-china.org/topics/39990</guid>
    </item>
    <item>
      <title>passenger 问题</title>
      <description>&lt;p&gt;环境相关：
ruby 2.3.0
所有安装按照&lt;a href="https://ruby-china.org/wiki/install_ruby_guide" rel="nofollow" target="_blank"&gt;https://ruby-china.org/wiki/install_ruby_guide&lt;/a&gt;里的方式进行。&lt;/p&gt;

&lt;p&gt;然后安装 passenger：
gem install passenger&lt;/p&gt;

&lt;p&gt;passenger -v
Phusion Passenger 5.0.26&lt;/p&gt;

&lt;p&gt;但 git clone 项目，bundle install 后，在项目的目录下 passenger 居然找不到：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alex@alex-VirtualBox:~/chen/work/ttt$ cd obms
alex@alex-VirtualBox:~/chen/work/ttt/obms$ passenger -v
/home/alex/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for #&amp;lt;Gem::Specification:0x48499e2 passenger-5.0.26&amp;gt; (NoMethodError)
    from /home/alex/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
    from /home/alex/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
    from /home/alex/.rvm/gems/ruby-2.3.0/gems/passenger-5.0.26/bin/passenger:33:in `&amp;lt;top (required)&amp;gt;'
    from /home/alex/.rvm/gems/ruby-2.3.0/bin/passenger:23:in `load'
    from /home/alex/.rvm/gems/ruby-2.3.0/bin/passenger:23:in `&amp;lt;main&amp;gt;'
    from /home/alex/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
    from /home/alex/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `&amp;lt;main&amp;gt;'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但在上层路径居然可以：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alex@alex-VirtualBox:~/chen/work/ttt/obms$ cd ..
alex@alex-VirtualBox:~/chen/work/ttt$ passenger -v
Phusion Passenger 5.0.26
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请问各位有遇到过类似问题吗？&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Thu, 17 Mar 2016 15:27:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/29373</link>
      <guid>https://ruby-china.org/topics/29373</guid>
    </item>
    <item>
      <title>2.3*100 逆天了</title>
      <description>&lt;p&gt;问题：
为什么会出现这种情况：
irb(main):007:0&amp;gt; 2.3*100
=&amp;gt; 229.99999999999997&lt;/p&gt;

&lt;p&gt;准确度从 2.3*43 就开始这么逆天了。&lt;/p&gt;

&lt;p&gt;求解，谢谢！&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Thu, 18 Jun 2015 19:43:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/26099</link>
      <guid>https://ruby-china.org/topics/26099</guid>
    </item>
    <item>
      <title>人在囧途</title>
      <description>&lt;p&gt;2015 的开年实在算不上顺利，但很幸运，不知道能不能称之为精彩，但是这种精彩还是不要的好。&lt;/p&gt;

&lt;p&gt;年前从杭州回武汉，由于公司提前放假，一路高速车辆特别少，所以油门也踩的特别 high, 830km 花了 9 个多小时就到家了，包括中途休息。回家的过程很顺利，平安到达。&lt;/p&gt;

&lt;p&gt;归途，天真的以为只要初六后高速恢复收费，车辆就会少很多，所以一直在家待到初十，在家的感觉很好，吃饭睡觉麻将聚会。
初十一大早就出发了，上高速就感觉不太好，车辆比我预期的要多，大概是由于宜昌到成都的高速开通后，G50 上的车开始多了。&lt;/p&gt;

&lt;p&gt;一路上车速保持在 90 左右，车距我也下意识的留足了，但总有一些调皮的孩子们超来超去，哎，我还是按我的节奏来开，保持车距！&lt;/p&gt;

&lt;p&gt;一路经过黄石 - 黄冈 - 九江后到达江西上饶，离景德镇 37 公里处，车越来越多，感觉越来越不好，而且中间有个地方两个服务区之间的间距是 80 多公里。这么长距离会导致疲劳驾驶和由于内分泌急导致的肾上腺素上升 (进而导致精神亢奋油门踩的猛---快点到下个服务区解决三急问题)！于是我对我老婆说下个服务区休息一下，这地段车辆太密集了，后车跟的太近，搞不好容易出事，到服务器先避避，总之我们也没那么赶，大不了到景德镇呆上一天顺便买套餐具。老婆大人也同意。&lt;/p&gt;

&lt;p&gt;由于车辆太多，而且当天小雨，整体车速保持在 80 左右，我刻意与前车距离保持在 20 多米。就在这时，我看见前面的前面车辆刹车灯亮起，我就下意识点刹了一下，速度降到 60 多，然后前面的福克斯突然直接刹停！我赶紧踩刹车，还好车距足够，在距离他不到 10 米的位置也刹停了，惊险！老婆大人的手都受伤了，刚松一口气，后面一阵猛烈的撞击，顿时感觉车往前方推了好远，当时脑子一片空白，还没反应过来，第二次撞击又来了！车又被撞了几米远，头脑反而清醒了，拼命按喇叭，要前方车辆快点走，我好向前一点，不然第三次撞击我就夹在两车中间了，那就更危险了。前方的福克斯可能由于刚才的急刹吓傻了，死活不动，我当时只能祈祷别来第三次撞击，万幸的是没有第三次，菩萨保佑！人是安全了。&lt;/p&gt;

&lt;p&gt;待我开好双跳，赶紧和老婆还有一朋友赶紧下车跑到高速护栏外，报警。此时前方福克斯已逃跑。
江西高速交警效率太低，我们 3 个人轮番打电话报警，警方说该地段属上饶地区，但归九江高速交警大队管，但中队在鄱阳服务区。就是传说中的三不管地带，三方交警都在推诿不想受理，最后我说此地发生严重拥堵，后方也发生几起交通事故，大队的人才通知中队交警到现场。从打电话报警到警察到达现场，历时 1 个半小时之久！还好没有人员伤亡。&lt;/p&gt;

&lt;p&gt;同时我们开始拍摄事故现场，三车追尾，我们的车是最前方的一辆，美国车；中间是比亚迪 S6；后方是三菱帕杰罗，超速变道撞上第 2 辆车。三菱车头惨不忍睹，貌似除了发动机啥的，其他报废。比亚迪车头车尾受损严重，我的车尾保险杠，尾灯，后备箱损坏。&lt;/p&gt;

&lt;p&gt;万幸，人没事！&lt;/p&gt;

&lt;p&gt;晚上 7 点打电话给爸妈说我们已经到杭州了，怕他们担心。&lt;/p&gt;

&lt;p&gt;于是开始处理相关问题。江西交警中队警察过来后将车拖到专门的停车场，由于我的车还可以开动，所以没要拖车。后来我们去中队做笔录 (中队在鄱阳服务器)，描述事情经过。按理说交警当场就可以判断事故责任认定书，但非要做笔录，笔录做完等待车检 (车检是扯淡，就是拍损坏车辆的照片)，车检完后将笔录送达九江交警大队给领导审批通过后盖章。从鄱阳服务器到九江交警大队，往返接近 200km，中队交警自己送过去。天知道江西为什么现在还有这种原始的审批流程！我们在停车场附件找了一个农民自己开的旅馆 (此地方圆 20 公里都是村庄，停车场规划在这我能想到的要么是利益关系，要么是江西高速交警的相关人员脑子被驴给踢了！)，在此地等待交警的电话，我们以为最多一天可以搞完，结果 2 天过去了还是没交警电话，于是第三天我们开始隔一个小时开始打电话催，办事交警直接不接电话，我们只能打电话给他们大队投诉，投诉效果还可以，第 3 天答应帮我们把报告送到九江盖章，我们在第 4 天早上 8 点整包车前往他们的服务区中队等候，终于在晚上 8 点多拿到了事故责任认定书。感谢当事交警终于把这事给办了，实在是在这人生地不熟的地方耗不起了，耽误了 4 天时间，胡须都快和哈登有得一拼了，搞好后我于第 5 天去停车场取车，停车场老板说话了：停车费一天 50，事故施救费 260，拖车费 200。我就纳闷了，停车费可以理解，因为事先办事交警也向我吐槽停车场很黑，但中队交警对这个也很无力。我的车自己开过来了，没叫拖车和施救，这两笔钱我无法接受。停车场负责人给我的解释是：所有事故车辆不管有没有被施救和拖车运过来的，都需要收这笔费用，而且没发票，只有收据！我打江西税务部门电话投诉，他们说这个肯定不合理，我报告了相关单位名称，他们表示会处理，但处理可能性不大。我开始想到了什么，利益关系这 4 个字太可怕了。老婆说破财消灾，也不想再在这里耽误时间了，就给了钱继续返回杭州，安全到达！&lt;/p&gt;

&lt;p&gt;回杭州后刚好车要年检了，一查：妹的！罚款 1000，扣 30 分，年前 5 次超速，每次 200，扣 6 分！&lt;/p&gt;

&lt;p&gt;上边是我的故事，事不大，但很惊险。下边是我的总结，供大家谨记：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;高速上保持车距很重要！这个是生命的距离！&lt;/li&gt;
&lt;li&gt;养成良好的驾驶习惯，各行其道，在没有车距的保证下千万不要随意超车；&lt;/li&gt;
&lt;li&gt;车中有小孩的一定要安装安全座椅！&lt;/li&gt;
&lt;li&gt;尽量不要搭载朋友同事亲戚之类的，以免发送事故后赔偿问题的纠纷；&lt;/li&gt;
&lt;li&gt;千万别疲劳驾驶！&lt;/li&gt;
&lt;li&gt;高速上有些路段会限速 70-80 的，所以一定要听导航限速信息，否则很容易像我一样掉入超速陷阱。&lt;/li&gt;
&lt;li&gt;能选择高铁飞机就别选择长途自驾！&lt;/li&gt;
&lt;li&gt;日本车国产后质量差看来是真的，像三菱这样的国产后比比亚迪还要稀烂。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;一定要保持车距，车距，车距！&lt;/p&gt;

&lt;p&gt;PS. 以前每次回家都说要在景德镇呆上一天淘点瓷器之类的，没想到这次滞留景德镇是这个事故导致的，但我们还是去景德镇市区的国贸买了一套精美的瓷器，这是唯一的意外之喜。&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Fri, 06 Mar 2015 15:47:53 +0800</pubDate>
      <link>https://ruby-china.org/topics/24499</link>
      <guid>https://ruby-china.org/topics/24499</guid>
    </item>
    <item>
      <title>如何在邮件中显示 HighCharts 渲染的图片</title>
      <description>&lt;p&gt;【问题背景】
测试人员提出需要本人开发的平台支持质量报告的 web 页面以邮件形式发送的功能。但存在一个问题：在 web 页面中的所有饼图和柱状图等都是用 HighCharts 来实现的，但在邮件环境中是不支持 HighCharts 图片的显示。那么，这个问题该如何破解？&lt;/p&gt;

&lt;p&gt;【解决思路】
首先想到的是能找到一个 HighCharts 的接口，可以将 highcharts 对象直接转为图片后，直接在邮件视图中引进即可。但受挫，HighCharts 没有提供类似接口。于是掉头考虑将 highcharts 绘制的 svg 图片转为 png 图片，终于在无尽的黑夜之中发现了点点繁星，发现可以在浏览器端将 svg 和 canvas 结合起来转成以 base64 编码的 png 文件，再将该文件转为 (解码)blob 对象 (本质是二进制数据流); 最后将该 blob 对象通过 ajax 技术回传给服务器，在服务器侧将 blob 对象转为 png 图片即可。发送邮件时只需将该图片以附件形式发送即可 (当然你也可以将图片保存在自己的文件系统中，邮件中直接引入超链接就可以)。&lt;/p&gt;

&lt;p&gt;这里有一个核心问题：如何将 svg 转成 png?
解决方案：经过调研发现了一个叫 canvg 的库有如此功能，如获至宝！
该 js 库文档有一句：Allows for SVG -&amp;gt; Canvas -&amp;gt; png transition all on the client side(through toDataUrl)
它让 svg 转 png 的需求得以实现。
用法：&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;//在application中需要引入以下三个js库：
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"http://gabelerner.github.io/canvg/rgbcolor.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"http://gabelerner.github.io/canvg/StackBlur.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt; 
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"http://gabelerner.github.io/canvg/canvg.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;

//在实现转换的js中调用canvg函数将svg渲染到canvas上：
 window.canvg(canvas, svg); //render the svg on the canvas
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实现原理
&lt;img src="https://l.ruby-china.com/photo/2015/8b8ed5f10a354a076c540c52afb73811.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;实现浏览器侧获取 blob 对象的代码：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//get the highcharts id&lt;/span&gt;
      &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.chart_object_div&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
          &lt;span class="nx"&gt;chart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;html&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;

       &lt;span class="nx"&gt;chart_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;highcharts&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;//get highcharts object&lt;/span&gt;
       &lt;span class="nx"&gt;svg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;          &lt;span class="nx"&gt;chart_object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getSVG&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="c1"&gt;//get svg string&lt;/span&gt;
       &lt;span class="nx"&gt;canvas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;        &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createElement&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;canvas&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//create a empty canvas&lt;/span&gt;
       &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;canvg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;svg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//render the svg on the canvas&lt;/span&gt;
       &lt;span class="nx"&gt;dataURL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toDataURL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;image/png&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//convert canvas  to  base64 data&lt;/span&gt;

      &lt;span class="c1"&gt;//dataURLtoBlob is for Convert dataURL to Blob object&lt;/span&gt;
       &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;image_blob&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dataURLtoBlob&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dataURL&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

      &lt;span class="c1"&gt;// Create new form data&lt;/span&gt;
       &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FormData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

       &lt;span class="c1"&gt;// Append our Canvas image file to the form data&lt;/span&gt;
       &lt;span class="nx"&gt;fd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chart_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;image_blob&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

       &lt;span class="c1"&gt;//send blob object to /versions/save_image &lt;/span&gt;
       &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ajax&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
         &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/versions/save_image&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;processData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="na"&gt;contentType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实现服务器侧邮件中图片显示的代码：&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// convert blob object to png file in Controller&lt;/span&gt;
&lt;span class="nx"&gt;png_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#{Rails.root}/public/email_images/#{params[key]}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.png&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nx"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;png_file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;wb&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
     &lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;read&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;end&lt;/span&gt;

&lt;span class="c1"&gt;//attach the png file in Mailer&lt;/span&gt;
&lt;span class="nx"&gt;attachments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;inline&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//add  image link in mail view&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="nx"&gt;inline_image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="nf"&gt;image_tag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;attachments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;inline&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;inline_image&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;【Tips】
rails 项目中邮件功能的 3 个要点：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;不要企图复用针对网页浏览的视图，不同的邮件客户端对 html 的支持是不同的，否则会导致样式显示错误;&lt;/li&gt;
&lt;li&gt;不要企图在邮件视图中调用含 cookies 或 session 的 helper, Mailer 环境是没有 cookies 和 session 的，建议所有值都从外边的 controller 传到 mailer 中;&lt;/li&gt;
&lt;li&gt;如果需要使用 ActiveMailer 功能，强烈建议先将 Rails 升级到 4.1 以上。否则，呵.....呵....，闭上眼睛调试代码会是什么感觉？只能"享受"没有错误 log 靠直觉来定位问题所在了。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;【参考文档】
&lt;a href="http://www.highcharts.com/docs/export-module/export-module-overview" rel="nofollow" target="_blank"&gt;http://www.highcharts.com/docs/export-module/export-module-overview&lt;/a&gt;
&lt;a href="https://github.com/gabelerner/canvg" rel="nofollow" target="_blank"&gt;https://github.com/gabelerner/canvg&lt;/a&gt;
&lt;a href="http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/exporting/offline-download/" rel="nofollow" target="_blank"&gt;http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/exporting/offline-download/&lt;/a&gt;
&lt;a href="http://www.hcharts.cn/api/index.php#Chart.getSVG" rel="nofollow" target="_blank"&gt;http://www.hcharts.cn/api/index.php#Chart.getSVG&lt;/a&gt;
&lt;a href="http://rohitrox.github.io/2013/07/19/canvas-images-and-rails/" rel="nofollow" target="_blank"&gt;http://rohitrox.github.io/2013/07/19/canvas-images-and-rails/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ps.
从 c++ 转 rails 开发，接触 rails 刚半年的同时也是刚接触前端开发半年的时间，后台转前端的过程很痛苦，html, js,rails 等都是从 0 开始学 (改天会写篇博文记录一下这段艰苦的半年时光)。很多不懂的直接到 ruby-china 上发帖求答，在此感谢各位的帮助，祝新年快乐！&lt;/p&gt;

&lt;p&gt;pps.
感谢一位名叫 xiaods(tommy) 的兄弟的指点，我才找到了这个问题的解决思路，再次感谢！&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Wed, 11 Feb 2015 17:55:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/24221</link>
      <guid>https://ruby-china.org/topics/24221</guid>
    </item>
    <item>
      <title>关于邮件中如何显示 highcharts 产生的图片的问题</title>
      <description>&lt;p&gt;问题背景：最近做的一个平台的页面采用了 highcharts 生成了一些饼图和柱状图。现在增加需求，需要将这个页面的内容以邮件 (ActiveMailer) 发送出去。
问题描述：邮件里边的内容&amp;lt;%= high_chart("some_id", &lt;a href="/chart" class="user-mention" title="@chart"&gt;&lt;i&gt;@&lt;/i&gt;chart&lt;/a&gt;) %&amp;gt;无法显示 highcharts 产生的图片，如何解决在邮件中显示 highcharts 渲染的图片。&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Mon, 29 Dec 2014 14:05:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/23454</link>
      <guid>https://ruby-china.org/topics/23454</guid>
    </item>
    <item>
      <title>rails 中的 mail 视图里怎么调用自定义的 helper?</title>
      <description>&lt;p&gt;问题是这样的：
rails:4.0
我在邮件视图中需要调用 application_helper.rb 中的一个函数 (current_user)，但总是发送失败，感觉问题就在于邮件视图中无法调用自定义的 helper。&lt;/p&gt;

&lt;p&gt;application_helper.rb:&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;ApplicationHelper&lt;/span&gt;
  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;current_user&lt;/span&gt;
    &lt;span class="k"&gt;begin&lt;/span&gt;
      &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_token!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;||=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_token!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;rescue&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;RecordNotFound&lt;/span&gt;
      &lt;span class="vi"&gt;@current_user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;nil&lt;/span&gt;
      &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"====== warning: different pc login ======"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="vi"&gt;@current_user&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;邮件视图比如：&lt;/p&gt;
&lt;pre class="highlight erb"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;%=&lt;/span&gt; &lt;span class="n"&gt;current_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="cp"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但就是报错啊报错，我在 Mailer 中 include 什么都不行。&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserMailer&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActionMailer&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="c1"&gt;#add_template_helper(ApplicationHelper)&lt;/span&gt;
  &lt;span class="c1"&gt;#helper ApplicationHelper&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也都尝试过也不行。&lt;/p&gt;

&lt;p&gt;各位有遇到这种情况吗？&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Tue, 23 Dec 2014 16:21:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/23361</link>
      <guid>https://ruby-china.org/topics/23361</guid>
    </item>
    <item>
      <title>rails 的 helper 中怎么获取当前服务器的 ip 或者 hostname?</title>
      <description>&lt;p&gt;rails 的 helper 中怎么获取当前服务器的 ip 或者 hostname?
request.ip() 只能在 controller 中用。&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Mon, 08 Dec 2014 15:56:30 +0800</pubDate>
      <link>https://ruby-china.org/topics/23085</link>
      <guid>https://ruby-china.org/topics/23085</guid>
    </item>
    <item>
      <title>帮忙写个正则表达式</title>
      <description>&lt;p&gt;之前的需求是这样：对日志进行监控，如果一行中出现 Error，则打印这行。&lt;/p&gt;

&lt;p&gt;表达式为： [^\s]+Error.*&lt;/p&gt;

&lt;p&gt;现在变为：如果一行中出现 Error 并且没有出现 plugin 这一字符串 (就是含有 plugin 的 Error 不需要报警)，则打印该行。
如 091 ActionController::RoutingError (No route matches [GET] "/plugins/servlet/streams"):这行就不需要报警打印，直接忽略掉。
求正则表达式？&lt;/p&gt;

&lt;p&gt;先谢过了！&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Fri, 28 Nov 2014 09:56:42 +0800</pubDate>
      <link>https://ruby-china.org/topics/22904</link>
      <guid>https://ruby-china.org/topics/22904</guid>
    </item>
    <item>
      <title>Bootstrap 的下拉按钮如何自适应外层 div 的宽度？</title>
      <description>&lt;p&gt;view 层代码如下：&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-md-2"&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"background: #eee,; padding: 0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn-group"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-default"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;下拉按钮&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-default dropdown-toggle"&lt;/span&gt; &lt;span class="na"&gt;data-toggle=&lt;/span&gt;&lt;span class="s"&gt;"dropdown"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"caret"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sr-only"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;切换下拉菜单&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ul&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"dropdown-menu"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"menu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;a1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;好，现在问题来了，如何让下拉按钮的宽度和外层 div 里设置的宽度 (col-md-2) 一致？
先谢过大家了，刚接触 bootstrap，问题幼稚请见谅了。&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Tue, 21 Oct 2014 15:19:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/22163</link>
      <guid>https://ruby-china.org/topics/22163</guid>
    </item>
    <item>
      <title>Rake 跑单元测试命令与 RSpec 命令的区别</title>
      <description>&lt;p&gt;Hi all :
    我用 simplecov 这个 Gem 包查看覆盖率，当我用 Rspec spec 命令执行时，我的 file:///work/dev/loquat/coverage/rcov/index.html，结果如下：&lt;img src="https://l.ruby-china.com/photo/2014/673cf5d7767bfa32302a9d9c6e34b2b6.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;当我用 rake ci:setup:rspec sepc 命令执行时，结果如下：&lt;img src="https://l.ruby-china.com/photo/2014/a1a2ca35b5d9e41b5f0624c4c5d544be.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;因为是接手别人的代码，不解执行 rails 的 ut 时，rspec 和 rake 的方式有什么不同，为什么产生的 rcov 文件不一样？还是 simplecov 的用法有一些意想不到的坑？&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Mon, 13 Oct 2014 17:12:09 +0800</pubDate>
      <link>https://ruby-china.org/topics/22012</link>
      <guid>https://ruby-china.org/topics/22012</guid>
    </item>
    <item>
      <title>rails 中的 flash 提示信息怎么随页面下拉而移动，永远保持在相对页面的最顶端？</title>
      <description>&lt;p&gt;rails 中的 flash 提示信息怎么随页面下拉而移动，永远保持在相对页面的最顶端？&lt;/p&gt;

&lt;p&gt;我当前的情况是页面下拉后，flash 信息一直在绝对页面位置的最顶端，看起来不方便。怎么解决这个问题，各位大大大大牛们，麻烦你们了。&lt;/p&gt;</description>
      <author>baypm2014</author>
      <pubDate>Tue, 19 Aug 2014 16:00:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/21117</link>
      <guid>https://ruby-china.org/topics/21117</guid>
    </item>
  </channel>
</rss>
