If I were Bill Gates...
... Windows will have the same look and feel.
Why?
... Because, Bill Gates and I have same taste!
Note:
I wrote this for nothing. I just get frustrated with our artists 'At Work'. He has a mediocre skills. I don't know why, it's either they don't have a good taste for an art or they just doesn't care. We have this so called 'artist' but we have the same skills. I can easily do what he did and I'm a developer. I want something better if not the best. I want him to come up with a good concept, something I can't do using gradient. This is a challenge for the artist!
Valadorf - I'm not pertaining to you ;-)
Monday, December 18, 2006
Monday, December 11, 2006
Dedicated Server at my Garage!
I am currently renting a dedicated server for 6 months. The price is ridiculous. My server cost $80/month and after the 6 months contract, they will increase it by $50. Yeah, it's correct 50. So I'm expecting to pay $130 after that.
I need to setup a server in my garage before my contract expires. This is cheaper and practical. First, this site is only a hobby. I don't have sponsors yet. I did this because I want to learn and to beef up my programming skills. I'm having fun and I want to make other people smile with my programs ;-)
I need to setup a server in my garage before my contract expires. This is cheaper and practical. First, this site is only a hobby. I don't have sponsors yet. I did this because I want to learn and to beef up my programming skills. I'm having fun and I want to make other people smile with my programs ;-)
Friday, December 01, 2006
Web Joggle Improvements!
I played Web Joggle and noticed that it's a bit selfish in giving a good words. I can't score past 100+ so I'm frustrated. I noticed that Boggle and other boggle clones like Word Hunt and WEBoggle is very kind when it comes to board generation.
So I spent some time studying the Vowel and Consonant letters distribution in my code and Viola! I found the perfect combination, a balanced board. This will allow players to form more words and get high scores.
Now, my Web Joggle is FUN, FUN, FUN to play!!!
Try and play it here -> http://www.clownfishgames.com
So I spent some time studying the Vowel and Consonant letters distribution in my code and Viola! I found the perfect combination, a balanced board. This will allow players to form more words and get high scores.
Now, my Web Joggle is FUN, FUN, FUN to play!!!
Try and play it here -> http://www.clownfishgames.com
Saturday, November 11, 2006
Multiplayer Boggle using Flash MX - WEBoggle!
I'm working on multiplayer version of Boggle game using Flash. This will allow players to play at the same time in real time.
For Boggle lovers, this is something to watch out for. Keep visiting my site for updates and look for WEBoggle ;-)
Actually, to avoid having issues I called my game Web Joggle!
For Boggle lovers, this is something to watch out for. Keep visiting my site for updates and look for WEBoggle ;-)
Actually, to avoid having issues I called my game Web Joggle!
Wednesday, November 08, 2006
Clownfish Games goin' multiplayer!
After spending few months of research and development, I finally finish the basic multiplayer engine for my website. Now, the new Clownfish Games website is up and running!
What's New?
- Added new chat panel so you can chat while playing.
- Disabled guest score posting to be fair with the registered players.
- Monthly featured players based on the highest score for the month.
- Monthly Top 50 Players to give chance to other players.
And more surprises and cool features coming soon...
What's New?
- Added new chat panel so you can chat while playing.
- Disabled guest score posting to be fair with the registered players.
- Monthly featured players based on the highest score for the month.
- Monthly Top 50 Players to give chance to other players.
And more surprises and cool features coming soon...
Friday, November 03, 2006
JDBC/MySQL Communications link failure - SOLUTION
While working on my Java Game Server, I came across a frustrating error. The JDBC and MySQL connection will fail after 8hrs of being idle. Meaning after 8hrs, any succeeding connection request will throw an exception:
com.mysql.jdbc.CommunicationsException
Communications link failure due to underlying exception
I've been figuring out what's wrong so I tried searching the web for a work around or solution. Below are the possible solutions:
1. Increase the MySQL wait_timeout value (in seconds) to a ridiculously big value (Example: 1 year = 31,536,000 secs) in \etc\ my.cnf config.
2. Use JDBC connection polling. There are lots of free code availabe on the net. Go google ;-)
http://pdf.coreservlets.com/CSAJSP-Chapter18.pdf
3. My simple solution is to register the driver whenever you need to get the connection and unregister after using it. You also need to create a thread to keep the connection alive every hour.
I believe it will be clearer if I'll post my code here:
class ConnectionKeepAlive extends Thread
{
private Database m_database;
ConnectionKeepAlive(Database database)
{
this.m_database = database;
}
public void run()
{
while(true)
{
try
{
sleep(Constants.TIME_ONE_HOUR);
}
catch(InterruptedException ie) {}
m_database.connectionKeepAlive();
}
}
}
//==============
public class Database{
ConnectionKeepAlive m_keepAlive = null;
ConnectionPool m_connectionPool = null;
Database()
{
try
{ m_connectionPool = new ConnectionPool(Constants.JDBC_MYSQL_DRIVER, Constants.JDBC_MYSQL_URL,
Constants.JDBC_MYSQL_USERNAME,
Constants.JDBC_MYSQL_PASSWORD,
Constants.JDBC_MIN_POOL_SIZE,
Constants.JDBC_MAX_POOL_SIZE,
true);
}
catch(Exception e)
{
System.exit(1);
}
m_keepAlive = new ConnectionKeepAlive(this);
m_keepAlive.start();
}
public synchronized Connection getConnection() throws SQLException
{
return m_connectionPool.getConnection();
}
public synchronized void connectionKeepAlive()
{
Statement statement = null;
Connection conn = null;
String query = "";
try
{
conn = getConnection();
statement = conn.createStatement();
query = "SELECT CURRENT_DATE()";
}
catch(Exception e) { }
finally
{
try
{
if (statement != null)
{
statement.close();
}
if (conn != null)
{
m_connectionPool.free(conn);
conn.close();
}
}
catch(Exception e) { }
}
}
}
Disclaimer: Use at your own RISK. I am NOT responsible for any damage that this code will cause in your PC. Good luck ;-)
com.mysql.jdbc.CommunicationsException
Communications link failure due to underlying exception
I've been figuring out what's wrong so I tried searching the web for a work around or solution. Below are the possible solutions:
1. Increase the MySQL wait_timeout value (in seconds) to a ridiculously big value (Example: 1 year = 31,536,000 secs) in \etc\ my.cnf config.
2. Use JDBC connection polling. There are lots of free code availabe on the net. Go google ;-)
http://pdf.coreservlets.com/CSAJSP-Chapter18.pdf
3. My simple solution is to register the driver whenever you need to get the connection and unregister after using it. You also need to create a thread to keep the connection alive every hour.
I believe it will be clearer if I'll post my code here:
class ConnectionKeepAlive extends Thread
{
private Database m_database;
ConnectionKeepAlive(Database database)
{
this.m_database = database;
}
public void run()
{
while(true)
{
try
{
sleep(Constants.TIME_ONE_HOUR);
}
catch(InterruptedException ie) {}
m_database.connectionKeepAlive();
}
}
}
//==============
public class Database{
ConnectionKeepAlive m_keepAlive = null;
ConnectionPool m_connectionPool = null;
Database()
{
try
{ m_connectionPool = new ConnectionPool(Constants.JDBC_MYSQL_DRIVER, Constants.JDBC_MYSQL_URL,
Constants.JDBC_MYSQL_USERNAME,
Constants.JDBC_MYSQL_PASSWORD,
Constants.JDBC_MIN_POOL_SIZE,
Constants.JDBC_MAX_POOL_SIZE,
true);
}
catch(Exception e)
{
System.exit(1);
}
m_keepAlive = new ConnectionKeepAlive(this);
m_keepAlive.start();
}
public synchronized Connection getConnection() throws SQLException
{
return m_connectionPool.getConnection();
}
public synchronized void connectionKeepAlive()
{
Statement statement = null;
Connection conn = null;
String query = "";
try
{
conn = getConnection();
statement = conn.createStatement();
query = "SELECT CURRENT_DATE()";
}
catch(Exception e) { }
finally
{
try
{
if (statement != null)
{
statement.close();
}
if (conn != null)
{
m_connectionPool.free(conn);
conn.close();
}
}
catch(Exception e) { }
}
}
}
Disclaimer: Use at your own RISK. I am NOT responsible for any damage that this code will cause in your PC. Good luck ;-)
Wednesday, November 01, 2006
Now it's official!
I took me a while to think of a good name for my mascot. And while typing this, I realize that I should give him a very simple name.
Finally, it's official, I'm going to call him... Mr. Clownfish!
Finally, it's official, I'm going to call him... Mr. Clownfish!
So what is Clownfish Games?
Clownfish Games is a 'personally owned' website. It is a place to play free online multiplayer games, chat and make new friends. Apart from having simple but elegant, fast-loading games, it has a remarkable key feature: 100% FREE TO PLAY!
http://www.clownfishgames.com
This domain name was inpired by Pixar's movie - Nemo! I want something cute and fun mascot on my website so I came up with a 'clownfish' idea. My friend created the clownfish mascot using 3DSmax, Photoshop and Flash and it turned out great.
http://www.clownfishgames.com
This domain name was inpired by Pixar's movie - Nemo! I want something cute and fun mascot on my website so I came up with a 'clownfish' idea. My friend created the clownfish mascot using 3DSmax, Photoshop and Flash and it turned out great.
Monday, October 30, 2006
Welcome to Clownfish Games Blog!
I'm so glad that blog became popular. With this I can get rid of the traditional "What's New" link or section in my site and replace it with a Blog instead. It's easier to maintain and at the same time, other fellow bloggers will get a chance to read it.
I intend to post some of my personal blogs too. It's hard to maintain multiple blogs so just skip any blogs that doesn't interest you ;-)
And now, my adventure begins...
I intend to post some of my personal blogs too. It's hard to maintain multiple blogs so just skip any blogs that doesn't interest you ;-)
And now, my adventure begins...
Subscribe to:
Posts (Atom)
