How to dump java process

Go to your console or terminal app (terminal.app on Mac, cmd on Windows, command line console on Linux) and type in jps. Then you get a list of java processes and their IDs. If you are not running another java process, you should be able to figure out which one is for the your java process. Then type “jstack ” followed by the process ID and hit enter. That produces a dump of all the threads that are running in that Java process. That output would be quite useful to figure out why your java process is not run as expected.

Tháng Hai 4, 2013 at 11:34 sáng Để lại bình luận

Grails SQL date formatting tag lib

Mình đang tập tọe học Groovy và Grails nên chẳng rành lắm. Khi thử các ví dụ của Grails, một trong những câu hỏi là làm sao customizing layout và formatting của data cho phù hợp với yêu cầu của KH là các cty nước ngòai ỏ Việt Nam (trong nội bộ thì dùng format của Mẽo, nhưng giao diện cho KH trên web và thư từ, báo cáo cho các quan chức thì dùng format VN)? Câu trả lời cuối cùng là customizing Grails tags cho phù hợp. Điều may mắn là tạo tag lib cho Grails rất dễ, nên việc này không hề là “niềm đau chôn dấu” nhưng khi tạo JSP hay JSF tag lib.

Ví dụ: sau đây là tag lib để format date, trích từ http://douglasfils.blogspot.com/2007/09/grails-sql-date-formating-lib.html

Been working with Grails more and created a little tag lib I thought I would post up for others. The date that comes out of the domains is a rather ugly SQL date style so I create a tag lib with the following code:

 def formatSqlDate = { attrs -> 
    def String startdatetime =  "${attrs['targetDate']}"
    def DateFormat odf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S");
    def DateFormat df = new SimpleDateFormat( "MMM d, ''yy" );
    out << df.format(odf.parse(startdatetime))     
 }

Then I can simple reference it with:

<g:formatsqldate targetdate="${domain.dateObject}">

A person can mode the date format string all they want and also could put in various cases or a flag to select a format style if they wished.

Chi tiết cách tạo và khai báo 1 tag lib trong Grails, mời các bạn đọc trong tài liệu đi kèm với Grails🙂

Tháng Sáu 17, 2008 at 6:13 sáng Để lại bình luận

Dùng Groovy để đọc excel file

Đây là bài gốc từ mailing list của org.codehaus.groovy.userI got introduced to JExcelApi on the Groovy IRC channel this morning (http://www.andykhan.com/jexcelapi/)This is a Java package which lets you read an write Excel spreadsheets. It look pretty slick.

I have just hacked a Groovy script which reads an Excel spreadsheet and writes out the cell contents as a CSV


import java.io.File import jxl.Workbook

writeCsv = { | out, workBook, hide | 				for (sheetNumber in 0...workBook.numberOfSheets) { 					sheet = workBook.getSheet(sheetNumber)

out.println sheet.name

if (!(hide && sheet.settings.hidden)) { 						for (rowNumber in 0...sheet.rows) { 							row = sheet.getRow(rowNumber)

println row.findAll({!(hide && it.hidden)}).contents.join(', ') 						} 					} 				} 			}

writeCsv(System.out, Workbook.getWorkbook(new File("jxlrwtest.xls")),  false)
Some things to note:
sheet.settings.hidden
in Java this would have to be
sheet.getSettings().isHidden()
– Groovy’s bean support reduced the noise for
(sheetNumber in 0...workBook.numberOfSheets)

we use the ‘…’ form of the range to go to workBook.getNumberOfSheets() – 1 – again lots less noise

row.findAll({!(hide && it.hidden)}).contents

the findAll call returns a list of cell objects. We want to call getContents() on each cell object. We could use collect({ it.contents}) but someList.someProperty is equivalent to someList.collect({it.someProperty}) and a lot less noisy

If you download the package from the link above you will see a Java version of this in the demo package.

Tháng Ba 3, 2008 at 11:19 sáng Để lại bình luận

Phát hành GWT 1.4 – thêm nhiều widgets, khởi động nhanh hơn và các nâng cấp khácD

GWT 1.4 đã chính thức phát hành.

Có rất rất nhiều tính năng mới trong GWT 1.4, sau đây chỉ là một số tóm tắt các nâng cấp quan trọng của GWT 1.4

Bạn quan tâm đến hiệu quả của hệ thống (performance)? Phiên bản này bao gồm nhiều đột phá mớ, làm cho việc biên dịch GWT code nhanh hơn và nhỏ hơn một cách rõ rệt. Đã có nhiều người dùng báo cáo rằng ứng dụng dùng GWT của họ giảm kích thước tới 30% và nhanh hơn 20%-50% chỉ đơn giản bằng cách tái biên dịch ứng dụng (recompile). Riêng thời gian khởi động ứng dụng cũng đã được tối ưu cao độ, nhờ vào kỹ thuật bootstrapping mới và tính sẵng sàng (availability) của các file ảnh đi kèm (image bundles)

Bên cạnh cải tiến về thời gian khởi động ứng dụng. GWT code dùng kỹ thuật cache để ngăn ngừa các ứng dụng gọi các yêu cầu HTTP không cần thiết. Như cách nói của Joel Webber (Tech Lead của GWT Core Libraries) : “Các yêu cầu HTTP nhanh nhất là các yêu cầu mà không thực sự xảy ra”. (Có mà như không :-))

Sau đâu là các tóm lược một cách tổng quan về các nâng cấp chính của phiên bản này:

Các widgets và thư viện (librarie) mới:

  • RichTextArea, HorizontalSplitPanel và VerticalSplitPanel, SuggestBox, DisclosurePanel, PushButton, ToggleButton, và một nâng cấp về Image widget giúp việc tạp các ứng dụng cao cấp một cách dễ dàng chưa từng có!
  • ImageBundle tự động gói nhiều ảnh trong một yêu cầu HTTP duy nhất.
  • NumberFormat (định dạng số) và DateTimeFormat (định dạng ngày) giúp việc lập trình các ứng dụng cho các ngôn ngữ không phải tiếng Anh trở nên dễ dàng.
  • Cuối cùng thì bạn đã có thể dùng java.lang.Serializable với GWT RPC, và GWT RPC server-side subsystem không còn bị trói chặt với servlets. Bạn có thể dễ dàng kết nối (wire) với bất kỳ nền tảng Java back-end (Java back-end infrastructure). Những thảo chương đam mê Spring bây giờ có thể vui mừng thưởng thức.
  • Một sub-system benchmarking dựa trên JUnit giúp cho việc định lượng và so sánh tốc độ của các đoạn code trở nên dễ dàng như việc viết các unit test.

Thêm nhiều lựa chọn cho việc deployment (tiếng Việt dùng từ gì vậy ta???) và tối ưu (optimizations)

  • Thêm các GWT module vào một trang HTML từ bây giờ trở nên vô cùng dễ dàng: chỉ cần thêm một tag <script>.
  • Bạn có thể dùng GWT module xuyên domain (across domain). Chúý rằng việc sử dụn(include) scripts từ các site khác mà bạn không hoàn tòan tin tưởng là một mối nguy về mặt an toàn (security risk).
  • Các file JavaScript ngoại lai (external JavaScript) được các GWT của bạn tham chiếu tới sẽ được tải lên đồng thời, thế nên các hàm dùngđể kiểm tra tính sẵn sàng của các JavaScript ngọai lai sẽ không còn cần thiết.
  • Các RPC whitelist file được tạo tự động giờ đây được sản sinh trong quá trình biên dịch, giúp bắt được các hồi ứng không mong muốn(accidentally responding) với các đối tượng GWT đã được biên dịch trước đó không thể deserialize (tiếng Việt là gì vậy ta???)
  • Bản phân phối GWT giờ đây đã bao gồm DTD cho GWT module XML format, giúp dễ dàng hơn trong khi cấu hình các module trong một XML editor hiểu DTD.

Nếu bạn quan tâm đến GWT, hẳn các bạn cũng sẽ quan tâm đến gwt-ext cũng như nghía qua GWT-EXT show case.

Tháng Chín 6, 2007 at 3:28 sáng Để lại bình luận

Posting source code trên WordPress

Sau bao ngày chờ đợi, bực mình, than phiền… cuối cùng chức năng cho phép post source code trên WordPress đã có. Hãy xem hướng dẫn của Matt, tác giả.

Tháng Chín 4, 2007 at 2:19 sáng Để lại bình luận

CSS Coding

Hầu hết các lập trình viên đều khá…lười khi phải làm công việc “mông-má” trang web của mình, nhất là những ai quen với việc chăm chú làm các chức năng có liên hệ đến database/backend. Nhưng việc này lại là khỏan ăn điểm và làm cho trang web dễ thành công (thu hút hơn). Nếu coding web hợp lý và với chủ định dùng CSS ngay từ đầu thì việc “mông má” cũng không đến nỗi là tai họa. Vậy, với CSS ta có thể làm được gì? Hãy xem trong các bài dưới đây để thấy khả năng của CSS:

  1. 70 ý tưởng của các chuyên gia CSS cho công việc lập trình (hay thiết kế?) CSS: http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/
  2. 53 Kỹ thuật không thể thiếu trong thiết kế CSS: http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/ 

Tháng Tám 7, 2007 at 8:28 sáng Để lại bình luận

Blog hay về vấn đề support Unicode trong Java và các công nghệ liên hệ đến Java trên web

Khi cần lập trình web dùng công nghệ của Java, một trong những câu hỏi thường thấy trong các forum, kể cả forum của cộng đồng Java Việt Nam đó là làm thế nào để hiển thị tiếng địa phương (tiếng Việt chẳng hạn) trên web dùng java, CSDL là Oracle chẳng hạn. Ngoài các bài có sẵn trong site của sun về Java hay trong các site của Oracle, một số tác giả có nhã ý chia sẻ như trong blog của Kieran.

Có thể xem thêm ở đây để hiểu một cách nhanh nhất về Unicode.

Muốn tự lập trình về encoding UTF8? Xem thêm ở đây. Nói cho vui thôi, chứ thấy là sợ rồi còn đâu🙂.

Tháng Tám 6, 2007 at 4:54 sáng 1 Bình luận

Post cũ hơn


Tháng Chín 2016
M T W T F S S
« Feb    
 1234
567891011
12131415161718
19202122232425
2627282930  

Bài viết mới

RSS Jason Rudolph (GRails)

  • Lỗi: có thể dòng không tin đang không hoạt động. Hãy thử lại sau.