text:
C++ () é uma linguagem de programação compilada multi-paradigma (seu suporte inclui linguagem imperativa, orientada a objetos e genérica) e de uso geral. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de utilizadores.

Bjarne Stroustrup desenvolveu o C++ (originalmente com o nome C with Classes, que significa C com classes em português) em 1983 no Bell Labs como um adicional à linguagem C. Novas características foram adicionadas com o tempo, como funções virtuais, sobrecarga de operadores, herança múltipla, gabaritos e tratamento de exceções. Após a padronização ISO realizada em 1998 e a posterior revisão realizada em 2003, uma nova versão da especificação da linguagem foi lançada em dezembro de 2014, conhecida informalmente como C++17.

História

A evolução da linguagem
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs, durante a década de 1980 com o objetivo implementar uma versão distribuída do núcleo Unix. Como o Unix era escrito em C, deveria-se manter a compatibilidade, ainda que adicionando novos recursos. Alguns dos desafios incluíam simular a infraestrutura da comunicação entre processos num sistema distribuído ou de memória compartilhada e escrever drivers para tal sistema. Stroustrup percebeu que a linguagem Simula 67 possuía características bastante úteis para o desenvolvimento de software, mas que era muito lenta para uso prático. Por outro lado, a linguagem BCPL era rápida, mas possuía demasiado baixo nível, dificultando sua utilização no desenvolvimento de aplicações. A partir de sua experiência de doutorado, começou a acrescentar elementos do Simula 67 no C, especialmente os recursos de criação e manipulação de objetos. O C foi escolhido como base de desenvolvimento da nova linguagem pois possuía uma proposta de uso genérico, era rápido e também portável para diversas plataformas. Algumas outras linguagens que também serviram de inspiração para o cientista da computação foram ALGOL 68, Ada, CLU e ML.

Ainda em 1983 o nome da linguagem foi alterado de C with Classes para C++. Antes implementada usando um pré-processador, a linguagem passou a exigir um compilador próprio, escrito pelo próprio Stroustrup. Novas características foram adicionadas, como funções virtuais, sobrecarga de operadores e funções, referências, constantes, gerenciamento manual de memória, melhorias na verificação de tipo de dado e estilo de comentário de código de uma linha (//). Em 1985 foi lançada a primeira edição do livro The C++ Programming Language, contendo referências para a utilização da linguagem, já que ainda não era uma norma oficial. A primeira versão comercial foi lançada em outubro do mesmo ano. Em 1989 a segunda versão foi lançada, contendo novas características como herança múltipla, classes abstratas, métodos estáticos, métodos constantes e membros protegidos, incrementando o suporte a orientação a objeto. Em 1990 foi lançado o livro The Annotated C++ Reference Manual, que tornou-se base para o futuro padrão. Outras adições na linguagem incluem gabaritos, tratamento de exceções, espaço de nomes, conversão segura de tipo de dado e o tipo booleano.

Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao longo do tempo. Sua primeira adição foi a biblioteca de E/S, e posteriormente a Standard Template Library (STL); ambas tornaram-se algumas das principais funcionalidades que distanciaram a linguagem em relação a C. Criada primordialmente na HP por Alexander Stepanov no início da década de 1990 para explorar os potenciais da programação genérica, a STL foi apresentada a um comitê unificado ANSI e ISO em 1993 à convite de Andrew Koenig. Após uma proposta formal na reunião do ano seguinte, a biblioteca recebe o aval do comitê.

Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em 1998 (ISO/IEC 14882:1998). Após alguns anos foram reportados defeitos e imprecisões no documento, e uma correção foi lançada em 2003.

Por muito tempo, o C++ foi encarado como um superconjunto do C. Entretanto, em 1999 o novo padrão ISO para a linguagem C tornou as duas linguagens ainda mais diferentes entre si. Devido a essas incompatibilidades, muitas empresas que desenvolvem compiladores não oferecem suporte à versão mais recente da linguagem C.

Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração para outras linguagens como Java, a IDL de CORBA e C#.

Etimologia
Durante sua fase inicial de desenvolvimento, a linguagem era chamada "novo C", "C84" ou ainda "C com classes". O termo "C++" é creditado a Rick Mascitti, e foi utilizado pela primeira vez em dezembro de 1983. O termo é uma referência ao operador de incremento ++, significando um acréscimo (uma evolução) à linguagem C. Em tom humorado, desenvolvedores de software e especialistas em informática no início da década de 1990 costumavam relacionar o ++ do nome à grande insistência dos programadores em utilizar o C++ da mesma forma que a linguagem C, não usufruindo das novas facilidades que a linguagem poderia fornecer. Assim como o ++ estava sendo aplicado de maneira pós-fixa à letra C, a linguagem C++ era uma evolução do C pós-fixada, que só tornar-se-ia realidade em algum futuro remoto, não naquele momento.

Trabalhos futuros
A linguagem continua evoluindo de forma a fornecer novas funcionalidades. O grupo de desenvolvimento Boost.org trabalha para evoluir a biblioteca padrão, informando o comitê oficial da linguagem das facilidades que possuem maior retorno positivo dos programadores, seja por qualidade ou por utilidade, e quais ainda devem ser desenvolvidas. Tudo indica que o C++ continuará com sua natureza multiparadigma. Por exemplo, o trabalho da Boost.org dedica-se a acrescentar as qualidades da programação funcional e genérica. O padrão C++ não define a implementação para a definição de nomes e tratamento de exceções, entre outras facilidades específicas, o que frequentemente torna incompatíveis códigos objeto produzidos por diferentes compiladores. Apesar disso, existem padrões periféricos específicos para certas plataformas ou sistemas operacionais para padronizar compiladores dessas plataformas, como por exemplo o C++ ABI.

As empresas de desenvolvimento de compiladores ainda se esforçam para suportar inteiramente o padrão, especialmente na área de gabaritos. Uma das disputas se refere à palavra reservada export, que permite que a definição de um gabarito seja separada de sua declaração. O primeiro compilador a implementar export foi o Comeau C++ em 2003 (cinco anos após o lançamento do padrão), e no ano seguinte uma versão beta do Borland C++ Builder X também suportava a facilidade. Interessante notar que ambos os compiladores são baseados na versão EDG do C++. Muitos livros fornecem exemplos de códigos para implementar export que não são compiláveis, mas não há referências para o problema mencionado. Outros compiladores como o Microsoft Visual C++ e o GCC não suportam a facilidade. O secretário do comitê oficial do C++ Herb Sutter recomendou que a palavra fosse removida de versões futuras do padrão da linguagem, mas após discussão a decisão final foi mantê-la.

Outras disputas relativas a gabaritos se referem à especialização parcial, que foi pouco suportada por muitos anos depois que o C++ padrão foi lançado.

Atualmente a linguagem tem uma nova especificação, conhecida por C++11 e publicada como 14882:2011.

Características

História descritiva
No livro In The Design and Evolution of C++ (1994), Bjarne Stroustrup descreve algumas regras que ele utiliza para desenvolver a linguagem, como exemplificado abaixo:

 C++ é desenvolvido para ser uma linguagem tipada estaticamente e de propósito geral que é tão eficiente e portátil quanto o C.
 C++ é desenvolvido para suportar múltiplos paradigmas.
 C++ é desenvolvido para fornecer ao programador escolhas, mesmo que seja possível ao programador escolher a opção errada.
 C++ é desenvolvido para ser o mais compatível com C possível, fornecendo transições simples para código C.
 C++ evita fornecer facilidades que são específicas a certas plataformas ou a certos grupos de desenvolvedores.
 C++ não exige overhead para facilidades que não são utilizadas.
 C++ é desenvolvido para ser utilizado mesmo sem um ambiente de desenvolvimento sofisticado.

Stanley B. Lippman documenta em seu livro Inside the C++ Object Model (1996) como compiladores convertem código de programas C++ em mapeamentos de memória. Lippman trabalhou implementando e mantendo o C-front, a implementação original do C++ nos Bell Labs.

Stroustrup sempre desejou que o C++ fosse mantido como uma linguagem de especificação pequena, apesar de pressões externas para adições de novas funcionalidades na especificação da própria linguagem ao invés da codificação de novas bibliotecas para a biblioteca padrão. Brian Kernighan notou que enquanto em C existe geralmente uma maneira de resolver problemas, em C++ existem várias. Na maioria das linguagens de programação, um padrão ou um conjunto bastante restrito de padrões de projeto de software é escolhido para o desenvolvimento. Entretanto, isso não acontece em C++, pois a escolha é delegada ao desenvolvedor. É um conceito que prega que não existe paradigma de programação ou padrão de desenvolvimento que resolva todos os problemas, por isso a pluralidade e generalidade de aplicações para a linguagem. Tal filosofia assusta iniciantes e professores, que sentem que a linguagem deveria ser de fácil aprendizado, algo que o C++ não é.

Biblioteca padrão

A biblioteca padrão do C++ incorpora a biblioteca padrão do C com algumas pequenas modificações para trabalhar melhor com as novas funcionalidades criadas pela linguagem. Outra grande parte da biblioteca é composta pela biblioteca padrão de gabaritos (STL). Ela fornece ferramentas úteis como containers (vetores, listas, entre outros), algoritmos (filtragem de elementos de container, busca, ordenação, entre outros) e iteradores (ponteiros inteligentes genéricos para acessar tais containers e interligá-los aos algoritmos). Usando gabaritos é possível escrever algoritmos genéricos que funcionam para qualquer container ou sequência definida por iteradores. Tendo em vista que um iterador nada mais é que um ponteiro encapsulado, é possível também utilizar os algoritmos genéricos em vetores C, utilizando-se ponteiros comuns para tal. Como em C, os arquivos cabeçalho são incluídos utilizando a diretiva #include. Ao todo são fornecidos 69 arquivos cabeçalho padrão, dos quais 19 deles estão em depreciação.

Devido ao fato da biblioteca padrão ter sido desenvolvida por especialistas e de já ter sido amplamente utilizada comercialmente e academicamente, é recomendado utilizar seus componentes ao invés de componentes próprios. Por exemplo, utilizar std::vector e std::string ao invés de declarar vetores herdados do C não somente torna o desenvolvimento mais simples, como também traz mais segurança e escalabilidade para o sistema.

A biblioteca STL foi originalmente desenvolvida pela HP e posteriormente pela SGI, antes de sua incorporação na biblioteca padrão do C++. O padrão não a define como "STL", mas ainda utiliza-se esse termo para distingui-la do resto da biblioteca. O projeto STLPort mantém uma implementação atualizada da biblioteca, e é baseado na SGI STL. O projeto Boost fornece elementos adicionais à STL, dos quais alguns já são considerados a serem parte da biblioteca padrão no futuro.

Operadores

Os operadores em C++ são um conjunto de todos os operadores do C mais novas adições à linguagem. Um grupo de novos operadores do C++ são os relativos à conversão de tipo de dado, e consistem em const_cast, static_cast, dynamic_cast e reinterpret_cast. Eles são uma evolução a conversão de dados utilizada em C, que limitava-se a oferecer um método para conversão tal qual static_cast. dynamic_cast refere-se diretamente ao suporte de herança e polimorfismo oferecido pela linguagem, e está relacionado a outro novo operador, typeid, que retorna informações sobre o tipo de dado derivado pelo operando. Ambos os operadores requerem a habilitação de RTTI para funcionar. Outro grupo de novos operadores são os relativos à alocação de memória, e consistem em new e delete. Assemelham-se às funções malloc e free respectivamente, que estão presentes na biblioteca padrão do C. Outro novo operador é o de resolução de âmbito, ::, e que refere-se diretamente ao suporte de espaço de nomes e orientação a objeto oferecido pela linguagem. Com ele é possível declarar e acessar espaços de nomes, e também declarar classes e acessar objetos.

O C++ define que alguns dos operadores podem ser sobrecarregados, o que permite, assim como na sobrecarga de funções, que diferentes tipos de dados sejam passados para um operador de forma a produzir diferentes resultados. Essa técnica também permite que classes definidas por utilizadores também possam usufruir de operadores próprios, tornando possível que uma classe Lista possa sobrecarregar o operador de apêndice += para que diversos elementos possam ser adicionados a lista, como elementos ou outras listas. Alguns operadores de classes definidas pelo utilizador devem ser obrigatoriamente sobrecarregados (definidos) a fim de poderem ser utilizados pela STL. Por exemplo, uma classe Funcionario deve fornecer o operador menor que (<) para ser utilizada pela função de ordenação (sort). De acordo com o padrão atual da linguagem, este requerimento é implícito durante a compilação: caso a função sort seja invocada para a um container da classe Funcionario e esta não define o operador <, há erro de compilação. Para padrões futuros planeja-se introduzir os "conceitos", que auxiliaram a programação genérica na especificação dos requerimentos de um tipo de dado para que ele seja usado em uma função. Por exemplo, os iteradores passados para sort estarão associados ao conceito "tipo de dado comparável", isto é, um tipo de dado que declara o operador <. Ao explicitar essa relação o código se torna mais consistente, e o compilador é auxiliado a fim de retornar uma mensagem de erro mais adequada ao utilizador caso haja problemas durante a compilação.

Pré-processador

O C++ é compilado em três fases: pré-processamento, compilação propriamente dita (tradução para código objeto) e ligação. Durante a primeira fase, as diretivas de pré-processamento são aplicadas através de transformações léxicas no próprio código fonte, que então alimenta as próximas fases de compilação. Elas são identificadas no código através do caractere #. O pré-processamento é utilizado para substituir partes de código, para inutilizar partes de código e para importar módulos externos.

Por exemplo, o código #define PI 3.1415926535897932384626433 fará com que sempre que PI aparecer no código, este será substituído por 3.1415926535897932384626433 e isso ocorre antes de começar a compilar, é como se o usuário tivesse digitado o valor de PI ao invés do texto PI. Outro uso do pré-processador é o que segue: #include <iostream> fará com que seja incluído (importado) todo o conteúdo da cabeçalho iostream da biblioteca libc.

Gabaritos
Um gabarito, mais conhecido como "template", é um mecanismo que permite a criação de classes ou funções genéricas, passando tipos de dados como parâmetros. O prefixo template é uma palavra reservada que estabelece que um gabarito está sendo criado, junto a ele vem a expressão <class T> onde T representa um tipo de dado dentro desse gabarito, T pode ser utilizado como um tipo de dado apenas dentro do escopo definido pelo prefixo template <class T>.

Exemplo de um gabarito:
#include <iostream>

template <class T>
T min(T a, T b)
{
    return a < b ? a : b;
}Um gabarito é semelhante a um macro, embora tenham algumas diferenças como, por exemplo, o fato de um gabarito não se restringir a uma substituição léxica, um outro exemplo é que os macros não verificam os tipos de dados dos parâmetros, fazendo com que erros como a falta de compatibilidade entre duas variáveis aconteçam.

Quando um gabarito é chamado pela primeira vez para um tipo T, o compilador cria uma nova instancia do gabarito, que será utilizada sempre que o mesmo for chamado com um argumento do tipo T. Para instanciar uma classe genérica é necessário passar como argumento um tipo de dado para o gabarito, como mostrado no exemplo abaixo, onde a classe Pilha recebe como argumento int. Gabaritos são muito uteis para a criação de coleções de classes. Eles permitem a criação de classes genéricas passando um tipo de dado como parâmetro para que seja construída uma cópia da classe para um tipo especifico de dado, como por exemplo, a criação de uma pilha de objetos ou uma pilha de caracteres, fazendo com que não seja necessário criar varias classes Pilha manualmente.

#include <iostream>

int main()
{
    Pilha<int> p();
}

Objetos

O C++ introduziu alguns conceitos de orientação a objetos ao C, como exemplificado pelas classes, que apresentam quatro características comumente presentes em linguagens de programação orientadas a objeto: abstração, encapsulamento, herança e polimorfismo. Cada vez que uma classe é instanciada é criado um objeto na memória, que é basicamente um conjunto de atributos e operações reunidos.

Encapsulamento

O encapsulamento permite que os atributos de classes possam ser declarados como públicos, privados ou protegidos. Um atributo público (o menos restrito) pode ser acessado a partir de qualquer método que tenha acesso ao objeto. Um atributo privado (o mais restrito) só pode ser acessado por métodos da própria classe e por métodos explicitamente declarados como permitidos para tal (utilizando a palavra reservada friend). Atributos protegidos só podem ser acessados por métodos da mesma classe, por métodos de classes herdadas e por métodos explicitamente declarados (utilizando a palavra reservada friend). É considerado como uma boa prática de programação restringir ao máximo o acesso aos atributos, de forma a isolar detalhes de implementação de uma classe, tornando públicas somente as funções membro que realizam uma interface mínima da classe com outros componentes.

O isolamento dos dados proposto pelo encapsulamento não é infalível, podendo ser contornado ao realizar operações de baixo nível em objetos. Dessa maneira, um atributo privado pode ser acessado e modificado a partir de um ponteiro para seu endereço de memória sem problemas, ainda que isso seja considerado uma má prática de programação. Tal característica, herdada da linguagem C, é reflexo direto da liberdade que o C++ fornece ao desenvolvedor em relação a padrões de projeto de software, cabendo a ele decidir qual é o mais adequado para seu algoritmo. O desenvolvedor tanto pode esquecer tal característica, atendo-se somente a detalhes de especificação em alto nível, quanto adequar tais características em sua especificação de forma mais baixo nível, visando desempenho ou algum outro objetivo.

Herança

A herança de uma classe para com outra pode ser declarada como pública, protegida ou privada. Isso determina o quão relacionadas as classes serão entre si. Somente a herança pública corresponde ao conceito usual de herança, pois permite acesso total aos atributos da classe-base. Entretanto, pode-se também declarar heranças protegidas e privadas, com características parecidas como as detalhadas anteriormente sobre encapsulamento. Essa funcionalidade adicionou ao C++ a possibilidade de criação de classes abstratas, que não podem ser instanciadas, mas que oferecem interfaces de funcionamento para suas respectivas classes herdadas. Ela é um princípio básico da orientação a objeto para a reutilização de código, pois permite que classes (possivelmente escritas por outros desenvolvedores e então não modificáveis) possam ser herdadas de forma a ser incrementadas em funcionalidade.

A herança múltipla é uma das características do C++ mais controversas. Ela permite que uma classe possa ser derivada de mais de uma classe base, o que pode resultar em um complicado grafo de herança e relacionamento entre classes. Por exemplo, uma classe Gato voador pode ser derivada tanto das classes Gato quanto Mamífero voador. A mistura de heranças reflete em uma mistura de espaços de nomes na classe herdada, o que pode ser resolvido através da declaração local de espaço de nomes, como explicado adiante.

Polimorfismo

Polimorfismo é a capacidade de usar um operador ou uma função de diferentes maneiras, permitir fornecer diferentes significados de acordo com o contexto. Uma vez que um aplicativo é escrito utilizando o conceito de polimorfismo, pode ser facilmente estendido, oferecendo novos objetos que estejam em conformidade com a interface original. Não é necessário recompilar programas originais, adicionando novos tipos. Apenas a re-vinculação é necessária para expor as novas mudanças juntamente com a antiga aplicação. Ele auxilia na reutilização de código e contribui para a criação de aplicações robustas. C++ suporta diversos tipos de polimorfismos, sejam estáticos (resolvidos em tempo de compilação de código) ou dinâmicos (resolvidos em tempo de execução de código).

Estático
A sobrecarga de funções é um polimorfismo estático que permite que um programa possa declarar várias funções com o mesmo nome, diferenciando entre si pela quantidade de parâmetros apresentados e por seus respectivos tipos de dado. Assim, o mesmo nome de função pode referir-se a diferentes funções dependendo do contexto em que ela é usada. O tipo retornado pela função não é utilizado para distinguir funções sobrecarregadas. A sobrecarga de operadores também é um polimorfismo estático que permite que a definição de certos operadores resultem em uma chamada de função que depende dos tipos de dado dos operadores sendo utilizados.

O C++ também suporta argumentos padrão para os parâmetros das funções, o que permite omitir tal parâmetro na invocação da função. Quando uma função é chamada com menos argumentos que o esperado e os argumentos explícitos são compatíveis com os parâmetros da esquerda à direita, os últimos parâmetros são atribuídos de acordo com o argumento padrão. Semanticamente parecida com a sobrecarga de funções, essa técnica permite simplificar situações em que uma função é declarada somente para invocar uma sobrecarga dela própria com algum parâmetro especificado.

O C++ implementa polimorfismo paramétrico através de gabaritos, que fazem o compilador gere uma instância separada da classe ou função usada como gabarito para cada permutação de parâmetros de tipo usado com ele, o que pode levar a dificultar a depuração de código. Um benefício que os gabaritos C++ têm sobre Java e C# é permitir a metaprogramação por gabaritos, uma forma de pré-avaliação de parte do código em tempo de compilação ao invés de tempo de execução.

Os gabaritos em C++ fornecem um mecanismo sofisticado para a criação de código genérico polimórfico. Em particular, por meio da técnica Curiously Recurring Template Pattern é possível implementar uma forma de polimorfismo estático que imita a sintaxe para substituir as funções virtuais. Uma vez que gabaritos são sensíveis aos tipos de dados e também são Turing completos, também podem ser usados para permitir que o compilador resolva condicionais recursivas e gerar programas substanciais através de metaprogramação por gabaritos.

Entre os usos de polimorfismo estático, inclui-se funções com o mesmo nome mas que tratam de diferentes parâmetros, como soma(int, int) e soma(double, double) (o que, entretanto, ignora as facilidades dos gabaritos.) Também, versões novas da mesma função que recebem parâmetros adicionais, como ExportarDados(void* buffer, int tamanho) e ExportarDados(void* buffer, int tamanho, unsigned long opcoes). Mais um uso é um mesmo nome de método para atribuir ou obter o valor de uma propriedade, como Classe::Propriedade(int x) e int x Class::Property() const.

Dinâmico
O polimorfismo por herança é um exemplo de polimorfismo dinâmico no qual ponteiros de uma classe base podem referenciar objetos de classes derivadas, o que permite que uma chamada de função virtual seja resolvida em tempo de execução de código. Ponteiros e referências de uma classe base podem referenciar objetos de qualquer classe derivada de si, o que permite que arranjos e outros containers de um dado tipo possam armazenar ponteiros de diversos tipos de dados, o que não poderia ser feito de outra maneira em C++. Como não é possível descobrir se a conversão do tipo base para o tipo derivado é segura em tempo de compilação, a verificação deve ser feita durante a execução do código. Para isso é fornecido o operador dynamic_cast, que permite tentar a conversão segura de uma classe mais abstrata (classe base) para outra mais específica (classe derivada). Para sua utilização a linguagem dispõe do RTTI, uma técnica para manter em memória informações sobre o tipo de dado de objetos. Caso a conversão não seja possível uma exceção específica é lançada.

Normalmente, quando uma função em uma classe derivada substitui uma função em uma classe base, a função chamada é determinada pelo tipo do objeto. Uma dada função é sobrescrita quando não existe nenhuma diferença no número ou tipo de parâmetros, entre duas ou mais definições para aquela função. Assim, em tempo de compilação pode não ser possível determinar o tipo do objeto e, portanto, a função a ser chamada, tendo apenas um ponteiro de classe base, a decisão é adiada até o tempo de execução. Isso é chamado de despache dinâmico. Funções ou métodos virtuais permitem a implementação mais específica da função a ser chamada, de acordo com o tipo do objeto em tempo real. Em C++, isto é geralmente feito usando tabelas de funções virtuais. Se o tipo de objeto é conhecido, isso pode ser contornado, antecipando o nome da classe antes da chamada de função, mas, em geral chamadas de funções virtuais são resolvidas em tempo de execução.

Além das funções de membro padrão, sobrecargas do operador e destrutores podem ser virtuais. A regra geral é que, se todas as funções da classe são virtuais, o destrutor também deve ser assim. Como o tipo de criação de um objeto é conhecido em tempo de compilação, construtores de cópia e de extensão, não pode ser virtuais. No entanto pode acontecer de uma cópia de um objeto ser criado quando um ponteiro para um objeto derivado é passado como um ponteiro para um objeto base. Nesse caso, uma solução comum é criar um clone() (ou similar) e declarar que a função como virtual. O método clone() cria e retorna uma cópia da classe quando chamado.

Um membro da função também pode ser declarado puramente virtual, acrescentando = 0 após o parêntese de fechamento e antes do ponto e vírgula. Os objetos não podem ser criados de uma classe com uma função virtual pura e são chamados de tipos de dados abstratos. Esses tipos de dados abstratos só podem ser derivados. Qualquer classe derivada herda a função virtual pura deve apresentar uma definição não pura (e todas as outras funções virtuais puras), antes de objetos da classe derivada poderem ser criados.

Regra dos três
Uma regra informal no desenvolvimento orientado a objeto em C++ afirma que se uma classe ou estrutura possui um dos seguintes itens, ela provavelmente deveria ter todos os três: destrutor, construtor de cópia e operador de atribuição (=).

Esse três métodos são funções membros especiais criadas pelo compilador automaticamente se não são definidas pelo desenvolvedor. Se um desses métodos é definido explicitamente pelo desenvolvedor, isso significa que a versão gerada pelo compilador não serve para um dos casos, e portanto muito provavelmente também não serve para os outros casos.

Um adendo a essa regra diz respeito à técnica RAII: se ela for usada então o destrutor pode ser deixado sem definição (também conhecida como "regra dos dois").

Tratamento de exceções

O tratamento de exceção é um mecanismo desenvolvido para lidar com a ocorrência de algumas condições (chamadas exceções) que alteram o funcionamento normal do fluxo de um programa de computador. O C++ suporta tal tratamento, de forma que o estado atual de um programa após uma exceção é alterado automaticamente para outro estado pré-definido para a recuperação do sistema.

Para isso foram adicionadas à linguagem as palavras reservadas try e catch. A primeira especifica um bloco de código que será vigiado em relação à exceções, de forma que se uma for identificada, o fluxo de programa será desviado para um bloco especificado pela segunda palavra reservada. Para um dado bloco try podem existir diversos blocos catch, capturando exceções de diferentes tipos de dado. Alternativamente, a sintaxe catch(…) foi introduzida para especificar um bloco de tratamento de exceção independente do tipo da exceção, genérico.

O conceito puro da ciência da computação para tratamento de exceções ainda inclui o bloco de instruções finally, que indica um bloco de código executado após um bloco try caso nenhuma exceção tenha sido lançada, indicando sucesso na operação. Tal abordagem não foi adicionada ao C++, sendo substituível por outras técnicas como RAII.

Espaço de nomes

O C++ introduziu os espaços de nomes para a organização das bibliotecas, e sua função é agrupar um contexto para identificadores (variáveis, funções, classes, estruturas, entre outros). No contexto de sistemas operativos, o espaço de nomes poderia ser representado por diretórios. Toda a biblioteca padrão está contida no espaço de nomes std (abreviação de standard, que em inglês significa padrão). Para utilizar um espaço de nomes pode ser feita tanto uma declaração global dos espaços quanto local. Uma declaração global é normalmente inserida no início dos módulos, após a importação dos módulos externos, utilizando a palavra reservada using (como em using namespace std;, ver exemplo contextualizado em anexo). Ela também pode ser usada em um âmbito pré-determinado por um bloco de código. Uma declaração local é inserida antes de invocar o identificador envolvido, utilizando o operador de resolução de âmbito :: (como em std::cout, ver exemplo contextualizado em anexo). A declaração global é útil para reduzir a quantidade de código produzido, sub entendendo a origem dos identificadores utilizados em todo um âmbito. Apesar disso, ela deixa margem à ambiguidades, pois é possível que um mesmo identificador esteja presente em mais de um espaço de nome importado no módulo. Para eliminar esse problema deve-se, além de utilizar a declaração global, declarar o identificador ambíguo localmente cada vez que ele for utilizado.

Em determinadas ocasiões, espaços de nome não considerados durante a primeira verificação do espaço de nomes de uma função podem também ser utilizados na busca, dependendo dos tipos de dados utilizados nos argumentos. A técnica, chamada busca de nomes dependente de argumento ou Koening lookup, ocorre quando a busca explícita pela função não encontra correspondente, começando então a procurar por espaços de nomes associados. Um padrão muito utilizado pela Standard Template Library é declarar sobrecarga de operadores que somente são encontrados pelo compilador através dessa técnica.

Ponteiros e referências

O C++ herdou a funcionalidade de ponteiros do C e toda a aritmética de ponteiros disponível para aquela linguagem: tratando um ponteiro como um tipo inteiro é possível mover-se facilmente por regiões de memória. A instância de um ponteiro em C++ é uma variável que armazena um endereço de memória, e que pode ser nula. A biblioteca padrão ainda fornece auto_ptr, uma espécie de ponteiro inteligente para contagem de referências que pode ser utilizado em algumas situações como uma alternativa segura aos ponteiros primitivos do C, automatizando o processo de desalocação de memória do objeto apontado pelo ponteiro.

Por questões de segurança, o C++ introduziu também o tipo de dado referência, um tipo mais restrito de ponteiro. Uma referência definida para outro objeto não pode ser mais referenciada, qualquer ocorrência do nome no código diz respeito ao objeto referenciado. Como consequência, não é possível realizar "aritmética de referências". Outra consequência é que não é possível alterar uma referência para que ela defina outro objeto; após definida, essa relação vale para todo o tempo de vida. Em contrapartida, um mesmo ponteiro frequentemente aponta para diferentes áreas de memória.

Apesar de teoricamente possível, a existência de referências nulas não é considerada, podendo-se assumir que uma referência sempre indica um objeto válido em memória.

Incompatibilidade com C
É incorreto considerar o C++ como um super conjunto de C, isto é, uma linguagem que implementa o C completamente e que adiciona novas funcionalidades. Grande parte de código C pode ser perfeitamente compilado em C++, mas existem algumas pequenas diferenças sintáticas e semânticas entre as linguagens que tornam alguns trechos de código C válidos em código C++ inválido, ou códigos que exibem comportamentos diferentes em cada linguagem.

Talvez a diferença mais comum é que C permite a conversão implícita entre o tipo de dado void* para ponteiros para outros tipos, algo que o C++ não permite. Logo, o seguinte código em C é válido:

int *i = malloc(sizeof(int) * 5);         /* conversão implícita de void* para int* */

Para assegurar-se que o código funcione tanto em C quanto C++ é necessário explicitar a conversão, acrescentando o que é chamado de "cast":

int *i = (int *) malloc(sizeof(int) * 5); /* conversão explícita de void* para int* */

Outra questão de portabilidade entre as linguagens é o fato do C++ adicionar várias novas palavras reservadas, como new e class, que podem ser utilizadas como identificadores (por exemplo nomes de variáveis) em C, gerando incompatibilidade.

Algumas outras incompatibilidades foram removidas no padrão C99, que agora suporta facilidades como comentários por //. Tanto C99 quanto C++ definem o tipo de dado bool e suas respectivas constantes true e false. Apesar disso, enquanto a definição no C++ é embarcada na própria linguagem, tornando tais elementos palavras reservadas, em C tais identificadores são declarados através da biblioteca padrão stdbool.h.

Algumas construções sintáticas são válidas tanto em C quanto C++, mas produzem resultado diferente. Por exemplo, o valor literal 'a' possui tipo de dado int em C e char em C++, o que significa que uma chamada sizeof('a'), que retorna a quantidade de bytes ocupada pelo identificador, pode resultar em resultados diferentes entre as duas linguagens. Na prática, esse exemplo específico não é realmente um problema já que caracteres literais são convertidos para o tipo int implicitamente pelo compilador tanto em C quanto em C++.

Análise sintática do código fonte
Como a gramática C++ é bastante complexa, é difícil construir um bom analisador sintático para código fonte C++ utilizando algoritmos clássicos como o LALR(1). Por exemplo, com o LALR é possível analisar código Java. A flexibilidade da linguagem também é fruto de ambiguidades que um analisador simples não consegue distinguir. Por esse motivo, existem poucas ferramentas para análise e transformação não trivial de código, como refatoração. Em suas primeiras especificações o C++ era uma gramática LALR, entretanto, com a adição de funcionalidades como espaço de nomes, exceções, gabaritos e o tipo bool, essa característica logo se tornou inválida.

A análise sintática não é a tarefa mais difícil na construção de uma ferramenta C++. Outras tarefas incluem entender o significado dos identificadores do programa que um compilador deve possuir. Sistemas práticos de processamento não devem somente analisar o código fonte, mas também compreender exatamente cada identificador em diferentes usos, lidando com as regras de âmbito de identificadores (ver um código contextualizado em anexo).

O grupo Boost possui um projeto para a construção de um analisador sintático C++ com base na biblioteca Spirit, de forma que se torna um método padrão e livre de análise sintática para a linguagem.

Exemplos de código

Exemplo de um programa que imprime na tela "Olá, Mundo!".

#include <iostream>

int main()
{
    std::cout << "Olá, Mundo!" << std::endl;
    return 0;
}

Críticas

A citação de Stroutrup trata com humor o fato de o C++, ao possibilitar a programação de alto nível, ter facilitado a codificação de algoritmos e organização de projetos em relação ao C, uma linguagem que requer constante atenção contra erros lógicos de programação devido à sua alta flexibilidade. Por outro lado, o C++ possui nuances da sintaxe e semântica da linguagem muito sutis, difíceis de serem identificados, e que quando não percebidos podem levar a comportamentos indesejados no código.

Pontos positivos do C++ incluem a produção de código o quanto mais eficiente possível, fazendo uso de otimizações agressivas e sofisticadas dos compiladores. Entretanto, a linguagem ainda mantém alta flexibilidade, portabilidade e consistência. Um exemplo da flexibilidade é a possibilidade de programação de alto e baixo nível. Outro exemplo é a possibilidade de metaprogramação e programação genérica. Mais um ponto positivo é ampla disponibilidade e suporte, devido principalmente à grande base de desenvolvedores. Além disso, a compatibilidade com C resulta em vasta base de código. Fora do lado técnico, um positivo é que a linguagem não está sob o domínio duma empresa (em contraste do Java — Sun Microsystems (atualmente pertencente a Oracle Corporation) ou Visual Basic — Microsoft); a padronização é responsabilidade da ISO.

Por outro lado, pontos negativos do C++ incluem grande período para o aprendizado devido à complexidade da linguagem. Também, os compiladores atuais, que nem sempre produzem o código mais otimizado, tanto em velocidade quanto tamanho do código, e que geralmente produzem mensagens de erro difíceis de serem interpretadas em problemas relacionados com gabaritos. Ainda relacionado a aprendizado e uso, a biblioteca padrão não cobre áreas importantes da programação, como threads (suportada por C++11), conexões TCP/IP, interface gráfica e manipulação de sistemas de arquivos, o que implica na necessidade de criação de bibliotecas próprias para tal, que pecam em portabilidade e padronização. Apesar da ampla base de código legada do C, o C++ também herdou daquela linguagem problemas de entendimento de sintaxe do mesmo. Mais um ponto negativo é que devido à grande flexibilidade no desenvolvimento, é recomendado o uso de padrões de programação mais amplamente que em outras linguagens.

Comunidade de desenvolvimento

Pessoas notáveis
O desenvolvimento da linguagem C++ é fruto do trabalho de milhares de pessoas associadas à academia e à indústria de software, e pode consistir na utilização da linguagem, em seu ensino, na construção de bibliotecas de rotinas ou na participação no comitê de padronização, entre outras atividades. Algumas pessoas tiveram participação fundamental durante a história para o desenvolvimento. Primeiramente, o próprio Bjarne Stroustrup, criador da linguagem e de seu primeiro compilador. O cientista ainda participa na padronização e divulga o C++ no meio acadêmico. Andrew Koenig  é outro pesquisador notável, bastante atuante na padronização e creditado pela técnica Koenig lookup (demonstrada em anexo). Já Scott Meyers é um doutor em ciência da computação, e escritor de diversos livros sobre o desenvolvimento de software utilizando a linguagem. Assim como Meyers, Herb Sutter é escritor de diversos livros sobre C++ e centenas de colunas e artigos, e um notável pesquisador sobre programação concorrente e multitarefa. Andrei Alexandrescu é considerado um dos maiores especialistas em programação C++ avançada. Na área de programação genérica destaca-se o programador russo Alexander Stepanov, a figura chave na criação da Standard Template Library.

Biblioteca Boost

Parte da comunidade de desenvolvimento do C++ foi responsável pela criação da Boost, um conjunto de bibliotecas que estendem a funcionalidade da linguagem, mais especificamente, da biblioteca padrão. O processo de disponibilização de bibliotecas da Boost é mais rápido do que o do comitê de padronização da linguagem, e o projeto acaba servindo como uma forma de teste em campo das bibliotecas, que eventualmente podem ser migradas para a especificação da linguagem. Para o TR1 do C++0x, pelo menos dez bibliotecas já foram aceitas. A base de usuários da Boost é grande, o que reflete no controle de qualidade. Funcionalidades oferecidas vão desde bibliotecas gerais como smart_ptr a abstrações do sistema operacional como o filesystem a bibliotecas para usuários avançados como a MPL.

Ferramentas

Ambientes de desenvolvimento
Abaixo é mostrada uma lista dos principais ambientes de desenvolvimento C++, sejam eles compiladores ou ambientes de desenvolvimento integrado (IDE).

Aplicativos desenvolvidos em C++
Abaixo segue uma lista de exemplos de aplicativos parcial ou totalmente escritos em C++, de acordo com Bjarne Stroustrup, que não garante sua precisão e veracidade, ainda que seja responsável por sua publicação.

 Adobe Acrobat
 Adobe Illustrator
 Adobe Photoshop
 Amazon
 BeOS
 Blender
 Common Desktop Environment
 Doom III (motor de jogo)
 eMule
 Motores de busca Google, em especial Googlebot
 Série Half-Life
 Internet Explorer
 iPod (GUI)
 KDE (Qt)
 Lunar Magic
 macOS

 Maya
 Mars Pathfinder, Opportunity e outras sondas da NASA
 Microsoft Office
 Microsoft Visual Studio (Visual Basic, Visual FoxPro, Visual C++)
 Microsoft Windows (diversas versões)
 Mozilla Firefox
 Mozilla Thunderbird
 MySQL
 Máquina virtual Java
 LibreOffice
 Outlook Express
 PCSX2 (Emulador de Playstation 2)
 SETI@home
 Symbian OS
 Winamp
 Tibia
 Unreal Engine
|}

Ver também

 C (linguagem de programação)
 Java (linguagem de programação)
 Rust (linguagem de programação)
 Swift (linguagem de programação)

Bibliografia

Linguagens de programação orientadas a objetos
Linguagens de programação baseadas em classes
Linguagens de programação


text:
Potency Funds
Breast Implants May Make Cancer Harder to Find
Can a Vaccine Cure Obesity?
Brain Scientists Discover a Tiny Traffic Cop
Can Herbs and Supplements Treat Hypertension?
Visualize Fruit: How an Action Plan Can Improve Your Diet
Is the 17 Day Diet Just Another Weight-Loss Gimmick?
Genes Point to Risk for Silent Killer: Aortic Aneurysms
The Best Apps for Your Health, Part 3: Fitness and Training Apps
Top Medical News & Information Sites
Internet Use Linked to Teen Drinking
Viagra Gives Prostate Cancer Treatment a Lift
By Mark Schweizer
- in Uncategorized
When combined with the erectile-dysfunction drug Viagra, a long-used chemotherapy drug called doxorubicin may be even more effective as a treatment for prostate cancer, according to a new study.
Viagra improves doxorubicin's tumor-fighting power and also makes doxorubicin a safer drug, the researchers said.
However, the studies were conducted in mice and more research will be needed to find out if the results hold true for humans.
For more than four decades, doxorubicin has been used to treat a number of human cancers, including prostate cancer. However, its use is associated with irreversible heart damage, which often shows up several years after treatment stops, according to researchers from the Virginia Commonwealth University School of Medicine.
Scientists have been working for 15 years to find a treatment to protect the heart against doxorubicin's harmful side effects, they said.
Now, it seems combining Viagra with doxorubcin increases the production of molecules — called reactive oxygen species — that trigger death in prostate cancer cells. The combination did not harm the normal, healthy prostate cells.
In the mice used in the study, Viagra, generically known as sildenafil, also increased levels of nitric oxide in the heart. Nitric oxide relaxes blood vessels and allows blood to flow to the heart.
"We believe sildenafil could be an excellent candidate for incorporation into cancer treatment protocols — with the potential of enhancing the anti-tumor efficacy, while protecting the heart against both short-term and long-term damage from doxorubicin," said study researcher Rakesh C. Kukreja, a professor of cardiology at the university.
"My team and I are hoping to move the research forward to a clinical trial and plans are under way to do so," he said. The clinical trial would evaluate the effectiveness of the drug combination in cancer patients.
The study was funded by the National, Heart, Lung and Blood Institute of the National Institutes of Health, and will be published online this week in the journal Proceedings of the National Academy of Sciences.
Heart Disease: Types, Prevention & Treatments
The 10 Deadliest Cancers and Why There's No Cure
PSA Test at Age 60 Predicts Risk of Death from Prostate Cancer
Previous article Scientists Learn Why Alcohol Can Be Good For You
Next article Eye-Opener: FDA Criticized for Ban on Alcoholic Energy Drinks
Mark Schweizer
Mark is 44 years old and passionate nourishing advisor as well as expert in the range health, Fitness and medicine. His area of expertise includes the testing and evaluation of dietary supplements. With great care he publishes his self-tested experience reports, with which he would like to provide for a better clearing-up.
Mark Schweizer 2 days ago
Copyright © 2020 by Myhealthnewsdaily.com. | Sitemap EN | Sitemap DE

redpajama_set_name: RedPajamaCommonCrawl


text:
Flood proves Windsor neighbors 'love each other'
On Thanksgiving Day, 80-year-old widow Nancy Hoggard says the help she's gotten after devestating flood in Windsor proves what she believes about neighbors: "They love each other, and they help each other."
Posted 10:34 p.m. Nov 25, 2010 — Updated 12:25 a.m. Nov 26, 2010
WINDSOR, N.C. — Residents of Windsor say the help of their neighbors has made it possible to celebrate Thanksgiving Day, nearly two months after devastating floods that put the Bertie County town underwater for days.
Neighbors aren't just people who happen to live close to one another, according to 80-year-old widow Nancy Hoggard.
"They love each other, and they help each other," she said.
When the rains hit in late September and early October, about 4½ feet of water covered Windsor, forcing the evacuation of the downtown and a nursing home.
Eric Nussbaumer, who moved to Windsor from New York state about three years ago, said he was impressed how neighbors pulled together after the flood.
"I got to meet more neighbors than I know what to do with, and I love it," Nussbaumer said.
Hoggard was flooded out of her home and hasn't lived there since. She's lived across the street with her neighbor, Louise Leary.
"I am so thankful for the lady that took me in the day of the flood," Hoggard said. "She is the most wonderful lady in the whole world."
Leary had a fever of 103 degrees on the day of the flood, but didn't hesitate to invite Hoggard to stay as long as she needed.
"I said, 'Bring her on,'" Leary said.
Leary said she lives by the words in the Bible: "Give, and it will be given to you."
God "has blessed me better than I deserve, and I love him with all my heart," she said. "I try to help others. I hope they will help me when I'm in need."
This Thanksgiving, family gathered around a full table at Leary's house. She celebrated the birth of her new great-grandson, Eli.
Hoggard got dressed up to celebrate Thanksgiving with her family.
Her house is being repaired, and she expects to move in next week. "I'll be home for Christmas," she said.
Leary said she won't forget that family is more than those who share blood but is also those who share property lines – like herself and Hoggard.
"I love her, and we got along like sisters," Leary said.
Windsor flood doesn't dampen Thanksgiving spirit
11/11: Windsor moving forward after flood
10/05: Flood damage assessed in eastern N.C.
09/30: Heavy rain floods coastal N.C.
Windsor residents clean up after flooding
Bryan Mims, Reporter


text:
Open/Close Menu Celebrate your right to read
Call to UK Independent Bookshops: Organise your celebrations for Margaret Atwood's The Testaments on 9 and 10 September 2019
 
The Testaments by Margaret Atwood
Inspired by our friends Book-ish in Crickhowell, Index on Censorship and VINTAGE are coordinating a nationwide series of publication-day celebrations and midnight openings at independent bookshops across the UK as part of Banned Books Week UK to celebrate the publication of Margaret Atwood's highly anticipated The Testaments (sequel to The Handmaid's Tale) on 10 September.
Host a midnight opening on the evening of 9 September or publication-day event on 10 September in your bookshop
We would like to support all independent bookshops marking the publication of The Testaments. You could open your doors after hours to booklovers on publication night, and, as the clock strikes midnight, sell copies of The Testaments. Or perhaps you could host celebrations on publication day – you could ask a local author to take part in live readings or a discussion, run a feminist banned-book quiz, have a The Testaments themed party or stage an anti-Gilead protest. Index and VINTAGE will provide you with POS materials (promotional posters, badges and tote bags) for window and in-store displays.
Go BIG – win £750 from VINTAGE to host your event
Do you have an exciting event idea? An attention-grabbing PR stunt? Fancy running a handmaid procession through the streets or creating your own Mayday resistance squad? Go as BIG as you dare – send us a brief event pitch, no more than 1 side of A4, outlining what you want to do, how you want to do it and how much you think it will cost to: thetestaments@penguinrandomhouse.co.uk, with the subject line 'The Testaments publication celebration'. The deadline to apply is 30 April and we will let you know if your application has been successful in May.
The Handmaid's Tale (re)read
With just under 6 months still to go until The Testaments is published and Season 3 of The Handmaid's Tale on the horizon, we'll be celebrating the dystopian classic throughout the month of May, and we'd love you to join in. Run your own The Handmaid's Tale book club, invite a local author to chair a discussion, or create a Handmaid-themed display. We will be providing reading-group packs to guide your events and posters to display.
To let us know that you are planning events for either The Testaments or The Handmaid's Tale, to make sure your bookshop is listed on the Banned Books Week website and interactive map and to request POS materials and reading group packs, please contact: anna@indexoncensorship.org
To enter to win £750 to fund your attention-grabbing activity, please contact: thetestaments@penguinrandomhouse.co.uk by 30 April 2019 (see instuctions above)
Please order your copies of The Testaments (9781784742324), RRP £20.00, from your local PRH Territory Manager, your preferred wholesaler, or direct via TBS Sales on 01206 256161
[Please note, reading or opening the book before midnight (00.01 on 10 September) is STRICTLY UNDER EMBARGO. You will be asked to sign a strict non-disclosure agreement about the contents of the book before receiving deliveries. Thank you.]
About The Testaments
When the van door slammed on Offred's future at the end of The Handmaid's Tale, readers had no way of telling what lay ahead.
With The Testaments, the wait is over.
Margaret Atwood's sequel picks up the story 15 years after Offred stepped into the unknown, with the explosive testaments of three female narrators from Gilead.
'Dear Readers: Everything you've ever asked me about Gilead and its inner workings is the inspiration for this book. Well, almost everything! The other inspiration is the world we've been living in.' Margaret Atwood
Sign up to The Atwood Diaries newsletter for breaking news about the book: https://www.penguin.co.uk/margaretatwood
About Margaret Atwood
Margaret Atwood is the author of more than fifty books of fiction, poetry and critical essays. Her novels include Cat's Eye, The Robber Bride, Alias Grace, The Blind Assassin and the MaddAddam Trilogy. Her 1985 classic The Handmaid's Tale went back into the bestseller charts with the election of Donald Trump, when the Handmaids became a symbol of resistance against him; and the 2017 release of the award-winning Channel 4 TV series. Sales of the English language edition have now topped 8 million copies worldwide.
Atwood has won numerous awards including the Booker Prize, the Arthur C. Clarke Award for Imagination in Service to Society, the Franz Kafka Prize, the Peace Prize of the German Book Trade and the PEN USA Lifetime Achievement Award. She has also worked as a cartoonist, illustrator, librettist, playwright and puppeteer. She lives in Toronto, Canada.
VINTAGE publishes some of the greatest writers and thinkers from around the world and across the ages – from Philip Roth, Yuval Harari, Haruki Murakami and Alice Munro to Ian McEwan, Jeanette Winterson and Salman Rushdie. Writers who have invented new worlds and explored our own; who have captured imaginations and won dozens of prizes, from the Nobel and the Booker to the Pulitzer and beyond.
Born in New York in 1974 and moving to London in 1990, VINTAGE is also famed for its beautiful, stylish design and brave innovation. The publisher comprises nine imprints, each one as distinctive as its own past: Jonathan Cape, Bodley Head, Harvill Secker, Chatto & Windus, Hogarth, Yellow Jersey, Square Peg, VINTAGE Paperbacks and VINTAGE Classics.
About Index on Censorship
Index on Censorship is a nonprofit organisation that fights for free expression and defends against censorship worldwide through an award-winning magazine, regular events and advocacy. Founded in 1972, Index has published work by censored writers and poets including Salman Rushdie, Kurt Vonnegut, Arthur Miller; Nobel Prize Winning authors Nadine Gordimer and Wole Soykinka; contemporary writers and campaigners including Ian Rankin, Lily Cole, Hilary Mantel and of course Index Patron Margaret Atwood.
More information: www.indexoncensorship.org
About Banned Books Week UK
Banned Books Week UK (22-28 September 2019) is a week-long celebration of the freedom to read co-ordinated by Index on Censorship in partnership with literary and freedom of expression organisations in the UK including the Booksellers Association. Banned Books Week was initiated by the American Library Association (ALA) in 1982 in response to an increasing number of challenges in the US to books in schools, libraries and bookshops. The ALA lists The Handmaid's Tale as number 37 out of "100 Most Frequently Challenged Books of 1990-2000."
More information: www.bannedbooksweek.org.uk
Banned Books Week censored summer reads
The Handmaid's Tale? Harry Potter? The Colour Purple? What's your favourite banned book?
Banned Books Week goes nationwide in 2018
Annual event celebrating the freedom to read takes place 23-29 September Libraries, bookshops and schools…
The Royal Society of Literature
Hatchette UK
Libraries Connected
1 Rivington Place
London EC2A 3BA
© 2019 Index on Censorship


YOU'RE INVITED TO JEWELS DESIGNS GRAND RE-OPENING!
Introducing The NEW Jewels Designs!
New Stores, New Merchandise, New Prices!!!
Everything you love about Jewels Designs and now we're offering Designer Inspired Gifts for everyone on your list!
If you don't have a sit badge/logo no worries we can create one for you! Partner with one of the best sites on the web! We welcome everything from handcrafted merchandise, Art, Clothing (women's men's and children), Toys, Books, Self Help, etc……… (we don't accept any adult content websites). Join us and advertise your business!
If you love "Where's Waldo" or search games, then you're going to love our first contest on our new site! Within the next couple of week we will be adding details to our site about our upcoming contest. Stay tuned!! You could WIN BIG at Jewels!!!
We appreciate everyone's support! Thank You!
Beautiful Pastel Ripple Baby Blanket, size 45″x 50″. Hand Crocheted with High Quality Yarn, in shades of White, Peach, Purple, Blue, Pink, Mint, and Mixed Pastels. Easy Care; Machine Wash & Dry. Edges are Professionally Finished and blanket is made to last for generations. Another Designer Original from Jewels Designs Baby Blanket Gift Shop. Makes a fantastic Baby Shower Gift, older children would like this piece as well. Check out this blanket and all of our other handmade works of art at Jewels Designs. Custom Orders Welcomed.
Oh so Soft and Beautiful, this Pastel Ripple Ultra-Soft Baby Crocheted Blanket is made with high quality yarn. Easy Care, Machine Wash & Dry. The edges are professionally finished and the piece is made to last for generations. You are sure to receive high praise if you bring this as a baby shower gift, or keep it for yourself. It's size is 45″x 50″, and it can be custom ordered in your choice of colors and sizes. Colors: White, Purple, Blue, Pink, Variegated Print, Mint and Peach. This is another Designer Original from Jewels Designs and is a part of our Baby Blanket Gift Shop. Check out all of our art pieces at Jewels Designs.


STOP being lemmings!!! For you who select SEO companies to work with, please don't fall for the client list! It matters less than you think! Putting a client on your client list doesn't mean you did a real project for the company listed.
Being invited to speak at a company does NOT make them an SEO client, nor does doing a 5 hour engagement (in my opinion). If a company has impressive client roster, pick the references! Having worked for someone and having a GOOD relationship with them are two different things.
While any SEO company will have some references all ready for you, you should ask for at least a couple that YOU PICK from their client list.
The SEO company should say "NO PROBLEM" when it comes to connecting you to at least half of the client you requested, asking for more than 3 references is just weird though so don't ask for the whole client roster to be a reference. Keep in mind some clients just aren't into doing the reference thing sometimes and as a result SEO's may not be able to easily get them, that is why I say half is a good figure to shoot for.
One thing to expect is that a lot of SEO companies don't work direct with their clients, and often are private labeled, so they may not have direct connections with each client.
The agency that brought them in should easily be able to vouch for their work though. Some SEO companies private label, so you may see some big names that are brought to them by an agency, you should speak with the agency in these instances.
There will always be minor reasons why someone can't connect you with every requested reference, the bigger issue is how they react to being asked this question. Their gut reaction should be like "no problem", if they gut reaction is "why" or "ummm, well, err, my contact left there" or some other excuse, be wary and do deeper digging before selecting them.
Again people, stop falling for the client list and big client names, get the details.
Even SEER has to clean up our list a bit, as a smaller search company that knows we can compete with the big boys, we fell into the trap of listing our most recognizable brands only, that will change with our impending re-launch.
SEO Lie Repellant Tip – USE search engines!!
Of course there are always special relationships, virtual CFO / COO types work with multiple companies, billing people, exec assistants, etc. But when it comes to the core SEO/SEM team, you should be finding members of your SEO/SEM team on LinkedIn, Digg, Del.ico.us, Zoominfo, Sphinn, etc. Hint: search for the company name in addition to the individual's name, also search for the persons name as one word too, see what I find when I search for dannysullivan vs. Danny Sullivan again, if someone uses their real name, run the search on that too.
Now of course many will have aliases (sugarrae, greywolf, oilman) so they won't be easy to find, and to be honest you don't really need to. I have another way if the search engines come up a bit lame.
Here's my quick check, a few of ANYONE's search team should be on LinkedIn, if a company says they have a search team of 10 people it is not crazy to think that by typing in the name of the company in LinkedIn and see 4 or 5 of them, right?
Go search for the company name, what comes back?
I think small good companies have no problem saying, "We're small, and we're GOOD". If what makes a company good is their size then they've got problems, and now you do too!
SEO Company lie #3 – I know (insert celebrity here) Matt Cutts, Rand Fishkin, Danny Sullivan, Aaron Wall, Neil Patel, Todd Malicoat, Greywolf, etc… knowing them and THEM KNOWING YOU are TWO different things.
Accepting someone on LinkedIn doesn't mean you are friends!
Sure this adds credibility, but come on people, when someone says they know someone, I would expect that to be a reciprocal relationship. These SEO celebrities probably get 1000+ cards a year from a ton of people and may even have e-mailed some, chatted a bit, but that doesn't a relationship make.
SEO Lie Repellant Tip – This doesn't matter!!
To be honest, knowing these guys shouldn't really mean much for you as a purchaser of SEO services. Why would your SEO team need to know Matt Cutts? I'd like to think that Matt has heard of me or seen my SEO videos – A guy can dream right?
If for some reason who an SEO knows means something to your in your selection process, you are focusing on the wrong things!
LEE Odden did a great piece on the Fallacy of the SEO celebrity.
If they have accounts for most of these consider them a beginner that has at least done the basics (which is OK, this is a new area and you shouldn't expect them to have 3-4 years experience in this area).
The question is do they actually have activity and friends and are adding to these profiles with plugins, groups, etc? You really have to be active on these communities to understand the nuances of how they work. Each one is slightly different.
Mid level social media folks should be very active on many of these above, not all but many. Additionally, some of these would be a waste for marketing, but at least a mid level person is involved enough in the community to stay on top of marketing opportunities if they exist.
Be careful here, the key is ACTIVITY not just an account. If they were not active recently, maybe it is because they have not found a lot of value there, but at some point there should have been some serious activity.
And yes, the key is activity, but if you'd want to emphasize anything, don't spread yourself too thin (by using all these services). Do a little and get good at one or two social media sites.
If the guarantee is for keywords, or #1 rankings, or page 1 rankings, NONE can be guaranteed! This is the easiest issue of the 5, but after having been asked in a room of hundreds of people about the effectiveness of a 20 THOUSAND keywords meta tag at a recent affiliate summit, I think basics are still important and worth discussing.
Ok, here's a simple rule…if you got cold called, DO NOT work with that company. Sure some of you may have exceptions, but this is simple, no cold calls, no marketing e-mails!
No company can guarantee an actual ranking, or an actual number of terms on page one. If you do have a company that gives you a guarantee, ask them if you can select the terms that count, make sure all are two the word phrases and watch them squirm! The issue with guaranteeing page ones is that the SEO company is likely to include some softballs in there to make sure they hit their "guarantee".
Any company that tells you how many links they expect to get you monthly is the wrong company to work with. Do you really care that they get you 3, 30, or 300 links per month? NO you shouldn't, it should be about maximizing rankings to maximize leads / sales for keywords that are applicable to your business.
Links are a byproduct, not to mention, getting 3 good strong hard to get links could be worth 10x more than 30 or 300 in terms of how they help you rank.
It is simple. We feel that if by 6 months we don't have a certain percentage of terms on the first 2 pages of Google / Yahoo / MSN and the client account is in good standing, then we pause payment until we do. We do this because we just don't feel right taking people's money if for some reason 6 months in we are not performing.
Don't fall for other SEO Lies, if you have more please let me know, I plan on developing am ongoing checklist of things to look for when selecting an SEO firm and obviously I am missing a bunch!


text:
The Untold Truth Of The Chris Watts Case
By Gillian Walters/Updated: March 5, 2020 7:01 am EST
We may receive a commission on purchases made from links.
In August 2018, Chris Watts made a televised plea for the safe return of his missing wife, Shanann Watts, and their two daughters, 4-year-old Bella and 3-year-old Celeste, after the three were reported missing by a family friend. "I hope that she's somewhere safe right now and with the kids," Chris told Denver7 in an interview.
Sadly, only two days after the interview, bodies thought to belong to Shanann and the children were discovered by police at Chris' former place of employment, Anadarko Petroleum Company. Bella and Celeste's remains were reportedly located in crude oil tanks, while Shanann, who was 15 weeks pregnant, was found in a shallow grave on the property. Chris was arrested one day before the remains were recovered, and he confessed to killing Shannan in anger after allegedly witnessing her strangle their two kids (via People). In a sworn affidavit, Chris claimed the killings happened after he told Shanann that he wanted a separation.
Prosecutors charged him with nine felonies, including three counts of first-degree murder, as reported by the Fort Collins Coloradoan. In a shocking twist, Chris pled guilty to all of the murder charges on Nov. 6, 2018, just months after he pointed the finger at Shanann. He was eventually sentenced to three consecutive life terms for his horrific crimes. But just when you thought the case couldn't get more tragic, in February 2019 the convicted killer gave a full confession detailing the horrific crimes. Brace yourself, as we explore the untold truth of the Chris Watts case.
Why did Chris Watts finally confess?
Pool/Getty Images
Many people were shocked when Chris Watts confessed to murdering his family on Nov. 6, 2018, almost three months after he pleaded not guilty to the charges.
So, why did Chris finally admit to his alleged involvement in the slayings? His plan of action reportedly shifted when prosecutors said they wouldn't seek the death penalty if he confessed to the terrifying crimes. Shanann Watts' mother approved the idea, reportedly telling Weld County District Attorney Michael Rourke, according to The Coloradoan, "He made the choice to take those lives, I do not want to be in the position of making the choice to take his."
Although Chris was "angry" about the plea deal, he knew the odds were against him if the case went to trial. "There was physical evidence and his own words that would convict him," a source told People. "His story didn't work. He got angry. He didn't want to plead guilty. But he really had no choice, considering the evidence. It took a little bit of time for him to come around, but he did."
Rourke expressed relief that Shanann's name was cleared in the murders of Bella and Celeste Watts, stating, as reported by NBC News, "What I can tell you most affirmatively today, by what happened in the court room, is the spotlight that he tried to shine on Shanann falsely, incorrectly and, frankly, a flat-out lie has been corrected." He added, "The spotlight shines directly where it belongs: on him."
Why were the autopsies of Chris Watts' murder victims sealed?
Shortly after Shanann Watts' and her daughters' remains were discovered, there was a lot of speculation about how they died. Although the autopsy reports were completed, the public has not been able to learn about the findings because the documents are sealed. Prosecutors filed for this motion in September 2018 — a request the presiding judge granted — to avoid "tainting witnesses that have not yet been interviewed and impacting future jurors," according to court docs.
"Shanann Watts, Bella Watts and Celeste Watts were murdered and their bodies moved from the initial crime scene," Weld County District Attorney Michael Rourke wrote in his request to the judge, according to the Associated Press. "There is a great deal of interest surrounding this case and at this time, the cause of the deaths has not been made public. Consequently, the observations and findings contained in the coroner's autopsy report will be critical evidence at trial."
Nico Watts' death in the eyes of the law
Considering Shanann was 15 weeks pregnant at the time of her death, it's reasonable for people to wonder why Chris wasn't charged with killing his unborn son, who they reportedly were to name Nico (via the Daily Mail). The explanation? Colorado doesn't have fetal homicide laws in place, which means authorities weren't able to include Nico on its victim list. A total of 38 states recognize unborn children in murder cases, while eight states — Colorado, Connecticut, Delaware, Iowa, Maine, New Mexico, Oregon, and Wyoming — have laws against harming pregnant women. Prosecutors in Colorado, where Shanann and her daughters were murdered, charged Chris with the unlawful termination of a pregnancy in accordance with state law. Although everyone might not agree about fetal homicide laws, authorities in this case must prosecute by the book.
Additionally, some might argue that charging Chris with an additional death wouldn't affect his punishment, since he's already serving three consecutive life sentences in prison, meaning there is no possible chance for parole.
The timeline of Bella and Celeste Watts' deaths
One of the devastating questions about this case rests on whether Bella and Celeste Watts were already dead when Shanann Watts arrived home from a business trip in Arizona. All we know for sure is this: On the night of Aug. 13, 2018, Shanann was dropped off at her home around 2 a.m, by a friend, Nickole Atkinson, and prosecutors believe it's possible that she and her daughters died "between and including Aug. 12, 2018, and Aug. 13, 2018" (via AJC). This timeline suggests Chris Watts possibly harmed his daughters before Shanann arrived home. It's worth noting that authorities charged him with two counts of "killing a child under the age of 12 while the defendant was in a position of trust."
We'll probably never know exactly what happened that night, but Chris clarified the timeline when he spoke with investigators from jail in February 2019. Chris claimed that, after arguing with Shanann about their marriage, he strangled her to death. Bella supposedly woke up during the commotion and asked, "What's wrong with mommy," according to the interview transcript by The Coloradan. Chris said he then placed the girls and Shanann's body into his truck, drove approximately 45 minutes his worksite, and killed the girls one by one after burying his wife in a shallow grave. He claimed to have smothered Cece first and then Bella, who supposedly pleaded for her life before she was killed.
Of course, there's always the possibility Chris fabricated these new details given his history with lying. But there's no denying the scenario wrecked Shanann's family, as Shanann's brother, Frank Rzueck Jr., told Dr. Phil McGraw in March 2019: "It's worse than we even thought."
Pointing the finger at Shanann Watts
Before Chris Watts pleaded guilty to the murders, it looked like his defense team was preparing to place the blame on Shanann Watts. Want proof? Chris' lawyers filed a motion for investigators to swab the girls' necks and hands for possible DNA evidence (via The Washington Post). Additionally, the defense requested that a DNA expert of their choosing be present during the collection process, as reported by CNN. The defense was likely trying to back up Chris' past claim that Shanann had strangled their daughters to death following a fight about their marriage.
But likely to Chris' chagrin, the judge denied all of the defense's requests. "The court cannot order the prosecution and/or coroner how to conduct their investigation," the ruling stated, according to CNN.
After the release of the joint law enforcement interview of Chris in February 2019, during which he confessed to killing his daughters in addition to his wife, Shanann's loved ones expressed relief that her name was finally cleared. Speaking with Southern Colorado NBC affiliate KOAA News 5, Rzucek family attorney Stephen Lambert said, "These tapes put to rest any kind of that speculation, and that Shanann's memory can be put to rest as a loving mother and a caring wife."
What was Chris Watts' motive for the murders?
Whenever a murder occurs, many people look for answers, and this case is no different, as the public has been at a loss as to why Chris Watts murdered Shanann Watts and their two daughters.
One of Chris' possible motives involves financial struggles, a common source of tension between married couples. Chris and Shanann filed for bankruptcy in June 2015, after they bought their $400,000 house in Colorado, according to CNN. The two were reportedly $70,000 in debt, a total they racked up thanks to student loans and credit card purchases. Their savings appeared to be a total of $9.51 in one account and $864 in a joint checking account.
Although Shanann was doing well financially (she reportedly made $80,000 a year), it's possible Chris was concerned about the cost of another child. This alleged motive, however, has not been confirmed.
Another potential motive? Chris' alleged affair. Denise Mowder, a former prosecutor and an associate professor of criminology and criminal justice at MSU Denver, theorized that Chris allegedly murdered his family in order to live a care-free life with his rumored mistress. "I think he had a vision of another life with this other woman — carefree, no responsibilities," Mowder told Denver7.
Chris denied these theories, however, claiming he felt rage after Shanann supposedly threatened to take their kids away. "I didn't want to do this, but I did it," he plainly told investigators in February 2019, in audio transcribed by The Coloradan.
Chris Watts lied from the start
There are a few discrepancies in Chris Watts' version of what happened the night of Aug. 13, 2018, something the public is well aware of by now. But what many people don't know is that Chris allegedly lied about Shanann Watts' whereabouts from the very beginning.
Nickole Atkinson, a friend who was reportedly the last to see Shanann alive, said she knew something was wrong when Chris was supposedly evasive about where his wife went on the morning of her disappearance. Atkinson, who was concerned after Shanann missed an important pregnancy checkup, opened up about her bizarre exchange with Chris to Good Morning America on Aug. 20.
"He just kept saying that he didn't know where she was and that she was on a playdate," Atkinson stated, regarding a phone call conversation she had with Chris shortly after Shanann disappeared (via ABC News). "But he couldn't give us the name of the friend. I knew he had something to do with it the day I was at his house with him, but I didn't want to think that."
The real deal with Chris Watts' alleged affairs
Chris Watts was allegedly having an affair with a co-worker at the time he murdered his family. The disturbing detail came to light in Chris' arrest affidavit, in which police claimed they found evidence of his cheating following an investigation. The co-worker Chris supposedly had an affair with — who reportedly cooperated with the investigation (via People), was later identified as Nichol Kessinger.
In addition to Kessinger, an unnamed man took to HLN's Crime & Justice with Ashleigh Banfield in August 2018 to claim he carried on a relationship with Chris for ten months (via People). The alleged lover said he met Chris online, and that they parted ways sometime in March or April 2018, as reported by Us Weekly. But multiple news outlets couldn't confirm the man's account, and it's not clear if police have investigated his allegations. What is obvious? Many people weren't happy that the show's host, Ashleigh Banfield, went ahead with the interview given the lack of corroborating details.
Whether Shanann Watts knew about Chris' alleged affairs or not, the answer isn't clear. "There was speculation [about an affair], but she didn't want to believe that either," Shanann's friend Nickole Atkinson said in an interview (via ABC News). "He wasn't being the loving Chris that he normally was. He wasn't touching or hugging or doing stuff like that. And he wasn't being as attentive to the girls as he normally is."
Was Shanann and Chris Watts' relationship for show?
One of the most haunting aspects of the Watts murder case is Shanann Watts' social media presence. Shanann's Facebook account featured countless photos of the mom happily posing with Chris Watts and their two daughters, as well as snaps of the couple enjoying romantic vacations together. Translation: Shanann and Chris' lives seemed picture perfect.
Given the tragic events that occurred, it's fair to wonder if Shanann and Chris were putting on a front for the outside world. A neighbor named Melinda Phillips suggested as much in an interview with People, recalling an "argument" she witnessed between the two earlier in the summer of 2018. "Their body language was really angry, and they were just fighting back and forth," Phillips described. "He was gesturing his hands and they were shaking their heads, and it was definitely an argument."
But things took a strange turn when Shanann and Chris supposedly caught Phillips' eye mid-fight. "They caught my eye and suddenly, everything changed," she said. "They stopped being so angry, and they started talking a lot more calmly. He even gave her a hug. Mind you, this was in the space of 30 seconds to a minute." Phillips added, "From a full-blown fight to hugs in less than a minute, it was incredible."
Chris Watts' old friends say he's a nice guy
In television and film, murder suspects are often portrayed in an unflattering light. Whether they're a loner or are emotionally disturbed or angry, there's typically something off about someone who is accused of a violent crime. But in the case of Chris Watts, this stereotype doesn't seem to fit.
One high school friend, for instance, couldn't believe the Watts she knew had been charged with murder. "Most of our conversations that I recall were about music and things like that," former classmate Brandi Smith told the Daily Beast. "I was a bit of an outcast and he kinda just seemed to understand me."
"Everyone liked him," Smith added. "It's actually amazing how many people that knew him have completely turned on him and think he's this monster when he hasn't even been convicted."
Then there's Lance Alfonso, who played football with Watts. "I've never seen him ever get angry at anybody, even on the football field," Alfonso revealed to the Daily Beast.
Of course, a lot can change between high school and adulthood, and you can never know what's truly going on inside another person's head.
Did Chris Watts' weight loss play a role in the murders?
Prior to the murders, Chris Watts developed a healthier diet and adopted more active lifestyle changes that led him to lose a decent amount of weight. Some speculated that Chris' body transformation might have had something to do with the murders of his family, a sentiment one reporter touched on in an interview with the couple's close friends. "When he lost weight, did you notice any changes in his confidence levels?" a 9News journalist asked Chris' former buddy Nick Thayer.
As captured in a video, Thayer responded, "The only kind of difference I saw change in confidence was with his running ability. I had been running for quite a bit more time than he was and he was just getting into it. So, you know, I would text him, 'Hey, I'm gonna go for a seven-mile run,' and then he, after that, would be like, 'Yeah, I just ran seven miles.'"
As for Chris' personality, Thayer said he didn't note anything off about his ex-pal's persona. "That part didn't change," he shared. "It was always shy Chris."
Did police waste time in the investigation?
Shanann Watts' younger brother, Frank Rzucek Jr. (above right), took to Facebook shortly after Chris Watts' arrest to express his rage and sadness about the situation. "I just want to know why. My precious family my one and only sibling, my sister Shanann, 2 adorable nieces Bella and Celeste and her soon to be found out unborn son Niko," he wrote, according to a screenshot obtained by The Sun. "I just want 30 seconds alone with that heartless psychopath. May Satan have mercy on his soul."
But Chris wasn't Frank's only target. He also went after investigators for supposedly taking too long to arrest Shanann's husband, writing, "The cops drug their feet. He was the only one with them and backed his truck into the garage. Doesn't take a genius to know who was suspect. My blood is boiling and the pain and anger and sadness I have in my heart."
Frank ended his post with a message for Chris, saying, "Nothing absolutely nothing would get in my way of taking away his life like he did mine and my ENTIRE FAMILY."
Regarding the timeline of the investigation, cops arrested Chris two days after Shanann was reported missing. It's likely Shanann's brother was frustrated that authorities didn't take Chris into custody the same day his sister went missing.
Letters from Christopher
Other than investigators' jailhouse interview with Chris Watts in February 2019, the convicted killer hasn't spoken out. That is, until first-time author Cherlyn Cadle published a book in September 2019 detailing her written correspondence and prison visits with Chris, titled, Letters from Christopher: The Tragic Confessions of the Watts Family Murder. Many shocking claims were made in the book, which Cadle reviewed during a November 2019 appearance on Dr. Oz, where she alleged Chris confessed to smothering his daughters before killing Shanann Watts. And then after Chris murdered Shanann, Bella and Celeste Watts supposedly woke up. "Bella, the oldest one, was crying," Cadle told Dr. Oz about the girls allegedly walking in on the murder scene. "Also, Cece was more, kind confused. She was awake, the younger one." This version of events contradicts Chris' claim to police that the only time he harmed the girls was at the worksite where the bodies were found.
Additionally, Chris changed his story about acting on impulse. "August 12th when I finished putting the girls to bed, I walked away and said, 'That's the last time I'm going to be tucking my babies in," he supposedly wrote in a letter to Cadle obtained by the Daily Mail, "I knew what was going to happen the day before."
Although the book is compelling, these revelations might be inaccurate. Cadle's book — according to multiple reviews on Goodreads — was supposedly riddled with grammatical errors and misinformation. What's more? Authorities haven't confirmed her findings.
What broke the Watts murder case wide open
The Denver Channel/YouTube
After Shanann Watts and her daughters were reported missing, Chris Watts' secrets quickly began to unravel. And one of those secrets might have been what blew the case wide open, at least according to Weld County District Attorney Michael Rourke. "Nichol Kessinger turned out to have information that I can best describe as being a bombshell," Rourke said in an Investigation Discovery special about Chris' mistress coming forward with details about their affair. Although this might seem obvious, it wasn't only telling because it showed Chris was seemingly intent on starting a new life — it was big because it painted the picture of him as a habitual liar. And if Chris lied about Kessinger (he denied the infidelity to investigators at first), then what else might he be hiding?
As it turns out, Chris was supposedly lying to Kessinger, too. "He informed me that he did have two kids, that he was currently in the process of a separation from his wife," Kessinger said in police recordings shown in the special. "As far as I knew, that was becoming pretty finalized."
It was revealed that Chris had been untruthful with Kessinger, as he was lying to both her and Shanann to keep his plates of deceit spinning. It's unsettling to think about, but who knows how quickly those lies would have been uncovered if Kessinger might not have come forward or had been cooperative with police. We suspect justice would have been delayed, though it's impossible to say.
Shanann Watts' mother says she still communicates with Shanann, Bella, and Celeste
Dr. Phil/YouTube
Shanann Watts' family was under no obligation to speak out about their tragic losses, but they bravely decided to share their story with Dr. Phil McGraw in March 2019. A lot of revelations were made during the episode, including Shanann's mother Sandy Rzucek's story about communicating with Shanann, Celeste, and Bella after their deaths. "I felt my daughter's spirit the moment she died," Sandy explained to Dr. Phil. "I knew. I swear to God I knew. ... I woke up Frankie — I woke up the whole house. I said, 'Something's wrong with Shanann.'" Not only that, but the bereaved mom said she spoke with Shanann directly. "That night I was laying in bed and I just felt a presence and I heard my daughter. I felt her, and I heard her say, 'I love you mommy and I'm sorry,'" she said. "She told me she was at peace."
Bella, as Sandy recalled, expressed happiness about visiting Disney World "any time" she wanted. "I said, that's right, Bella," Sandy shared.
Whether you believe Sandy's account or not, it's clear she loved her family dearly. Our hearts go out to her and the rest of Shanann's loved ones.
Chris Watts will never personally profit from the murders
Although Chris Watts is serving three consecutive life sentences for pleading guilty to murdering his family, it doesn't mean the case is over. One development that might have flown under your radar is Watts being ordered to pay $6 million to the Rzucek family for the deaths of his wife and two young daughters. The ruling occurred in November 2019, one year after Shanann Watts' parents, Frank and Sandy Rzucek filed a wrongful death suit against Chris, as The Denver Post reported. The amount "includes $1 million for each of the deaths and $3 million for emotional pain," and "will grow at an 8 percent annual interest rate," according to court docs obtained by The Denver Post. Watts reportedly didn't fight the suit and agreed to the terms on Nov. 5, 2019.
To explain why a family might file a wrongful death suit, it effectively ensures the perpetrator can't ever profit off their victims' deaths. This was the motivation for the Rzuceks, as their attorney, Steven Lambert, told The Denver Post, "Just in case 20 years down the line from now he decides to write a book we could come for that money."
Even with this insurance, it doesn't bring peace of mind to Shanann Watts' family. Frank Rzucek Sr., Shanann's father, hasn't been back to work due to post-traumatic stress disorder, while Sandy Rzucek, Shanann's mother, has described her life as "being adrift in a lifeboat, surrounded by water and without a port in sight," according to court docs. It's all very heartbreaking.
The Watts murder case deeply affected everyone involved
Oxygen/YouTube
In such a disturbing case as the Watts family murders, sometimes the horrific details can overshadow the people who worked the case. So it was powerful when Frederick police Detective Dave Baumhover, the lead detective on the Watts case, spoke to The Denver Post in August 2019 about struggling with post-traumatic stress disorder (PTSD). "It's like when you're a kid and you go on the wrong carnival ride and all you want to do is get off," he told the outlet about his emotional struggles. "But you can't. You have no choice until the ride shuts off."
As Baumhover told the outlet, he stopped working in March 2019 after interviewing Chris Watts in prison for his full confession. It's unclear if he has since returned to law enforcement, but he sounded unsure about his professional future in the candid conversation. "I have a hard time dealing with the probability that my career is ended, and not the way that I wanted it to," he explained. "Some days you feel defeated."
Colorado Bureau of Investigation agent Tammy Lee (pictured above) had a similar reaction, once breaking down sobbing in a hair salon. "I felt like I knew them," Lee told The Denver Post about her pain. "I've been to many homicides of children. This one was different."
Baumhover and Lee, along with others, spoke out to draw awareness to mental health services for law enforcement. And this just goes to show how many people the case affected.


Feel better Irene and I am glad to hear the meds are helping Odin. Take care of yourself we will still be here, your health is most important.
So sorry to hear that now you're not feeling well either. I hope they can find out what is going on with Odin soon. Prayers! Take care.
I totally understand the toll it can take on you when worried about a beloved pet/family member. Please keep us up to date. Feel better.
Thank you for your kind support, Felicia 🙂 I'm now on the way back, but I didn't blog in this time.
I'm glad the new meds are helping Odin and you are feeling better yourself. We appreciate your keeping up with our blogs.
I do my best to visit your blogs, when I have energy.
You're welcome, Irene. I just want you and Odin to feel better.
Thank you for kind concern, Sylvester.
Prayers for Odin and for you!! I hope you both mend soon and the worst is behind you!!
I agree with all the kind comments you've received. You know you're special when you have so many people, most of whom you've never met face-to-face, caring about you and Odin. May both of you feel sassy soon. Thanks for giving us the update. May the news be good next week. Feel better, Irene.
Hoping both of you are feeling better soon and sending healing hopes and prayers your way!
Pl take care Irene. Hope yourself and Odin get well soon.
There's no need to worry about blogs Irene. I hope you and Odin are both, now, fully on the road to recovery and feeling better.
All the best Irene. I hope you and Odin return to full health and happiness soon.
Oh, Irene. I do hope there is rapid healing for you both! Thank you for letting us know about your hardship.
So sorry you are still no closer to curing Odin. It is incredibly difficult to keep our lives together when a loved one is ill. Even if that loved one is a pet. I send you thoughts of love and healing. Hope you both are on your feet soon.
Thank you very much and I agree, our pets are also family.
Hope Odin is doing better.
I hope you and Odin feel better soon. Get some rest!
Thank you Cheryl. I have spent most of my hours in my bed for more than a week now, but this demands time, I can feel.
I am so sorry to hear that! I hope the new meds work for Odin, and please take care of yourself and get well real soon!
Thank you very much, Dolly. I do my best, but this time it demands more time. Odin is doing better and found more energy again.
That's good news! I hope he recovers soon!
Thank you. I thought, that I was on the way back days ago, but then I went down again. Take good care of yourself.
Speediest recovery to your little Odin, we all are with you!
Odin is looking much better now Ann. Now I would wish to heal too.
Dear Irene. I had not seen this post until now.. I do hope that you and Odin are feeling much better.. Please take all the time you need to recover..
Our blogs will still be here along with our love and friendship..
We are in a better way both of us, I just haven't energy yet.
Try to rest and recover completely, I'm very sorry that Odin is sick, take good care of him.
I am not sure who is reading this but I hope it is read by Irene's friends and followers. I am her daughter, my name is Claire, and would like to give you an update on this story. As I cannot guess her password to the computer, I cannot write a separate post for you to receive notifications about.
Unfortunately my mother's health has taken a turn for the worse. She is currently submitted to the hospital in her city. She is in the intensive care unit where they do their best to help her. She is not awake and it is very hard for all of us. My brother and I are here, and we are visiting her and taking care of Odin and the cats. Her boyfriend is here as well.
My mom doesn't like to be public about intimate details such as sickness, so out of respect for her, I will not go into details now. If she gets better (unfortunately yes, the "if" in this sentence is needed), it should be up to her to share it or not.
I am not sure how to contact Amazon or Etsy, to inform about the fact that any incoming order cannot be served at the moment. If any of you know, please help me and perhaps contact them (I do not have much internet access) on our behalf and ask them to contact me directly. Her and I are connected on Facebook, so if you are connected you can find me there if you need to contact us. I will, of course, check her blog for posts.
Please send your best thoughts our way and I will make sure to inform her about this tomorrow, when I visit her again. I am absolutely certain she could hear me today, as she fought to wake up when we were there. She will be happy when I forward her any comments from her followers. She tell me about you on a daily basis, or at least she did until Thursday morning.
To all of you: I do not plan to write back in here, but I will check for any replies to this. At the moment we are all too devastated to communicate much. I just thought you should know why she has been silent for a while and will not be active in any near future.
Prayers to you and your family. I hope you recover and come back to add the color and smile to my feed. Best wishes to you, Irene!
I seem to have gone or still going through a similar face. The rheumatoid arthritis has flared several times, leaving me fatigued and with never enough time. Feel better Irene and allow me to catch up as well.
I wish you a better health. I didn't post anything since I went to the hospital the 8. of June and I don't know when I will find the abundance for this either.
Don't worry about it, you know that everybody is here for you in the meantime and always. And thank you for your well wishes. Please take care.
Thank you Denise and sorry for the delay, I just found your comment in my spam.
Please read my comment to you at your last post.


The USA (land of the free, home of the armed) has a lot of case law in relation to electronic discovery. A large proportion of that relates to costs, and the recent case of Chen v Dougherty (USDC No. C04-987 MJP http://www.ediscoverylaw.com/uploads/file/Westlaw_Document_Chen.doc) is interesting because a lawyer had her costs reduced to USD$200/hour "for certain time spent on discovery... (as her) inhibited ability to participate meaningfully in electronic discovery tells the Court she has novice skills in this area and cannot command the rate of experienced counsel." On one level that is a fairly obvious conclusion - a junior lawyer or someone operating outside his area of expertise can't claim high rates, but "inhibited ability to participate meaningfully" suggests that the modern lawyer needs to engage in understanding technology just as much as the law.
Netbooks are very popular at the moment, and for good reason. This column is being written on my original Asus eeePC 701 (7" screen) which provided sterling performance around Asia and Europe last year. A member of the senior bar also contacted me and recently took his around Greece and Bulgaria. We both used Skype (http://www.skype.com) over Wi-Fi to make phone calls on it cheaply and easily. I'm convinced that these netbook computers have a long term place in computing history, due to the portability of the device (under 1kg) together with cheap 3G within Australia and wireless when overseas. Not only was it a very cheap phone using Skype, it also offered storage for our camera cards, listening to ABC streamed radio, Google maps, ticket purchasing, tourist attraction research, hotel bookings and more. Many of the more recent netbooks have a 10.1" screen together with more storage, power and battery life making them easier to use. However, I think that they won't be as useful unless they can remain comparable in size and weight. The 3G data option, using a dedicated card or USB device, is a good one as you can buy 1GB of data per month for under $14 if you look around. Sitting up the back of a lengthy Registrar's list might become a lot more productive.
An even more portable device I have come to appreciate is the iPod Touch (http://www.apple.com/au/ipodtouch/). With a headset or clip on microphone (http://www.macally.com/EN/Product/ArticleShow.asp?ArticleID=171) it becomes a VoIP phone using Fring or provider-specific applications such as Skype or Pennytel. It offers very good phone call quality on a wi-fi connection. If your computing needs are light, you could just travel with the Touch as it offers email, calendar, contacts, Google Maps, web browsing and entertainment whenever you have a Wi-Fi connection. I'll be in NZ shortly, and I suspect the Touch will be enough rather than my eeePC.
Managing lists of things is often a problem, because doing it in Microsoft Excel or Word is cumbersome and inherently single-user. Microsoft SharePoint (an add-on to Windows Server - http://sharepoint.microsoft.com) might be a solution for you. Although I recently wrote a blog post about why I don't think SharePoint is a viable document management system, I do think that SharePoint is great at maintaining lists. My company maintains a number of lists such as those for document executions, bank guarantees, and safe custody. SharePoint has improved the way we do that, and we are gradually moving more data over to it. Benefits over Excel include multi-user, drop down menus for data consistency, avoidance of accidental changes, sorting and filtering. Since it's web-based you don't need to have any extra applications on the PC, including Microsoft Office.