Skip to main content.

Tuesday, June 15, 2010

Black is white, up is down and short is long!. I'd vote for Al Yankovic to be dubbed mankind heritage. Or nobel price. Or something.

I would, but I am wrong, so I won't.

Monday, May 24, 2010

Yes, Twitter can be good. At times, is just useful to share small thoughts.

So I added a tweet panel right on the sidebar of this blog, to see if I can make some good use of it. I thought it may be interesting to keep fast notes about Falcon development and other everyday issues there.

However, it can't hurt, can it?

Wednesday, April 14, 2010

When the believer asks: "Hey, you're skeptic, but why should I trust YOUR point?"
The true skeptic answers: "You shouldn't. That's the point."

Thursday, March 25, 2010

One element of the new object model in the next falcon must surely be the "interface object".

Interface objects are pure abstract class which the final object can expose to Falcon engine. For example, implementing the "dictionary" interface means to expose a Dictionary* object (which is actualy a virtual table pointer) that must be returned implementing something like getDictionary() class. For example:


class MyDict: public CoreObject
{
MyDict():
m_idict( this )
{}

...
virtual DictionaryInterface* getDictionaryInterface() { return &m_idict; }
...

private:

class DictForMyDict: public DictionaryInterface
{
... reimplement the abstract methods from DictionaryInterface
}
m_idict;
};


And of course, the default for get*Interface() function would be that of returning 0, to let the users know that the required interface is not available.

Problems of this model are mainly two. First, adding an interface type requires to break binary compatibility and also a full recompilation of all the modules. Second, but that's a minor issue, the interface require initialization with "this" during constructor, and that raises a warning on many compilers; also, it suggests storing the "this" pointer in the base class, which makes the Interface base class not fully abstract.

Finally, it would be highly desirable to provide the ability to "expose an interface" even to user-provided classes (i.e. its own application classes) without the need to build a wrapper coreobject.

I am figuring out how to solve this problems.

Thursday, March 11, 2010

I have finally been able to release a quite stable bugfix of Falcon version 0.9.6.4. So I took a breath and had a look around and from high above, so that I can plan a good roadmap for the next version.

Also, I notice that my blog is pretty sparse on Falcon. Despite it absorbing a vast part of my everyday life, I rearely write about it in the blog; I prefer to "do" rather than to "argue". Yet, today a couple of questions about some arguments in the Newsgroup have fired the considerations I usually keep for myself, or for the few people on our chat channel.

I immediately thougth that writing some ideas, doubt, solutions down here is much better than keeping them for myself, so I'll be using my blog to keep track of what is going around my mind about Falcon much more regularly from now on.

The achievements I want to obtain in the next version are the final stabilization of the Embedding/module writing API, together with the new Item model and the new compiler/moduler/linker triplet. If it seems ambitious, it must be considered that those elements are tightly interrelated, and cannot exist without each other. So the fix order must be:

Deep item/garbage model -> Item framework -> Syntactic tree -> Module/VM/Runtime -> Compiler

Also, some iterative process will be required. A redesign of the inheritance resolution pattern will require to do a first VM/Link passage, and then continue again into the Deep/item garbage model.

More tomorrow.

Wednesday, February 24, 2010

Today, in Italy, in the country where the prime minister left arm and founder of its Party is under trial for participation in Mafia organizations, and where the Prime Minister is under trial for judge corruption, for the FIRST TIME IN THE WORLD, network service providers have been condemned to jail because of a video leaked on the network they are in charge of administrate by a user.

Original article (in Italian).

Not the user that leaked the video. Which would be terrible enough. But the providers. In this case, Google itself.

Not even the Iranian government, not even the Myanmar government arrived to this point. They prosecuted the publishing of the ideas, but not the media through which those ideas was published.

An immediate, formal and firm protest of the world internet community is absolutely in order, to avoid that this happens also in your country.

The fact that this happened in Italy, a country where free speech is formally granted by our Constitution and ensured by a rich body of ordinary laws, is a warn and admonishment for all the "free" and "democratic" countries in the world. This can happen even in your country, and even if your country consider itself a Home for free speech.

Fight back now, or it will be too late.

Please, send a mail to the President of the Italian Republic, which has the power to lessen the effectiveness of this sentence in our legal system:

Republic President's webmail.

If other governments think they can do that because Italy did that, it will be a dark day for us all. Stop this from happening.

Friday, February 19, 2010

Unexpected events can even be pleasant.

Yesterday, I've been asked to bring myself to the local station of the Finance Guard, for a one-time control applied randomly on new firms started last year.

Even if it's just a formal control on new-born firms, to prevent empty cover-up names to be legally provided to criminals, one may think it's quite a nuisance to loose a workday and bring your invoices into a police station for a check. And usually it is.

But contrarily to my expectations, I found the people at the office so empathic and warm that I had one of my most pleasurable morning since long. I met up with a officer being both skilled and loving I.T., so we entered immediately in a sympathetic mode.

As I was leaving the station, we took some time to talk about various arguments. As we talked, I wondered about the nice time we had, and realized that even if I had been forced to stop my restless work for half a day, that had been good indeed.

We run, run, rush to do things and never stop looking around, we're so dug into our daily troubles that we rarely see what's around, or in front of us. I felt so refreshed by the meeting that I had a feeling like taking a deep breath after a long run. And I felt like having found a new friend too.

Shuffling cards, meeting new people, going in new places, can really be good.

Sunday, February 07, 2010


... that makes me proud of being part of the mankind, it is this man.



Tiziano Terzani, he's not a master, as he says, he's not a Guru. He's just a man who lived, and who understood. Very probably, in another place, in another time, they would have called him a Buddah, an Enlightened.

He wrote books, as he was a journalist. In this interview, he was dying of a cancer, and he says he's happy of his life, and of the incredible opportunity he had been given; last but not least, the opportunity to die serenely, now that he is 66. Was he ill at a younger age, say at 30, he would have not be so happy to die, he says, but now, now that it has fulfilled his life, now that he has an equilibrium, now that he's in peace with himself... he says he and his "hosts", his cancer, will live and die together.

His last sentence in this video, one of his advices (not teaching, he never wanted to teach), is: if you find a fork in the road, where one road goes down, and the other goes up, get the one that goes up. You'll always find yourself in a better place.

And he was from Tuscany. As he's a man of the world, maybe I shouldn't say that, but hearing his adventures, his knowing, his wisdom in my own tongue, with that irony and views and happiness and life-force that are so much imbued in my homeland and so well know across the world, gives me a special kind of feeling.

Friday, February 05, 2010

Cheers for Falcon!

We have just committed version 1500:


gian@hplin:~/Progetti/falcon/core$ svn commit -m "Removed unneeded troublesome dependency"
Trasmetto manpages/CMakeLists.txt
Trasmissione dati .
Commit della Revisione 1500 eseguito.


Well, not a great news, but it was cool to cheer at it. With my fav beer :-).

Saturday, June 27, 2009

An example of fuzzy logic constructs applied to everyday life

This morning, my wife asked to me...

- Dear, when are we going to have shopping at the mall?
- Later.
- ... What do you mean with "later"?
- Uhm... "not now".

After she recovered from the shock, I explained to her the notion of fuzzy logic variable and fuzzification...

Monday, April 27, 2009

There was a cute bug in last Falcon bleeding edge release (0.9.1.2) that prevented to load modules in system that had name spaces in directory names. This was due to the new URI naming convention, which wasn't widespread enough in the engine. Thanks to the prompt report of some fellow user I've performed a complete re-release, and I also took the occasion to release a VS9 enabled package.
The Fibonacci(30) test is rating an impressing 0.90s with VS9; however, it's still a bit early to benchmark. Also, I had a test with Power Shell and VS9; everything seems fine now.

This new 0.9.1.4 fixes a couple of nasty bugs in the module loading/addressing code; we're really squeezing bugs and the 0.9 branch is becoming stabler by the hour.

Thursday, April 16, 2009

Self commenting.

We're sorry, Mr. Obama...

Thursday, April 09, 2009

I am particularly proud if this interview on ComputerWorld Australia, and for three good reasons. First, this is the first interview that has been directly proposed to me by the journalist, rather than being us hunting for media exposure. Second, because I've been given full space to explain my reasons and motivations in depth, and I've been given also the possibility to pinpoint some interesting technical detail. There aren't technical details worth exploring a language by themselves, but the details I have explained are interesting because they show the care put in reaching the specific targets we wanted to achieve.

Third... because the article bears the best recent photo of mine that's around on the net!

Myself

Wednesday, April 01, 2009

Falcon 0.9.0 was deemed "bleeding edge" for various reasons, but mainly because it failed some tests on some architectures. Most notably, it was messing up all the threaded tests on Win32/Mingw, and it crashed at random (once every 5-10 launches) on tests 38a or 51a (with different errors as malloc asserts, bus errors, segfaults etc) on some old Fedora based virtual host.

The type of error (its errand behavior), the fact that it appeared in the only tests forcing GC from the VM (while forcing GC from outside, activating the -M memory collection switch, everything was fine), the fact that previous versions were totally immune led me to think there was some concurrency error in the new GC, or some randomic behavior due to concurrency in sending the items to the GC and collecting them.

I'll cut the story short: the problem was simply that the ItemList, on which the new CoreSlot (message broadcasters) are based, and that is also the inner core of the List class in the Falcon language, has an internal list of active iterators. The list marks the iterators, and the iterators, when they are inside a Falcon iterator instance, mark back their owner. But if the GC destroyed the list, the iterators were still considered valid, and when they were to be destroyed, they tried to unlink themselves from the owner list...

Unluckily, this rarely (if ever) crashed; instead, it seems that it just dirtied the heap on every platform I tried (including VS8 with memory tracing enabled), and that may have caused (or not) a memory corruption detection on subsequent tests.

Oh, well, at least I checked line per line the mempool code twice, and now I can be sure that the new GC code is absolutely stable and consistent everywhere. This old error helped me to nail a couple of problems in the code that may have become a nasty nuisance later on.

Monday, March 30, 2009

A few verses of an Italian free spirit:

Gl'abusi un altro a criticar s'accinga,
per me da questa pasta alzo le mani:
canti ognun ciò che vuol, scriva o dipinga,
ch'io non vo' dirizar le gambe a i cani.

Let someone else to criticize the rants,
as for me, from this stuff I lift my hand right:
everyone sing, write or paint what he wants
as I don't go around turning dog legs straight

醜さを他の誰かが評判しなさい!
俺はこの事から手を引いたいんだ:
皆さんよ、好きに歌って、書いて、描いて
僕は犬の足を立派にしたくないから。

Salvator Rosa -- Tirreno