Posted by: Sidnei da Silva | September 2, 2008

The new Picasa Web Albums

It’s great overall. The face-based clustering is really amazing. Except when it isn’t.

Face grouping is great, except when it isn't.

Face grouping is great, except when it isn't.

Posted by: Sidnei da Silva | September 1, 2008

Google’s to-be-unveiled Firefox-Killer

Word is out that Google is launching a new browser on the market: the Google Chrome. This announcement comes hot on the heels of Google’s agreement renewal with Mozilla foundation.

According to an article last week on NetworkWorld, “Mozilla generates
the bulk of its income from ties to Google, according to the company’s
latest financial figures. For the 2006 tax year — the most recent
numbers made public by Mozilla — 85%, or about $57 million of the
company’s $67 million in annual revenues for the year, came from
Google.”

My take on this is that Google is really stabbing Mozilla on the back.
A G-Browser in my POV is much more likely to steal users from Firefox
than from Internet Explorer for a reason that should be pretty
obvious: most users that care about the browser they are using are
already using Firefox. The great majority of the remaining ones will
just stick with Internet Explorer as they have been doing all along.

Goodbye Firefox. It was great to have you here while it lasted. And thanks for all the fish.

Posted by: Sidnei da Silva | August 22, 2008

Linux Precision

Linux is so precise. I love it. I mean, those guys can totally do math right? I used Linux on my laptop for quite some time but never realized this. But today, an emergency happened, and I was so shocked when I saw this:

bash-3.00$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 19G 0 100% /
/dev/sda1 99M 15M 80M 16% /boot

I mean, 20 == 19 right? And 80 + 15 = 99. Awesome. The ‘man df’ page says ‘-h’ is for ‘human readable’. I guess the math really needs to be dumbed down for us humans to understand it.

Posted by: Sidnei da Silva | August 4, 2008

Snapshotting state with DemoStorage

At Enfold Systems, we have been maintaining a staging solution called EnSimpleStaging that has organically grown through the years around customer requirements. My personal opinion is that software that is driven by customer requirements rather than just by plain design based on a good ideas has a higher success rate. But let’s leave that subject to another post.

EnSimpleStaging is based on ZopeVersionControl, another great product which provides for keeping a repository of versioned objects inside the ZODB. One issue we’ve hit constantly with EnSimpleStaging was that certain methods from ZopeVersionControl depend on an actual transaction being commited to properly detect that an object has changed. While in real life this specific method will always work flawlessly due to the way using ZopeVersionControl and EnSimpleStaging works, in a test case it was very hard to test this, due to the fact that a test case is run within a single transaction which is aborted at the end of the test.

Sometime ago I’ve learnt that ZODB has a nifty feature: it is possible to wrap any Storage instance with a DemoStorage. After you do that, you can commit changes and they will be committed to the DemoStorage but not to the base Storage. That would solve not only my problem with ZopeVersionControl, but can potential solve a whole lot set of problems due to expensive setup methods in test cases.

That fact has lived in the back of my mind for longer than two years, until today I set some time aside to investigate a way to implement this cleanly in a way that could be used for my tests. Searching around, I’ve found at least a couple occurrences of other people trying to do the same. I didn’t find any solution though, so that either indicates they just gave up or that they found a solution but didn’t care enough to share it. In fact, the title of this post was borrowed from one of the message subjects, in hope that it will make it easier for other people to find a solution in the future.

My solution (with a test do demonstrate that it works) was based on Jim Fulton’s suggestion to look at zc.selenium. I’ve simply adapted it to the Zope 2 reality, using ZopeTestCase’s provided hooks and `Zope2.bobo_application` (which is the Zope 2 equivalent of the publication object from Zope 3).

Hopefully this will be of use to more people, specially to the folks that were seeking for ideas about how to implement this. It would be even better to just add this to ZopeTestCase proper, I think. Maybe someone will be interested in doing that.

Posted by: Sidnei da Silva | July 22, 2008

Traveling with Pets

I’m planning to attend the Plone Conference 2008, in Washington DC, later this year.

I have already visited the US in June, when I attended the Plone Symposium in New Orleans. On that occasion, I stayed in the US for ~30 days. This time around I was planning to bring my wife and dog (the cute Yorkie pictured at the top of this blog).

One thing that worries me though is that I’ve never took my pet on any flights, so I have no idea how pet-friendly airlines are. Just to get from Sao Paulo to the US (Houston) it’s a ~9:30h flight. My dog is usually cool with traveling. Earlier this year I drove nearly 8h to the beach and we stopped twice on the way, but she did not pee until we arrived at the destination.

So I’m putting this out there, looking for any feedback from people that took their pets on flights.

Posted by: Sidnei da Silva | June 18, 2008

Don’t talk on your “Cell Plone” while driving

It had to happen, eventually.

I’m subscribed to Google Alerts for the keyword Plone, so whenever a new article or page mentioning Plone get’s picked up by Google, I get an email alert.

Today, I got an alert from an article published by Burlington Free Press. The summary in the email alert had the following text:

Northfield teen clocked at 104 mph while talking on cell phone
BurlingtonFreePress.com – Burlington,VT,USA
… driving 104 mph on Interstate 89 told police she was unaware they were
trying to stop her because she was talking on her cell plone, state police
said. …

http://www.burlingtonfreepress.com/apps/pbcs.dll/article?AID=/20080617/JS02/80617032

See all stories on this topic:
http://news.google.com/news?hl=en&ncl=http://www.burlingtonfreepress.com/apps/pbcs.dll/article%3FAID%3D/20080617/JS02/80617032

Notice the text says ‘cell plone’. Clicking on that link though tells you the article doesn’t exist anymore. If you click on the second link the article shows up and it’s published under a different url, which probably means someone was quick to detect the error, correct and re-publish the article under a different url. Not quick enough for Google’s indexing system though, which was able to index the article before the correction. If you search Google for “cell plone” the original article shows up as the 5th link right now. Unfortunately, the link to the ‘cached’ version of the page does not return the original page.

Posted by: Sidnei da Silva | June 4, 2008

Podcasts published on Plone.TV

Just a quick note, I’m in New Orleans for the Plone Symposium 2008. Nate Aune is right here next to me and we’ve published all the four interviews I’ve done so far to Plone.TV. More to follow…..

Posted by: Sidnei da Silva | May 21, 2008

More “Plone on Google App Engine”

Alexander Limi brought up the discussion again, by mailing some of the Zope Community luminaries. I’m glad to be amongst those. I had come up with a high-level list of things that would need to happen before. So here are some more quick thoughts about what else would be needed to get Plone running on Google App Engine:

me: i mean, i had made a list of things already

Alexander: yup, but I’m sure there are more

me: those are the high-level yeah
for example, you can run with the python security policy
implementation, so that’s one thing less
acquisition needs to be ported though, or at least faked :)

Alexander: what about the __parent stuff that just landed in 2.11 (or
was it trunk?)

me: that’s implemented in Acquisition yeah
ExtensionClass, Acquisition and persistence are the 3 top modules
oh, BTree is a nasty one
probably better off trying to go to a non-ZODB based Zope by that time

Alexander: yeah, I suspect we should ditch the ZODB if we want to be
on App Engine

me: at the same time, there’s this project about porting Zope to Jython
if that’s successfull, it should run on pure python too
or maybe not, depends on which way this student goes

Alexander: right, the App Engine concerns are more than just what runs
as pure Python, though :)
database, memory usage, etc

me: but, what about the relstorage backend?
idea

Alexander: that’s why I included Martijn ;)

me: ok
so, yeah, those are my ideas
can’t think of much else

Alexander: ok
that’s a great start, thanks
now make sure the email or blog post covers the additional thoughts ;)

me: maybe the DirectoryViews stuff
the filesystem access is restricted right?
but i guess you can read files just fine?

Alexander: I have no idea :)

me: oh, k
number of files would be a problem
we should have all products running off zipped eggs by now
that would reduce the amount of files
but unfortunately no one worked on that

Alexander: I have to run, but feel free to continue in email ;)

me: ok

Alexander: trunk of Plone is mostly eggs, no?

me: but nothing is ready to load files off zipped eggs

Alexander: I see

me: i believe mcdonough did some work on that

Alexander: ok, see you later :)

me: ok
zcml would need to grow support for zipped eggs too

If you have more ideas, feel free to comment.

« Newer Posts - Older Posts »

Categories