Jul 12, 2021

Franca Chiavaro invited you to “Compleanno gemelli ❤️❤️”.

BEGIN:VCALENDAR
PRODID:-//caldav.icloud.com//CALDAVJ 2111B551//EN
METHOD:REQUEST
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;CN=Franca Chiavaro;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;EMAIL=fra
nca.chiavaro@gmail.com:/aMTM4NjEwMjcwMjEzODYxMIZ4SsZgsCLkvViBxN0HKJMNvIX
idb3k5c16OLGthKhj/principal/
ATTENDEE;CN=Paolo Quadrani;CUTYPE=INDIVIDUAL;EMAIL=paolo.quadrani.iphone@
blogger.com:mailto:paolo.quadrani.iphone@blogger.com
CREATED:20210711T222955Z
DTEND;TZID=Europe/Rome:20210810T010000
DTSTAMP:20210711T223504Z
DTSTART;TZID=Europe/Rome:20210810T000000
LAST-MODIFIED:20210711T223502Z
ORGANIZER;CN=Franca Chiavaro;EMAIL=franca.chiavaro@gmail.com:mailto:2_GEZ
TQNRRGAZDOMBSGEZTQNRRGDVBYMUX6626W3JZVDHWHG5RICLSNVT3TZRVPEKDCQEM7DALYUX
PU@imip.me.com
SEQUENCE:0
SUMMARY:Compleanno gemelli ❤️❤️
UID:D926AB80-6B6D-4680-9129-4A3719EFF191
URL;VALUE=URI:
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Rome
X-LIC-LOCATION:Europe/Rome
BEGIN:STANDARD
DTSTART:18660922T000000
RDATE:18660922T000000
TZNAME:RMT
TZOFFSETFROM:+004956
TZOFFSETTO:+004956
END:STANDARD
BEGIN:STANDARD
DTSTART:18931031T234956
RDATE:18931031T234956
TZNAME:CEST
TZOFFSETFROM:+004956
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19160603T235959
RDATE:19160603T235959
RDATE:19170331T235959
RDATE:19180309T235959
RDATE:19190301T235959
RDATE:19200320T235959
RDATE:19400614T235959
RDATE:19430329T020000
RDATE:19440403T020000
RDATE:19450402T020000
RDATE:19460317T020000
RDATE:19470316T000000
RDATE:19480229T020000
RDATE:19690601T000000
RDATE:19700531T000000
RDATE:19730603T000000
RDATE:19740526T000000
RDATE:19750601T000000
RDATE:19760530T000000
RDATE:19800406T020000
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19160930T235959
RRULE:FREQ=YEARLY;UNTIL=19170930T215959Z;BYMONTH=9
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:STANDARD
DTSTART:19181006T235959
RDATE:19181006T235959
RDATE:19191004T235959
RDATE:19200918T235959
RDATE:19421102T030000
RDATE:19431004T030000
RDATE:19440917T030000
RDATE:19450915T010000
RDATE:19461006T030000
RDATE:19471005T010000
RDATE:19481003T030000
RDATE:19660924T235959
RDATE:19700927T010000
RDATE:19710926T010000
RDATE:19721001T010000
RDATE:19781001T010000
RDATE:19790930T010000
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19430910T000000
RDATE:19430910T000000
RDATE:19440604T000000
TZNAME:CEST
TZOFFSETFROM:+0200
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19660522T000000
RRULE:FREQ=YEARLY;UNTIL=19680525T230000Z;BYMONTH=5;BYDAY=4SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19670924T010000
RRULE:FREQ=YEARLY;UNTIL=19690927T230000Z;BYMONTH=9;BYDAY=4SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19710523T000000
RRULE:FREQ=YEARLY;UNTIL=19720527T230000Z;BYMONTH=5;BYDAY=4SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19730930T010000
RRULE:FREQ=YEARLY;UNTIL=19740928T230000Z;BYMONTH=9;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:STANDARD
DTSTART:19750928T010000
RRULE:FREQ=YEARLY;UNTIL=19770924T230000Z;BYMONTH=9;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19770522T000000
RRULE:FREQ=YEARLY;UNTIL=19790526T230000Z;BYMONTH=5;BYDAY=4SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19800101T000000
RDATE:19800101T000000
TZNAME:CET
TZOFFSETFROM:+0100
TZOFFSETTO:+0100
END:STANDARD
BEGIN:STANDARD
DTSTART:19800928T030000
RRULE:FREQ=YEARLY;UNTIL=19950924T010000Z;BYMONTH=9;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
END:VTIMEZONE
END:VCALENDAR

Franca Chiavaro invited you to "Compleanno gemelli ❤️❤️".
when Tuesday, August 10, 2021, 12:00 AM CEST - 1:00 AM CEST
invitees Franca Chiavaro and you.
See replies…
Accept
Decline
Maybe
Don't recognize this sender? Report Junk.
 

May 14, 2021

Fwd: fattura



Inviato da iPhone

Inizio messaggio inoltrato:

Da: emanuel.bls@libero.it
Data: 14 maggio 2021 13:21:18 CEST
A: franca.chiavaro@gmail.com
Oggetto: fattura




Apr 27, 2011

Slider class to preview Images or PDF

Finally I was able to find some time to write another post on this blog :)
This time I want to share with you my last github repository in which I put a Xcode4 project of a UISlider subclass that I called PQSliderPreview.
The class and the related demo application (that can be run on iPhone or iPad) wants to show the functionality of the PWSliderPreview which can make a preview of the given PDF document or the array of paths of given images.
The PQSliderPreview can extract the PDF pages or the images at the given path and show it as a preview according to the integer retrieved from the slider.
The snapshot below has been taken from my iPhone and show the preview of the test PDF document present into the demo application.


For the preview image I decided to not use the UIPopoverController to show the preview, but manage manually the position of the UIImageView over the UISlider so to have the same representation for iPHone and iPad.
The UIImageView is positioned in manned that it is always visible inside the space assigned to the slider, so the bottom slider shows the preview over it, while the upper one shows the preview below it.

Feel free to download the source code from github and send me back your comments, opinion and how to improve it. The code is under the Apache 2 License.
Enhanced by Zemanta

Nov 3, 2010

Catgories in Objective-C

Today I want to give a short example on how to use Categories in Objective-C to extend an existing class.
Let's say that you want to access safely to an array containing 'n' objects, but you don't want every time you access it to check if the index is contained into the array count.

A possible solution is to use a Category to extend the NSArray class.

Create a new project and add to it a new .h and .m files. Let call them NSArray+SafeAccess.h and NSArray+SafeAccess.m.
Inside the NSArray+SafeAccess.h put the declaration of the new Category:

@interface NSArray (SafeAccess) 

- (id)objectSafeAtIndex:(NSUInteger)index;

@end

Then in the NSArray+SafeAccess.m file write the implementation of the new method that will extend the NSArray with the safe access without obtaining a crash for out of bounds access:

@implementation NSArray (SafeAccess)

- (id)objectSafeAtIndex:(NSUInteger)index {
    return (index >= [self count]) ? nil : [self objectAtIndex:index];
}

@end

Later on in your code just import the NSArray+SafeAccess.h and you can use the new safe access method.
Try these lines of code:

#import "NSArray+SafeAccess.h"

...

NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:@"First"];
[arr addObject:@"Second"];
[arr addObject:@"Third"];

id obj = [arr objectSafeAtIndex:3];
assert(obj == nil);
obj = [arr objectSafeAtIndex:2];
assert(obj == @"Third");
[arr release];

Hope you enjoy with this simple example.
Comments and suggestions are welcome :)

Aug 9, 2010

Ecological Footprint

Dear All,
today I wanna present you the new update v1.1 for Eco Footprint, the iPhone application dedicated to the ecology that allows you to calculate in a simple but effective way your footprint on nature.
The updates are some bug fixing that allow the application to run on the new iOS4 and the adoption of the Apple iAd network.
The application make use of Core Data layer to query and store values on sqlite database.

Below you can se a video of the application that show how to use it to calculate the footprint.



The result can be shared with your friends through your Facebook account.
The application can be downloaded for free at the Apple Store.

Please leave your comments on the application to suggest improvements or changes to make to the app even better and usable.

Thanks for reading :)
Enhanced by Zemanta

Apr 17, 2010

Augmented Reality on iPhone

Hi all, I'm back after a long absence from the blog.
Today I wanna share with you the presentation I made for the University of Bologna on the development of Augmented Reality application for the iPhone 3Gs.

Enjoy the show :)


Reblog this post [with Zemanta]

Jan 16, 2010

Locate your position using GPS

For this test application you need to create a new View-Based Application project (I called it TestLocation).
Once created, open the TestLocationViewController.xib file by double clicking on it. drag over it four labels and a button to make start the update location..
After the editing the result should be like in the following image:




Save the xib file and go to the TestLocationViewController.h and add two IBOutlets to be connected to the empty labels and an action

 - (IBAction)startUpdate:(id)sender 

for the button. These labels will show the latitude and the longitude of your GPS position, while the button will start the location manager. Connect the action to the Touch Up Inside event of the button.

Now comes the location code; in your project right click on the TestLocation target and select the 'Get Info'. In the General tab add the CoreLocation.framework as linked library.

Now come back in the TestLocationViewController.h and add the inclusion of the location framework, the protocol CLLocationManagerDelegate and a member variable that define the location manager (of type CLLocationManager).
I defined the location manager as a property, so it will be instantiated only when needed.

Now switch to the .m file and implement the location protocol delegate methods: didUpdateToLocation (called on success of updating GPS position) and didFailWithError (called if an error occours, for example no GPS signal is present).

Inside the method didUpdateToLocation you have to extract the new position and update the label's text using the following code:

    CLLocationCoordinate2D loc = newLocation.coordinate;
    [lblLatitude setText:[NSString stringWithFormat:@"%f", loc.latitude]];
    [lblLongitude setText:[NSString stringWithFormat:@"%f", loc.longitude]];

then stop updating the location manager:

    [locationManager stopUpdatingLocation];

If you implemented the location manager as property, redefine the accessor method to check if it has been already created, otherwise create it, set the desired accuracy and the delegate as follows:

    locationManager = [[CLLocationManager alloc] init];
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    locationManager.delegate = self;

Now you are ready; Press the Build and Go button and when you'll press the button, the location manager will start to update the GPS position. The simulator comes with a fake GPS positions, so you'll be able to see something in the labels.
The complete project can be downloaded from here.

Enjoy and thanks for reading!