Pages

Friday, December 17, 2010

Remove MySql database on MAC OS X platform

How to completely remove /or delete all the files of Mysql  on your Mac operating system, Follow the steps and command below. In my case I am using Snowleopard version 10.6.5.

1. Backup all the your database objects using mysqldump command.
2. sudo rm /usr/local/mysql
3. sudo rm -rf /usr/local/mysql*
4. sudo rm -rf /Library/StartupItems/MySQLCOM
5. sudo rm -rf /Library/PreferencePanes/MySql*
6. edit /etc/hostconfig, look for the line something like "MYSQLCOM=-YES-" and remove it
7. rm -rf ~/Library/PreferencePanes/MySql*
8. sudo rm -rf /Library/Receipts/mysql*
9. sudo rm -rf /Library/Receipts/MySQL*

Tuesday, December 14, 2010

BPI Globe broadband Tattoo

Oopps, my ordered unlimited BPI 24/7 globe broadband package just arrived at my office today, get excited to open it and see the Philippine flag design, Im not after w/ the internet connection, I already have wired connection in my home, just wanted to have the limited edition of its design. :) , anyway I follow the instruction and install the driver on my sweet MacBook Pro 10.6.5. After the installation, then I tried to connect using the device, unfortunately the modem failed to  connect and what worst is there is no error on the globe broadband application being return.. no troubleshoot section on the user manual.  so guessing time, haha! , So I tried to check the network settings on my Mac and I found from that there is a new modem on the list, HUAWE mobile modem and check it settings, I discover  that the globe installer wizard failed to set the Telephone number for the modem to dial. so to fix I set the Telephone number field to *99***1#.

 As I surf and download huge files, I am satisfied w/ its speed, I am getting a download speed of 110kb/s not bad for a wireless internet connection. cool huh! :) . But what I liked the most is the design, cool!. 

Monday, December 13, 2010

DB2 Remove Special Character (UDF)

Db2 Database comes w/ the vast collection of encoding that some case our application(front-end) is unable to render. According to unicode.org , Java default encoding is UTF-16. The user define function(UDF) below can be used to filter the special character upon retrieving the column value.

CREATE FUNCTION "Schema"."REMOVESPECIALCHAR" ( "PARAM_STR" VARCHAR(1024) )
  RETURNS VARCHAR(1024)
  SPECIFIC "REMOVESPECIALCHAR"
  LANGUAGE SQL
  DETERMINISTIC
  NO EXTERNAL ACTION
  READS SQL DATA
  CALLED ON NULL INPUT
  INHERIT SPECIAL REGISTERS
begin atomic
    declare results varchar(1024) default '';
    declare validchar varchar(256) default 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()-=+/\{}[];:.,<>?_| abcdefghijklmnopqrstuvwxyz~`';
    declare ch varchar(16);
    declare counter smallint default 0;
   
    while counter < CHARACTER_LENGTH(param_str,CODEUNITS16) do
        set counter =  counter  +  1;
                set ch = SUBSTRING(param_str,counter,1,CODEUNITS16);
                set results = results concat replace(ch,TRIM(TRANSLATE(ch,'',validchar)),' ');
  end while;
    return     case trim(results) when '' then null else trim(results) end;
end;


- you can also enhance the declaration of validchar to fetch list of valid character on your source table.

Sunday, December 12, 2010

Reverting Facebook old profile layout

The site made their major page design enhancement and was incrementally deployed by letting the user choose to upgrade to new version. At first look its seems cool having lots of pics on the wall. But the longer you use the site its kinda troublesome always looking to the same thumbnails and a lots of it on your wall. Some users, including me wants to revert back the old profile wall layout but Facebook announce that if you upgrade to new profile there is now way to return to the old one. Yes there is no option or access on the Facebook settings but then theres a cool trick how to return the old Facebook profile by De-activating your account for about 10-15 minutes and activate it again.


How to deactivate your Facebook account 

1. Log in to your Facebook account, and click on "Account " in the top right corner.
2. Then click to the "Account Setting".
3. Scroll to the very bottom of the page, and click on the deactivation link.
4. Confirm your deactivation. Make sure to give a reason since it's required like "This is temporary. I'll be back."
5.Then hit "Confirm".

Note: There is no harm on De-activating you account since you can always Re-activate it by logging-in to your account. It automatically re-activate the moment you log-in

Friday, December 10, 2010

DB2 Scripting Environment


By default DB2 installer comes w/ the client tools. It has Command Line Tools, General Administration Tools , Monitoring Tools and etc. Since I am new to DB2 database, I still need to explore the default tools comes from the box. Though the tools can do the job, I find it very unproductive, I mean creation of SQL /or SQL PL is pain in the ass. No feature that most of the modern Integration Development Environment(IDE) built such as Auto-Complete, SQL formatting, etc.  and the return error seems to be low level that sometimes we need to explore to the different forum in order to understand what was the problem cause, very time consuming. I decided to explore any open source IDE for DB2 Scripting. I was a heavy Oracle database user before and I was using TOAD for Oracle to do my scripting and database comunication, So I search if there such thing as TOAD for DB2 and luckily it has in deed an IDE for DB2 databases, and the good thing is, it has a freeware version . :)  I start using the IDE, it makes me comfortable in SQL PL scripting.

And heres a little advice if your new to DB2 or Oracle database , Using such IDE it helps boost your learning and understanding  on the database objects and its  architecture. 

Check out the Download link > http://toadworld.com/Freeware/ToadforDB2Freeware/tabid/560/Default.aspx

Designing a Programming Language

Last night after my work done. I check the infoq to see whats new technology out there and found this panel conversation of known programmer of our era regarding on programming language for the next generation. It was interesting listening their different opinion and experience on development, how they started and how they evolve as a pro programmer. I made a research to all the language that they are talking about, some are very strange to me and some are familiar. At the end of the talks, and to conclude they are just talking and recommending the assembly language for a beginner to start w/. lol! :) . I was thinking how about I will try to design and create my own programming language since I am familiar w/ the Assembly language and to be true I am having fun playing w/ close to machine language. So I'm thinking how do I start??... this gonna be a tough and tons of work to do, and then I begin my research and come across compilation of question below. I think I will start it from here..

- What need are you trying to fill? Don't fall into the trap of "a
scripting language", because they always turn into general-purpose
languages.

- What's the metaphor? Even though you might not be trying to build a
"pure" language, it's worth having a model for the core language,
such as "imperative, block-structured" (C), "object oriented"
(Smalltalk), "generic object orientation" (Lisp), "functional" (ML),
"lazy" (Haskell), "logic" (Prolog), "production system" (OPS5), etc.
These different core models influence the "natural" styles of program
development in different languages even if the set of available
facilities is similar. They also help define which late-arriving
features will "fit" and which will be warts.
[Jerry Jackson]

- How many programming paradigms does your language support? How tightly
are they integrated? Which other paradigms can you integrate with the
built-in facilities? How natural is the syntax of user-defined
extensions? Many problems are much better suited to some non-standard
programming model than to the usual object-oriented/functional
approaches. For example, constraint languages allow a very concise
description (and efficient solution) of many optimization problems.

-Dylan supports functional and object-oriented programming in a tightly
integrated manner, but it offers no support for non-deterministic
programming, constraint-solving, etc., and not much support to add them
to the language. If you have first-class continuations in the language
you can add one additional programming model that requires non-standard
control flow, but, in general, different extensions based on call/cc
don't work together.
[Matthias Holzl]

- Is high performance an issue? This says something about whether you
want to implement an interpreted, a VM-based, or a natively compiled
language.

- Is high programmer productivity an issue? How important is this with
respect to performance? This decision can affect how you store
values and do function calling.

- How portable across platforms do you want the language to be? This
will relates to whether you want to compile to a VM or to machine
code, and to how well you support native libraries. It will also
affect library design for such things as graphics and GUI tools.
[Anton van Straaten]

- Do you want easily distributed executable code, i.e., do you you want
to allow code to be easily transmitted across networks and run
elsewhere, as Java does? Do you want to provide built-in support for
remote execution, like RPC/CORBA/RMI? If you are writing for a VM,
this can simplify some of these issue considerably.
[Anton van Straaten]

- What about debuggability? If you plan to compile it, you need to
think about how to store debugging information.

- How do you want to bootstrap it? This, too, says something about
what kind of back-end you might build. Perhaps you build a tiny VM
in C, then compile to C. This way, you avoid fun but time-consuming
work on code generation for modern super-scalar hardware, register
allocation, etc.

- Do you want to be able to catch type errors early or late? That says
something about your type system (whether you require that all types
be statically declared at compile-time, or allow them to be dynamic,
or have a hybrid scheme like Dylan does). In addition to the obvious
effect on performance, this decision will affects your memory model
in that completely static systems do not require tags or boxing.

- Will variables be associated with explicit type declarations?
- If yes, will these type declarations be required or optional?
- If optional, will the language use inferencing to supply unspecified
types, or simply use an all-purpose type (like Object or 'any')?
[Anton van Straaten]

- Will the language have any run-time type discrimination/checking at
all, or will types be completely statically determined? Some
languages considered statically typed still do some run-time checking,
such as Java.
[Anton van Straaten]

- Will any type checking happen at compile-time? Some languages with
explicit type declarations don't always check types at compile-time,
such as old Visual Basic.
[Anton van Straaten]

- If you allow type declarations, you will want to think about whether
you want parameterized types. If you go whole hog with, say, F-bounded
polymorphism, you can get performance *and* type safety *and* ease of
use, but it's hard to get this exactly right.

- What about namespaces? Do you want to have a simple scheme as in
Java, where classes, namespaces, and files are roughly equivalent?
Lisp-style packages? Dylan-style modules and libraries? Within a
single first-class namespace, how many second-class namespaces are
there? Java has 7 or 8: class names, function names, local variable
names, slot names, etc. Common Lisp has at least 3 (function,
variable, and class names). Dylan and Scheme have one, which greatly
simplifies things at a small loss of generality which can usually be
worked around with name conventions.

- What about encapsulation? Do you want to do information-hiding on a
per-class basis as in C++ and Java, or on a "module" basis as in Dylan?

- Is your language a functional language (that is, without side-effects)?
If so, is it an almost-functional language or a true pure functional
language? Or is there a functional core with some sort of machinery
for isolating side-effects, like monads do in Haskell?

- What kind of evaluation semantics does the language have? Eager as
in most languages, or lazy as in Haskell?

- Is your language purely lexical or do you offer dynamic variables (or,
more generally, access to the dynamic environment) as well? Dynamic
binding allows you to introduce local state for the duration of a
computation without side effects and without adding additional
parameters.
[Matthias Holzl]

- Are there different semantics for "pointer-ish" and "non-pointer-ish"
values, like in C? Or is everything a first-class object reference,
like in Lisp? Having multiple ways of referencing values can make the
user mode much more complicated. On the other hand, making everything
be object references can require boxing and/or tagging schemes that
make your compiler and FFI more complex.

- How do you want to pass arguments to functions? By name as in Algol?
By value or by reference as in C? By object reference like Lisp does?
Is there more than one convention in the language?

- Do you want first-class functions? What about lexical closures?
First-class continuations? The answer to those questions will tell
you things about heap- and stack-allocation, and will also tell you
how important it might be to do a continuation-based compiler. It
also tells you how hard your compiler has to work to avoid consing
environments unnecessarily. Lots of sophisticated language designers
go with simple closures and avoid full continuations, because
full-scale environment capture is hard to do well.

- Does your language have an unwind-protect like facility? When you
design a new language it is tempting to include call/cc because it
allows you to do define many common (and uncommon) control structures.
On the other hand you want to have a facility that allows you to
reliably relinquish resources after you are done. If you simply try to
combine call/cc and unwind-protect, you immediately get the
"impenetrable shield vs. unstoppable force" problem in your language.
Possible solutions include: no call/cc, weakened unwind-protect,
different semantics for call/cc.
[Matthias Holzl]

- How do you handle conditions/errors? Return codes or signalling? Do
you have an unwinding-only model like C++/Java or do you allow restarts
like Dylan/CL? If you do the latter do you separate conditions and
restarts like Common Lisp or do unify them like Dylan? These questions
are important, because every programming language has to deal with error
conditions, and in many cases the unwinding model is used simply because
the language designer is not aware of any other possibilities.
[Matthias Holzl]

- Do you want the language to be "object-oriented" at all, given a
broad definition of OO that includes the spectrum from single
inheritance single receiver languages as in Java to multiple
inheritance multiple receiver languages as in CLOS? Do you want
to provide genericity through some sort of template scheme?

Here is how Jonathan Rees has characterized the very fuzzy term "OO".
1. Encapsulation -- the ability to hide the implementation of a type
2. Protection -- the inability of the client of a type to detect its
implementation, guaranteeing that any changes to an implementation
that preserve the behavior of the interface will not break any
clients. This also gives some measure of "security", because things
like passwords can't leak out.
3. Ad hoc polymorphism -- functions and data structures with parameters
that can take on values of many different types.
4. Parametric polymorphism -- functions and data structures that
parameterize over arbitrary values, such as "a list of anything"). ML
and Lisp both have this. Java doesn't quite because of its non-Object
primitive types.
5. Everything is an object -- all values are objects. True in Dylan, but
not in Java because of its primitive types.
6. "All you can do is send a message" (AYCDISAM) = Actors model -- there
is no direct manipulation of objects, only communication with (or
invocation of) them. The presence of fields in Java violates this.
7. Specification inheritance = subtyping -- there are distinct types
known to the language with the property that a value of one type is as
good as a value of another for the purposes of type correctness. An
example is Java interface inheritance.
8. Implementation inheritance/reuse -- having written one pile of code, a
similar pile (such as a superset) can be generated in a controlled
manner, that is the code doesn't have to be copied and edited. A
limited and peculiar kind of abstraction. (E.g. Java class
inheritance.)
9. Sum-of-product-of-function pattern -- objects are, in effect,
restricted to be functions that take as first argument a distinguished
method key argument that is drawn from a finite set of simple names.
Some people say Lisp is OO, meaning {3,4,5,7}. Some people say Java is
OO, meaning {1,2,3,7,8,9}. E is supposed to be more OO than Java
because it has {1,2,3,4,5,7,9} and almost has 6; 8 (subclassing) is seen
as antagonistic to E's goals and not necessary for OO. The conventional
Simula 67-like pattern of class and instance will get you {1,3,7,9},
which many people take as a definition for OO.
[Jonathan Rees]

- If the language is object-oriented, do you want it to be class-based
or prototype-based?
[Steve Dekorte]

- If you've got an object system, do you want it to have first-class
objects that exist in the run-time? Should the object system extend
to include all the way to the primitive types, or do you want to
special-case those like Java does? Do you want a Smalltalk/Java-style
single receiver object orientation, or a CLOS-style multi-method
generic function dispatch? If the former, do you need some sort of
static overloading like C++ has? If the latter and performance is
important, do you need some sort of Dylan-style "sealing" so that you
can do some compile-time optimizations? Do you want single
inheritance, single inheritance with interfaces, multiple
inheritance, or a hybrid single inheritance with mixins? If you've
got a more static type system, you'll need to deal with casts. Do
you additionally want auto-conversion?

- If you've got an object system, how much of a meta-object system do
you want to expose? Do you want it to be purely reflective, or more
than that? In Dylan, we separated 'make' from 'initialize', which
was a good idea, but do you also want to separate out 'allocate', so
that you have control over where an object is created, e.g., in a
"persistent memory" pool that might be back-ended by a database?


- Do you need hairy CLOS-style method combination, or is a simpler
style like we did in Dylan enough? Do you care about what Gregor
Kiczales calls "aspects", which might change your decision?

- A more general question that relates to the object system, the
meta-object system, and a different dimension of the bootstrapping
question is: do you want to implement a language which provides a
bunch of predefined and fixed constructs (such as an object system)
or do you want to provide a layered language that implements such
constructs in terms of lower-level features in the language? The
former is probably easier, but the latter can allow very flexible
customization, which tends to be traded off against standardization.
Note that even a language with a powerful built-in meta-object system
won't necessarily allow you to replace that object system with
something else, for example, unless the language supports that sort
of thing.
[Anton van Straaten]

- How do you want to do memory management, manual or automatic (GC)?

- Do you want to support threading? Do you want to roll your own
threads or use OS threads? Do you want to support massive
concurrency like Erlang does? The answers to those questions will
tell you about aspects of the run-time, memory allocation/GC, and
performance. Oh yeah -- it also tells you if you can actually take
advantage of the multiple processors sitting in most of the machines
we all have. Do you want Java-style synchronization where it is
built in to objects, or should that be handled orthogonally?

- If you have threads and continuations, how do they relate to each
other?

- How well do you want to be able to integrate with native libraries?
This decision affects your memory model, how you plan to represent
run-time type info, how function call/return works, how signalling
works, etc. By "memory model", I also mean to include what sorts of
objects are boxed or tagged. (Opinion: the Harlqn/FunO Dylan
compiler got it wrong -- I think we should have boxed everything, and
then concentrated our efforts on box/unbox optimizations. This would
have *hugely* simplified FFI issues.) Good integration with native
code probably means that you will end up using a conservative
collector, and that will effect the semantics of "finalization" (if
you have it).

- Do you want to be able to return multiple values? How about &rest
arguments? These affect function call/return, tail-call elimination,
and stack vs. heap allocation optimizations.

- What's your order of evaluation in expressions? This affects what
sort of optimizations can be safely done.

- What compilation model do you want? Lots of include files like
C[++]? Lots of "packages" like Java? Whole-worlds like Lisp?
Separate libraries like Dylan? This affects a lot of things, not
least of which is the ability to deliver small applications. It also
informs the design of your core run-time.

- Is the core run-time tiny like Scheme's? Small like Dylan's? Huge
like Common Lisp's? If you like the Common Lisp model, it's worth
looking at EuLisp to see how to re-package it in a more layered way.

- Even in a small run-time, you need to get the basic types right. Are
your numeric types "closed" (that is, do they include reals --
rationals and irrationals -- and complex numbers)? Are your string
and character types rich enough to model Unicode?

- Think hard about collections. How do the following relate to each
other: sets, tables, vectors, arrays, lists, sequences, ranges? In
Dylan, we decided too late having the tail of a list be a "cons" was
maybe not such a great idea; what about that? How do your
collections interact with your threading model?

- Think hard about iteration, especially over collections. If all
collections obey a uniform iteration protocol, it means that you can
do things like 'for e in c ...'. Note that if iterators are done in
a first-class way, this has performance implications that your
compiler needs to worry about.

- Do you want some sort of security model built into the language?
What sort of model do you want to use? A simple "checker" like the
Java VM uses, or a more sophisticated capability-based model.

- What syntax do you want? Parentheses unaccountably give lots of
people hives, but S-expressions make a lot of things much simpler.
Infix syntax is quite nice when it's done well, but you've got to get
the "kernel" of that exactly right if you want your infix macro
system ever to be usable. If you decide on S-expressions, should
they be represented as lists and conses, or do you want a first-class
object for that?

- Do you want to allow syntactic extensions (macros)? Lisp-style
macros? Dylan-style pattern-matching non-procedural hygienic macros?
Scheme-style 'syntax-case' pattern-matching procedural hygienic
macros? This says a lot about the syntax of your language, and it
also says a lot about the model you choose for compile-time
evaluation environments.

--------------------
Contributors

Andrew Cooke
Steve Dekorte (*)
Matthias Holzl (*)
Jerry Jackson (*)
Jonathan Rees (*)
Anton van Straaten (*)

(*) Contributions marked above


So I guess its time for me to to buy a white board and hang it my room and start answering those question one by one. ahaha :) we'l this is a big adventure and FUN! heeyaah!!





Just tried google Chrome


Just finished downloading and installation of google chrome browser on my sweet MacBook Pro. There are few feature that I like such as it able to fullscreen mode. I cannot find this built-in future on Safari and on FireFox do they have fullscreen but sometimes the bar above wont wont hide after opening new tab and typing new URL address, I think that was a bug. Im impress too w/ its lightning speed, right! is is very noticeable how fast the google chrome browser was upon rendering the component on the site. BUt one thing I notice the flash sometimes crash, this was happen when I open two URL tab streaming at the same time. I think they need to enhance more the flash handling on the page. BUt overall interms of performance It ROcks!

Monday, February 8, 2010

Install IBM DB2 Express-C on Snowleopard Mac OS X 10.6.2


Installation of IBM DB2 Express-C is pretty straight forward using the GUI installer (db2setup) included on the package. The installer also has included a nice pdf instruction on how to install the database but according to what i experience following those sequence of steps it did not work for me having Snowleopard Mac OS X 10.6.2 version and , maybe some other version might work. And i also notice on the included read me and pdf instruction there are module/apps dependencies that are not mention. So if you want to install DB2 Express-C beta(at this time of writing) for Mac OS X, version 9.5.2 on your Snowleopard 10.6.2 below tutorial will work.

1. Download the Tools and the Database.

  • IBM DB2 Express-C 9.5.2 --> http://www-01.ibm.com/software/data/db2/express/download.html
  • xCode from Apple Development Community --> http://developer.apple.com/tools/xcode/

2. Install first the xCode.

3. Prepare the Mac OS for DB2.

  • we need to tweak some resources on the OS.

Increase system parameters (sysctl.conf)

Open /etc/sysctl.conf (or create it doesn't exist) and insert the following settings. These settings increase some settings for shared memory and user limits that DB2 needs in order to work on Mac.


Add the following to /etc/sysctl.conf


kern.sysv.shmmax=1073741824

kern.sysv.shmmin=1

kern.sysv.shmmni=4096

kern.sysv.shmseg=32

kern.sysv.shmall=1179648

kern.maxfilesperproc=65536

kern.maxfiles=65536

Save the file and reboot your computer. You don't need to reboot after you install DB2, only after you increase the System Parameters.

  • It also require Java version 1.6
The graphical installation of DB2 for Mac OS X requires Java 1.6 and expects to find it in /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home . If you do not have Java 1.6 on your computer, you can install it by running the Software Update on your computer and installing the latest updates. By default Snowleopard comes with 1.6 version of Java.

If you do not want to upgrade to the latest level of Java, DB2 can also be installed using the db2_install / db2icrt scripts.

4. Extract/Unpack the db2exc_952beta_MAC_x86_64.tar.gz on your desired directory.
on terminal command: tar -xvzf
> tar xvzf db2exc_952beta_MAC_x86_64.tar.gz

check the directory exp where the extracted file placed. you should have the same file like below.
* it is recommended to read the readmefirst.txt and db2exc_guide_952_MAC_x86_64.pdf file found on this directory.


to be continued...


Saturday, February 6, 2010

the Fun Begin

Its almost a month now working on my current employer which is a big IT Firm. i was amazed how structured they are in-terms of infrastructure and development procedure. On my current assigned which is 3 application built on top of customized J2EE and lotus notes projects all the technology requirements are all new to me, i didn't even get a change to play w/ them in the past or even explore with it. But it seems like its all the same and very easy to hook-up with. im glad i have a rigid experience in building software from the scratch to deployment. currently i am doing the knowledge transfer for the projects which is i find very interesting, anyways thats all for today just an update. watch out for the technology i am currently studying! i will give fun tutorial and tricks ... ;)

Friday, January 8, 2010

last day @ aboitiz

Today Jan. 08, 2010 is my last day of my job as team lead on a local progressive company. For the past years about 2 years and 3 months,it was a very productive year working there, i started as a java, lotus notes and oracle forms developer and year after got promoted as a application team lead. i was also proud to say that for a little duration of time i was able to deploy 3 projects to production from the scratch, built by myself alone. Its fun building application from the scratch alone from designing back-end to front-end specially on n-tier type / j2ee of application, i really enjoy every single technique and idea i put on it, it feels like a great accomplishment when saw the application use on production, saw those end user uses the application helping to their daily work routine. At this very moment i still feel not leaving the company. still my mind-set is on the evolution of the system which get implemented. i wanted to see the application evolve as the end-user requirement changes. But it seems that it will take time for them to realize and file for enhancement and change request.

so to pilmico thanks for the growth. i learned a lots of things on my field of expertise though not that highly standard. thanks...

the only main sole reason for leaving is i wanted to be globally competitive in the field of technology, i wanted to contribute to the world the guts i have. ;;))

Thursday, December 3, 2009

installed "karmic Kuala"

just installed and played karmic kuala and was amazed by the User Interface and the noticeable Speed, it boot-up about 20 seconds on my lenovo working laptop, installation is seamlessly done, drivers are automatically look-up to the server and get downloaded. what i like most of it is the apt-get.. very straight forward. as long as your connected to the internet and installation pain on linux is gone..

and i am expecting for more enhancement for the next release of ubuntu.

Friday, July 31, 2009

JDeveloper

Last March 2009 our company purchase an Oracle Java I training in Makati Philippines for me to explore and evaluate the Oracle JDeveloper tools and ADF frameowrk. The training objective is for us to build a Java EE application using the Oracle JDeveloper tools and its standard framework Oracle Application Developement Framework(ADF). Building J2EE application on Jdeveloper is very declarative, wel just have to drag and drop component we need and bind eact other, Jdev will do the coding upon each user event take places. And Yes it is a good thing for us developer, this can boast more our productivity, we only need to focus to the business logic since the IDE will do the code word for us. isn't cool right?

BUT there are many disadvantage that noticed in this kind of approach, When taking the Oracle Java I training, I have a lot of colleuge that never new how does the framework does in the inside, even though the instructor describe and explain the framework such as ADF, JSF and also the structure of the J2ee application. I noticed when using the JDeveloper, the student dont realy need to focus on the back-end code. they focus on dragging and droping component; and this has big problem when someone needs to undo or edit its work, they dont know how and where to locate that code and what to inject or how to call other objects, since they are just taught to make and drag and drop object.

I suggest for a newbie J2ee developer, before adapting the drag and drop IDE, you should/must get your hands dirty first and understand fully how the servlet and the framework does.

Tuesday, May 5, 2009

Activating Quartz in Struts

This is very simple tricks on how to activate your quarts scheduler on your struts framework.

On Struts-config.xml file, Just add :


<plug-in
className="scheduleplugin.NewsLetter">
</plug-in>