Here the list of Four keys files that would have grown in the year and you like them to mark off towards the end of year.
1) Status Report
2) Work tips
3) Bookmarks All(IE+FF)
4) lifein200X
It is intended to have a PDF generated from text/HTML format of editing.
Been doing this for all the years in corporate industry experience, and nice to keep this going. Apart from this, a printed report updated Expenses report and Assets tracker excel file would also be a handy reference.
Enjoy organizing rather than relying on Google's tools to realize the pain for gain.
Tuesday, December 8, 2009
Tuesday, October 20, 2009
Digesting the ADF jargon - is it worth doing ?
Over the past 100 hours or so I have been trying to learn Oracle ADF framework offerings upon Fusion MiddleWare 11g.
FYI - Oracle ADF is something similar to .NET Framework that Microsoft develops.
Its been a trying experience. 2-Day presentation by Jeff Gallus covering around 440 pages of slides with two visual OBE sessions to develop RIA via ADF had all the bombardment required to go crazy.
Wonder if there is something missing or a gap created that people/framework development guys did OR is it a common feeling when one starts to learn a totally new technology all together.
Here goes the list of information amassed.
1. PDF's
2. Recording of presentation slides.
3. Project work spaces
4. Step by step instruction via a evernote .enx ( 2 )
Wonder , why people did not use the offerings of OS to achieve their tasks,( like why have a file browser component when OS provides it, Why do Pie charts from excel data ; when Excel itself offers some stuff to do the same; ) and went ahead creating their framework to get these running in a complex approach adding another layer. This not only demands hardware investment but also a learning curve.
Was it to illustrate and demo their knowledge on design patterns and their application. Only time can answer. For now you need to give yourself some time for the ADF jargon to sink and get back later learning more on J2EE and see more applications working on ADF.
Key take away points :
[1] The key to adding some would be to use some features in Jdeveloper which
eases your day to day work. ( i.e how technology impacts your daily life )
[2] The presentation slides ( keys ones ) would help in problem solving skills
better analyze data and flows.
[3] Voice recording help you into getting trained to make a speech and educate people.
FYI - Oracle ADF is something similar to .NET Framework that Microsoft develops.
Its been a trying experience. 2-Day presentation by Jeff Gallus covering around 440 pages of slides with two visual OBE sessions to develop RIA via ADF had all the bombardment required to go crazy.
Wonder if there is something missing or a gap created that people/framework development guys did OR is it a common feeling when one starts to learn a totally new technology all together.
Here goes the list of information amassed.
1. PDF's
2. Recording of presentation slides.
3. Project work spaces
4. Step by step instruction via a evernote .enx ( 2 )
Wonder , why people did not use the offerings of OS to achieve their tasks,( like why have a file browser component when OS provides it, Why do Pie charts from excel data ; when Excel itself offers some stuff to do the same; ) and went ahead creating their framework to get these running in a complex approach adding another layer. This not only demands hardware investment but also a learning curve.
Was it to illustrate and demo their knowledge on design patterns and their application. Only time can answer. For now you need to give yourself some time for the ADF jargon to sink and get back later learning more on J2EE and see more applications working on ADF.
Key take away points :
[1] The key to adding some would be to use some features in Jdeveloper which
eases your day to day work. ( i.e how technology impacts your daily life )
[2] The presentation slides ( keys ones ) would help in problem solving skills
better analyze data and flows.
[3] Voice recording help you into getting trained to make a speech and educate people.
Thursday, October 8, 2009
Is ANT an abuse of XML technology to sell dependency
In this world of technology you have multiple ways to achieve a task. Sometimes by just switching to new technology may be grief.
One such instance I feel is ANT build tool.
There is nothing that gmake cannot do that ant can.
The only core advantage with Ant would be its creation of custom tags for custom tasks.
However the dependency induced to use it
1) Check the well formed of XML file build.xml
2) Ensure it adheres to Ant syntax for simple tasks upon the first requirement
3) Do ensure you got JRE running on your platform.
Anyway, I would not shoe this approach for it makes me aware that people can devise complex approach to tackle a problem and make it an invention/technology as they call.
Also to keep track of the ANT evaluation here goes my first build.xml
Refer outside this area since since this blog provider doe snot display xml file :(
Time to look at some good aspects
- Ant also throws some deprecation errors
- Amazing documentation available at Apache site http://ant.apache.org/
One such instance I feel is ANT build tool.
There is nothing that gmake cannot do that ant can.
The only core advantage with Ant would be its creation of custom tags for custom tasks.
However the dependency induced to use it
1) Check the well formed of XML file build.xml
2) Ensure it adheres to Ant syntax for simple tasks upon the first requirement
3) Do ensure you got JRE running on your platform.
Anyway, I would not shoe this approach for it makes me aware that people can devise complex approach to tackle a problem and make it an invention/technology as they call.
Also to keep track of the ANT evaluation here goes my first build.xml
Refer outside this area since since this blog provider doe snot display xml file :(
Time to look at some good aspects
- Ant also throws some deprecation errors
- Amazing documentation available at Apache site http://ant.apache.org/
Tuesday, September 29, 2009
Contemplations via viewlets
Often I have noticed after a long vacation I find it difficult to recall things done in past.
The following tools designed by you can aid in brushing up skills/ information.
1. Quick glance on consolidated bookmarks file
2. Go throu the worktips compilation.
3. Play some of the viewlets created.
Index of this as a reference as of today
== START ==
Show mail that introduces
bea_admin_console_laf
classic_wls_shiphome_fr_bug_sep10_2008
common_sql_parser_setup
creating_ant_file_for_jdev_workspace
data_app_anywhere
ddd_in_forms_usage_while_on_sql_parser_task
early_bird_features_visualADE
em_console_1012_days_screenshots_uix_pages
google_desktop_search
illustrate_proxy_user_support_in_forms_r11
import_bmarks_mozilla
jdev_client_debug_setup
mace_setup_ptlabels
my_mail_box_organization
myviewlets_index.htm
new_bug_db_PHP_style
pidgin_messanger_screenshots
scribd_usage_demo
show_my_data_org
simple_jdbc_connect_query_exec_demo_in_jdev
sso_working_in_r11_as_classic_shiphome_mas_oc4j_tech_stack
== END ==
4. Go through status report file atleast the previous 2-3 weeks
5. Update personal todo tracker file.
The following tools designed by you can aid in brushing up skills/ information.
1. Quick glance on consolidated bookmarks file
2. Go throu the worktips compilation.
3. Play some of the viewlets created.
Index of this as a reference as of today
== START ==
Show mail that introduces
bea_admin_console_laf
classic_wls_shiphome_fr_bug_sep10_2008
common_sql_parser_setup
creating_ant_file_for_jdev_workspace
data_app_anywhere
ddd_in_forms_usage_while_on_sql_parser_task
early_bird_features_visualADE
em_console_1012_days_screenshots_uix_pages
google_desktop_search
illustrate_proxy_user_support_in_forms_r11
import_bmarks_mozilla
jdev_client_debug_setup
mace_setup_ptlabels
my_mail_box_organization
myviewlets_index.htm
new_bug_db_PHP_style
pidgin_messanger_screenshots
scribd_usage_demo
show_my_data_org
simple_jdbc_connect_query_exec_demo_in_jdev
sso_working_in_r11_as_classic_shiphome_mas_oc4j_tech_stack
== END ==
4. Go through status report file atleast the previous 2-3 weeks
5. Update personal todo tracker file.
Wednesday, September 23, 2009
Information tree
I always dream to have a good directory structure to organize my skills, information and e-books to the best retrieval at my finger tips, but find every time I think about it the structure or the approach tend to change.
I gave this a thought and found the following one suitable.
Personal_skill_management :
│ index.html
│
└───root
├───computer_science_at_school
│ ├───logo
│ └───qbasic_and_cn_ramaswamy
├───english_iq
│ ├───conversations
│ ├───essays
│ ├───grammar_e_books
│ ├───presentation_skills
│ ├───toefl
│ └───written_and_spoken_communication
├───innovative_ideas
│ └───software_techinques
│ ├───extreme_programming
│ ├───mvc
│ └───waterfall
├───math_iq
│ ├───cat_material
│ └───gre_and_rs_aggrawal_interview_questions
├───other_interests
│ ├───bollywood_movies_n_sandalwood_music
│ ├───indian_myth_n_astrology
│ └───yoga_breathing_spiritual
├───professional_it_experience
│ ├───architectural_skills
│ ├───database_skills
│ │ ├───jdbc
│ │ ├───plsql
│ │ └───sql
│ ├───design_skills
│ ├───issue_tracking
│ ├───links_accumlated
│ ├───literature_study
│ ├───market_players
│ ├───middleware_skills
│ │ ├───dot_net_based_application_servers_platform
│ │ └───java_based_application_servers_platform
│ │ ├───apache
│ │ ├───oc4j
│ │ └───weblogic
│ ├───operating_systems_exposure
│ │ ├───linux_rhel
│ │ ├───solaris
│ │ └───windows_nt
│ ├───oracle_forms_product_knowledge
│ │ ├───api_stack
│ │ ├───client_server_arch
│ │ ├───j2ee_stack_integration_points
│ │ └───web_arch
│ ├───programming_skills
│ │ ├───c_skill
│ │ ├───java_skill
│ │ └───xml_skill
│ ├───requirements_collection
│ ├───scripting_skills
│ └───write_ups
├───software_tools
├───travel
├───university_days
│ ├───books_refered
│ ├───fun_softwares
│ ├───lectures_n_seminars
│ ├───management
│ ├───practical
│ │ └───electronic_circuits_basics
│ └───theory
└───zombie
└───cbse_brillant_material_for_aiims_1998
However this is bound to change as and when I revisit this page. Anyways this would aid as a reference.
I gave this a thought and found the following one suitable.
Personal_skill_management :
│ index.html
│
└───root
├───computer_science_at_school
│ ├───logo
│ └───qbasic_and_cn_ramaswamy
├───english_iq
│ ├───conversations
│ ├───essays
│ ├───grammar_e_books
│ ├───presentation_skills
│ ├───toefl
│ └───written_and_spoken_communication
├───innovative_ideas
│ └───software_techinques
│ ├───extreme_programming
│ ├───mvc
│ └───waterfall
├───math_iq
│ ├───cat_material
│ └───gre_and_rs_aggrawal_interview_questions
├───other_interests
│ ├───bollywood_movies_n_sandalwood_music
│ ├───indian_myth_n_astrology
│ └───yoga_breathing_spiritual
├───professional_it_experience
│ ├───architectural_skills
│ ├───database_skills
│ │ ├───jdbc
│ │ ├───plsql
│ │ └───sql
│ ├───design_skills
│ ├───issue_tracking
│ ├───links_accumlated
│ ├───literature_study
│ ├───market_players
│ ├───middleware_skills
│ │ ├───dot_net_based_application_servers_platform
│ │ └───java_based_application_servers_platform
│ │ ├───apache
│ │ ├───oc4j
│ │ └───weblogic
│ ├───operating_systems_exposure
│ │ ├───linux_rhel
│ │ ├───solaris
│ │ └───windows_nt
│ ├───oracle_forms_product_knowledge
│ │ ├───api_stack
│ │ ├───client_server_arch
│ │ ├───j2ee_stack_integration_points
│ │ └───web_arch
│ ├───programming_skills
│ │ ├───c_skill
│ │ ├───java_skill
│ │ └───xml_skill
│ ├───requirements_collection
│ ├───scripting_skills
│ └───write_ups
├───software_tools
├───travel
├───university_days
│ ├───books_refered
│ ├───fun_softwares
│ ├───lectures_n_seminars
│ ├───management
│ ├───practical
│ │ └───electronic_circuits_basics
│ └───theory
└───zombie
└───cbse_brillant_material_for_aiims_1998
However this is bound to change as and when I revisit this page. Anyways this would aid as a reference.
Friday, August 21, 2009
Screenshots of professional software tools.
I am putting the screen shots in no particular or thought.
On seeing each one of them
1) Guess what software it is.
2) Where all it was used.
3) Where all it could have been used.
TODO:// Had a limit of only 5 images. So would edit later.
On seeing each one of them
1) Guess what software it is.
2) Where all it was used.
3) Where all it could have been used.
TODO:// Had a limit of only 5 images. So would edit later.
Monday, August 17, 2009
Listener pattern implementation in java taught by Manju
//
// LISTENER PATTERN IMPLEMENTATION
// 1 NOTIFIER CLASS
// 3 RECEVIER CLASSES
// 2 EVENTS
//
import java.util.ArrayList;
import java.util.List;
public class ListenerImpl
{
public static void main(String[] args)
{
new ListenerImpl().run();
}
private void run()
{
// Base class ; sender of the message
Employee emp = new Employee("Ramesh", 24);
// Instantiate recevier classes that needs notification
Admin admin = new Admin();
Manager manager = new Manager();
CEO ceo = new CEO();
// NOTE: we could go ahead and add new classes for extension.
// add them all
emp.addEmployeeAttrChangeListener(admin);
emp.addEmployeeAttrChangeListener(manager);
emp.addEmployeeAttrChangeListener(ceo);
// Event 1
// notifies all classes
emp.setName("Manju");
System.out.println("\n\n");
// Event 2
// notifies all classes
emp.setAge(29);
}
class Employee
{
List listeners;
String name;
int age;
public Employee(String name, int age)
{
listeners = new ArrayList();
this.name = name;
this.age = age;
}
public void addEmployeeAttrChangeListener(EmployeeAttrChangeListener listener)
{
this.listeners.add(listener);
}
public void removeEmployeeAttrChangeListener(EmployeeAttrChangeListener listener)
{
this.listeners.remove(listener);
}
public void fireNameChangedEvent(String oldName, String newName)
{
for (EmployeeAttrChangeListener listener: listeners)
{
listener.nameChanged(oldName, newName);
}
}
public void fireAgeChangedEvent(int oldAge, int newAge)
{
for (EmployeeAttrChangeListener listener: listeners)
{
listener.ageChanged(oldAge, newAge);
}
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
// notify and change
this.fireAgeChangedEvent(this.age, age);
this.age = age;
// NOTE : for notify after change swap statments
}
public String getName()
{
return name;
}
public void setName(String name)
{
// notify and change
fireNameChangedEvent(this.name, name);
this.name = name;
// NOTE : for notify after change swap statments
}
}
// Class A must implement appropriate listener interface.
class Admin implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In Admin block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In Admin block : Age change ");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Class B must implement appropriate listener interface.
class Manager implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In Manager block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In Manager block : Age change");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Class C must implement appropriate listener interface.
class CEO implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In CEO block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In CEO block : Age change");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Listener interface class ( in real world there would be marker implementations )
interface EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName);
public void ageChanged(int oldAge, int newAge);
}
}
// SAMPLE OUTPUT
/*
In Admin block : Name change
Ramesh has been changed to Manju
In Manager block : Name change
Ramesh has been changed to Manju
In CEO block : Name change
Ramesh has been changed to Manju
In Admin block : Age change
24 has been changed to 29
In Manager block : Age change
24 has been changed to 29
In CEO block : Age change
24 has been changed to 29
*/
// Usage notes :
//
// Save entire file as ListenerImpl.java
// javac ListenerImpl.java
// java ListenerImpl
// The above example receiver classes are inner classes for sake of simplication
// It need not be the case in real situations.
// LISTENER PATTERN IMPLEMENTATION
// 1 NOTIFIER CLASS
// 3 RECEVIER CLASSES
// 2 EVENTS
//
import java.util.ArrayList;
import java.util.List;
public class ListenerImpl
{
public static void main(String[] args)
{
new ListenerImpl().run();
}
private void run()
{
// Base class ; sender of the message
Employee emp = new Employee("Ramesh", 24);
// Instantiate recevier classes that needs notification
Admin admin = new Admin();
Manager manager = new Manager();
CEO ceo = new CEO();
// NOTE: we could go ahead and add new classes for extension.
// add them all
emp.addEmployeeAttrChangeListener(admin);
emp.addEmployeeAttrChangeListener(manager);
emp.addEmployeeAttrChangeListener(ceo);
// Event 1
// notifies all classes
emp.setName("Manju");
System.out.println("\n\n");
// Event 2
// notifies all classes
emp.setAge(29);
}
class Employee
{
List
String name;
int age;
public Employee(String name, int age)
{
listeners = new ArrayList
this.name = name;
this.age = age;
}
public void addEmployeeAttrChangeListener(EmployeeAttrChangeListener listener)
{
this.listeners.add(listener);
}
public void removeEmployeeAttrChangeListener(EmployeeAttrChangeListener listener)
{
this.listeners.remove(listener);
}
public void fireNameChangedEvent(String oldName, String newName)
{
for (EmployeeAttrChangeListener listener: listeners)
{
listener.nameChanged(oldName, newName);
}
}
public void fireAgeChangedEvent(int oldAge, int newAge)
{
for (EmployeeAttrChangeListener listener: listeners)
{
listener.ageChanged(oldAge, newAge);
}
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
// notify and change
this.fireAgeChangedEvent(this.age, age);
this.age = age;
// NOTE : for notify after change swap statments
}
public String getName()
{
return name;
}
public void setName(String name)
{
// notify and change
fireNameChangedEvent(this.name, name);
this.name = name;
// NOTE : for notify after change swap statments
}
}
// Class A must implement appropriate listener interface.
class Admin implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In Admin block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In Admin block : Age change ");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Class B must implement appropriate listener interface.
class Manager implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In Manager block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In Manager block : Age change");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Class C must implement appropriate listener interface.
class CEO implements EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName)
{
System.out.println("In CEO block : Name change ");
System.out.println(oldName + " has been changed to " + newName);
}
public void ageChanged(int oldAge, int newAge)
{
System.out.println("In CEO block : Age change");
System.out.println(oldAge + " has been changed to " + newAge);
}
}
// Listener interface class ( in real world there would be marker implementations )
interface EmployeeAttrChangeListener
{
public void nameChanged(String oldName, String newName);
public void ageChanged(int oldAge, int newAge);
}
}
// SAMPLE OUTPUT
/*
In Admin block : Name change
Ramesh has been changed to Manju
In Manager block : Name change
Ramesh has been changed to
Ramesh has been changed to
In Admin block : Age change
24 has been changed to 29
In Manager block : Age change
24 has been changed to 29
In CEO block : Age change
24 has been changed to 29
*/
// Usage notes :
//
// Save entire file as ListenerImpl.java
// javac ListenerImpl.java
// java ListenerImpl
// The above example receiver classes are inner classes for sake of simplication
// It need not be the case in real situations.
My Qt Experience
Qt is a quick UI protyping tool. You used this in your university days to get
the presentation logic going. Thanks for Sujeeth and Sreenivas N Keeni for pursuing
and encouraging use of Open technologies. And definitely an advantage since it works on Linux and a de-facto platform for servers-class machinces.
Often I find that you would create a ui file but struggle to get build steps and
generate executable. Here goes the steps.
Step 0:
Ensure uic, moc and g++ is on your path doing which on each of these executeables
Step 1:
uic -o project.h project.ui
Step 2:
uic -i project.h -o project.cpp project.ui
Step 3:
moc -o moc_project.cpp project.h
Step 4:
if in your ui file you have renamed Form1 to something else (like in here it is MyForm) make appropriate changes
Ensure file main.cpp exists
And main.cpp :
-----
cat main.cpp
#include "qapplication.h"
#include "project.h"
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
Form1 f1;
app.setMainWidget(&f1);
f1.show();
return app.exec();
}
----
Step 5:
Generate executable:
g++ -o test -I$QTDIR/include -L$QTDIR/lib main.cpp project.cpp moc_project.cpp -lkdevelop
NOTE : the link option that worked in Redhat 7.2 was -lqt , on RHEL I had to use -lkdevelop
Step 6:
this should have created Linux executable named test.
Run it ./test
Time to enjoy.
the presentation logic going. Thanks for Sujeeth and Sreenivas N Keeni for pursuing
and encouraging use of Open technologies. And definitely an advantage since it works on Linux and a de-facto platform for servers-class machinces.
Often I find that you would create a ui file but struggle to get build steps and
generate executable. Here goes the steps.
Step 0:
Ensure uic, moc and g++ is on your path doing which on each of these executeables
Step 1:
uic -o project.h project.ui
Step 2:
uic -i project.h -o project.cpp project.ui
Step 3:
moc -o moc_project.cpp project.h
Step 4:
if in your ui file you have renamed Form1 to something else (like in here it is MyForm) make appropriate changes
Ensure file main.cpp exists
And main.cpp :
-----
cat main.cpp
#include "qapplication.h"
#include "project.h"
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
Form1 f1;
app.setMainWidget(&f1);
f1.show();
return app.exec();
}
----
Step 5:
Generate executable:
g++ -o test -I$QTDIR/include -L$QTDIR/lib main.cpp project.cpp moc_project.cpp -lkdevelop
NOTE : the link option that worked in Redhat 7.2 was -lqt , on RHEL I had to use -lkdevelop
Step 6:
this should have created Linux executable named test.
Run it ./test
Time to enjoy.
Subscribe to:
Posts (Atom)