Tuesday, June 12, 2007
Switch Off Convert line breaks
I have problem when try to post some html stuff on my blog. The posted html contains simple table. However Blogger incorrectly displays it, alignment doesn't work, a lot of strange space. I finally recognized that, this is due to enabling "Convert line breaks" feature of Blogger, that encloses line break into html break tag, I switch it off, and everything work well.
Labels:
writing
My resume - PROGRAMMING LANGUAGE AND TOOLS
Operating Systems
- AIX 4.3/5L, HACMP 4.3, Solaris 7/8, SCO Unix, Windows NT/2000/XP, Linux (Redhat Debian, Ubuntu)
Middleware
- Websphere ND 6, WebLogic Server 8.1, Websphere MQ 6, Tuxedo 8.0, Tomcat, Ruby on Rails
Database
- Oracle8i/9i/10g, Oracle Real Application Cluster, MySQL, Microsoft SQL Server 6.5, Microsoft Access
Programming Languages
- JAVA, C/C++, Ruby, Oracle PL/SQL, Visual Basic, PASCAL, PROLOG
Tools
- IDEA IntelliJ, Microsoft Visual C++, Rational Rose, Oracle Designer/Developer, Borland Delphi, Toplink, iBATIS, Subversion,Git, Svn, Ant, Maven, Cruisecontrol , JIRA, Mingle, Microsoft Project & Office Suite
Labels:
career,
resume-admin,
resume-developer
Sunday, June 10, 2007
The secret behind Rails Integration Test
Find what is behind Rails Integration Test on good blog's post named HeadlessApp
$ script/console
Loading development environment.
>> app.class
=> ActionController::Integration::Session
>> app.get "/home"
=> 302
>> app.controller.params
=> {"action"=>"home", "controller"=>"accounts"}
>> app.response.redirect_url
=> "http://www.example.com/login"
Labels:
rails
Saturday, June 9, 2007
gem's environment
When playing with gem on my Ubuntu machine, I found an useful command
huy@huy-desktop:~/.gem$ gem environment
Rubygems Environment:
- VERSION: 0.9.0 (0.9.0)
- INSTALLATION DIRECTORY: /var/lib/gems/1.8
- GEM PATH:
- /var/lib/gems/1.8
- REMOTE SOURCES:
- http://gems.rubyforge.org
that shows default gem's environment. By setting the GEM_PATH environment variable to one desire directory, we can share single gem repository across many ruby installations (e.g C ruby and JRuby). The full descriptive information of all gem environments variables can be found in Gem Command References
Thursday, June 7, 2007
Naming Exception Corba Comm Failure
Labels:
tools
Friday, June 1, 2007
Cruisecontrol.rb is too slow
I encountered a problem with Cruisecontrol.rb, the method link_to_code(log) is too slow to process a certain output log, sometime it takes 10 seconds making Cruisecontrol not workable. So for the time being, as workaround, I just comment out this code .
#file: app/helpers/builds_helper.rb
def link_to_code(log)
log
=begin
@work_path ||= File.expand_path(@project.path + '/work')
log.gsub(/((\#\{RAILS_ROOT\}\/)?([\w\.-]*\/[ \w\/\.-]+)\:(\d+))/) do
path, line = File.expand_path($3, @work_path), $4
if path.index(@work_path) == 0
path = path[@work_path.size..-1]
link_to ".#{path}:#{line}", "/projects/code/#{@project.name}#{path}?line=#{line}##{line}"
else
$1
end
end
=end
end
Friday, May 25, 2007
ActiveRecord testing ouside of Rails
There is many tips about how to use ActiveRecord outside of Rails but rarely about ActiveRecord testing ouside of Rails. I am working on project that use ActiveRecord ouside of Rails and need to create fixture for testing. It take me a little bit of time to figure out how to do. The source code below demonstrates the trick
require 'test/unit'
require "active_record"
require "active_record/fixtures"
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "nightlybatch",
:password => "secret",
:database => "web_orders"
)
#this is because fixture verify existence of rails database configuration
ActiveRecord::Base.configurations[:test] = ActiveRecord::Base.connection
class Product < ActiveRecord::Base
end
class TestFoo < Test::Unit::TestCase
#set fixture path explicitly
self.fixture_path="c:/temp"
fixtures :products
def test_ruby_on_rails_should_exist
assert products(:ruby_on_rails)
end
end
In order to pass the test, the fixture file products.yml shall be created in directory c:/temp, and products table shall be created in MySQL database
#c:/temp/products.yml ruby_on_rails: id: 1 name: ruby on rails rails_recipes: id: 2 name: rails recipes
Labels:
rails
Thursday, May 24, 2007
Ruby adoption in Vietnam
From the time, I know ruby, it is my favorite language, but it seems that no so many developer in Vietnam is using it. Today I have found Vietnam Ruby site. It is good news, that ruby got an attention in Vietnam and I am not alone, who see the huge benefit of wonderful and humane programming language.
Labels:
ruby
Saturday, May 19, 2007
Notia
At my early time in Notia (in 1993 if my memory is correct), I has participated in a project, that develop a ERP package that includes General Ledges, Account Payable, Account Receivable, Warehouse Inventory modules. The technology used that time was Novell B*trieve as database engine, C++ and for business logic, Borland Turbo Vision for C++ for GUI. At that time, Tran Duc Trung was leader, based on university compiler's knowledge, he developed a kind of Domain Specific Language, that allow end-users or implementors define posting rules using that DSL. The "posting rules" DSL is comprehensive featuring expression, AND, OR boolean condition, with Account, Money concept. Other team member, Martin Smid went so far and defined other DSL for reporting function. we called it FRT. Until now, I have not seen better reporting tool with such flexibility, elegance, and easy to used. Other other side, we also faced a lot problems. One of them is that MS*DOS can not run program with more than 1MB static data segment. C++ is also not good choice for GUI development, we encountered a lot of errors related to allocation/free memory, using pointer. And one of most ironical is in using of the DSL itself. The software developers didn't understand well accounting to be honest we was not willing to learn it on the other hand implementors and customers was not matured enough in using the DSL in effective manner. Despite these facts, Notia was able to sold the software and implement it in hundreds customers including few big names as ABB.
Labels:
career
Thursday, May 10, 2007
ruby module_function
Ruby 'module' allows us to define methods then turn these methods into instance methods of a class by using key word 'include'. In ruby world, peoples call this feature 'mixin'. e.g.
module Foo
def hello
puts 'hello'
end
end
class Bar
include Foo
end
Bar.new.hello #=> hello
Sometime we need to call method defined in a module without including the module into a class. We can do it by
module Foo
def self.world
puts 'world'
end
end
Foo.world #=> world
There is a question how do we turn method 'hello' so it can be used in both mixin style and standalone . The answer is using kernel method 'module_function'
module Foo
module_function :hello
end
Foo.hello + ' ' + Foo.world # => hello world
Labels:
ruby
Subscribe to:
Posts (Atom)