Vi segnalo questa interessante lettura:

snydeq writes "Pwn2Own winner Charlie Miller has revealed an SMS vulnerability that could provide hackers with root access to the iPhone. Malicious code sent by SMS to run on the phone could include commands to monitor location using GPS, turn on the phone's microphone to eavesdrop on conversations, or make the phone join a DDoS attack or botnet, Miller said. Miller did not provide detailed description of the SMS vulnerability, citing an agreement with Apple, which is working to fix the vulnerability in advance of Black Hat, where Miller plans to discuss the attack in greater detail. 'SMS is a great vector to attack the iPhone,' Miller said, as SMS can send binary code that the iPhone processes without user interaction. Sequences can be sent to the phone as multiple messages that are automatically reassembled, thereby surpassing individual SMS message limits of 140 bytes."

Read more of this story at Slashdot.

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

MegaZine 3 is an open source & free Flash pageflip engine for presenting any content with a book-like interface where users can flip the pages.

It is built with ActionScript 3 & customized very easily via XML files.

Free Flash Pageflip

Features of MegaZine 3:

  • deep linking with integrated SWFaddress support
  • control bar to navigate through pages easier (can be disabled)
  • page caching for faster browsing
  • ability to use any content in pages like sound, images, movies & more
  • easy customization of background, colors & ability to create transparent pages
  • advanced localization support (even sounds, iamges can be bound to languages)
  • image zooming & image galleries inside pages

This pageflip engine is well-documented & a working demo can be found here.

Tip: There is a batch-script offered at the download page for auto converting PDF documents into Flash pageflip presentations.

Some other free pageflip engines:

Special Downloads:
Free Admin Template For Web Applications
jQuery Dynamic Drag’n Drop
ScheduledTweets

Advertisements:
SSLmatic - Cheap SSL Certificates (from $19.99/year)
Dreamhost $50 Discount Code: WRD
Follow WebResourcesDepot At Twitter And Get More Resources!

Tags:

Related posts

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

Cake has a wonderful shell script function built into it called extract that will run through your code and create a .po file full of all of the text contained within your __('My text here') calls. You can then pass these files onto to translators to modify them for your languages. When you want to add variables though, you have to break it up into pieces which may change the context of the phrase. Here's a way around that.

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

After whinging loudly about not having access to the Google Wave preview, Santa GOOG dropped me an invite. Last night I held a Wave Q&A on Twitter; here are the results, complete with screenshots.

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

A prehistoric complex, including two 6,000-year-old tombs, has been discovered by archaeologists in Hampshire.

Comments Nessun Commento »

Vi segnalo questa interessante lettura:


Google Apps Sync for Microsoft Outlook is a plug in that allows Microsoft Outlook to run on the Google Apps backend rather than Microsoft Exchange Server. End users can continue to use the familiar Microsoft Outlook interface for email, calendar and contacts as they transition to Google Apps.

Editions included:
Premier and Education Editions

Languages included:
Available worldwide with US English interface

How to access what's new:
You can download Google Apps Sync for Microsoft Outlook at www.google.com/apps/get-outlook-sync.

For more information:
http://googleenterprise.blogspot.com/2009/06/use-microsoft-outlook-with-google-apps.html

Get these product update alerts by email
Subscribe to the RSS feed of these updates

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

Hey folks,

if you are not familiar with Mariano's Sluggable Behavior, you should definitely check it out. It's a nice tool to generate SEO-friendly urls in your application. If you are anything like debuggable.com with our long urls, you might want to look at it. ;)

If you don't know what a url slug is:

A slug is a few words that describe a post or a page. Slugs are usually a URL friendly version of the post title, but a slug can be anything you like. Slugs are meant to be used with your site's urls as they help describe what the content at the URL is. They might or might not help your SEO ranking as well for the keywords in the slug/content.

Example post url: http://flashfun247.com/games/play/racing/tg-motocross-2.

The slug for that game content is "tg-motocross-2".

This blogpost deals with migrating an existing production table into using Mariano's sluggable behavior and thereby increasing SEO friendliness of your site.

Step 1: Back up the database table

Back up the table for which you want to add slugs. We cannot be blamed for any database damage this might cause.

Step 2: Modify your database

Add a "slug" field to the table. The default length that the behavior uses is 100 chars which should be enough in most cases. So VARCHAR(100) is what you need or the equivalent for your db driver.

Step 3: Add your $actsAs declaration

Add the proper call to $actsAs to the model that you want to migrate. Put in any existing behaviors that you need as well:

php
  1. var $actsAs = array(
  2.   'Containable',
  3.   'Lookupable',
  4.   'Sluggable' => array('overwrite' => true)
  5. );

Make sure to set the overwrite option, as otherwise the behavior will refuse to overwrite the slug field the way we will do it. Also make sure to set the 'label' option if the table field that your slugs will depend on is not called 'title'.

For the full host of options, check the sluggable behavior.

Important: The field your slugs depend on (title, name or combinations) MUST NOT be empty for any row in your table. The shell takes this into account and provides you with an error log. To save you some headaches, make sure the fields are properly filled before you run the sluggish shell.

Step 4: Modify The Sluggable Behavior Code

You need to change the Sluggable behavior code on two occurances to make it work with the recent Cake releases.

1. Change Line 121 to:

php
  1. $conditions = array($Model->alias . '.' . $this->__settings[$Model->alias]['slug'] . ' LIKE' => $slug . '%');

2. Change Line 125 to:

php
  1. $conditions[$Model->alias . '.' . $Model->primaryKey . ' <>'] = $Model->id;

This is simply changing the syntax for NOT and LIKE conditions.

Step 5: Download Debuggable's Sluggish Shell

Copy the following code to a 'sluggish.php' file in your vendors/shells folder. Just mouseover the code to see it in raw text.

php
  1. <?php
  2. /**
  3.  * Sluggish Shell
  4.  *
  5.  * Set overwrite => true before running this in your $actsAs declaration!
  6.  * This shell allows you to generate unique slugs for a database table ready for use
  7.  * with the sluggable behavior by Mariano Iglesias
  8.  *
  9.  *
  10.  * Sluggish Shell : Make your table sluggable
  11.  * Copyright 2009, Debuggable, Ltd. (http://debuggable.com)
  12.  *
  13.  * Licensed under The MIT License
  14.  * Redistributions of files must retain the above copyright notice.
  15.  *
  16.  * @filesource
  17.  * @copyright     Copyright 2009, Debuggable, Ltd. (http://debuggable.com)
  18.  * @link          http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
  19.  * @license       http://www.opensource.org/licenses/mit-license.php The MIT License
  20.  */
  21. class SluggishShell extends Shell {
  22. /**
  23.  * undocumented function
  24.  *
  25.  * @return void
  26.  * @access public
  27.  */
  28.   function main() {
  29.     if (empty($this->args)) {
  30.       return $this->out('You need to specify a modelname');
  31.     }
  32.  
  33.     $model = $this->args[0];
  34.     $force = isset($this->args[1]) ? $this->args[1] : false;
  35.  
  36.     $Model = ClassRegistry::init($model);
  37.     $behavior = 'Sluggable';
  38.  
  39.     if (!is_object($Model)) {
  40.       return $this->out('This model does not exist.');
  41.     }
  42.  
  43.     if (!in_array($behavior, $Model->actsAs) && !array_key_exists($behavior, $Model->actsAs)) {
  44.       return $this->out('The Sluggable Behavior is not yet linked to the model.');
  45.     }
  46.  
  47.     $label = 'title';
  48.     if (isset($Model->actsAs['Sluggable']['label'])) {
  49.       $label = $Model->actsAs['Sluggable']['label'];
  50.     }
  51.  
  52.     $Model->recursive = -1;
  53.     $conditions = $force ? false : array('slug' => '');
  54.     $rows = $Model->find('all', compact('conditions'));
  55.     $count = count($rows);
  56.  
  57.     $i = 0;
  58.     foreach ($rows as $row) {
  59.       $Model->set(array(
  60.         $Model->primaryKey => $row[$model][$Model->primaryKey],
  61.         $label => $row[$model][$label]
  62.       ));
  63.       $Model->save();
  64.  
  65.       $row = $Model->find('first', array(
  66.         'conditions' => array(
  67.           $Model->primaryKey => $row[$model][$Model->primaryKey],
  68.           'slug' => ''
  69.         ),
  70.         'contain' => false
  71.       ));
  72.       if (empty($row)) {
  73.         $i++;
  74.       } else {
  75.         $this->out('Problem saving the slug for ' . $row[$model][$label]);
  76.         $this->out($Model->validationErrors);
  77.       }
  78.     }
  79.  
  80.     $this->out('Added ' . $i . ' slugs for ' . $count . ' ' . Inflector::pluralize($model));
  81.   }
  82. /**
  83.  * undocumented function
  84.  *
  85.  * @return void
  86.  * @access public
  87.  */
  88.   function help() {
  89.     $this->out('Debuggable Ltd. Sluggish Shell - http://debuggable.com');
  90.     $this->hr();
  91.     $this->out('Important: Configure your paths in the shell\'s initialize() function.');
  92.     $this->hr();
  93.     $this->out('This shell allows you to migrate a database table to use Mariano Iglesias\' Sluggable Behavior.');
  94.     $this->out('Add a slug field to the table, download the sluggable behavior, add your $actsAs declaration and run this shell.');
  95.     $this->out('');
  96.     $this->hr();
  97.     $this->out("Usage: cake sluggish ModelNameInCamelCase");
  98.     $this->out('');
  99.   }
  100. }
  101. ?>

The code is very simple. The shell takes a modelname and checks if your $actsAs declaration is properly set up. If it is, it finds all rows from the table and saves them right away, with the label field in the Model::set() call.
Since we have specified overwrite => true in the $actsAs declaration, the sluggable behavior now overwrites all slug fields in the table, giving you nice slugs.

Step 6: Run The Sluggish Shell

Run "cake sluggish ModelNameInCamelCase" in your terminal.

Step 7: Change your urls

The Sluggable behavior creates unique slugs. If two of your blogposts for example have the same title, the first one will have 'my-blogpost-title' as its slug and the second one will have 'my-blogpost-title-1'. Mariano's behavior attaches an integer to the slug depending on how often the slug was used already.

Now that you have unique slugs, you can change your controller code and view code to take account of this. If you are heavily indexed in google already, you might want to provide 301 (permanent) redirects for the old urls, or just offer both urls to access the same blogpost, but only use slugs throughout the app.

Enjoy! Post any feedback or help requests in the comments below.

-- Tim Koschuetzki aka DarkAngelBGE

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

jQuery TOOLS is a set of frequently used user interface components, built with/for jQuery, to power your websites.

The library is lightweight (5.8kb) and consists of the following tools:

  • tabs
  • tooltip
  • scrollable
  • overlay
  • expose
  • flashembed

jQuery Tools

All the tools can be used together, extended, configured and styled which makes it very flexible.

Every feature in the library is very well documented & offers various examples to lower the learning curve.

It is also possible to download the tools you need rather than the whole package, combined in a one file.

Special Downloads:
Free Admin Template For Web Applications
jQuery Dynamic Drag’n Drop
ScheduledTweets

Advertisements:
SSLmatic - Cheap SSL Certificates (from $19.99/year)
Dreamhost $50 Discount Code: WRD
Follow WebResourcesDepot At Twitter And Get More Resources!

Tags: , ,

Related posts

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

google mapsGoogle’s street-level mapping imagery – called Street View – can at times be useful if you want to see what a place you’re trying to find looks like. However, if you’ve ever wanted to explore beyond a snapshot of a location, you’ve likely found the user experience fairly cumbersome, if not downright unusable at times.

Today, the Google Maps team has unveiled a new feature that makes actually navigating through Street View significantly better. Now, Maps will show you, “an oval when your mouse is following a road and a rectangle when moving across the facades of buildings.” Google refers to these shapes as “pancakes,” and once you figure out how exactly they work, they turn Street View into a fairly enjoyable – if not highly useful – experience.

The feature seems to be most useful when looking down a street, as opposed to staring directly at the address you’re looking for, which will just zoom you in further when you double-click on the pancake. This means you can potentially move hundreds of yards at a time in Street View, as opposed to however far Google would let you move previously by clicking forwards and backwards arrows.

The prior problem, and the solution, are explained by Google in the video below:

See Also: Top 15 Google Street View Sightings


Reviews: Google, Google Maps

Tags: Google Maps, google street view

Comments Nessun Commento »

Vi segnalo questa interessante lettura:

Sprint has published a real page turner here -- some 22 pages of the most telling Pre details we've seen to date. It's a very business-centric document, but a lot of the stuff revealed in here applies to each and every user that's buying a Pre since much of the functionality is managed through Palm's owned-and-operated cloud. Follow the break for some of the major takeaways we're seeing.

[Thanks, Mason]

Continue reading Sprint's Pre business launch guide leaked in its entirety

Filed under: ,

Sprint's Pre business launch guide leaked in its entirety originally appeared on Engadget on Sun, 24 May 2009 16:19:00 EST. Please see our terms for use of feeds.

Permalink | Email this | Comments

Comments Nessun Commento »