<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anna Filina &#187; PHP</title>
	<atom:link href="http://annafilina.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://annafilina.com/blog</link>
	<description>Web applications developer, conference organizer, geek...</description>
	<lastBuildDate>Wed, 08 Sep 2010 12:02:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Doctrine Translation in leftJoin()</title>
		<link>http://annafilina.com/blog/doctrine-translation-in-leftjoin/</link>
		<comments>http://annafilina.com/blog/doctrine-translation-in-leftjoin/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 10:51:06 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=467</guid>
		<description><![CDATA[If you use Doctrine, then you probably know how lazy loading can hurt your performance. I carefully craft every query to everything that I need in one shot, but only what I need. One thing that evaded me at first was the i18n part.
Model Relationships
I am pleased with the way Doctrine + symfony magically creates<div><a href="http://annafilina.com/blog/doctrine-translation-in-leftjoin/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>If you use Doctrine, then you probably know how <a href="http://en.wikipedia.org/wiki/Lazy_loading">lazy loading</a> can hurt your performance. I carefully craft every query to everything that I need in one shot, but only what I need. One thing that evaded me at first was the <a href="http://en.wikipedia.org/wiki/I18n">i18n</a> part.</p>
<h3>Model Relationships</h3>
<p>I am pleased with the way <a href="http://www.doctrine-project.org">Doctrine</a> + <a href="http://www.symfony-project.org">symfony</a> magically creates all my models and database tables with i18n support. All my relationship names are explicitly defined in the schema.yml file. So, if I want to get all products in a transaction, I can access it via $transaction-&gt;Products. When crafting a query, I would say -&gt;leftJoin(&#8216;t.Products&#8217;) to make sure to load all the products at the same time as the transaction, potentially saving hundreds of queries later.</p>
<h3>I18n</h3>
<p>Since the i18n relationship is defined in a special way in schema.yml, without specifying a relationship name, I wasn&#8217;t sure how to write my Left Join. I looked up the Base[ClassName].class.php file but did not find anything useful. After analyzing all the parent classes, I found it: Translation. It might have seem obvious since the tables are names product_translation, but that element eluded me and I did not find anything in the documentation at the time regarding this.</p>
<h3>Other uses</h3>
<p>Now that I can get my product names with -&gt;leftJoin(&#8216;p.Translation&#8217;), I cut the number of queries in at least two. Knowing the Translation relationship can have other uses, like counting the number of translations in your code and warning the user about missing translations (no product name in French!). I can also use the Translation relationship to make my search-engine friendly URLs multilingual. I can write about this last one in another post if I get such a request.</p>
<p>The uses for the Translation relationship are infinite!</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/doctrine-translation-in-leftjoin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLIFF Parsing Error</title>
		<link>http://annafilina.com/blog/xliff-parsing-error/</link>
		<comments>http://annafilina.com/blog/xliff-parsing-error/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 13:20:53 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=465</guid>
		<description><![CDATA[Most of the Web applications that I build are multilingual. Since I use the symfony framework often, I rely on the XLIFF standard.
The error
I used to ask my clients to send me a Word document with the translated text. This is the format that they are most comfortable with. An error occurred recently when I<div><a href="http://annafilina.com/blog/xliff-parsing-error/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>Most of the Web applications that I build are multilingual. Since I use the <a href="http://www.symfony-project.org">symfony</a> framework often, I rely on the XLIFF standard.</p>
<h3>The error</h3>
<p>I used to ask my clients to send me a Word document with the translated text. This is the format that they are most comfortable with. An error occurred recently when I copied the text directly from the document to an XLIFF file. For some reason, I could only see the original, English values.</p>
<h3>The cause and solution</h3>
<p>I would have probably not found the error had I not validated the XML translation file. It gave me a parsing error right in the middle of various strings. They looked fine until I turned on the special characters. Apparently, some special, invisible characters generated a parsing error and broke my application. I sanitized my strings and voilà!</p>
<h3>Good practices</h3>
<p>Since that incident, I always turn on the special characters in my text editor so that I may pick up any glitches earlier. Also, I no longer ask clients to supply a Word document, but rather a plain text document created with Notepad. To some more technical clients, I even supply the XML with empty &lt;target&gt; tags that they may fill in. That makes less work for me, gives satisfaction to the clients, because they feel empowered, and prevents any parsing errors.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/xliff-parsing-error/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ConFoo &#8211; Episode 1 (youtube)</title>
		<link>http://annafilina.com/blog/confoo-episode-1/</link>
		<comments>http://annafilina.com/blog/confoo-episode-1/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 20:26:01 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=447</guid>
		<description><![CDATA[Thanks to all the participating communities, I was able to produce the following ConFoo video. It talks about what to expect from the 2010 conference. I hope you have as much fun watching it as I had making it.

]]></description>
			<content:encoded><![CDATA[<p>Thanks to all the participating communities, I was able to produce the following ConFoo video. It talks about what to expect from the 2010 conference. I hope you have as much fun watching it as I had making it.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/l_NpLtq_YxE&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/l_NpLtq_YxE&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/confoo-episode-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.3 on OSX</title>
		<link>http://annafilina.com/blog/php-5-3-on-osx/</link>
		<comments>http://annafilina.com/blog/php-5-3-on-osx/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:46:56 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=442</guid>
		<description><![CDATA[I wanted to play with Symfony 2 and so needed to install PHP 5.3 on my OSX 10.5. What seemed like a simple task turned into a huge waste of my time.
I use MAMP because it&#8217;s a nice out-of-the-box solution. The problem is, it still doesn&#8217;t ship with 5.3 because it&#8217;s waiting for it to be<div><a href="http://annafilina.com/blog/php-5-3-on-osx/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>I wanted to play with Symfony 2 and so needed to install PHP 5.3 on my OSX 10.5. What seemed like a simple task turned into a huge waste of my time.</p>
<p>I use MAMP because it&#8217;s a nice out-of-the-box solution. The problem is, it still doesn&#8217;t ship with 5.3 because it&#8217;s waiting for it to be &#8220;stable&#8221;.</p>
<p><span id="more-442"></span></p>
<p>It&#8217;s funny that I got a similar answer a few years ago from a big web hosting company about PHP5 when it was clearly announced that PHP4 is discontinued.</p>
<p>I first searched for a way to upgrade PHP in MAMP and came across this nice post: http://www.davidgolding.net/cakephp/upgrading-php-in-mamp.html</p>
<p>Unfortunately, while following the steps, I kept getting errors because some dependencies were missing. First openssl, then libjpeg, and so on. After some time I grew tired of that catch-up game and decided to go with a product that comes with 5.3 pre-compiled.</p>
<p>XAMPP was my answer. You can download it here: http://www.apachefriends.org/en/xampp.html</p>
<p>So if you&#8217;re tired of MAMP, it&#8217;s time to switch.</p>
<p>EDIT:</p>
<p>To migrate your vhost config from MAMP, copy  to XAMPP/etc/extra/httpd-vhosts.conf and enable the line that contains this path in XAMPP/etc/httpd.conf</p>
<p>To migrate your MySQL, my favorite method is to enable MySQL via MAMP, dump all the databases to a file (you may use MySQL Administrator for convenience), disabling MySQL via MAMP, enabling it via XAMPP and then restore your databases from the dump file.</p>
<p>EDIT 2:</p>
<p>At the time of this post, XAMPP ships with PHP 5.3.0 while Symfony 2 requires 5.3.1. Oh well, I guess I&#8217;ll just wait for them to release a new version before I play with Symfony.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/php-5-3-on-osx/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Building a conference website</title>
		<link>http://annafilina.com/blog/building-a-conference-website/</link>
		<comments>http://annafilina.com/blog/building-a-conference-website/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:24:06 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=425</guid>
		<description><![CDATA[Building a conference website as the conference was being organized is probably one of the biggest challenges I ever faced. It is also the project I&#8217;m the most proud of. I&#8217;d like to share that experience with you. By the way, the event is still in progress, so my work on the site is not<div><a href="http://annafilina.com/blog/building-a-conference-website/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>Building a <a href="http://confoo.ca">conference website</a> as the conference was being organized is probably one of the biggest challenges I ever faced. It is also the project I&#8217;m the most proud of. I&#8217;d like to share that experience with you. By the way, the event is still in progress, so my work on the site is not done.</p>
<h3>Throw away old code</h3>
<p>The first decision was to throw away the old code base that dated back to the first PHP Quebec Conference in 2003. We decided to start from scratch with the Symfony framework and I was going to be in charge (yay!)</p>
<h3>Priorities</h3>
<p>The conference was moving on and I had to keep up with the programming. Developing the website was only part of my responsibilities as an organizer, which made things even more difficult time-wise. I had to prioritize and develop the strict minimum based on the immediate conference needs. There was very little time to test between deployments (I know, it&#8217;s bad practice).</p>
<h3>1. Logo and design</h3>
<p>I was learning the framework while another member of the team, Yann Larrivée, was building the project skeleton. At the same time, we had an organizer, Mathieu Chartier, and his partner prepare the logo and the website design. Last year I was the one doing it and you could clearly see that I&#8217;m no designer and no expert in Web standards.<br />
<span id="more-425"></span></p>
<h3>2. Call for papers</h3>
<p>Besides a few static pages to present the event, the call for papers was the absolute first priority. Another member of the team had already put a project skeleton together, so I could dive right into the good stuff. Creation of user accounts, authentication, member dashboard and paper submission had to be put in place in record time.</p>
<p>Speakers could associate tags with their talks so that the organizers will be able to sort them out more easily. To put it in context, organizers were responsible each for his own track (php, python, java, ruby, etc.) and needed to know which talks fell under their responsibility.</p>
<p>The worst that could happen did happen. I was speaking at a conference in Paris during the last day of the call for speakers and the server crashed. Once fixed, we had to extend the call by three days because some people missed the deadline as a result of this extended site unavailability.</p>
<h3>3. Talk selection</h3>
<p>We needed a tool to sort through the 450 or so talk submissions. Thus came the admin section which was built by another member of the team, Sylvain Mathon, who had more experience with the framework. We put the talks in their corresponding tracks and spent a whole Saturday selecting the ~130 talks.</p>
<p>Since budget is a big consideration for a non for-profit organization, we built some tools on that same day to monitor, in real time, the estimated travel and lodging costs based on the selected speakers.</p>
<p>Then I also needed to implement the Session and Speaker sections. Considering the large number of presentations, I had to figure alternate ways to present all that info. I couldn&#8217;t just put it all on one page as we did with PHP Quebec in the past, where we had 55 presentations at most.</p>
<h3>4. Tickets</h3>
<p>A conference is no good if people can&#8217;t buy tickets to attend it. The next big priority was to implement a checkout process. So without time to catch my breath, I implemented a public shopping cart, then a mandatory login/registration, the billing information screen, the confirmation screen and a redirection to the payment screen. Also, I had to consider that ticket price varies over time (early bird, regular and at-the-door prices).</p>
<p>This was not the end. Since companies often purchase multiple tickets for their employees, we needed them to enter the attendees&#8217; names and associate those with user accounts. I made the account creation/association process transparent to the buyer. They simply needed to enter the name and e-mail of the attendees.</p>
<p>Then people need receipts. Also, many institutions can only pay by check and thus need an order form. And so another member implemented the PDF module for our site.</p>
<h3>5. Monitoring tools</h3>
<p>Now that we started to sell tickets, we needed to monitor it closely to know when and where to promote the event. For example, we sponsored another conference in Quebec City (CLLAP) and needed to know our ROI. Based on promotional codes and referrers, visitor locations and technologies, we knew how to approach the different communities.</p>
<p>Also, we needed to monitor the impact of the various communications by checking what tickets we sold on each day.</p>
<h3>6. Flash sale</h3>
<p>I still couldn&#8217;t put the checkout process to rest. Now we decided to do a flash sale, that is, a special price that will only last a week. Luckily for me, the mechanism was already in place with the different pricing, so it was simply a question of adding one entry to the database with starting and ending dates.</p>
<h3>7. Schedule</h3>
<p>Selecting the talks is not enough. We needed to fit those in a timetable, and so assigned this task to our &#8220;schedule squad&#8221;, consisting of four organizers to speed things up. They spent yet another Saturday on that and came back with a very nicely put together schedule.</p>
<p>On that day, I had to create an admin tool to put the ~130 talks in a timetable, a Schedule page for the visitors, and a neat way to access speaker bios and session abstracts. I made it right on time.</p>
<p>But the a surprise came! Some sessions were in two parts; something I did not plan for in my programming. Luckily, it wasn&#8217;t very hard to implement and I could still present the schedule page for team approval on the next day. Once pushed to production, the server started to run slow and so some pages were cached, which saved tons of resources.</p>
<h3>8. Training</h3>
<p>In the beginning of January, we finalized the outlines for the PHP, Python and MySQL training. Now the website needed a Training sections, the possibility to purchase training tickets online, as well as a training+conference combos. The combos were much trickier, so I re-wrote a portion of the shopping cart and the way totals were calculated to allow special discounts. This proved useful for community and other specials later, so I&#8217;m glad I put that extra effort in it.</p>
<h3>9. Buzz</h3>
<p>I now got some people excited over a slick schedule builder that they saw on PyCon&#8217;s site. So I spent a day or so on that one. Once done, appetites grew. I now had to allow people to save their schedule and optionally share it with the world. Another day went into that. I&#8217;m quite proud of the result though.</p>
<h3>10. Joind.in</h3>
<p>People started to nag on Twitter and via e-mail to have the ConFoo talks on joind.in. I don&#8217;t blame them, as it&#8217;s a tool that proved itself over the years. I contacted Chris Cornutt to see if I could help him to implement an API. I then learned via Derick Rethan&#8217;s blog that he implemented one! That was indeed good news. So I sent an XML with the 132 talks over to Chris (no way was I going to enter these by hand) and he parsed it for me.</p>
<h3>What&#8217;s next?</h3>
<p>I probably forgot some things in the 10 sections above, since I wrote so much code and specs just keep pouring in.</p>
<p>Next, I will write more admin tools to help me add talk abstracts and timetable to the printed conference program. I will also need the system to spit some XML to print the hundreds of badges, a system to allow at-the-door registrations, check if an attendee actually registered and mark them as present in the system when they come in the morning of the event, maybe even print badges on the fly&#8230;</p>
<p>I&#8217;m pretty satisfied with the result. There is still much work to be done, but this work will not have to be done over again next year. That will leave me more time for other conference matters.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/building-a-conference-website/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Conferences: great places for networking</title>
		<link>http://annafilina.com/blog/conferences-great-places-for-networking/</link>
		<comments>http://annafilina.com/blog/conferences-great-places-for-networking/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 19:53:52 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=396</guid>
		<description><![CDATA[

There are many networking events,but I find that the best ones are
Web conferences



It is where you meet other geeks like you, book publishers, great contacts at some of the biggest companies, contributors to your favorite open source projects, potential start-up partners and the list goes on.


Who should care?




If you&#8217;re a consultant, you will find service<div><a href="http://annafilina.com/blog/conferences-great-places-for-networking/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<div style="background: #fff url(http://annafilina.com/blog/wp-content/uploads/2010/01/box1.gif) center center no-repeat; height: 98px;">
<div style="padding: 15px; text-align: center;">
<p style="font-size: 11pt; color: #000">There are many networking events,<br />but I find that the best ones are</p>
<p style="font-size: 18pt; color: #fff; margin-bottom: 40px;">Web conferences</p>
</div>
</div>
<div style="padding: 20px 80px; text-align: center;">
<p style="font-size: 11pt;">It is where you meet other geeks like you, book publishers, great contacts at some of the biggest companies, contributors to your favorite open source projects, potential start-up partners and the list goes on.</p>
</div>
<p><span id="more-396"></span></p>
<h3 style="color: #0068B7; font-size: 20pt;">Who should care?</h3>
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/t_everybody.gif" style="margin: 20px 0;" /></p>
<p style="clear: both" />
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/job_seeker.jpg" style="width: 200px; height: 140px; margin-left: 20px; float: right; border: 1px solid #555;" /></p>
<p style="margin-bottom: 20px;">
If you&#8217;re a <span style="font-size: 14pt;">consultant</span>, you will find service providers such as hosting or voip. You might also find clients or start-up partners. You will also meet people with complimentary skills who can help you out on contracts. You can even find book or magazine publishers if you have things to say.</p>
<p>As someone <span style="font-size: 14pt;">looking for a job</span>, you will find your next employer. If you are already <span style="font-size: 14pt;">employed</span>, you&#8217;ll meet core developers on the projects or libraries that you use at work. They might answer your questions or take your feedback regarding their project.
</p>
<p style="clear: both;" />
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/head_hunter.jpg" style="width: 200px; height: 140px; float: left; margin-bottom: 100px; border: 1px solid #555;" /></p>
<div style="position: absolute; margin-left: 215px; width: 380px;">
<p>
As a <span style="font-size: 14pt;">business owner</span>, you will find customers and service providers. You will also find employees or consultants if you&#8217;re hiring. You will learn about interesting products that other companies are building that can be useful to you. You will also find companies or people who might purchase your own products or services.</p>
<p>As a <span style="font-size: 14pt;">head hunter</span> or <span style="font-size: 14pt;">recruitment agency</span>, you will find employees or consultants to refer to your clients. You will also find more companies in search of employees to add to your directory.</p>
</div>
<p style="clear: both" />
<h3 style="color: #0068B7; font-size: 20pt;">When will I find the time?</h3>
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/t_make_time.gif" style="margin: 20px 0;" /></p>
<p style="clear: both" />
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/lunch.jpg" style="width: 200px; height: 300px; margin-left: 20px; float: right; border: 1px solid #555;" /></p>
<div style="margin-bottom: 50px">
<p>There are hours when no particular presentation interests you. Instead of going to a random one, <span style="font-size: 14pt;">skip</span> it and go find people to talk to. They can hang out near the coffee and in hallways. they can sit with their laptops wherever there&#8217;s wifi.</p>
<p>Use the <span style="font-size: 14pt;">breaks</span> between sessions to talk to people instead of reading your e-mails. Every minute counts!</p>
<p>During <span style="font-size: 14pt;">lunch</span>, don&#8217;t go sitting by yourself or at a random table where nobody is in a mood to talk. You&#8217;ll lose a whole hour of potential networking. Pick a table with people who asked interesting questions during the presentations.</p>
<p>There will probably be some scheduled <span style="font-size: 14pt;">networking events</span> at the conference. Read the program carefully to find out when and where.</p>
<p><span style="font-size: 14pt;">After the event</span>, don&#8217;t go home right away. Chances are that people will go out for a beer. Follow them (you don&#8217;t have to get drunk). This is where you&#8217;ll have a chance to find the people who are less visible in public, but are still very sociable.</p>
<div style="font-size: 16pt; color: #FF9500; margin: 30px 0;">
<p style=""><span style="font-size: 25pt">Yes</span> this will exhaust you.</p>
<p style="text-align: right; margin-top: 20px;">But remember that this will expand your network.</p>
</div>
<p>You can even plan to stay an <span style="font-size: 14pt;">extra day</span> (which I usually do) to get more face time with the people that you just met. Speakers, especially international ones, often stay extra days anyway because flights are cheaper when they stay a whole week.</p>
</div>
<p style="clear: both" />
<h3 style="color: #0068B7; font-size: 20pt;">How will I keep track?</h3>
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/t_come_prepared.gif" style="margin: 20px 0;" /></p>
<p style="clear: both" />
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/cards.jpg" style="width: 250px; height: 320px; margin-left: 20px; float: right; border: 1px solid #555; margin-bottom: 20px;" /></p>
<div style="margin-bottom: 50px;">
<p>You will meet so many people that you will forget their first names. Always take their <span style="font-size: 14pt;">business card</span> if they have one. If they don&#8217;t, make sure you have a small notepad ready. In any case, give them your card. Bring a lot of these, you don&#8217;t want to run out.</p>
<p>When you receive a card, usually after a short conversation, <span style="font-size: 14pt;">scribble a note</span> on their card to remember who they are or what you talked about. You would, for example, write &#8220;Zend_AMF&#8221; on Wade Arnold&#8217;s card because he&#8217;s the guy who wrote the component.</p>
<p>Make sure you ask people their <span style="font-size: 14pt;">names</span> and remind yourself their names often. If you&#8217;re no longer sure, ask them again. They&#8217;ll understand.</p>
<p>When you get home, go though the cards and refresh your memory. <span style="font-size: 14pt;">Get in touch</span> with the people through e-mail, Twitter or LinkedIn while the relationship is still fresh.</p>
</div>
<h3 style="color: #0068B7; font-size: 20pt;">Do conference organizers care?</h3>
<p><img src="http://annafilina.com/blog/wp-content/uploads/2010/01/t_they_do.gif" style="margin: 20px 0;" /></p>
<p style="clear: both" />
<p>As a conference organizer, <span style="font-size: 14pt;">I do care</span>. Having visited many international conferences, I know what it&#8217;s like to be a visitor or a speaker. I know where, when and how networking happens at conferences. If I feel that something is missing, I tell the organizers and fix the problem at my own conference.</p>
<div style="font-size: 16pt; color: #FF9500; margin: 30px 0;">
Thank you for taking the time to read this.
</div>
<p>All comments to this post will be considered as suggestions for the upcoming <a href="http://confoo.ca">ConFoo</a> conference, so don&#8217;t hesitate to<span style="font-size: 14pt;"> share your thoughts</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/conferences-great-places-for-networking/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ConFoo.ca: End of Early Bird Rate</title>
		<link>http://annafilina.com/blog/confoo-ca-end-of-early-bird-rate/</link>
		<comments>http://annafilina.com/blog/confoo-ca-end-of-early-bird-rate/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 12:35:50 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=394</guid>
		<description><![CDATA[We are pleased to to unveil the schedule for the ConFoo conference. With over 130 presentations in 8 rooms, ConFoo brings you the best of web development. Note that the early bird price is available only until January 22nd.
Over 100 specialists will be present at the conference to share their knowledge during talks and training.<div><a href="http://annafilina.com/blog/confoo-ca-end-of-early-bird-rate/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>We are pleased to to unveil the schedule for the ConFoo conference. With over 130 presentations in 8 rooms, ConFoo brings you the best of web development. Note that the early bird price is available only until January 22nd.</p>
<p>Over 100 specialists will be present at the conference to share their knowledge during talks and training. Among them will be:</p>
<ul>
<li><a href="http://confoo.ca/en/2010/speaker/rasmus-lerdorf">Rasmus Lerdorf</a></li>
<li><a href="http://confoo.ca/en/2010/speaker/terry-chay">Terry Chay</a></li>
<li><a href="http://confoo.ca/en/2010/speaker/chris-shiflett">Chris Shiflett</a></li>
<li><a href="http://confoo.ca/en/2010/speaker/morgan-tocker">Morgan Tocker</a></li>
</ul>
<p>You would not want to miss the following presentations:</p>
<ul>
<li><a href="http://confoo.ca/en/2010/session/html5-where-are-we-now">HTML5: Where Are We Now? (Mark Pilgrim)</a></li>
<li><a href="http://confoo.ca/en/2010/session/andrei-s-regex-clinic">Andrei&#8217;s Regex Clinic  (Andrei Zmievski)</a></li>
<li><a href="http://confoo.ca/en/2010/session/security-centered-design">Security-Centered Design (Chris Shiflett)</a></li>
<li><a href="http://confoo.ca/en/2010/session/welcome-to-the-wild-wild-web">Welcome to the Wild Wild Web (Carl Mercier)</a></li>
</ul>
<p>Register online before January 22nd and save 200$!  <a href="http://confoo.ca/en/register">http://confoo.ca/en/register</a></p>
<p>Looking forward to see you at the conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/confoo-ca-end-of-early-bird-rate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>doctrine:insert-sql for MAMP users</title>
		<link>http://annafilina.com/blog/doctrine-and-mamp/</link>
		<comments>http://annafilina.com/blog/doctrine-and-mamp/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 01:51:55 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[mac os]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=319</guid>
		<description><![CDATA[One of my computers has MAMP installed. I was trying to build a database schema from a YAML file. When time came to insert the SQL using&#8230;
&#62;php symfony doctrine:insert-sql
the following error message appeared:
&#62;Couldn&#8217;t locate driver named mysql
MySQL worked fine on this computer for many years so a missing driver was out of the question. After<div><a href="http://annafilina.com/blog/doctrine-and-mamp/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p>One of my computers has MAMP installed. I was trying to build a database schema from a YAML file. When time came to insert the SQL using&#8230;</p>
<p>&gt;php symfony doctrine:insert-sql</p>
<p>the following error message appeared:</p>
<p>&gt;Couldn&#8217;t locate driver named mysql</p>
<p>MySQL worked fine on this computer for many years so a missing driver was out of the question. After some thinking I realized that the command &#8220;php&#8221; actually refers to OS X version of php and not the one that ships with MAMP. Since I was too lazy to properly configure the extensions for the OS X version, I simply pointed the &#8220;php&#8221; command to the MAMP version using the following line:</p>
<p>&gt;alias php=&#8217;/Applications/MAMP/bin/php5/bin/php&#8217;</p>
<p>I ran the symfony command again and it worked perfectly!</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/doctrine-and-mamp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>php&#124;tek 09</title>
		<link>http://annafilina.com/blog/phptek09/</link>
		<comments>http://annafilina.com/blog/phptek09/#comments</comments>
		<pubDate>Tue, 26 May 2009 20:05:50 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=260</guid>
		<description><![CDATA[ (photo by Marco Tabini)
I had the pleasure to attend php&#124;tek this year in Chicago. This conference was organized by php&#124;architect.
I attended some very interesting presentations such as &#8220;Dissecting an MVC Application&#8221;, &#8220;Alternate Databases&#8221;, &#8220;Of Haystacks and Needles&#8221; and &#8220;Seven Steps to Better OOP Code&#8221;. I enjoyed the Pecha Kucha presentations. These were very short<div><a href="http://annafilina.com/blog/phptek09/">Read the rest...</a></div><br />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mtabini/3554272814/"><img src="http://annafilina.com/blog/wp-content/uploads/2009/05/3554272814_83645ddb0c.jpg" alt="" title="Core dev will code for food #tek09" width="500" height="375" class="aligncenter size-full wp-image-264" /></a> (photo by Marco Tabini)</p>
<p>I had the pleasure to attend <a href="http://tek.mtacon.com/">php|tek</a> this year in Chicago. This conference was organized by php|architect.</p>
<p>I attended some very interesting presentations such as &#8220;Dissecting an MVC Application&#8221;, &#8220;Alternate Databases&#8221;, &#8220;Of Haystacks and Needles&#8221; and &#8220;Seven Steps to Better OOP Code&#8221;. I enjoyed the Pecha Kucha presentations. These were very short presentations on topics not always related to PHP. I liked the one by Scott MacVicar and Andrei Zmievski on spelling.</p>
<p>I also met many interesting people with whom I intend to stay in touch. <a href="http://wadearnold.com/blog/">Wade Arnold</a>, author of Zend_AMF, should be expecting feature requests and patches from <a href="http://devbots.com">DevBots</a>. There were many interesting discussions around best practices between the presentations. </p>
<p>I was also able to catch up with my international friends that I don&#8217;t get to see very often. We celebrated <a href="http://shiflett.org/">Chris Shiflett</a>&#8217;s birthday by going to a Peruvian restaurant and enjoying a great variety of beer at the Map Room, in the company of <a href="http://gravitonic.com/">Andrei Zmievski</a>, <a href="http://seancoates.com/">Sean Coates</a> and <a href="http://www.macvicar.net/">Scott MacVicar</a>. I enjoyed the event so much that I stayed an extra day to visit Downtown Chicago with <a href="http://www.priebsch.de/">Stefan Priebsh</a>, <a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a>, Arne Blankerts and David Zuelke. I posted some <a href="http://www.flickr.com/photos/afilina/sets/72157618802580224/detail/">pictures to Flickr</a>.</p>
<p>The only negative comment that I would like to share is the fact that WiFi was very unreliable during the event. I ended up paying to use the hotel&#8217;s WiFi every day to stay in touch with the office.</p>
<p>My next stop is <a href="http://zendcon.com/">ZendCon</a> in San Jose, California.</p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/phptek09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex and Zend at PHP Quebec</title>
		<link>http://annafilina.com/blog/flex-and-zend-at-php-quebec/</link>
		<comments>http://annafilina.com/blog/flex-and-zend-at-php-quebec/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 21:19:11 +0000</pubDate>
		<dc:creator>Anna</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://annafilina.com/blog/?p=115</guid>
		<description><![CDATA[I recorded part of the Flex and Zend presentation by Kevin Hoyt (took me some time to transfer, encode and upload).
ZIP with the source code
Kevin Hoyt&#8217;s blog post on this topic



flowplayer("player_flexphp", "http://annafilina.com/blog/wp-content/uploads/swf/flowplayer-3.0.0-rc2.swf");

]]></description>
			<content:encoded><![CDATA[<p>I recorded part of the Flex and Zend presentation by Kevin Hoyt (took me some time to transfer, encode and upload).</p>
<p><a href="http://blog.kevinhoyt.org/wp-content/php-samples.zip">ZIP with the source code</a><br />
<a href="http://blog.kevinhoyt.org/2008/10/23/um-lots-of-flash-flex-and-zend-php-samples/">Kevin Hoyt&#8217;s blog post on this topic</a></p>
<p><a id="player_flexphp" href="http://annafilina.com/blog/wp-content/uploads/flv/flexphp.flv" style="display:block;width:480px;height:360px" ><br />
<img src="http://annafilina.com/blog/wp-content/uploads/2008/11/flexphp1.jpg" alt="Play this video" title="flexphp" width="480" height="360" /></a></p>
<p><script>
flowplayer("player_flexphp", "http://annafilina.com/blog/wp-content/uploads/swf/flowplayer-3.0.0-rc2.swf");
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://annafilina.com/blog/flex-and-zend-at-php-quebec/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
