Ruby on Rails

in Lithuania

Ruby Meetup'o #1 suvestinė

Labai Å¡auniai pavyko pirmasis Ruby Meetup’as!!! Dėkui visiems susirinkusiems!

Pranešimai:

Diskusijos:

  • RubyConfLT 2012 data – kol kas 2012-04-28 (jei kam nors netinka praneÅ¡kit, sekanti data bÅ«tų 2012-05-12)
  • Workshops & Meetups – nusprendėm nelyginiais mėnesiais daryti Meetup’us, o lyginiais – Workshop’us
  • OT: Ordered Hash – nubalsuota, kad Ordered Hash yra gerai :)

Primenu, kad RubyConfLT 2012 pranešėjų sąrašas dar ne galutinis ir vis dar galite pareikšti norą skaityti pranešimą.

Nedalyvavę Meetup’ę diskusijų klausimais praÅ¡om pasireikÅ¡ti rubyonrails-lt google groupse.

Beje, ieÅ¡kome Ruby on Rails/JavaScript programuotojų dirbti mÅ«sų naujame erdviame ofise!!! (susidomėjusiems raÅ¡yti į [email protected] )

Published on 29/03/2012 at 09h23 by Saulius Grigaitis Tags , ,

Pirmas Ruby Meetup'as kovo 28d !!!

Sveiki, visi!

Pagaliau subrandinom Ruby Meetup’ų įdėją ir kviečiam visus į pirmąjį Ruby Meetup’ą jau kovo 28d.

Kas yra Ruby Meetup’as? Tai kiekvieno mėnesio paskutinį trečiadienį vykstantys Lietuvos Ruby bendruomenės susitikimai, kurių metu:

  1. Pristatomi trumpi (15-30 min.) 3-4 pranešimai Ruby tematika.
  2. Susirinkusieji papildomai iškelia keletą juos dominančių temų, balsuojame už aktualiausias ir surengiame 30 min. diskusijas
  3. Susumuojame ir paskelbiame susitikimo rezultatus.
  4. Toliau specializuojamės ir socializuojamės netoliese esančiame bare

Å io Ruby meetup’o temos:

  1. TorqueBox
  2. Rubinius
  3. Konacha

BÅ«tina registracija

Laukiame visų kovo 28d. 19:00 Lūkšio g. 5B-600 (Šiaurės miestelis), Vilnius

Published on 09/03/2012 at 13h50 by Saulius Grigaitis Tags , ,

Improving university course "Agile Development with Ruby" Part I

Few years ago I started delivering course Agile Development with Ruby at the Faculty of Mathematics and Informatics of Vilnius University . It is one semester course containing one weekly theory lecture and one weekly practice lecture for BS and MS students. It’s optional course, so I expected only very motivated students will pick it. So original intention was to prepare deep course about BDD with Ruby with few other topics like advanced Ruby chapters (for example meta-programming) and Ruby on Rails web framework. I delivered and tuned this course for 4 semesters so far, but I think there are still unsolved issues and plenty space for improvements, so I’ll write problems I faced teaching students in this series of posts and I would like get your feedback.

I’ll dedicate this post for one of most problematic thing – practice tasks. Initially I decided to use common scheme that is used in our faculty – final student’s mark contains of 40% of practice results and 60% of exam at the end of course. Couple of guys that produce best apps during practice lectures gets 10 without exam. I was very serious about practice tasks, because there is no way to learn BDD without practicing it. Unfortunately it turned out that I was too serious about it…

Approach #1
Initially I decided to give 3 tasks:

  1. Ruby application (for example “Car rental software”) – 2 points
  2. Porting Ruby application to ActiveRecord – 1 point
  3. Porting entire application to Ruby on Rails – 1 point

Tasks had defined quality (not all requirements, but some like OOP, full test coverage etc.) and quantity requirements (for example – at least 50 specs). But actually it’s really hard to clearly measure code quality, so mark mainly was written based on quantity requirements. So if some student had low code quality, then I just gave him my suggestions how to improve code and if there were spare time, then he/she improved the code. But if student do not show interested in improving code, then I just focus on quantity requirements. Seems that it’s not bad approach, because then I can spend more time with motivated students instead of wasting time with unmotivated students.

Pros:

  • Tasks are really suitable for learning BDD.
  • Scope is good for very motivated students.

Cons:

  • Too big scope for average student. Even experienced Rails developer spent at least 50 hours to complete it, so for fresh guys it can take 3x or even more. Usually students don’t have so much time for optional courses.
  • Ruby on Rails learning curve is long. Convention over Configuration means a lot of learning time.
  • Not all students were comfortable writting application, because they mostly wrote algorithms previously.

So overall I was happy with results from motivated students, but very unhappy with results from unmotivated students.

Approach #2
Later I introduced simpler version of practice tasks. So there were two options – Rockstars and Mainstream. Rockstarts was exactly same as Approach #1, Mainstream was 3 tasks too, but instead of application students needed to implement algorithm. Students needed to pick algorithm that is not trivial and processes not trivial data structure, so it’s possible to implement second task that loads or stores algorithm data using ActiveRecord. Third task was just simple frontend for that algorithm. It thought I solved unmotivated students problem. I was wrong. So what Mainstream students did – they tried to pick simplest possible algorithm with simplest possible data structures, so usually it ended up with single method algorithm implementation using trivial Ruby data structures (like arrays).

Pros:

  • Different level tasks, so great students can learn a lot and implement great app, while unmotivated can complete tasks still learn something.

Cons:

  • Too easy to cheat Mainstream task and turn it into too simple implementation and completely not suitable for learning BDD.
  • Algorithm implementation isn’t good project to learn BDD, application is much better.

So I think it probably was even bigger fail then Approach #1

Approach #3
I got rid of Mainstream, so there were only Rockstars task, but instead of 4 points for practice tasks, I decided to give 6 points for practice and 4 for exam. I think that practice tasks are much more important than exam in this course. So task #1 – 3 points, task #2 – 1.5 point and task #3 – 1.5 point.

Pros:

  • Virtually it’s still two different level tasks – motivated students can implement all three tasks, while unmotivated students can implement only first task and get 3 points.
  • Student don’t need to decide which task set (harder or easier) he/she is going to take, because everyone starts with same task #1 and then motivated students can proceed on other tasks.

Cons:

  • First task is too big chunk, it definitely needs to be split in smaller tasks.

This approach was best one so far, but I’m going to proceed improvements in upcoming semesters.

Approach #4 (Upcoming)
I hope to get feedback on this one from you, maybe you will find improvements until I start to use it next semester. So basically I’m going to use Approach #3, but I’ll split first task in to 3 smaller tasks, so 1 point per each task. Main problem is how to split the task. So far best way I think about would be simply split buy quantity. Originally first task had few quantity requirements:

  1. at least 50 rspec tests.
  2. at least 5 entities (in other words Classes).

So then I’ll have three sub-tasks:

  1. at least 30 tests and 3 entities.
  2. at least 40 tests and 4 entities.
  3. at least 50 tests and 5 entities.

Any better idea?

Published on 21/11/2011 at 13h58 by Saulius Grigaitis Tags , , , , ,

RubyConfLT 2011 skaidrės

Sveiki!

dar kartą dėkojame RubyConfLT 2011 pranešimų skaitovams ir dalyviams, MIF STSC už suteiktas patalpas, Hub Vilnius už suteiktą prizą ir visiems kitiems prisidėjusiems prie šios konferencijos!

Konferencijos skaidrės:

Konferencijos akimirkos:

Iki sekančios jubiliejinės RubyConfLT 2012 !

Published on 13/06/2011 at 17h29 by Saulius Grigaitis

RubyConfLT 2011 !

Sveiki visi! Kasmetinė RubyConfLT 2011 jau visai čia pat – birželio 4d. VU MIF STSC (Vilniaus universiteto Matematikos ir informatikos fakulteto skaitmeninių tyrimų ir skaičiavimų centro) konferencijų salėje Å altinių g.1A, Vilnius . Å iais metais konferencija tapo dar atviresnė, tad sudalyvauti verta ne tik Ruby entuziastams, bet ir daugumai IT srities atstovų – pranešėjai kalbės apie Agile, didelės apkrovos sistemas, bei kitų technologijų palyginimus su Ruby. Po konferencijos “after-partyje” laukia gyvos diskusijos su didelę patirtį sukaupusiais Ruby entuziastais! Visi nespėjusieji dar gali registruotis čia.

Konferencijos programa:

  • 10:00 “Extremalus programavimas Ruby komandose” – Saulius Grigaitis
  • 11:00 “Realaus laiko metrikų sistemos architektÅ«ra” – Andrius Chamentauskas
  • 12:00 “Ruby vs. Scala” – ArtÅ«ras Å lajus
  • 13:00 “Ruby interpretatoriai” – Julius MarkÅ«nas
  • 14:00 “Ruby iÅ¡plėtimai C kalba” – Pranas Kiziela
  • 14:30 “Scaling Ruby on Rails” – Justas Janauskas
  • 15:30 “CoffeeScript ir SCSS Rails’uose” – Rimantas Liubertas
  • 16:00 After-party!

Iki!

Published on 23/05/2011 at 10h57 by Saulius Grigaitis

RubyConfLT 2011 pranešimų registracija

Sveiki,

Preliminari konferecijos data: antra gegužės pusė.
Prelimenari konferencijos vieta: VU MIF (Vilnius).
Formatas: ~8 pranešimai po 30-60min., valandos pietų pertrauka, after-party po konferencijos.

Visi norintys skaityti praneÅ¡imą turite atsiųsti laiÅ¡ką į [email protected] iki 2011-05-01 su informacija:

  1. Vardas Pavardė;
  2. Užimamos pareigos, atstovaujama įmonė/organizacija;
  3. Pranešimo tema;
  4. Trumpas aprašymas apie pranešimą.

Noriu paskatinti siūlyti pranešimus ne tik ilgamečius pranešėjus, bet ir naujus žmones, RubyConfLT puiki proga pašnekėti ;)

Iki!

Published on 20/04/2011 at 13h36 by Saulius Grigaitis

Ruošiamės RubyConfLT 2011 !

Sveiki !

Nors žiema vis dar niekaip nebėga iš kiemo, pavasaris, o kartu ir kasmetinė RubyConfLT, nenumaldomai artėja. Ruby entuziastų ratas nuolat plečiasi, todėl šiais metais tikime sulaukti dar daugiau pranešėjų ir dalyvių. Visus skatinu pasvarstyti, gal šiais metais pranešimą gali padaryti ir Tu ;) Tiek balsuoti už patinkančias temas, tiek ir pasiūlyti savo galima RubyOnRailsLT groupse . Kelios temos pradžiai:

  • Realaus laiko metrikų sistemos architektÅ«ra
  • Ruby C extensions
  • Ruby interpretatorių palyginimas
  • Scaling to millions

Published on 19/02/2011 at 10h24 by Saulius Grigaitis

Ruby/Rails workshop'ai

Pasiekė žinia iš Vidmanto:

Praėjusiais metais startavę Ruby/Rails workshopai šį savaitgalį (spalio 2 d.) atidaro naują sezoną! Jei ir tau įdomu neformalioj aplinkoj praplėsti akiratį, pabendrauti ir pasidalinti žiniomis, šeštadienį užsuk į MIF Vilniuje. Idėja, formatas ir visa kita informacija čia.

Published on 29/09/2010 at 11h57 by Saulius Grigaitis

RubyConfLT 2010 skaidrės

Sveiki,

dar kartą dėkui visiems pranešėjams ir konferencijos dalyviams! Puikiai praleidom laiką, sužinojom naujų ir naudingų dalykų, praplėtėm pažįstamų ratą. Žadėtos skaidrės:

Patirtis kuriant Ruby on Rails didelės apkrovos sistemas – Saulius Grigaitis
IRB arsenalas – Eimantas VaičiÅ«nas
Žaidimų serverio kÅ«rimas su Ruby – ArtÅ«ras Å lajus
ERB alternatyvos – Vidmantas KaboÅ¡is
Metaprogramavimas Ruby ir Rails: apžvalga ir pritaikymas – Remigijus Jodelis
Testinių duomenų pakrovimo bÅ«dai – Andrius Chamentauskas
Objektų serializavimo bÅ«dai – Remigijus Jodelis

Foto:

Saulius Grigaitis

Eimantas Vaičiūnas

Artūras Šlajus

Remigijus Jodelis

Andrius Chamentauskas

RubyConfLT Speakers

Iki kito susitikimo!

Published on 24/05/2010 at 23h04 by Saulius Grigaitis

Powered by Publify Theme Frederic de Villamil | Photo Glenn