gzruby

广州Ruby开发者小组 / The Guangzhou Ruby Group

第9聚会 - GZRUBY9 - Wed Nov 21

Hello ruby warriors! Time flies when you are having fun, doesn’t it? After our especially excellent social event in September, its time now to get back to code and have a great tech talk.

In the ruby world, quite a few things have come up recently, and more is around the corner. Ruby 1.9.3-p327 is out, Ruby 2.0 is feature frozen, and Rails 4.0 is coming soon! With all this going on in the ruby and Rails community, what have you been working on?

This month’s event is sponsored by Beansmile and Strand Beer.

时间/When: 星期三-11月21号 19:00 / November 21, 7:30 PM

地点/Where: Kudelabs 明月一路59号, 汉苑 西塔601

59 Ming Yue Yi Lu, Han Yuan West Tower, Apt. 601

地铁/Metro: 五羊村A出口/Line 5 - Wu Yang Cun, Exit A

希望到时能见到你的身影!如果你有什么好的想法,发到邮件列表告诉我们吧!

We look forward to seeing you there! If you have any topic ideas or plans, let us know on the mailing list.

Sept 19, 2012 - GZRUBY Pizza Party

Hello ruby friends! It’s time for us to get together again. We just realized it has been a year since our first ruby meetup, and we think its time to celebrate!

For meetup #8, we are having a pizza party! Come on, invite anyone who might be interested in ruby or web-development. We’ll have pizza and some beer. If you can bring a few drinks or other snaks, that will make the party better.

Rather than spend all our time talking about code, lets have some fun time with our community; get to know each other, and have a good time!

时间/When: September 19, 7:00 PM

地点/Where: Kudelabs 明月一路59号, 汉苑 西塔601

地铁/Metro: 五羊村A出口/Line 5 - Wu Yang Cun, Exit A

希望到时能见到你的身影!如果你有什么好的想法,发到邮件列表告诉我们吧!

We look forward to seeing you there! If you have any topic ideas or plans, let us know on the mailing list.

GZRUBY7 Report

It really is a ruby party

Last wednesday we had a great turnout for the 7th gzruby meetup! It was a blast with tons of great people, some nice talks, and a lot of fun. I’d say this last event was maybe more of a ruby party than a developer meeting, and that’s not a bad thing!

It’s been a year since our first event, and already we’ve seen several projects started by members of our group referring clients to one another, or working together on a big project. We started this event to enable this kind of cooperation, and we couldn’t be happier that we have been successful. Remember, the more ruby projects get done here in South China, the more people will be interested to start new projects, and we all do better!

Its great to continuously meet new members, and to reconnect with the old ones. Lets spread the word and make gzruby a great place for all of us to find friends, learn from each other, and do great business together!

Strand Beer once again supplied us with plenty of homebrew goodness. Keep making that great beer fine ruby fellow!

  • Integrating Rails with Wordpress http://thenanfang.com

    Leon presented his company’s latest project (a gzruby connection): TheNanfang.com. He described how he and his team were able to use Rails to win the project, by building a very rapid working prototype. After winning the project, they were able to execute and complete the project on time using standard Rails best practices and good old hard work. Leon and Rain also described how they were able to marry the de-facto blogging platform WordPress into their Rails site. We are all proud of their work and its an excellent addition to the group of ruby projects based here in South China. Great job beansmile!

    Presented by Leon Du

  • Introducing FriendsMap.net http://friendsmap.net

    @cantin_ just released FriendsMap.net, a toy project that displays your social network friends on a map. He gave a short talk about what he used to put it together, and gave a quick demo.

    It is a project to pratice using the OAuth2 APIs and google maps. You can now use the site to find your Facebook, Twitter, QQ, and your Sina Weibo friends. There is a China version that works with Weibo and Baidu maps, or you if available to you, you can use Google Maps to location friends around the world.

    Presented by Cantin Xu

  • Explaining Session hijacking and why we need CSRF protection http://guides.rubyonrails.org/security.html

    @jevgz showed us how easy it is for an attacker to create a site that could change the user’s password just by mousing over a link. He showed us step by step what can happen if you don’t follow Rails best practices and leave your site open to attack. Its a stark reminder of how to important it is to stay on top of current security trends. It was also a great explanation on why we need the CSRF tags in our Rails projects. If you haven’t read the Rails security guide, I suggest you do so soon.

    Presented by @jevgz

  • Textilize http://github.com/kudelabs/textilize/

    @ifosen recently released a new gem that provides the Rails 2.x textilize helper methods in Rails 3.x. In case you are updating an older app that relied on these functions, you can simply drop this gem into your Gemfile and you’re ready to go. There are other gems that already do this, but these gems utilize the latest version of Redcloth, which is (in our opinion) unneccessarily large and complicated, requiring native extensions to be compiled. Textilize avoids this extra dependency by including the original RedCloth.rb written by _why.

    @adevadeh stressed the importance of anlysing your gemfile to reduce external dependencies. Make sure that everything you rely on in something you really need. Also, don’t be afraid to publish a gem, even if its a small one. You never know who else might find it useful, and you may get something back you never expected!

    Presented by Mysen and @adevadeh


Thanks very much to our presenters for sharing. We really appreciate that you stood up to share what you’ve been working on or show us something that may help us in our daily work. We hold these meetings to learn from each other, so be sure to give yourself some time to show other developers what you have learned.

See you at the next meeting, scheduled for Wed, September 19, 2012

Follow @gzruby on Sina Weibo!

It really is a ruby party

July 18 - Come to gzruby Meetup #7

Ruby粉丝们, 我们的派对时间又到了! 离上次派对已经2个月了, 你学到了什么新鲜有趣的东西吗? 你尝试了一些新的gems吗? 或者使用新的工具?

OK ruby fans, its that time again! Another 2 months have gone by…what have you learned? Did you try any new gems? Did you start using any new tools?

上次派对以后, Ruby可没闲得下来, 我们尝试了火爆的代码设计帖的内容, 1.8.7的终极版本(你升级到1.9.3了吗?) 和SQL为Rails v3.2.6注入的安全补丁

Since we met last, what’s been going on: we’ve got the epic comment thread about code design, we’ve got the final bug-fix release for 1.8.7 (Have you updated to 1.9.3 yet?), and we’ve got some SQL injection updates for Rails in v3.2.6.

让我们再次欢聚一堂, 为Ruby喝彩吧!

Lets get together and celebrate our ruby family!

时间/When: July 18, 7:30 PM

地点/Where: Kudelabs 明月一路59号, 汉苑 西塔601

地铁/Metro: 五羊村A出口/Line 5 - Wu Yang Cun, Exit A

希望到时能见到你的身影!如果你有什么好的想法,发到邮件列表告诉我们吧!

We look forward to seeing you there! If you have any topic ideas or plans, let us know on the mailing list.

Notes from Meetup 6

We <3 Ruby!

I think we can all agree that the meeting held May 16, 2012 was one of our best yet. We had a bunch of new visitors. Its thrilling to see young rubyists joining our ranks, and at this meeting we had 5 recent graduates who all learned ruby on their own. We also love to see visitors from other platforms, we welcome anyone who has a passion for technology and software development.

At this meeting we had the honor of hosting guests from China Telecom. They were looking to find the next great mobile app and learn about what current mobile app developers are thinking about. Visitors of all types are welcome - from different disciplines and different platforms. Developers don’t work in a vaccum, we need to work together with others to make sure our products get out into the world.

Thanks again to Strand Beer for the wonderful refreshment!

  • Namespace-less Rails Engines http://github.com/shaokun/nl-engine/

    As we develop more and more applications, we find ways to make our life easier and start to re-use parts of an app in the next project. Hopefully, as time goes on, we can build reusable components that we can use in future apps to speed up development. In static, client side developemnt, this kind of code reuse is common and easily accomplished. In web development, when dealing with server side code, HTML, javascript and databases, it can get complicated. As of Rails 3.x Engines are very handy and a great way to share code between apps. But you don’t want exactly the same code in every project. Sometimes one client wants to be able to delete widgets, another client wants to edit widgets, and a third client wants to be able to copy her widgets. So the next question is, how do we share common code between apps, and use ruby’s object oriented nature to extend functionality.

    In his talk, Shaokun described a technique to make sharing code easier by building Rails Engines that can be overridden cleanly. The engine code is kept seperate and any custom functionality is implemented at the project level. Your engine can live in a git submodule, and all of your custom code - model, controller, and views - lives in your current project. This separation makes it easy to continue to maintain the core functionality while being able to satisfy each client’s needs.

    Presented by 伍少坤

  • Angular.js http://angularjs.org/ (slides)

    Rails is a great framework for the server side. It gives you a well-defined structure and lots of tools for managing data and code on the server. Yet modern web apps have matured to the point where much of the interesting parts of the app are on the client side. On this side Rails shows some weakness - you need to mix several languages, js, css, html, erb into templates that are compiled server-side and then sent to the browser fully-baked. In today’s world of highly interactive and dynamic web applications, the Rails way is simply no longer good enough.

    Angular.js is one of many projects attempting to fill in this gap. It is a way to manage client side view logic compltely in the browser using pure HTML and JS. Similar to projects like ember.js and backbone.js, it allows you to define html templates and fill them with live data, either taken from a server or computed in the browser with user input.

    Angular caught our attention because it integrates well with existing technologies, it doesn’t require you to move everything over at once. You can implement just part of a page in angular, if you wish, and change the rest slowly over time. It also has a very clean way of dealing with data from the server and integrating it into the page.

    Paired with a strong server-side framework like Rails, Angular could be the the missing piece. The piece that takes us into a new world of truly interactive, user friendly, web apps.

    Presented by @adevadeh


Thanks very much to our presenters for sharing. We really appreciate that you stood up to share what you’ve been working on or show us something that may help us in our daily work. We hold these meetings to learn from each other, so be sure to give yourself some time to show other developers what you have learned.

See you at the next meeting, scheduled for Wed, July 18, 2012

Time for Meetup #6/第六次聚会

Ruby的乡亲父老们, 大家下午好哦! 距离上次的聚会快2个月的时间了, 这意味着, 我们又要见面了. 自从上次的聚会之后, Ruby社区又发布了一些新玩意, 像the mass-assignment security scandal, Ruby 1.9.3-p194, 和灰常有趣的ruby-on-iOS方法. 你在Ruby社区还发现了什么新玩意儿么? 咱们一起聊聊吧, 顺便和我们分享一下你在互联网开发的斗争史吧!

Good afternoon my good ruby compatriots! The third Wednesday of the second moon approaches, indicating that our time to gather is near. In the time since we’ve last met, some exciting new developments have surcfaced in the ruby community: the mass-assignment security scandal, Ruby 1.9.3-p194, and a very interesting ruby-on-iOS solution. What else have you seen in your ruby travels? Come, relax, share some fine ale and tell us your war stories from the world of web development.

时间/When: May 16, 7:30 PM

地点/Where:Kudelabs 明月一路59号, 汉苑 西塔601

地铁/Metro:五羊村A出口/Line 5 - Wu Yang Cun, Exit A

希望到时能见到你的身影!如果你有什么好的想法,发到邮件列表告诉我们吧!

We look forward to seeing you there! If you have any topic ideas or plans, let us know on the mailing list.

Notes from 第五聚会/meetup #5

Happy group members

OK, this is a bit late. The last gzruby meeting we held, on March 21, was a great success: we had visitors from Shenzhen and a Rails hero from the US; we imbibed some great beer made by one of our members; and to top it all off we had some really fun and exciting presentations.

  • Working with Bootstrap http://twitter.github.com/bootstrap/

    With Rails, we have a very stable and mature back-end framework that allows us to write code in a standard way. Bootstrap from Twitter provides a similar functionality for the front-end. Rather than rolling your own css again and again, bootstrap gives you a standard way to layout your HTML pages, a standard way to style buttons and other elements, and it is generally much better than anything you could come up with on your own.

    Presented by Leon Du (slides)

  • Introducing Web-App-Themes https://github.com/pilu/web-app-theme

When starting a new app, we have to choose how to style it. We want it to look nice, but don’t want to spend time designing colors or write out tons of markup. Web App Themes takes care of this for us. But rather than an engine or an almost ready made app, it simply helps you generate HTML and CSS for you to use as you see fit. For certain projects where you just need to get started with some reasonable good looking HTML and CSS, Web App Themes may be your best option.

Presented by @shaokun

  • The Wonders of Pry https://github.com/pry/pry

    Pry is an IRB replacement that will knock your socks off. William certianly knocked our socks off with his presentation! Imagine being able to treat your entire ruby process’ object space like a simple filesystem, where you can travel down paths to inspect data, cd .. to go back, and search down another branch. You can even ask questions like “Which method on (this object) could give me (this result)?” If you are a ruby developer and haven’t seen pry, you need to give it a look.

    To invoke pry in your rails app, just add the line: (require pry; binding.pry) #!!

    Presented by William

  • Rails App Templates http://railsapps.github.com/

    The Rails ecosystem is full of choices, you’ve got gems and engines, fixture generators and testing frameworks. This can get overwhelming as technologies change fast. That’s where this project comes in. It attempts to provide up-to-date documentation on the latest best-practices with Rails. Whether its building apps that use Devise for authentication, or how to integrate bootstrap into Rails, Rails Apps has you covered. Check out their extensive list of template apps and detailed tutorials.

    Presented by Daniel Kehoe


Thanks very much to our presenters for sharing. We really appreciate that you stood up to share what you’ve been working on or show us something that may help us in our daily work. We hold these meetings to learn from each other, so be sure to give yourself some time to show other developers what you have learned.

See you at the next meeting, scheduled for Wed, May 16, 2012

第五次聚会/Meetup #5

Ruby开发者们,我们又来了!咱们小聚一下,分享过去这几个月我们在Ruby领域上面所关注的,学习的。瞧瞧,Rails 3.2发布了,还有ruby 1.9.3-p125Spree 1.0,在这里有许多很酷的东西值得我们去分享和讨论的。你还可以谈谈你在github上面有趣的项目,或者一些新颖的工具,或者一个帮助我们更快地coding的小技巧,我们都希望你能跟咱们分享!

Hey rubyists, its that time again. Time for us to gather, to celebrate, and to share what we’ve learned over the last few months. Lets see, Rails 3.2 is out now, ruby 1.9.3-p125, Spree 1.0, and of course the excellent RedDotRubyConf - lots of cool stuff for us to look at and discuss. So think about your favorite github projects, any new tools you’ve come to love, or any tricks you’ve got that help you code faster, and come share with us.

时间/When:March 21, 7:30 PM

地点/Where:Kudelabs 明月一路59号, 汉苑 西塔601

地铁/Metro:五羊村A出口/Line 5 - Wu Yang Cun, Exit A

希望到时能见到你的身影!如果你有什么好的想法,发到邮件列表告诉我们吧!

We look forward to seeing you there! If you have any topic ideas or plans, let us know on the mailing list.

Notes From 第四聚会/Meetup #4

Last Wednesday, Jan 11th we held our fourth meetup. Again, we had a wonderful time getting to know fellow rubyists. There were quite a few new faces, including visitors from Denmark, and new members from Singapore. We love to meet new people, so if you have friends or know anyone who may be interested, please bring them along next time.

As is our custom, we started the meeting with general introductions, then went into our talks for the evening. Here are some notes on the topics presented:

  • Introducing http://www.gzruby.org

    The official blog for gzruby. We plan to use the blog to record our meetings and as a landing page for Ruby and Rails in South China. As our organization grows, we hope people continue to find the blog and that makes it easier for them to find the group and come to a meeting. This is the site for our community, so please make suggestions or contribute directly. The source is on github.

    Presented by @adevadeh

  • Zero-config local servers - pow http://pow.cx

    This is a great way for developers and testers to run apps locally. Why not use rails server you may ask? Because rather than starting and stopping your app all the time, your pow server will just keep your app running. You don’t need to fuss about with ports, so it’s easy to run multiple apps at the same time. If you are working with any oauth APIs such as the Facebook API, you need a real domain name for your test app; pow gives you a really easy way to set that up. Don’t forget, you should also check out the pow helper gems to make things even easier.

    Presented by HuiMing

  • The Joys of seed-fu https://github.com/mbleigh/seed-fu

    Making sure your Rails app has the right data to start things off can get really cumbersome. seed-fu helps make the process a little more streamlined and friendly. You can easily specify objects that need to be created and stored in your DB every time you start your app.

    Presented by Kevin

  • The Future of Personal Robotics (slides)

    A very interesting talk indeed. We looked at where cheap robots are today, and what we could do to take them to the next level. We already have cheap robots that can move on their own, react to humans, and perform basic tasks. To expand the abilities of these robots, we could make the brain on the robot more sophisticated and expensive. But why not move the brain to the smartphone? This way we can add complex behaviors that interact with humans and the cloud. Robots from http://arexx.com.cn were demonstrated. Who knows, maybe soon we’ll have a my_robot gem that allows you to write apps to control a domestic helper robot.

    Presented by Chance Jiang


Thanks very much to our presenters for sharing. We would like to encourage anyone to present at the next meeting. You can talk about anything you find interesting, or something you find useful in your work. By sharing with each other, we learn from each other, and we all become better developers.

See you at the next meeting, scheduled for Wed, March 21, 2012

join us for gzruby meetup #4

第四次聚会 Jan 11, 7:30 PM

Hope we all had a great start to 2012!

Lets kick off the ruby year with a meeting. Note, we are moving the meeting from its normal time to accommodate the coming Spring Festival Holiday.

Look forward to seeing everyone there!

时间/When:11/1, 7:30 PM
地点/Where:Kudelabs 明月一路59号, 汉苑 西塔601
地铁/Metro:五羊村A出口/Line 5 - Wu Yang Cun, Exit A

Any topic ideas or plans, let us know on the mailing list.

Wow, this is a large meeting! Thanks for coming everyone!