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 ...


  1. Create a PowerPoint presentation
  2. Set-up the timing of how long each slide remains in view.
    • Either:
      1. 'Rehearse Timings' to practice speaking  
        • OR
      2. 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'
To package the presentation media:
  1. Select the 'Office Buttton'
  2. Select 'Publish'
  3. Select 'Package for CD
    • You don't actually have to put it on a CD, a flash drive works just as well.
  4. 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.
  5. Your active presentation is included by default but you may add more PPT presentations and other content at this time.
  6. Choose 'Copy to Folder'  (not 'Copy to CD')
  7. Name and select a new, empty folder that will contain all the content
  8. It's best select the option to have PPT include all the linked files (such as images)
  9. PowerPoint packages all the required files into the new 'packaged' folder
  10. Among all the others, two important files, autorun.inf and play.bat are created.
  11. Copy the packaged folder to your flash drive 
  12. On the presentation computer just execute play.bat

Saturday, October 31, 2009

Pragmatic Change

.

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
  • DO: Identify, communicate and manage it

2 When change opportunity is found,  do you...
  1. Deal with it and formalize a goal to get it fixed
  2. 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)



    1. 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.
    1. 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.

    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:
    • 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.
    1. import javax.jws.soap.SOAPBinding;
    2. @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?

    1. I type a web service annotation like @WebService to mark a Java class as a web service.
    2. Eclipse presents the annotation in red and floats the message 'WebService cannot be resolved to a type'
    3. I figure I have to add some plug-in or something and google around awhile but nothing is helpful.
    4. I find some references that I need to have J2EE classes in my classpath
    Answer:

    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).
    1. Find a distribution jar that has the WebService class
    2. Locate Apache geronimo-ws-metadata_2.0_spec-1.1.2.jar, jsr181.jar or J2ee.jar
    3. Add one of the jars to the project classpath
    4. Add an import statement import javax.jws.WebService to your java class
    5. 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.

    Followers