13 May 2012

Project Euler: Problem 54

After 798 lines of code, I was able to solve... I thin it took me too much effort and line of codes... there are a couple method I may factor, however it doesn't worth it; I got the correct answer and I move to the next problem.

It seems the problems that are based on real one, and kind of easy to do, but take more time than usual:

Problem 54: Poker
Problem 84: Monopoly
Problem 96: Sudoku
Problem 109: Darts
Problem 185: Mastermind

Even more, these can be calculated with pencil & paper.

11 May 2012

Filtering Classloading Failing With "ServletException: Servlet class: does not implement javax.servlet.Servlet"


In Oracle Weblogic Server 12.1.1.0

Symptoms

When having a POJO with @WebService annotation and the following is been thrown by WLS:

javax.servlet.ServletException: Servlet class: 'TestWS' does not implement javax.servlet.Servlet
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:292)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:250)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
at weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:94)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:82)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:74)
at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:60)
at weblogic.servlet.internal.StubLifecycleHelper.(StubLifecycleHelper.java:34)
at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:638)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:579)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1874)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1848)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1738)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2740)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1704)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:781)
...


Cause

This occurs when classloading filtering is being used for the packages java.* or javax.*

Although this was common in 10.3.x, this is no longer supported since 12.1.1

i.e.:

<prefer-application-packages>
<package-name>javax.jws.*</package-name>
<package-name>javax.xml.ws.*</package-name>
<package-name>javax.annotation.*</package-name>
</prefer-application-packages>

Solution

remove the following tags from weblogic-application.xml and redeploy the application again:

i.e.:

<package-name>javax.jws.*</package-name>
<package-name>javax.xml.ws.*</package-name>
<package-name>javax.annotation.*</package-name>
 
References

http://docs.oracle.com/cd/E24329_01/web.1211/e24368/classloading.htm#i1097253

10 May 2012

WebLogic Startup Mode: DEV v/s PROD

It is known that several features changes between development or production startup mode on WebLogic Server.

There is an interesting post at Frank Munz blog about it.

Until now, I have suggested about resource-reload-check-secs, webservice test client & CAT.

Probably still there are some features missing, so everybody is invited to comment.

28 April 2012

TopCoder book: cancelled

Unfortunately I have read that TopCoder book was cancelled.

This is from Oreilly's website: http://shop.oreilly.com/product/9780596802707.do

This product has been canceled.



I hope this project will be finished sometime.




UPDATE:


from TopCoder forum:


It is canceled as O'Reilly project; we're keeping the contents and the format and we're working on publishing it ourselves in electronic form.



26 April 2012

WLS: when recompiling EJB with new XSD from DDConverter NestedException Message is :011113

When attempting to pre-compile a MDB with appc the following error occurs:

[java][java] <Mar 9, 2012 10:07:20 AM EST> <Info> <J2EE> <BEA-160186> <Compiling EAR module "mdb_test.jar">
[java] 011113 NestedException Message is :011113
[java] at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.(MessageDrivenBeanInfoImpl.java:739)
[java] at weblogic.ejb.container.deployer.BeanInfoFactory.createBeanInfoImpl(BeanInfoFactory.java:36)
[java] at weblogic.ejb.container.deployer.MBeanDeploymentInfoImpl.initializeBeanInfos(MBeanDeploymentInfoImpl.java:546)
[java] at weblogic.ejb.container.deployer.MBeanDeploymentInfoImpl.(MBeanDeploymentInfoImpl.java:242)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.getStandAloneDeploymentInfo(EJBCompiler.java:1030)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.setupEJB(EJBCompiler.java:131)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:370)
[java] at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:336)
[java] at weblogic.ejb.tools.EJBModule.compileEJB(EJBModule.java:541)
[java] at weblogic.ejb.tools.EJBModule.compile(EJBModule.java:162)
[java] at weblogic.application.compiler.ToolsModuleWrapper.compile(ToolsModuleWrapper.java:107)
[java] at weblogic.application.compiler.flow.CompileModuleFlow.compileModules(CompileModuleFlow.java:133)
[java] at weblogic.application.compiler.flow.CompileModuleFlow.compile(CompileModuleFlow.java:59)
[java] at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
[java] at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
[java] at weblogic.application.compiler.FlowDriver.run(FlowDriver.java:27)
[java] at weblogic.application.compiler.EARCompiler.compile(EARCompiler.java:53)
[java] at weblogic.application.compiler.flow.AppCompilerFlow.compileInput(AppCompilerFlow.java:101)
[java] at weblogic.application.compiler.flow.AppCompilerFlow.compile(AppCompilerFlow.java:35)
[java] at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
[java] at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35)
[java] at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
[java] at weblogic.application.compiler.FlowDriver.run(FlowDriver.java:27)
[java] at weblogic.application.compiler.Appc.runBody(Appc.java:203)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:158)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:115)
[java] at weblogic.application.compiler.Appc.main(Appc.java:263)
[java] at weblogic.appc.main(appc.java:14)
[java] 011113


Cause
Customer has upgraded schema header Deployment Descriptor to EJB 3.1, provided by DDConverter.
however the EJB still is 2.1 therefore it is not good practice to give the 3.1 schema.

Solution
1.
Change the ejb-jar.xml Deployment Descriptor Schema to:

<ejb-jar < xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee">xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">

then recompile the EJB again.

2.
A similar behave has been found and solved in bug 13984579

20 April 2012

¡ Puzle !

Increiblemente vi en un libro infantil el siguiente angloamericanismo:

Asi que desde ahora seguire escribiendo: Puzle, Manayer y algún otra palabra novedosa aceptada por la RAE.

puzle.
(Del ingl. puzzle).
1. m. rompecabezas (‖ juego).



16 April 2012

WLS extensions: JRF, OWSM, etc.

WebLogic Server 10.3.6 brings bundled JRF, OWSM and other extensions that many times are necessary for integration with other technologies.

Usually was necessary to install the whole Fusion Middleware, now it is much easier for development to obtain those libraries.


15 April 2012

ImageMagick Cheat Sheet

The following commands were taken from the internet, I will give acknowledge when found:

Windows version now uses "magick" as the command:

magick vlcsnap-1280-07-14-21h45m00s867.png -crop 400x360+0+0 i1.png


magick ... # in place of `convert`
magick identify ... # in place of `identify`
magick mogrify ... # in place of `mogrify`
magick compare ... # in place of `compare`
magick compose ... # in place of `compose`


--------------------

create thumbnail:
convert -geometry 100x100 -quality 100 orgfilename.jpg thumbfilename.jpg

rotate an image:
convert orgfilename.jpg -rotate 60 rotated60.jpg

croping an image:
convert orgfilename.jpg -crop 128x128+50+50 cropped.jpg
magick filename.jpg -crop 128x128+50+50 cropped.jpg

croping an image for several files:

for file in *.png; do convert -crop 863x675+227+51 "$file" "x6/$file"; done 

convert a directory of png images to gif:
mogrify -format gif *.png
 
mogrify -format webp *.png 

watermarking with text:
convert orgfilename.jpg -font Arial -pointsize 20 -draw "gravity south fill black text 0,12 'Watermark' fill white text 1,11 'Watermark' " wmark_text_drawn.jpg

convert pdf to png
convert pdffile.pdf -colorspace RGB -resample 72×72 -units PixelsPerInch -quality 90 -resize 500×500 -size 500×500 pngfile.png


Convert jpg to pdf
convert *.jpg output.pdf
 

convert input.png PNG24:output.png

convert i00.png -crop 319x160+8+24 PNG24:r00.png

For several images to a single PDF: (yeah, not magick)

img2pdf --out z2.pdf *.png

 

Compression for PNG:

pngquant *.png

PDF too big (from jpg)
convert -quality 60 *.jpg output.pdf


Resize an image:
convert image.jpg -resize 800 image.png
(porcentaje no me funco bien)

mogrify -path xx -resize 800 *.jpg

cd to the directory where your images are located (temp) after creating a new directory to hold the changed files (say, temp2)
mogrify -path fullpathto/temp2 -resize 60x60% -quality 60 -format jpg *.png

Compare to images:
compare image1 image2 -compose src diff.png
estas imagenes pueden ser en diferente formato inclusive ! 
compare PC-200617-1248-30.pdf PC-270717-1119-53.pdf diff.pdf (pdf)
 
Append two images:

convert image1.jpg image2.jpg -append result.jpg 

To verify ImageMagick is working properly, type the following in a Windows Command Prompt window:

convert logo: logo.gif 
identify logo.gif

imdisplay


To see details of the image: (information) 

identify image.ext

identify dp1.jpg
dp1.jpg JPEG 300x374 300x374+0+0 8-bit sRGB 34082B 0.000u 0:00.009

magick identify image

magick identify -verbose r00.png

Invert colors:
convert input.png -channel RGB -negate output.png 


Black & White colors:

convert input.png -colorspace Gray output.png 

Problems with spaces and hyphens in filenames

find . -name "* *" -type f | rename 's/ /_/g'

 ---

Update 2026:

recortar multiples png con command line, seria como un rectangulo.


mkdir -p cropped

for f in *.png; do
    convert "$f" -crop 1800x960+65+95 +repage "cropped/$f"
done

 


 

Robocopy

un muy buen copiador para perifericos que esten con problemas

ROBOCOPY source destination /MIR


   /MIR :: Mirror a complete directory tree.


   /R:n :: number of Retries on failed copies: default 1 million.
   /W:n :: Wait time between retries: default is 30 seconds.


   /S :: copy Subdirectories, but not empty ones.
   /E :: copy subdirectories, including Empty ones.

i.e.:

robocopy C:\development F:\backup\development /r:2 /w:2 /s


(este copia recursivo, reintentando solo 2 veces y si se ejecuta de nuevo excluye a los archivos ya copiados ~mirroring).


Un buen resumen aparece al final:
(tambien podria ser mas verboso)


------------------------------------------------------------------------------
                Total    Copied   Skipped  Mismatch    FAILED    Extras
     Dirs :     11882     11881         1         0         0         0
    Files :    105989    105989         0         0         0         0
    Bytes :   1.541 g   1.541 g         0         0         0         0
    Times :   0:50:42   0:48:38                       0:00:00   0:02:03


    Speed :              567158 Bytes/sec.
    Speed :              32.453 MegaBytes/min.


    Ended : Sun Apr 15 19:33:30 2012

hay varias GUI no-oficiales y una oficial para robocopy, entre ellas: http://betterrobocopygui.codeplex.com/



29 March 2012

JDK 7 8 9 10

The new JDK's will have a new version every two years... now we won't wait for a unknown long time for a new version. Is that good ?

So you can correlate that JDK 10 will be on 2017

Why is this new frenzy creating new version numbering system?
FireFox and Chrome are running fast under this agile versioning...

Blog Archive

Disclaimer

Qux