Recently, I was installing Rails3 on my Debian unstable machine and I noticed an error that was really strange.
Here was the error:
ERROR NameError: uninitialized constant ActiveResource::Base
The problem ended up being that I was missing this deb file:
libopenssl-ruby1.8
I have seen posts from people proclaiming that uninstalling old versions of activeresource would do the trick, but I reinstalled activeresource-2.3.5 gem after Rails 3 starting working again without a failure. I hate cryptic errors like that.
Monday, April 5, 2010
Sunday, March 21, 2010
Mac OS X Leopard installing the ruby gem eventmachine
I was having some trouble installing eventmachine (a ruby gem that needs an extension library written in C++) recently in Mac OS X Leopard. I am currently running ruby 1.8.8dev. I think, perhaps, when I compiled ruby from source, the config left out the CXX flags setting. This makes mkmf not know what C++ compiler it needs to set in the Makefiles it creates. Since there are not too many gems that have extensions written in C++ (that I know of), I never really ran into this issue. Here is how to fix this.
Edit this file inside the directory of the gem, in my case;
$ vim /usr/local/lib/ruby/gem/1.8/gem/eventmachine-0.12.11/ext/extconf.rb
Right above the last line (the last line being a call to create_makefile), insert this line:
CONFIG['CXX'] = g++
then do the same thing for this extconf.rb in the fastfilereader dir (or anywhere else in the ext dir where there might be more nested extconf.rb files.
then run this:
cd /usr/local/lib/ruby/gem/1.8/gem/eventmachine-0.12.11; rake gem:install
this should solve the issue of getting errors like this:
make: I.: Command not found
make: dynamic: Command not found
Edit this file inside the directory of the gem, in my case;
$ vim /usr/local/lib/ruby/gem/1.8/gem/eventmachine-0.12.11/ext/extconf.rb
Right above the last line (the last line being a call to create_makefile), insert this line:
CONFIG['CXX'] = g++
then do the same thing for this extconf.rb in the fastfilereader dir (or anywhere else in the ext dir where there might be more nested extconf.rb files.
then run this:
cd /usr/local/lib/ruby/gem/1.8/gem/eventmachine-0.12.11; rake gem:install
this should solve the issue of getting errors like this:
make: I.: Command not found
make: dynamic: Command not found
Thursday, February 25, 2010
The Web needs a language
I am now convinced that the Web needs a language of its own. It is not good enough to try and build systems with general purpose computer languages such as Java, C#, Python, or Ruby. Tick, tock, request, response, the collage of technologies that it takes to put together a simple website and backend is a wonderful display of inefficiency. I have seen the future and it is not hacking Javascript or HTML! How many ways can the same Rails app be written doing almost the same thing? Wouldn't it be nice to develop a solution to a problem using one language to express business rules? It seems like the best way to solve this problem is with better tools. New languages are judged on their expressive power, both the computer and human type. Most of the people using the Ruby language, do so because it will be used to generate what is between a couple of html tags.
I hereby propose that a new language be created that inherently knows the semantics of the web leaves us problem solvers with the ability to apply business log simply and directly.
I hereby propose that a new language be created that inherently knows the semantics of the web leaves us problem solvers with the ability to apply business log simply and directly.
Wednesday, January 6, 2010
PHP -- much better than using switch statements
PHP's syntax is manic muddled mess. It is not object oriented programming, but there are a few things that make it easy to do things better than the average hacker.
Function pointers, if you are a C person, Funs, if you are an Erlang cat, Procs or lambdas for Ruby, delegates in C#, lambdas in my beloved Python is what I am talking about.
PHP too, supports this, but in a completely straight forward way.
take the following PHP code:
you can simply refer to pass around a reference (or pointer) to 'iMRichBitch' using a string by the same name. Of course, when the function is to be invoked, you simply can say:
So this begs the question, "if I have function pointers", then I ought to use those instead of case statements and maybe even nested conditionals, right?" The answer is a big 'YES'.
so instead of this:
you might think about doing this (with a little defensive code for garnishment):
Function pointers, if you are a C person, Funs, if you are an Erlang cat, Procs or lambdas for Ruby, delegates in C#, lambdas in my beloved Python is what I am talking about.
PHP too, supports this, but in a completely straight forward way.
take the following PHP code:
function iMRichBitch() { compute48thMersennePrime(); }
you can simply refer to pass around a reference (or pointer) to 'iMRichBitch' using a string by the same name. Of course, when the function is to be invoked, you simply can say:
$func = 'iMRichBitch';
$func();
So this begs the question, "if I have function pointers", then I ought to use those instead of case statements and maybe even nested conditionals, right?" The answer is a big 'YES'.
so instead of this:
switch($conditional) { case 1: do1(); break; case 2: do2(); break; default: break; }
you might think about doing this (with a little defensive code for garnishment):
$conditional();
Sunday, January 3, 2010
Lambda Calculus
Can anyone fully understand lambda calculus? If so, what would they do with that power?
Thursday, October 8, 2009
Functional Programming
Your brain is rolling along on that cold steel track of life. You process item after item, then list after list as if you were the building the chassis for a million robotic arms. Do this, then that, then this. Wake up, shower, go to work, go to lunch, come home, go to bed, rinse and repeat. Suddenly div/0, your brain stops and you forget every pattern that was pitted into your mind. The very wiring of the mind is a melted cacophony of cold snow and bloodied bird feathers. You know not who you are or what you are or why you are. Objects become functions and anonymous functions become parameters. Logic is modeled in actors passing messages. Actors mean nothing beyond what messages they pass. Cars on the highway become mail to mailboxes. Action and nonaction and not being. Colors become transformations yet to be decoded. You are what you do and nothing more. That is the primordial essence of the functional being.
Monday, October 5, 2009
Reading list
I am logging a reading list for myself. Most times, when reading something, the author references another work, so I want to log this list as a must read.
Joe Armstrong's doctoral thesis
Why do computers stop and what can be done about it. by Jim Gray
Joe Armstrong's doctoral thesis
Why do computers stop and what can be done about it. by Jim Gray
Subscribe to:
Posts (Atom)
