inicio mail me! sindicaci;ón

The state of the computer book market

Tim O’Reilly published his analysis about the market of computer books’ sales.

With this kinds of trends you can have a feeling about what leads in the market categories and what doesn’t.

I’m not surprised seeing Ruby (+53%) ahead of Python (+37%) and Perl (-21%), nor to see how books about the web design and development are on the edge. What surprised me most is seeing a +106% regarding SQL Server (!!)… it should be connected to the spread of .NET (that has surpassed Java).

Nice to hear Mac OSX books sale is the only positive trend :-)

“Ruby per applicazioni web” is out!

As I said earlier in June I cooperated (writing a chapter and reviewing the whole content) in the draft of the first book ever for Italian developers about Ruby and the Web.

The book is going to be available in the stores before the end of this month so check it out my fellows Italian readers :-)

book cover

Read the rest of this entry »

Rails, ActiveRecord, benchmarking and why I feel evil

I feel evil tonight (here is 3:30am) and then the fortune brought me to the /benchmark directory in ActiveRecord repository (for who doesn’t know what ActiveRecord is, and I think due to the hype everyone knows, see Wikipedia ORM page.).

A while ago someone slapped us with some bench between Rails, Django and Symphony and guess what: Django won hands down. What does it mean winning with raw numbers? To me not much but winning fairly is better than losing cheating. The thing I liked most in that bench page was not the bench itself but a comment at the end:

When connecting rails to Oracle the performance dropped to the extent it made any production use of the product useless.

That sentence is evil because recalls me words like enterprise, enterprisey and whatever that most of the time make me smile.

So, about benchmarks and being evil tonight. ActiveRecord trunk repository has two files in the so-called benchmark sub-directory with two benchs. This:

[code lang="python"] ActiveRecord::Base.establish_connection(:adapter => “mysql”, :database => “basecamp”)

class Post < ActiveRecord::Base; end

RUNS = ARGV[0].to_i

runtime = Benchmark::measure { RUNS.times { Post.find_all(nil,nil,100).each { |p| p.title } } }

puts “Runs: #{RUNS}” puts “Avg. runtime: #{runtime.real / RUNS}” puts “Requests/second: #{RUNS / runtime.real}” [/code]

and

[code lang="python"] conn = Mysql::real_connect(”localhost”, “root”, “”, “basecamp”)

RUNS = ARGV[0].to_i

runtime = Benchmark::measure { RUNS.times { result = conn.query(”SELECT * FROM posts LIMIT 100″) result.each_hash { |p| p["title"] } } }

puts “Runs: #{RUNS}” puts “Avg. runtime: #{runtime.real / RUNS}” puts “Requests/second: #{RUNS / runtime.real}” [/code]

Let the code and my evilness speak for itself, it’s not time to be sarcastic.

Italian Ruby book and my chapter

Now I can tell the world about it.

Marco Ceresa is going to publish a Ruby book (unnamed yet) for the Italian Ruby community. He asked me to cooperate with him and other people to join his efforts. I’m really glad to being part of this almost finished project.

I was hired as a former technical reviewer but I was asked in a second time to write a chapter and I accepted :-)

I wrote the chapter about RSS and ATOM, hope will be quite perfect for the book’s audience.

We’re also very lucky to have Antonio Cangiano (one of the authors of IBM Starter Toolkit for DB2 on Rails) and Piergiuliano Bossi, a former Ruby/Java expert and XP programmer, in the team of the reviewers. The book should be out in September 2006 so let’s wait.

Rebbin 0.9

I released a you-should-have-released-it-months-ago version :)

What’s new?

  • SQLite 3 support

What’s changed?

  • Requires Rails 1.0
  • Atom 0.3 feed dropped

http://rebbin.berlios.de/

A live version here: http://pasteserver.net/

Freedom languages

What, pray tell, is a “freedom language”? Freedom languages are those languages that put the individual programmer at the center of their philosophical world. They work hard to remove any language constructs that reduce programmer freedom, and add the most powerful constructs available. Many are post-modern languages and most tend to be syntactically dense. The other kind of language is the “safety language.” Safety languages think first about the creation of contracts between modules, objects and functions. They focus on teams rather than individuals. They remove language features that are confusing or frequently misused so that there are fewer opportunities to make mistakes and so there can be clear separation of concerns and maximum verifiability. These languages are full of barriers and check-points and well-defined paths and they tend to be syntactically verbose.

via http://www.journalhome.com/codecraft/9003/

I made my decision long time ago, I chose freedom languages ™.

Rebbin SVN

The svn version of Rebbin now supports SQLite 3, lighttpd and runs on top of Rails 0.14.3. Try it out!

Rebbin 0.8

I released another version with some improvements and few bugfixes

What’s new?

  • Atom 1.0 feed (in addition to RSS2.0 and Atom0.3 already there)
  • Wordwrap for text-only snippets
  • Basic comment support for each paste
  • Use Rails caching system and custom caching for colourised snippets

What’s changed?

  • Wants Highlight 2.4
  • BSD licensed

What about the future?

I set aside the idea to write a ruby lexer for now, I will try to add SQLite support and maybe improve comments with Ajax

http://rebbin.berlios.de/

Rebbin 0.7

I released another version with some improvements and a lot of bugfixes

What’s new?

  • RSS 2.0 and Atom 0.3 feeds
  • XMLRPC and SOAP support:
    • num_of_pastes: returns the number of pastes
    • get_languages: returns the list of supported languages
    • add_paste: adds a paste to the pastebin and returns the id
    • get_paste: returns the paste with the given id
    • get_latest_pastes: returns the latest pastes
  • Scheduler to destroy pastes automatically, it destroys pastes older than 48h and it runs every 24h in a separate thread
  • Improved sorting in archive page

What’s changed?

The support for text wordwrap has been removed

What about the future?

The main issue is the external highlighter I want to replace with custom-clean-safe-fast-ruby-lexer_based code. I tried syntax but it doesn’t fit my needs. It will take a lot of time but I think it’s the way to go.

http://rebbin.berlios.de/

Rebbin

What is it?

Rebbin is an open source pastebin developed in Ruby.

What is a pastebin?

A pastebin is a web application which allows its users to upload snippets of text, usually samples of source code, for public viewing [...]

Why it does exist?

Because I didn’t know what to code to learn Rails and meanwhile Ruby :)

Why did you release it?

For the glory :D

Which features it has?

  • Syntax highlighting
  • Export pastes as plain text
  • Easy navigation interface
  • Archive page with sorting capabilities
  • Store author name in a cookie
  • Unicode (UTF-8) support
  • PostgreSQL and MySQL Schemas
  • Basic unit and functional testing
  • Markup is XHTML 1.0 transitional valid
  • Global in-memory cache
  • Text wordwrap

Where I can find it?

http://rebbin.berlios.de/

Next entries »