2007-11-12

Good Bye

After several months of enjoying the engine, I've decided to leave Blogger and move to WordPress. Mainly because of bad compatibility with my browser.

Good bye world.

2007-10-29

Integration of Zend Framework and Prototype Ajax

Last two days I've worked on implementing an example of integration of Zend Framework's MVC and Prototype's Ajax for HTML Forms submission and validation.

The solution consist of 2 parts:

1. There is a new View Helper to create an Ajax-enabled form.

This part mostly consists of JavaScript code, which alters default HTML Form behavior to submit the input element values to the action's URL with Ajax, if form's method is set to 'ajax'.

In addition the form itself listens to submission result events and (by default) marks input elements if they are invalid.

2. There is a new customized abstract base Controller which replaces default ViewRenderer with a new one, which:

a) detects whether the request was received from Ajax.
b) if true, will not render the view, but instead will output with the input validation information, if either.

Well, the development is not really over yet, but what I originally wanted to say is I've just realized how I miss writing good old JS. :)

By the way, I need to repeat [ad:start] how happy I am to have PHP, HTML and JavaScript editors in one powerful standardized environment (Eclipse) - what I never had in the past, before PDT, WST & ATF came to the picture [ad:end] :)).

2007-10-21

PDT CodeDataResolver and ContentAssistSupport Unit Testing

Just wrote the subject related article here.

The article explains the concept of editor caret position based Unit Testing of editor links and code completion in PDT.

2007-10-20

Debug PHP and JavaScript simultaneously

Yesterday me and Roy had a brainstorm session on future Zend Neon (Commercial version of PDT) and ATF integration and "occidently" found a way of debugging of an URL with both Zend's PHPand Mozilla's JavaScript debuggers in one session.

Surprise! It's possible with neither patching nor hacking. I'm not going to show the exact steps of this, but the idea is very simple:

As you probably don't know, to debug URL on a server which has Zend Debugger installed it's enough to pass several simple parameters with the HTTP request (either in the query string or as cookies), like client IP and port, debug type etc., to start the debug session. Afterwards the debugger contacts the client machine, where a Neon's Debug Daemon listens for incoming connections. The Daemon then raises up a new Launch Configuration.

When Neon's Debug URL action is executed, it just appends the needed debug parameters to the passed URL and sends the updated URL either to the browser. Just grab this URL and start Mozilla JavaScript Debug Launch with it!

As the result 2 simultaneous launch configurations will start; the first activated session will be PHP's one and then, after the browser will start receiving content from the server, JavaScript's one will come into the picture.

Voila!

Moreover, if you enabled all-pages (cookie based) PHP debugging, it will go further with your AJAX (AJAH/AJAJ) requests!

Now the only problem :) is you cannot set breakpoints of both PHP and JavaScript types in the PHP source file, since it doesn't match the final responce which will be passed to the browser, so you should enable the option to suspend the JavaScript execution immediately after it starts to add breakpoints to the responce HTML source.

Version Upgrade

Today I found that the new version 7.10 of Kubuntu just released.

Since my only Linux machine is in the office and I'm at home today, I've started to upgrade the system via VNC. And now I'm wondering will it allow me also to finish with it. :)

Update: It's funny, but it didn't allow me to continue, since some of my old Third-Party Feisty repositories reported 404. Continuing the jorney...

Final: Well, the upgrade succeeded from the 3rd attempt. The system seems working a bit faster, probably because of KDE major upgrade.

2007-07-18

Mine Comps

Initially I wanted to share with you, my dear blog, a very specific problem I had with running an application (I will certainly do it in the next post), but next I found interesting to talk about all my workstations I had at Zend since day 0 until now

Well, let's start from the beginning. My first week or two at Zend I worked on a temporary machine with about (I don't remember exactly) 400MHz Pentium II and 1/2Gb RAM. It was more than enough to run HTML-Kit with PHP functions plug-in and Outlook Express. I don't remember neither her face nor her interior.

Afterwards I inherited my first ThinkPad laptop from my predecessor. It was a good old T21 with 700MHz Pentium III and 1/4Gb RAM and Windows 2000. She served me several years, survived a fall and display repair, outlasted hard disk crash, and experienced memory upgrade to 3/4Gb. My needs grown - I started to run Java based Zend Studio 2.5 and AMP. However, each time I asked our CTO/R&D/IT all-in-one person about CPU upgrade (=new machine), he reminded me that 700Mhz Pentium III is a very powerful processor. It didn't help though.

Finally somehow one of my frequently shuffling bosses did succeed to swap for an used R51 one with 1.3Ghz Celeron M, 1Gb RAM and 15" 1K*3/4K display and Windows XP. The only reasonable advantage of this fright was it's somewhat faster CPU, while its overweight, size, design and accommodation was a certain downgrade. Anyway, she was with me another 2 years until I met my new and current laptop.

Those days, my boss was the company's IT manager (I didn't understand fully correlation between office's infrastructure and e-Business development and just accepted that castling as a fact), which illicitly purveyed for me the T41 with 1.5Ghz Centrino and 2Gb DDR RAM, which I'm using right now to write this post.

After another year I moved from the e-Business team to Development Tools group and got stationary machine again. Now she runs Windows XP over Intel Dual Core and 2Gb RAM, however about 3 months there was also a OpenSUSE Linux 10.2 on additional hard disk, since I needed to work on Linux related issues under Eclipse IDE.

And after all I gathered another machine with Intel's 64bit processor, which runs Kubuntu 7.04 alone. With that, I removed my SUSE installation and got a switch to share my display and peripherials between two of my mates.

End.

2007-06-27

R+R

Today (yesterday, actually) Development Tools group enjoyed the day of recreational activities.

Here comes the brief list of our activities at National Park of Gan ha-Shlosha:
  • Two team orienteering competition - The group was randomly divided into 2 teams, each of them received maps, showing where envelops with parts of a puzzle were hidden. The assembled puzzle should show where is the treasure located. I personally didn't really believed in our team's success, though made my best; but surprisingly we won.

  • Kayaks basketball game - The meaning of this weird activity was to paddle down-stream the river, to gather secret code for accessing a basketball from the supervisor, to return up-stream and while being in the kayak to score it to the basket as many times as you can. Not so exciting, honestly. But the paddling itself was awesome.
  • Massages - 3 massageurs served us, allowing massage kind selection. Generally I like massages very much, but this time it didn't do to me well.
  • Volleyball competition - I found I haven't completely forgot to play this game. My last time was about 12 years ago, but the arms still remember the movements.
  • Spontaneous water games in the river.
  • Board and card games on the river's bank.

    In the end we drove to Herb Farm restaurant and had a not bad meal with wine there.
  • 2007-06-25

    PDT and me

    Luckily, some projects I work on currently are open sourced, what makes me able to post close to everything I want about them.

    I have been involved in PDT more than one year, starting with my entrance to Zend's Development Team (After finishing to work about 4 years in the e-Business team as Zend's site developer and maintainer. 4 long, hard and pleasant years of coding PHP. Needless to say, how proud I was to start developing tools for people like ex-me - common PHP gurus.).

    Terse History
    PDT (former PHP-IDE) was born from two parents - IBM and Zend. The father dipped two mature committers, which fertilized the idea (and withdrew shortly thereafter); and mother's bosom solicitously received the contribution and started to grow it carefully. As every whelp, PDT got it's good and bad heritage from their parents. Some code chunks were (sometimes thoughtlessly) copied from JDT/JST, others were forcedly brought from Zend Studio. There were hot discussions, hard solutions, brilliant brain-waves and horrible mistakes...

    But, as we know, time heals. Now, when we are close to the first release of the product, the situation is not so bad. The model is robust, views are useful and informative, debugger support is awesome. Performance is acceptable.

    And, surprisingly or not, the project became one of the most popular among other Eclipse's ones with thousands of daily downloads, dedicated and energetic community. It conquered most of its competitors (this may be disputable) and even came close to compete with the real monster - Zend Studio itself.

    My commitment
    Now it's hard to remember each line of code I committed to the project, but fortunately and occasionally I found the amazing site of Ohloh, which kindly refreshed my memory.

    So, let's go. I've added/changed about 25k lines of code, which is not so much when comparing with some other committers. It's not surprising, since most of my code were feature improvements, performance optimizations and bug fixes. As results of my direct work which are visible with unaided eye, I can mention only these things:
  • Outline views (PHP Explorer View, Project view and Editor Outline View) synchronization,
  • Include Path trees in PHP Explorer View,
  • Files Drag-and-drop support,
  • Smart bookmark enablement and
  • The project's download site.

    That's all, folks. Not so much, honestly. But I have to mention, that I am still proud of each character I typed.

    End.
  • Hello World

    Well,

    With this I am starting a blog, which will contain my experience reports on working at Zend Technologies.

    It's possibly a bit late to start just now, since I'm already an 'old' Zender, working here from September 2001. But - it's better late than never.

    In the future posts I will attempt to refresh in my memory what happened to me in these years, and ofcourse will describe what I'm doing currently. Unfortunately, however, parts of my deeds are confedential, so they will be hidden until the secrecy will become obsolete.

    For now this blog will not be published and promoted. If you are reading these lines, you probably have good reasons for that. Oh, am talking to myself?

    That's it by now.

    P.S. My English is poor, please don't judge strictly. :)