Blog on the topic of assistive technology, eLearning, mind mapping, project management, visual learning, collaborative tools, and educational technology
- Export to Mindjet Player
- FastTrack Schedule 9.2
- Flash video
- Flipnotebook
- Fly_Fusion
- Fly_Pentop
- Forms
- Gantt
- Gantt Charts
- Gideon King
- Ginger Software
- Glance
- Google Apps
- Google Presentation
- IBM
- MindView 3 BE
- Mindjet Connect
- elearning
- eye-fi
- file storage
- friedlander
- handwriting recognition
- hovercam T3
- inspiredata_1.5 videos
Saturday, January 22, 2011
The "PaperShow Guy" is Off to MacWorld 2011
Yes- some folks have affectionately coined me the "PaperShow Guy" and I will be in all my glory next week when I arrive in San Francisco for MacWorld 2011. If you get to MacWorld 2011 Conference please stop by the Canson Booth 1001 and say hello and try out PaperShow for Teachers. PaperShow for Teachers won Best of Show at MacWorld 2010, and we are excited to show you the latest developments with the product which educators are really excited about. So stop by Booth 1001 and say hello and try out PaperShow for Teachers. PaperShow for Teachers has a rich set of features that your students will find very engaging. We will be offering special MacWorld 2011 pricing for PaperShow for Teachers as well was for PaperShow Enterprise Edition - so come over and take advantage of the special promotions. Hope to see you there!
Printing To the iPad with the HP 6500A
One of the really nice features of iOS 4.2 is the ability to print from the iPad to certain select printers. At this time there are several HP printers that support wireless printing using Apple's AirPrint technology. I had the opportunity today to set up the HP 6500A printer which supports the AirPrint capabilities for one of my clients who needs this capability at school, so that she can print out the written work she does in Pages from her iPad. HP provides very clear directions on how to set up the printer and configuring the wireless component was very easy and straightforward using the built-in touch screen. However, when I attempted to print from my iPad, for some reason it did not see the printer and I received feedback on my iPad that "No printers were found." I scratched my head and tried reconfiguring the wireless connection when I realized that there was a Menu item called Web services. When I selected this feature the HP 6500A asked me if I wanted to check for updates and I pressed "Yes." Once the printer had downloaded the updates I was now able to see the printer from within Pages and I was off and running. So if you get stuck remember to check for Updates on your HP Printer.
Thursday, January 13, 2011
Adobe Delivers Technical Communication Suite 3
Streamlined, Simplified Workflows Powered by New Versions of FrameMaker and RoboHelp
SAN JOSE, Calif. — Jan. 11, 2011 — Adobe Systems Incorporated (Nasdaq:ADBE) today announced Technical Communication Suite 3, the latest version of its complete single-source authoring and multi-device publishing toolkit for the creation and publication of rich, standards-compliant technical information and training material. The new improved version of Adobe’s industry-leading suite enables technical writers, help authors and instructional designers to efficiently author, enrich, manage, and seamlessly publish content to multiple channels and devices. Adobe also introduced new versions of the suite’s core products: Adobe FrameMaker® 10, a powerful template-based authoring and publishing solution for technical content; and Adobe RoboHelp® 9, an HTML and XML help, policy and knowledgebase authoring and publishing solution. Adobe Photoshop® CS5, Adobe Captivate® 5 and Adobe Acrobat® X Pro round out the suite, integrating powerful image editing, eLearning and demo creation, and dynamic PDF functionalities. “Today’s technical communication end user – from an average consumer to a design engineer – expects content experiences that are clear, concise and more engaging,” said Naresh Gupta, senior vice president, Print and Publishing at Adobe. “Technical Communication Suite 3 customers can meet this demand by creating documentation that is increasingly interactive, rich and socially enabled – all with one set of tools, within one user interface.”
New Features
Technical Communication Suite 3
• Enhanced single-sourcing: Import FrameMaker content into RoboHelp with support for FrameMaker books. Directly link DITA (Darwin Information Typing Architecture) maps, automatically convert table and list styles, and publish multiple RoboHelp outputs from within the native authoring environment.
• Dynamic “single-click” publishing: Create standards-compliant XML and DITA (1.2) content and output to multiple formats, including print, PDF, Adobe AIR™, WebHelp, EPUB, XML and HTML, and deliver it to a wide range of mobile devices, such as eReaders, smartphones and tablets. Lend your content to search engine optimization, via enhanced metadata tagging of published content.
• Expanded multimedia capabilities: Take advantage of more than 45 video and audio formats and engage audiences by adding 3D models, training demos and simulations.
FrameMaker 10
• Standards support: Take advantage of significantly enhanced XML/DITA authoring capabilities of FrameMaker 10, which is an early adopter of industry standards including DITA 1.2.
• Usability enhancements: Work more efficiently with standards-compliant, prebuilt tools and templates designed for easier authoring. Use utilities like Auto Spell Check, Highlight Support, scrolling for lengthy dialogue, and enhanced Find and Replace to get the job done faster.
• Content Management System (CMS) connectors: Integrate seamlessly with leading content management systems, including Documentum and MS SharePoint. While competitors often sell these connectors for thousands of dollars, they will be included in FrameMaker 10 at no additional cost. Single-source, review, manage and automatically publish content faster and smarter – all within your favorite technical authoring tool.
Adobe Announces Technical Communication Suite 3
RoboHelp 9
• More personalized, optimized end-user experiences:
o Enable users to filter help systems based on their role, department, geography, products, operating system, or any other parameter, ensuring the most relevant information is instantly available.
o Enrich the quality of documentation by allowing users to add comments, rate helpfulness or generate relevant content independently.
o Create rich, interactive materials by adding access to external Web content including Google search, blogs,
wikis and forums.
• Efficient Workflows: Collaborate with authors, subject matter experts and readers using advanced PDF shared reviews, live linking of shared resources, moderation-enabled workflows through Adobe AIR Help, topic-rating and other multiauthor environment capabilities.
Adobe FrameMaker Server 10 and Adobe RoboHelp Server 9, the server versions of the core FrameMaker and RoboHelp products, are two separate releases that complement the new suite and help streamline enterprise workflows.
Pricing and Availability
Technical Communication Suite 3, FrameMaker 10 and RoboHelp 9 are immediately available in English, French, German and
Japanese versions through Adobe Authorized Resellers and the Adobe Store. Estimated street price for Technical Communication
Suite 3 is US$1899 (upgrades from US$699). FrameMaker 10 and RoboHelp 9 are also available as standalone products.
Estimated street price for FrameMaker 10 and RoboHelp 9 is US$999 each (upgrades from US$399). For details on FrameMaker
Server 10 and RoboHelp Server 9 pricing visit http://www.adobe.com/products/framemakerserver.html and
http://www.adobe.com/products/robohelpserver.html
About Adobe Systems Incorporated
Adobe is changing the world through digital experiences. For more information, visit www.adobe.com.
###
© 2010 Adobe Systems Incorporated. All rights reserved. Adobe, the Adobe logo, are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. All other trademarks are the property of their respective owners.
SAN JOSE, Calif. — Jan. 11, 2011 — Adobe Systems Incorporated (Nasdaq:ADBE) today announced Technical Communication Suite 3, the latest version of its complete single-source authoring and multi-device publishing toolkit for the creation and publication of rich, standards-compliant technical information and training material. The new improved version of Adobe’s industry-leading suite enables technical writers, help authors and instructional designers to efficiently author, enrich, manage, and seamlessly publish content to multiple channels and devices. Adobe also introduced new versions of the suite’s core products: Adobe FrameMaker® 10, a powerful template-based authoring and publishing solution for technical content; and Adobe RoboHelp® 9, an HTML and XML help, policy and knowledgebase authoring and publishing solution. Adobe Photoshop® CS5, Adobe Captivate® 5 and Adobe Acrobat® X Pro round out the suite, integrating powerful image editing, eLearning and demo creation, and dynamic PDF functionalities. “Today’s technical communication end user – from an average consumer to a design engineer – expects content experiences that are clear, concise and more engaging,” said Naresh Gupta, senior vice president, Print and Publishing at Adobe. “Technical Communication Suite 3 customers can meet this demand by creating documentation that is increasingly interactive, rich and socially enabled – all with one set of tools, within one user interface.”
New Features
Technical Communication Suite 3
• Enhanced single-sourcing: Import FrameMaker content into RoboHelp with support for FrameMaker books. Directly link DITA (Darwin Information Typing Architecture) maps, automatically convert table and list styles, and publish multiple RoboHelp outputs from within the native authoring environment.
• Dynamic “single-click” publishing: Create standards-compliant XML and DITA (1.2) content and output to multiple formats, including print, PDF, Adobe AIR™, WebHelp, EPUB, XML and HTML, and deliver it to a wide range of mobile devices, such as eReaders, smartphones and tablets. Lend your content to search engine optimization, via enhanced metadata tagging of published content.
• Expanded multimedia capabilities: Take advantage of more than 45 video and audio formats and engage audiences by adding 3D models, training demos and simulations.
FrameMaker 10
• Standards support: Take advantage of significantly enhanced XML/DITA authoring capabilities of FrameMaker 10, which is an early adopter of industry standards including DITA 1.2.
• Usability enhancements: Work more efficiently with standards-compliant, prebuilt tools and templates designed for easier authoring. Use utilities like Auto Spell Check, Highlight Support, scrolling for lengthy dialogue, and enhanced Find and Replace to get the job done faster.
• Content Management System (CMS) connectors: Integrate seamlessly with leading content management systems, including Documentum and MS SharePoint. While competitors often sell these connectors for thousands of dollars, they will be included in FrameMaker 10 at no additional cost. Single-source, review, manage and automatically publish content faster and smarter – all within your favorite technical authoring tool.
Adobe Announces Technical Communication Suite 3
RoboHelp 9
• More personalized, optimized end-user experiences:
o Enable users to filter help systems based on their role, department, geography, products, operating system, or any other parameter, ensuring the most relevant information is instantly available.
o Enrich the quality of documentation by allowing users to add comments, rate helpfulness or generate relevant content independently.
o Create rich, interactive materials by adding access to external Web content including Google search, blogs,
wikis and forums.
• Efficient Workflows: Collaborate with authors, subject matter experts and readers using advanced PDF shared reviews, live linking of shared resources, moderation-enabled workflows through Adobe AIR Help, topic-rating and other multiauthor environment capabilities.
Adobe FrameMaker Server 10 and Adobe RoboHelp Server 9, the server versions of the core FrameMaker and RoboHelp products, are two separate releases that complement the new suite and help streamline enterprise workflows.
Pricing and Availability
Technical Communication Suite 3, FrameMaker 10 and RoboHelp 9 are immediately available in English, French, German and
Japanese versions through Adobe Authorized Resellers and the Adobe Store. Estimated street price for Technical Communication
Suite 3 is US$1899 (upgrades from US$699). FrameMaker 10 and RoboHelp 9 are also available as standalone products.
Estimated street price for FrameMaker 10 and RoboHelp 9 is US$999 each (upgrades from US$399). For details on FrameMaker
Server 10 and RoboHelp Server 9 pricing visit http://www.adobe.com/products/framemakerserver.html and
http://www.adobe.com/products/robohelpserver.html
About Adobe Systems Incorporated
Adobe is changing the world through digital experiences. For more information, visit www.adobe.com.
###
© 2010 Adobe Systems Incorporated. All rights reserved. Adobe, the Adobe logo, are either registered
trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. All other trademarks are the property of their respective owners.
Tuesday, January 11, 2011
Examples of eLearning–Ten Great Resources
I was just asked for some examples of eLearning. I had collected up eLearning Examples a couple years ago, but thought it was worth going back to look for more. The following are some very good lists of widely varying examples of eLearning.
- Elearning samples
- eLearning Examples
- Examples of E-Learning
- Where are Examples of eLearning? Lots Right Here!
- Two examples of elearning
- Elearning example: Branching scenario
- eLearning Examples
- 100+ Free Websites to Find out About Anything & Everything
- 100+ places to learn a language online
- 100+ free sites for learning about business
The last three provide a glimpse into the great variation that exists to learn and get help on particular topics. While a lot of people think of eLearning as being a course, notice how few of the resources in those last three are actual online courses. Instead, most examples of eLearning actually fall outside of that realm.
Monday, January 10, 2011
Olympic Limited Releases OPTi-Docs for MindManager
As a long time MindManger User it is really exciting to see how 3rd party companies can expand the functionality of the program with add-ins. I have come to know Nigel Goult from Olympic Limited and over the years he and his company have developed some very innovative and unique add-ins for MindManager. I had a chance to catch up with Nigel last week and he shared with me some of his new development work that he just completed on Opti-Docs for MindManger.
Brian: Tell us about your company Olympic Limited?
Nigel: Olympic is a supplier of information management tools and a developer of value added solutions/content. We primarily focus on MindManager add-in development but are steadily working our way towards platform independent solutions and have just recently completed our first solution for PRINCE2 project management, OPTi-P2 for Windows. Our knowledge of MindManager spans almost ten years across three companies and we have been involved in add-in development since MindManager X5.
Brian; Tell us about Olympic and the range of your products?
Nigel: One of our recent goals was to start to create a brand for Olympic and that has now become what we call our "OPTi-Range" of solutions. Currently the range includes:
• OPTi-P2 for MindManager, a PRINCE2 Project Management Solution
• OPTi-Q for MindManager, a Quality Management System based on ISO9000
• OPTi-Suite for MindManager, a utility add-in that extends MindManager
• OPTi-P2 for Windows, a platform independent PRINCE2 solution for Windows
• OPTi-Docs for MindManager, our latest MindManager add-in to manage documents linked to MindManager maps.
All of our products are developed with simplicity in mind. We believe that day to day activities such as project management, document management etc do not have to be complex and often simple solutions provide the best results. That is always the key objective whenever we look at producing a solution for any given task.
Brian: Please share with us how Opti-DOCS came about?
Nigel: OPTi-Docs came about through several discussions I had with a long time colleague who is also a Mindjet MindManager Value Added partner like Olympic. During several conversations the fact that one of the first things that new users of MindManager tend to do is attach documents or files of some type into their maps became very apparent. This quite common task/use had always been obvious to me but I had never looked beyond the basics of the process and suddenly it struck me that currently there is no real way to easily control documents of this nature unless you are using something like Sharepoint etc. We did some thinking about what basic qualities an add-in would require and after a few brainstorms OPTi-Docs was born.
Brian: What are the Key Features?
We decided that the add-in would require several key features to really deliver benefit and as a minimum decided that a simple check-in/check-out mechanism was definitely required as well as an easily accessible top level overview of document changes so users could quickly see what changes had taken place for each document.
The add-in creates a new MindManager Task Pane that displays the details of documents on selected topics and this makes it easy for users to see the current status of the selected document and its history etc.
Auto-revision was also key to the add-in as was the ability to easily include past document revisions in the map for other users who perhaps did not have OPTi-Docs installed. Above all the add-in had to be simple. We wanted it to be very much a background process that simply just worked for the users and we think that the release offers a truly easy to use system that delivers a good level of control for locally linked MindManager documents.
Brian: Talk about the Value proposition
Nigel: MindManager is a great tool for organizing documents but when you want to apply controls it is cumbersome to have to open a linked document and then save it with a new name and then have to re-link to the new file. This takes time and most people tend to just edit the document and then overwrite the original meaning they lose document history and the ability to audit changes through iterative documents. Using OPTi-Docs automates this process and provides a simple document control system with a minimum of user interaction.
OPTi-Docs can also be used with almost ANY file type so it is not just "documents" that can be controlled but any file that is going through an iterative change process. Image files, audio files, zip archives, even software applications and installers can all be controlled with OPTi-Docs.
Brian: How do you envision that users of MindManager would use Opti-DOCS?
Nigel: The possible user base for OPTi-Docs is very large. It can be used by anyone who links files to their MindManager maps but some very specific examples of user types are:
• Project Managers
• Quality Practitioners
• Solicitors
• Lawyers
• Librarians
• Software Developers
• Graphic Artists
• CAD Librarians
• Human Resource Managers
• Technical Authors
The list could go on...and on.
We developed the add-in to be compatible with MindManager versions 6, 7, 8 and 9 so users of earlier versions can also take advantage of the benefits that OPTi-Docs can offer.
Brian: What are some of the unique features of OPTi-Docs?
Nigel: OPTi-Docs does not have what I would call "unique" features. Check-in/Check-out routines and auto version increments etc are not unique, however, we are not aware of another solution that specifically aids MindManager users with this task except of course for the much larger Sharepoint type scenario's.
Brian:What do you see as the benefits of users using Opti-DOCs?
Nigel: Users benefit by gaining a level of control of documents in their maps. As mentioned earlier, the add-in's simplicity and background automation help users achieve control with very little effort or involvement except where necessary. Quick visibility of document status and change history also helps users understand their documents progress and helps users identify the current status/stage a document is at in its lifecycle.
Brian: What are your customers saying?
Nigel: OPTi-Docs has been very well received by our customers and has proved to be the second most popular add-in we offer. It has also aided users of of our other add-ins/solutions such as OPTi-P2 and OPT-Q, both solutions that have documentation attached to their main dashboards, by bringing document control to those solutions. In fact OPTi-Docs is now provided FREE to purchasers of OPTi-P2 and OPTi-Q to help users of those solutions get maximum value and benefit from them.
Brian: Are there plans for future developments for Opti-DOCS?
Nigel: OPTi-Docs is very much a product in what we call "fluid development" which means it is being improved as and when we come up with ideas or are presented with feedback from customers.
We are already working on several new features to be included in an update which will be available in Q1 of 2011. These will include roll back of revisions, an additional method of accessing document details and some maintenance options to help users manage the files that the add-in creates.
Brian: Nigel thanks so much spending the time talking about OPTi-Docs. and thank you and your company Olympic Limited for providing me with 3 licenses as part of an OPTI-Docs give away. In order to be in the running for the free licenses I will need you to Tweet this statement. Read about how you can use OPTi-DOCS for MindManager to streamline your document management for the New Year!- http://bit.ly/hjUIAF
Brian: Tell us about your company Olympic Limited?
Nigel: Olympic is a supplier of information management tools and a developer of value added solutions/content. We primarily focus on MindManager add-in development but are steadily working our way towards platform independent solutions and have just recently completed our first solution for PRINCE2 project management, OPTi-P2 for Windows. Our knowledge of MindManager spans almost ten years across three companies and we have been involved in add-in development since MindManager X5.
Brian; Tell us about Olympic and the range of your products?
Nigel: One of our recent goals was to start to create a brand for Olympic and that has now become what we call our "OPTi-Range" of solutions. Currently the range includes:
• OPTi-P2 for MindManager, a PRINCE2 Project Management Solution
• OPTi-Q for MindManager, a Quality Management System based on ISO9000
• OPTi-Suite for MindManager, a utility add-in that extends MindManager
• OPTi-P2 for Windows, a platform independent PRINCE2 solution for Windows
• OPTi-Docs for MindManager, our latest MindManager add-in to manage documents linked to MindManager maps.
All of our products are developed with simplicity in mind. We believe that day to day activities such as project management, document management etc do not have to be complex and often simple solutions provide the best results. That is always the key objective whenever we look at producing a solution for any given task.
Brian: Please share with us how Opti-DOCS came about?
Nigel: OPTi-Docs came about through several discussions I had with a long time colleague who is also a Mindjet MindManager Value Added partner like Olympic. During several conversations the fact that one of the first things that new users of MindManager tend to do is attach documents or files of some type into their maps became very apparent. This quite common task/use had always been obvious to me but I had never looked beyond the basics of the process and suddenly it struck me that currently there is no real way to easily control documents of this nature unless you are using something like Sharepoint etc. We did some thinking about what basic qualities an add-in would require and after a few brainstorms OPTi-Docs was born.
Brian: What are the Key Features?
We decided that the add-in would require several key features to really deliver benefit and as a minimum decided that a simple check-in/check-out mechanism was definitely required as well as an easily accessible top level overview of document changes so users could quickly see what changes had taken place for each document.
The add-in creates a new MindManager Task Pane that displays the details of documents on selected topics and this makes it easy for users to see the current status of the selected document and its history etc.
Auto-revision was also key to the add-in as was the ability to easily include past document revisions in the map for other users who perhaps did not have OPTi-Docs installed. Above all the add-in had to be simple. We wanted it to be very much a background process that simply just worked for the users and we think that the release offers a truly easy to use system that delivers a good level of control for locally linked MindManager documents.
Brian: Talk about the Value proposition
Nigel: MindManager is a great tool for organizing documents but when you want to apply controls it is cumbersome to have to open a linked document and then save it with a new name and then have to re-link to the new file. This takes time and most people tend to just edit the document and then overwrite the original meaning they lose document history and the ability to audit changes through iterative documents. Using OPTi-Docs automates this process and provides a simple document control system with a minimum of user interaction.
OPTi-Docs can also be used with almost ANY file type so it is not just "documents" that can be controlled but any file that is going through an iterative change process. Image files, audio files, zip archives, even software applications and installers can all be controlled with OPTi-Docs.
Brian: How do you envision that users of MindManager would use Opti-DOCS?
Nigel: The possible user base for OPTi-Docs is very large. It can be used by anyone who links files to their MindManager maps but some very specific examples of user types are:
• Project Managers
• Quality Practitioners
• Solicitors
• Lawyers
• Librarians
• Software Developers
• Graphic Artists
• CAD Librarians
• Human Resource Managers
• Technical Authors
The list could go on...and on.
We developed the add-in to be compatible with MindManager versions 6, 7, 8 and 9 so users of earlier versions can also take advantage of the benefits that OPTi-Docs can offer.
Brian: What are some of the unique features of OPTi-Docs?
Nigel: OPTi-Docs does not have what I would call "unique" features. Check-in/Check-out routines and auto version increments etc are not unique, however, we are not aware of another solution that specifically aids MindManager users with this task except of course for the much larger Sharepoint type scenario's.
Brian:What do you see as the benefits of users using Opti-DOCs?
Nigel: Users benefit by gaining a level of control of documents in their maps. As mentioned earlier, the add-in's simplicity and background automation help users achieve control with very little effort or involvement except where necessary. Quick visibility of document status and change history also helps users understand their documents progress and helps users identify the current status/stage a document is at in its lifecycle.
Brian: What are your customers saying?
Nigel: OPTi-Docs has been very well received by our customers and has proved to be the second most popular add-in we offer. It has also aided users of of our other add-ins/solutions such as OPTi-P2 and OPT-Q, both solutions that have documentation attached to their main dashboards, by bringing document control to those solutions. In fact OPTi-Docs is now provided FREE to purchasers of OPTi-P2 and OPTi-Q to help users of those solutions get maximum value and benefit from them.
Brian: Are there plans for future developments for Opti-DOCS?
Nigel: OPTi-Docs is very much a product in what we call "fluid development" which means it is being improved as and when we come up with ideas or are presented with feedback from customers.
We are already working on several new features to be included in an update which will be available in Q1 of 2011. These will include roll back of revisions, an additional method of accessing document details and some maintenance options to help users manage the files that the add-in creates.
Brian: Nigel thanks so much spending the time talking about OPTi-Docs. and thank you and your company Olympic Limited for providing me with 3 licenses as part of an OPTI-Docs give away. In order to be in the running for the free licenses I will need you to Tweet this statement. Read about how you can use OPTi-DOCS for MindManager to streamline your document management for the New Year!- http://bit.ly/hjUIAF
Saturday, January 8, 2011
Stored procedure PDQ / PDQ dos procedimentos
This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português
English version:
A few years ago I needed to check if I had some stored procedures created with PDQ. Maybe some readers don't know, but if you have SET PDQPRIORITY n in your session before creating a procedure it will run with that PDQ. And that can cause abnormal resource consumption. In most cases you'll want your procedures created without PDQ.
The PDQ associated with a procedure will also change if you run UPDATE STATISTICS FOR PROCEDURE [...], in a session with PDQ active. This is also a frequent issue when people forgot to turn it off or when the statistics are gathered for tables (where PDQ can be helpful) and procedures on the same command or script.
So, how to check the PDQ of your procedures? The catalog tables don't provide this information, so at the time I asked for help internally within IBM. Cosmo, from UK came to my rescue with a strange query that I used successfully a couple of times. The query checks the first 3 characters of the column "data" from sysprocplan where planid = -2.... Don't ask... supposedly this is an encode of the PDQ value.
Recently I had another situation on a customer, where we suspected they had their procedures with PDQ. We were expecting to see the value of 80 (which we caught in some sessions) but all we saw was NULL. Once again I asked Cosmo for help, and during our conversations we noticed that we only had run the query on little endian platforms (Linux on Intel and Tru64). So, Cosmo sent me a script that created 100 procedures with different PDQ levels and then returns the encoded values. It was no surprise that the values were different. Following Cosmo's suggestion I joined both set of values into a big CASE statement that you can check at the end of this article.
The query has a few important points:
Versão Portuguesa:
Há alguns anos atrás precisei de verificar se tinha criado algum procedimento com PDQ. Talvez alguns leitores não saibam, mas se tivermos executado SET PDQPRIORITY n na sessão antes de criar um procedimento, este irá ser executado com esse valor de PDQ. E isso pode causar um consumo anormal de recursos. Na maioria das situações não queremos ter procedimentos criados com PDQ.
O PDQ associado a um procedimento também muda se corrermos um UPDATE STATISTICS FOR PROCEDURE [...], numa sessão com PDQ activo. Isto é um problema habitual quando nos esquecemos de desligar o PDQ, ou quando as estatísticas são criadas para tabelas (processo onde o PDQ é benéfico) e procedimentos no mesmo comando ou script.
Como podemos verificar o PDQ dos procedimentos? As tabelas do catálogo não disponibilizam esta informação, por isso na altura pedi ajuda internamente na IBM. O Cosmo, de UK, auxiliou-me com o envio de uma query um pouco estranha que usei algumas vezes com sucesso. A query verifica os três primeiros caracteres de uma coluna "data" da tabela sysprocplan, onde "planid = -2"... Não pergunte... É suposto isto ser o valor de PDQ codificado de alguma forma.
Recentemente tive outra situação num cliente onde suspeitávamos que tinham os procedimentos com PDQ. Esperávamos ver o valor 80 (que tinhamos visto activo em algumas sessões), mas tudo o que a query nos dava era NULL. Note-se que se tivesse olhado bem para a query deveria ter percebido que o NULL implicava um erro. Mas como estávamos à espera de ver um valor (80) cometi um "erro de simpatia". Recorri novamente ao Cosmo para ajuda. E durante as nossas trocas de impressões notámos que só tinhamos corrido a query em plataforms que usam little endian (Linux em Intel e Tru64). Assim o Cosmo enviou-me um script que cria 100 procedimentos com diferentes valores de PDQ e que retorna os respectivos valores codificados. Não foi surpresa ver valores diferentes. Seguindo uma sugestão do Cosmo, juntei ambos os conjuntos de valores numa instrução CASE que pode ser consultada no final deste artigo.
A query tem alguns pontos importantes:
Non-procedural query:
Query não procedimental:
Procedural version:
Versão procedimental:
Updated on Jan 12, 2011: Cosmo noted that the procedure should be declared as a function and asked me to reference him as Cosmo instead of Simon David
Alterado em 12 de Jan de 2011: O Cosmo referiu que o procedimento deveria ser declarado como função e pediu para ser referido como Cosmo em vez de Simon David
Este artigo está escrito em Inglês e Português
English version:
A few years ago I needed to check if I had some stored procedures created with PDQ. Maybe some readers don't know, but if you have SET PDQPRIORITY n in your session before creating a procedure it will run with that PDQ. And that can cause abnormal resource consumption. In most cases you'll want your procedures created without PDQ.
The PDQ associated with a procedure will also change if you run UPDATE STATISTICS FOR PROCEDURE [...], in a session with PDQ active. This is also a frequent issue when people forgot to turn it off or when the statistics are gathered for tables (where PDQ can be helpful) and procedures on the same command or script.
So, how to check the PDQ of your procedures? The catalog tables don't provide this information, so at the time I asked for help internally within IBM. Cosmo, from UK came to my rescue with a strange query that I used successfully a couple of times. The query checks the first 3 characters of the column "data" from sysprocplan where planid = -2.... Don't ask... supposedly this is an encode of the PDQ value.
Recently I had another situation on a customer, where we suspected they had their procedures with PDQ. We were expecting to see the value of 80 (which we caught in some sessions) but all we saw was NULL. Once again I asked Cosmo for help, and during our conversations we noticed that we only had run the query on little endian platforms (Linux on Intel and Tru64). So, Cosmo sent me a script that created 100 procedures with different PDQ levels and then returns the encoded values. It was no surprise that the values were different. Following Cosmo's suggestion I joined both set of values into a big CASE statement that you can check at the end of this article.
The query has a few important points:
- I used data[1,3] in the CASE statement. We could use data::CHAR(3), but with that it would not run on version 7. It's not supported anymore, but there are still people using it, so I decided to use a syntax that's compatible with those old versions.
- If I remember correctly Cosmo's first query was really a function that received the procedure name. I'm including that as another option in the end of the article. In that version the query raises and error if it enters the ELSE condition of the CASE statement. In the version I was using at the later customer, the case returned NULL and that fulled me... In this new version it will raise an error since it means there is something wrong with the query.
For the non-procedural version, I did a small and dirty trick: If it enters the ELSE condition it will try to return a value divided by zero. This will cause an error.
Note that this conditions can't happen because the PDQ must be a value between 0 and 100. So if in the future the encoding changes the query will start raising errors, and this should alert the user... - The encoded values for PDQ 1 to 100 are distinct in the two types of platforms. The encoded value for 0 however is equal. That's why we have two WHEN conditions for each value between 1 and 100 and just one for 0.
Versão Portuguesa:
Há alguns anos atrás precisei de verificar se tinha criado algum procedimento com PDQ. Talvez alguns leitores não saibam, mas se tivermos executado SET PDQPRIORITY n na sessão antes de criar um procedimento, este irá ser executado com esse valor de PDQ. E isso pode causar um consumo anormal de recursos. Na maioria das situações não queremos ter procedimentos criados com PDQ.
O PDQ associado a um procedimento também muda se corrermos um UPDATE STATISTICS FOR PROCEDURE [...], numa sessão com PDQ activo. Isto é um problema habitual quando nos esquecemos de desligar o PDQ, ou quando as estatísticas são criadas para tabelas (processo onde o PDQ é benéfico) e procedimentos no mesmo comando ou script.
Como podemos verificar o PDQ dos procedimentos? As tabelas do catálogo não disponibilizam esta informação, por isso na altura pedi ajuda internamente na IBM. O Cosmo, de UK, auxiliou-me com o envio de uma query um pouco estranha que usei algumas vezes com sucesso. A query verifica os três primeiros caracteres de uma coluna "data" da tabela sysprocplan, onde "planid = -2"... Não pergunte... É suposto isto ser o valor de PDQ codificado de alguma forma.
Recentemente tive outra situação num cliente onde suspeitávamos que tinham os procedimentos com PDQ. Esperávamos ver o valor 80 (que tinhamos visto activo em algumas sessões), mas tudo o que a query nos dava era NULL. Note-se que se tivesse olhado bem para a query deveria ter percebido que o NULL implicava um erro. Mas como estávamos à espera de ver um valor (80) cometi um "erro de simpatia". Recorri novamente ao Cosmo para ajuda. E durante as nossas trocas de impressões notámos que só tinhamos corrido a query em plataforms que usam little endian (Linux em Intel e Tru64). Assim o Cosmo enviou-me um script que cria 100 procedimentos com diferentes valores de PDQ e que retorna os respectivos valores codificados. Não foi surpresa ver valores diferentes. Seguindo uma sugestão do Cosmo, juntei ambos os conjuntos de valores numa instrução CASE que pode ser consultada no final deste artigo.
A query tem alguns pontos importantes:
- Utilizei data[1,3] na instrução CASE. Podíamos utilizar data::CHAR(3), mas com isso a query não correria na versão 7. Esta versão já está sem suporte, mas ainda é usada, por isso preferi uma sintaxe compatível com versões mais antigas
- Se bem me recordo a primeira query que o Cosmo me enviou, era na realidade uma função que recebia o nome do procedimento que queríamos verificar. Esta forma está também incluída no final do artigo. Nesta forma o código causa um erro caso entre na condição ELSE do CASE. Na versão que estava a usar neste último cliente, o CASE retornava NULL e isso enganou-me... Nesta versão actualizada e corrigida, irá gerar um erro, dado que isso implica que algo não está correcto na query. Não versão não procedimental incluí um pequeno truque: Se entrar no ELSE do CASE vai tentar retornar um valor a dividir por zero. Isto irá causar um erro.
Note-se que esta condição não pode acontecer pois o PDQ será sempre um valor entre 0 e 100. Se no futuro os valores codificados forem alterados a query deverá começar a dar erro, e isso deverá alertar o utilizador... - Os valores codificados de PDQ de 1 a 100 são distintos nos dois tipos de plataforma (little endian e big endian). No entanto o valor codificado para 0 é igual. É por isso que temos duas condições WHEN para cada valor entre 1 e 100 e só um para o valor 0.
Non-procedural query:
Query não procedimental:
SELECT
f.procname,
CASE data[1,3]
WHEN "AAA" THEN 0
WHEN "AQA" THEN 1
WHEN "AAE" THEN 1
WHEN "AgA" THEN 2
WHEN "AAI" THEN 2
WHEN "AwA" THEN 3
WHEN "AAM" THEN 3
WHEN "BAA" THEN 4
WHEN "AAQ" THEN 4
WHEN "BQA" THEN 5
WHEN "AAU" THEN 5
WHEN "BgA" THEN 6
WHEN "AAY" THEN 6
WHEN "BwA" THEN 7
WHEN "AAc" THEN 7
WHEN "CAA" THEN 8
WHEN "AAg" THEN 8
WHEN "CQA" THEN 9
WHEN "AAk" THEN 9
WHEN "CgA" THEN 10
WHEN "AAo" THEN 10
WHEN "CwA" THEN 11
WHEN "AAs" THEN 11
WHEN "DAA" THEN 12
WHEN "AAw" THEN 12
WHEN "DQA" THEN 13
WHEN "AA0" THEN 13
WHEN "DgA" THEN 14
WHEN "AA4" THEN 14
WHEN "DwA" THEN 15
WHEN "AA8" THEN 15
WHEN "EAA" THEN 16
WHEN "ABA" THEN 16
WHEN "EQA" THEN 17
WHEN "ABE" THEN 17
WHEN "EgA" THEN 18
WHEN "ABI" THEN 18
WHEN "EwA" THEN 19
WHEN "ABM" THEN 19
WHEN "FAA" THEN 20
WHEN "ABQ" THEN 20
WHEN "FQA" THEN 21
WHEN "ABU" THEN 21
WHEN "FgA" THEN 22
WHEN "ABY" THEN 22
WHEN "FwA" THEN 23
WHEN "ABc" THEN 23
WHEN "GAA" THEN 24
WHEN "ABg" THEN 24
WHEN "GQA" THEN 25
WHEN "ABk" THEN 25
WHEN "GgA" THEN 26
WHEN "ABo" THEN 26
WHEN "GwA" THEN 27
WHEN "ABs" THEN 27
WHEN "HAA" THEN 28
WHEN "ABw" THEN 28
WHEN "HQA" THEN 29
WHEN "AB0" THEN 29
WHEN "HgA" THEN 30
WHEN "AB4" THEN 30
WHEN "HwA" THEN 31
WHEN "AB8" THEN 31
WHEN "IAA" THEN 32
WHEN "ACA" THEN 32
WHEN "IQA" THEN 33
WHEN "ACE" THEN 33
WHEN "IgA" THEN 34
WHEN "ACI" THEN 34
WHEN "IwA" THEN 35
WHEN "ACM" THEN 35
WHEN "JAA" THEN 36
WHEN "ACQ" THEN 36
WHEN "JQA" THEN 37
WHEN "ACU" THEN 37
WHEN "JgA" THEN 38
WHEN "ACY" THEN 38
WHEN "JwA" THEN 39
WHEN "ACc" THEN 39
WHEN "KAA" THEN 40
WHEN "ACg" THEN 40
WHEN "KQA" THEN 41
WHEN "ACk" THEN 41
WHEN "KgA" THEN 42
WHEN "ACo" THEN 42
WHEN "KwA" THEN 43
WHEN "ACs" THEN 43
WHEN "LAA" THEN 44
WHEN "ACw" THEN 44
WHEN "LQA" THEN 45
WHEN "AC0" THEN 45
WHEN "LgA" THEN 46
WHEN "AC4" THEN 46
WHEN "LwA" THEN 47
WHEN "AC8" THEN 47
WHEN "MAA" THEN 48
WHEN "ADA" THEN 48
WHEN "MQA" THEN 49
WHEN "ADE" THEN 49
WHEN "MgA" THEN 50
WHEN "ADI" THEN 50
WHEN "MwA" THEN 51
WHEN "ADM" THEN 51
WHEN "NAA" THEN 52
WHEN "ADQ" THEN 52
WHEN "NQA" THEN 53
WHEN "ADU" THEN 53
WHEN "NgA" THEN 54
WHEN "ADY" THEN 54
WHEN "NwA" THEN 55
WHEN "ADc" THEN 55
WHEN "OAA" THEN 56
WHEN "ADg" THEN 56
WHEN "OQA" THEN 57
WHEN "ADk" THEN 57
WHEN "OgA" THEN 58
WHEN "ADo" THEN 58
WHEN "OwA" THEN 59
WHEN "ADs" THEN 59
WHEN "PAA" THEN 60
WHEN "ADw" THEN 60
WHEN "PQA" THEN 61
WHEN "AD0" THEN 61
WHEN "PgA" THEN 62
WHEN "AD4" THEN 62
WHEN "PwA" THEN 63
WHEN "AD8" THEN 63
WHEN "QAA" THEN 64
WHEN "AEA" THEN 64
WHEN "QQA" THEN 65
WHEN "AEE" THEN 65
WHEN "QgA" THEN 66
WHEN "AEI" THEN 66
WHEN "QwA" THEN 67
WHEN "AEM" THEN 67
WHEN "RAA" THEN 68
WHEN "AEQ" THEN 68
WHEN "RQA" THEN 69
WHEN "AEU" THEN 69
WHEN "RgA" THEN 70
WHEN "AEY" THEN 70
WHEN "RwA" THEN 71
WHEN "AEc" THEN 71
WHEN "SAA" THEN 72
WHEN "AEg" THEN 72
WHEN "SQA" THEN 73
WHEN "AEk" THEN 73
WHEN "SgA" THEN 74
WHEN "AEo" THEN 74
WHEN "SwA" THEN 75
WHEN "AEs" THEN 75
WHEN "TAA" THEN 76
WHEN "AEw" THEN 76
WHEN "TQA" THEN 77
WHEN "AE0" THEN 77
WHEN "TgA" THEN 78
WHEN "AE4" THEN 78
WHEN "TwA" THEN 79
WHEN "AE8" THEN 79
WHEN "UAA" THEN 80
WHEN "AFA" THEN 80
WHEN "UQA" THEN 81
WHEN "AFE" THEN 81
WHEN "UgA" THEN 82
WHEN "AFI" THEN 82
WHEN "UwA" THEN 83
WHEN "AFM" THEN 83
WHEN "VAA" THEN 84
WHEN "AFQ" THEN 84
WHEN "VQA" THEN 85
WHEN "AFU" THEN 85
WHEN "VgA" THEN 86
WHEN "AFY" THEN 86
WHEN "VwA" THEN 87
WHEN "AFc" THEN 87
WHEN "WAA" THEN 88
WHEN "AFg" THEN 88
WHEN "WQA" THEN 89
WHEN "AFk" THEN 89
WHEN "WgA" THEN 90
WHEN "AFo" THEN 90
WHEN "WwA" THEN 91
WHEN "AFs" THEN 91
WHEN "XAA" THEN 92
WHEN "AFw" THEN 92
WHEN "XQA" THEN 93
WHEN "AF0" THEN 93
WHEN "XgA" THEN 94
WHEN "AF4" THEN 94
WHEN "XwA" THEN 95
WHEN "AF8" THEN 95
WHEN "YAA" THEN 96
WHEN "AGA" THEN 96
WHEN "YQA" THEN 97
WHEN "AGE" THEN 97
WHEN "YgA" THEN 98
WHEN "AGI" THEN 98
WHEN "YwA" THEN 99
WHEN "AGM" THEN 99
WHEN "ZAA" THEN 100
WHEN "AGQ" THEN 100
ELSE
TRUNC(p.rowid / 0)
END pdq_value
FROM
sysprocplan p, sysprocedures f
WHERE
p.planid = -2 AND
f.procid = p.procid
ORDER BY 2 DESC
Procedural version:
Versão procedimental:
CREATE FUNCTION get_proc_pdq_value(v_proc_name VARCHAR(128))
RETURNING SMALLINT;
DEFINE v_ret_pdq_value SMALLINT;
SELECT
f.procname,
CASE data[1,3]
WHEN "AAA" THEN 0
WHEN "AQA" THEN 1
WHEN "AAE" THEN 1
WHEN "AgA" THEN 2
WHEN "AAI" THEN 2
WHEN "AwA" THEN 3
WHEN "AAM" THEN 3
WHEN "BAA" THEN 4
WHEN "AAQ" THEN 4
WHEN "BQA" THEN 5
WHEN "AAU" THEN 5
WHEN "BgA" THEN 6
WHEN "AAY" THEN 6
WHEN "BwA" THEN 7
WHEN "AAc" THEN 7
WHEN "CAA" THEN 8
WHEN "AAg" THEN 8
WHEN "CQA" THEN 9
WHEN "AAk" THEN 9
WHEN "CgA" THEN 10
WHEN "AAo" THEN 10
WHEN "CwA" THEN 11
WHEN "AAs" THEN 11
WHEN "DAA" THEN 12
WHEN "AAw" THEN 12
WHEN "DQA" THEN 13
WHEN "AA0" THEN 13
WHEN "DgA" THEN 14
WHEN "AA4" THEN 14
WHEN "DwA" THEN 15
WHEN "AA8" THEN 15
WHEN "EAA" THEN 16
WHEN "ABA" THEN 16
WHEN "EQA" THEN 17
WHEN "ABE" THEN 17
WHEN "EgA" THEN 18
WHEN "ABI" THEN 18
WHEN "EwA" THEN 19
WHEN "ABM" THEN 19
WHEN "FAA" THEN 20
WHEN "ABQ" THEN 20
WHEN "FQA" THEN 21
WHEN "ABU" THEN 21
WHEN "FgA" THEN 22
WHEN "ABY" THEN 22
WHEN "FwA" THEN 23
WHEN "ABc" THEN 23
WHEN "GAA" THEN 24
WHEN "ABg" THEN 24
WHEN "GQA" THEN 25
WHEN "ABk" THEN 25
WHEN "GgA" THEN 26
WHEN "ABo" THEN 26
WHEN "GwA" THEN 27
WHEN "ABs" THEN 27
WHEN "HAA" THEN 28
WHEN "ABw" THEN 28
WHEN "HQA" THEN 29
WHEN "AB0" THEN 29
WHEN "HgA" THEN 30
WHEN "AB4" THEN 30
WHEN "HwA" THEN 31
WHEN "AB8" THEN 31
WHEN "IAA" THEN 32
WHEN "ACA" THEN 32
WHEN "IQA" THEN 33
WHEN "ACE" THEN 33
WHEN "IgA" THEN 34
WHEN "ACI" THEN 34
WHEN "IwA" THEN 35
WHEN "ACM" THEN 35
WHEN "JAA" THEN 36
WHEN "ACQ" THEN 36
WHEN "JQA" THEN 37
WHEN "ACU" THEN 37
WHEN "JgA" THEN 38
WHEN "ACY" THEN 38
WHEN "JwA" THEN 39
WHEN "ACc" THEN 39
WHEN "KAA" THEN 40
WHEN "ACg" THEN 40
WHEN "KQA" THEN 41
WHEN "ACk" THEN 41
WHEN "KgA" THEN 42
WHEN "ACo" THEN 42
WHEN "KwA" THEN 43
WHEN "ACs" THEN 43
WHEN "LAA" THEN 44
WHEN "ACw" THEN 44
WHEN "LQA" THEN 45
WHEN "AC0" THEN 45
WHEN "LgA" THEN 46
WHEN "AC4" THEN 46
WHEN "LwA" THEN 47
WHEN "AC8" THEN 47
WHEN "MAA" THEN 48
WHEN "ADA" THEN 48
WHEN "MQA" THEN 49
WHEN "ADE" THEN 49
WHEN "MgA" THEN 50
WHEN "ADI" THEN 50
WHEN "MwA" THEN 51
WHEN "ADM" THEN 51
WHEN "NAA" THEN 52
WHEN "ADQ" THEN 52
WHEN "NQA" THEN 53
WHEN "ADU" THEN 53
WHEN "NgA" THEN 54
WHEN "ADY" THEN 54
WHEN "NwA" THEN 55
WHEN "ADc" THEN 55
WHEN "OAA" THEN 56
WHEN "ADg" THEN 56
WHEN "OQA" THEN 57
WHEN "ADk" THEN 57
WHEN "OgA" THEN 58
WHEN "ADo" THEN 58
WHEN "OwA" THEN 59
WHEN "ADs" THEN 59
WHEN "PAA" THEN 60
WHEN "ADw" THEN 60
WHEN "PQA" THEN 61
WHEN "AD0" THEN 61
WHEN "PgA" THEN 62
WHEN "AD4" THEN 62
WHEN "PwA" THEN 63
WHEN "AD8" THEN 63
WHEN "QAA" THEN 64
WHEN "AEA" THEN 64
WHEN "QQA" THEN 65
WHEN "AEE" THEN 65
WHEN "QgA" THEN 66
WHEN "AEI" THEN 66
WHEN "QwA" THEN 67
WHEN "AEM" THEN 67
WHEN "RAA" THEN 68
WHEN "AEQ" THEN 68
WHEN "RQA" THEN 69
WHEN "AEU" THEN 69
WHEN "RgA" THEN 70
WHEN "AEY" THEN 70
WHEN "RwA" THEN 71
WHEN "AEc" THEN 71
WHEN "SAA" THEN 72
WHEN "AEg" THEN 72
WHEN "SQA" THEN 73
WHEN "AEk" THEN 73
WHEN "SgA" THEN 74
WHEN "AEo" THEN 74
WHEN "SwA" THEN 75
WHEN "AEs" THEN 75
WHEN "TAA" THEN 76
WHEN "AEw" THEN 76
WHEN "TQA" THEN 77
WHEN "AE0" THEN 77
WHEN "TgA" THEN 78
WHEN "AE4" THEN 78
WHEN "TwA" THEN 79
WHEN "AE8" THEN 79
WHEN "UAA" THEN 80
WHEN "AFA" THEN 80
WHEN "UQA" THEN 81
WHEN "AFE" THEN 81
WHEN "UgA" THEN 82
WHEN "AFI" THEN 82
WHEN "UwA" THEN 83
WHEN "AFM" THEN 83
WHEN "VAA" THEN 84
WHEN "AFQ" THEN 84
WHEN "VQA" THEN 85
WHEN "AFU" THEN 85
WHEN "VgA" THEN 86
WHEN "AFY" THEN 86
WHEN "VwA" THEN 87
WHEN "AFc" THEN 87
WHEN "WAA" THEN 88
WHEN "AFg" THEN 88
WHEN "WQA" THEN 89
WHEN "AFk" THEN 89
WHEN "WgA" THEN 90
WHEN "AFo" THEN 90
WHEN "WwA" THEN 91
WHEN "AFs" THEN 91
WHEN "XAA" THEN 92
WHEN "AFw" THEN 92
WHEN "XQA" THEN 93
WHEN "AF0" THEN 93
WHEN "XgA" THEN 94
WHEN "AF4" THEN 94
WHEN "XwA" THEN 95
WHEN "AF8" THEN 95
WHEN "YAA" THEN 96
WHEN "AGA" THEN 96
WHEN "YQA" THEN 97
WHEN "AGE" THEN 97
WHEN "YgA" THEN 98
WHEN "AGI" THEN 98
WHEN "YwA" THEN 99
WHEN "AGM" THEN 99
WHEN "ZAA" THEN 100
WHEN "AGQ" THEN 100
ELSE
-1
END pdq_value
INTO
v_ret_pdq_value
FROM
sysprocplan p, sysprocedures f
WHERE
p.planid = -2 AND
f.procid = p.procid AND
f.procname = v_proc_name;
IF v_ret_pdq_value = -1
THEN
RAISE EXCEPTION -746,0,'Could not decode PDQ value. Please check query';
ELSE
RETURN v_ret_pdq_value;
END IF
END FUNCTION;
Updated on Jan 12, 2011: Cosmo noted that the procedure should be declared as a function and asked me to reference him as Cosmo instead of Simon David
Alterado em 12 de Jan de 2011: O Cosmo referiu que o procedimento deveria ser declarado como função e pediu para ser referido como Cosmo em vez de Simon David
Wednesday, January 5, 2011
William Paterson University Accessbility Conference 2011
William Paterson University and Bergen County Special Services School District will be hosting the Accessibility Conference 2011: Reaching & Teaching All Learners Through Technology, which will be held on January 13, 2011 in Wayne , NJ. This looks to be one of the premiere assistive technology conferences to be
View Larger Map
offered this year in New Jersey and I hope you can come out and spend the day with us. Dave Marra, from Apple Computer will be the keynote and share with us all of the excitement Apple has generated with their lineup of exciting products that have touched the lives of students we work with. Throughout the day there will be ongoing presentations and workshops which I'm sure you will find relevant and important in the work that you do.
During the day I will be presenting on Innovative Uses for Digital Pen Technology. So if you want to learn about the Livescribe Smartpen, or PaperShow for Teachers, or Xpaper then stop on by find out how these innovative solutions can be used in the classroom. Find out how these innovative digital pen and paper solutions can change the way you teach and offer you a range of outstanding benefits.
View Larger Map
offered this year in New Jersey and I hope you can come out and spend the day with us. Dave Marra, from Apple Computer will be the keynote and share with us all of the excitement Apple has generated with their lineup of exciting products that have touched the lives of students we work with. Throughout the day there will be ongoing presentations and workshops which I'm sure you will find relevant and important in the work that you do.
During the day I will be presenting on Innovative Uses for Digital Pen Technology. So if you want to learn about the Livescribe Smartpen, or PaperShow for Teachers, or Xpaper then stop on by find out how these innovative solutions can be used in the classroom. Find out how these innovative digital pen and paper solutions can change the way you teach and offer you a range of outstanding benefits.
Subscribe to:
Posts (Atom)



