Monthly Archives: October 2007

Looking through Mozilla’s Prism

Today I found an article, that Mozilla released a new project which aims to bring web apps to the desktop. The code name for the new project is Prism.

… a XULRunner based application that allows to run single web applications in an isolated environment without all the navigation, configuration and much other user interface browsers typically feature.

The project is based on WebRunner which is stripped version of the browser. With Prism will be possible to create a Desktop look and feel applications from a regular web based apps.
Continue reading

Google Page Rank update

Google logoYesterday, I read an article about Page Rank and how Google “punished” some popular sites with “downgrading” their PR. This happened because they had external links without attribute rel=”nofollow”.

Today I saw that Google rated my site as well. It is my first page rank. I got PR 3 and now what? Shall I make a party? Shall I cry? No! It’s one digit which telling nothing to regular people.

I don’t care what Page Rank of this page is, because it’s not commercial, but probably for some commercial project it’s quite critical.
Continue reading

Check for existing children behaviour

In some of my projects I had a requirement to prevent deletion of the records, which had children. That’s why I create a small behaviour which checks these cases and prevent this.

Add this code in /app/models/behaviours/has_children.php

<?php
/**
 * Prevent deletion if child record found
 *
 * @author    Nik Chankov
 * @url    http://nik.chankov.net
 */

class HasChildrenBehavior extends ModelBehavior {
    /**
     * Empty Setup Function
    */

    function setup(&$model) {
        $this->model = $model;
    }
   
    /**
     * Run the check and cancel the deletion if child is found
     * @access public
     */

    function beforeDelete(){
        if(isset($this->model->hasMany)){
            foreach($this->model->hasMany as $key=>$value){
                $childRecords = $this->model->{$key}->find('count', array('conditions'=>array($value['foreignKey']=>$this->model->id)));
                if($childRecords > 0){
                    return false;
                }
            }
        }
        //Checking habtm relation as well, thanks to Zoltan
        if(isset($this->model->hasAndBelongsToMany)){
            foreach($this->model->hasAndBelongsToMany as $key=>$value){
                $childRecords = $this->model->{$key}->find('count', array('conditions'=>array($value['foreignKey']=>$this->model->id)));
                if($childRecords > 0){
                    return false;
                }
            }
        }
        return true;
    }
}
?>

Continue reading

Dapper.net – The data mapper – Site review

Dapper - The data mapperI found this site clicking on the AdSense banner. It’s called Dapper.net and here I will explain what is this service. It’s quite strange to find a non-profit site in AdSense block /at least this is my experience so far/, but this is the truth. The first impression was that it has quite neat and clean design and I wanted to understand more about it.

So what I found? Dapper is a web 2.0 application which extract the specified content from a site and create information source /dapp/ and store it as XML, which could be used from third party applications and sites.

“Dapper is a groundbreaking service, allowing companies and developers to seamlessly interact with web content. Using Dapper, companies can focus on building new applications and added value, relying on the Dapper infrastructure to take care of their web integration needs.”
Continue reading

Storing the settings into database

Today I would like to show you how I am storing and fetching the settings for my applications in CakePHP. The reason why I am doing this is pretty obvious – once the application is complete and installed it’s better to have settings such as

  • How many rows per page to show in the paginated table
  • Where is the upload dir for the files
  • What is the Date format used in the application

And many other.
Continue reading

Ubuntu 7.10 – available

Today is the official release of Ubuntu – version 7.10 (code name Gutsy Gibbon).

What is Ubuntu: Ubuntu is a community developed, Linux-based operating system that is perfect for laptops, desktops and servers. It contains all the applications you need – a web browser, presentation, document and spreadsheet software, instant messaging and much more. Ubuntu is free software.

I am using Ubuntu from one year and a half /summer of 2006/ and I could say that nothing could bring me back to Microsoft Windows. It was “strange” in first 2-3 months and I had spontaneous wishes to turn it off, but after that you get used to it and become quite nice. I didn’t log-in in my Windows from at least 6-7 months.
Continue reading

TokBox – Who need video conferencing anymore

Today I found very interesting site today which I want to share my impressions from it. It’s called TokBox. The main functionality of this site is video conference and video messaging.

Once you register /it’s very easy because you don’t need any e-mail confirmation/ you see your own tokbox interface which offering:
Continue reading

What kind of blogger are you?

I found interesting quiz while browsing IT articles today, shame I miss the opportunity to subscribe to that initiative Blog Action Day which hosts this quiz, but hopefully next year I will participate with many other geeks.

Looking in my blog articles /probably I am the most active reader of them ;)/ I found /curiously how/ that they are really, really serous, without any sense of humor and fun. Only tech articles and stuff which could make my image to look like strong technical guy /which in fact I am/, but there should be a little pinch of fun. Otherwise the blog will become more and more serious and one day people will expect from me to publish an API or even a Technical book otherwise my article wont fit to my profile.

So to let’s put some auto irony and to make my “image” public. Although some of the answers where “I am not exactly this but there is not better answer” here I am:
What Kind of Blogger Are You?

640-822 and 640-863 are the basic tests leading to advanced exams like 70-640 and 70-236 but a lot of 220-602 applicants don’t know about this.

What is yours “Image”?

10 reasons to choose CakePHP as Framework

Two months ago I wrote about benefits of Community Frameworks compared with Home-Grown ones. In the article I mentioned some of the benefits of Cake, but it was “scratching the surface” rather than complete info.
Here I want to list all those things, but near to each of them I will give short explanation what is it and how CakePHP implement it.

So, if somebody ask me what are those 10 things which drive me to choose this framework as my primary one I will answer with:
Continue reading

CakePHP and Layout – secret of data passing through

In my current project I need to deal with the Layout more than adding some header, static menu and footer in it. I need to have dynamic menu loaded from the database plus additional blocks which will contain some data related to the main content. For example YouTube.com /and many other sites/ has some blocks which appear all over the site like related movies block from the right depending from the tags related to the main movie. There are a lot examples.

Well, searching in the CakePHP Manual, CakePHP Google Group or Bakery doesn’t satisfy my understanding how to solve the case. Apart from $anything_for_layout: Making HTML from the View available to the layout article I didnt find anything on this topic. And this one sounds like a hack rather than a complex solution.
Continue reading