Using java.util.Properties in Servlet to save User Preferences
import java.util.Properties;
String propertiesFileName = "my_properties.txt";
SAVE PREFERENCES:
Properties unsavedProperties = new Properties();
unsavedProperties.setProperty("my_name", "Uki");
OutputStream propOut = new FileOutputStream(new File(propertiesFileName));
unsavedProperties.store(propOut, "My Server properties");
LATER READ THE SAVED PREFERENCES:
InputStream inStream = new FileInputStream(propertiesFileName);
Properties savedPropeties = new Properties();
savedPropeties.load(inStream);
String myName = savedPropeties.getProperty("my_name");
Java Servlet: starting a thread that always runs
- when Java Servlet starts it reads web.xml
- add listener implementation class to your web.xml
<display-name>your_servlet_namedisplay-name>
<listener>
<listener-class>com.your_package_name.TimedServletCallerlistener-class>
listener>
- we will use ServletContextListener interface
- create a NEW thread (Loop) inside contextInitialized(), if you did Thread.sleep without new thread the whole Servlet would pause and container would fail to start it after 45 seconds or so
public class TimedServletCaller implements ServletContextListener
{
private static int sleepMinutes = 1;
class Loop extends Thread
{
public void run()
{
while (true)
{
Log.e("Loop is running!");
takeShortNap();
// do stuff here
}
}
}
@Override
public void contextInitialized(ServletContextEvent arg0)
{
Log.e("***** TimedServletCaller.contextInitialized()");
// execute();
Thread thread = new Loop();
thread.start();
}
private static void takeShortNap()
{
Log.i(" Pausing for " + sleepMinutes + " minute(s).");
try
{
Thread.sleep(sleepMinutes * 60 * 1000);
} catch (InterruptedException e)
{
Log.e(e.getMessage());
}
}
- restart your server (Tomcat) now you can use your Servlet, but also the Loop keeps running and doing useful things like database updates, etc.
HD connector speed
When you are buying the external hard drive storage, I would recommend looking for eSATA connectors, backing up, or copying videos via USB is very slow.
USB 1.1 – 15 Mbps
FireWire (1394a) – 400 Mbps
USB 2.0 – 480 Mbps
FireWire 800 (1394b) – 800 Mpbs
SATA 1.5 – 1.5 Gbps
SATA 3.0 – 3.0 Gbps
near future:
USB 3.0 - 5Gbps
eSATA version of SATA 6G - 6.0Gb/s
USB 1.1 – 15 Mbps
FireWire (1394a) – 400 Mbps
USB 2.0 – 480 Mbps
FireWire 800 (1394b) – 800 Mpbs
SATA 1.5 – 1.5 Gbps
SATA 3.0 – 3.0 Gbps
near future:
USB 3.0 - 5Gbps
eSATA version of SATA 6G - 6.0Gb/s
Google Documents - please show this to your boss!
We have been using Google docs and Google sites for collaboration for couple of years now, but there are still people who have not heard about the concept. Here is a video to help.
Labels:
by Uki D. Lucas,
Google
Using HTML panel
I needed to create a subscript text with a link that open up a new popup with different content. Since HorizontalPanel does not work, I used HTMLPanel and use the table tag, which contained element id as shown below.
Click on below image to read the code: CSS
CSS code:
Here is how it looks:
Click on below image to read the code: CSS
CSS code:
.subscript {
font-size: xx-small;
vertical-align: bottom;
}
.hyperlink_subscript {
text-decoration: none;
cursor: pointer;
color: #0099FF;
font-size: xx-small;
font-weight: normal;
}
Labels:
by Zainab Z. Aziz,
GWT,
HTML
Apache Tomcat: starting, stopping and killing processes
STOPPING:
/opt/apache/apache-tomcat-6.0.26/webapps $ ../bin/shutdown.sh
Using CATALINA_BASE: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_HOME: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/apache/apache-tomcat-6.0.26/temp
Using JRE_HOME: /Library/Java/Home/
Using CLASSPATH: /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar
Mar 31, 2010 11:13:58 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
at java.net.Socket.(Socket.java:372)
at java.net.Socket.(Socket.java:186)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:408)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
CHECKING IF STILL RUNNING:
/opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3086 57.9 6.8 1506508 143136 s000 U 11:12AM 0:22.70 /Library/Java/Home//bin/java -Djava.util.logging.config.file=/opt/apache/apache-tomcat-6.0.26/conf/logging.properties -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache/apache-tomcat-6.0.26/endorsed -classpath /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar -Dcatalina.base=/opt/apache/apache-tomcat-6.0.26 -Dcatalina.home=/opt/apache/apache-tomcat-6.0.26 -Djava.io.tmpdir=/opt/apache/apache-tomcat-6.0.26/temp org.apache.catalina.startup.Bootstrap start
uki 3120 0.2 0.0 590540 204 s000 U+ 11:14AM 0:00.00 grep tomcat
KILL A PROCESS:
/opt/apache/apache-tomcat-6.0.26/webapps $ kill 3086
CHECKING IF STILL RUNNING:
/opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3122 0.9 0.0 600020 472 s000 R+ 11:14AM 0:00.00 grep tomcat
STARTING:
ill-lt20220@(Wed Mar 31 11:14:27) /opt/apache/apache-tomcat-6.0.26/webapps $ ../bin/startup.sh
Using CATALINA_BASE: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_HOME: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/apache/apache-tomcat-6.0.26/temp
Using JRE_HOME: /Library/Java/Home/
Using CLASSPATH: /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar
ill-lt20220@(Wed Mar 31 11:14:33) /opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3132 49.5 3.6 1504832 74680 s000 U 11:14AM 0:06.14 /Library/Java/Home//bin/java -Djava.util.logging.config.file=/opt/apache/apache-tomcat-6.0.26/conf/logging.properties -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache/apache-tomcat-6.0.26/endorsed -classpath /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar -Dcatalina.base=/opt/apache/apache-tomcat-6.0.26 -Dcatalina.home=/opt/apache/apache-tomcat-6.0.26 -Djava.io.tmpdir=/opt/apache/apache-tomcat-6.0.26/temp org.apache.catalina.startup.Bootstrap start
uki 3134 0.0 0.0 590736 308 s000 R+ 11:14AM 0:00.00 grep tomcat
ill-lt20220@(Wed Mar 31 11:14:41) /opt/apache/apache-tomcat-6.0.26/webapps $
CHECKING THE LOG:
/opt/apache/apache-tomcat-6.0.26/webapps $ tail -f ../logs/catalina.out
Mar 31, 2010 11:15:12 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory work
Mar 31, 2010 11:15:12 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 31, 2010 11:15:12 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 31, 2010 11:15:12 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/88 config=null
Mar 31, 2010 11:15:12 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 36930 ms
/opt/apache/apache-tomcat-6.0.26/webapps $ ../bin/shutdown.sh
Using CATALINA_BASE: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_HOME: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/apache/apache-tomcat-6.0.26/temp
Using JRE_HOME: /Library/Java/Home/
Using CLASSPATH: /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar
Mar 31, 2010 11:13:58 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
at java.net.Socket.
at java.net.Socket.
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:408)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)
CHECKING IF STILL RUNNING:
/opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3086 57.9 6.8 1506508 143136 s000 U 11:12AM 0:22.70 /Library/Java/Home//bin/java -Djava.util.logging.config.file=/opt/apache/apache-tomcat-6.0.26/conf/logging.properties -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache/apache-tomcat-6.0.26/endorsed -classpath /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar -Dcatalina.base=/opt/apache/apache-tomcat-6.0.26 -Dcatalina.home=/opt/apache/apache-tomcat-6.0.26 -Djava.io.tmpdir=/opt/apache/apache-tomcat-6.0.26/temp org.apache.catalina.startup.Bootstrap start
uki 3120 0.2 0.0 590540 204 s000 U+ 11:14AM 0:00.00 grep tomcat
KILL A PROCESS:
/opt/apache/apache-tomcat-6.0.26/webapps $ kill 3086
CHECKING IF STILL RUNNING:
/opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3122 0.9 0.0 600020 472 s000 R+ 11:14AM 0:00.00 grep tomcat
STARTING:
ill-lt20220@(Wed Mar 31 11:14:27) /opt/apache/apache-tomcat-6.0.26/webapps $ ../bin/startup.sh
Using CATALINA_BASE: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_HOME: /opt/apache/apache-tomcat-6.0.26
Using CATALINA_TMPDIR: /opt/apache/apache-tomcat-6.0.26/temp
Using JRE_HOME: /Library/Java/Home/
Using CLASSPATH: /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar
ill-lt20220@(Wed Mar 31 11:14:33) /opt/apache/apache-tomcat-6.0.26/webapps $ ps aux | grep tomcat
uki 3132 49.5 3.6 1504832 74680 s000 U 11:14AM 0:06.14 /Library/Java/Home//bin/java -Djava.util.logging.config.file=/opt/apache/apache-tomcat-6.0.26/conf/logging.properties -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache/apache-tomcat-6.0.26/endorsed -classpath /opt/apache/apache-tomcat-6.0.26/bin/bootstrap.jar -Dcatalina.base=/opt/apache/apache-tomcat-6.0.26 -Dcatalina.home=/opt/apache/apache-tomcat-6.0.26 -Djava.io.tmpdir=/opt/apache/apache-tomcat-6.0.26/temp org.apache.catalina.startup.Bootstrap start
uki 3134 0.0 0.0 590736 308 s000 R+ 11:14AM 0:00.00 grep tomcat
ill-lt20220@(Wed Mar 31 11:14:41) /opt/apache/apache-tomcat-6.0.26/webapps $
CHECKING THE LOG:
/opt/apache/apache-tomcat-6.0.26/webapps $ tail -f ../logs/catalina.out
Mar 31, 2010 11:15:12 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory work
Mar 31, 2010 11:15:12 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 31, 2010 11:15:12 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 31, 2010 11:15:12 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/88 config=null
Mar 31, 2010 11:15:12 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 36930 ms
Mac: location of hosts file
The hosts file on Mac is located at: /private/etc/hosts
The easiest way to modify it is using pico, you need to have WRITE permissions to do so.
~ $ cd /private/etc/
/private/etc $ pico hosts
The easiest way to modify it is using pico, you need to have WRITE permissions to do so.
~ $ cd /private/etc/
/private/etc $ pico hosts
Eclipse: show line numbers
This is simple stuff, but it is frustrating when you want to show line numbers and cannot find the setting:
On Mac:
Labels:
by Uki D. Lucas,
Eclipse


