2008-06-20

Long time no news

Hi all, sorry for being silent for a while, but in the past weeks i had a lot of things to do. From one part i have moved to a new apartment where is still no Internet installed, from the other hand i was on holidays. As a result my feed reader contains around 700 unread items i should browse through when i find a little free time in the office:)
Looking back the most important thing that happened during the time is the release of the new Firefox.
To have an overview what other browsers are doing quirksblog made a writeup.

My personal experiences so far w FFX 3
- better memory usage - i can run the browser for hours, still get a memory usage of around a 100 and sth Mb.
- faster user experience, faster tab switching
- all my extensions work, EXCEPT firebug ...ah i would need that so much!!!
- my own extensions work, i only need to change maxversion number
- the magicbar, or whatever it is called, i dont really like, i like the logic of ordering, but i think its hard to see the url, and that is what usually important for us ...maybe i will get used to it

Happy browsing everyone!

UPDATE:
- firebug seems to have a beta version that works with FFX3, so far i experienced no problems with it
- Google browser sync seems to be discontinued. I will have to search an alternative solution to sync bookmarks.

UPDATE2:
- Foxmarks is an excellent replacement for google browser sync so far
- although the memory footprint of FFX3 is much better, i often find myself in situations when the processor usage is unreasonably high (around 50%). I have to restart my browser to stop burning my CPU. No good.
- i am getting used to wonderbra wonderbar :)

2008-05-09

SugarCRM Event in Portugal

Just one week from now we will have a big SugarCRM event in Portugal. It is organized by DRI, amongst the speakers we will have Clint Oram, vice-president and co-founder of SugarCRM. I am really looking forward to be there, and i am also proud that i took big part in two of the projects that will be presented as case studies.

Website of the event (portuguese only): www.eventocrm.com

2008-05-07

Firefox + Blogger crash

For some reason my previous post keeps crashing my FFX2. Maybe the list is way too long:) The markup of the post itself seems like valid HTML to me, so it must be something else. My plugins, or other markup of blogger? It's a mistery, if it happens with you, too, let me know and sorry about the inconveniences.

PHP Certification Study Guide Errors

If you have been already preparing for Zend PHP5 Certification exam from the official study guide, you know it has many annoying errors and misleading statements. Up until the beginning of April there was no forum/listing where you could cross-check the errors, but now we have this errata in our hands. Its pretty complete, i only missed two thing that i noticed myself while i was studying. I added these in the comments section of the page. For the sake of completeness i repeat the list hereby. Happy studying!

First Edition Errata

Page 7:
reads "If you need to output data through a function, you can use print() instead". Person reporting comments that "PHP manual makes it clear that print is not really a function but rather a language construct" So perhaps we just need to change the wording.

Page 11:
reads "When converted to a number or a STRING, a boolean becomes ... 0 otherwise". Compare this to
http://www.php.net/manual/en/language.types.string.php
saying:
Boolean FALSE is converted to "" (the empty string).

Page 12:
top line reads "...want to convert to enclosed in brackets"... this should read "want to convert to enclosed in parentheses"

Page 17:
should read $a = int('Test'); //$a==0 ... echo ++$a; //outputs 1. Otherwise the output will read "Tesu" because of the incrementing

Page 19:
lines 2,3: If both bits are either set or unset, the resulting bit is unset

Page 26:
check versus table in the manual http://www.php.net/manual/en/language.operators.php

Page 29:
on while loops: should say "they allow you to perform a series of operations until a condition evaluates to false"

Page 34:
the line "if($oldErrorHandler) will cause an error... need to put global $oldErrorHandler at the beginning of function myErrorHandler(). Also change to $oldErrorHandler = set_error_handler('myErrorHandler');

Page 50:
should read "giving the key for the specific element..."

Page 52:
-- if the two arrays had common elements that also share the same string keys or that have numeric keys (even if they are different) they would only appear once in the end result. This isn't true and should be changed to "if the two arrays had common keys (either string or numeric) they would only appear once in the end result"

Page 53:
var_dump ($a==$c); //should be false

Page 54:
should be echo array_key_exists('a', $a);

Page 54:
should be echo in_array (2, $a);

Page 55:
typo - "note how key key association..."

Pages 56-57: use of reset() is misleading here: only if the $array is passed by-reference to the function, it would be necessary to be reset; otherwise we'll find a brand new reset array inside the function by default.

Page 57:
should be $array = array(1,2,3); ... end ($array); to work with code right after it

Page 67:
"Push and pull" should be "push and pop"

Page 68:
should read "if you intend to use an array as a queue, you can add elements to the beginning and extract them from the end by using the array_unshift() and array_pop() functions".. Also should change the code appropriately

Page 76:
"Here's an escaped backslash - \ - "... should read "...backslash -\\"

Page 77:
echo srtr('abc','a','1'); //(instead of strstr)

Page 79:
strncasecamp instead of strcasencmp

Page 81:
Line 1 should be - "You can use the strspn() function..."

Page 87:
should read "A sign specifier (a plus or minus symbol) ... "

Page 88:
printf("%d", $f); //prints 123

Page 92:
should read "the function returns integer 1 if the match is successful"

Page 98:
should read "Contrary to popular belief, POST is not an inherently more secure way to ..."

Page 99:
2nd par, should read "As you can see, the data has been encoded and appended to the end of "...

Page 99:
should be [direction] not [dir]

Page 99:
Under the [FORM submitted with POST] section, the code says <input type="password" name = "pass' - note the single quote at the end of pass

Page 107:
$data should be $date

Page 109:
Check the "setcookie delete" description

Page 122:
the examples should read public $var1, $var2, $var3 instead of public var1

Page 123:
static public function baz() :: public should come before static

Page 123:
output will display "Hello World... Notice: Undefined property

Page 141:
This chapter says it reviews PDO and database connectivity but it never does... we need to either write something up or take this part out

Page 143:
"one-to-one... correspond to every row in the parent"... should read "each row in the parent"

Page 147:
"suppose we wanted to create a unique index"... but then an ordinary index is created

Page 147:
"isbn ...references book (id)" should say "references book (isbn)"

Page 149:
Ender\'s Game should be escaped with 2 single quotes as such Ender''s Game

Page 153:
sql statement is incomplete, only 2 of 3 tables are joined. Publisher table is missing from the joins

Page 158:
if (is_null(self::$_singleton)) {self::$_singleton = new DB(); - conflicts with the "the getInstance() method, which checks whether the static property $_connection has been iniitialized and, if it hasn't sets it to a new instance of DB

Page 164:
delete this line: function seek($key)

Page 165:
class myData implements Iterator (needed capital I on iterator)

Page 165:
$_myData and $_current needs to remove the underscore

Page 178:
Parsing XML Documents - text is confusing here

Page 184:
$dom->load('library.xml');

Page 184:
should read DomDocument::loadHTMLFile() (capitalize HTML)

Page 185:
DomXpath should read DomXPath

Page 204:
should read " the worst that can happen"

Page 207:
last line, 2nd par - should read "While setting register_globals to Off is the preferred approach"

Page 214:
Reads "Since 1=1 is always true and - begins..." - should read "Since 1=1 is always true and -- begins"

Page 228:
SEEK_CURRENT should be SEEK_CUR

Page 231:
reads "a directory which has the same file as an existing file" - should read "a directory which has the same name as an existing file"

Page 231:
should read "Note that, normally, only the last directory"

Page 231:
should read "Checks if the path is executable

Page 234:
"Stream contexts are created using stream_create_context()" - should read "Stream contexts are created using stream_context_create()"

2008-04-20

Google App Engine

Appengine is fresh and buzzing, check it out if you havent heard of it yet. If only it was not working for python only. I dont need to tell you what is the language of Web, do i?:)
Also Salesforce and Google integration got some fresh news.

2008-04-13

Amoba going opensource

I have published my gomoku (5 in a row) game as a free-to-take project on sourceforge. I was not touching the source since 2004 now, and i dont plan to develop further myself. If anyone finds it interesting, or just wants snippets from the code, feel free to use it, it is licensed under GPL.
The latest executable is still available from my homepage, or from sourceforge itself. Sourcecode is available in SVN repo.

Zend Framework and Smarty

I am about to start a new project based on ZF, the library looks like a beast to be tamed at first sight, i still need to learn a lot about it. I was doing some preliminary investigations how to use Smarty with its Zend_View component. A lot of info on the web looks outdated, but i found a great blog here (and old version here). Jani is a young Finnish developer-jedi, and i really like his writings about ZF and templating engines, just to list a few of them:
After all, i am still not sure which way to go. Shall i force Smarty as a View extension? Shall i completely leave out View component, and use Smarty manually from the controllers? Shall i forget Smarty and stick to the default View and Layout components in ZF using the ugly php syntax?
During my investigations, i also came across the blog of Matthew Weier O'Phinney, who is an actual developer of ZF, so it might be worth keeping an eye on him:)

2008-04-08

CSS Naked Day

Tomorrow is CSS Naked Day. Strip all your styles from your webpage, if you dare! I think i won't be that bold, but its an interesting initiative from Dustin Diaz, and so far some 700 sites have joined.

Becoming ZCE

Ok, so here is what kept me busy last week. Now i am officially Zend Certified (PHP5) Engineer :)

2008-04-03

Adobe AIR for Linux (Alpha)

Adobe published their first version of AIR for Linux. It lacks some features yet, but worth trying out.

2008-04-01

Save the developer + css support in IE

I recently came accross this site. Great to spread the word amongst people stuck with IE6. Although i am not that big fan of IE7 either, and i would definitely change the order of the recommendations.
[UPDATE: the above link was removed. Read on here.]

Why IE6 sucks? There are many issues, just to grab one, it is poor CSS support. Related to this there is a new doc from Microsoft showing the css selector support in running versions of Explorer. That might be useful to check one day.

Photoshop Express

Adobe just released their long awaited Photoshop Express. An in-browser image manipulation solution that is supposed to have some similar feel/functionality to the desktop version. While the resemblance is quite weak, there are some nice things you can do in the Flex-based Express edition. To upload your own photos you need to register, but a test-drive is available.