<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zhangjingqiang</title>
    <link>https://ruby-china.org/zhangjingqiang</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>雅虎日本技术大会 2018 部分内容</title>
      <description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;雅虎日本是日本最大的互联网公司，无论从技术，规模，还是对日本这个国家的影响力，都是顶级水平，和日本乐天并称为日本互联网双雄。&lt;/p&gt;

&lt;p&gt;昨日，一年一度的技术大会如期举行，本人去参加并把看到的，得到的信息记录下来，分享给国内同行。虽然他们的水平跟国内相差很远，但根据他们的现状信息，对国内更好地发展有可取之处，也是好事。&lt;/p&gt;
&lt;h2 id="官方信息"&gt;官方信息&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://techconference.yahoo.co.jp/2018/" rel="nofollow" target="_blank" title=""&gt;Yahoo! JAPAN Tech Conference 2018 官方网站&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2018/b250af80-4667-4d92-bc99-0f6d3277abcc.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCTmRAt3wuYY8W5z9j9va97Q" rel="nofollow" target="_blank" title=""&gt;Yahoo Japan Youtube 频道：YahooJAPANTech&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ydnjp" rel="nofollow" target="_blank" title=""&gt;Twitter 账号：ydnjp&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="大会内容"&gt;大会内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;基调演讲&lt;/li&gt;
&lt;li&gt;数据中心网络与大规模服务器基础设施的战略&lt;/li&gt;
&lt;li&gt;Kotlin 的导入情况与展望&lt;/li&gt;
&lt;li&gt;有效利用 Web 资源去应用&lt;/li&gt;
&lt;li&gt;放心安全的下一代认证&lt;/li&gt;
&lt;li&gt;支撑雅虎日本开发平台的 PaaS&lt;/li&gt;
&lt;li&gt;大规模业务工具刷新的实施方法&lt;/li&gt;
&lt;li&gt;雅虎日本首页的编程&lt;/li&gt;
&lt;li&gt;雅虎日本的动画内容&lt;/li&gt;
&lt;li&gt;雅虎日本为 OSS 的开发&lt;/li&gt;
&lt;li&gt;用户位置信息分析的最前沿&lt;/li&gt;
&lt;li&gt;AnnexML：从最近的地方搜索用的 extreme multi-label 分类的高速化&lt;/li&gt;
&lt;li&gt;雅虎日本应用的开发方法：极限编程&lt;/li&gt;
&lt;li&gt;建立提高视觉设计师技能的机制&lt;/li&gt;
&lt;li&gt;实现应用程序高速部署的技术 - 雅虎日本的 Kubernetes 即服务&lt;/li&gt;
&lt;li&gt;保护日本的互联网！雅虎日本的欺诈性使用对策 - 通过 Splunk 检测非法登录&lt;/li&gt;
&lt;li&gt;雅虎日本的 Node.js&lt;/li&gt;
&lt;li&gt;技术和品牌〜技术吸引人〜&lt;/li&gt;
&lt;li&gt;创造一个移动性和互联网融合在一起的自动驾驶时代&lt;/li&gt;
&lt;li&gt;kukai：世界第二的节能超级计算机&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;p&gt;本人参加了如下会场：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;基调演讲&lt;/li&gt;
&lt;li&gt;数据中心网络与大规模服务器基础设施的战略&lt;/li&gt;
&lt;li&gt;支撑雅虎日本开发平台的 PaaS&lt;/li&gt;
&lt;li&gt;实现应用程序高速部署的技术 - 雅虎日本的 Kubernetes 即服务&lt;/li&gt;
&lt;li&gt;雅虎日本的 Node.js&lt;/li&gt;
&lt;li&gt;支撑雅虎日本的广告技术&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="基调演讲"&gt;基调演讲&lt;/h2&gt;
&lt;p&gt;主题是创造未来。&lt;/p&gt;

&lt;p&gt;首席技术官的开场超出对日本一如既往死板的印象，先播放一段 5 分钟的视频介绍 2028 年 1 月 27 日（十年后）的一个日本女孩的一天。&lt;/p&gt;

&lt;p&gt;Youtube 网视频已上传：
Shape the Future - through the Power of Technology
&lt;span class="embed-responsive embed-responsive-16by9"&gt;&lt;iframe class="embed-responsive-item" src="//www.youtube.com/embed/I6qeGfswc_w" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;这一天的所有活动，科技（互联物联）无处不在。&lt;/p&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;li&gt;距离会议时间还有几分会及时提示，买咖啡时和老板隔空对话，眼前只需要展开虚拟屏幕，随即关闭；&lt;/li&gt;
&lt;li&gt;人们看新闻，看电车时刻表，看股价，到超市购物，虚拟屏幕无处不在，时刻给出最佳方案；&lt;/li&gt;
&lt;li&gt;晚上看电视时，即时和父母通视频电话等。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;视频播放完毕后，CTO 说，"十年后的样子，有些人说不会达到这样，有些人说达到这样是理所当然的"。然后引出雅虎日本的使命和愿景：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mission: 解决问题的引擎&lt;/li&gt;
&lt;li&gt;Vision: 更新日本&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;接下来的内容是雅虎日本的数据介绍：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;月 PV: 757 亿&lt;/li&gt;
&lt;li&gt;最大每秒访问数：200 万&lt;/li&gt;
&lt;li&gt;大数据基础设施：RDB：900 DBs；KVS：2000 nodes 等; Hadoop 集群自称是亚洲最大规模，不太信，能有中国大吗？&lt;/li&gt;
&lt;li&gt;开发 7 处地点：日本东京，名古屋，大阪，福冈，美国华盛顿，圣弗兰西斯科，越南胡志明&lt;/li&gt;
&lt;li&gt;工程师：2400 名以上，美工 400 名以上&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;然后介绍从 HTTP 到 HTTPS 的转换过程。起初的困难：服务数 100 以上，服务相关的企业很多都需要调整，域名 1000 以上（日本域名最大数的公司）当初公司内的工程师办不到。决定做的时候，从 2016 年 4 月 1 日到 2017 年 3 月 31 日，一年时间处理 1000 域名完成。&lt;/p&gt;

&lt;p&gt;后半程介绍以下几方面内容：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;雅虎日本使用用户，数据，人工智能的循环链路提供服务。&lt;/li&gt;
&lt;li&gt;雅虎日本的技术栈介绍，从数据中心到应用开发，所有的一切都自己做。控制自由。&lt;/li&gt;
&lt;li&gt;对开源社区的贡献，如 Docker，Kubernetes，Kafka，Node.js，Presto 等。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;最后表示雅虎日本是给用户新体验的技术企业。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=OA-yuIa5nbY" rel="nofollow" target="_blank" title=""&gt;Yahoo! JAPAN Tech Conference 基調講演全程&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="数据中心网络与大规模服务器基础设施的战略"&gt;数据中心网络与大规模服务器基础设施的战略&lt;/h2&gt;
&lt;p&gt;数据中心地点：日本东京，大阪，福冈，东北；美国两处。东京和大阪网络 Swtich，CDN 互通，一处节点断，另一处仍可以工作。&lt;/p&gt;

&lt;p&gt;硬件管理使用 Facebook 创办基金会 (后有 Google，微软加入) 的 OpenCompute，简单易用，强烈推荐参会者使用。&lt;/p&gt;
&lt;h2 id="支撑雅虎日本开发平台的PaaS"&gt;支撑雅虎日本开发平台的 PaaS&lt;/h2&gt;
&lt;p&gt;从 2016 年讨论，2017 年引入 Cloud Foundry，2018 年计划扩大范围，这个速度很慢了，日本乐天在 2014 年时已经使用 Cloud Foundry 作为 PaaS 平台。&lt;/p&gt;

&lt;p&gt;Cloud Foundry 的 CTO 的英文演讲让很多人入睡，语调低沉，却讲了未来软件的开发方式。&lt;/p&gt;
&lt;h2 id="实现应用程序高速部署的技术 - 雅虎日本的Kubernetes即服务"&gt;实现应用程序高速部署的技术 - 雅虎日本的 Kubernetes 即服务&lt;/h2&gt;
&lt;p&gt;Kubernetes as a Service 在雅虎日本的一家子公司 Z Lab 开发，从 2017 年初开始，现在有部分雅虎日本的服务运行在上面。这在日本已经是不错的有成绩的，相比之下，国内的容器服务如火如荼，遥遥领先。&lt;/p&gt;

&lt;p&gt;他们的做法是，在 IaaS 层用 OpenStack 调度 Kubernetes 节点，根据应用规模实现负载均衡，自动扩容。然而还是很初级，他们（全日本）对新技术的谨慎，文化导致创新速度很慢，大多不创新。&lt;/p&gt;
&lt;h2 id="雅虎日本的Node.js"&gt;雅虎日本的 Node.js&lt;/h2&gt;
&lt;p&gt;雅虎日本的大部分服务都是用 PHP 开发，使用 Node.js 后，性能提高 3 倍，今后的方向是把服务大量转换为使用 Node.js 开发，把 Java 和 Node.js 作为主要后端语言。&lt;/p&gt;
&lt;h2 id="支撑雅虎日本的广告技术"&gt;支撑雅虎日本的广告技术&lt;/h2&gt;
&lt;p&gt;雅虎日本的广告分两类：直接固定广告和嵌入式广告。&lt;/p&gt;

&lt;p&gt;在首页显示的为第一类，商家的广告直接定期固定显示。在搜索结果，新闻一览中看到的是根据大数据算法，以 AI 的方式推送的广告，主要根据性别，年龄，区域等用户信息用算法取中心值，向这类人群投送广告。使用语言有 C，C++，Java，Python，Go 等。&lt;/p&gt;

&lt;p&gt;近几年平均每年从广告中获得的收入约 300 多亿日元，是主要收入来源。&lt;/p&gt;

&lt;hr&gt;
&lt;h2 id="演讲幻灯片"&gt;演讲幻灯片&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://techblog.yahoo.co.jp/event/yjtc18_slide/" rel="nofollow" target="_blank"&gt;https://techblog.yahoo.co.jp/event/yjtc18_slide/&lt;/a&gt;&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Sun, 28 Jan 2018 12:47:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/34956</link>
      <guid>https://ruby-china.org/topics/34956</guid>
    </item>
    <item>
      <title>如何用 RSpec 测试多个不同项目的数据库？</title>
      <description>&lt;p&gt;现在有一个需求，在项目 1 中要用 rspec 测试外部数据库中数据对此项目数据的影响，为便于说明，起名如下：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;现项目名：app1&lt;/li&gt;
&lt;li&gt;现项目数据库：database1&lt;/li&gt;
&lt;li&gt;外部项目名：app2&lt;/li&gt;
&lt;li&gt;外部项目数据库：database2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;在 config/database.yml 中添加 app2_test 测试数据库：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="ss"&gt;app2_test:
  &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;app2_default&lt;/span&gt;
  &lt;span class="ss"&gt;database: &lt;/span&gt;&lt;span class="n"&gt;app2_test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 db/schema.rb 中添加创建 app2 中库的表的 schema：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;create_table&lt;/span&gt; &lt;span class="s2"&gt;"products"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;force: :cascade&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt; &lt;span class="s2"&gt;"name"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并用 factory_girl 构建测试数据：&lt;code&gt;factory :product, :class =&amp;gt; App2::Product do&lt;/code&gt;。
但当我执行 rspec 测试时，显示这样的消息：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Failure&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="no"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;let&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:app2_products&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:product&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&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;StatementInvalid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="no"&gt;Mysql2&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;Table&lt;/span&gt; &lt;span class="s1"&gt;'app2_test.products'&lt;/span&gt; &lt;span class="n"&gt;doesn&lt;/span&gt;&lt;span class="s1"&gt;'t exist: SHOW FULL FIELDS FROM `products`
# ./spec/my_spec.rb:4:in `block (2 levels) in &amp;lt;top (required)&amp;gt;'&lt;/span&gt;
&lt;span class="c1"&gt;# ./spec/my_spec.rb:12:in `block (3 levels) in &amp;lt;top (required)&amp;gt;'&lt;/span&gt;
&lt;span class="c1"&gt;# ------------------&lt;/span&gt;
&lt;span class="c1"&gt;# --- Caused by: ---&lt;/span&gt;
&lt;span class="c1"&gt;# Mysql2::Error:&lt;/span&gt;
&lt;span class="c1"&gt;#   Table 'app2_test.products' doesn't exist&lt;/span&gt;
&lt;span class="c1"&gt;#   ./spec/my_spec.rb:4:in `block (2 levels) in &amp;lt;top (required)&amp;gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;怎么建立 app2 中数据库中的表呢？&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Wed, 07 Sep 2016 10:18:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/31000</link>
      <guid>https://ruby-china.org/topics/31000</guid>
    </item>
    <item>
      <title>[转] 趣文：通俗解释主要编程语言及其用途</title>
      <description>&lt;p&gt;&lt;img src="http://ww4.sinaimg.cn/bmiddle/7cc829d3jw1e3zuqtsbb4j20gn0i9jt7.jpg" title="" alt="girls"&gt;&lt;/p&gt;

&lt;p&gt;中文：
&lt;a href="http://blog.jobbole.com/29235/" rel="nofollow" target="_blank"&gt;http://blog.jobbole.com/29235/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;英文：
&lt;a href="http://www.quora.com/Programming-Languages/In-laymans-terms-what-are-the-major-programming-languages-and-what-are-they-used-for" rel="nofollow" target="_blank"&gt;http://www.quora.com/Programming-Languages/In-laymans-terms-what-are-the-major-programming-languages-and-what-are-they-used-for&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;再加个图吧&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img.pics.livedoor.com/011/b/5/b59afebf1b755da4b4b7-1024.jpg" title="" alt="tools"&gt;&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Wed, 24 Apr 2013 11:14:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/10456</link>
      <guid>https://ruby-china.org/topics/10456</guid>
    </item>
    <item>
      <title>[转] Heroku 的教训：糟糕的负载均衡 + RoR 单线程 = 糟糕的性能</title>
      <description>&lt;p&gt;原文在 &lt;a href="http://www.infoq.com/cn/news/2013/02/heroku-routing-mesh;jsessionid=6A05B050E16631FDEC5F404110651776" rel="nofollow" target="_blank" title=""&gt;InfoQ&lt;/a&gt; ，转过来给大家分享一下。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.infoq.com/cn/news/2013/02/heroku-routing-mesh;jsessionid=6A05B050E16631FDEC5F404110651776" rel="nofollow" target="_blank" title=""&gt;Heroku 的教训：糟糕的负载均衡 + RoR 单线程 = 糟糕的性能&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;值得注意的是 Bamboo 和 Cedar 这一老一新的堆栈。&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Mon, 18 Feb 2013 11:32:18 +0800</pubDate>
      <link>https://ruby-china.org/topics/8733</link>
      <guid>https://ruby-china.org/topics/8733</guid>
    </item>
    <item>
      <title>给 Ruby China 换装 -&gt; Ruby China on Heroku</title>
      <description>&lt;p&gt;&lt;a href="http://ruby-china.heroku.com" rel="nofollow" target="_blank"&gt;http://ruby-china.heroku.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;多刷新，多换装。快到圣诞，献此一礼。&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Thu, 20 Dec 2012 21:49:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/7733</link>
      <guid>https://ruby-china.org/topics/7733</guid>
    </item>
    <item>
      <title>开源扑克挺好玩，你订购了吗？</title>
      <description>&lt;p&gt;&lt;a href="http://www.oschina.net/" rel="nofollow" target="_blank" title=""&gt;开源中国社区&lt;/a&gt;的新商品 -- &lt;a href="http://www.oschina.net/shop/item6/12" rel="nofollow" target="_blank" title=""&gt;开源扑克&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://static.oschina.net/uploads/shop/cards.jpg" title="" alt="Cards"&gt;&lt;/p&gt;

&lt;p&gt;技术人关心的是收集汇总各个领域的东西。&lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Thu, 13 Sep 2012 09:20:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/5513</link>
      <guid>https://ruby-china.org/topics/5513</guid>
    </item>
    <item>
      <title>Rails 服务启动的判定方法</title>
      <description>&lt;p&gt;今天在日本的 QA 网看到这样一条问题：&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rails server&lt;/code&gt;
&lt;code&gt;rails console&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;启动后的判定方法是什么？&lt;/p&gt;

&lt;p&gt;有这样的判定方法吗？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Tue, 05 Jun 2012 12:23:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/3669</link>
      <guid>https://ruby-china.org/topics/3669</guid>
    </item>
    <item>
      <title>如何获取用户 IP 和地理信息？</title>
      <description>&lt;p&gt;更新 facebook 密码时，发一封邮件给用户，提示在哪个 IP 下、哪个国家哪个地区位置改变的密码。&lt;/p&gt;

&lt;p&gt;比如：
Chaoyang, Beijing, CN (IP:XX.XX.XX.XX)&lt;/p&gt;

&lt;p&gt;这几个信息是如何取得的？&lt;/p&gt;

&lt;p&gt;关于具体位置，是用经度、纬度取得的？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Fri, 09 Mar 2012 21:41:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/1758</link>
      <guid>https://ruby-china.org/topics/1758</guid>
    </item>
    <item>
      <title>这是什么信号？</title>
      <description>&lt;p&gt;&lt;a href="http://www.360.cn/angrybirds/" rel="nofollow" target="_blank"&gt;http://www.360.cn/angrybirds/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今早在微博上看到的，机器人打开一扇门，看到了愤怒的小鸟。
那个时间会发生什么？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Wed, 07 Mar 2012 09:23:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/1668</link>
      <guid>https://ruby-china.org/topics/1668</guid>
    </item>
    <item>
      <title>Rails 3.1 二级联动的问题</title>
      <description>&lt;p&gt;Rails 具体版本是 3.1.3&lt;/p&gt;

&lt;p&gt;要做省市二级联动的效果，省如下：&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;%= f.select :name, Prefecture.all.collect{|p|[ p.name, p.id ]}.unshift(blank) %&amp;gt;&lt;/code&gt;
※这里用的是 form_for&lt;/p&gt;

&lt;p&gt;搜索的结果大都是&lt;strong&gt;select&lt;/strong&gt;的示例，如：&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;%=&lt;/span&gt; &lt;span class="na"&gt;select&lt;/span&gt;&lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="na"&gt;:city&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;:name&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;cities&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="err"&gt;{},&lt;/span&gt; &lt;span class="err"&gt;{&lt;/span&gt; &lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="na"&gt;onchange&lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt; &lt;span class="err"&gt;=&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; remote_function(   
                    :with =&amp;gt; "'parent_id='+value",   
                    :update =&amp;gt; 'next_select',   
                    :url =&amp;gt; { :action =&amp;gt; :select_with_ajax } ) })%&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按照这种方法去做，在&lt;strong&gt;f.select&lt;/strong&gt;里加上&lt;strong&gt;{ "onchange" =&amp;gt; remote_function(...&lt;/strong&gt;，结果提示：
undefined method `remote_function' for&lt;/p&gt;

&lt;p&gt;怎么做呢？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Thu, 01 Mar 2012 17:16:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/1535</link>
      <guid>https://ruby-china.org/topics/1535</guid>
    </item>
    <item>
      <title>二级分层的情况下 delete 方法为何失效？</title>
      <description>&lt;p&gt;比如程序创建的形式为：
admin/notice&lt;/p&gt;

&lt;p&gt;控制层（notice_controller.rb）中是基本的 scaffold 写法;&lt;/p&gt;

&lt;p&gt;视图中的写法为：
&amp;lt;% &lt;a href="/notices.each" class="user-mention" title="@notices.each"&gt;&lt;i&gt;@&lt;/i&gt;notices.each&lt;/a&gt; do |notice| %&amp;gt;&lt;/p&gt;
&lt;h2 id="something"&gt;something&lt;/h2&gt;
&lt;p&gt;&amp;lt;%= link_to 'Destroy', admin_notice_path(notice),confirm: 'Are you sure?', :method =&amp;gt; :delete %&amp;gt;
&amp;lt;% end %&amp;gt;&lt;/p&gt;

&lt;p&gt;routes.rb 中的写法为：
scope 'admin', :as =&amp;gt; 'admin', :module =&amp;gt; 'admin' do&lt;/p&gt;
&lt;h2 id="something"&gt;something&lt;/h2&gt;
&lt;p&gt;resources :notice
end&lt;/p&gt;

&lt;p&gt;在程序执行时，点击“Destroy”链接导向了 show 方法，其中的“:method =&amp;gt; :delete”为什么没起作用？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Mon, 13 Feb 2012 14:03:41 +0800</pubDate>
      <link>https://ruby-china.org/topics/1173</link>
      <guid>https://ruby-china.org/topics/1173</guid>
    </item>
    <item>
      <title>致社区的两点建议</title>
      <description>&lt;p&gt;社区现在的形式很好，在此基础上有如下两点建议，可否考虑一下？&lt;/p&gt;

&lt;p&gt;1.可否加上新闻功能？
   像这样:
   &lt;a href="http://www.infoq.com/cn/ruby/" rel="nofollow" target="_blank"&gt;http://www.infoq.com/cn/ruby/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.能否出电子杂志月刊？
   不需要像《程序员》、InfoQ 架构师那种规模，在业界动态、技术领域等方面突出也好。&lt;/p&gt;

&lt;p&gt;这需要精力与热情，期待 ing...  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Fri, 10 Feb 2012 17:51:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/1137</link>
      <guid>https://ruby-china.org/topics/1137</guid>
    </item>
    <item>
      <title>忘记密码功能有错误</title>
      <description>&lt;p&gt;在找回密码页面：&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ruby-china.org/account/password/new" rel="nofollow" target="_blank"&gt;http://ruby-china.org/account/password/new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;填入注册邮箱地址，提交后，页面转向到如下 URL:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ruby-china.org/account/password" rel="nofollow" target="_blank"&gt;http://ruby-china.org/account/password&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;并报错：&lt;/p&gt;

&lt;p&gt;We're sorry, but something went wrong.&lt;/p&gt;

&lt;p&gt;We've been notified about this issue and we'll take a look at it shortly.  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Fri, 10 Feb 2012 17:34:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/1135</link>
      <guid>https://ruby-china.org/topics/1135</guid>
    </item>
    <item>
      <title>[assets 关联] 这个错误是怎么回事？</title>
      <description>&lt;p&gt;■错误信息
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Index#index&lt;/p&gt;

&lt;p&gt;Showing ../app/views/index/index.html.erb where line #2 raised:&lt;/p&gt;

&lt;p&gt;index.css isn't precompiled&lt;/p&gt;

&lt;p&gt;Extracted source (around line #2):&lt;/p&gt;

&lt;p&gt;1: &amp;lt;% content_for(:ex_styles) do %&amp;gt;
2: &amp;lt;%= stylesheet_link_tag "index" %&amp;gt;
3: &amp;lt;% end %&amp;gt;
4: &amp;lt;% content_for :ex_scripts do %&amp;gt;
5: &amp;lt;%= javascript_include_tag "index" %&amp;gt;
6: &amp;lt;% end %&amp;gt;&lt;/p&gt;

&lt;p&gt;■RoR 版本
Ruby 1.9.3p0
Rails 3.1.3&lt;/p&gt;

&lt;p&gt;■尝试内容
在 Google 上搜索，说“config/enviroments/production.rb”中的
config.assets.compress = true
是必要的，我的默认环境是这样的，然而相同目录的“development.rb”中的代码却是：
config.assets.compress = false
把它改成 true，执行：
bundle exec rake assets:precompile
得到的信息是：
.rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
.rvm/gems/ruby-1.9.3-p0/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets
似乎只对 production 生效？
刷新页面依然是那个错误信息。  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Fri, 20 Jan 2012 11:14:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/911</link>
      <guid>https://ruby-china.org/topics/911</guid>
    </item>
    <item>
      <title>Redmine+Git，在文件中 404 错误怎么回事？</title>
      <description>&lt;p&gt;在配置中用 Git 方式管理代码，加上了本地 Git 库路径：
/home/git/repositories/project.git
(填路径那栏就这么写的)&lt;/p&gt;

&lt;p&gt;在 Redmine 路径下执行&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ruby script/runner &lt;span class="s2"&gt;"Repository.fetch_changesets"&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; production
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在文件菜单中却是 404 文件不存在错误。&lt;/p&gt;

&lt;p&gt;Google 了半天，说 Redmine 有 Bug，于是修改了其下的 `&lt;code&gt;lib/redmine/scm/adapters/git_adapter.rb&lt;/code&gt;
把&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;GIT_BIN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Redmine&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'scm_git_command'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="s2"&gt;"git"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改成&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;GIT_BIN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"/usr/bin/git"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还是 404，怎么回事呢？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Fri, 13 Jan 2012 11:56:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/840</link>
      <guid>https://ruby-china.org/topics/840</guid>
    </item>
    <item>
      <title>请教一个 Apache+Passenger 搭配的问题</title>
      <description>&lt;h2 id="安装Passenger"&gt;安装 Passenger&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;gem &lt;span class="nb"&gt;install &lt;/span&gt;passenger
&lt;span class="nv"&gt;$ &lt;/span&gt;passenger-install-apache2-module
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="设定Passenger"&gt;设定 Passenger&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vi /etc/httpd/conf.d/passenger.conf
&lt;span class="nt"&gt;--&lt;/span&gt;
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p0@set1/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p0@set1/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p0@set1/ruby

RailsEnv development
&lt;span class="nt"&gt;--&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="设定VirtualHost"&gt;设定 VirtualHost&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;vi /etc/httpd/conf.d/virtualhost.conf
&lt;span class="nt"&gt;--&lt;/span&gt;
&amp;lt;VirtualHost &lt;span class="k"&gt;*&lt;/span&gt;:80&amp;gt;
ServerName www.example.com
DocumentRoot /var/www/html/
RailsBaseURI /demo
&amp;lt;/VirtualHost&amp;gt;
&lt;span class="nt"&gt;------------&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="创建链接"&gt;创建链接&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /var/www/html
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; /var/ruby/demo/public ./demo
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="重启Apache"&gt;重启 Apache&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;/etc/rc.d/init.d/httpd restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样在浏览器中访问 demo 时，直接把 Rails 项目的 public 目录一览显示出来了，问题出在哪？Passenger 没启动？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Thu, 12 Jan 2012 12:18:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/819</link>
      <guid>https://ruby-china.org/topics/819</guid>
    </item>
    <item>
      <title>三个月可以做个 EC 网站吗？</title>
      <description>&lt;p&gt;像这种规模的：
&lt;a href="http://www.infotop.jp" rel="nofollow" target="_blank"&gt;http://www.infotop.jp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;顺便问一下，在中国有这样的信息素材网站吗？  &lt;/p&gt;</description>
      <author>zhangjingqiang</author>
      <pubDate>Thu, 05 Jan 2012 10:12:51 +0800</pubDate>
      <link>https://ruby-china.org/topics/736</link>
      <guid>https://ruby-china.org/topics/736</guid>
    </item>
  </channel>
</rss>
