If you want to launch you iOS app, iphone app from command prompt/terminal, here are the steps.
1. Download iphonesim source code from https://github.com/jhaynie/iphonesim
2. Untar the package and use xcodebuild to build the package
$unzip jhaynie-iphonesim-d930444.zip
$
$ cd jhaynie-iphonesim-d930444
$ ls
README iPhoneSimulatorRemoteClient iphonesim_Prefix.pch
Source iphonesim.xcodeproj
$
$ which xcodebuild
/usr/bin/xcodebuild
$
$ xcodebuild -project iphonesim.xcodeproj -alltargets
3. After you build iphonesim project, it will create an iphonesim binary in Release folder
$ pwd
jhaynie-iphonesim-d930444/build/Release
$ ls
iphonesim iphonesim.dSYM
$
4. You can run the application by first building your application in xcode using the xcodebuild command from the command line. You can then run it in the simulator using follwing an an example:
$ iphonesim launch ~/tmp/yourproject/build/Debug.simulator/yourproject.app
You need to point to either Debug.simulator or Release.simulator based on which build type you built with.
Friday, September 2, 2011
Wednesday, May 4, 2011
Wednesday, February 16, 2011
Install PHPunit and upgrading PEAR.
PhpUnit manual has all information about to install phpunit on your server.
http://www.phpunit.de/manual/3.5/en/phpunit-book.html#installation
PHPUnit 3.5 requires PHP 5.2.7 (or later) but PHP 5.3.3 (or later) is highly recommended.
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover components.ez.no
sudo pear channel-discover pear.symfony-project.com
This has to be done only once. Now the PEAR Installer can be used to install packages from the PHPUnit channel:
sudo pear install phpunit/PHPUnit
After the installation you can find the PHPUnit source files inside your local PEAR directory; the path is usually /usr/lib/php/PHPUnit.
After installation, if you don't find phpunit utility, the please check your pear installation version.
Phpunit installation requires PEAR version >= 1.9.1
You can update PEAR version by using command,
sudo pear upgrade pear
This will upgrade pear and then if you run 'pear install phpunit/PHPUnit' this will install phpunit correctly.
If you see following error,
Failed to download pear/HTTP_Request2 within preferred state "stable", latest release is version 2.0.0RC1, stability "beta", use "channel://pear.php.net/HTTP_Request2-2.0.0RC1" to install
phpunit/PHPUnit can optionally use PHP extension "dbus"
pear/XML_RPC2 requires package "pear/HTTP_Request2" (version >= 0.6.0)
phpunit/PHPUnit requires package "pear/XML_RPC2"
No valid packages found
install failed
To install this missing HTTP_Request2 package, run following command,
sudo pear install HTTP_Request2-2.0.0RC1
If you see following error while executing above command,
Failed to download pear/Net_URL2 within preferred state "stable", latest release is version 0.3.1, stability "beta", use "channel://pear.php.net/Net_URL2-0.3.1" to install
pear/HTTP_Request2 requires package "pear/Net_URL2" (version >= 0.3.0)
pear/HTTP_Request2 can optionally use PHP extension "fileinfo"
No valid packages found
install failed
Then in that case you will need to install Net_URL2 package first, for doing so use following command,
sudo pear install NET_URL2-0.3.1
now install HTTP_Request2 and then PHPUnit.
http://www.phpunit.de/manual/3.5/en/phpunit-book.html#installation
PHPUnit 3.5 requires PHP 5.2.7 (or later) but PHP 5.3.3 (or later) is highly recommended.
sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover components.ez.no
sudo pear channel-discover pear.symfony-project.com
This has to be done only once. Now the PEAR Installer can be used to install packages from the PHPUnit channel:
sudo pear install phpunit/PHPUnit
After the installation you can find the PHPUnit source files inside your local PEAR directory; the path is usually /usr/lib/php/PHPUnit.
After installation, if you don't find phpunit utility, the please check your pear installation version.
Phpunit installation requires PEAR version >= 1.9.1
You can update PEAR version by using command,
sudo pear upgrade pear
This will upgrade pear and then if you run 'pear install phpunit/PHPUnit' this will install phpunit correctly.
If you see following error,
Failed to download pear/HTTP_Request2 within preferred state "stable", latest release is version 2.0.0RC1, stability "beta", use "channel://pear.php.net/HTTP_Request2-2.0.0RC1" to install
phpunit/PHPUnit can optionally use PHP extension "dbus"
pear/XML_RPC2 requires package "pear/HTTP_Request2" (version >= 0.6.0)
phpunit/PHPUnit requires package "pear/XML_RPC2"
No valid packages found
install failed
To install this missing HTTP_Request2 package, run following command,
sudo pear install HTTP_Request2-2.0.0RC1
If you see following error while executing above command,
Failed to download pear/Net_URL2 within preferred state "stable", latest release is version 0.3.1, stability "beta", use "channel://pear.php.net/Net_URL2-0.3.1" to install
pear/HTTP_Request2 requires package "pear/Net_URL2" (version >= 0.3.0)
pear/HTTP_Request2 can optionally use PHP extension "fileinfo"
No valid packages found
install failed
Then in that case you will need to install Net_URL2 package first, for doing so use following command,
sudo pear install NET_URL2-0.3.1
now install HTTP_Request2 and then PHPUnit.
Sunday, September 5, 2010
Java 5.0 Multithreading feature - Callable and Future
One of the very important feature of Java 5.0 is Callable Interface and Future.
The problem with Runnable interface or Thread class in multithreading was you can return any value from the thread.
But this drawback was removed in Java 5.0 with Callable Interface and Future.
In the code below, Callable<Interger> in CallableExample, the thread will return 'Integer' and this Integer value can be retrieved using Future object as shown in CallableExampleTest.
1. Callable Implementation:
----->
import java.util.concurrent.Callable;
/**
*
* @author vinitpatwa
*/
public class CallableExample implements Callable<Integer> {
private String word;
public CallableExample(String word) {
this.word = word;
}
public Integer call() {
return getWord().length();
}
public String getWord() {
return word;
}
}
<-----
2. Testing the Callable implementation
----->
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
*
* @author vinitpatwa
*/
public class CallableExampleTest {
public static void main(String args[]) throws Exception{
ExecutorService pool=Executors.newFixedThreadPool(1);
List<Future<Integer>> set=new LinkedList<Future<Integer>>();
String[] strArray={"Texas", "California", "Ohio"};
for(String word:strArray){
Callable cal=new CallableExample(word);
Future<Integer> future=pool.submit(cal);
set.add(future);
}
for(Future<Integer> future:set){
System.out.println("Length of word is : "+future.get());
}
}
}
<-----
The problem with Runnable interface or Thread class in multithreading was you can return any value from the thread.
But this drawback was removed in Java 5.0 with Callable Interface and Future.
In the code below, Callable<Interger> in CallableExample, the thread will return 'Integer' and this Integer value can be retrieved using Future object as shown in CallableExampleTest.
1. Callable Implementation:
----->
import java.util.concurrent.Callable;
/**
*
* @author vinitpatwa
*/
public class CallableExample implements Callable<Integer> {
private String word;
public CallableExample(String word) {
this.word = word;
}
public Integer call() {
return getWord().length();
}
public String getWord() {
return word;
}
}
<-----
2. Testing the Callable implementation
----->
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/**
*
* @author vinitpatwa
*/
public class CallableExampleTest {
public static void main(String args[]) throws Exception{
ExecutorService pool=Executors.newFixedThreadPool(1);
List<Future<Integer>> set=new LinkedList<Future<Integer>>();
String[] strArray={"Texas", "California", "Ohio"};
for(String word:strArray){
Callable cal=new CallableExample(word);
Future<Integer> future=pool.submit(cal);
set.add(future);
}
for(Future<Integer> future:set){
System.out.println("Length of word is : "+future.get());
}
}
}
<-----
Thursday, September 2, 2010
Design Patterns Tutorial
1. Singleton Pattern
-------------------------------------
A Singleton is a class that can be instantiated only one time in a JVM per class loader. Repeated calls always returns the same instance. Ensures that a class has only one instance, and provide a global point of access. It can be an issue if singleton class gets loaded by multiple class loader or JVMs
An example of Singleton Pattern
public class OnlyOne{
private static OnlyOne one=new OnlyOne();
//private constructory
//This class can not be instantiated from outside and prevent subclassing
private OnlyOne(){}
public static OnlyOne getInstance(){
retrun one;
}
}
2. Factory Pattern
-------------------------------------
A factory method pattern is creational pattern. The creational patterns abstract the object instantiation process by hiding how the objects are created and make the system independent of the object creational process.
Factory pattern returns one of the several product subclasses. You should use a factory pattern, if you have a super class and number of subclasses, and based on some data provided, you have to return the object of one of the subclasses, But the calling code is unaware of the actual implementation.
Factory pattern reduces the coupling or the dependencies between calling code and the called object.
The abstract factory pattern is one level of abstraction higher than factory method pattern, which means it returns the factory classes.
3. FlyWeight Design Pattern:
-------------------------------------
When we create string objects String s1="A"; String s2="A".
It will check if it is already in the string pool, if it is there, then it will get it from there. Flyweight are like Shared objects and reusing them will have considerable performance gain
4. Decorater Design Pattern:
-------------------------------------
Decorator pattern attaches responsibilities to objects at runtime.
Java.io classes uses Decorator design pattern to construct different combination of behavior at runtime based on some basic classes.
File file=new File("C:/temp");
FileInputStream f=new FileInputStream(file);
BufferredInputStream output=new BufferredInputStream(f);
Decorator design pattern add or restrict functionality of decorator object before or after forwarding the request.
At runtime 'output' which is decorator objects forward the method calls to it's decorated object 'f'
5. Observer Pattern (publisher - subscriber design pattern)
-------------------------------------
(one publisher - one / multiple subscriber)
Intent of this design pattern is to define one to many dependency so that when one object(i.e. Publisher changes it's state, all it's dependents(i.e. all it's subscribers) are notified and updated successfully.
6. Reactor Design pattern
-------------------------------------
Unlike Observer pattern, Reactor design pattern handles multiple even sources (multiple publisher - one / multiple subscriber)
NIO(New I/O API) uses this, which demultiplexes events(separating single stream into multiple stream) and dispatches them to registered object handlers.
------------------------------
A Singleton is a class that can be instantiated only one time in a JVM per class loader. Repeated calls always returns the same instance. Ensures that a class has only one instance, and provide a global point of access. It can be an issue if singleton class gets loaded by multiple class loader or JVMs
An example of Singleton Pattern
public class OnlyOne{
private static OnlyOne one=new OnlyOne();
//private constructory
//This class can not be instantiated from outside and prevent subclassing
private OnlyOne(){}
public static OnlyOne getInstance(){
retrun one;
}
}
2. Factory Pattern
------------------------------
A factory method pattern is creational pattern. The creational patterns abstract the object instantiation process by hiding how the objects are created and make the system independent of the object creational process.
Factory pattern returns one of the several product subclasses. You should use a factory pattern, if you have a super class and number of subclasses, and based on some data provided, you have to return the object of one of the subclasses, But the calling code is unaware of the actual implementation.
Factory pattern reduces the coupling or the dependencies between calling code and the called object.
The abstract factory pattern is one level of abstraction higher than factory method pattern, which means it returns the factory classes.
3. FlyWeight Design Pattern:
------------------------------
When we create string objects String s1="A"; String s2="A".
It will check if it is already in the string pool, if it is there, then it will get it from there. Flyweight are like Shared objects and reusing them will have considerable performance gain
4. Decorater Design Pattern:
------------------------------
Decorator pattern attaches responsibilities to objects at runtime.
Java.io classes uses Decorator design pattern to construct different combination of behavior at runtime based on some basic classes.
File file=new File("C:/temp");
FileInputStream f=new FileInputStream(file);
BufferredInputStream output=new BufferredInputStream(f);
Decorator design pattern add or restrict functionality of decorator object before or after forwarding the request.
At runtime 'output' which is decorator objects forward the method calls to it's decorated object 'f'
5. Observer Pattern (publisher - subscriber design pattern)
------------------------------
(one publisher - one / multiple subscriber)
Intent of this design pattern is to define one to many dependency so that when one object(i.e. Publisher changes it's state, all it's dependents(i.e. all it's subscribers) are notified and updated successfully.
6. Reactor Design pattern
------------------------------
Unlike Observer pattern, Reactor design pattern handles multiple even sources (multiple publisher - one / multiple subscriber)
NIO(New I/O API) uses this, which demultiplexes events(separating single stream into multiple stream) and dispatches them to registered object handlers.
Friday, July 9, 2010
Using SQLite with SQLiteJDBC driver.
1. SQLite is serverless. With SQLiteJDBC driver, we can write programs to access SQLite using JAVA.
This tutorial will have step by step description about how to do it.
2. We will use Netbeans, but it will work in the same manner with eclipse too.
3. Download SQLiteJDBC driver jar, 'sqlitejdbc-v056.jar' from website: http://www.zentus.com/sqlitejdbc/
4. Create a java project named 'SQLite' in Netbeans.(You can give any name
5. Create a class called 'Test' in that project.
6. Add 'sqlitejdbc-v056.jar' in the class path of 'SQLite' project in Netbeans.
7. Paste following code in Test class
--->
import java.sql.*;
public class Test {
public static void main(String[] args) throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn =
DriverManager.getConnection("jdbc:sqlite:Vinit");
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists school;");
stat.executeUpdate("create table school (name, state);");
PreparedStatement prep = conn.prepareStatement(
"insert into school values (?, ?);");
prep.setString(1, "UTD");
prep.setString(2, "texas");
prep.addBatch();
prep.setString(1, "USC");
prep.setString(2, "california");
prep.addBatch();
prep.setString(1, "MIT");
prep.setString(2, "massachusetts");
prep.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
ResultSet rs = stat.executeQuery("select * from school;");
while (rs.next()) {
System.out.print("Name of School = " + rs.getString("name") + " ");
System.out.println("state = " + rs.getString("state"));
}
rs.close();
conn.close();
}
}
--->
8. Run the project as java application.
9. It will create database file by name 'Vinit' in the Netbeans 'SQLite' project folder.
10. Here is in above code, we are creating sqlite database 'Vinit'.
I hope it will be helpful.
source:
http://www.zentus.com/sqlitejdbc/
http://www.sqlite.org/download.html
This tutorial will have step by step description about how to do it.
2. We will use Netbeans, but it will work in the same manner with eclipse too.
3. Download SQLiteJDBC driver jar, 'sqlitejdbc-v056.jar' from website: http://www.zentus.com/sqlitejdbc/
4. Create a java project named 'SQLite' in Netbeans.(You can give any name
5. Create a class called 'Test' in that project.
6. Add 'sqlitejdbc-v056.jar' in the class path of 'SQLite' project in Netbeans.
7. Paste following code in Test class
--->
import java.sql.*;
public class Test {
public static void main(String[] args) throws Exception {
Class.forName("org.sqlite.JDBC");
Connection conn =
DriverManager.getConnection("jdbc:sqlite:Vinit");
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists school;");
stat.executeUpdate("create table school (name, state);");
PreparedStatement prep = conn.prepareStatement(
"insert into school values (?, ?);");
prep.setString(1, "UTD");
prep.setString(2, "texas");
prep.addBatch();
prep.setString(1, "USC");
prep.setString(2, "california");
prep.addBatch();
prep.setString(1, "MIT");
prep.setString(2, "massachusetts");
prep.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
ResultSet rs = stat.executeQuery("select * from school;");
while (rs.next()) {
System.out.print("Name of School = " + rs.getString("name") + " ");
System.out.println("state = " + rs.getString("state"));
}
rs.close();
conn.close();
}
}
--->
8. Run the project as java application.
9. It will create database file by name 'Vinit' in the Netbeans 'SQLite' project folder.
10. Here is in above code, we are creating sqlite database 'Vinit'.
I hope it will be helpful.
source:
http://www.zentus.com/sqlitejdbc/
http://www.sqlite.org/download.html
Thursday, May 6, 2010
How to run command on Karaf command prompt from other java program
I wanted to uninstall 'clock_3.0' bundle which is running in karaf. So I can do it by typing 'features:uninstall clock_3.0' command on karaf command prompt.
But Now I wanted to run this command from some other Java program.
We can do this by running following command:
Process ls_proc1;
ls_proc1 = Runtime.getRuntime().exec("cmd.exe /C java -jar C:\\apache-felix-karaf-1.2.0\\lib\\karaf-client.jar features:uninstall clock_3.0");
where apache-felix-karaf-1.2.0 is installed at C: on my computer.
We can even display the output of this command:
try {
BufferedReader br = new BufferedReader(new InputStreamReader(ls_in));
while ((ls_str1 = br.readLine()) != null) {
System.out.println(ls_str1);
}
} catch (IOException e1) {
e1.printStackTrace();
}
But Now I wanted to run this command from some other Java program.
We can do this by running following command:
Process ls_proc1;
ls_proc1 = Runtime.getRuntime().exec("cmd.exe /C java -jar C:\\apache-felix-karaf-1.2.0\\lib\\karaf-client.jar features:uninstall clock_3.0");
where apache-felix-karaf-1.2.0 is installed at C: on my computer.
We can even display the output of this command:
try {
BufferedReader br = new BufferedReader(new InputStreamReader(ls_in));
while ((ls_str1 = br.readLine()) != null) {
System.out.println(ls_str1);
}
} catch (IOException e1) {
e1.printStackTrace();
}
Subscribe to:
Posts (Atom)