pondělí 24. září 2007

nový mazlíček


O koupi nového mobilu jsem uvažoval už hodně dlouho. Můj stařičký Siemens C65 už zlobil, špatně zobrazoval některé údaje, zapomínal čísla nepřijatých hovorů atd., ale stále mi bylo líto utrácet zbytečně peníze dokud slouží.
Sehrála se však spousta událostí (Brio, kde jsem si rozbil displey, Neuschwanstein, kde jsem měl půjčenou Zuzanu) a tak jsem se rozhlédl po internetu - požadavky byly jednoduché: mobil, GPS, WiFi, přehrávání mp3 a aby to umělo prohlížet pdf soubory a samozřejmě čím nižší cena, tím líp.
Po dlouhém a dlouhém vybíraní jsem se rozhodl pro E-Ten X500+, přečetl si o něm diskuze na internetu a narazil na jakýsi problém, který prý zamezí distribuci. Inu, našel jsem si prodejce v Brně, který ho měl skladem a šel ho omrknout a poptat se co a jak. Byla to láska na první pohled a už jsem ho nechtěl vracet, tak jsem si ho hned odnesl :-)

úterý 18. září 2007

Neuschwanstein

Rok se s rokem sesel a moje draha polovicka oslavila narozeniny. Rozhodl jsem se, ze ji nevenuju obycejny darek a tak jsem zvolil vylet na zamek Neuschwanstein.
Ciste nahodou jsem ziskal dalsi dva pasazery (kolega s kolegyni z prace), kteri se k nam pridali v Zelezne Rude, kde uz byli na vylete.
Vyrazili jsme tedy v patek z Brna, prespali v Zelezne Rude v hotelu Belveder a v sobotu rano se vydali do Nemecka do mesta Hohenschwangau, kde se nas cil nachazel. Prvni problem se vyskytl hned na hranici, kde nam pan celnik oznamil, ze nas do Nemecka nemuze pustit, pokud mame s Martinou ustrihly roh obcanky (pozustatek po svatbe :)). No po chvili vahani jsem slapl na plyn a uz jsme byli v Nemecku, takze ted ocekavam nejakou obsilku nebo tak neco.
Samotna dalsi cesta uz byla v pohode a dorazili jsme v poradku az do cile. Trosku me zarazila doba prohlidky (30 minut) a jeji rozsah, ale doma jsme zjistili, ze jsme asi opravdu prosli cely zamek - divne. Cestou zpet do Zelezne Rudy jsem rozhodl, ze dojedeme na zbytek benzinu, abychom nemuseli tankovat v Nemecku. Rozhodnuti to bylo chvalyhodne, lec neopatrne. Velmi uspornou (a pomalou) jizdou jsem se dostal az k hranicim, jenze Sumavske pohori pro nas bylo smrtelne a benzin skoro dosel. V tuto chvili nas zachranila Zuzana (zapujcena navigace od maxima), ale uz jsme meli fakt nahnano. Cesta pres celnici prosla v pohode - asi davali zajimave porady v televizi. Cestou domu do Brna jsme se jeste stavili ve Velharticich a na nejstarsim kamennem moste v Pisku.. supr vylet a ted trosku cisel:
celkova trasa: 1312 km
prumerna rychlost: 76 km/h
prumerna spotreba: 6.1 l/100km
doba stravena za volantem: ~17 hodin
to vse realizovano behem 50 hodin
obrazky jsou zde!!

úterý 11. září 2007

rails and file_column plugin: copy problem

I must solve this problem: some record with picture is created and it is necessary to create its copy. This record has image and we use file_column plugin for manipulations with this field.
Uploading of file is super, but problem began when you try to set image from local file system. I found simple and nice solution on this blog, but this solution doesn't work.
So, I made some changes to original script and you should use these simple commands.


coppied_area = Area.find(params[:coppied_area]) # original record
@area = coppied_area.clone # create copy
@area.day_foto = File.open coppied_area.day_foto unless coppied_area.day_foto.nil? # add image when existing


New file_column.rb should be downloaded here.

středa 5. září 2007

Ruby on Rails, MS SQL Server 2005 and default values

The next problem to solve was this:
When we create model class like this

class CreateSubjects < ActiveRecord::Migration
def self.up
create_table :subjects do |t|
t.column :first_name, :string
t.column :last_name, :string, :null => false
t.column :age, :integer
end
end
...
end

we suggested that first_name and age should contain NULL values. But our suggestion on MS SQL Server was wrong (on postgreSQL is everything fine).

>> Subject.new
=> #<subject:0x495357c @new_record=true, @attributes={
"first_name"=>"NULL", "last_name"=>nil, "age"=>0}>

and we have string "NULL" in first_name and 0 in age columns after calling save! method. In development.log was this create table script:

CREATE TABLE subjects ([id] int NOT NULL IDENTITY(1, 1) PRIMARY KEY, [first_name] varchar(255) DEFAULT NULL, [last_name] varchar(255) NOT NULL, [age] integer DEFAULT NULL)

Adding of "DEFAULT NULL" causes creation of default values (0 or "NULL") in sqlserver adapter. So, I created my first ticket in rails (http://dev.rubyonrails.org/ticket/9469) with proposed solution and made this solution in our project:

# bugfix for mssql adapter - adding default value for columns
module ActiveRecord
module ConnectionAdapters # :nodoc:
module SchemaStatements
alias_method :old_add, :add_column_options!

attr_writer :adapter

def adapter
if @adapter.nil?
c = Rails::Configuration.new
env = ENV['RAILS_ENV'] ||= "development"
@adapter = c.database_configuration[env]['adapter']
end
@adapter
end

def add_column_options!(sql, options) #:nodoc:
if adapter === "sqlserver"
sql << " NOT NULL" if options[:null] == false
sql << " DEFAULT #{quote(options[:default], options[:column])}" unless options[:default].nil?
else
old_add sql, options
end
end
end
end
end

úterý 4. září 2007

Ruby on Rails, MS SQL Server 2005 and diacritic

It looks like a common problem :) for all developers.
I used Windows 2000 Czech Edition on my developer station, MS SQL Server 2005 Express and Ruby on Rails 1.2.3. There was no problem up to application deployment on server that runs on English edition of Windows Server. Then diacritic was broken and you can see "Jiří Novák" instead of nice "Jiří Novák". Database was OK, application worked fine, so where is problem?

After few experiments, I found solution: add these lines in config/environment.rb

require 'win32ole'
WIN32OLE.codepage = WIN32OLE::CP_UTF8

"Jirí Novák" is better but not perfect. So last modification is just setting of Windows Server - switch default locales to Czech and lalala... "Jiří Novák" is here!

co nového?

Dalo by se říct, že v podstatě vůbec nic - mám se stále výborně a jsem spokojený. Kamarádi se na mě ještě nevykašlali, takže občas zajdem zasportovat, na pivko nebo si zahrát nějakou deskovou hru.
Ale přeci jen něco se změnilo - rozhodl jsem se zase pokračovat ve svém blogu. A proč? Protože mám nějaké novinky a dokonce možná i něco zajímavého. LogicaCMG fakt nešla, takže jsem se s nima rozloučil a přesunul jsem se do nové, krásné, perspektivní a zajímavé práce. Měl jsem jít na pozici Software Architekta na projektu v J2EE a všechno mělo být jak v pohádce. Člověk míní a Bůh mění, nebo jak se to říká a projekt se zpozdil, takže bylo potřeba nás upíchnout na něco, kde bychom firmě vydělali nějakou kačku a tak jsem přičichl k Ruby a Ruby on Rails. Byla mi přislíbena nová funkce (už jsem skoro funkcionář :-)) team leadra vývojového týmu na tomto projektu. A opět nastala změna: jelikož s mojí drahou jsme plánovali svatbu, úspěšně ji naplánovali a zrealizovali (http://picasaweb.google.com/michal.skrdla/Svatba), vydali jsme se též na svatební cestu (http://picasaweb.google.com/michal.skrdla/Egypt). Bohužel pro mě, jsem se vrátil do rozjetého vlaku, kdy "moje" pozice už byla zabraná a tak jsem začal kódit. S dvoutýdenním spožděním oproti kolegům mě pasovali na pozici "technology leader". Zábavný to krok, ale jinak ideální práce. No a co takový člověk dělá? Řeší problémy za ostatní, aby se nezdržovali a tak zkouším, prototypuju, hledám a vymýšlím řešení o které se tu snad budu dělit.