CakeFest
Live postings from CakeFest.
Related Articles
-
Nate Abele - RESTFUL CakePHP
Written on 2008-12-02 12:28:00 in CakeFest,
Viewed 11575 times, 25 CommentsWhy would you want to create RESTful application interface? A webservice/RESTFUL interface will allow you to create a public interface that allows 3rd party sites to integrate with your applications. RESTful API's allow you to provide open services for your customers. This helps customers by giving them choice in what service they use, and reduces a customer's feeling of being locked into one service. By providing open access to data through webservices you not only benefits your customers, it also benefits you company as well. An open webservice can help attract developers to implement and use your webservice with their application. Webservices are important to developers as it helps reduce the effort and time needed to make applications work, and makes code easier to maintain. Nate compared different RESTful/webservices solutions, covering SOAP and some of the troubles created ... -
Guillermo Nuñez - MicroFormats in CakePHP
Written on 2008-12-02 14:05:00 in CakeFest, CakePHP,
Viewed 6726 times, 1 CommentWhen html started being 'designed' presentation and structure muddled together and there was little semantic meaning attached. This html soup was found everywhere, even big sites like yahoo and google. Later styling and content was separated, making maintenance easier and making room to introduce of semantics. And while semantic markup works well for people. It doesn't help the computer understand the syntax and semantics of the information. Only the structure and importance. Web semantics and microformats allows authors to better describe the syntax and semantics of information to help the computers better understand our information. Microformats are part of this semantic solution. They allow the addition of semantic and syntactic information to HTML. As a transition to fully semantic code would be a difficult and lenghty process. There are many different microformats to handle d... -
Felix Geisendörfer - Git and CakePHP
Written on 2008-12-02 14:16:00 in CakeFest, CakePHP,
Viewed 10740 times, 3 CommentsFelix is a huge git fan and Git is a source version control application. It is a command line tool, and there are not many gui tools. Git has a few advantages, it is easier to integrate with other tools. Git also doesn't require a server, allowing you to work locally. Unlike svn there is only one .git folder and it contains the entire project history. Configuring git Before using git you should configure git with git config. You should configure your user name, user email and ui.color. Once you have configured git you are ready to go. Making Commits By using git add you can add single files, folders, whole trees. You then can use git commit to create a commit and add a commit message. You cannot store empty folders in git. If you have any empty folders you need to put an 'empty' file in the folders. Felix used the above to clear all the temp files but leave the empty file... -
Nate Abele - PHP is dying
Written on 2008-12-03 07:42:00 in CakeFest, CakePHP,
Viewed 6806 times, 1 CommentNate started with a brief history of computation, starting with the abacus. And progressing to PHP and covering the presence of bad PHP and Perl code. The good and bad of frameworks Frameworks can help inexperienced developers write better code, however a framework can also be used in a black box context. As a tool that you use, you should try to understand how and why it works. Having a blackbox is not going to help you get better. If you want to use a tool and use it well you have to open it up. PHP still faces a number of challenges even after inexperienced developers are not included. These include a lack of namespaces, anonymous functions, closures. Many of these issues are solved by PHP 5.3. However, PHP is still dying becuase you can't overload operators. And it is just too simple. It requires only a few lines to generate output. Unlike a real language like Java or C... -
Mariano Iglesias - CakeFest.org: Themes, ACL, Auth, Security, and more
Written on 2008-12-03 10:11:00 in CakeFest, CakePHP,
Viewed 5715 times, 0 CommentsMariano is presenting about creating a complete website with a framework. Specifically Mariano will be talking the CakeFest site. This should help to show how to apply the theories that have been talked about up to today and throughout the rest of the week. cakefest.org was developed for the first Cakefest, it is multi-user, multi-event, multi-language application, that was needed to scale for mulitple events. It was built with Themes, Behaviors, pagination, security, Acl, Auth and i18n. Using themes to 'reskin' a site Themes are set by using Controller::$view = 'Theme'; and setting Controller::$theme = 'themeName'. The theme views allow you to override specific views and leave others as they are in the core application. In the CakeFest site the theme was tied to a url parameter. This allowed search engines to crawl and consume all of the content. A cookie would not allow that.... -
Garrett Woodworth - CakePHP console basics
Written on 2008-12-03 11:58:00 in CakeFest, CakePHP,
Viewed 5754 times, 0 CommentsGarret's talk focused on getting command line tools setup. Before getting started on that he covered how to setup a virtual host for a cake project. Once he got into the cake shell, he covered the basic core shells and how to call shells. Garret then used bake to create a new project and a database config file. Using cake bake project and cake bake db_config. Up next was creating a schema file with cake schema generate. The schema file was populated with a few tables to store some information about restaurants. A question was raised about adding and removing columns. Garret demonstrated that as well. Baking models controllers and views was up next. Using the previously created restaurants table, garret walked through baking a model, controller, and some views. At first a scaffold was used but the views were made concrete very quickly. The talk ended with a quick tour of the A... -
Martín Sarsale - Death of Apache Long Live Lighttpd
Written on 2008-12-03 13:40:00 in CakeFest, CakePHP,
Viewed 9090 timesLighttpd runs as one thread there are no forks, and only one thread. Lighttp is not good for large virtualhosts. It also bottlenecks on the disk speed. It is however good, when you have a single large application or need to total control. Lighttpd has several modules that are analogous to Apache such as Rewrite, Auth, Expires etc. Configuration files in lighttpd are very dynamic and allow for variables, regular expressions and if blocks. By using caching well you can reduce the number of requests made. By using Asset.timestamp = force you will get query strings that contain a querystring with the last modified datetime. You can use a configuration script to set the expiry time for these requests. Lighttpd and PHP. Lighttpd doesn't use a PHP module like Apache. Instead it connects to PHP via a socket or TCP/IP. Often this is done with FastCGI. This decoupling of PHP processor ... -
Ryan Petersen - Collective Intelligence
Written on 2008-12-03 13:50:00 in CakeFest, CakePHP,
Viewed 6561 times, 1 CommentCollective intelligence is a shared or group intelligence that emerges from the collaboration and competition of many individual. Some examples would be Amazon's book recommendations. Netflix uses collective intelligence to track their stock and supply changes, and more accurately allocate their resources. Recommendations requires something to track like sales, or user preferences. A group of users is also required, the larger the group the better. A research survey found that a random sample of less that 1500 people will be the ideal and most efficient sample size. There are many ways to estimate preferences. The most simple and basic one is Euclidean distance scoring. Pearson Correlation Score, also uses 2 axis to plot out the points, this method is used by amazon and delicious. Stochastic Optimization Theory of being able to optimize things. Requires a cost function, it is t... -
Jim Lerza - Origami - Automating the paper world.
Written on 2008-12-03 13:54:00 in CakeFest, CakePHP,
Viewed 8959 times, 0 CommentsJim is from Expungement Assitance Services. They run clearMyRecord.com which helps people get their criminal records expunged. Origami is a proposed solution for automating criminal records relief in the United States. The application helps manage all the different types of forms that need to be filled out. All these forms need to be collected and standardized so that the data can be normalized. This helps to automate future applications, and streamline the the user experience. There was an existing application that had a pile of legacy code. This legacy code was partly written in mandarin, and had a difficult to understand naming convention. The database was a mess, and the identification system was jumbled and difficult to follow. There were many challenges and requirements that led them to choose CakePHP, including needed features, time, funding and other constraints. Their te... -
Jeff Loiselle - Authentication & Authorization with CakePHP
Written on 2008-12-04 08:43:00 in CakeFest, CakePHP,
Viewed 9735 times, 0 CommentsWhy authorize and authenticate? Authorization ensures someone is who they say they are. Restricting access is a separate process. Authorization is done in CakePHP with Auth Component. Auth works with a database by default, but it can be changed to work with anything. LDAP, Radius, and OpenID are some examples of alternate authentication sources. Auth component has a number of benefits. It hashes passwords, and it provides one API for all authentication sources. Setting up AuthComponent Need to setup a users table and create a user model. You should have a username and password field. This will help you make the most of the intelligent defaults built into Auth. After that you need to add Auth to you controllers var $components. Acl component Has an easy to use API, identifies, create nodes, checks permissions. The ACL component handles hierarchies with ease, which allows inher... -
Fabian Andres - CakePHP in big companies, real cases
Written on 2008-12-04 08:47:00 in CakeFest, CakePHP,
Viewed 8509 times, 0 CommentsWhy talk about large companies. Larger companies have large demands and often they involve money over the internet. Large companies require fast and efficient applications, which in turn requires efficient tools. This is where CakePHP steps in. Current solutions for large merchant solutions include Java, and .Net solutions. In addition to these solutions, there are alternatives in PHP, ruby, python. However, rapid development is difficult in some of the popular solutions. By using an alternate solution you can tap into a large pool of developers worldwide. CakePHP helps in this area as well, as with a large community allows you to find developers to fill specific roles. CakePHP offers connectors for many databases. CakePHP also offers easy to use and efficient caching methods which help improve performance. There are many CakePHP sites run by large companies including Mozilla,... -
Martin Radosta - Record level security based on SQL
Written on 2008-12-04 13:26:00 in CakeFest, CakePHP,
Viewed 37581 times, 292 CommentsMartin's presentation was based around a behavior that he wrote to provide access control using SQL. In designing a solution, martin came up with a few criteria. The solution must be generic, it only requires 4 fields on any table that will be using the behavior. It should perform quickly and not create a lot of extra queries. The solution he searched for also needed to provide a few features. It should provide permissions for read write and delete. Permissions are assigned by role, with users having many roles. This system is similar to ACL but different, in that it stores the permissions for each record. Martin's behavior uses a permission system similar to the unix file system, with a owner, group, world access. This was implemented as series of bit masks. Unlike the unix filesystems, these permissions are summed and stored as one field. The 4 fields mentioned earlier are us... -
Mariano Iglesias - Internationalization with CakePHP
Written on 2008-12-04 13:30:00 in CakeFest, CakePHP,
Viewed 14937 times, 1 CommentWhy internationalize? You can attract a larger market by making content available in additional languages. When offering international content, you need to translate both the fixed and dynamic content in the database. In CakePHP you can facilitate translation with __() and __n(). In addition content stored in the database can be translated with TranslateBehavior. Multibyte characters exist in many languages, characters outside the traditional latin character set are represented with multibyte characters. This allows for the creation of additional characters and idiomatic expresssion. There is a PHP extentsion for using multibyte strings, it provides the mb_ functions. CakePHP also provides a MultiByte class which provides all the mb_ functions for PHP4 or PHP5 installations lacking them. Using translation in CakePHP By using __() we can create translatable strings in our appl... -
Garret Woodworth - Advanced console
Written on 2008-12-05 09:15:00 in CakeFest, CakePHP,
Viewed 7053 times, 0 CommentsSince we got through bake on the last talk, we are going to look at some advanced usage of bake and other consoles. The interactive console was demonstrated. With the interactive console, you can examine the routes, interact with models. Following the console demonstration, Garrett demonstrated creation of a custom shell. Building on a previous example application, garret started building a shell to generate a menu. This covered creating methods in your shell, using in() and out() as well as how to access args and params. A demo of Cakebot was next. Cakebot is the IRC bot used in #cakephp, Cakebot was also written as a CakePHP shell. -
Felix Geisendörfer - Jquery and CakePHP
Written on 2008-12-05 09:18:00 in CakeFest, CakePHP,
Viewed 12145 times, 0 CommentsFelix started off by baking his application. While baking his controller he added in the Javascript Helper and RequestHandler Component. This will save adding them in later. Because the demo was based on Jquery the Ajax helper could not be used. However, Felix raised a very good issue of using a helper vs. writing Javascript. His opinion is that if you want to build a heavy AJAX application you should write all your javascript. If you just need a bit of AJAX sprinkled on you can use the helper. However, helpers are difficult to use in wide applications as they abstract one language into another which is tricky. Felix talked briefly about how he organizes his javascript. He likes to have specific javascript files for each controller/view placed in js/views as well as a few utility libraries. This allows his projects to reuse general js code as well as keep the Javascript separat...