Viser arkivet for stikkord rails

Rart problem

Hei,

Jeg har støtt på et problem som jeg ikke klarer å finne ut av og hører med godtfolk her om noen har noen ideer som kan føre til en løsning.

Problemet er som følger:

Et enkelt blogg system som kjører på en ubuntu, rails 2.2.2, apache+mongrel. Det som skjer er at etter midnatt så hentes det ikke ut nye blogg innlegg uten at jeg restarter mongrelsene. Jeg har ikke sett eller hørt noen andre som har vært borti noe lignende og jeg klarer ikke å reprodusere dette på localhost.

Takker på forhånd for eventuelle forslag på hva som er galt.

Tom Henrik

Rails i Norge

Har ett mulig prosjekt paa vei der jeg vurdere aa bruke rails (norsk nettsted).

1.) Lurte paa hvor vanskelig det er aa finne folk i Norge som kan vedlikeholde
ett slikt nettsted – bor selv i utlandet med vedlikehold maa gjoeres lokalt.

2.) Hvordan er det med webhosting der? Er det vanligvis stoette for rails?

Las Vegas

Hallo! Er det flere enn meg som skal på Rails Conf i vegas i mai? Det hadde eventuelt vært kult å blitt kjent med flere nordmenn som skal dit.

Rails-reloading og moduler?

Jeg hadde håpet å kunne brekke opp ApplicationController i flere mixins. Sånn:

class ApplicationController < ActionController::Base
  include ThingSupport
  include OtherThingSupport
  ...

…hvor f.eks. ThingSupport er deklarert i en annen fil slik:

module ThingSupport
  def thing
    ...
  end
end

Det går fint, men når jeg sitter og utvikler vil ikke Rails laste om disse mixin-modulene når jeg endrer dem—selv ikke om jeg manuelt henter dem inn med require_dependency. Jeg må restarte hele Rails-prosessen.

Dette er Rails 2.2, og jeg husker jeg savnet denne funksjonaliteten i Rails 1.1—har Rails virkelig ikke kommet lengre i mellomtiden?

Ruby Bergen

Heisann!
Satt på pub i går med ein kompis og lurte på hvorfor det ikke er en Ruby gruppe i Bergen.
Bur du i Bergen? Kjenner noen i Bergen som kunne vært intressert i dette?
Vi er iallefall to personer, men kunne vært greit med flere.
Kommentér!

Mvh,
AmundS

Webgrensesnitt for internasjonalisering

Newsdesk i Sverige har laget en Rails-plugin som gir et webgrensesnitt for redigering av internasjonaliserings-strenger i Rails-appen din Pluginen fungerer med Rails 2.2.2, og kan sikkert være kjempenyttig hvis du bruke I18n-funksjonene i Rails.

Enkel og godt betalt jobb over 2 dager! Tjen 15 000.

Hei! Søker en Ruby-koder til å fullføre et lite nettsideprosjekt. Vår forrige koder kunne dessverre ikke være med lenger, og nå trenger vi akutt en som kan legge siste hånd på verket. Lønna er 15 000 kr og arbeidet er estimert til å ta ca 2 dager.

Siden er kodet i ruby on rails, html/css og javascript. Servern den ligger på er en linux debian server med apache 2, mongrel clustring
og postgresql. Selve løsningen er basert på juggernaut, I18n, globalize2 og et par andre
plugins.

Høres dette interessant ut for deg eller noen du kjenner? Ta kontakt på 922 900 59 snarest! Haster!

Rails + Merb = Rails 3

For de som ikke har fått det med seg enda slås Merb og Rails sammen til det som blir Rails 3.
Det blir staselige saker!

Sammenslåingen betyr bl.a følgende (klippet og limet fra http://yehudakatz.com/2008/12/23/rails-and-merb-merge/)

What does that mean exactly?

  • Rails will become more modular, starting with a rails-core, and including the ability to opt in or out of specific components. We will focus on reducing coupling across Rails, and making it possible to replace parts of Rails without disturbing other parts. This is exactly what Merb means when it touts “modularity”.
  • We will port all of our performance improvements into Rails. This includes architectural decisions that are big performance wins. This project will also include the creation of one or more benchmarking applications, so we can more clearly see what optimizations have real-world impact.
  • As of Rails 3, Rails will have a defined public API with a test suite for that API. This was one of the major differentiators of Merb. This will allow users and plugin developers to have a clearer, more stable API to build against. It should also significantly reduce plugin breakage from release to release.
  • Rails will be retrofitted to make it easy to start with a “core” version of Rails (like Merb’s current core generator), that starts with all modules out, and makes it easy to select just the parts that are important for your app. Of course, Rails will still ship with the “stack” version as the default (just as Merb does since 1.0), but the goal is to make it easy to do with Rails what people do with Merb today.
  • Rails will be modified to more easily support DataMapper or Sequel as first-class ORMs. While ActiveRecord will ship as the default ORM, the plan is to make it drop-dead easy to drop in other ORMs without feature degradation (to the extent possible, of course).
  • Rails will continue their recent embrace of Rack, which is a really exciting development in the Ruby community that Merb got in on early and which we believe will improve the state of modular, sharable logic between applications.
    In general, we will take a look at features in Merb that are not in Rails (the most obvious example is the more robust router) and find a way to bring them into Rails.

For mer informasjon:
http://rubyonrails.org/merb
http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3
http://yehudakatz.com/2008/12/23/rails-and-merb-merge/

God jul!

Skjemavalidering

Heisann,

mitt første innlegg her, og jeg er redd det er skamløs selvpromotering… Jeg jobber med en Rails-plugin og tenkte at dette var beste stedet å henvende seg for litt innspill.

For en liten stund siden tilgjengeliggjorde jeg en Javascript-dings for å gjøre unobtrusive skjemavalidering på klienten (Validatious og annonseringen).

Nå har jeg begynt å jobbe med en plugin til Rails som eksponerer valideringer i domenemodellen direkte til dette klientsidebiblioteket, med den effekt at man kan få unobtrusive skjemavalidering på klienten uten å duplisere valideringslogikken. Det gjenstår en del ting før pluginen er brukandes, foreløpig er det mest for å se at det fungerer.

Grunnen til at jeg skriver her er selvfølgelig fordi jeg ønsker tilbakemeldinger på pluginen – hva som kan være nyttig, hva som ikke er det, hva som er dårlig osv. En beskrivelse av det jeg har sålangt finnes på bloggen min

Hva tror folk?

Ruby 1.9 og Rails?

Er det noen her som kjører Ruby 1.9 og Rails på produksjonsservere og har noen erfaringer å dele? Jeg mener å ha hørt at Rails nå kjører fint på 1.9, men jeg finner ingen oppdaterte artikler som bekrefter dette, og jeg vil gjerne få et bedre inntrykk av hvorvidt det overhodet er noen vits i å prøve.

Rails på bokmål og nynorsk

Benyttet sjangsen hin dagen til å oversette Rails til bokmål, nynorsk og islandsk. Fra Rails 2.2 av, vil dere kunne bruke nb.yml, nn.yml og is.yml. Takk til Hans-Christian, August, Terje og Kent for innspill.

Dugnad: RubyOnRails.no

rubyonrails.no

Hei

Det har pågått en lang diskusjon i denne tråden om en bra norsk rubyonrails side.

Fordi den tråden begynte et helt annet sted, setter jeg opp en ny!

For å oppsummere:

Da jeg kom til rails viste jeg for eksempel ikke hva et array, hash eller variabel var. Helt grønn, med andre ord. Jeg har lært ved å lese bøker, se filmer og søke på nettet, alt på engelsk. Selv om det er mange gode pedagoger der ute, har noen enkle prinsipper tatt lang tid å få inn under huden. Derfor er det veldig befriende å finne litt info på norsk. Jeg snublet over wikiboka til August Lilleaas og senere Ståle Zerener Haugnæss Introduksjon_til_Rails.

Det finnes mer, så jeg tenkte vi må samle det på et sted for norske rubister og railsere.

Jeg fikk tak i Torbjørn Tiltnes som eier domenet rubyonrails.no. Han er også relativt ny til rubyonrails (Jobber med ASP til daglig…..) og hadde i utgangspunktet den samme ideen om en norsk side for rubyonrails da han kjøpte domenet.

Vi tok en nesten 3 timers kaffe i dag og diskuterte hvordan vi kan få til dette prosjektet.

Fordi dette er et dugnadsprosjekt, er det veldig lett å ta seg vann over hodet. Vi bør derfor dele det opp slik at vi lager det viktigste først og fyller på med ting etterhvert.

I første omgang bør vi ha:

  • En blogg med kommentarer (For de litt med avanserte temaene)
  • Statiske sider med innføringer, linker til ressurser og generell info.
  • Video/lyd fra rubytuesday, andre samlinger og tutorials (hvis noen vil lage)

I andre omgang tenkte vi at vi kunne legge til

  • Forum
  • Railsjobb ala railswork
  • Et område hvor railsbaserte firmaer kan presentere seg selv ( Ja, gratis reklame mot arbeidstakere og kanskje til og med mot kunder)

Det vi er i gang med:

  • Marius Mathiesen tror han kan få til litt plass på en shortcutserver
  • Torbjørn Tiltnes har det flotte domenet og et flott design
  • Jeg har begynt på appen for CMS og blogg

Er det noen som har lyst til å bidra? For eksempel begynne å skrive innlegg i bloggen, veiledninger eller kode til appene vi trenger.

Har dere noen ideer? Virker planen god eller bør vi gjøre ting på en annen måte eller i en annen rekkefølge?

Nordisk konferanse på gang

På Railsconf europe forrige uke diskuterte en gjeng skandinaver muligheten for å arrangere en nordisk konferanse om Ruby/Rails rett over nyttår. DHH er i ferd med å flytte til Sverige i noen måneder, og det burde derfor være mulig å få ham til å presentere på en konferanse i nærmiljøet.

Hopp over til Google-gruppa for Nordic rails og delta i diskusjonen om du er interessert!

[Edit: Har fikset linken etter at gruppa ble omdøpt]

Internasjonalisering av AR meldinger i Rails

Kan noen anbefale en plugin eller teknikk for å oversette standardmeldingene i ActiveRecord validering til norsk?
F.eks: Jeg vil få “Passordet er for kort” i stedet for “Password is too short”.

Og jeg vil helst slippe å hardkode feilmeldingen i Ruby koden.

Jeg vet det finnes flere plugins, gettext hacks osv. Hva foretrekker dere?

Data fra Rails på Mac/iPhone

ObjectiveResourcePreview

Vi var en gjeng som satt sammen og lærte oss Objective C sammen igår, og langt utpå kvelden fikk vi det for oss at vi skulle se hva som skal til for å få tak i data fra Rails inn i en Mac-applikasjon. Stikkordet er (selvsagt) ActiveResource, og det tok faktisk ikke så lang tid å få noe til å fungere.

Vi tok utgangspunkt i brukerlista fra Beast på Smidig.no-forumet – og laget en klasse Person med en metode findAll som returnerer noen Person-objekter fra Beast. Da vi hadde fått noe til å fungere trakk vi funksjonaliteten ut fra Person-klassen til en ActiveResource-klasse og fikk Person-klassen til å arve fra denne istedet – dermed hadde vi en klasse som man kan extende i sin egen klasse og som deretter mer eller mindre kan hente ut objekter fra en hvilken som helst Rails-applikasjon.

Vi diskuterte en god del fram og tilbake om vi skulle la feltene/variablene vi får fra ActiveResource være instansvariabler definert i klassen eller om vi skulle bruke et hash (en dictionary i Objective C), og endte opp med det første – altså at man må deklarere instansvariablene i klassen. Dermed må man i header-fila for klassen sin (Person i dette tilfellet) deklarere hvilke attributter som finnes i modellen. I tillegg må man implementere en klassemetode som returnerer URLen man henter objektene fra i klassen


@implementation Person
+(NSString *)site {
	return @"http://forum.smidig.no/users.xml";
}
@end

@interface Person : ActiveResource {
	id bio;
	id bio_html;
	id display_name;
        // Legg til flere nedenfor
}
@end

Da jeg så kom hjem bare måtte jeg se hvor vanskelig det kunne være å legge et GUI oppå dette. Jeg laget meg et nytt Cocoa application-prosjekt i XCode, kopierte inn ActiveResource og Person klassene inn i prosjektet, la inn en tabell (NSTableView) og laget en liten controller. Jeg anga at controlleren min skulle være data source for tabell-viewet – slik at denne får ansvaret for å levere innhold til tabellen.

Måten dette fungerer på i Cocoa er at et objekt som er data source for en slik tabell må svare på to metoder som tabellen sender til den når det er nødvendig:

  • en metode som returnerer antall rader tabellen skal inneholde
  • en metode som returnerer et objekt som skal vises i en angitt kolonne i en angitt rad i tabellen

Jeg satte derfor controlleren opp til å lage et array people ved initialisering, som inneholder resultatet av findAll-metoden til Person-klassen – og returnerer deretter antall elementer i dette arrayet som svar på den første metoden over (antall rader tabellen skal inneholde).

Deretter anga jeg en identifikator for hver av kolonnene i tabellen som er den samme som navnet på instansvariabelen jeg ønsker å hente fra Person-objektet. Slik kunne jeg bruke Key Value Coding til å hente riktig verdi fra objektet i controlleren:


-(id)tableView:(NSTableView *)tv 
	objectValueForTableColumn:(NSTableColumn *)tableColumn
		   row:(int)row
{
	Person *currentPerson = [people objectAtIndex:row];
	return [currentPerson valueForKey:[tableColumn identifier]];
}

Klikket “Build and Go” og fikk opp skjermbildet du ser et annet sted på siden. Om du har veldig lyst å prøve å kjøre appen finner du den her

Ettersom iPhone-plattformen er omtrent identisk med “vanlig” Cocoa regner jeg ikke med å bruke mye tid på å lage en iPhone-versjon av samme “applikasjon”, den største forskjellen blir nok mangelen på garbage collection på iPhone. Jeg mistenker at det vil være veldig praktisk å ha tilgang på Rails-data gjennom en Objective C-variant av ActiveResource for alle de iPhone-applikasjonene som finnes der ute.

Noen som vil være med på neste Cocoa night og lære Objective C sammen?

Ramaze, et lite webapp-rammeverk for Ruby

Et intervju med folkene bak Ramaze, et lite webapp-rammeverk for Ruby.

Lately the Ruby community has experienced a surge of new web frameworks. Most of them are respectable and promising open source projects created by people who tried to create lightweight but valid alternatives to Rails. Do I think that they will rise to fame just like Rails did? Of course not, but they are not hopeless copycats either, because they express a different “software opinion” while maintaing similar but not identical goals. I think it’s important to give proper exposure to the most up and coming ones. Besides Rails and Nitro, by now most of you will have heard about Ezra’s excellent Merb and _why’s Camping, but would you be interested in the framework with the following characteristics?

Ramaze er et svært attraktivt lite rammeverk når man ikke ønsker all baggasjen som følger med store systemer som Rails og Merb. Med Ramaze kan du integrere et webgrensesnitt inn i en applikasjon uten å være underlagt strukturen og konvensjonene til Rails. Designmålene likner således på andre “mikrorammeverk” som Camping.

Rails 2.x, load paths og dependencies

Jeg driver og oppgraderer Origo fra Rails 1.2 til Rails 2.1, og de har tydeligvis omrokkert på initialiserings-sekvensen. Tidligere hadde vi følgende i environment.rb, etter config-initen, for å automatisk laste inn en haug med mixins, “acts” og slikt:

Dir.glob("#{RAILS_ROOT}/app/{services,components,caches}/**/*").each do |name|
  require file if File.file?(file)
end

Dette fungerer ikke lenger—Rails laster nå inn kontrollere og modeller i selve initialiseringen, og det er for sent å gjøre det etterpå. Og jeg tror det er for tidlig å gjøre det før initialiseringen. Jeg kan selvfølgelig putte dette inn i application.rb, men jeg har først lyst til å høre hva folk tror er den riktige framgangsmåten.

Enkel og robust måte å invokere Rails-actions?

Jeg skriver et lite benchmarkings-rammeverk og trenger å programmatisk invokere actions i en controller, uten å faktisk starte Mongrel.

En løsning er å bruke test-rammeverket:

require "config/environment"
require "application"
request = ActionController::TestRequest.new
request.host = "origo.no"
request.query_parameters = {
  :controller => "site", 
  :action => "global"}
response = SiteController.process_test(request)

Det er flere problemer med denne metoden:

  • Requesten går ikke via routes-maskineriet, så parameterne må spesifiseres som en hash.
  • Av en eller annen grunn må jeg eksplisitt kalle metoden på kontrolleren.
  • Rails finner ikke ApplicationController med mindre jeg eksplisitt requirer application.rb.
  • Rails skriver til slutt ut en unødvendig liten snutt til stdout om hvor mange tester den kjørte.

Alternativt kunne jeg startet en Mongrel og kjørt HTTP-requests mot den. Jeg har ikke sett på hvor enkelt det er å instansiere en Mongrel med en Rails-dispatcher, men det er kanskje ikke så ille. Hva anbefaler dere?

Ditt favoritt-javascript-bibliotek på Google!

En kjapp notis, bare. Google tilbyr nå “gratis hosting” av forskjellige javascriptrammeverk på sin infrastruktur. Kort fortalt har du muligheten til, istedet for å hente ut prototype/effects/dragdrop.js eller jquery eller hva det nå måtte være, kan du hente dem ut fra Google.

The AJAX Libraries API takes the pain out of developing mashups in JavaScript while using a collection of libraries. We take the pain out of hosting the libraries, correctly setting cache headers, staying up to date with the most recent bug fixes, etc.

Dette kan jo i det minste la oss slippe jobben med å sette opp asset hosts for javascriptene våre, Google nevner også packing av bibliotekene som en av tingene de gjør/skal gjøre.

Nginx vs. HAProxy

Her på Origo har vi lenge kjørt Nginx, som i sin tid ble anbefalt av min kollega Johan Sørensen. Nginx er en super webserver, men vi har lenge slitt med at load-balanceren ikke duger.

Vi var tidlig ute med å bruke Grzegorz Noseks “fair load balancer”-modul finansiert av EngineYard; denne modulen hjalp veldig på ytelsen, men klarer ikke å fordele trafikken helt jevnt. Vi opplever også at den stadig slår krøll på halen og enten nekter å sende trafikk til aktive backends, eller plutselig begynner å spise minne og spytte ut gigabytes med loggdata.

Et vedvarende problem med servingen vår er at trafikken spiker når vi deployer en ny versjon, fordi requestene køes opp; siden Nginx slipper alt gjennom til mongrelene betyr det at de plutselig overlesses med trafikk. Etter en ny deploy får en del folk timeouts som gjerne utarter seg som “straks tilbake”-beskjeder, og det tar ofte flere minutter før tjenesten har stabilisert seg.

Etter å ha lest om HAProxy blant annet her tenkte jeg å sjekke ut produktet, og alt virker så langt ekstremt lovende:

  • HAProxy er kun en proxy—den kan ikke serve filer fra en katalog.
  • Den kan i prinsippet proxye alt av TCP, ikke bare HTTP.
  • Spesiell vekt på HTTP og lastbalansering.
  • Flere lastbalanseringsalgoritmer med vekting, bl.a. en fersk “leastconns”-algoritme som sender til backenden med kortest kø.
  • Kan kjøre logiske tester for å finne ut om en backend er oppe.
  • Flink til å skrive lesbare loggmeldinger når backends går opp og ned.
  • Har et super liten status-side som gir deg status, oppetid og metrics for tjenesten og alle front- og backends.
  • Kan logge ekstremt detaljerte data om trafikken.
  • Routing basert på alt mulig: cookies, deler av URL, klient-IP osv.

For å se om HAProxy duger har jeg nå gjort litt benchmarking for meg selv—ikke spesielt vitenskapelig, men det burde være av interesse for Railsere.

Jeg har kjørt 3 Origo-mongrels på en dedikert testmaskin proxyet med Nginx og HAProxy, og har kjørt Apaches benchmarkingverktøy, ab, mot en testside. Testsiden gjør minimalt med databasekall og som vanligvis tar under 20ms å rendre.

Jeg har konfigurert HAProxy med “leastconn”-algoritmen og maxconn 1 for hver mongrel, slik at hver mongrel får maks 1 connection samtidig. Sammenligningen er altså på ingen måte fair i forhold til Nginx—halve poenget her er å se hvordan HAProxy kan optimeres på en måte Nginx ikke kan. Denne konfigurasjonen betyr at connections blir sittende og vente i HAProxy i stedet for i Mongrel, og har den fordel at den ventende connectionen kan gå rett til en ledig backend i stedet for å måtte vente til når requesten foran i Mongrel-køen er ferdig.

De følgende grafene er klippet til 400ms slik at detaljene blir synlige.

Nginx med -n1000 -c3

HAProxy med -n1000 -c3

Nginx med -n1000 -c10

HAProxy med -n1000 -c10

Selv om HAProxy faktisk kommer bedre ut på requests/sekund uavhengig av belastning så er forskjellen mest merkbar i hvordan responstiden skalerer. Med 10 connections begynner Nginx å levere alle requestene ganske tregt, mens med HAProxy klarer å levere 95% av requestene innen omtrent samme tid som den raskeste requesten. HAProxy velger imidlertid å levere enkelte requests veldig sent.

For meg virker det som om HAProxy klarer å levere en mer stabil og forutsigbar tjeneste enn Nginx på bekostning av flere “blips”. I løpet av 1000 requests tok 0,16% over ett sekund, 0,1% over to sekunder, og 3 requests tok 10 sekunder hver. Her er en graf som viser disse pausene:

HAProxy med -n1000 -c10, ikke klippet

Det er interessant å se at selv med -c3 er Nginx litt ute å kjøre. Dette kan sees tydeligst i rådataene og visuelt i grafene. Det er umulig å si om dette er fordi “fair”-modulen som kjører flere requests mot samme backend, noe jeg vet den stadig vekk gjør på Origo. Det er også interessant å se at om jeg konfigurerer HAProxy med en høyere maxconn (f.eks. 100) så begynner den å oppføre seg mer som Nginx—dog ikke riktig like ille.

Dere finner rådataene her.

Hjelp oss med Origo-innlogging

Dere er smarte folk. Har dere lyst til å brainstorme litt med oss? Her på Origo, som er skrevet i Rails, har vi en aldri så liten teknisk utfordring. Vi bruker sesjoner på samme måte som vanlige Rails-applikasjoner, men siden Origo er fordelt over mange ulike domener, ikke bare origo.no, har hver bruker en sesjon for hvert domene de er innom. Dette har flere ulemper.

Det er flere problemer med denne enkle, lettvektige løsningen:

  • Det første er at du kan være innlogget noen steder og utlogget andre: Dersom du ikke har noen sesjon for irb.no så må du manuelt logge inn, selv om du er innlogget på f.eks. origo.no. Resultatet er at du av og til opplever å plutselig være utlogget, uten å forstå hvorfor.
  • Et annet problem, som vi snublet over da vi begynte å implementere en “husk meg”-sjekkboks på login-formet, var at cookies and sesjonsdata vi setter ikke overføres til andre domener. Vi prøvde å bruke det klassiske Rails-tricket: Å lage en egen cookie i tillegg til sesjonen, og når du ber om å ikke bli husket setter vi denne cookien til å ekspirere når nettleseren lukkes. Dette blir smått kaotisk når brukeren har en slik cookie for hvert domene.
  • Et tredje problem er at brukere idag “må” logge inn via sonen de er på: Trykker du på “Logg inn” så kan du havne på http://irb.no/-/account/login; ditto med registrering av nye brukere. Av hensyn til phishing er dette en dårlig idé, men det er sånn fordi vi må sette innloggingsstatus i riktig sesjon.

Hittil har vi løst førstnevnte problem med redirecting. Vi lar alle lenke-URLer være relative, dvs. peke på samme domene som du ser på. La oss si at du er på origo.no og trykker på en lenke til irb.no. Da er lenken noe slikt som http://origo.no/-/sandbox/about/7009. I kontrolleren sjekker vi om domenet er riktig; i dette tilfellet skal du til irb.no. Vi lager nå en nøkkel, en hash av brukeridentiteten din, klokkeslettet og litt annet snacks, og redirecter deg til http://irb.no/-/sandbox/about/7009?transfer_key=foo, hvor foo er nøkkelen. Vi bruker denne nøkkelen til å identifisere deg, setter sesjonen som innlogget, og redirecter deg tilbake til http://irb.no/-/sandbox/about/7009 for å kvitte oss med nøkkelen. Voilà: Du er innlogget både på origo.no og på irb.no.

Jeg er usikker på hva løsningen er, men her følger noen løse idéer.

  • For det første tror jeg at en bruker burde ha samme sesjon-ID for alle Origo-domener. Dette er en god idé fordi det lar oss lagre småting i sesjonen, og det lar oss dessuten ha én konsekvent sesjons-ID å følge i loggene. Rails støtter ikke dette.
  • En interessant måte å oppnå dette på kan være via JavaScript. Vi kan la utloggede brukere (om du er innlogget er alt greit) få en script-lenke øverst i HTMLen som peker til en hypotetisk URL http://origo.no/-/account/check_login. Uansett hvilket domene scriptet lastes fra har browseren nå tilgang til cookiene for origo.no, og kan dermed sjekke om du er innlogget. Om du er innlogget kan vi sette en ny sesjonscookie for deg og spytte ut et JavaScript som bruker window.location til å redirecter tilbake til samme side du tittet på. Teoretisk sett burde det nå være mulig å sette samme sesjons-ID hele tiden, og overstyre Rails’ sin sesjons-ID. Dette løser et par problemer, men betyr for utloggede vil hver side gjøre en ekstra request til serveren som må gå via Rails.
  • Vi burde for øvrig ha kontroll over når selve sesjonscookien ekspirerer, uten å måtte lage denne ekstra cookien. Noe slikt støtter ikke Rails, blant annet fordi den bruker CGI-modulen og setter en sesjon for tidlig i request-maskineriet; innen vi vet om brukeren ønsker å bli husket eller ikke så er sesjonen allerede konstruert.
  • Jeg tror det tegner til at vi burde slå av Rails’ sesjoner og skrive helt skreddersydd cookie-logikk for hele smørja. På denne måten kan vi være bombesikre på å ha full kontroll.

Hva synes dere?

Ruby/Rails deltidsstilling. Perfekt for studenter.

Er du et ihugga rubyhode med behov for å tjene litt penger på siden av studier eller lignende?

Fatguy er et lite web-byrå i Oslo med noen spennede Ruby og Ruby on Rails prosjekter i ermet. Vi kan tilby en deltidsstilling med gode vilkår, gode muligheter for egenutvikling, og stor frihet til å definere egen arbeidstid.

Vi trenger en person med gode tekniske kunnskaper og evne til å jobbe selvstendig. Du bør være stødig i Rails, og også ha god innsikt i Ruby og interesse for språket, men mye arbeidserfaring er ikke påkrevd.

Litt interesse for javascript, Google Maps API, Flex og lignende er et stort pluss. Xhtml og CSS, spesielt IE hacking, tar vi andre oss av. :-)

Ta kontakt med Jonas på telefon 90155578 // jonas(at)fatguy.no // twitter.com/Feiring

Rails-jobb ledig

Jeg er ny her, men ble tipset om dette forumet. (Håper ikke dette er offtopic.) Jeg er blitt forespurt om en liten RoR-jobb som jeg verken har kompetanse eller tid til. Kanskje andre er interessert? Den er fra Grethe Viksaas <gviksaas@basefarm.no> i Basefarm:
-———————
Hei,

Jeg lurer på om noen kjenner noen som kjenner noen som kan programmere i Ruby on Rails, og som har tid og lyst til en jobb på 10-20 timer pr. uke.

Bakgrunn: Fred, mannen min har et firma (CPM Scandinavia) som lager no’ lurt rundt administrasjon av kundeporteføljer. Det er forholdsvis nystartet, og kunde hos oss på drift.

Svein Parnas er involvert som designer for programvaren. (Som de har valgt å kalle ”SAM”, – ikke helt uinspirert av DAM J)

De har hatt en som har programmert for dem, men som har måttet gi seg pga sykdom, og ikke klart å skaffe noen ny foreløpig.

Jeg har nærmest inngått et veddemål om at det kan jeg klare å finne J.

Det mest optimale hadde vært å hatt en med en del erfaring, men det kan godt tenkes at en veldig flink student kunne gjort jobben.

Ellers er det absolutt en tjeneste vi kunne ha tilbudt gjennom Basefarm, men jeg bare antar at vi ikke har kapasitet til det.

Mvh Grethe
-—————————————-
- Jon Haugsand