.20/01/2012
Melhorias Core QCodo & QCMS Jan/2012
Postado por: Raphael Cangucu
Core QCodo
Programação:
- QStateCity
- Correção de erros
- Separação da Lista de Cidades em Grupo da Capital e Outras Cidades
- QCpfCnpjToogle
- Correção de erro em momento de edição
- QI18N
- Suporte a criação de tradução customizada (project):
Para isso basta criar a pasta i18n dentro project
Criar também a variável __CUSTOM__ dentro do configuration.inc.php apontando para a pasta customizada
E depois criar or arquivo da linguagem dentro dessa pasta, que ele será preenchido com os termos não encontrados quando o projeto tiver customização ( excelente para o QCMS )
- Suporte a criação de tradução customizada (project):
- QCache
- Mudança da pasta do /core para a tmp/cache
- QSubdomainTextbox
- Criação de textbox próprio para subdomain
- QProgressBar
- Criação de componente integrado ao jquery.ui para barra de progresso
- QGoogleChart
- QGoogleChartBase: Extensão da classe em sua base
- QGoogleChartTimeLine: Componente criado para TimeLine em flash usando o google charts
- QQQuery
- QQDistinctCount: Criação da classe para contar somente nodos distintos em um query
- QQAggregationClause: Extendida para suportar funções internas, o que possibilitou a criação do QQDistinctCount
- QDateListBox
- Modificação para funcionamento todo em Javascript
- QCKEditor
- Correção de erro ao enviar post via server action
- io_classes/FTP
- Criação de classe para uso de funções do protocolo FTP no qcodo
- QCKFinderFileControl
- Selecionador de arquivos via CKFinder
- QCKFinderImageControl
- Selecionador de imagens via CKFinder
- QFileControl
- QRetFileControl
- QBankSlip
- QBankSlipBancoBrasil
- Drawee
- Transferor
- QCurlAsync
- Criação de classe de chamada CURLS de maneira assincrona (ainda não funcional)
Design:
- Criação de CSS para dashboard (básico ainda)
- Inclusão de novos ícones
QCMS
- Correção de problemas na área do site e páginas no que diz respeito a MetaControls e MetaOptions
- Meta para formulário de contato
- Padronização do Meta simples, com suas devidas extensões de classes
- Correção de Cadastro de Clientes
- Correção de assunto e departamentos
- Melhorias no AudioMetaControl
- Remoção da pasta wizard
- Inserção de Banners de forma facilitada, com inclusão de localização sobdemanda
Postado por: Raphael Cangucu
Prezados,
Esse último ano tem sido um imenso aprendizado em gestão empresarial por marcar o fim de minha pós em Gestão de Negócios pela Fundação Dom Cabral (FDC) e também por ter iniciado um período intenso de leituras sobre o tema.
E para fixar mais cada tema ou cada capítulo de livro lido durante esse período (e para melhorar minha escrita), resolvi escrever um ligerio resumo sobre cada item estudado e em algum momento, alinhar, concordar ou discordar de algum trecho apresentado e se possível relatar um pouco de minha experiência como empreendedor, melhor micro empreendedor.
No momento estou lendo o livro Criando Magia, que fala sobre 10 estratégias de liderança desenvolvidas por Lee Cockerell, durante sua jornada na Disney. E nesse post, irei falar já do terceiro capítulo, onde realmente começam a ser delineadas as estratégias.
Capítulo 3 – Estratégia #1 – Lembre-se de que todos são importantes.
O principal princípio abordado é o da inclusão, da verdadeira inclusão, não somente a inclusão de pessoas de diversas culturas, religiões, etinias ou orientação sexual, mas sim da criação do vínculo do comprometimento com os colaboradores, fazendo, que se sintam parte da empresa, demonstrando a importância de cada um, tanto no dia a dia, como nos processos decisórios. A inclusão é essencial, pois quando as pessoas sabem que isso é verdadeiro, elas chegam mais felizes ao trabalho e ficam ansiosas por retribuir com energia, criatividade e lealdade. Com o resultado de maior produtividade e satisfação; menos abstenção e rotatividade.
Então vamos agora a lista de 13 itens abordados pela Disney:
1. Deixe claro que todos são importantes. Na liderança, não basta apenas que seus funcionários sejam felizes, é necessário criar um ambiente no qual eles se destacam no que fazem.
2. Conheça sua equipe. Todos os profissionais têm motivações, prioridades, preferências e sonhos diferentes. Vá adiante e conheça cada um deles, tanto sua história de vida, para demonstrar sua unicidade, como seu histórico profissional, trabalhos anteriores, aptidões, talentos e objetivos de curto e médio prazo. E depois use essas informações para desenvolver o melhor de cada um.
3. Permita que sua equipa conheça você. A chave nesse ponto é a questão da autenticidade do líder, agindo com transparência e franqueza também em momentos de erro. Não seja um farsante, de poder inabalável, pois em um determinado momento as pessoas descobrirão e perderá a credibilidade.
4. Cumprimente as pessoas com sinceridade. Ao invés de ficar imerso em seu trabalho, procurando projetar uma imagem superior aos demais, busque ser uma pessoa mais amigável, “perder” um tempo dando um oi sincero as pessoas, procurando saber como elas estão, mostrando-se mais altruísta.
5. Leve em consideração todos os membros da equipe. Ser ouvido e escutado é uma necessidade básica dos seres humanos. Além de fomentar a auto-estuma e a autoconfiança de seus colaboradores, é uma fonte de informação curcial para o líder. Pois em níveis menos gerenciais e mais práticos o conhecimento do líder é defasado pela cadeia hierárquica, fazendo que haja uma perda de percepção dos problemas ou possíveis soluções dos erros. Escutar todos os níveis da equipe gerará comprometimento, inclusão e aumentará o apoio de suas decisões.
6. Esteja sempre a disposição do seu pessoal. Estar disponível, não significa que todas as pessoas irão tomar seu tempo, ao contrário disso, elas irão te fornecer informações necessárias para solução mais práticas e viávies de possíveis problemas que normalmente lhe exigiriam maior dedicação do seu tempo.
7. Ouça e procure compreender. Estar disponível não significa que ouvirá o que sua equipe deseja falar. Então seja não faça disso um gesto vazio. Procure criar empatia com o interlocutor para extrair a verdadeira mensagem que deseja transmitir e para demonstrar interesse nas opniões da sua equipe.
8. Comunique-se de forma clara, direta e sincera. Esse é um ponto importantíssimo, se você não saber transmitir a mensagem a quem interessa, não obterá os resultados que deseja. Não confunda as pessoas, use uma linguagem simples e diga exatamente o que quer, com franqueza.
9. Defenda os excluídos. Esse é mais um ponto pessoal do autor, mas também que se refere a proposição de inclusão e para que o líder aja de forma a mitigar o motivo dessa exclusão, criando um ambiente de trabalho que seja agradável a todos.
10. Ignore a ordem da linha hierárquica. Sabemos que o modelo hierárquico está sendo gradativamente se concatenando com o modelo de redes, em ambiente de gestão. Para que isso ocorra é necessário confiança entre as partes e autonomia para resolução das atividades, e transparência na circulação da informação.
11. Não concentre toda liderança em suas mãos. Se você deseja perder seus melhores colaboradores, basta tomar decisões por eles e monitorá-los constantemente. Se quer ser um bom líder, contrate bons profissionais, solte as rédeas, comunique claramente suas responsabilidades, seu nível de autoridade e comprometimento e deixe-os trabalhar. Vale-se da nota que em momentos de crise, o líder deverá assumir o comando e as responsabilidades.
12. Planeje a cultura da empresa. O Disney Institute define cultura corporativa como “o sistema de valores e crenças de uma organização que motiva ações e comportamentos e influencia relacionamentos”. Toda empresa tem uma cultura e a grande questão é se ela está a favor ou contra a missão da empresa. Assim, culturas bem sucedidas são estabelecidas de forma planejada, são claras, bem definidas e têm propósitos. Uma grande vantagem competitiva nos negócios, são culturas que envolvam com palavras e ações, a inclusão em todos os níveis da organização.
13. Trate os funcionários como você quer que seus clientes sejam tratados. A questão proposta é a relação direta entre o modo que tratamos os colaboradores e a maneira que atendem aos clientes. Assim se a organização atendem as expectativas dos funcionários, fará com que a auto-estima e a confiança deles se multiplique, e os façam se comportar de forma profissional e dedicada.
Abordados 13 pontos relevantes para a estratégia no. 1, o autor cria uma lista de como colocar isso em prática.
- Sempre se pergunte o que você tem feito para demonstrar que todos são importantes e para que eles saibam disso.
- Crie um ambiente em que todos colaboradores e clientes se sintam especiais.
- Trate cada pessoa como indivíduo.
- Ofereça a todos seu respeito total e incondicional.
- Dedique-se a conhecer seus colaboradores.
- Dê a todo funcionario as informações e os recursos para que ele aprenda o que preciso saber e adquira as qualificações necessárias.
- Coloque-se verdadeiramente à disposição de todos os integrantes da sua equipe.
- Conceda a todos os colaboradores, seja qual for a posição hierárquica que ocupem, a oportunidade de serem ouvidos.
- Quando algúem falar com você, dedique toda a sua atenção à pessoa e a ouça de verdade.
- Seja você mesmo – não projete uma imagem que não seja autêntica.
Finalizando assim o capítulo 3, que trata da inclusão e envolvimento de todos em prol da organização.
.17/11/2011
Salve a web
Postado por: Pamela Cabezas
Que o IE 6 atrapalha a vida de nós desenvolvedores, isso todo mundo sabe. E por causa disso, já foram feitos vários movimentos na internet contra a utilização deste navegador.
O movimento Salve a Web é um desses, no entanto a finalidade deste movimento é muito útil e prática, acreditamos que realmente será possível conseguir um resultado positivo se os desenvolvedores aderirem a esse movimento.
A partir de hoje, a Codificar anexará em todos os seus sites o script que eles divulgam.
Postado por: Raphael Cangucu
Ao longo desse tempo trabalhando com WEB sempre vem a tona a questão: PERFOMANCE .
E uma das maneiras de otimizar a velocidade de carregamento de páginas web é tratar o seu conteúdo estático de maneira que possa ser carregado da maneira mais rápida possível.
E os conteúdos estáticos de uma página web geralmente são: imagens, folhas de estilo CSS e arquivos javascript e uma boa notícia é que podemos comprimí-lo até atingirem o menor tamanho possível, facilitando assim o download desses arquivos pelos navegadores dos clientes.
Segue abaixo 7 maneiras eficientes de se fazer isso:
É um validador e avisa ao desenvolvedor sobre erros encontrados e indica também maneiras de otimizá-los.
2. Packer
É um compressor para javascripts que irá melhorar o tempo de carregamento da sua página.
3. SquishIt
Uma marca da GitHud, irá ajudá-lo a compactar tanto CSS como JavaScript do seu site, podendo agrupar arquivos em um único, reduzindo assim o número de requisições de arquivos. Tem uma interface um pouco pobre, mas você irá se acostumar com isso.
4. Minify
Minify é uma excelente biblioteca escrita em PHP5 que irá ajudar a compactar os seus arquivos .js e .css em até 70% e pode ser facilmente integrado ao seu site, se escrito em PHP, aqui na Codificar já utilizamos algumas vezes e o resultado sempre é atrativo.
5. JSMin
JSMin, é simples e fácil de usar e remove todos os espaços em brancos de seu código, o que ajuda a diminuir o tamanho de seu arquivo em até 50%.
6. Google Closure Compiler
O pessoal do Google sempre é confiável quando o assunto é velocidade e aprimoramento. Sendo assim, essa ferramenta irá ajudar a remover e corrigir eficientemente erros comuns de código em javascript.
Excelente para quem usa grandes bibliotecas em Javascript.
7. YUI Compressor
Mais uma maneira de comprimir os arquivos CSS e JS e se diz melhor que os concorrentes como Packer e Minify, e é claro que tem o suporte de uma grande empresa como a Yahoo.
Enfim, #ficaadica e façam bom proveito.
.11/11/2011
Modificações Core QCodo + QCMS: 10 e 11/2011
Postado por: Raphael Cangucu
CORE QCODO:
- Correção de erros na geração de código para tabelas customizadas
- Criação da classe QSiteMaps, para criação de sitemaps de site e projetos
- Melhorias nos players QJWPlayer 4 e 5 , adição de atributo AutoPlay
- Atualização do JwPlayer para a versão mais atual da 5
- Adição de novo skin NORDEN para QJWPlayer5
- Adição da classe ApiBase, que será a base de chamadas via WebService, construídos via QCodo
- Adições de novos ícones
- Melhoria na QUrlTextbox para aceitar endereços sem o http://
- Criação do QTabPanel, para abas com CSS para os temas correntes
QCMS:
- Criação da Classe SelectFile, que é similar ao SelectAlbumImage, mas para selecionar arquivos usando o CKFinder
- Criação das pastas data_meta_content e data_meta_site_area, para melhor organização dos Meta Object das tabelas content e site_area
- Limpeza na SeoForm, remoção de funções e códigos não utilizados
- Melhoria da tela de Conteúdo, divisão em Dados Básicos de Dados de SEO
- Diversas modificações de banco: vide pasta migrations
- Criação da Classe MetaType e adição dos tipos básicos de dados
- Criação da tela de lista e edição de audio no /admin
- Adaptação do install-php-ini.php para a versão 5.3 da dreamhost
- Correção de erros das telas de criação e lista de eventos
- Correção de erros das telas de criação e lista de vídeos
Atenciosamente,
Raphael Canguçu
.10/11/2011
Testando seu javascript online
Postado por: Pamela Cabezas
Parte do processo de criação de algum site é aplicação de algum javascript para tornar a página mais dinâmica.
Aqui na Codificar nos optamos pelo o uso do Jquery, que permite que a criação de javascripts seja infinitamente mais fácil. No entanto qualquer script precisa ser testado, e eis que em nossas pesquisas pela Web encontramos este maravilhoso site que te permite testar online o seu javascript.
Consideramos este site super útil porque:
- Ele tem a biblioteca do Jquery incorporada;
- Além do Jquery tem outras bibliotecas também, como MooTools, Prototype e etc;
- É dividido em quatros áreas:
- Área para inserir o html
- Área para inserir o javascript
- Área para inserir o css
- Área que exibe resultados
- Te permite salvar determinado teste e compartilhar com outras pessoas
- E outras série de customizações
Vale a pena dar uma conferida → http://jsfiddle.net
.1/11/2011
Como fazer uma newsletter
Postado por: Pamela Cabezas
O que todos precisam saber é que fazer uma newsletter não é como diagramar e recortar um site, pois, em geral, os clientes de email limitam muito o html e o css que pode ser usado na hora de recortar o layout da news, além disso na hora da diagramação você precisa estar consciente dessa limitação. Não adiante fazer um super layout rebuscado, se seu html não irá suportar.
Por isso, para que você tenha mais consciência sobre esta limitação, indicamos está página super interessante que mostra o que cada leitor de email interpreta do css:
http://www.campaignmonitor.com/css/
E aqui há outros links mais sobre o assunto:
- http://www.campaignmonitor.com/blog/post/2038/optimizing-css-presentation-in-html-emails/
- http://kb.mailchimp.com/article/how-to-code-html-emails
- http://www.alistapart.com/articles/cssemail/
- http://css-discuss.incutio.com/wiki/Style_In_Email
Infelizmente o conteúdo está todo em inglês, mas vale a pena o esforço.
.2/09/2011
Melhorias QCodificar – Google Chart
Postado por: Thiago Alberto
Conforme foi mencionado a aproximadamente 15 dias atrás, uma importante melhoria foi feita na classe de geração de gráficos chamada QGoogleChart .
Agora o controle permite a geração de gráficos dos seguintes tipos:
- Pizza
- Barra
- Coluna
- Área
- Dispersão
- Gauge (parece um velocímetro ou barômetro)
- Linha
O uso da classe é extremamente simples e várias classes do tipo enumeration foram criadas para facilitar as declarações. O gráfico está aliado a um dashboard que contem um filtro dinâmico de dados e botões para troca do tipo de gráfico. É importante estar atento a uma particularidade dos gráficos, alguns se ajustam melhor a dados com um eixo e outros com 2 eixos.
Seguem exemplos de uso:
// Gráfico com 2 eixos - Area, Linha, Barra e Coluna
$this->gccChart = new QGoogleChart($this);
$this->gccChart->Type = QChartType::Area;
$this->gccChart->Title = 'Balanço Empresarial';
$this->gccChart->Is3D = true;
$this->gccChart->BackgroundColor = '#f5f5f5';
$this->gccChart->SliceText = QSliceText::Value;
$this->gccChart->Legend = QLegendPosition::Right;
$this->gccChart->AddColumn(QChartColumnType::String, "Ano");
$this->gccChart->AddColumn(QChartColumnType::Number, "Vendas", true);
$this->gccChart->AddColumn(QChartColumnType::Number, "Despesas");
for ($i = 0; $i < 5; $i++)
$this->gccChart->AddRow(($i + 2005), rand(50, 100), rand(30, 80));
// Gráfico com 1 eixo - Pizza, Gauge e Dispersão
$this->gccChart2 = new QGoogleChart($this);
$this->gccChart2->Type = QChartType::Pie;
$this->gccChart2->Title = 'Distribuição de vendas';
$this->gccChart2->Is3D = true;
$this->gccChart2->BackgroundColor = '#f5f5f5';
$this->gccChart2->SliceText = QSliceText::Value;
$this->gccChart2->Legend = QLegendPosition::Right;
$this->gccChart2->AddColumn(QChartColumnType::String, "Carros");
$this->gccChart2->AddColumn(QChartColumnType::Number, "Vendidos");
$arrCars = array('Camaro', 'Dodge', 'Corvette', 'Ferrari', 'Mustang');
for ($i = 0; $i < 5; $i++)
$this->gccChart2->AddRow($arrCars[$i], rand(20, 50));
.31/08/2011
Melhorias QCodoficar – Gerador de Código
Postado por: Raphael Cangucu
Modificações liberadas no QCODO da Codificar em 31 de agosto de 2011:
Datagrid:
- Adição de função de formatação do campo na MetaAddColumn:
- declaração:
public function MetaAddColumn($mixContent, $strFunction = null , $objOverrideParameters = null) {…} - uso:
//irá adicionar a coluna 'Percent' e será formatada pela função de atalho para impressão de percentuais
$this->dtgValues->MetaAddColumn('Percent', '_pc');
//pode ser utilizado
- declaração:
- Adição da função MetaAddVirtualAttributeColumn: que permite a adição de colunas com atributos virtuais das queries geradas
- uso:
$this->dtgUserSituations->MetaAddVirtualAttributeColumn('AveragePercent', '_pc');
//já está compatível com a função de formatação
- uso:
- Implementação de novos filtros por intervalo na tela de pesquisa para campos inteiros e float's
- uso: basta usar o novo gerador, implementado em todos arquivos que participam do processo de pesquisa
- Divisão da função MetaDataBinder em MetaDataBinder, MetaBuildConditions e MetaBuildClauses, dividindo em três legíveis funções de acordo com cada etapa do processo de bind do DataGrid
Controles:
- Compatibilização do QDoubleMultipleListbox com o JQuery 1.6.2
- Modificação do QDialogBox para uso do Jquery UI Dialog Box ao invés do componente original do QCODO
- Disponibilização final, com teste do componente, QDateListBox no qual é possível selecionar intervalos de datas, como mês, semana, ultimo mes, ultima semana, este ano, ultimos 30 dias e períodos customizados
Geração de código:
- Criação do arquivos /core/assets/php/custom_codegen/php que permite a geração seletiva de tabelas e bancos de dados disponíveis na aplicação
- Modificação da maneira na qual é instanciada objetos nas funções de instanciamento de valores vindos do banco de dados, fazendo o carregamento estático e uso da técnica lazy load
Javascript:
- Modificação do core/js para aceitar carregamento de Javascripts Online em CDN's
- Substituição do Jquery 1.4.4 pelo 1.6.2
Acredito que por enquanto é isso…
Em breve mais novidades!!
.19/08/2011
Melhorias QCodoficar em 19 de Agosto
Postado por: Thiago Alberto
Modficações liberadas no framework da Codificar em 19 de Agosto de 2011:
- Criação do atributo $strOnlineJavaScripts para os controles (extensões do QControl):
- Agora é possível incluir não apenas scripts javascript locais (na pasta core ou na project), mas também arquivos .js externos na web, usando o protocolo http ou https. Como exemplo temos:
protected $strOnlineJavaScripts = 'http://www.google.com/jsapi' ou http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js - Em breve poderemos ter como padrão algumas bibliotecas apenas online, como o JQuery…
- Agora é possível incluir não apenas scripts javascript locais (na pasta core ou na project), mas também arquivos .js externos na web, usando o protocolo http ou https. Como exemplo temos:
- Criada a função QType::CastConstTo($mixValue, $strClassName), que verifica se a atribuição de uma variável é uma constante do tipo solicitado.
- Exemplo de uso na função _set :
case 'Legend' :
try {
$this->strLegendPosition = QType::CastConstTo($mixValue, "QLegendPosition");
break;
} catch (QInvalidCastException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
- Criado o atributo IsUnorderedListElement sendo falso por padrão no controle QRadioButtonList.
- Este controle sempre renderizava como formato de tabela e em alguns casos era necessário um html mais simples. Assim, se o atributo IsUnorderedListElement for setado como true, ao invés de tabela, será renderizada a estrutura ul li.
- O mesmo será feito para QCheckBoxList em breve…
- Exemplo:
$this->rblOptions = new QRadioButtonList($this);
$this->rblOptions->IsUnorderedListElement = true;
$this->rblOptions->CssClass = 'formList';
- Por fim, foi criada uma nova classe para geração de gráficos chamada QGoogleChart, que usa a nova API da Google para tal.
- Até o momento o controle só permite a criação de gráficos de pizza em 2D ou 3D, mas em breve também suportará gráficos de barras, linhas, colunas e outros…
- Exemplo de uso:
$this->gccChart = new QGoogleChart($this);
$this->gccChart->Title = 'Distribuição de votos';
$this->gccChart->Is3D = true;
$this->gccChart->BackgroundColor = '#f5f5f5';foreach (PollOption::LoadArrayByPollId($_ITEM->Id) as $objOption)
$this->gccChart->AddRow($objOption->Option, PollVote::CountByPollOptionId($objOption->Id));$this->gccChart->Render();






