While developing the sample ajax grails application which is available on github, I encountered this problem on g:remoteLink
Everything works good, but if I need to add a delete confirmation on the
<>, the confirmation dialog appears but g:remotelink still goes ahead and compeltes the ajax call even if the user has selected the
<> action="ajaxdelete" id="${contact.id}" before="return confirm('Are you sure?');" update="contactsElement">Delete
Jeff Brown at Spring Source. and his friend Rhyolight, lead developer on GrailsUI, Helped put a wonderful soluction to get around this problem.
Solution is to use Grails UI (Yui plugin), as grailsUI has this wonderful capability to passthrough the config params which grails does not understand it works well.
Here is what the above code was replaced by
< gui:dialog
title="Please confirm!"
width="300px"
triggers="[show:[type:'link', text:'Delete', on:'click']]"
controller='contact'
action='ajaxdelete'
update='contactsElement'
params="[id:contact.id]"
form="true">Are you sure you want to delete ${contact.name}?</gui:dialog>
Looks like grails UI is very powerful to be ignored.
Developer, Java Evangelist, extensively worked on Java, GWT, Flex, RIA technologies with enterprise frameworks. I have a privilege to conduct lot of Training/Coaching in Java Technologies, and to connect with real people.
Tuesday, December 23, 2008
g:remotelink and Delete Confirmation
Labels:
g:remotelink,
GRAILS AJAX,
grails UI
Wednesday, December 17, 2008
Sample application for AJAX and Grails
I am very impressed with the rapid development Grails Offers, the power of AJAX which grails offers has made it even more powerful. Grails offers many AJAX frameworks which can be added as plugins.
I started with a sample ajax in grails application, which demostrates the following capabilities of grails,
Please find a link to sample example, which includes all the scenarious of AJAX.
I started with a sample ajax in grails application, which demostrates the following capabilities of grails,
- g:formRemote : How to use g:formRemote , within and Outside the controller
- g:formRemote along with g:remoteLink for inline Editing
- JQuery Validator Plugin : Demostrates JQuery works with conflicts with ScriptAculo and Prototype
- Grails YUI : Replaced g:remoteLink with grails UI Dialog, for Delete confirmation.
Please find a link to sample example, which includes all the scenarious of AJAX.
http://github.com/markatharvest/sample-ajax-in-grails/tree/master
Please send me any pull requests, if you guys make some changes
Labels:
AJAX,
GRAILS AJAX
Thursday, December 11, 2008
Using GIT with Amazon S3 on Windows
As I mentioned in my last blog, I was having some problems pushing changes to GITHUB, which have been resolved (I guess was due to my slow internet connection).
So I thought, we will give a shot to Amazon S3 and to my suprise we got it working in 30mins. OfCourse, it may be as powerful as GitHub in terms of features, but can be the cheapest way to maintain repositories
I did search for some these blogs which guided me,
http://www.tobinharris.com/2008/7/22/putting-git-in-the-cloud-with-amazon-s3
Also, tobharris has a excellent reference to Toolman Tim
Following are the steps are in detail on how to setup
GIT and Amazon S3 combination can be used to make cheap backups as well as for maintaining projects.
So I thought, we will give a shot to Amazon S3 and to my suprise we got it working in 30mins. OfCourse, it may be as powerful as GitHub in terms of features, but can be the cheapest way to maintain repositories
I did search for some these blogs which guided me,
http://www.tobinharris.com/2008/7/22/putting-git-in-the-cloud-with-amazon-s3
Also, tobharris has a excellent reference to Toolman Tim
Following are the steps are in detail on how to setup
- Signup for a Amazon S3 account , click here
- Install Jungle Disk, which will map your s3 storage to local drive say y:
- Install CYGWIN git and open it
- Go to y: from your MSysgit or Cygwin of your GIT, and perform following commands
- mkdir var/git/sample.git
- git --bare init
- go to your project directory, which needs to be pushed on sample.git
- git remote add s3origin /cygdrive/y/var/git/sampleajax.git
- git push s3origin master //This will push your project to master branch of s3origin
- Open Cygwin
- Go to say c:\temp
- mkdir sample
- cd sample
- git config --global user.email youremail
- git clone /cygdrive/y/var/git/sampleajax.git
GIT and Amazon S3 combination can be used to make cheap backups as well as for maintaining projects.
Labels:
Amazon S3,
git,
Git on Amazon S3
Wednesday, December 10, 2008
GitHub Issues, GitHub Support
Github source repository is very good to store projects, but sometimes aftermaking lot of changes to my source code when I try to push the changes to repo back, I get the following error.
Not sure what the reason is, is it the size or something else. I have opened a ticket with GitSupport, once I recieve a response I will update it
I dont think size should be an issue as as 180Kb is not big
Finally, I was able to resolve this issue though mysteriously, after 5 hours when I tried to push again with a different internet connection at home, everything went smoothly. I guess it was a connection issues with my internet at office.
GitSuppot did try to help me out on this one, though they came little bit late to pitch in, they suggested to try msysgit instead of cygwin. If it had not worked, I would have give that a shot.
Not sure what the reason is, is it the size or something else. I have opened a ticket with GitSupport, once I recieve a response I will update it
$ git push origin master
Counting objects: 147, done.
Compressing objects: 100% (138/138), done.
Writing objects: 100% (146/146), 179.11 KiB, done.
Total 146 (delta 8), reused 0 (delta 0)
Read from remote host github.com: Software caused connection abort
fatal: The remote end hung up unexpectedly
I dont think size should be an issue as as 180Kb is not big
Finally, I was able to resolve this issue though mysteriously, after 5 hours when I tried to push again with a different internet connection at home, everything went smoothly. I guess it was a connection issues with my internet at office.
GitSuppot did try to help me out on this one, though they came little bit late to pitch in, they suggested to try msysgit instead of cygwin. If it had not worked, I would have give that a shot.
Labels:
git,
git issues,
github support
Monday, December 8, 2008
Git And GitHub Frequently Used Commads
GIT is a Distributed Version Control System, it is rapidly gaining popularity on other version control systems namely Subversion, CVS, due to its easy of use, and its rapid commit speed.
It creates a new way of adressing complexties on a OpenSource Project, where earlier developers had to wait for days to checkin their code and deal with complex merging issues.
With GIT, all those are things of the past, we can focus on pure business logic or the code we are concerned. We just have to merge the changes with trusted resources and not get bothered by tons of other people changes.
There are very excellent articles and videos which Cover GIT in detail, My goal here is to display those commands which our team has been using more often
Initialization Commands
General Commands
Adding & Reverting & Commiting Changes on GIT
Its good to add tags lets say at different phases of project or while branching out,
Pull and Merge Changes from other repos
The following steps summarize the commads need to pull changes from other forked branches to your local branch and push it to your remote github repo
To create a remote branch, there are many ways to approach
Git Ignore
echo stacktrace.log >> .gitignore , adds stacktrace.log to .gitignore directory
Note: I haven't seen this working yet, hopefully soon it should work
Some Good Articles on GIT
It creates a new way of adressing complexties on a OpenSource Project, where earlier developers had to wait for days to checkin their code and deal with complex merging issues.
With GIT, all those are things of the past, we can focus on pure business logic or the code we are concerned. We just have to merge the changes with trusted resources and not get bothered by tons of other people changes.
There are very excellent articles and videos which Cover GIT in detail, My goal here is to display those commands which our team has been using more often
Initialization Commands
- git config --global github.user <
> git config --global user.email <> - git config --global color.branch "auto"
- git config --global color.status "auto"
- git config --global color.diff "auto"
- git clone
- git log
- git status
- git diff
, shows the difference between curret and head version - git diff "@{yesterday}" , shows changes since yesterday
- dit whatchanged --since="2 weeks ago"
- gitk, to open the git GUI
- git checkout -b $samplebranch , Creates a branch named samplebranch and switches to it
- git checkout $samplebranch, Just switches to a new branch
- git branch -d $branch, deletes the branch
- git branch -a : shows all branches local and remote
- git branch -r : show all remote branches
git remote add < remoterepo> git@github.com: >/ >.git , Adds a remote repository (e.g forked one from the main) to your machine - git remote rm
deletes the remote directory git remote -v : displays all the remote repositories
- git add . , adds all the changed /new files to the repo
- git reset --hard HEAD , Reverts all uncommited changes
- git clean -df , Remove any files in your working directory that were not added to git e.g autogenerated files.
- git revert , Reverts to previous commit.
- git commit -m "my first commit" to commit the files
- git checkout <
>, to revert a individual file
Its good to add tags lets say at different phases of project or while branching out,
- git tag -a -m "branched out version1" version1 , this will tag the last commit with the tag version1
- git tag , will display the tags
- git push origin --tags , will push the tags to the remote origin
The following steps summarize the commads need to pull changes from other forked branches to your local branch and push it to your remote github repo
git remote add auserepogit@github.com:auser/arepo.git
- git remove -v
- git checkout -b auser/master
- git branch
- git pull auserrepo master
- git checkout master
- git merge auser/master ,Note: if there are any conflicts open the files and resolve them
- git add . , This step is need to add any resolved conflict files
- git commit -m "your commits about successful merge"
- git push origin master , to push your changes to the github origin repo
To create a remote branch, there are many ways to approach
- Create a local branch
- git push origin master:refs/heads/R1.2 : to create a branch name R1.2 on remote origin
- git checkout -b R1.2
- git pull origin R1.2 : to pull changes from remote R1.2 branch
echo stacktrace.log >> .gitignore , adds stacktrace.log to .gitignore directory
Note: I haven't seen this working yet, hopefully soon it should work
Some Good Articles on GIT
- Do You want to get started with setting up a GitHub account and windows developer machine , read this blog Getting started with GIT and GITHub on Windows Kyle Cordes Blog
- Dr. Nic Blog on Working In a Team with different branches , forking , pulling changes
- Pulling changes from other people to your repot, Very good blog by Patric Reagon of Viget
Labels:
git,
git pull,
git reset,
git revert
Friday, December 5, 2008
Tips to Improve Peformance of Your Blog
I have been blogging for a while, but how stupid I am to see if anybody is reading up the blog or my goal in this blog is to, keep adding information on How to Improve the Performance of you blog.
Improvement in terms of addding different tools / utilities to imrpove the performance.
I will keep on adding the links as I get it, but if you guys have any please feel free to add it.
Most of my information will be geared towards the Blogger , but should be able to apply to Wordpress or any other blogging tools for the matter.
1. Add Google Analytics, to your Blog
Followling links give the information on how to add track your performance of your Blog.
Note : In the following blogpost, you need to post the JavaScript to your body tag, which is far below in the template.
Click Here To Add Google Anaylytics to Your Blog
2. Add Label Cloud To Your Blog
A tag cloud is a visual depiction of content tags used on a blog. In a tag cloud, tags are typically listed alphabetically, and tag frequency is shown with font size or color. The tags are usually hyperlinks that lead to a collection of items that are associated with that tag.
Click here to add the LabelCloud to Blogger
3. Allows Users to BookMark and Share Your Blog
Add AddThis Button to allows viewer to easily bookmark your blog.
Click here to get Started
Improvement in terms of addding different tools / utilities to imrpove the performance.
I will keep on adding the links as I get it, but if you guys have any please feel free to add it.
Most of my information will be geared towards the Blogger , but should be able to apply to Wordpress or any other blogging tools for the matter.
1. Add Google Analytics, to your Blog
Followling links give the information on how to add track your performance of your Blog.
Note : In the following blogpost, you need to post the JavaScript to your body tag, which is far below in the template.
Click Here To Add Google Anaylytics to Your Blog
2. Add Label Cloud To Your Blog
A tag cloud is a visual depiction of content tags used on a blog. In a tag cloud, tags are typically listed alphabetically, and tag frequency is shown with font size or color. The tags are usually hyperlinks that lead to a collection of items that are associated with that tag.
Click here to add the LabelCloud to Blogger
3. Allows Users to BookMark and Share Your Blog
Add AddThis Button to allows viewer to easily bookmark your blog.
Click here to get Started
Labels:
Blog,
google analytics,
Label Cloud,
performance
Top 10 Java Interview Questions
Out of the experience of so many interviews, I see following Core Java Interview Difference Questions keep on getting asked on repeatedly, Making them on my popular list.
Here is the list of Questions
1. Abstract Class And Interface
2. Runtime(UnChecked) and CompileTime(Checked) exceptions
3. Deadlock and Race Condition
4. String and StringBuffer
5. List and ArrayList
6. Hashtable and Hashmap
7. Static and Non Static
8. Difference between Vector and ArrayList
9. Difference between Array and ArrayList
10 Write an example for Singleton Design Pattern
Please find the following links to explore their answers
http://harvestjava.blogspot.com/2008/07/core-java-interview-questions.html
http://harvestjava.blogspot.com/2008/08/core-java-interview-questions-continued.html
Here is the list of Questions
1. Abstract Class And Interface
2. Runtime(UnChecked) and CompileTime(Checked) exceptions
3. Deadlock and Race Condition
4. String and StringBuffer
5. List and ArrayList
6. Hashtable and Hashmap
7. Static and Non Static
8. Difference between Vector and ArrayList
9. Difference between Array and ArrayList
10 Write an example for Singleton Design Pattern
Please find the following links to explore their answers
http://harvestjava.blogspot.com/2008/07/core-java-interview-questions.html
http://harvestjava.blogspot.com/2008/08/core-java-interview-questions-continued.html
Combining All Blogs to one
Initially I was following the practice of creating a new Blog for each topic, so was having differenct blogs like
http://harvestjava.blogspot.com
http://harvestgit.blogspot.com/
http://ajaxgrails.blogspot.com/
http://phpprobs.blogspot.com/
http://junitprimer.blogspot.com/
After a sometime, it becomes difficult and error prone to main all the blogs as well as, it I need to give anybody a blog address I really don't have one, it was depending on topic.
From, today I will use this blog as my Final Blog address for my postings.. finally found a new way out. http://markatharvest.blogspot.com
http://harvestjava.blogspot.com
http://harvestgit.blogspot.com/
http://ajaxgrails.blogspot.com/
http://phpprobs.blogspot.com/
http://junitprimer.blogspot.com/
After a sometime, it becomes difficult and error prone to main all the blogs as well as, it I need to give anybody a blog address I really don't have one, it was depending on topic.
From, today I will use this blog as my Final Blog address for my postings.. finally found a new way out. http://markatharvest.blogspot.com
Labels:
grails,
harvestinfotech,
java,
opensource,
php
Subscribe to:
Posts (Atom)