Friday, July 15, 2011

How to connect using PHP to Oracle DB

Hi again. Today an brief explanation about how to install OCI8 for PHP.

1) We need to install PEAR

$sudo apt-get install php-pear libaio1 php5-dev

php-pear the PHP extensión
libaoi1 is th Linux kernel AIO access library
php5-dev because we need the command phpize

2) Download the Oracle Instant Client from the official Oracle website (you need to create an account) and download the files

instantclient-basic-linux32-XX.X.X.X.X.zip
instantclient-sdk-linux32-XX.X.X.X.X.zip

3) Create your own tree of directories

$ sudo mkdir -p /opt/oracle
$ sudo cd /opt/oracle
$ sudo unzip instantclient-basic-linux32-XX.X.X.X.X.zip
$ sudo unzip instantclient-sdk-linux32-XX.X.X.X.X.zip
$ sudo mv instantclient_XX_X instanclient

4) Set some soft links
$ sudo ln -s libclntsh.so.10.1 libclntsh.so
$ sudo ln -s libocci.so.10.1 libocci.so

5) Install the OCI module (needs php5-dev)
$sudo pecl install oci8
...
[path]: instantclient,/opt/oracle/instantclient

6) Add to /etc/php5/apache/php.ini the line
extension=oci8.so

7) Reset apache services and... voila!!

Hope help

Tuesday, July 5, 2011

iPhone: Determining available memory programmatically

Hi, here it's the way I use to determine the available memory in my apps. I have a class with an static method where I use the Mach VM statistics


#import <mach/mach.h>
#import <mach/mach_host.h>

+(void) print_free_memory {
mach_port_t host_port;
mach_msg_type_number_t host_size;
vm_size_t pagesize;

host_port = mach_host_self();
host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
host_page_size(host_port, &pagesize);

vm_statistics_data_t vm_stat;

if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
NSLog(@"Failed to fetch vm statistics");

/* Stats in bytes */
natural_t mem_used = (vm_stat.active_count +
vm_stat.inactive_count +
vm_stat.wire_count) * pagesize;
natural_t mem_free = vm_stat.free_count * pagesize;
natural_t mem_total = mem_used + mem_free;
NSLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
}


The original code version was created by Landon Fuller.

Hope help.

How to remove subviews from a UIScrollView

Easy peasy,

The only thing we need to do is go through all subviews and remove from superview. For example:



NSArray* subviews = [NSArray arrayWithArray: scroll.subviews];
for (UIView* view in subviews) {
if ([view isKindOfClass [UIImageView class]]) {
[view removeFromSuperview];
}
}
[subviews release];


Hope help!!

Sergio