Phalanger goes Beta 4, Part I

12 03 2008

What is Phalanger? I’ve blogged about it on the past. It’s a PHP Compiler into .NET.

At that time I started a little project to implement a windows application to mimic the bake script from CakePHP. This gave me a lot of grief since there was no Windows Forms Designer for Phalanger at the moment. I had to copy the whole design from a companion C# project, just not to bang my head on the wall.

From the codeplex RSS entry: RELEASED: 2.0 (March 200 8) (Mar 11, 200 8) , one can find out the following:

This new version includes support for the following new features:

* Phalanger Integration for *Visual Studio 2008* including the free “Shell” version.
* Support for *Silverligh 1.1* (alpha) including Visual Studio project templates.
* *Windows Forms* designer is now available in the Visual Studio integration.
* Support for debugging Silverlight applications.
* Some minor improvements in the .NET interop (Nullable types).

So we have very good news regarding my Bake Application. The release talks about Windows Forms Designer being ready on this release.

Ok, last insight on the title of this blog: The Part I part. Since I’m only posting about the release news itself, it means I’ve not tested all this yet. My intention is to expand my Bake Application and in the mean time give you some insight on the new features listed on that news entry by providing a new blog post, Part II, with all the nitty gritty of this new release.

So keep your attention on this mini-series and I’ll see you later.

Gustavo Carreno





Looks nice this Xobni thing…

22 02 2008

I’ve stumble upon a very nice add-on for the Outlook application that I might share with you:

Xobni

It’s a powerful add-on that will be available for other platforms, at least it’s stated on their website.

It has a very nice interface, pretty rich in graphical terms.

The feature list is quite impressive:

  • Extraction of data from your mails, phone numbers, addresses and the such;
  • Possibility to mimic the threaded view of email like GMail.

At least for a first glance.

I leave you with a link to my, shameless, appeal to get myself quicker in the beta test list:

Xobni outlook add-in for your inbox





CakePHP API for CakePHP 1.1 and 1.2

8 11 2007

Hey bakers,

Just released the HTML(.zip) and CHM files for the API:
1.2 is from last pre-beta launch.
(http://cakeforge.org/frs/?group_id=53&release_id=352)
1.1 is from last stable trunk launch.
(http://cakeforge.org/frs/?group_id=53&release_id=353)

Happy baking,
Gustavo Carreno





PHP finds a mouth: PHP Abstract

26 10 2007

Cal Evans, the once Roving Reporter of devzone, has sent word about a new contest, one for the busy programmer: Win a book by promoting the PHP Abstract podcasts.

While I do enjoy getting books for free this is not the major idea behind this post. This post is being dished out due to the pure pleasure that is to follow the podcasts themselves.

The jingle is absolutely amazing since podcast one.

The contents of each podcast is very short, but that’s a plus, since the speaker does it’s best to deliver good content in a, far from boring and tedious, format.

Maybe the most amazing thing of them all is to ear the calm, passed voice of Call himself introducing the podcasts. It’s always done with good taste and a very amusing sense of humor!

Well, I think I’ve sucked up enough on Cal and probably will not get my prize due to the fact that to much sucking up could ruin the cake, but heck, I really don’t mind. I just want to continue listening to the podcasts and enjoying the goodness of it’s contents.

PS: If you have time please have a listen to my favorite: Episode 11: Opinionated Software.





New releases of CakePHP

26 10 2007

I know that this is not quite news for the CakePHP community, but nonetheless I have to mention it.

Two new releases (1.1.18.5850 and 1.2.0.5875) are available at the cakeforge site.

The release notes article at the bakery site have more insight on the new features but I would like to mention the ones that most appealed to me:

  • Simplified REST routing. This means that you can now map a PUT HTTP request to your edit action.
  • The findAll() and findCount() method of Models have been replaced with a better syntax on the find() method.

The only thing left for me to do is to congratulate the CakePHP team on the very good effort put on these releases. Thank you guys, please keep the good work going.





Creepy reality, funny acronyms

26 09 2007

In the fast landscape of acronyms and new methodologies that the programming scene is cruising thru we have the best know has: Agile Programming, eXtreme Programming, Test Driven Programming, Document Driven Programming, etc..

But what about the reality of things?

Well, someone has really put the finger on it: Asshole driven development and other true methodologies living in reality. Also have a read on the comments. There’s about 60 more definitions for you to ponder about.

Cheers,
Gustavo Carreno





The new RoR vs PHP flame of the month

26 09 2007

Once in a while a new flame on this old war pops up to either put more wood on the fire or reveal all the childish behaviors on either faction’s evangelic sides.

The article in question is Derek Sivers: 7 reasons I switched back to PHP after 2 years on Rails.

After reading this article I was left with the feeling that something wasn’t completely right. This feeling endured until I found this post from Chris Hartjes: Rails Fan Boys Missed The Point.

Most of the conclusions that Chris sates in his post come to me has very well thought and quite along my way of interpreting what happened.

But I think that something more has to be said about that initial post from Mr. Sivers.

First of all, Mr. Sivers does not actually state any of the problems he encountered while recoding the CD Baby site.

He only mentions that he had problems, in a generic way. This alone is very dubious, prone to subjective assessments and flame wars. If he would be a tad more informative on the dilemmas he encountered, probably all this flame would be avoided.

But this leads to more speculation, like: did he understood the patterns behind RoR? Did he modeled his approach upon the “opinionated software” credo? Or was he only trying to port his own  vision of the legacy application directly to a new paradigm?

These are questions that are not answered in his initial post, nor in the subsequent replies Mr. Sivers does to the comments left on the post.

One could get some hints from his original post to answer those questions but it would, in the end, be more speculation.

When one has the “balls” to enter such a flame war territory, one has to enter with powerful weapons. Those weapons would be more along the line of comparing apples with apples, not comparing the flavor of apples with the flavor of apples. Even worse: comparing the flavor of apples in a world where you have factions that are “taste blind” to some of those flavors!!

Second, Mr. Sivers looked like a person that was stuck in time (first version of his app) and suddenly had the urge to jump to the present (recoding of his app).

The post is a complete lack on the initial decisions that Mr. Sivers took in order to plan his approach to the task he was about to initiate. This either reveals that he had no strategy, or even worse, that his strategy was not worthy of mentioning since it was completely clear in his mind. Why is the later worse? Well, if the whole process of migration was locked inside his head, how could ANY developer tackle the task at hand with just a blank map as a beginning? I’m sure that Mr. Sivers did give some helpful guidelines to initiate the migration. Now, where those guidelines of any help to the programmer? Dunno :(

I’ve had a very bad experience in the past where I was coding a Delphi application to administer a back-office of a B2B web site that was of my making. It was not the PHP behind the B2B site. It was not the Delphi application. It was not the MySQL database that persisted the data and served has a channel between the Delphi app and the site. It was the HUMAN that was telling me how he wanted both things to work that was my problem. Ultimately I had a good help from another human that had a foot in both sides of the argument. He was a former programmer and was, at the moment, one of the team mates of said HUMAN, giving him the ability to translate what I was talking about to the HUMAN and vice-versa. This resulted in a very productive three-some and the product was finalized and shipped. Uffff.

All this to illustrate that lack of planning, or lack of communication could be at the core of this failure. Not the mighty “apple flavor vs apple flavor” of the month.

Third and last. Mr. Sivers mentions that he has learned a lot from the RoR way of thinking and was able to port the application applying those principles.

This for me, is the most intriguing of all the statements comprised on that post. Why? Simply put: if one understands a principle, let’s says the principle of throwing a rock, isn’t that person able to apply the same principle to another rock? Well if this is true why did Mr. Sivers apply the principle to something else than a rock? Yes, if one can extrapolate from a rock, one can throw any other object, but does this mean that you loose the ability to throw a rock?

To no confusion: if Mr. Sivers was able to extrapolate the ideas behind RoR and apply them to PHP, what really prevented him to have success on his first task?

Well, it really looks like demagogy as installed itself yet another time on an old discussion and I have already contributed enough to it.

Cheers,
Gustavo Carreno aka [Batch]





PHPEdit stable version 2.14.4.5256 just released

16 09 2007

Hey everyone,

Just to let you know that Waterproof has released a new stable version of my favorite PHP IDE, PHPEdit stable version 2.14.4.5256.

Please take a close look, it’s the Ruby World Cup 2007 Edition and you have special discounts if you are one of the countries that enter the Cup and win any match.

You will find all the discounts listed on this page: Rugby World Cup 2007 Special Offer





The "Geeks and Romanticism" Contest Rules

14 09 2007

If you remember some time ago I sent the community a challenge.

Well, I’m gonna put the money were my mouth is and give, from my own pocket, a prize of 100£ (One hundred British Pounds) to the winner! (If someone wants to donate to fatten the prize you are quite welcome, PayPal account: gcarreno dot pt at gmail dot com)

The rulez

  1. It must contain contents that have to be accepted, has being romantic, by other geeks.
  2. It has to be written in one of the following:
    • A compiled programming language.
    • An interpreted programming language.
    • A markup language.
    • I reserve the right to add any other format if the submitter has good reasoning towards including it.
  3. No clear content can be shown. In the programming languages you cannot have strings with the content. On the markup languages you cannot have nodes with clear content. No encrypted MIME:base64 or other type of recognizable hashing algorithm is allowed.
  4. This is not an obfuscation contest. For that there are other contests around the net.
  5. For compiled programming languages it has to compile on an Open Source compiler with no warnings and no errors, regardless of architecture.
  6. On interpreted languages you have to state clearly what is the interpreter. Obviously it has to be an Open Source interpreter that anyone can install in any architecture.
  7. The markup languages have to be accompanied by instructions on how to extract the content. The interpreter has to follow rule number 5.
  8. All submissions have to be delivered via mail to gcarreno at gcarreno dot org by February the 12th. Results will be posted by February the 14th. Yes Valentine’s day.
  9. Submissions with no clear identification, e.g. full name, nickname (if you prefer this to be the listed author’s name), email, PayPal account (to get the prize), full disclosure of rights to publish, will be refused.
  10. All submissions will be listed on my personal site (http://gcarreno.org) for the community to vote.
  11. I, Gustavo Carreno, will have final saying about the winner, imposing over whatever voting values may be listed on the site.

So here you have it, the rules are set and the contest is afoot.

These next few months I’ll be dishing out the application to list and allow the vote of the community. It will be a CakePHP application with some nice jQuery effects.

Good luck to all!





Compiled PHP to .NET 2.0 ?! Why not !?

14 09 2007

I’ve recently stumbled upon something that made me quite happy: Phalanger. Phalanger is a PHP compiler to Common Language Runtime (CLR Microsoft .NET 2.0).

This joins two of my favorite things, PHP as a language and the speed of compiled code.

Read on for an account of my intents and some code snippets…

In the back of my head I’ve been wanting to make a visual bake script for CakePHP for a long time.

Many things have stopped me from pursuing this idea, namely, the thought that I have to do some parsing of PHP if I want to get the settings from the app/conf folder and then having to write it again without messing what was there previously, or the idea of loosing the ability to use the framework itself for Model access, etc…

I first thought about Delphi since it’s a language that I’m quite familiar with. But all of the above concerns would make it a difficult choice.

Enters Phalanger, the .NET PHP compiler !!!

It has the ability to use all the goodies from PHP and it has the ability to use all the goodies from .NET, hence the perfect choice to implement my idea. You can even play around with WinForms !!! Perfect !

I’ve started an application, a WinForms one, and it gave me great pleasure to achieve the same look one has on a C#/VB.Net one but one thing really got me off after doing it: there is no form designer!!!

It was quite painful to do the designer’s job all by hand, even if I had a C# project on the side and was using it to get all the code out. Even so it was fun.

My attempt at making this WinForms application was to have a CakePHP baker GUI. I’ll leave you with my code so you can have a browse at it and see for yourself how some of the problems with images inside the project were solved.

Download: WinBaker.zip (227 KB)

[Edit:16/09/2007]

Project, binaries and Companion C# application: WinBaker.rar (738 Kb)
Screenshot 1: WinBaker-01.png Just launched
Screenshot 2: WinBaker-02.png After the open action we get a tree view with some initial CakePHP hierarchy.