Archive for the ‘planeta linux’ Category
Apache2::Archive 0.2
Apache2::Archive is a mod_perl 2 extension that allows the Apache HTTP server to expose tar and tar.gz archives on the fly. When a client requests such an archive file, the server will return a page displaying information about the file that allows the user to view or download individual files from within the archive.
I just uploaded version 0.2 to CPAN and GitHub correcting a few automatic build issues presented with dependencies. Grab it now with cpanf!
Solicito desarrollador Ruby on Rails
Estoy en busca de un desarrollador Ruby y Ruby on Rails para unirse a la empresa en la cual estoy trabajando en Nueva York. La posición es para trabajar permanentemente desde la Ciudad de México en la Col. Roma con muy buenas facilidades, ambiente y un salario altamente competitivo.
A continuación la descripción de la oferta:
Selectable Media is looking for a talented engineer to be a major contributor to the development of its new social video platform. You should be a technical generalist who is eager to conquer our most challenging problems and is excited to learn new skills.
Selectable Media is the leading video distribution network targeted at the Gen Y audience. We make video advertising fun as we provide advertisers with an efficient and effective way to reach the younger demographic. You will be part of a rapidly growing startup as we look to expand our distribution network across social networking and mobile platforms.
Requirements:
- Strong communication and team working skills
- Demonstrated self starter
- Ruby & Ruby on Rails backend development
- Experience designing software and APIs
- Deep understanding of web applications, REST, and HTTP
- Knowledge of Nginx and Mongrel
Plusses:
- Proficient with Javascript, JS libraries (ExtJS, jQuery, prototype)
- Experience with Git version control
- Familiarity with the popular Rails Plugins/Gems
- Use and contribute to open source software projects
- Knowledge of MongoDB & PHP/mySQL
Candidates should reply with a resume and links to any projects they have contributed to.
Si estás interesado o sabes de alguien que lo puda estar, por favor enviar resume (en inglés, desde luego) a david@nabbr.com. No me queda más que decir que en realidad es una gran oportunidad y el trabajo es altamente flexible y divertido.
nginx talk on FLISOL at UIA
Friends, I'll be attending the FLISOL (Latin American Free Software Install Fest) conference in Universidad Iberoamericana, this Friday, where I'll be talking about how marvelous nginx is and why you should use it. If you are near, you should stop by! Tell of your co-workers and friends, it'll be fun.
TechCrunch top-stories news feed
Being surrounded by the Web 2.0, I have to keep myself informed. TechCrunch is the most natural source of information. However, they write a lot of news stories every single day. A lot. Enough to make me feel stressed just to have so many shit to read on my feed reader.
Well, since I still wanted to read the top stories, but they don't provide such a feed, like Lifehacker (kind of) does, I hacked a feed:
http://topstories.axiombox.com/techcrunch.rss
This will grab the usual TechCrunch feed but it will test every single entry against the retweets registered on TweetMeme for each post. If the number of RTs is at least 500, the story gets pushed onto this feed. This filters out a lot of their stuff and leaves a manageable storyline of about 3 to 6 stories a day, coming from a 20 or 30+ stories a day on the regular feed.
Feel free to grab the feed and use it. Maybe in the future I'll add a configurable threshold parameter for the number of RTs for posts to be filtered. In the meantime, this what I got.
Feedbag 0.6
I just uploaded Feedbag 0.6 to Gemcutter and GitHub.
Just a couple of small nice additions to this version:
- The undocumented args[:narrow] option has been disabled until further notice.
- A nice little commit from one of Feedbag's forks, by Patrick Reagan.
- Added an executable to find feed URLs directly:
Sometimes you need to find the feed for a URL quickly, not from a script. What I do, and what someone else showed me too, is this:
~ $ irb -- require "rubygems" = true -- require "feedbag" = true -- Feedbag.find "http://stereonaut.net" = ["http://stereonaut.net/feed", "http://stereonaut.net/tag/feed/", "http://stereonaut.net/comments/feed/"] --
But now you can simply do:
~ $ feedbag cnn.com http://twitter.com/compupaisa == cnn.com: - http://rss.cnn.com/rss/cnn_topstories.rss - http://rss.cnn.com/rss/cnn_latest.rss == http://twitter.com/compupaisa: - http://twitter.com/statuses/user_timeline/119479806.rss - http://twitter.com/favorites/119479806.rss ~ $
Enjoy the feedbag executable on your $PATH now!
Debian fails
Generalizations are fun, they always are because they tend to offend people and offended people by stupid shit is usually lots of fun.
Here Debian, as a whole, fails; it sucks. Here Debian blows ass, the entire project is whack.
My good friend Chris Lee sent me this:
If you can't see the above iframe, go here.
Debian, full of fail. Wasn't this generalization fun?
Let the non-sense bullshit horses be released.
Dancer::Template::Haml now available
I put together a quick template engine for Dancer using Haml via Text::Haml. You know Haml, right?
Now you can do neat shit like this:
set template => 'haml';
get '/bazinga', sub {
template 'bazinga' => {
title => 'Bazinga!',
content => 'Bazinga?',
};
};
Using:
!!!
%html{ : xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"}
%head
%title= title
%body
#content
%strong= content
The dope thing about Text::Haml is that things like the Ruby interpolation will keep working.
Hurray! Go get it now.
New features on Dancer 1.130
Last week, or the one before that one, Alexis released Dancer 1.130 which represents a big refactoring of the Dancer core code, taking all optional modules away from it: Logging, session and template engines were splited into their respective non-core modules, etc. Additionally, two keyword features were added, header and prefix. I will showcase both in case you haven't heard the good word from them
header
The header keyword allows you to modify or alter the response headers by hand. That was a nice little feature that still hadn't been implemented. With header you can do nice little things like this:
get '/set/header' => sub {
header 'X-Foo' => 'bar';
"I'm a happy string." . "\n";
}
And this is what that very same code does:
~ $ curl -i http://0.0.0.0:3000/set/header HTTP/1.0 200 OK X-Foo: bar Content-Type: text/html X-Powered-By: Perl Dancer 1.130 I'm a happy string.
Also, header has a method synonym, headers, and you can use both indistinctly:
get '/some/crap', sub {
headers 'X-Foo' => 'Bar',
'X-Bar' => 'Foo';
}
And it will produce the result that you are expecting.
prefix
prefix is also interesting. It will indicate that the following route handlers' path patters defined for Dancer will be prepended with such prefix. So:
prefix '/user';
get '/home', sub { template 'user_home' };
get '/logout', sub { "bye!" };
So here we are instructing Dancer two route handlers that happen to be really pointing to "/user/home" and "/user/logout". In order to stop prefixing the route handlers' paths you just do:
prefix undef;
And continue with your un-prepended paths.
Feed moved
I have always been against FeedBurner. I don't like it at all. I've never liked it, as a matter of fact, I have no actual idea why I've been using it on my blog. I do know why I used it on the country feeds on Planeta Linux, and that is because it was very easy to mask all of our URL changes with some level of stability on the subscribers (in times where me being technically competent was a bad joke for myself). Plus, we could plug AdSense into it (that later on I removed because I like to earn actual dollars, not pennies, you cheap clickers!). Or maybe I'm just so against it because of pure jealousy: A few RSS feed geeks, like myself, sold a sub-parproduct to Google in a hundred million dollars. At the very end, I've never had a good reason to use FeedBurner or to stick with it, so hereby I'm dropping it entirely from my own personal blog.
It's obvious that some people who subscribed to my feed using that FeedBurner URL aren't reading this very blog post. It's alright, I've lost reigns before, I will get over it and conquer their hearts again. But you, dear blog reader, planet subscriber, or eventual visitor, have the power to change things, to help workaround the evils of FeedBurner and make me be myself again. Please, help me myself again! And that is, from now on, use this feed URL and only this feed URL, I promise I will support as long as nice good looking HTTP servers (such as nginx or Cherokee) exist:
http://stereonaut.net/feed/
That said, I will get you a beer next time we meet each other and you, dear reader, mention this blog post and mention that you changed to this new feed URL of mine. I'm not kidding. Just go ahead and tell me
Thank you.
Large PHP scripts truncated on nginx
I spent a couple of hours yesterday trying to debug an issue that made me hit my head against the wall while it lasted.
I run multiple instances of WordPress, and with it, comes a nice little editor bundled called TinyMCE. But on my main WordPress installation (this very blog, dear reader, where you are reading this from), TinyMCE wouldn't come up, it wouldn't render properly on the browser, it didn't matter if it was my main browser, Chrome, or Firefox, Safari, cached, uncached, it was just broken. Since I hadn't have the time to go through this issue before, I was using a different editor installed as a plugin. LAME. And coward.
Anyway, I found out that one of the scripts wp-tinymce.php was being returned truncated. Because of that, Firebug would report that some TinyMCE bullshit wasn't defined (JavaScript, oh I'm not very fond of you). Oh, well. I tested calling that script under curl separately and in fact, it was only returning a fraction of the script, 44K out of the actual 200+K. I also found out that even though my nginx installation had gzip compression enabled and the PHP had zlib as well, the script wouldn't process the tinymce.js.gz but it was returning directly tinymce.js. It's alright, I just wanted it to work, no matter if it wouldn't go through gzip, that'd be a matter of some other day.
After a lot of googling I ended up reading this blog post (in Portuguese), suggesting to make sure the file permissions for both the client_body_temp and fastcgi_temp directories allowed the user running nginx (www-data in my case) to write in them. Apparently large scripts would start writing to disk on them temporarily while processing the shit. Of course, you wouldn't have this issue if you are running an nginx from your operating system package manager (like Debian's), but this might very well happen when you are running a custom nginx with separate modules and all sorts of crap on top of it:
chown www-data:www-data -R /usr/local/nginx/fastcgi_temp/; chmod -R 777 /usr/local/nginx/fastcgi_temp/; chown www-data:www-data -R /usr/local/nginx/client_body_temp/; chmod -R 777 /usr/local/nginx/client_body_temp/;
Obrigado, republicavirtual.com.br




