Uplevel e-solutions

Webware and Rich Internet Applications

Seaside and Rails

Last time there was an another great article about Smalltalk called Back to the future for Smalltalk. Looks like a smalltalk back to the game :) It’s maybe the same history like a Ruby, today Ruby is really popular because DHH created Rails. But in Smalltalk we have Seaside which is also outstanding. Im generally a Ruby programmer, now im working with Squeak. I just wanna try how productive could I be with Seaside. Today I was a little worry about generally Squeak performance because there are many tests where people said “Ohh no ohh no, its so slow in this hello world test”. But after that I realized how long i was working with Ruby and Rails, and i’ve never had problems with performance at all. What is more Smalltalk is even faster than Ruby. So for me more important is how productive these frameworks are (and both are so efficient) than thousand extremelny weird speed tests. In one test someone said that Java is so cool, it’s so fancy and generally great because it’s faster than Ruby and Smalltalk. But I don’t care about performance if i must write thousands lines of Java code which displays simple “hello world”, I can do the same in one line here.

Here is a short video about comparison Rails and Seaside (rather developing style). Another demonstrates that Seaside is a sever and an IDE in one. But what is the most important I watched Giles Bowkett really interesting presentation about Rails and Seaside and here is it:
Seaside and Rails (The 2007 Goto) from giles goat boy on Vimeo.

  • Comments
  • Filed under: Ruby, RubyOnRails
  • MagLev - smalltalk and ruby works together

    Everybody last time (since last RubyConf) are talking about MagLev. What the MagLev generally is ?

    MagLev is a Ruby VM based on the GemStone S64 VM, which runs Smalltalk (my favorit last time). The Smalltalk VM has been extended with special byte codes to make it Ruby (also my favorit) compatible. GemStone’s Smalltalk VM has been used for over 20 years in sectors such as real time financial markets and the worldwide shipping industry. It as a mature, fast, stable, distributed, and transactional data store which can hold over a trillion objects or 17PB (Petabytes) worth of information. The goal of the MagLev project is to bring this distributed object technology to the world of Ruby on Rails.

    Here is a vide from RailsConf:


    MagLev presentation at RailsConf 2008 - part 1 from Monty Williams on Vimeo.

    Other interesting resources:

    Chad Fowler about MagLev
    MagLev, JRuby, And Rubinius: Who Will Win?
    Avi Bryant - MagLev Recap

  • Comments
  • Filed under: Ruby
  • JRuby power !!

    If you just started to work with Ruby and if you are the Java Developer this is the most powerful solution for you - JRuby. That’s the magnificent synergy between power of Java( millions libraries, millions projects in whole world, millions Java programmers) and Ruby ( always giving productivity and fun). If you haven’t tried JRuby yet, there is a video you should see: JRuby: The power of Java and Ruby. Simple speaking it’s an 100% pure-Java implementation of the Ruby programming language. Of course we can using Ruby On Rails or Merb with it now :) Current version is 1.1.2 and it gives really good performance (opposite to the groovy which I was talking about last time). All your JRuby projects can be started later with for example GlassFish server.

    There is another interesting tool called JtestR - that will make it easier to test Java code with state of the art Ruby tools (RSpec, Test/Unit, dust, mocha and Active Support).

    So now the only way is to download it and start using :)

  • Comments
  • Filed under: Java, Ruby
  • Business Natural Languages (BNL) w Ruby

    Ruby znakomicie sprawdza się w Metaprogramowaniu (przykład) i DSL (Domain Specific Language) - widać to dobrze po RSpec. Jay Fields przedstawił koncepcję BNL(Business Natural Languages) i to jak zaimplementować ją w Ruby. BNL to rodzaj DSL’a, który ukierunkowany jest na czytelność, dostępność, zrozumiałość dla ekspertów rożnych dziedzin. Ideą jest to, że ci eksperci niekoniecznie muszą umieć programować w tym języku, powinni natomiast łatwo rozumieć to co on sobą logicznie reprezentuje. Jak każdy DSL, istotą jest tu napisanie kodu, który jest bardzo czytelny (”ludzki”), wydajny, logiczny i stanowi zarazem dokumentacje całego procesu.

    W poniższej prezentacji Jay mówi o tym, co stało za potrzebą stworzenia BNL-a, pokazuje proces tworzenia oraz przykłady z biznesowych prawdziwych projektów. Materiały i dokumentację można znaleźć tutaj.

    Link do prezentacji: Business Natural Languages Development

  • Comments
  • Filed under: Ruby
  • Cells niesie ze sobą to co w Ruby On Rails sie nie udało, czyli moduły, czyniąc to bez straty dla wydajności co pierwotnym modułom też się nie udało. Każda komórka (Cell) jest jak niewielki lekki kontroler (wraz z odpowiadającymi widokami), który można użyć wszędzie w naszej aplikacji. Jest to bardzo interesująca rzecz, która pozwala budować aplikacje zorientowane bardziej komponentowo.

    Kolejna rzecz to Apotomo - jest to stanowy (stateful) komponentowy framework dla Railsów. Posiada on bazujące na Cells widgety do implementowania logiki aplikacji (wielokrotnego użytku). Strona nie musi być już budowana jednym monolitycznym kontrolerem, ale może być definiowana za pomocą zagnieżdżonego drzewa widgetów :) . Całość w każdym razie wygląda bardzo fajnie (dziś zacząłem używać :) ). Warte uwagi jest też, że Apotomo zostało porównane do Seaside frameworka napisanego w języku Smalltalk.

    Warto odwiedzić tą liste mailingową, gdzie ludzie, do których się dołączam od dzis :p tworzą i używają stanowe, komponentowe frameworki. Może to pozwoli frameworkom Ruby być jeszcze lepszymi :)

  • Comments
  • Filed under: Ruby, RubyOnRails
  • Rubinius powstał w celu stworzenia najszybszej maszyny wirtualnej Rubiego oraz łatwego i szybkiego rozwoju dla samego języka Ruby. Podejście jest tutaj następujące: ponieważ implementacja wirtualnej maszyny napisana jest w Ruby i ma ona do czynienia właśnie z Ruby, znacznie łatwiej będzie rozwijać język. Niedawno Evan Phoenix na swoim blogu, doniósł że udało im się w końcu uruchomić Ruby on Rails, jest to kolejny sukces po tym jak uruchomili już framework Merb :)

    Rubinius nawiązuje do 30 lat doświadczeń Smalltalka. Jest w nim dobrze zaimplementowana wielowątkowość (Channels, Actors, Tasks, Threads). Rubinius napisany jest w oparciu o metodologię TDD/BDD, głównie we frameworku RSpec. Aby zobaczyć postęp prac lub też dołączyć do projektu warto odwiedzić Rubinius project on Lighthouse. Cały projekt jest niewątpliwie bardzo interesujący !:) Obecnie wszystkie prace są raczej prowadzone pod kątem funkcjonalnym niż wydajnościowym, czyli będzie dużo lepiej :) .

  • Comments
  • Filed under: Ruby
  • Ruby On Rails VS CakePHP

    Stary motyw od chłopaków z RailsEnvy :) Jednak bardzo prawdziwy. Tak sobie właśnie myślałem, że niemożliwe jest osiągnięcie sukcesu w budowaniu Mercedesa mając do dyspozycji skorupę malucha. Mimo ciągłego wzorowania się na tym Mercedesie, to dalej pozostanie tylko zardzewiały maluch. Dzieje się tak dlatego, że najważniejsze są środki do jego budowy. Mercedes ma do dyspozycji bardzo elastyczne, potężne narzędzia (Ruby), natomiast maluch, nędzny silnik i zardzewiałą blachę (PHP). Wynik tego pojedynku jest oczywisty. “Inżynierowie” od tego malucha często jednak mówią “aaa bo maluch kosztuj 5 razy mniej niż twój Mercedes” (Hosting). Jednak ktoś trzeźwo myślący, wybierze to co jest ważniejsze: mieć popsutego taniego malucha, czy jeździć na wakacje mercedesem.

  • Comments
  • Filed under: Ruby, RubyOnRails
  • MERB rośnie w siłę !

    Merb to lżejszy, szybszy (lepiej przemyślany) odpowiednik Ruby On Rails, stworzony przez Ezre Zygmuntowicza. Mi osobiście podoba się bardziej, ma znacznie ciekawszą architekturę, pozbawioną wielu błędów z frameworka Ruby on Rails. Oczywiście nie jest on na razie w stanie zastąpić całkowicie Railsów, nie we wszystkich zastosowaniach. To co mnie cieszy to ciągły jego rozwój jak i społeczności w okół niego. Merbunity to nowy dedykowany portal (newsy, projekty, tutoriale) właśnie dla Merba. Nie ma tam jeszcze zbyt wiele, ale fajnie sie zapowiada :). Oprócz tego godnym uwagi jest Merb wiki, Merb book, coś co nazywa się “How to create a chat wall” tutorial czy też własność Ruby Inside list of 21 Merb links, tutorials, and other resources. Mam nadzieje, że uda mi sie w koncu napisać w Merbie jakiś projekt, bo jak dla mnie wygląda on znakomicie ;)

  • Comments
  • Filed under: Ruby
  • Appcelerator to otwarta platforma (na licencji GPL 3) do tworzenia zintegrowanych aplikacji RIA + SOA. Jest to połączenia możliwości jakie niosą ze sobą aplikacje RIA oraz SOA (Service Oriented Architecture). Wraz jednak z pojawieniem się Google App Engine twórcy postanowili wykorzystać udostępnioną przez Google infrastrukturę. Appcelerator to narzędzie, którego architektura zorientowana jest na wymianę komunikatów (Message Oriented Architecture). Powoduje to znaczne przyspieszenie tworzenia aplikacji, a dzięki oddzieleniu warstwy prezentacji (client side) od warstwy logicznej (server side) możliwe jest używanie wielu języków programowania : Ruby, Java, PHP, .NET, Python i Perl. Więcej szczegółów tutaj:What is appcelerator

  • Comments
  • Filed under: Flex, RIA, Ruby, RubyOnRails