STOPUSINGWINDOWS STOPUSINGWINDOWS

Arkiv for the 'Programmering' Category

Alternativ visning i RoR

22 desember 2005 kl 1:50

Hvis du skal tilby både WML (WAP 1.x) og XHTML-MP (WAP 2.x) eller ønsker å ha “theme” basert visning og samtidig ønsker å gjenbruke “controller” koden så kan dette løses f.eks. på denne måten.

routes.rb


map.connect "xhtml/:controller/:action/:id", :view => "xhtml"
map.connect "wml/:controller/:action/:id", :view => "wml"

Eller for alle muligheter:


map.connect ":view/:controller/:action/:id"

application.rb


class ApplicationController < ActionController::Base
	
  def default_template_name(default_action_name = action_name)
    @params[:view] ? "#{self.class.controller_path}/#{@params[:view]}/
           #{default_action_name}" : super
  end
	
end

Urlen blir da f.eks.
http://senikk.com/xhtml/blog/view/1
http://senikk.com/wml/blog/view/1

Template filene blir da å finne på:
app/views/blog/xhtml/view.rhtml
app/views/blog/wml/view.rhtml

RoR uten Ruby

18 desember 2005 kl 21:28

Flere og flere har funnet ut hvor effektivt det er å lage web applikasjoner med RoR rammeverket, men ikke alle er like glade i å lære seg nye programmeringsspråk slik som meg.

Når noe er bra så kommer også etterligningene for andre språk, så snart finnes vel også “RoR” for ditt favoritt språk. Her er i hvert fall de jeg har kommet over så langt, har ikke testet noen av dem eller for den saks skyld sett hvor langt dem har kommet.

PHP Cake
Python Subway
Groovy Grails
Java Trails

Noen flere?

WAP med Rails

18 desember 2005 kl 2:29

Idag tenkte jeg at jeg skulle ta et lite tilbakeblikk i “gammel” kunnskap nemmelig WAP da ved bruk av ny kunnskap, rammeverket Ruby on Rails heretter bare RoR.

Sist jeg lagde en WAP side må vel ha vært tilbake i år 2000, da i forbindelse med BrassForum hvor jeg la ut en nyhetsoversikt. Jeg fant i hvert fall ut at jeg hadde helt glemt hvor kresen WAP var da jeg ikke fikk noe frem på mobilen! Eneste som var feil var at jeg hadde glemt “alt” attributten på “img” taggen som er påkrevd.

Jeg ville helst teste lokalt på utviklermaskinen, så da var jakten på en WML leser som gikk an å bruke under Linux igang igjen. Har egentlig ikke funnet noen frie som jeg er helt fornøyd med enda, forslag? Men i hvert fall jeg har nå brukt wmlbrowser en plugin til Firefox selv om den var litt trøblete, av en eller annen grunn får jeg bare den til virke ved å starte Firefox som root bruker!! Ellers har du jo online leseren Wapsilon. Nå er ikke jeg noen stor Opera bruker, men Opera sin nettleser har innebygget støtte for WML.

Mitt lille eksempel under presenterer en WAP side som også inneholder et bilde som blir generert av RoR og av gammel vane da i formatet WBMP som vel var det eneste formatet en kunne bruke med WAP i “gamledager”.

Eneste en egentlig trenger i en “controlller” for tilby WAP med RoR er de første linjene med “set_content_type” som setter Content-Type til text/vnd.wap.wml

wap_controller.rb


require 'RMagick'
	
class WapController < ApplicationController
  before_filter :set_content_type
	
  def set_content_type
    @headers["Content-Type"] = "text/vnd.wap.wml; charset=utf-8"
  end
	
  def wbmp
    canvas = Magick::Image.new(100, 100,
    Magick::HatchFill.new('transparent','#323337'))
    gc = Magick::Draw.new
	
    gc.annotate(canvas,80,20,27,63, "tp") {
      self.stroke = '#f00000'
      self.pointsize = 50
      self.font_weight = 900
      self.stroke_width = 3
    }
	
    send_data canvas.to_blob { |img| img.format = "WBMP" },
      :type => 8220image/vnd.wap.wbmp8221, :disposition => 8220inline8221
  end
end

index.rhtml


< ?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
       "http://www.wapforum.org/DTD/wml_1.1.xml">
	
<wml>
 <card> 
	

   <b>WAP med Rails</b>
   < %= DateTime.now.to_s %>
   <img src="http://demo.brassgeek.com/wap/wbmp"
        height="100" width="100" alt="Generert bilde"/>
  
	
 </card>
</wml>

Dette eksempelet nås på http://demo.brassgeek.com/wap/

Hvis jeg da går et skritt videre og setter opp en “layout” for WAP på samme måte som en gjør det for HTML med RoR samt si at vi har en User “model” så kan jeg f.eks. lage en liten enkel telefonliste slik som dette:

users.rhtml


<card>
< % User.find_all.each do |user| %>
<b>< %= user.fullname %></b>Mob: < %= user.phone %>
< % end %>
</card>

Dette eksempelet nås på http://demo.brassgeek.com/wap/users/

Mitt første J2ME program

15 oktober 2005 kl 13:04

Idag har jeg laget mitt aller første J2ME program for mobilen min. Og som jeg egentlig antok du trenger ikke akkurat å være noe rakettforsker for å få det til, men klart litt kunnskap hjelper på;)

MIDlet

Så hva gjør så programmet mitt, fint lite, men det var heller ikke poenget at det skulle gjøre. En plass må en liksom starte for se hvordan ting henger sammen. Det jeg har brukt er Sun sitt J2ME Wireless Toolkit og da ktoolbar der ifra så slapp jeg å sette opp så mye manuelt. Så nå er det vel bare å slippe fantasien løs og lage noe nyttig. Noen forslag?

Bruk av AJAX og Skype ifra Ruby

15 juli 2005 kl 16:46

Jeg har i det siste fikset opp i Sajax Ruby klassen samt skrevet en foreløpig enkel klasse for Skype-API’et slik at jeg nå har kunnet teste begge disse tingene ifra Ruby.

dev.brassgeek.com
På min nystartede engelskspråklige utviklerblogg dev.brassgeek.com har jeg skrevet mer om dette samt publisert noe kode og mer kommer nok.

AJAX
AJAX står forresten for “Asynchronous JavaScript and XML” og er en teknologi som er veldig hypet for tiden. Enkelt forklart gjør den det mulig å utføre ting på en server og få det presentert på en webside uten at hele websiden må oppdateres som en vanligvis må på web. Eksempel: Google Suggest BETA | Graffiti Wall | Sudoku | Web Mail.

En stilig ting med Sajax er at den støtter PHP, Ruby, Python, Perl, Lua, IO, Coldfusion og ASP. Og dette igjen betyr at siden utvekslingen skjer via Javascript så kan jeg f.eks. lage serverdelen i Ruby og klientdelen i PHP som kunne f.eks. vært plassert på denne bloggen som jo er laget med WordPress som da er skrevet i PHP.

Test selv koden her :) Sajax/PHP/Ruby

Her er koden til serverdelen i Ruby som sjekker om det en får inn er et heltall eller ei


#!/usr/bin/env ruby
require 'Sajax'
	
def is_integer(string)
  if string =~ /^[+-]?\d+$/
    "tallet er #{string}"
  else
    "ikke et heltall det du"
  end
end
	
sajax = Sajax.new
sajax.export("is_integer")
sajax.handle_client_request()

- Mer å lese om AJAX

Skype-API
Når det gjelder Skype klassen min så gjør den det mulig på GNU/Linux å styre Skype ifra Ruby hvor en benytter seg av applikasjons-kommunikasjonssystemet D-BUS.

Et lite eksempel a) Sender melding til senikk b) Får oppgitt status på senikk c) Får navnet til senikk


require 'skype'
	
skype = Skype.new
skype.im "senikk", "Et lite hei fra Ruby"
p skype.user_status "senikk"
p skype.command "GET USER senikk FULLNAME"

Hva skal jeg så lage med min nyervervede kunnskap? Tja, tiden får vel vise. Har du noen gode forslag så er det forsåvidt bare til å foreslå noe det. I hvert fall åpner disse to tingene her for endel ting som kan lages.

11101

29 juni 2005 kl 9:43

Ruby generert bilde
For dere som ikke forstår dere på binære tall så er jeg idag like mange år som datoen idag. Jepp det tikker visst sakte men sikkert mot et rundt tall heldigvis ikke dette året :P Må nesten også her benytte anledningen til å gratulere min “tvilling” med dagen, ei jente som jeg har blitt kjent med på nettet som er født bare noen timer etter meg i samme by :)

Tenkte jeg skulle feire dagen med litt RMagick så bildet er laget med følgende Ruby kode:


require 'RMagick'
	
canvas = Magick::Image.new(100, 100,
Magick::HatchFill.new('transparent','#323337'))
gc = Magick::Draw.new
	
gc.annotate(canvas,80,20,22,68, "29") {
  self.stroke = '#f00000'
  self.pointsize = 50
  self.font_weight = 900
  self.stroke_width = 3
}
	
canvas.write('bursdag.gif')

Ruby Quiz

25 juni 2005 kl 11:50

Ruby Quiz Har du lyst til å lære mer om språket Ruby eller er lysten på en liten utfordring i å skrive Ruby programmer da er kanskje nettstedet RubyQuiz noe for deg. Perl har forresten sin variant her . Ruby Quiz legger ut en ny oppgave hver fredag hvor du da får 48 timer på deg i ro mak uten at noen får lov å diskutere eller komme med en løsning på oppgaven som har blitt lagt ut. Tror nok jeg kommer til å stikke innom her av og til for å plukke opp ett tips eller to.

Cream

7 mars 2005 kl 22:12

Cream vim based editor
I likhet med programmeringsspråk så skifter jeg ofte også editor. Er aldri helt fornøyd. Så for tiden så går det mest i Cream som er en editor basert på Vim. Ellers så har brukt mye JEdit og endel Eclipse med sine editorer får jeg vel si.

Programmeringsspråket K

5 mars 2005 kl 20:13

Til og med jeg som er så vant med ørten forskjellige programmeringsspråk av alle mulige type kategori språk syntes at det var vanskelig i første øyekast å tyde hva dette programeksempelet egentlig gjorde. Nå har jeg sett tilsvarende værsting eksempel også med andre slik som f.eks. perl da, men jeg vet jo der at det også kan se leslig ut så det kan det sikkert gjøre med K også. Men det må jo være et mareritt å debuge noe sånt som det eksempelet jeg viste til her.


Creative Commons License
This work is licensed under a Creative Commons License.