Sunday, October 31, 2010

Panther: EXISTS or NOT EXISTS

This article is written in English and Portuguese
Este artigo está escrito em Português e Inglês

English version:

I'll continue with the quick and easy posts about Panther (v11.70). This time I'll focus on some new SQL that was added in Panther. Most (if not all) CREATE and DROP statements now allow for IF NOT EXISTS and IF EXISTS clauses respectively. These clauses allow us to write CREATE/DROP statements that will not raise errors in case the objects already exist and we're trying to create them, or when they don't exist and we're trying to drop them.
As an example:


panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:03:17 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> dbaccess stores -

Database selected.

> DROP TABLE test;

206: The specified table (test) is not in the database.

111: ISAM error: no record found.
Error in line 1
Near character position 15
> DROP TABLE IF EXISTS test;
>

These two clauses can be used for TABLE, PROCEDURE, FUNCTION, DATABASE, INDEX, ROLE etc. (both for create and drop).
This can be used in scripts to prevent that they abort prematurely. Also interesting is the fact that this syntax can be found on mySQL. So it's easier now to port existing code into Informix.



Versão Portuguesa:

Vou continuar com os artigos rápidos e fáceis sobre a versão 11.70 (Panther). Desta vez vou abordar uma mudança no SQL que foi adicionada ao Panther. A maior parte (se não todas) as instruções CREATE e DROP suportam agora as cláusulas IF NOT EXISTS e IF EXISTS respectivamente. Estas cláusulas permitem-nos escrever instruções CREATE/DROP que não geram erros caso os objectos já existam e os estejamos a tentar criar, ou quando não existem e os estamos a tentar eliminar.
Como exemplo:


panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:03:17 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> dbaccess stores -

Database selected.

> DROP TABLE test;

206: The specified table (test) is not in the database.

111: ISAM error: no record found.
Error in line 1
Near character position 15
> DROP TABLE IF EXISTS test;
>

Estas duas cláusulas podem ser usadas para TABLE, PROCEDURE, FUNCTION, DATABASE, INDEX, ROLE etc. (tanto para o CREATE como para o DROP).
Isto pode ser usado em scripts para evitar que abortem prematuramente. Também é interessante o facto de que esta sintaxe pode ser encontrada no mySQL. Portanto será agora mais fácil portar código existente para Informix

Friday, October 29, 2010

At the International Dyslexia Association Conference in Phoenix

Wow if only they had used Ginger to check the spelling! In any case-I just got into Phoenix yesterday where I will be helping out at the Ginger Booth at the 60th Annual International Dyslexia Association Conference. It was great meeting and talking with all of the educators who had a chance to come over and see Ginger in action. Each attendee received a free copy of Ginger which they can download to their own computer when they get home. Everyone who I spoke to yesterday was in awe as they watched Ginger process the spelling errors and make the correct suggestions. With each and every release of Ginger the spelling and grammar correction gets better and better. A new spelling intervention module will be added in the upcoming weeks that will identify specific lessons based on the students pattern of errors. Look for a post when this is released. If you are attending the conference please stop by Booth 200 and say hello. Regards from Phoenix!

New blog from Paraguay

This article will only be written in English
Este artigo só tem versão Inglesa. Para ver esta notícia em Português consulte o site do Cesar Martins

There is a new south American blog, written in castilian. It's located here:

http://informixpy.blogspot.com/

The author is Javier Gray.
Apparently Javier wants to translate some articles from other blogs (he already did it once from Cesar's blog) besides writing his own articles. Javier also requested my permission to do the same from my blog. So, permission is granted as long as a reference to the original author is kept (as he did with Cesar's article). Hopefully, some of this blog's articles will be available in English, Portuguese and Castilian! That's great! Anybody wants to pick up for French and Chinese (and others?)

Tuesday, October 26, 2010

Text-to-Speech Examples

In response to the latest post in the series on Text-to-Speech (TTS):

Javed Alam pointed me to a couple of Text-to-Speech eLearning Examples, so I thought I’d capture a few of the examples here. I would welcome pointers to additional examples!

Example #1 - Introduction to Venice - Qwiki uses Text-to-Speech in really interesting ways.

Example #2 - CompUSA Dealer Training - Legal Issues - Legal services presentation on a company web site

Example #3 - Calculating Usain Bolt's Power - Math derivation.

Example #4 - Jane Eyre Meets Mr. Rochester in the Garden

Example #5 - Concepts of Calculus with Professor Paul

Example #6 - Magic PowerPoint Voices – Dialog between Paul and Heather synched with animations

Example #7 - A bit older example using NeoSpeech 1.0


Example #8 "Degree of Freedom E-Lecture with Animated Agent" - a bit older with an animated agent.


Want to See Your Course as an Example?

Dr. Joel Harband has made an offer to create some brief examples using PowerPoint-based courses that a corporation had developed using a real voice. He would need the original PowerPoint presentation of the course together with the narration script that was used. He could then create part or all of the course using TTS voices instead and we could demo the result. Of course, I would want to show the original so we can show a comparison. If you would like to do this, please contact me via email: akarrer@techempower.com

Questions?

And, if you have any questions at this point in the series on the use of Text-to-Speech, please ask away.

Monday, October 25, 2010

Providing Technical Support with Glance

During the course of a week, I am spending more and more of my time working with teachers, providing them with professional development on various assistive technologies that can be implemented in the classroom. For many of the teachers that I work with this is their first encounter with many of the assistive technologies that are being introduced. Not being on site, I often leave access to software guides and reference materials on my Google Site for the teachers to access- should they need help. There are those times when these materials are not enough to pinpoint a particular issue and technical support is needed.

 Just last week I received an email from a middle school teacher who was puzzled why the software was not  working as she had anticipated. Rather than emails going back and forth, I set up a time for her to speak with me as well as a link where I could see and remotely control her screen. As part of my services to schools, I offer "Just in Time Training and Support." Using Glance an easy to use screen sharing tool, I was able to email the teacher a link so that when we spoke I could see her screen and take control of her computer. Once we connected on the cell phone and I started the screen sharing session I was able to see the teachers screen and she was able to walk me through the steps so that I could see the process. While doing the screen sharing - the teacher realized that she had left out a step which could explain why the program did not work as expected. We quickly went through a new scenario and added the missed step and all of the issues were quickly resolved. What would have taken weeks to solve was handled in 5 minutes using Glance. If you have not had a chance to use Glance click here to find out more information.

Glance has become an indispensable tool which I use for doing webinars and for providing on the spot technical support. If you are looking for "Just in Time Technical Support" for your assistive technology program let me know and I would be glad to send you a proposal. In the end the teacher was up in running in minutes and now is confidently going back into the classroom and using the software with her students. Without this support the teacher would have put the software aside until I had our next scheduled training session. To make sure you are getting the most out of your software investment consider contacting me for "Just in Time Technical Support."

Teaching Online Courses – 60 Great Resources

I received an inquiry about resources that would help instructors who are about to move into teaching online courses.  It made me immediately think back to my first experience with an online session. 

It was the first ever public session for Placeware - a virtual meeting software company that was much later acquired by Microsoft and became Microsoft Live Meeting.  Because it was their first ever public session and my first ever online session neither of us knew what we were doing.  The topic was roughly (surprise) New Technology for eLearning.  They had 100 people participating.  And because it was public they made sure that everyone was muted including the moderator.

So we start the session and I’m sitting alone in front of my computer at Loyola Marymount (this must be before 2000).  I was holding my handset to my ear (no headset in my office).  And I had prepared the way I always did at that point for live, in-person audiences.  Remember I taught class several times a week to live audiences, and this was a topic that I presented all the time at professional conferences.  No problem, right?

I was not at all prepared for what I experienced.  About five minutes into the presentation, with me alone in my office, and everyone muted (literally there is zero sound coming back through) and no prepared stopping points for interaction.  Well any good presenter who faces an audience that is completely quiet, sitting still knows they are dying.  And I felt like I was completely dying.  There was zero feedback.  I felt my energy level get used up completely.  I was doing everything I could to make it more interesting, but no matter how much passion I put into the phone – no reaction.  Panic set in roughly 7 minutes into the presentation!

After that experience, I vowed to try to stink up virtual presentations less in the future.  And every once in a while, I realize that I’m not doing a good job.  It definitely takes additional thinking/preparation to be good online. And that’s only a single session.  If you are going to teach a course online or run an online learning event or an online conference, then there’s even more to being successful at that.

So, what I thought I would do is go back and see what resources I could find some good resources that would help me and could be used by instructors be better prepared to teach online.  What a difference a decade makes – now there’s almost TOO much information.

As always I do this by looking through eLearning Learning and related sites like Communities and Networks Connection.   I looked at Virtual Classroom, Distance Learning, ILT, Teaching Distance Learning.  I also did some quick searches for various kinds of things and added them into eLearning Learning (via delicious).  So together, I’ve collected a bunch of resources pretty quickly.  That said, there’s so much already out there on this – I’m at this point not quite sure what the real question was/is.  Certainly a lot of this is already findable.  I hope this is useful.  But I think the problem at this point might be something else.  Still here are 60 great resources.

Books

By going to one of these on Amazon – you can easily find a TON of additional books.

  1. Engaging the Online Learner: Activities and Resources for Creative Instruction (Jossey-Bass Guides to Online Teaching and Learning)
  2. Building Online Learning Communities: Effective Strategies for the Virtual Classroom (Jossey Bass Higher and Adult Education Series)
  3. The Online Teaching Survival Guide: Simple and Practical Pedagogical Tips
  4. Essential Elements: Prepare, Design, and Teach Your Online Course
  5. Making the Move to eLearning: Putting Your Course Online
  6. Creating a Sense of Presence in Online Teaching: How to

Side note – one of the cool things is that one of these book recommendations came because my delicious activity (related to eLearning) auto-tweets and someone saw my tweets and then put in a recommendation to their book on the subject.  I would guess that’s an automated search or something – but still very smart way to market/PR.

Teaching Online

  1. Top 10 Best Practices for Teaching Online- Litmos, The Secret of Delivering Outstanding Virtual Classroom Training by Frank Gartland- Ignatia Webs, April 15, 2008
  2. Live online learning – a free download- Clive on Learning, October 13, 2009
  3. The Agile Elearning Design Manual - Why Synchronous Learning makes so much sense today- Free as in Freedom, July 21, 2009
  4. Using Teleseminars For Training- The eLearning Coach, September 7, 2010
  5. Faculty Training for Online Teaching
  6. Better Beginnings: How to Capture your Audience in 30 seconds - webinar by Carmen Taran- Free as in Freedom, January 28, 2010
  7. Progressing towards onlignment- Clive on Learning, August 14, 2009
  8. What Makes A Successful Online Facilitator?
  9. 13 Tips for Virtual World Teaching
  10. Preparing Teachers to Teach Online
  11. Tips and Tricks for Teaching Online: How to Teach Like a Pro!
  12. Online Teachers: Instructions - Online Pedagogy/Teaching Tools
  13. How to facilitate synchronous learning for real and virtual learners using technology?- IDiot, March 28, 2010
  14. Key Steps to Preparing Great Synchronous Interactions- Experiencing eLearning, April 1, 2010
  15. NEA's Guide to Teaching Online (PDF)
  16. Web meetings, webinars and virtual classrooms compared- Onlignment, August 21, 2009
  17. Tips For Making Virtual Classroom Sessions More Interactive | Mobile Technology in TAFE, November 21, 2008
  18. Perceived Advantages and Disadvantages- MinuteBio, March 24, 2009
  19. Rubrics for WebLessons
  20. Promoting Distance- Learning Technology Learning, September 24, 2010
  21. Cheating in Online Courses- eLearning Acupuncture, April 28, 2010
  22. Changing Roles for Educators (CCK08: Paper 2)- Learnadoodledastic, November 10, 2008
  23. Rubrics for Web Lessons
  24. Faculty Training for Online Teaching
  25. Preparing Instructors for Quality Online Instruction
  26. Converting Instructor-Led Training to E-learning or Distance Learning: Keys to success- Bottom-Line Performance, April 30, 2010
  27. Building Student Engagement in Online Courses- April 15, 2009
  28. How do I learn to teach online?- eLearning Acupuncture, September 9, 2009
  29. 5 Easy Tips for Teaching Online Courses- Learning Putty, January 18, 2010
  30. Online Games for Teaching Business Concepts and Ideas- Kapp Notes, October 16, 2009
  31. Online Success - a recipe for learners and facilitators- Designed for Learning, February 14, 2010
  32. 5 laws of human nature and online collaborative communities- Thinking Cloud, December 18, 2009
  33. 37signals’ Idealogy Meets Online Training (Part 1): Meetings are Toxic- Mindflash, August 24, 2010
  34. Teaching online forces better pedagogy- Learning Conversations, September 16, 2009
  35. 50 Web 2.0 Ways to Tell a Story (Alan Levine)- ZaidLearn, December 16, 2007
  36. The power of Voice in online classrooms- eLearning Acupuncture, May 31, 2010
  37. The Secret Recipe to Delivering World Class Lectures- ZaidLearn, August 29, 2009
  38. E-teaching personality is good for e-learning- Electronic Papyrus, January 5, 2010

Online Discussions

  1. Face-to-Face Versus Threaded Discussions: The Role of Time and Higher Order Thinking Dr. Katrina A. Meyer, Journal of Asynchronous Learning Networks
  2. Ten Tips for Generating Engaged Online Discussions Katherine Fischer, Donna Reiss, Art Young
  3. Online Discussions: Tips for Instructors Center for Teaching Excellence, University of Waterloo
  4. Organizing and Managing Good Online Discussions Learning Technologies Center, University of Manitoba
  5. The Effectiveness and Development of Online Discussions MERLOT Journal of Online Learning and Teaching
  6. Three-pronged approach to online discussions for learning
  7. A few strategies for setting the right tone for online discussions
  8. Some guidelines for discussion participation

Social Networks

  1. TCC09: Evaluating Social Networking Tools for Distance Learning- Experiencing eLearning, April 14, 2009
  2. Learning with 'e's: Teaching with Twitter- Learning with e's, April 23, 2009
  3. Twitter for Learning – 55 Great Articles

Effective Online Conferences

  1. 19 Tips for Effective Online Conferences
  2. Effective Web Conferences – 41 Resources
  3. Online Conferences and In-Person Conferences,
  4. Online Conference Formats

Assistive Technology Webinar: From Knowledge to Advocacy

For someone who has been in the field of assistive technology for over 25 years it is really very exciting to see how far technology has come to assist students with special needs. For as long as I have been in the field, I know just how important it is for special education students to have have access to assistive technology. Unfortunately, not every school has the personnel who are knowledgeable about the latest advances in the field of assistive technology and so students are generally not offered the opportunity to try these tools. It is with this in mind that this webinar came to be. I reasoned that if parents became more knowledgeable about what assistive technologies are available- that they could become their child's best advocate in the schools and begin to request these services.

In this 1 hour webinar, Assistive Technology: From Knowledge to Advocacy- Dr. Friedlander will review the rules and regulations that pertain to assistive technology and talk about technologies  that can be employed to support access to the curriculum. Emphasis will be placed on meeting the needs of students with mild to moderate needs. Dr. Friedlander will talk about tools for reading , writing, organization, and math. Come learn about some of the new and exciting ways that computers, iPads, and eReaders can be used to address the needs of students with special needs. The fee for the webinar is $24.95 and includes the 4 page Assistive Technology Laminated Guide: What Every Educator Needs to Know About Assistive Technology which was recently just published- it is chock full of information about what you will need to know to advocate for assistive technology for your child. So join me for this informative webinar on November 19th at 1:00 pm. Sign up early and get your laminated guide mailed to you before the webinar! Once you are signed up you will receive via an email, the link for the webinar and information about how to connect to the teleconferencing center.

To pay for the webinar cick on the PayPal button below:




Sunday, October 24, 2010

Using PaperShow for Teachers in the Music Classroom

I was talking with my wife and daughter, who are both musicians about PaperShow for Teachers and how it could be used in the music classroom, when it dawned on me how great this could be for writing music on staffs that everyone could see. In order to accomplish this with PaperShow for Teachers I did a quick search on Google for musical staffs in a PDF format that were in the landscape orientation.

I found a rather good site to download some staffs in the landscape mode and then I launched PaperShow for Teachers, imported the musical staff into the application and then printed it on the PaperShow for Teachers interactive paper on my HP Color Inkjet printer. Once I had the page printed I was able to draw the G Clef and add a couple of notes. Now imagine for a moment that you are a music teacher in the classroom just how handy this could be. Everyone can clearly watch you as you write the notes on the staff and when you are through you can export it as a PDF and send it to all of your students.

Saturday, October 23, 2010

iTunes Apps Store Now Has Special Education Section

A couple of weeks a go I had the opportunity to work with a student who was having difficulty in the area of fine motor skills and decided to bring my iPad along. I had downloaded a number of apps to trial with the student but was counting on using the  iWriteWords app to see how the student would do with it. To say the least it was incredible to watch the student use the app and to see just how focused he was while working with it. His special education teacher and some of his therapist who watched the demonstration were amazed at his task engagement and attention.

It has been really exciting to see the iPad move into the realm of special education and I know for myself that it will find a place that is dear to the heart of special educators. There are lots of stellar apps out there that have the potential to change the way we think about assistive technology and the delivery of the services that we provide. Apple has always been at the forefront of accessible technology and recently added a Special Education section to the iTunes App Store. So check it out and let me know what apps you plan on trying with the students you work with.

Thursday, October 21, 2010

Informix today: an executive statement / Informix hoje: Declaração de um executivo

This article is written in English and Portuguese
Este artigo está escrito em Português e Inglês

English version:
I'm doing a pause in the Panther related articles to make echo of something equally important. The ones more involved in the Informix community surely recognize the name of Robert D. Thomas. He's an IBM executive, more precisely a vice president for Information Management and he has been addressing some communications to the Informix community.
He did it in March and he's doing it again
I won't repeat here what he writes in his latest letter, but I'd like to mention something about him. As you can see in both these letters and also on his session in IIUG conference in 2010, he always and I mean always starts his messages with a story. It may look strange but we must admit that it really works. It's like a signature. In this case, with a very short paragraph he condenses all the rest of his ideas. And it does sound good. I don't know if he digs these stories, or if he has someone to do it for him, or if he has a pocket reference of inspiring stories :).... How he does it, I don't know, but that he does it perfectly he does it.
The topic of this letter is the status of Informix, and how IBM has delivered (or not) on what Rob laid down in March.
Interesting read. You'll love the story.
I'll refrain myself of commenting on his statements, since any agreement would look suspicious and any disagreement could get me fired :)


Versão Portuguesa:

Estou a fazer uma pausa na série de artigos sobre o Panther, para fazer eco de algo igualmente importante. Quem esteja mais envolvido na comunidade Informix certamente reconhece o nome de Robert D. Thomas. É um executivo da IBM, mais precisamente o vice presidente para Information Management e tem endereçado algumas comunicações à comunidade.
Fê-lo em Março e está a fazê-lo agora
Não vou repetir o que escreve nesta sua última carta, mas gostava de mencionar algo sobre ele. Como pode confirmar por ambas as cartas e também na sua sessão na conferência anual do IIUG em 2010, ele começa sempre e repito sempre as suas mensagens com uma estória. Pode parecer estranho mas tenho de admitir que realmente funciona. É como uma assinatura. Neste caso, com um curto parágrafo condensa todas as ideias restantes. E soa bem. Não sei se ele pesquisa estas estórias, ou se tem alguém que o faça por ele, ou se tem uma referência de bolso com estórias inspiradoras :)... Não sei como o faz, mas garantidamente sai-lhe bem.
O tema desta carta é o estado do Informix, e como a IBM tem cumprido (ou não) com o que o Rob expôs em Março como sendo o caminho a seguir.
É uma leitura interessante. Vai adorar a estória.
Abstenho-me de comentar as suas afirmações pois qualquer concordância seria suspeita e qualquer discordância poderia fazer com que fosse despedido :)

Wednesday, October 20, 2010

Supporting Students in the Classroom with PaperShow for Teachers

For many students with learning disabilities, taking notes can be a daunting task. In classrooms where teachers are providing in-class support having access to PaperShow for Teachers can be invaluable. PaperShow for Teachers is a digital pen and paper technology that allows teachers to easily share written notes with the entire classroom. Simply plug in the PaperShow for Teachers USB key into your Mac or PC and start writing on the notebook paper that is supplied. With your computer connected to a data projector now all of the students can see what is recorded in real time. Just imagine for a moment that as the support teacher, you are writing the notes with PaperShow for Teachers and everything that you are recording is able to be seen by the classroom.  After the class is over you can easily save what you have recorded and export the notes as a PDF or PowerPoint file.

So if you are looking for way to add a new strategy to your bag of tricks - look no further and give PaperShow for Teachers a try.  For more information please feel free to contact me via email.

Panther: "extenting" indexes / "extenting" indíces

This article is written in English and Portuguese
Este artigo está escrito em Português e Inglês


English version:

Very short article for very simple feature: Since v11.7 (Panther) you can now define the extent size for indexes as we use to do with tables (data). Many people may find this a great feature, or a must have (specially if you worked with other RDBMS before), but for me it's relatively useless (unless it makes easier to port SQL scripts).
Why do I think this? Because Informix has been clever enough to find a good size for the index extents. It simply doesn't need us to tell it. It knows the size that the key will need for each index entry, and it knows the table's extent size. So it can calculate how many rows will fit in the data area (since it knows the extent size) and then it can calculate the space that number of rows will consume in the index.
I don't recall having a discrepancy between the index number of extents and the tables data extents. So I'm assuming it worked ok over the years.

The syntax is similar to the CREATE TABLE. But let's start by seeing how it works without specifying the index extent size:


panther_clone@pacman.onlinedomus.net:informix-> cat test_100k.sql
DROP TABLE test_100k;

CREATE TABLE test_100k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 100 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_100k ON test_100k(col1);
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_100k.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_100k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4627 50 50

Extents
Logical Page Physical Page Size Physical Pages
0 4:4677 81 81


So, the data extent size of 100K generates an index extent size of 162K.
If we double the data extent size to 200K:


panther_clone@pacman.onlinedomus.net:informix-> cat test_200k.sql
DROP TABLE test_200k;

CREATE TABLE test_200k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 200 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_200k ON test_200k(col1);
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_200k.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_200k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4758 100 100

Extents
Logical Page Physical Page Size Physical Pages
0 4:4858 162 162


So, doubling the data size doubles the index size.

What we can now do it establish the index extent size explicitly:


panther_clone@pacman.onlinedomus.net:informix-> cat test_100k_new.sql
DROP TABLE test_100k;

CREATE TABLE test_100k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 100 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_100k ON test_100k(col1) EXTENT SIZE 40 NEXT SIZE 162;
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_100k_new.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_100k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4627 50 50

Extents
Logical Page Physical Page Size Physical Pages
0 4:4677 20 20


Truly simple and obvious. Hopefuly this will bring peace to some souls who think that this was needed. And let's hope people won't start making wrong calculations and choose wrong extent sizes.


Versão Portuguesa:

Um artigo muito curto para uma funcionalidade muito simples: A partir da versão 11.7 (Panther) podemos definir o tamanho de cada extent para os índices tal como fazemos para as tabelas (dados). Muita gente pode considerar esta como uma grande funcionalidade, ou algo mesmo necessário (especialmente se já trabalhou com outros RDBMS antes), mas eu considero-a relativamente inútil (a menos que facilite a transposição de scripts SQL).
Porque penso assim? Porque o Informix sempre foi esperto o suficiente para encontrar um bom valor para os extents dos índices. Simplesmente não necessita que lhe digamos. Ele sabe o tamanho da chave necessário a cada entrada do índice, e sabe o tamanho dod extents da tabela. Portanto pode calcular quantas linhas caberão na área de dados (pois sabe o tamanho do extent) e assim consegue calcular quantas páginas é que o índice irá necessitar para esse mesmo número de registos.
Não me recordo de ver discrepância entre o espaço no índice e o espaço dos dados. Só posso assumir que tem corrido bem ao longo dos anos.

A nova sintaxe será semelhante à do CREATE TABLE. Vejamos como funciona sem especificar:


panther_clone@pacman.onlinedomus.net:informix-> cat test_100k.sql
DROP TABLE test_100k;

CREATE TABLE test_100k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 100 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_100k ON test_100k(col1);
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_100k.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_100k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4627 50 50

Extents
Logical Page Physical Page Size Physical Pages
0 4:4677 81 81


Um tamanho de 100K para o extent dos dados gera um extent para indíces de 162K
Se duplicarmos o extent de dados para 200K:


panther_clone@pacman.onlinedomus.net:informix-> cat test_200k.sql
DROP TABLE test_200k;

CREATE TABLE test_200k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 200 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_200k ON test_200k(col1);
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_200k.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_200k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4758 100 100

Extents
Logical Page Physical Page Size Physical Pages
0 4:4858 162 162


Portanto, duplicando o tamanho para dados, automaticamene o motor aumenta o tamanho do índice na mesma proporção

Podemos agora tentar estabelecer o tamanho do extent do índice:



panther_clone@pacman.onlinedomus.net:informix-> cat test_100k_new.sql
DROP TABLE test_100k;

CREATE TABLE test_100k
(
col1 INTEGER,
col2 CHAR(4)
) EXTENT SIZE 100 LOCK MODE ROW;

CREATE UNIQUE INDEX ix_test_100k ON test_100k(col1) EXTENT SIZE 40 NEXT SIZE 162;
panther_clone@pacman.onlinedomus.net:informix-> dbaccess stores test_100k_new.sql

Database selected.


Table dropped.


Table created.


Index created.


Database closed.

panther_clone@pacman.onlinedomus.net:informix-> oncheck -pt stores:test_100k | awk '/Extents/,/^$/ {print $0}'
Extents
Logical Page Physical Page Size Physical Pages
0 4:4627 50 50

Extents
Logical Page Physical Page Size Physical Pages
0 4:4677 20 20


Completamente simples e óbvio. Esperemos que isto ajude a pacificar algumas almas que acham isto necessário. E também que as pessoas não comecem agora a calcular mal o espaço a alocar.

Using Punctuation and Mark-Up Language to Increase Text-to-Speech Quality

This post is part of the series on Text-to-Speech (TTS) for eLearning written by Dr. Joel Harband and edited by me. The other posts are: Text-to-Speech Overview and NLP Quality, Digital Signal Processor and Text-to-Speech, Using Text-to-Speech in an eLearning Course, Text-to-Speech eLearning Tools - Integrated Products, and seeming the most popular of the series so far: Text-to-Speech vs Human Narration for eLearning.

One of the concerns raised by various comments during the series has been around the quality of the results of Text-to-Speech (TTS) Voices and if that was suitable for eLearning. This issue was partly addressed in the previous post. In this post we’ll take a different cut at it by looking at how authors can use punctuation and mark-up language with TTS voices to bring out the meaning of the text more accurately and to make them more interesting. Using these techniques a voice can be made similar enough to human narration to hold a learner’s interest during an entire eLearning course - with a retention rate equivalent to that of a human voice.

Value and Concern Around Voice-Over

Before we jump into this specific topic, let’s look back at some of the specifics from last month’s Big Question - Voice Over in eLearning. Here’s a very quick summary of some of the responses regarding the added learning value of a voice-over as opposed to plain screen text:

  1. Audio provides an additional channel of information which the brain can process in parallel with the visual information [Kapp].
  2. A voice should not just read screen text [Kapp] but can optionally be supported by running subtitles at the bottom of the slide as in Captivate and Speech-Over [Joel].
  3. A great deal more information per slide can be transferred with voice than with plain text. One minute of speech is equivalent to 125 words – which would crowd the slide considerably [Joel].
  4. A lively and interesting voice can motivate learning and increase retention. [Mike Harrison]
  5. A voice can often express the intended meaning more accurately than plain text by changing speed, volume and pitch, emphasizing words, and pausing for emphasis [Mike Harrison] (This is the prosody that we discussed in the first post). For example: He reads well. He reads well. He reads well.

It’s these last two points that relate closely to this topic. Ultimately, we would like the voice (human or TTS) to be lively and interesting, help increase motivation and learning, and convey the meaning more accurately.

Some of the concern around the use of Text-to-Speech Voices in eLearning is whether you can achieve that level of voice use.

Making the Author into a Voice Talent

Today’s post aims to show that with state-of-the-art tools that simplify the use of markup language, like Speech-Over Professional, TTS voices can easily be made interesting as well as prosody-accurate (points 4 and 5 above).

The concept presented here is a bit of a change in thinking:

An author together with a TTS voice is equivalent to a voice talent!

While handling the grammar quite well, the TTS voice by itself cannot know the nuances and emphases (prosody) needed to bring out the intended meaning of the sentence and will produce a compromise prosody. Authors need to fill the gap. Some people in the world of TTS call them “Text Authors.” Throughout this post, we will refer to them simply as “authors” as they likely are also the course author. Authors know what the voice should sound like, they use punctuation and mark-up language to makes the TTS voice achieve the intended meaning and clarity as well as enlivening it.

In some ways this is not that new for people who have worked with voice talent before. If you’ve ever worked a recording session, you will sit there and listen to what’s being said and often correct the phrasing, pronunciation, pacing, and other aspects of how the voice talent is handling the script that you have written. What we are saying is that there’s an equivalent operation when dealing with TTS Voices. You need to listen to the results and make corrections. Of course as we’ve pointed out in Using Text-to-Speech in an eLearning Course, the effort to make changes is likely substantially less.

The Basics

Let’s see an example of what we are talking about. Here is a clip of the TTS voice Heather reading Elizabeth Barrett Browning’s poem “How I love thee?” produced by Speech-Over Professional.

How I love thee?

How do I love thee? Let me count the ways.

I love thee to the depth and breadth and height

My soul can reach, when feeling out of sight

For the ends of Being and ideal Grace.

I love thee to the level of every day's

Most quiet need, by sun and candlelight.

I love thee freely, as men strive for Right;

I love thee purely, as they turn from Praise.

I love with a passion put to use

In my old griefs, and with my childhood's faith.

I love thee with a love I seemed to lose

With my lost saints, I love thee with the breath,

Smiles, tears, of all my life! and, if God choose,

I shall but love thee better after death.

When you listen there are a few simple uses of punctuation and markup language with Speech-Over Professional’s SAPI editor that provide some improvements to how the default would have read this.

clip_image002

The Speech-Over SAPI editor shown above lets authors apply markup language quickly and accurately with simple text symbols, which are as easy to use as ordinary punctuation. The symbols used in this example are the em-dash (—) which inserts a 0.5 sec silent delay and the right and left arrows (⊳,⊲) which decrease and increase the voice speed by one unit.

Listen to the effect of ordinary punctuation on the voice in the example:

  • The question mark is obvious - Heather expresses it very nicely.
  • The colon after "Let me count the ways:" gives a feeling of expectation for what’s to come. Putting a comma or period there would not give the same flow. Colons are generally used to introduce sequences to good effect.
  • Commas are used to give phrasing and resolve ambiguous sentences. They are a powerful tool and are used more often than proper punctuation would require.

Listen also to the effect of the markup language:

  • A delay (—) was placed between “How do I love thee” and “Let me count the ways” to express a slight hesitation for thought and then again after “Let me count the ways” to further hesitate for thought before stating the reasons.
  • Delays are also inserted throughout introduce the hesitations that make the voice more realistic.
  • The decrease and increase in speed for groups of words give them a slight accent and emphasis. For example, the words “I love thee”, “most quiet need”, etc have a speed decrease before them and a return to normal speed afterwards to give them a slight accent, depth, and emotional content. The amount of accent is controlled by the amount of speed reduction two units (⊳⊳) or one (⊳). A similar effect can be achieved by the emphasis tag (!!).

Also Heather’s natural slight Southern accent is because she is made from a real Southerner’s voice!

Now let’s see these concepts more in detail.

Using Punctuation

The judicious use of punctuation goes a long way towards making the voices more expressive and precise, especially the comma and the colon.

Let’s see how the prosody of the following sentence becomes clearer as we add punctuation:

  • A color is described in three ways by its name how pure it is and its value. (no punctuation) Paul
  • A color is described in three ways: by its name how pure it is and its value. (adding a colon for expectation) Paul
  • A color is described in three ways: by its name, how pure it is, and its value. (adding commas for phrasing) Paul

In our experience, the really good voices like Paul and Heather do quite well on their own most of the time with well-placed commas, colons, and silent delays only.

Mark-Up Language

As we mentioned in the first post, many “small” innovations are needed to make text to speech useful and practical. The most important of these is the programming standard Microsoft Speech Application Programming Interface (SAPI) for Windows. SAPI standardizes the way authors control TTS voices: starting and stopping the voice, controlling its speed, volume and pitch, and its flow with silent delays. Manufacturers of SAPI-standard voices implement the SAPI controls in the voice software and developers of speech applications program SAPI controls into their applications to let the user control any SAPI-standard voice.

To control the properties and flow of the voice, SAPI provides a XML markup language, also called speech tags, which is added to the input text to communicate to the voice processor actions to take when converting the text to speech.

Some examples:

1. Volume - The Volume tag controls the volume of a voice on a scale of 0:100. The voice will change volume at the point it encounters the tag.

This text should be spoken at volume level 100.

<volume level="50">

This text should be spoken at volume level fifty.

</volume>

2. Rate - The Rate tag controls the rate (speed) of a voice on a scale of -10:10. The voice will change speed at the point it encounters the tag.

This text should be spoken at rate 0.

<rate absspeed="3"> This text should be spoken at rate 3.

<rate absspeed="-3"> This text should be spoken at rate -3.

</rate> </rate> Heather

The Pitch tag works the same as the Rate tag.

3. Emphasis - The Emph tag instructs the voice to emphasize a word or section of text.

<emph> boo </emph>!

Use the Emph tag to determine the prosody of an ambiguous sentence, for example the one referred to in the first post.

  • He reads well” Paul
  • “He reads well” Paul
  • “He reads wellPaul

4. Silence - The Silence tag inserts a specified number of milliseconds of silence into the output audio stream.

Five hundred milliseconds of silence <silence msec="500"/> just occurred.

This is a very important tag for the naturalness of the voice.

5. Pronounce - The Pron tag inserts a specified pronunciation using the SYM phonetic language. Here is “Hello world” in SYM.

<pron sym="h eh 1 l ow & w er 1 l d "/>

This tag lets you instruct the voice how to say highly technical words and company slogans. See the first post for an example.

6. The PartOfSp tag lets you resolve the part of speech of a word.

Notes:

· Not all voices have all the tags implemented, for example, Heather does not have an emph tag.

· The NeoSpeech voices in Captivate do not use the SAPI tags but rather a proprietary markup language, VTML. Speech-Over works with SAPI-standard voices only.

· For more info about SAPI and its markup language, download sapi.chm from here.

Automating the markup language – SAPI editor

Clearly, having to type in or even paste these XML tags into the input text is time-consuming and error-prone. This is another case where a small innovation is called for: as discussed above, Speech-Over Professional has a SAPI editor that represents XML tags with simple text symbols - which makes it very easy and error-proof to insert and manipulate speech tags in the input text. Speech-Over Professional also automates the Pron tag with its Pronunciation lexicon you can use to add highly technical terms and company slogans.

Bottom Line

You may be thinking that some of the cost savings that you get from using TTS as compared to human voice talent is lost in this effort and that’s true. However, the rework aspect is still substantially less. Again, the best comparison is that of going through a recording session with a script. That process is very similar to what you end up with doing punctuation and markup with text to get the TTS voice to be much improved for eLearning.

For me personally, this is still not the same quality as a good voice talent, but it is definitely a lower cost and has MUCH lower cost in the face of change. It’s a good balance in many situations.

Tuesday, October 19, 2010

AnyBook Reader from Franklin - Teacher Tested

When I first learned about AnyBook Reader from Franklin I knew I had to get my hands on it and give it a test run. The idea behind AnyBook Reader is very straightforward. Pick a book any book, activate one of the provided stickers, record the page, and then let your child hear your voice reading the book. When my AnyBook Reader arrived from Franklin, I was excited to give it a whirl. I first installed the 2 AAA batteries and then followed the simple instructions that were provided and within seconds I was able to hear myself read the book. Following the sequence in the instructional  guide was made even easier as AnyBook Reader provides auditory cues to let you know when you are ready to record the page. Once you record the  page you simply touch the AnyBook Reader to the sticker and voila your page is read. AnyBook Reader comes with package of reusable stickers as well as stickers with pictures on them that make fun sounds and noises. It is easy to remove the plain stickers and re-record over them when you are ready to use them with another book. If you need to you can always reorder additional stickers. The AnyBook Reader is available in two different models- one that can store 60 hours of recording and another model which can store 15 hours of recordings. AnyBook Reader is priced at $59.99 for the higher capacity reader and $39.99 for the lover capacity reader. Children will find it easy to adjust the volume when using the AnyBook Reader and will enjoy the high quality audio when listening to the pages being read. AnyBook Reader makes it difficult for students to re-record a page by virtue of the sequence that is required to do so.

As much as I enjoyed using AnyBook Reader- the true test for AnyBook Reader had to take place in the classroom. I was so excited with the potential of AnyBook Reader that I decided to demonstrate it to one of my advanced assistive technology classes that I teach. All of my students immediately saw the value of AnyBook Reader  and could think of many ways to use it in the classroom. With this in mind, I decided to loan AnyBook Reader to one of my students who teaches preschool children so that she could field test it. I went over the directions on how to record the pages and set her off to give it a try. The preschool class had the opportunity to use AnyBook Reader for a two week period and when my student came to class to share how it went, she was so excited to share her observations. My student shared the she couldn't believe just how wonderful AnyBook Reader was in allowing her preschool children to sit and have the book read in her voice. She shared that the students were enthralled with AnyBook Reader as they sat there and listened attentively to the book being read. It was very exciting to hear this feedback and know that this is from an experienced teacher who actually field tested it in her classroom. I know that she will go out and purchase one for her classroom. The only comment that she made was that she wished there was a way to plug in a headset or ear buds. Which I would concur. For more information about AnyBook Reader click here.

If you are looking for a quick and easy way to make books accessible then you have to take a look at AnyBook Reader from Franklin. This is an affordable and fun way to engage students in the reading process. And along the way I'm sure you will come up with interesting ways to use this device to modify all kinds of materials :-).

Panther: oninit -i ... ups... too late... or not / Panther: oninit -i ... ups... tarde de mais... ou não

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:

I hope that this one will be quick... How many of us have tried to initialize (oninit -i) an already initialized instance by mistake? Personally I don't think I did it, but our mind tends to erase bad experiences :) But we have heard too many stories like this. A problem in the environment setup and this can easily happen.
Well, the good folks from R&D tried to keep us safe from ourselves by introducing a new parameter called FULL_DISK_INIT. It's something that magically appears in the $ONCONFIG file with the value of 0, or that simply is not there... It's absence, or the value 0, means that if you run oninit -i and there is already an informix page in the rootdbs chunk, it will fail. Let's see an example:


panther@pacman.onlinedomus.net:fnunes-> onstat -V
IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
panther@pacman.onlinedomus.net:fnunes-> onstat -
shared memory not initialized for INFORMIXSERVER 'panther'
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y

WARNING: server initialization failed, or possibly timed out (if -w was used).
Check the message log, online.log, for errors.
panther@pacman.onlinedomus.net:fnunes-> onstat -m
shared memory not initialized for INFORMIXSERVER 'panther'

Message Log File: /usr/informix/logs/panther.log
Wed Oct 20 00:02:10 2010

00:02:10 Warning: ONCONFIG dump directory (DUMPDIR) '/usr/informix/dumps' has insecure permissions
00:02:10 Event alarms enabled. ALARMPROG = '/home/informix/etc/alarm.sh'
00:02:13 Booting Language from module <>
00:02:13 Loading Module
00:02:13 Booting Language from module <>
00:02:13 Loading Module
00:02:19 DR: DRAUTO is 0 (Off)
00:02:19 DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
00:02:19 Event notification facility epoll enabled.
00:02:19 IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
00:02:20 DISK INITIALIZATION ABORTED: potential instance overwrite detected.
To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.

00:02:20 oninit: Fatal error in shared memory initialization

00:02:20 IBM Informix Dynamic Server Stopped.

00:02:20 mt_shm_remove: WARNING: may not have removed all/correct segments

Very nice. It didn't allow me to shoot myself in the foot.
And if we don't have it in the $ONCONFIG?:


panther@pacman.onlinedomus.net:fnunes-> vi $INFORMIXDIR/etc/$ONCONFIG
panther@pacman.onlinedomus.net:fnunes-> onstat -
shared memory not initialized for INFORMIXSERVER 'panther'
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
#FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y

WARNING: server initialization failed, or possibly timed out (if -w was used).
Check the message log, online.log, for errors.
panther@pacman.onlinedomus.net:fnunes-> onstat -m
shared memory not initialized for INFORMIXSERVER 'panther'

Message Log File: /usr/informix/logs/panther.log
The default memory page size will be used.
00:06:43 Segment locked: addr=0x44000000, size=224858112

Wed Oct 20 00:06:44 2010

00:06:44 Warning: ONCONFIG dump directory (DUMPDIR) '/usr/informix/dumps' has insecure permissions
00:06:44 Event alarms enabled. ALARMPROG = '/home/informix/etc/alarm.sh'
00:06:44 Booting Language from module <>
00:06:44 Loading Module
00:06:44 Booting Language from module <>
00:06:44 Loading Module
00:06:50 DR: DRAUTO is 0 (Off)
00:06:50 DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
00:06:50 Event notification facility epoll enabled.
00:06:50 IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
00:06:52 DISK INITIALIZATION ABORTED: potential instance overwrite detected.
To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.

00:06:52 oninit: Fatal error in shared memory initialization

panther@pacman.onlinedomus.net:fnunes->

The same. So if I'm trying to configure a second instance and I point the ROOTPATH to an existing one I'm safe.... But this raises one question: How can I really re-initialize an instance? I know what I'm doing, so let me work!... It's simple... If you really know what you're doing, set it to 1:


panther@pacman.onlinedomus.net:fnunes-> vi $INFORMIXDIR/etc/$ONCONFIG
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 1
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y
panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:00:32 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes->

Perfect! It allowed me to initialize it, and immediately changed the FULL_DISK_INIT parameter to 0 to keep me safe again.
This has been in the feature request list for years. Now that it's implemented we should be jumping up and down in plain happiness... But I'm not. Why? Because instead of sending the deserved compliments to R&D for implementing this I want more!
This is terribly useful, and will save a lot of people from destroying their instances. But unfortunately I've seen many other cases of destruction that can't be avoided by this. A few examples:
  1. A chunk allocation for a second instance on the same machine (using RAW devices) overwrites another already used chunk from another instance
  2. A restore of an instance overwrites another (either fully or partially)
  3. A restore of an instance on the same machine using the rename chunks functionality uses an outdated rename chunks file (-rename -f FILE ontape option). This file doesn't have a few chunks that were recently added. So these chunks will be restored over the existing chunks!
So, what would make me jump would be something that covered all these scenarios. It would not be a simple ONCONFIG parameter and a change in oninit. It would require changes in more utilities and server components (onspaces, SQL Admin API, ontape, onbar...), but that would really keep us safe from our mistakes. For now this is a good sign, and if these questions worry you, be alert and if you have the chance make IBM know that it is important to you.

One instance was destroyed to bring this article to you... I'll spend another 30s to get the data back into it :)



Versão Portuguesa:

Espero que este seja rápido... Quantos de nós já tentámos inicializar (oninit -i/iy) uma instância já inicializada por engano? Pessoalmente não me recordo de me ter acontecido, mas a nossa mente tende a apagar episódios traumáticos :) Mas já ouvimos demasiadas estórias como esta. Basta um problema na configuração de um ambiente e isto pode acontecer facilmente.
Bem, os bons rapazes do desenvolvimento tentaram manter-nos a salvo de nós mesmos, através da introdução de um novo parâmetro chamado FULL_DISK_INIT. É algo que aparece magicamente no nosso $ONCONFIG com o valor 0, ou que simplesmente não está lá... A sua ausência ou o valor 0 significam que se tentarmos correr o oninit -i e já existir uma página Informix no nosso chunk do rootdbs irá falhar. Vejamos um exemplo:


panther@pacman.onlinedomus.net:fnunes-> onstat -V
IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
panther@pacman.onlinedomus.net:fnunes-> onstat -
shared memory not initialized for INFORMIXSERVER 'panther'
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y

WARNING: server initialization failed, or possibly timed out (if -w was used).
Check the message log, online.log, for errors.
panther@pacman.onlinedomus.net:fnunes-> onstat -m
shared memory not initialized for INFORMIXSERVER 'panther'

Message Log File: /usr/informix/logs/panther.log
Wed Oct 20 00:02:10 2010

00:02:10 Warning: ONCONFIG dump directory (DUMPDIR) '/usr/informix/dumps' has insecure permissions
00:02:10 Event alarms enabled. ALARMPROG = '/home/informix/etc/alarm.sh'
00:02:13 Booting Language from module <>
00:02:13 Loading Module
00:02:13 Booting Language from module <>
00:02:13 Loading Module
00:02:19 DR: DRAUTO is 0 (Off)
00:02:19 DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
00:02:19 Event notification facility epoll enabled.
00:02:19 IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
00:02:20 DISK INITIALIZATION ABORTED: potential instance overwrite detected.
To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.

00:02:20 oninit: Fatal error in shared memory initialization

00:02:20 IBM Informix Dynamic Server Stopped.

00:02:20 mt_shm_remove: WARNING: may not have removed all/correct segments


Muito bem. Não me deixou dar um tiro no pé.
E se não tivermos o parâmetro no $ONCONFIG?:

panther@pacman.onlinedomus.net:fnunes-> vi $INFORMIXDIR/etc/$ONCONFIG
panther@pacman.onlinedomus.net:fnunes-> onstat -
shared memory not initialized for INFORMIXSERVER 'panther'
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
#FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y

WARNING: server initialization failed, or possibly timed out (if -w was used).
Check the message log, online.log, for errors.
panther@pacman.onlinedomus.net:fnunes-> onstat -m
shared memory not initialized for INFORMIXSERVER 'panther'

Message Log File: /usr/informix/logs/panther.log
The default memory page size will be used.
00:06:43 Segment locked: addr=0x44000000, size=224858112

Wed Oct 20 00:06:44 2010

00:06:44 Warning: ONCONFIG dump directory (DUMPDIR) '/usr/informix/dumps' has insecure permissions
00:06:44 Event alarms enabled. ALARMPROG = '/home/informix/etc/alarm.sh'
00:06:44 Booting Language from module <>
00:06:44 Loading Module
00:06:44 Booting Language from module <>
00:06:44 Loading Module
00:06:50 DR: DRAUTO is 0 (Off)
00:06:50 DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
00:06:50 Event notification facility epoll enabled.
00:06:50 IBM Informix Dynamic Server Version 11.70.UC1 Software Serial Number AAA#B000000
00:06:52 DISK INITIALIZATION ABORTED: potential instance overwrite detected.
To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.

00:06:52 oninit: Fatal error in shared memory initialization

panther@pacman.onlinedomus.net:fnunes->

Acontece o mesmo. Portanto de estiver a tentar configurar uma nova instância e por lapso apontar o ROOTPATH para outra já existente estou salvo... Mas isto levanta uma questao: Como posso re-inicializar uma instância? Eu sei o que estou a fazer, por isso deixem-me trabalhar!... É simples... Se sabe realmente o que está a fazer só tem de o definir para 1:


panther@pacman.onlinedomus.net:fnunes-> vi $INFORMIXDIR/etc/$ONCONFIG
panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 1
panther@pacman.onlinedomus.net:fnunes-> oninit -i

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)? y
panther@pacman.onlinedomus.net:fnunes-> onstat -

IBM Informix Dynamic Server Version 11.70.UC1 -- On-Line -- Up 00:00:32 -- 369588 Kbytes

panther@pacman.onlinedomus.net:fnunes-> onstat -c | grep FULL_DISK_INIT
FULL_DISK_INIT 0
panther@pacman.onlinedomus.net:fnunes->

Perfeito. Deixou-me inicializar e imediatamente mudou o parâmetro FULL_DISK_INIT para 0 para me salvaguardar de novo.

Isto estava na lista de pedidos de coisas a implementar há anos. Agora que está implementado devíamos estar aos saltos de contentamento... Mas eu não estou. Porquê? Porque em vez de enviar os merecidos cumprimentos ao desenvolvimento quero mais!
Isto é tremendamente útil, e vai salvar muita gente de destruir as suas instâncias. Mas infelizmente eu tenho visto muitos outros casos de destruição que não podem ser evitados por isto. Alguns exemplos:
  1. Uma criação de um chunk para uma segunda instância na mesma máquina (usando RAW devices) sobrepõe outro chunk já em uso noutra instância
  2. Uma reposição de um backup sobrepõe outra instância (completa ou parcialmente)
  3. Uma reposição de um backup de uma instância, na mesma máquina, usando a funcionalidade de troca de paths dos chunks usa um ficheiro de rename desactualizado (opção -rename -f FICHEIRO do ontape). Este ficheiro não contém alguns chunks que foram adicionados recentemente. Portanto estes chunks serão restaurados sobre os existentes!
Assim, o que me deixaria aos pulos de contentamento seria algo que cobrisse todos estes cenários. Não seria tão simples quanto uma mudança no ONCONFIG e uma mudança no oninit. Requeriria mudanças em mais utilitários e componentes do servidor (onspaces, SQL Admin API, ontape, onbar....), mas isto sim, conseguiria manter-nos a salvo dos nossos erros. Por agora, esta funcionalidade é um bom sinal, e se estas questões o preocupam, esteja alerta e se tiver oportunidade faça com que a IBM saiba que isto é importante para si.

Uma instância foi destruída para fazer chegar este artigo até a si. Agora vou passar mais 30s a repôr-lhe os dados :)

Monday, October 18, 2010

Adobe Unveils New Acrobat X Solutions

Easily Create, Review and Share Compelling Documents with Greater Productivity Across Organizations
SAN JOSE, Calif., — Oct. 18, 2010 Adobe Systems Incorporated (Nasdaq:ADBE) today introduced the Adobe® Acrobat® X software family – Acrobat X, Reader® X, the Acrobat X Suite and new document exchange services at Acrobat.com – that empowers professionals to innovate and create higher quality content, driving tighter collaboration and productivity across teams in today’s dynamic business environments.
“Companies today need to work with their customers and partners in multiple time zones, languages and cross-functional teams,” said Melissa Webster, analyst, IDC. “Seamless, fluid content creation and collaboration is critical to how organizations use, repurpose and share information – it is no longer a ‘nice to have’ – it is an imperative to success in today’s business world.”
Acrobat X delivers new guided Actions to simplify multi-step document preparation and publishing processes; completely new customization capabilities in PDF Portfolios unify multiple file types into a compelling presentation. New document services available at Acrobat.com give individuals the ability to collaborate more efficiently. Integration with Microsoft SharePoint enables consistency of PDF documents across the enterprise; re-use of content is now easier with higher quality export to Microsoft® Word and Microsoft® Excel.
New Acrobat X Highlighted Features
·         Automate routine, multi-step tasks with new guided Actions and easily share them with coworkers and collaborators, reducing the burden of training.
·         Change how users view, think and interact with content and its context with PDF Portfolios using new layouts, visual themes and color palettes.
·         Maximize the power of Adobe Photoshop® and Adobe Acrobat to easily create dynamic communications with the new Acrobat X Suite. Quickly capture, edit and combine digital content right from the desktop.
·         Increase productivity across the organization with new Microsoft® SharePoint integration. Check-in, check-out PDF files for reviewing and editing shared documents.
·         Streamline the process for large organizations to deploy, configure and manage updates and conform to ISO standards, in both Adobe Reader X and Acrobat X, including support for Microsoft SCCM and SCUP.
·         Display the most commonly used tools all in one pane with the updated user interface.
New in Adobe Reader X
·         Commenting is now available in Adobe Reader X, with Sticky Notes and Highlighter tools available to all users.
·         Expands PDF access to mobile devices with free Adobe Reader X for Android, Windows® Phone 7 and Blackberry Tablet OS.
·         Safer viewing of PDF files with new Protected Mode security capabilities in Reader X.
New Services via Acrobat.com
·         Adobe SendNow, a valuable new document exchange service at Acrobat.com, enables users to send and receive large files and track them with proof of receipt, avoiding e-mail gateway issues, complicated FTP servers, or the costs of expensive overnight mail.
·         Adobe CreatePDF for easily converting files to professional PDF documents from within Adobe Reader X or any Web browser.
Quotes
Kevin M. Lynch, vice president and general manager of Acrobat, Digital Enterprise Solutions Group, Adobe
·         “Today, more than ever, people need to communicate and collaborate reliably and professionally with people outside their organization. Acrobat X is a response to this dynamic – to drive more fluid collaboration and to create richer experiences in today’s fast-paced, complex business environments.”
Larry Hawes, lead analyst, Collaboration and Enterprise Social Software, at Gilbane Group
·         “Collaborative documents is a visionary collaborative content model that is just now beginning to be realized. Perhaps the clearest, productized articulation of this vision that I have seen is the PDF Portfolios component of Adobe Acrobat, enabling content creators to bring together multiple related files into a single space without altering them, and then share that bundle with others. Think of a PDF Portfolio as a ZIP file in which the relationship between the individual files in the container is defined and sequenced, as are the slides in a presentation.”
Bill Rue, chief information officer, HASSELL, international network of architectural design studios
·         “Using advanced Microsoft SharePoint functionality in Acrobat X, we can seamlessly integrate documents into our workflows, simplifying projects and helping to ensure we have the right people working on the right project, at the right moment.”
Johnny Chloride, solution delivery manager, HASSELL
·         “Acrobat X offers a sleek user interface and tool panes that make the software extremely easy to use for anyone.”
Mason Farmani, COO and managing partner, Barkley Court Reporters, the largest court reporting firm in California
·         “With Acrobat X, streamlined document commenting and collaboration improves sharing ideas and information. For us, it helps accelerate our internal learning processes and gives our clients the tools to work together more effectively.”
Ron Usher, managing partner, Bell Alliance, real estate and estate planning leader
·         “The Action Wizard in Acrobat X empowers our staff to transform many of their time consuming tasks into simple one-step processes.”
·         “In the latest release, Adobe has found a great balance between rich features and delivering an intuitive application with a modern, clean interface.”
Helpful Links
·         Acrobat blog
·         Acrobat Twitter account
·         Acrobat User Community
Product Family
This release line-up includes the following Acrobat X products:
·         Acrobat X Standard
·         Acrobat X Pro
·         Adobe Reader X
·         Acrobat.com services, including new Adobe SendNow and Adobe Create PDF online document exchange services.
Pricing and Availability
Acrobat X and its associated products are scheduled to ship within 30 days, with availability through Adobe Authorized Resellers, the Adobe Store and Adobe Direct Sales.
·         Estimated street price for:
o    Acrobat X Standard is expected to be US$299 ($139 upgrade)
o    Acrobat X Pro is expected to be US$449 ($199 upgrade)
o    Acrobat X Suite is expected to be US$1199 ($799)
·         Free 30-day trial of Acrobat Pro will be available upon product ship.
About Adobe Systems Incorporated
Adobe revolutionizes how the world engages with ideas and information – anytime, anywhere and through any medium. For more information, visit www.adobe.com.
###
© 2010 Adobe Systems Incorporated. All rights reserved. Adobe, the Adobe logo, Acrobat, Captivate, LiveCycle, Photoshop and Reader 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.