Monday, September 29, 2014
Android Releases
0.0 - 1.0 Alpha
1.1 - 1.4 Beta
1.5 - 1.5x Cupcake
1.6 - 1.6x Donut
2.0 – 2.1 Eclair
2.2 – 2.2.3 Froyo
2.3 – 2.3.7 Gingerbread
3.0 – 3.2.6 Honeycomb
4.0 – 4.0.4 Ice Cream Sandwich
4.1 – 4.3.1 Jelly Bean
4.4 – 4.4.4 KitKat
"L" release developer preview
Motorola Droid 4 to Samsung Galaxy S5
Galaxy S5 Organize by Building App Folders
Just got the Galaxy S5. Disappointed in the implementation of this feature.
Creating new folders on the phone desktop area varies between the Samsung S5 (SS5) and that of the Motorola Droid 4 (MD4).
- MD4: Drag one icon on top of another, boom, new folder. GREAT, EASY
- SS5: Drag an icon to the top of the screen, turn left Drop on the New Folder lander, Name the Folder
Simplicity is better. What happened? Isn't the S5 Kit Kat
------------------------------------------------------
Save room on your home screen, build app folders to contain icons for multiple apps apps into one folder.
The process for creating folders is different in Android Jelly Bean than in Android Ice Cream Sandwich (ICS).
Android Jelly Bean Easy One Step (Tablet, Phone):
Just got the Galaxy S5. Disappointed in the implementation of this feature.
Creating new folders on the phone desktop area varies between the Samsung S5 (SS5) and that of the Motorola Droid 4 (MD4).
- MD4: Drag one icon on top of another, boom, new folder. GREAT, EASY
- SS5: Drag an icon to the top of the screen, turn left Drop on the New Folder lander, Name the Folder
Simplicity is better. What happened? Isn't the S5 Kit Kat
------------------------------------------------------
Save room on your home screen, build app folders to contain icons for multiple apps apps into one folder.
The process for creating folders is different in Android Jelly Bean than in Android Ice Cream Sandwich (ICS).
Android Jelly Bean Easy One Step (Tablet, Phone):
- On the Home screen, drag one icon atop another.
- As you lift your finger, both icons are combined into a group.
- Add new apps to the folder by dragging them to the folder in the same way.
- Folders look like ugly folder icons, similar to those used to manage files on a computer.
- Folders must be manually created.
- Long-press a blank part of the screen.
- Choose the Folder or New Folder landing icon.
- The folder icon will appear on the Home screen.
- Drag an icon to the folder icon.
- Any way to edit which shortcuts are in that new folder?
- Sorting seems to work
- Folders are ugly folder icons, similar to those used to manage files on a computer.
- Folders must be manually created.
- Select an icon
- Drag it t the top of the screen into the Create Folder at the top left part of the screen.
- etc.
Monday, October 15, 2012
Enabling IE to View Wiki On A Stick (WOAS) Files
IE Requires Confirmation each time you start viewing a Wiki On a Stick Wiki
By default, Windows IE prompts the user to allow "blocked" content to run each time you load a WOAS html file. This can be a real nuisance, but is also irksome when you share a WOAS document and they have trouble opening it. This either makes them suspicious about your content and/or this minor irritation makes them not want to use your document or documentation.
Configure IE to Allow Blocked Content
- From Internet Explorer, select the Tools menu (
). - Select Internet Options.
- Select the Advanced tab...
- Scroll down until you see the Security options.
- Enable the checkbox "Allow active content to run in files on My Computer".
P. S.
I would be happier if there was a way to specify a directory from which this allowed content is able to run rather than just write this blank check to allow all active content, kind of like in the security settings you can specifiy certain sites as safe. If you have any ideas about how this would be done the please let me know.P. P. S.
Thankfully FireFox doesn't have this issue.Monday, June 11, 2012
I recently purchased a 1974 Sunfish sailboat (14 ft) in partnership with another dad in our sons' Boy Scout troop. I have been using my wellness recovery time to refinish the wooden daggerboard, rudder and tiller, fix small nicks, polish the hull and deck as well as to order sails, buy a few new parts like stainless steel screws, nylon washers, new lines (rope).
The 25' halyard haul line (hoists the sails) should be 3/16 (US available at West Marine) which is approximately 5 mm but you could get by in a pinch with a nice 1/4" line if you wish, as long as it is strong. In this case, the smaller line diameter works better since we're threading through a small pulley and tying off to a small cleat. See http://www.westcoastsailing.net/default/boat-parts/sunfish/lines/halyard.html
The mainsheet can definitely be 1/4 instead of the 7 mm to 8 mm specified in some of the catalog sites. Diamond braid from Gander Mountain or other sites worked fine for us this weekend.
I think it is a good idea to use different colors for the different lines. This will avoid confusion. Also, I'd avoid nylon braided rope for either of these two, preferring instead a nice climbing type line/rope that has an outer sleeve.
We had trouble getting a new sail on-time because the "All-American" we ordered is apparently very popular and ended up on back-order. We were lucky enough to have the seller, the Sail Store, offer us the temporary use of a plain white sail (with window) (The FX sails are really a nice quality!). We took them up on the plain white loaner and it worked fine. Since it was temporary I avoided using the shower curtain hoop-type attachments. Instead I rigged the sail up with one very long strand of parachute cord for each boom, tying special hoop-like structures as I went along the length of the booms. This worked quite well. I'd guess a good rope would hold up pretty well if you're in a pinch, but may not be the best permanent solution. I think it looks better and will hold up enough for our use. It'll also be easier to de-rig when the All-American sail comes in.
Buying New Line (rope)
The references for buying new line are somewhat confusing, some references are listed in millimeters and some are contradictory for what size for which line. So I'm going to simplify that problem here. (also see the conversion chart below.) . But remember, if you're racing you must follow the official specification for all line, sails, trim, boom, mast, etc.The 25' halyard haul line (hoists the sails) should be 3/16 (US available at West Marine) which is approximately 5 mm but you could get by in a pinch with a nice 1/4" line if you wish, as long as it is strong. In this case, the smaller line diameter works better since we're threading through a small pulley and tying off to a small cleat. See http://www.westcoastsailing.net/default/boat-parts/sunfish/lines/halyard.html
The mainsheet can definitely be 1/4 instead of the 7 mm to 8 mm specified in some of the catalog sites. Diamond braid from Gander Mountain or other sites worked fine for us this weekend.
I think it is a good idea to use different colors for the different lines. This will avoid confusion. Also, I'd avoid nylon braided rope for either of these two, preferring instead a nice climbing type line/rope that has an outer sleeve.
We had trouble getting a new sail on-time because the "All-American" we ordered is apparently very popular and ended up on back-order. We were lucky enough to have the seller, the Sail Store, offer us the temporary use of a plain white sail (with window) (The FX sails are really a nice quality!). We took them up on the plain white loaner and it worked fine. Since it was temporary I avoided using the shower curtain hoop-type attachments. Instead I rigged the sail up with one very long strand of parachute cord for each boom, tying special hoop-like structures as I went along the length of the booms. This worked quite well. I'd guess a good rope would hold up pretty well if you're in a pinch, but may not be the best permanent solution. I think it looks better and will hold up enough for our use. It'll also be easier to de-rig when the All-American sail comes in.
Tuesday, July 19, 2011
Navigating to a USB Drive that is Plugged into a Ubuntu/Linux OS PC
I use Beyond Compare daily and when they published their version for Linux I immediately bought it. (It is that awesome!).
Problem:
Steps I Took to Solve It:
Solution:
Problem:
- I had a rather difficult time trying to figure out how [where] to select the file system on a USB drive that I plugged into my Ubuntu PC.
Steps I Took to Solve It:
- I started a new folder compare session.
- I could navigate to the local hard drive
- But when I select "Browse for Folder" I did not see a place to select the USB drive.
- I was expecting the USB drive to appear in the same way that the Windows file system presents them.
- I tried the BC help and online FAQ but there was no mention of how to do this.
- I have requested that they include this tip in their help system and on-line FAQ.
- Knowing a little UNIX I looked in the /dev folder but found nothing there that mapped to the USB drive.
- Seeing that the USB drive did appear as an icon on my desktop, I knew that the drive was accessible.
- Furthermore and I could use the Ubuntu file browser/explorer to view files on the USB drive.
- I double-clicked the desktop icon that represents the USB drive
- This opens the Ubuntu file system browser/explorer.
- I right-clicked on the name of the USB drive volume
- Selected "Properties"
- I discovered that the 'Location' property lists /media.
Solution:
- Instead of looking in /dev look in /media
- Using Beyond Compare you must navigate to the /media folder and then you have access to the USB drive's file system.
- This may seem like common sense but this information is not listed in the BC help should help the new Ubuntu user navigate devices and file systems.
Sunday, May 22, 2011
Android Gallery Won't Display Updated Pictures
When I edit pictures from my Droid on my PC and add them back into the Gallery, the updated pictures do not show up, instead I get this icon of gray mountains backed by a film strip.
I can see the pictures in thumbnail view but the main picture view only shows the gray mountain icon.
It doesn't happen on every picture I edited, but it does on most of them.
The followng procedure definitely fixes the problem for me:
Google needs to write a real gallery rescan program.
It seems like the gallery cache is not being updated very frequently.
Is there a straightforward way to clear the gallery cache?
(Droid X with OS 2.3 installed)
I can see the pictures in thumbnail view but the main picture view only shows the gray mountain icon.
It doesn't happen on every picture I edited, but it does on most of them.
The followng procedure definitely fixes the problem for me:
- Connect droid to computer using USB cable. (This un-mounts the SD card).
- Run the SDRescan app (From the Android Market, by Benjamin Rosseaux, suggested above.) Note: Running the sdRescan app while the droid is hooked up to the computer via USB takes a little while to complete. Also, it doesn't make sense to run this app at this time because the SD card is un-mounted, but it does seem to work...
- Disconnect droid from computer/USB cable.
- Open the Gallery.
- It will take some time while the gallery is rescanned.
Google needs to write a real gallery rescan program.
It seems like the gallery cache is not being updated very frequently.
Is there a straightforward way to clear the gallery cache?
(Droid X with OS 2.3 installed)
Sunday, May 1, 2011
NFJS Update
First of all I can't believe it's been that long since my last blog... last November??? Wow!
K, so I just returned from a @NFJS weekend-long conference. Most awesome of all conferences for calibrating your 'Technology Radar' (as Neal Ford * ThoughtWorks puts it).
Of course the cat wants to type now... and it's late ...and it's been a long week that will now stretch into another.
K, so I just returned from a @NFJS weekend-long conference. Most awesome of all conferences for calibrating your 'Technology Radar' (as Neal Ford * ThoughtWorks puts it).
Of course the cat wants to type now... and it's late ...and it's been a long week that will now stretch into another.
Saturday, February 19, 2011
Friday, November 12, 2010
MyBooks in the Clouds (...or 'iTunes' for Books)
OK so I bought an electronic copy of Unlocking Android from the publisher.
I put it on my virtual drive at work (not remembering that that volume doesn't travel w/ me). So I can't read it right now while I'm at the garage getting tires. But I do have wireless access! ...If only I could get to my e-book from the 'cloud' like a song from iTunes...
I just don't have the USB.
Would I subscribe to my books?
Would I buy a one, two or seven year subscription for access to the electronic version in the cloud? If I get updates to the version the document will outlive the paper copy. Would it be cheaper than buying paper? I would probably buy all three anyway and with that it would be likely that I'd get the paper copy only with the first edition I buy. (?)
It is a technical book about a technology that changes in terms of months, sometimes radically. It is very likely that I'd do better to subscribe to the book (if the author keps it fresh, as with the MEAP 'early access' feature at Manning Publishing).
Does it make business sense?
Boy did that really distract me from the original thing I was going to do while waiting on my car. At least they have wireless. Thanks to the people at Miles Auto Service in Richmond! They're really good!
|- - - - - -
OTOH: Google "famous androids film literature 'science fiction'"
I'm seeking a moniker for an Android software development business...
I put it on my virtual drive at work (not remembering that that volume doesn't travel w/ me). So I can't read it right now while I'm at the garage getting tires. But I do have wireless access! ...If only I could get to my e-book from the 'cloud' like a song from iTunes...
I just don't have the USB.
Would I subscribe to my books?
Would I buy a one, two or seven year subscription for access to the electronic version in the cloud? If I get updates to the version the document will outlive the paper copy. Would it be cheaper than buying paper? I would probably buy all three anyway and with that it would be likely that I'd get the paper copy only with the first edition I buy. (?)
It is a technical book about a technology that changes in terms of months, sometimes radically. It is very likely that I'd do better to subscribe to the book (if the author keps it fresh, as with the MEAP 'early access' feature at Manning Publishing).
Does it make business sense?
- What additional infrastructure?
- You have the electronic editions anyway.
- You must personalize the footers w/ the licensee name (as per the current branding of each copy on the PDF).
- Unfortunately reading PDF files online via a web browser stream is just really painful due to the performance lags as it loads. You'd have to do better w/ the online reading experience by supporting 'reader' devices such as kindle, google reader, landru, etc.
Boy did that really distract me from the original thing I was going to do while waiting on my car. At least they have wireless. Thanks to the people at Miles Auto Service in Richmond! They're really good!
|- - - - - -
OTOH: Google "famous androids film literature 'science fiction'"
I'm seeking a moniker for an Android software development business...
Tuesday, October 12, 2010
Linux For Java Developers
My XP install had gotten rather old, worn and slow and I decided to take the opportunity investigate alternate OSs and dust off my Linux skills.
The short of it is that I did get Ubuntu up and running, familiarized myself with the OS and figured out how to install the JDK and Squirrel DB Client in about 6 hours.
It wasn't particularly easy to figure everything out, but after all the legwork and documenting my steps, it's relatively easy to do. ...So that's not a deterrent. Hopefully it will be easier when it comes to setting up Eclipse (or NetBeans) and my other tools.
Part of the frustration is that (surprisingly) there isn't much good documentation out there specifically about setting up Ubuntu for Java Development. Also, a good portion of the 'Ubuntu+Java' search results apply to setting up the JRE rather than the JDK.
The first thing to get over is the way applications are packaged into repositories (think Maven) and how they are installed on Ubuntu. You don't have to use the repositories and the "Software Sources" tool but much of the documentation refers to it. Developers who are new to Ubuntu should review these concepts first to avert much frustration.
- Which distribution should I try? Ubuntu? Red Hat Fedora? Gentoo? (I'm leaning toward Ubuntu.)
- Can I get Eclipse? Does Eclipse work the same?
- There is a version of NetBeans. Should I use it?
- Can I replace my favorite tools, find better ones or find a Linux version of the same ones?
- Can XP and Linux coexist?
- How much free space do I need
- Where is my Partition Magic disk?
- I hope I don't destroy my Windows partition.
The short of it is that I did get Ubuntu up and running, familiarized myself with the OS and figured out how to install the JDK and Squirrel DB Client in about 6 hours.
It wasn't particularly easy to figure everything out, but after all the legwork and documenting my steps, it's relatively easy to do. ...So that's not a deterrent. Hopefully it will be easier when it comes to setting up Eclipse (or NetBeans) and my other tools.
Part of the frustration is that (surprisingly) there isn't much good documentation out there specifically about setting up Ubuntu for Java Development. Also, a good portion of the 'Ubuntu+Java' search results apply to setting up the JRE rather than the JDK.
The first thing to get over is the way applications are packaged into repositories (think Maven) and how they are installed on Ubuntu. You don't have to use the repositories and the "Software Sources" tool but much of the documentation refers to it. Developers who are new to Ubuntu should review these concepts first to avert much frustration.
Wednesday, March 17, 2010
Creating a Self-Running PowerPoint Presentation
How to Create a Kiosk-type Self-running PowerPoint Presentation
It is easy and best of all FREE ...
It is easy and best of all FREE ...
- Create a PowerPoint presentation
- Set-up the timing of how long each slide remains in view.
- Either:
- 'Rehearse Timings' to practice speaking
- OR
- Set the slide display time by:
- Select the 'View' tab
- Select the 'Slide Sorter' item on the ribbon bar
- Select the 'Animations' tab
- Click on a slide
- Find the area 'Advance Slide' in the upper right-hand area.
- Modify the timings labeled 'Automatically After'
- Select the 'Office Buttton'
- Select 'Publish'
- Select 'Package for CD'
- You don't actually have to put it on a CD, a flash drive works just as well.
- Name your presentation
- The default options will include the PowerPoint Viewer
- This makes your presentation file a little bit larger (1.2 MB), but obviates the need to have the presentation run on a computer with the PPT viewer installed.
- Your active presentation is included by default but you may add more PPT presentations and other content at this time.
- Choose 'Copy to Folder' (not 'Copy to CD')
- Name and select a new, empty folder that will contain all the content
- It's best select the option to have PPT include all the linked files (such as images)
- PowerPoint packages all the required files into the new 'packaged' folder
- Among all the others, two important files, autorun.inf and play.bat are created.
- Copy the packaged folder to your flash drive
- On the presentation computer just execute play.bat
Saturday, October 31, 2009
Pragmatic Change
.
Paths :
1 Active Seeking
2 When change opportunity is found, do you...
Paths :
1 Active Seeking
- Survey and Identify
- DO: find ways to automate the uncovery process and assist in the measurement
- DO: reports, tables, scripts, views
Skills needed to acquire: Grails, JMX, JNDI, RMI, Six Sigma
Vehicle: Ask questions, do research
Vehicle: Ask questions, do research
- DO: Identify, communicate and manage it
2 When change opportunity is found, do you...
- Deal with it and formalize a goal to get it fixed
- OR Deal with it wrong / not deal with it
- acknowledge it but ignore it (self-denial, self-deceipt, status quo, sloth => stagnate)
It's too hard to do that / I'd never be able to do that
Skills needed: honesty, self help, discussion with friends and colleagues
Sunday, September 20, 2009
Continuous Integration Patterns (and Anti-Patterns)
I have these nagging questions about the way I've setup a few of my CI builds. (Blog-In-progress)
Burgers are burning.. gotta run.
- I have a very granular Hudson build where each of the major build steps are individual jobs rather than have one job that calls each of the steps. There are pros and cons to this. One of the reasons I chose this is to get better feedback I know what part of the build broke. The other reason was that it was easier to re-order the tasks in a build. I wish Hudson allowed a) build steps to be commeted out, b) build steps to be described c) build steps to be inserted or d) build steps to be re-ordered. The cons are that there is more to maintain and more to have to replicate when I want to add another branch to CI.
- Is it an anti-pattern to use a task (such as a special clean) that is not part of the developer's normal workflow? I have a groovy task just for the CI that is two lines in a groovy script. Less code, but it sits outside of the normal use of developers so I forget about it being there and it wouldn't get changed if the main developer's clean got changed (violates DRY).
Burgers are burning.. gotta run.
HBW0777 Sears / Craftsman 1/2 HP Chain Drive Garage Door Opener
Problem: Neither of the remotes work but the manual button bar (the wired one in the garage) and also the keypad operate normally. The green LED behind the manual button bar flashes. The batteries in the remotes are fresh.
Fix: Get on a step ladder and press the green button up in the center rear of the motor housing. I couldn't dig up the manual but I believe that the system is in a secure 'lock' mode which disables the remote sensor for use at times when you will be away from home for a long period. It is possible that someone pressed a combination of buttons on the remotes and caused this, or that holding the manual button for a certain period of time enables lock mode, but I don't have the manual and could not locate it on-line and the buttons on the remotes do not have any labels on them.
Other problems I've had: Door reverses direction in the middle of closing. If the motor runs too fast and causes some binding when the door reaches the arc of the tracks, the system reads this as an obstruction and reverses. Solution 1: There are two slotted adjustment ports (they look like plastic screws) in rear right-hand side of the motor housing. These allow you to adjust the speed of the motor, one adjusts opening speed and one adjusts closing speed. Fix: Slow down the motor on the closing side. Solution 2: It is also possible that the optical sensors are out-of-adjustment and need to be re-aimed. It is possible that the tracks are loose or mis-aligned. One or both of the optical sensors may need to be re-aligned up or down.
System Details: Sears/Craftsman 1/2 hp chain drive, manufacture date: 11/93. Model: HBW0777. Logic Board Part No: 41A4315-7A. If anyone has the owner's manual for one of these please forward the URL.
Fix: Get on a step ladder and press the green button up in the center rear of the motor housing. I couldn't dig up the manual but I believe that the system is in a secure 'lock' mode which disables the remote sensor for use at times when you will be away from home for a long period. It is possible that someone pressed a combination of buttons on the remotes and caused this, or that holding the manual button for a certain period of time enables lock mode, but I don't have the manual and could not locate it on-line and the buttons on the remotes do not have any labels on them.
Other problems I've had: Door reverses direction in the middle of closing. If the motor runs too fast and causes some binding when the door reaches the arc of the tracks, the system reads this as an obstruction and reverses. Solution 1: There are two slotted adjustment ports (they look like plastic screws) in rear right-hand side of the motor housing. These allow you to adjust the speed of the motor, one adjusts opening speed and one adjusts closing speed. Fix: Slow down the motor on the closing side. Solution 2: It is also possible that the optical sensors are out-of-adjustment and need to be re-aimed. It is possible that the tracks are loose or mis-aligned. One or both of the optical sensors may need to be re-aligned up or down.
System Details: Sears/Craftsman 1/2 hp chain drive, manufacture date: 11/93. Model: HBW0777. Logic Board Part No: 41A4315-7A. If anyone has the owner's manual for one of these please forward the URL.
Friday, September 18, 2009
Fantasy Footbal as Introductory OO Metaphor
I try to collect good OO Metaphors and this Fantasy Football domain example has just-enough complexity to be useful yet easy to comprehend without having to be a sports fanatic.
Domain Model (buckets of nouns that can also 'Act')
league
commission
commissioner
official
team
owner
manager
general manager
coach
player
Services Model (buckets of verbs associated with domain object actions)
manager.add( player )
manager.fireCoach()
coach.callTimeOut()
player.play()
player.transfer()
owner.transfer( player )
team.play()
team.goTo
official.reviewPlay()
Attribution
I heard this one in October 2006 during a discussion among two of our best Software Architects.
There was some debate as to whether domain objects should have behavior or just be POJOs and whether the service layer should provide all behavior strictly. [See Transaction Script Pattern (all business logic belongs in Service tier)].
On the POJO side, it was asserted that most simple VOs can (should) be generated (from Hibernate mappings) ang that DTOs represent a totally unnecessary layer that needs to be coded & maintained and that it was wrong to require that they always be used. All agreed that DTOs should have no behavior and it would be an antipattern to do so.
Expand upon the definition of Value Object (VO) vs Data Transfer Object (DTO).
Expand upon the concepts of where business logic belongs. This used to be a major hang-up prior to the 'Service' concept was popular.
Expand upon the concepts of:
Domain Model (buckets of nouns that can also 'Act')
league
commission
commissioner
official
team
owner
manager
general manager
coach
player
Services Model (buckets of verbs associated with domain object actions)
manager.add( player )
manager.fireCoach()
coach.callTimeOut()
player.play()
player.transfer()
owner.transfer( player )
team.play()
team.goTo
official.reviewPlay()
Attribution
I heard this one in October 2006 during a discussion among two of our best Software Architects.
There was some debate as to whether domain objects should have behavior or just be POJOs and whether the service layer should provide all behavior strictly. [See Transaction Script Pattern (all business logic belongs in Service tier)].
On the POJO side, it was asserted that most simple VOs can (should) be generated (from Hibernate mappings) ang that DTOs represent a totally unnecessary layer that needs to be coded & maintained and that it was wrong to require that they always be used. All agreed that DTOs should have no behavior and it would be an antipattern to do so.
Expand upon the definition of Value Object (VO) vs Data Transfer Object (DTO).
Expand upon the concepts of where business logic belongs. This used to be a major hang-up prior to the 'Service' concept was popular.
Expand upon the concepts of:
- Value objects as data types (rather than intelligent beings with autonomous capabilities)
- Should Domain Objects have Behavior?
- "Middle Tier as Service Layer" aka "Service Layer as (a) Tier"
- Service vs Business Process
- Service vs Function
- Parent/Child composition hierarchy
- Service as bucket of Functions?
- Shared/Reusable Function vs Reusable Service
- Facade
- Domain
- Dependency
- Where does EJB fall in the service vs pojo continuoum?
Thursday, July 23, 2009
Specifying Document Literal Style for Apache CXF
Issue:
I've been assigned to help us migrate from xFire to CXF. Our old Web Services model was' RPC Encoded' and we need to publish/serve a WSDL in Document Literal format. I've hunted for several days researching this topic and running all kinds of example services, etc but finally fell on a good resource here at muleSource: http://www.mulesource.org/display/MULE2USER/Building+a+CXF+Web+Service
None of the other sites explained CXF and the SOAPBinding annotation very well.
Answer:
To specify that a service should be in Document Literal format, use the @SOAPBinding annotation.
I've been assigned to help us migrate from xFire to CXF. Our old Web Services model was' RPC Encoded' and we need to publish/serve a WSDL in Document Literal format. I've hunted for several days researching this topic and running all kinds of example services, etc but finally fell on a good resource here at muleSource: http://www.mulesource.org/display/MULE2USER/Building+a+CXF+Web+Service
None of the other sites explained CXF and the SOAPBinding annotation very well.
Answer:
To specify that a service should be in Document Literal format, use the @SOAPBinding annotation.
- import javax.jws.soap.SOAPBinding;
- @SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.BARE)
Tuesday, July 14, 2009
Eclipse Doesn't Recognize WebServices Annotations
This is kind of newbie issue but (1) it stumped me (2) no one else blogged a solution and (3) it seems so simple.
Background:
I am creating a web service in Eclipse but Eclipse doesn't recognize the "@WebService" annotation. I don't know if this an Eclipse feature I need to enable or some plug-in I have to install?
Annotations are actually interpreted, they're classes and you need to import the correct (javax.ws) library before you reference one. (This is not really an Eclipse issue).
BTW:
Notes:
Background:
I am creating a web service in Eclipse but Eclipse doesn't recognize the "@WebService" annotation. I don't know if this an Eclipse feature I need to enable or some plug-in I have to install?
- I type a web service annotation like @WebService to mark a Java class as a web service.
- Eclipse presents the annotation in red and floats the message 'WebService cannot be resolved to a type'
- I figure I have to add some plug-in or something and google around awhile but nothing is helpful.
- I find some references that I need to have J2EE classes in my classpath
Annotations are actually interpreted, they're classes and you need to import the correct (javax.ws) library before you reference one. (This is not really an Eclipse issue).
- Find a distribution jar that has the WebService class
- Locate Apache geronimo-ws-metadata_2.0_spec-1.1.2.jar, jsr181.jar or J2ee.jar
- Add one of the jars to the project classpath
- Add an import statement import javax.jws.WebService to your java class
- Done, now Eclipse understands the @WebService annotation
BTW:
- You'll have the same issue when you enter the @WebParam annotation (and whatever other annotations you might use), except you now have to import javax.jws.WebParam.
- The SOAPBinding annotation is in package javax.jws.soap.SOAPBinding.
Notes:
- The classes for the Web Services annotations are supplied in a number of common jar files (e.g. the geronimo jar mentioned above is not the only source of the annotations classes):
- The JDK distribution jsr181.jar
- The J2EE distribution javaee.jar
- I'm sure all this is pathetic to those who know web services, but it stumped me awhile, plus I munged up my Eclipse installation trying to find an alternate project type or plugin to configure to get the annotation to be recognized.
Friday, June 12, 2009
Debugging Your Production JVM
I've been trying to debug an issue in our QA environment for the last few weeks and also to do a presentation next Wednesday to my JUG.
I found a free tool from dev.java.net called Visual VM https://visualvm.dev.java.net/
I found VisualVm to be very useful and has many features that go way beyond jconsole and has most of the features available in a commercial product. I especially like the threads view. I wish I could do remote profiling with VisualVm but I believe that feature is probably not too far in the future. The platform is extensible via a plug-in interface.
This other slide set has some good tuning info as well http://www.slideshare.net/Byungwook/jvm-performance-tunning-1154189
I just found this SlideShare from a JavaOne conference.
This should be a good reference for my 6/17 RJUG Presentation, although there's more to a presentation than just slides, some of them don't go into much detail.
I found a free tool from dev.java.net called Visual VM https://visualvm.dev.java.net/
I found VisualVm to be very useful and has many features that go way beyond jconsole and has most of the features available in a commercial product. I especially like the threads view. I wish I could do remote profiling with VisualVm but I believe that feature is probably not too far in the future. The platform is extensible via a plug-in interface.
This other slide set has some good tuning info as well http://www.slideshare.net/Byungwook/jvm-performance-tunning-1154189
I just found this SlideShare from a JavaOne conference.
This should be a good reference for my 6/17 RJUG Presentation, although there's more to a presentation than just slides, some of them don't go into much detail.
Tuesday, June 9, 2009
Setting up a New Subversion Repository Server
Abstract
This will walk through the steps of creating and sharing a subversion repository. We're working on a virtual Windows XP instance because its almost always available and gets backed up regularly. I chose VisualSvn Server because it is almost zero configuration and it works nicely on XP, no mess no fuss. I also make use of TortoiseSVN for the task of initializing the repository, checking in and out so install TortoiseSVN right after installing VisualSvn Server. All Language Developers: No fear, VisualSvn Server is still a subversion server, no need to get Visual Studio, works with Java, *** its just a great Windows distribution that is easy to setup.
Background
We have a new development sub-project (finally) for which we can use Subversion to share/store the code base. My main project is called MASS and the new project will load natural gas production measurements (readings) from our new hand-held units via a web service.
1. Log into the Remote XP Server VM
2. Download and Install VisualSvn Server from http://www.visualsvn.com/server/. I found this article http://www.west-wind.com/presentations/subversion/ useful in making the decisions getting started. I chose SSL and Windows Authentication.
3. Configure the Repository
Use the SvnServer Admin tool available under "myComputer" > "Manage" > "Services" and "Applications".
4. Enable Repository Access
Right-click on "Repositories", select "Properties". This brings up a window with one tab labeled Security. Select the "Add" button to add user access. Select the "Locations..." button and select your active directory server as the authentication source, type the userId of a user and select "Check Names..." This should resolve the userId to a windows Domain user. By default this will give all the users entered here read/write access to any of the repositories created on this server. That works for me since our project owns the XP VM.
5. Create a Repository
Right-click on "Repositories" in the hierarchy and select "Create New Repository..." Name it what you like and select the checkbox "Create default structure (trunk, branches and tags)". After you select "OK", the status on the main admin screen should read "Total 1 repositories".
6. Right click on the new repository folder named "trunk" and select "New" and "Folder...". Name it "src" or something you are comfortable with.
7. Switch to your desktop and Create the Project root Folders
cd c:\
mkdir GAS
cd GAS
mkdir MASS
cd MASS
7. Check out the new folder from the repository
Open the file system explorer and navigate to the new project folder (MASS in my example). Right-click on the folder and select "TortoiseSVN", "Repo-browser", paste the URL of your new VisualSVN Server instance admin client, and select the newly created folder from the repository and select "Check out". This will be the basis for you to populate the rest of the repository with your existing code.
This will walk through the steps of creating and sharing a subversion repository. We're working on a virtual Windows XP instance because its almost always available and gets backed up regularly. I chose VisualSvn Server because it is almost zero configuration and it works nicely on XP, no mess no fuss. I also make use of TortoiseSVN for the task of initializing the repository, checking in and out so install TortoiseSVN right after installing VisualSvn Server. All Language Developers: No fear, VisualSvn Server is still a subversion server, no need to get Visual Studio, works with Java, *** its just a great Windows distribution that is easy to setup.
Background
We have a new development sub-project (finally) for which we can use Subversion to share/store the code base. My main project is called MASS and the new project will load natural gas production measurements (readings) from our new hand-held units via a web service.
1. Log into the Remote XP Server VM
2. Download and Install VisualSvn Server from http://www.visualsvn.com/server/. I found this article http://www.west-wind.com/presentations/subversion/ useful in making the decisions getting started. I chose SSL and Windows Authentication.
3. Configure the Repository
Use the SvnServer Admin tool available under "myComputer" > "Manage" > "Services" and "Applications".
4. Enable Repository Access
Right-click on "Repositories", select "Properties". This brings up a window with one tab labeled Security. Select the "Add" button to add user access. Select the "Locations..." button and select your active directory server as the authentication source, type the userId of a user and select "Check Names..." This should resolve the userId to a windows Domain user. By default this will give all the users entered here read/write access to any of the repositories created on this server. That works for me since our project owns the XP VM.
5. Create a Repository
Right-click on "Repositories" in the hierarchy and select "Create New Repository..." Name it what you like and select the checkbox "Create default structure (trunk, branches and tags)". After you select "OK", the status on the main admin screen should read "Total 1 repositories".
6. Right click on the new repository folder named "trunk" and select "New" and "Folder...". Name it "src" or something you are comfortable with.
7. Switch to your desktop and Create the Project root Folders
cd c:\
mkdir GAS
cd GAS
mkdir MASS
cd MASS
7. Check out the new folder from the repository
Open the file system explorer and navigate to the new project folder (MASS in my example). Right-click on the folder and select "TortoiseSVN", "Repo-browser", paste the URL of your new VisualSVN Server instance admin client, and select the newly created folder from the repository and select "Check out". This will be the basis for you to populate the rest of the repository with your existing code.
Friday, June 5, 2009
JVM Profiling and Optimization
Caveat: I'm really new at JVM profiling and memory leak troubleshooting so I'm making certain assumptions and taking certain steps to feel my way through the process.
TOOLS
I'm using a combination of tools and OS logging to get feedback from the JVM.
1. YourKit for Java (http://www.yourkit.com/)
YourKit is very easy to install against a WebLogic JVM and monitor via a remote PC desktop. It is free for developers contributing to non-commercial Open Source projects, with an established and active community and has a reasonable academic license fee. YourKit has a script that will generate the modifications needed to be made to the host JVM. This makes installation much easier.
2. Sun's VisualVM I am evaluating this as I write. I see much of the features available in YourKit here, however YourKit has really easy setup and nicer charting features. VisualVm seems to beat JConsole pretty handily. To use VisualVM to retrieve data from a remote application, the jstatd utility needs to be running on the remote JVM. All the tools need some kind of modification to either the remote server or remote JVM startup parameters.
Some of the blogs about VisualVm have yielded a few really handy commands, such as jps (find the PID of the Java Processes) and jstat (get status of JVM at PID). I also see mention of something from Sun called visualgc which is also available from Sun's dev.java.net. Some of these appear possibly to be orphan projects.
3. Java's JConsole (http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html)
Jconsole provides basic information about a profiled JVM (not as much and not presented as nicely as YourKit, but it is free) and requires more setup (see my post "Connecting to a Remote JConsole Session" for setup.
4. A series of custom logging scripts that essentially scrape Unix top or other unix admin commands for pulling out information about the running processes and logging that information to a format that can be easily put into Excel for charting and analysis.
Links:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
http://www.slideshare.net/kensipe/debugging-your-production-jvm
https://visualvm.dev.java.net/
TOOLS
I'm using a combination of tools and OS logging to get feedback from the JVM.
1. YourKit for Java (http://www.yourkit.com/)
YourKit is very easy to install against a WebLogic JVM and monitor via a remote PC desktop. It is free for developers contributing to non-commercial Open Source projects, with an established and active community and has a reasonable academic license fee. YourKit has a script that will generate the modifications needed to be made to the host JVM. This makes installation much easier.
2. Sun's VisualVM I am evaluating this as I write. I see much of the features available in YourKit here, however YourKit has really easy setup and nicer charting features. VisualVm seems to beat JConsole pretty handily. To use VisualVM to retrieve data from a remote application, the jstatd utility needs to be running on the remote JVM. All the tools need some kind of modification to either the remote server or remote JVM startup parameters.
Some of the blogs about VisualVm have yielded a few really handy commands, such as jps (find the PID of the Java Processes) and jstat (get status of JVM at PID). I also see mention of something from Sun called visualgc which is also available from Sun's dev.java.net. Some of these appear possibly to be orphan projects.
3. Java's JConsole (http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html)
Jconsole provides basic information about a profiled JVM (not as much and not presented as nicely as YourKit, but it is free) and requires more setup (see my post "Connecting to a Remote JConsole Session" for setup.
4. A series of custom logging scripts that essentially scrape Unix top or other unix admin commands for pulling out information about the running processes and logging that information to a format that can be easily put into Excel for charting and analysis.
Links:
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
http://www.slideshare.net/kensipe/debugging-your-production-jvm
https://visualvm.dev.java.net/
Subscribe to:
Posts (Atom)