Thursday, February 21, 2013

Java Enterprise Architecture Requirements: S.P.A.M.M.E.R.S


Section 2 (Common Architectures) of Java EE 5 Enterprise Architect Certified Master Exam has this: Explain the advantages and disadvantages of two-tier/three-tier/multi-tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security. That's a lot of architectural requirements and the initial acronym is SMRAEPMS, which does't look easy to remember. Rearranging, we have:

S - scalability
P - performance
A - availability
M - maintainability
M - manageability
E - extensibility
R - reliability
S - security

Here's some spam:


Wednesday, February 13, 2013

My Java Development Tools for a New Computer


- Dropbox
- putty, pageant, puttygen
- winscp
- MySQL
- MySQL Workbench
- Java
- Eclipse
- Google Talk
- Skype

Editors:
- notepad++
- textpad
- HxD
Grep:
- dnGrep
- Windows Grep
Diff:
- Diffmerge - main
- Winmerge
- KDiff3
Zip:
- Winrar
- Winzip
- 7zip
Others:
- GnuWin32
- Chrome/Safari/Opera/Firefox
- Free Download Manager
- Filezilla FTP Client
- RealVNC
- Antivirus

When to use multithreading?

Based on my experiences:

1) When multiple tasks need to be running at the same time.

We created a mobile game where we have individual threads for the music, the graphics update, and for reading the input.

2) When it is beneficial for tasks to be running at the same time.

I needed to communicate with a web service that returns a very large amount of information. There is also a limit to the amount of information that it returns. This can be done serially, requesting chunks of information at a time. Multiple requests can also be done at the same time, so I opted for multithreading, significantly reducing the amount of time to retrieve all the needed information.