<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Beshr Kayali's Blog</title><link>http://beshrkayali.com</link><description>Latest entries from Beshr Kayali's blog</description><language>en-us</language><lastBuildDate>Sat, 05 Mar 2011 09:09:52 -0600</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BeshrkayaliStream" /><feedburner:info uri="beshrkayalistream" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><title>ArabNet 2011 only 3 weeks away
</title><link>http://beshrkayali.com/blog/2011/03/arabnet-2011-only-3-weeks-away</link><description>&lt;p&gt;The ArabNet 2011 Shift Digital Summit, the largest gathering for the Arab web/mobile industry, will be kicking off with a Developer Day on March 22, targeted at engineers, developers, and techies from across the region. It will include programming case studies, tutorials, and in depth workshops by lead engineers from top regional and global companies. Some of the topics that will be discussed include developing mobile apps for different platforms like Google's Android and cross-platform development frameworks like Appcelerator's Titanium. The day will also include talks on popular content management systems like Wordpress as well as user interface and user experience issues. These subjects and more will be taken up by speakers from various leading companies from the region and beyond such as Cleartag, eSpace, Zedna, BORN Interactive, and Google. At the end of the day, attendees will have the opportunity to take part in exciting competitions and Sprints to develop applications to grow the Arabic web.&lt;/p&gt;

&lt;p&gt;The Two-Day Forum, which will take place on March 23 and 24, will include discussion panels, keynotes, 1-on-1 interviews, workshops, and rapid-fire Q &amp;A sessions, as well as the yearly Ideathon and Startup Demo competitions for entrepreneurs. This year's Forum will focus on the latest trends and technologies in Social and Mobile, the hottest developments in the web industry. Some of the topics that will be covered are the Mobile Application Landscape, Social Media and Marketing, Social Commerce, E-Payment Challenges and Solutions, Social and Mobile Gaming, Online Media Buying, Streaming Media, Digital Content, and Tech/Mobile for Good.  Speakers include top executives from Microsoft, Google, TechCrunch, Seedcamp, Meydan, Aramex, Sarmady, Intigral, Groupon, Effective Measure, Ericsson, Ideavelopers, Souktel, Travian Games, Nokia, Communicate, The National and many others. Exciting developments for the Ideathon competition include a prize of two weeks worth of development services offered by eSpace to the top three ideas to help them build prototypes. &lt;/p&gt;

&lt;p&gt;The Community Day, the final day of the event, taking place on March 25, will target the wider public, with a particular emphasis on students and young adults, and aims to raise awareness among them about the web and entrepreneurship. The day will include a panel discussion on the current state of the web/mobile industry and the tech of the future. It will also encompass career talks by leaders from top internet companies, giving attendees an idea of what its like to work in web; entrepreneur talks by successful entrepreneurs that will inspire attendees to start their own businesses and provide them with key lessons learned; and technical talks by lead developers on the latest programming frameworks and development techniques. Attendees will also have the chance to take part in workshops on digital activism, community journalism, social media, conducted by local organizations active amongst the community &lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Sat, 05 Mar 2011 09:09:52 -0600</pubDate><guid>http://beshrkayali.com/blog/2011/03/arabnet-2011-only-3-weeks-away</guid></item><item><title>Packt celebrates Python in December with exclusive book offer
</title><link>http://beshrkayali.com/blog/2010/12/packt-celebrates-python-december-exclusive-book-of</link><description>&lt;p&gt;Packt has this week announced a series of discounts and promotions to herald the publication of two new Python books; Python 2.6 Graphics Cookbook and Python Text Processing with NLTK 2.0 Cookbook. Readers will be offered exclusive discounts, 20% and 30% off the cover price of all Python print books and eBooks for a limited period only.&lt;/p&gt;

&lt;p&gt;Python is a dynamic programming language, used in a wide range of domains by programmers who find it simple, yet powerful. From the earliest version 15 years ago to the current one, it has constantly evolved with productivity and code readability in mind. While the new Python 2.6 Graphics Cookbook, written by Mike Ohlson de Fine, provides over 100 great recipes for creating and animating graphics using Python, the Python Text Processing with NLTK 2.0 Cookbook, by Jacob Perkins, enables developers to use the Python's NLTK suite of libraries to maximize their Natural Language Processing capabilities.&lt;/p&gt;

&lt;p&gt;Python remains one of the topics Packt is committed to publishing books on, and as it continues to grow, more interesting Python related topic areas emerge. The set of Python books we’ve recently published shows our continued commitment to Python, and Packt will continue to serve the Python community of users going forward”, said Packt Open Source publisher Doug Paterson.&lt;/p&gt;

&lt;p&gt;For more information on the Python discounts and promotions being offered throughout December, please visit: - &lt;a href="https://www.packtpub.com/article/exclusive-offer-on-python-books"&gt;https://www.packtpub.com/article/exclusive-offer-on-python-books&lt;/a&gt;&lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Sat, 11 Dec 2010 02:20:36 -0600</pubDate><guid>http://beshrkayali.com/blog/2010/12/packt-celebrates-python-december-exclusive-book-of</guid></item><item><title>Packt launch fifth annual Open Source Awards - Press Release
</title><link>http://beshrkayali.com/blog/2010/08/packt-launch-fifth-annual-open-source-awards-press</link><description>&lt;p&gt;The 2010 Open Source Awards was launched today by Packt, inviting people to visit &lt;a href="http://www.PacktPub.com"&gt;http://www.PacktPub.com&lt;/a&gt; and submit nominations for their favorite Open Source project. Now in its fifth year, the Award has been adapted from the established Open Source CMS Award with the wider aim of encouraging, supporting, recognizing and rewarding all Open Source projects.&lt;/p&gt;

&lt;p&gt;WordPress won the 2009 Open Source Content Management System (CMS) Award in what was a very close contest with MODx and SilverStripe. While MODx was the first runner up, SilverStripe, a Most Promising CMS Award winner in 2008, made its way to the second runner up position in its first year in the Open Source CMS Award final.&lt;/p&gt;

&lt;p&gt;The 2010 Award will feature a prize fund of $24,000 with several new categories introduced. While the Open Source CMS Award category will continue to recognize the best content management system, Packt is introducing categories for the Most Promising Open Source Project, Open Source E-Commerce Applications, Open Source JavaScript Libraries and Open Source Graphics Software. CMSes that won the Overall CMS Award in previous years will continue to compete against one another in the Hall of Fame CMS category.&lt;/p&gt;

&lt;p&gt;These new categories will ensure that the Open Source Awards is the ultimate platform to recognise excellence within the community while supporting projects both new and old. “We believe that the adaption of the Award and the new categories will provide a new level of accessibility, with the Award recognizing a wider range of Open Source projects; both previous winners while at the same time, encouraging new projects” said Julian Copes, organizer of this year’s Awards.&lt;/p&gt;

&lt;p&gt;Packt has opened up nominations for people to submit their favorite Open Source projects for each category at &lt;a href="http://www.PacktPub.com/open-source-awards-home"&gt;http://www.PacktPub.com/open-source-awards-home&lt;/a&gt;. The top five in each category will go through to the final, which begins in the last week of September. For more information on the categories, please visit Packt’s website &lt;a href="http://www.PacktPub.com/blog/packt’s-2010-open-source-awards-announcement"&gt;http://www.PacktPub.com/blog/packt’s-2010-open-source-awards-announcement&lt;/a&gt;&lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Thu, 26 Aug 2010 16:23:06 -0500</pubDate><guid>http://beshrkayali.com/blog/2010/08/packt-launch-fifth-annual-open-source-awards-press</guid></item><item><title>Python 3 Object Oriented Programming
</title><link>http://beshrkayali.com/blog/2010/08/python-3-object-oriented-programming</link><description>
&lt;p&gt;Today, I got an email from Geeta at Packt Publishing asking me to review the book &lt;a href="http://www.packtpub.com/python-3-object-oriented-programming/book?utm_source=beshrkayali.com&amp;utm_medium=bookrev&amp;utm_content=blog&amp;utm_campaign=mdb_004204"&gt;Python 3 Object Oriented Programming&lt;/a&gt; by &lt;a href="https://www.packtpub.com/authors/profiles/dusty-phillips"&gt;Dusty Phillips&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I'll try to finish the book over the next two weeks, but what interests me really is that I haven't got my hands dirty with Python 3 yet, let alone the neat new bits. &lt;strong&gt;"Harness the power of Python 3 objects"&lt;del&gt;&lt;/del&gt;&lt;/strong&gt; is what the book promises, really looking forward for this :-)&lt;/p&gt;


&lt;center&gt;&lt;img src="http://beshrkayali.com/screenshots/python3oop-book.jpg" alt="Book Image" /&gt;&lt;/center&gt;


</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Wed, 11 Aug 2010 07:54:25 -0500</pubDate><guid>http://beshrkayali.com/blog/2010/08/python-3-object-oriented-programming</guid></item><item><title>ArabNet Goes Live, and Global!
</title><link>http://beshrkayali.com/blog/2010/03/arabnet-goes-live-and-global</link><description>&lt;p&gt;The long awaited and highly anticipated ArabNet conference kick started today, with over 500 participants attending the opening ceremony, including internet and tech leaders from around the world, investors, media, entrepreneurs, bloggers and professionals from the tech industry.  &lt;/p&gt;

&lt;p&gt;The opening ceremony and the conference activities that followed were broadcast live online, giving an opportunity for everyone who couldn't attend to be part of this unique and first-of-its kind event to ever happen in the Middle East.  &lt;/p&gt;
&lt;p&gt;Under the direction of Samer Karam and a dedicated team of geeks and coders who worked 24 hours a day for the past week, a custom-designed, cutting-edge system was developed that allows for live broadcast of video, illustrations and tweets directly from the conference. The platform also integrates a voting mechanism to allow attendees to vote for their favorite startup or idea via the live website: live.arabnet.me &lt;/p&gt;
&lt;p&gt;
Throughout the past couple of months, ArabNet has been able to nurture a grassroots movement, an online community of enthusiasts through an outreach program intended to engage young entrepreneurs and techies across the Arab World. In less than two months, we have gathered over 1,000 followers on twitter and more than 600 fans on facebook.  &lt;/p&gt;

&lt;p&gt;40 top-notch speakers, 11 supporting partners, 18 media partners, 35 startups, 50 ideas, 25 ambassadors, 12 official bloggers, and over 300 decision makers, investors, and entrepreneurs from across the MENA, Europe, and Silicon Valley have come together gather today at the Habtoor Grand Hotel to network and discuss emerging opportunities in Arab web business. Even before the conference started, the #ArabNetME twitter feed was overwhelmed with tweets from all over the world from people who believed in ArabNet's mission. And just a few hours later, following the opening ceremony, ArabNet was trending globally on the site!&amp;nbsp;&lt;/p&gt;

&lt;p&gt;A huge thanks goes to Beshr Kayali and Mohammad Saleh Kayali from&amp;nbsp;hyperstage.net, an ArabNet media partner, who have helped in setting up the live micro-site, as well as Maya Zankoul, the famous Lebanese illustrator who is live illustrating the conference, as well as to official ArabNet bloggers and ambassadors, and the millions of tweeters and enthusiasts from the world over who tweeted, messaged, and voiced their support in more ways than one.&lt;/p&gt;
&lt;p&gt;Without them, ArabNet could not have gone global!&lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Fri, 26 Mar 2010 11:21:00 -0500</pubDate><guid>http://beshrkayali.com/blog/2010/03/arabnet-goes-live-and-global</guid></item><item><title>Introducing Arabic A List Apart
</title><link>http://beshrkayali.com/blog/2010/01/introducing-arabic-list-apart</link><description>&lt;p&gt;Well, here's the thing I've been busy with, for the last couple of weeks. If you're into web design or development you must know about A List Apart, the best magazine on web design, development &amp; meaning of web content.&lt;/p&gt;
&lt;p&gt;My brother (@mkayyali) &amp; I worked on starting the Arabic version of A List Apart (Arabic A List Apart), and thanks to &lt;a href="http://zeldman.com/"&gt;Jeffrey Zeldman&lt;/a&gt;, we released the official edition of A List Apart in Arabic, which will feature (for now) Arabic translations for A List Apart articles.&lt;/p&gt;
&lt;p&gt;The cool thing about A List Apart is that it focuses on web standards and best practices in web design and development, something that an huge number of Arabic websites lack. In Arabic A List Apart we'll try to break the barrier by bringing top quality content on these subjects.&lt;/p&gt;
&lt;p&gt;I used my beloved &lt;a href="http://djangoproject.com/"&gt;Django&lt;/a&gt; to create the system that Arabic A List Apart runs on. The design still lacks some final touches which I'll be working on in the next few days.&lt;/p&gt;
&lt;p&gt;Of course, a huge thanks to &lt;a href="http://mayazankoul.com/"&gt;Maya Zankoul&lt;/a&gt; who's doing Arabic A List Apartillustrations.&lt;p&gt;&lt;p&gt;
Anyway, if you can read Arabic, go ahead and dive into the brand new Arabic A List Apart &lt;a href="http://arabicalistapart.com"&gt;http://arabicalistapart.com&lt;/a&gt;.&lt;/p&gt;


</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Mon, 18 Jan 2010 21:06:38 -0600</pubDate><guid>http://beshrkayali.com/blog/2010/01/introducing-arabic-list-apart</guid></item><item><title>New Year&amp;#39;s Python meme
</title><link>http://beshrkayali.com/blog/2009/12/new-years-python-meme</link><description>&lt;p&gt;&lt;a href="http://tarekziade.wordpress.com/2009/12/28/new-years-python-meme/"&gt;Tarek Ziade&lt;/a&gt; &amp; &lt;a href="http://pydanny.blogspot.com/2009/12/new-years-python-meme.html"&gt;Daniel Greenfeld&lt;/a&gt; blogged this first. I just stole the idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What's the coolest Python application, framework, or library you have discovered in 2009?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
Well, I can't really say Django, but I really got into it in 2009, learned a lot of cool/new stuff and applied them in different projects.&lt;/p&gt;
&lt;p&gt;
I met the awesome power of ftplib and smtplib (which is kinda typical python style, it's just that I didn't know about them before). I was also introduced to Pip, Virtualenv and Tarek Zaide's Distribute.&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. What new programming technique did you learn in 2009?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
I learned that I hate ASP.Net! I haven't really done anything nifty with it, but some gigs involved it. I'm not saying it's bad of course, I'm just saying I don't like it, so no need to argue that ;)&lt;/p&gt;
&lt;p&gt;I also learned some cool CSS3/HTML5 stuff... Hated some css-related projects that really-didn't-make-sense for a lot of designers I know + me, like Sass (sass-lang.com). &lt;a href="http://nathanborror.com/posts/2009/nov/30/sass-isnt-me/" title=""&gt;Nathan Borror said it best&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;
3. What's the name of the open source project you contributed the most in 2009? What did you do?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
Hmm... Well, I wish I could've been more involved but studying Philosophy really takes time :( &lt;/p&gt;&lt;p&gt;
&lt;strike&gt;I started FTPThing though (which is not 10% done yet). But the idea is that I haven't seen a web based ftp client that I liked! They're either ugly or lacking something, plus I wanted to have a django based one. Anyway, I have some plans for it and if anyone is interested in joining, go ahead and fork it :)&lt;/strike&gt; &lt;/p&gt;&lt;p&gt;
If you haven't seen Live Tweeting, check the blogpost. We're planning on releasing the code when it's stable enough :-)&lt;/p&gt;
&lt;p&gt;I have some plans to do something with Pinax (but I really don't want to jinx myself because every time I say I want to help in I end up not doing anything).&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;4. What was the Python blog or website you read the most in 2009?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
Don't know actually, but I can say 70% of my python/django reads are from django community aggregator guys. &lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;5. What are the top three things you want to learn in 2010?&lt;/strong&gt;&lt;br/&gt;
Learn more about Objective-J and Cappuccino, because they really look cool.&lt;br/&gt;
Try something with Erlang + Nitrogen or Erlyweb (not sure which one is better yet).
Continue Learning Japanese (I can read/write Hiragana now, FTW! (not so good though, needs more practice)).&lt;/p&gt;
&lt;p&gt;Gonna get my driving license in the next two months. &lt;strong&gt;[update: got it]&lt;/strong&gt;&lt;/p&gt;



</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Tue, 29 Dec 2009 12:30:07 -0600</pubDate><guid>http://beshrkayali.com/blog/2009/12/new-years-python-meme</guid></item><item><title>Screencast: Installing Pinax on Windows
</title><link>http://beshrkayali.com/blog/2009/08/screencast-installing-pinax-windows</link><description>&lt;p&gt;This screenscast will show you how to install Pinax on Windows:&lt;/p&gt;
&lt;center&gt;
&lt;object width="400" height="267"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6098872&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=6098872&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="267"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/6098872"&gt;Installing Pinax on Windows&lt;/a&gt; from &lt;a href="http://vimeo.com/beshr"&gt;Beshr Kayali&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;/center&gt;

&lt;p&gt;You can download the high quality version here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Genshi was removed after beta3, so you don't have to worry about that anymore (once rc1 is released).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update2:&lt;/strong&gt; In the screencast, I copied the "basic_project" folder  from "site-packages" to the "pinax-env" folder that pinax-boot created, two things wrong here:&lt;/p&gt;
&lt;p&gt;I should've used "pinax-admin clone_project basic_project" command instead of copying the project my self. (there seems to be a problem with the clone_project command in 0.7beta3 on Windows, the fix)&lt;/p&gt;
&lt;p&gt;It's encouraged not to put the project in the same directory as the environment.
If you have any question, you can post a comment here and I'll try to answer it.
&lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Fri, 14 Aug 2009 14:19:56 -0500</pubDate><guid>http://beshrkayali.com/blog/2009/08/screencast-installing-pinax-windows</guid></item><item><title>Book Review: Expert Python Programming
</title><link>http://beshrkayali.com/blog/2009/04/book-review-expert-python-programming</link><description>&lt;img style="float:right" src="https://www.packtpub.com/sites/default/files/imagecache/productview/bookimages/4947_MockupCover.jpg" alt="Expert Python Programming Book Cover" /&gt;

&lt;p&gt;&lt;a href="http://www.packtpub.com/expert-python-programming/"&gt;Expert Python Programming&lt;/a&gt; [http://www.packtpub.com/expert-python-programming/]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;By&lt;/strong&gt; Tarek Ziade&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISBN:&lt;/strong&gt; 978-1-847194-94-7&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Release date:&lt;/strong&gt; September 2008&lt;/p&gt;
&lt;p&gt;Packt Publishing&lt;/p&gt;


&lt;p&gt;A couple of weeks ago,&amp;nbsp;Niraja Mulye from Packt Publishing sent me a copy of Expert Python Programming by Tarek Ziade and asked me to review it.&lt;/p&gt;
&lt;p&gt;To put it simple, the book is fabulous, not because it's full of advanced python programming tricks and practices, but also because they're presented in a way that makes them easy and interesting to follow.&lt;/p&gt;
&lt;p&gt;As the name of the book intends, it's aimed for python developers who want to be more efficient and productive. The book is divided to&amp;nbsp;14 chapters, and even though some of them might seem like they've slipped from the beginners' edition or a little out of place, all of these chapters are really useful and full of information, which makes the time you spend on reading really worth it.&lt;/p&gt;
&lt;p&gt;Chapter 1 represents this case really well, which is on Installing Python. Through this chapter you'll probably find some ideas that you haven't heard of or maybe forgot about.&lt;/p&gt;
&lt;p&gt;The second and third chapters talk about syntax best practices above and below the class level, from Iterators, Generators and Decorators to Superclasses, descriptors and meta-programming, these two chapters are full of useful information.&lt;/p&gt;
&lt;p&gt;Chapter 4 is all about following the rules and conventions, best naming practices, styles and guides.&lt;/p&gt;
&lt;p&gt;Chapter 5 and 6 are about writing packages and applications, common patterns and approaches and some good tips on making applications more efficient and packages easier to use.&lt;/p&gt;
&lt;p&gt;Chapter 7 is on working with zc.buildout, which pretty much covers all what you need to know about it.&lt;/p&gt;
&lt;p&gt;Chapter 8 is great for beginners who really want to start working on the expert level. It talks about managing code and projects, everything you need to know to keep your code under control. It focuses on Mercurial which is a great python based revision control system. Chapter 9 also talks different approaches and ways to manage software development and software life cycle.&lt;/p&gt;
&lt;p&gt;Chapter 10 is about documenting your project, which is really great because I think that a project without a good documentation is definitely missing something. It's not like that you'll be a super technical writer after reading this chapter, but I like the idea of letting developers know that it matters.&lt;/p&gt;
&lt;p&gt;Chapter 11 is about Test-Driven development, another great chapter that's very well presented.&lt;/p&gt;
&lt;p&gt;Chapter 12 shows some techniques and principles for optimizing your code. Then, Chapter 13 presents some solutions for you to optimize your code the right way.
Chapter 14 shows some useful design patterns you can follow to solve common problems you might encounter.&lt;/p&gt;
&lt;p&gt;Though a lot of the ideas are very well explained, I think that some of them got a little less than what they deserve.&lt;/p&gt;
&lt;p&gt;In general, I really enjoyed reading the book, very well presented by Tarek Ziade. If you're a beginner python developer, this book is a great to develop your skills. And even if you are an expert, consider this book as a good light reading to remember some old - but important- stuff.&lt;/p&gt;
You can read a sample chapter [Chapter 10: Documenting your project] &lt;a href="http://www.packtpub.com/files/expert-python-programming-sample-chapter-chapter-10-documenting-your-project.pdf" title="Chapter 10: Documenting your project"&gt;from here&lt;/a&gt;.

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Wed, 08 Apr 2009 21:04:00 -0500</pubDate><guid>http://beshrkayali.com/blog/2009/04/book-review-expert-python-programming</guid></item><item><title>Django tips - Tip #4
</title><link>http://beshrkayali.com/blog/2009/03/django-tips-tip-4</link><description>&lt;p&gt;In this episode you'll learn how to create custom template tags and filters and how to use them in your django projects...&lt;/p&gt;
&lt;p&gt;You can watch the episode online from here... (sorry for the low volume)&lt;/p&gt;
&lt;center&gt;
&lt;object width="400" height="267"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3879985&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=3879985&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="267"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/3879985"&gt;Django Tips - Tip #4 - Part 1&lt;/a&gt; from &lt;a href="http://vimeo.com/beshr"&gt;Beshr Kayali&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;/center&gt;
&lt;p&gt;Or download it here (iPhone/iPod Touch ready).&lt;/p&gt;
&lt;p&gt;Download the project used in this episode (eventsbox) from here.&lt;/p&gt;


</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Fri, 27 Mar 2009 17:00:30 -0500</pubDate><guid>http://beshrkayali.com/blog/2009/03/django-tips-tip-4</guid></item><item><title>How to Overcome Apple’s App Store Error 1009
</title><link>http://beshrkayali.com/blog/2009/02/how-overcome-apples-app-store-error-1009</link><description>&lt;p&gt;Two days ago I got an iPod touch 2G after reading so many good things about it. I was planning –like so many people- to install some of the free apps and games that are available for it, but what I didn’t know (and I didn’t expect actually) is that because I’m in Syria, I can’t install free stuff from Apple’s App Store. I read about jailbreaking, but I don’t want to do that! I just want free stuff!&lt;/p&gt;
&lt;p&gt;I use anonymous proxy software to access services like Google Code (which is blocked by Google for Syrians) and services that are blocked locally (like YouTube or Facebook), but the strange thing is that when you open iTunes through these programs it either closes immediately after you click (get app) button or the button doesn’t show up in the at all!&lt;/p&gt;
&lt;p&gt;But of course, I kept searching and searching until I found a solution, and here’s how I did it:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
I created an account and chose Lebanon as my country. I didn’t add any credit card info (by choosing None).  &lt;/li&gt;
&lt;li&gt;Downloaded a program called “Ultra Surf” (download it from here).
I kept changing the server and checking my IP address (withhttp://whatismyipaddress.com) until I found one in the US.&lt;/li&gt;
&lt;p&gt;
What UltraSurf does is that it changes the proxy server setting from (Control Panel -&gt; Internet Setting -&gt; Connections Tab -&gt; Lan settings) so the connection goes through UltraSurf and you get the new IP address, Luckily iTunes uses these settings too, so I didn’t have to change anything else.&lt;/p&gt;
&lt;p&gt;And now, I go to App Store and download Apps and Games to my iPod touch and it’s working like a charm :)&lt;/p&gt;
&lt;p&gt;(You might need to Deauthorize your Computer and Authorize it one more time before syncing to your iPod or iPhone).  
&lt;/p&gt;
&lt;/ul&gt;



</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Wed, 25 Feb 2009 16:32:00 -0600</pubDate><guid>http://beshrkayali.com/blog/2009/02/how-overcome-apples-app-store-error-1009</guid></item><item><title>TinyMCE in django admin
</title><link>http://beshrkayali.com/blog/2009/02/tinymce-django-admin</link><description>&lt;p&gt;In this post, I'm going to talk about using TinyMCE (Javascript HTML editor) with django's admin application. In django administration application,&amp;nbsp;TextFields&amp;nbsp;are represented as &amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt; tags, so it can be pretty annoying to add content when using these fields to represent HTML content (like in blog posts). The solution comes with Javascript by using one of the many HTML editors, like TinyMCE.&lt;/p&gt;
&lt;p&gt;The few steps I'm going to show you in this post are perfect for these situations, but sometimes, you might really need a regular &amp;lt;textarea&amp;gt; for a model and TinyMCE for another. These cases won't be discussed in this post (saving for another post ^^).&lt;/p&gt;
Now let's get to work,
&lt;p&gt;Of course, you'll need TinyMCE, which you can get from&amp;nbsp;here.
You should also set your project to use django's admin application, more info&amp;nbsp;here.
Now, unzip the package you've just downloaded and go to /script/ and copy the whole /tiny_mce/ folder and put it in your /media_root/ directory in your project. If you like being organized, you probably want to put it inside a "js" folder.&lt;/p&gt;
&lt;p&gt;Once you have it there, go to your /templates/ directory and create a new folder with the nheame "admin".&lt;/p&gt;
&lt;p&gt;Create a new HTML file with the name "base_site.html" inside the "admin" folder you've just created.&lt;/p&gt;
&lt;p&gt;Copy this code inside:&lt;/p&gt;

&lt;pre class="sh_html"&gt;
{% extends "admin/base.html" %}
{% load i18n %}
{% block title %}{{ title }} | {% trans "Django Admin" %}{% endblock %}
{% block extrahead %}
&amp;lt;script type="text/javascript" src="/{{media_root}}/tiny_mce/tiny_mce.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
        tinyMCE.init({
                // General options
                mode : "textareas",
                theme : "advanced",
                plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
                // Theme options
                theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
                theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
                theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
                theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
                theme_advanced_statusbar_location : "bottom",
                theme_advanced_resizing : true,
        });
&amp;lt;/script&amp;gt;
{% endblock %}
{% block branding %}
&amp;lt;h1 id="site-name"&amp;gt;{% trans "Django Admin" %}&amp;lt;/h1&amp;gt;
{% endblock %}
{% block nav-global %}{% endblock %}
&lt;/pre&gt;

&lt;p&gt;We've replaced the default base_site.html from the admin app templates. Inside the extrahead block and added the Javascript code that's going to replace &amp;lt;textarea&amp;gt;s with TinyMCE.&lt;/p&gt;
&lt;p&gt;In this example we are using the TinyMCE editor with all its features, but if you want, you can use a fairly simpler one by replacing the code inside the extraheadblock with this code:&lt;/p&gt;

&lt;pre class="sh_html sh_javascript"&gt;
{% block extrahead %}
&amp;lt;script type="text/javascript" src="/{{media_root}}/tiny_mce/tiny_mce.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
        tinyMCE.init({
                mode : "textareas",
                theme : "simple"
        });
&amp;lt;/script&amp;gt;
{% endblock %}
&lt;/pre&gt;


&lt;center&gt;&lt;img src="http://imgur.com/aJHeH.png" alt="TinyMCE in django admin" /&gt;&lt;/center&gt;

&lt;p&gt;Another quick tip, you can edit the content of the&amp;nbsp;title&amp;nbsp;and&amp;nbsp;branding&amp;nbsp;blocks to replace the "Django administration" sentence in the title and head of the page with something that fits your project.&lt;/p&gt;
&lt;p&gt;You might want to consider using a specially made django app to handle TinyMCE editor in your django project; you can find more information about it &lt;a href="http://code.google.com/p/django-tinymce/"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description><author>beshrkayali@gmail.com (Beshr Kayali)</author><pubDate>Tue, 17 Feb 2009 21:56:00 -0600</pubDate><guid>http://beshrkayali.com/blog/2009/02/tinymce-django-admin</guid></item></channel></rss>

