Make:
Model:
ShutterSpeedValue:
ApertureValue:
ExifImageWidth: 1024
ExifImageLength: 768
Adele – Someone Like You
Here’s to the crazy ones. The rebels. The troublemakers. The ones who see things differently. While some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.
Apple’s 1997 commercial!
Olá,
Hoje venho escrever sobre um assunto que provavelmente interessa a muitos dos leitores deste Blog. Por norma, quem tem uma loja Prestashop depara-se com uma quantidade enorme de recursos mas que, na grande maioria, nem sequer utilizam ou não fazem intenção de utilizar.
O Prestashop tem uma funcionalidade que é o Grupo de Clientes, ou seja, é possível configurar o preço e disponibilidade de artigos consoante determinado Grupo de Clientes. Por exemplo, uma loja que vende para o consumidor final e revenda, tem dois grupos de clientes, que no caso da revenda, usufruem de um desconto de x% sobre o preço apresentado ao grupo Consumidor Final.
No entanto, apesar desta funcionalidade, a grande maioria dos utilizadores do Prestashop utiliza apenas o Grupo por defeito, ou seja, não tem configurado qualquer grupo além do consumidor final. No entanto, a plataforma Prestashop, sempre que faz uma query à base de dados para receber o preço, faz uma busca também ao Grupo de Utilizadores para quem determinado produto ou produtos se destina, este processo faz com que exista um pequeno atraso na apresentação dos resultados.
Hoje, vamos fazer com que o prestashop ignore este processo dos grupos e consequentemente, fazer com que a vossa loja que tem apenas um grupo, seja significativamente mais rápida na página do produto.
Abram o ficheiro classes/Product.php e encontrem a query:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$result = Db::getInstance()->ExecuteS('
SELECT p.*, pl.<code>description</code>, pl.<code>description_short</code>, pl.<code>link_rewrite</code>, pl.<code>meta_description</code>, pl.<code>meta_keywords</code>, pl.<code>meta_title</code>, pl.<code>name</code>, p.<code>ean13</code>,
i.<code>id_image</code>, il.<code>legend</code>, t.<code>rate</code>, m.<code>name</code> AS manufacturer_name
FROM <code>'._DB_PREFIX_.'product</code> p
LEFT JOIN <code>'._DB_PREFIX_.'product_lang</code> pl ON (p.<code>id_product</code> = pl.<code>id_product</code> AND pl.<code>id_lang</code> = '.intval($id_lang).')
LEFT JOIN <code>'._DB_PREFIX_.'image</code> i ON (i.<code>id_product</code> = p.<code>id_product</code> AND i.<code>cover</code> = 1)
LEFT JOIN <code>'._DB_PREFIX_.'image_lang</code> il ON (i.<code>id_image</code> = il.<code>id_image</code> AND il.<code>id_lang</code> = '.intval($id_lang).')
LEFT JOIN <code>'._DB_PREFIX_.'tax</code> t ON (t.<code>id_tax</code> = p.<code>id_tax</code>)
LEFT JOIN <code>'._DB_PREFIX_.'manufacturer</code> m ON (m.<code>id_manufacturer</code> = p.<code>id_manufacturer</code>)
WHERE p.<code>active</code> = 1
AND DATEDIFF(p.<code>date_add</code>, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0
AND p.<code>id_product</code> IN (
SELECT cp.<code>id_product</code>
FROM <code>'._DB_PREFIX_.'category_group</code> cg
LEFT JOIN <code>'._DB_PREFIX_.'category_product</code> cp ON (cp.<code>id_category</code> = cg.<code>id_category</code>)
WHERE cg.<code>id_group</code> '.(!$cookie->id_customer ? '= 1' : 'IN (SELECT id_group FROM <code>.DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').'
)
ORDER BY '.(isset($orderByPrefix) ? pSQL($orderByPrefix).'.' : '').'</code>'.pSQL($orderBy).'<code> '.pSQL($orderWay).'
LIMIT '.intval($pageNumber * $nbProducts).', '.intval($nbProducts)); |
Esta função faz uma busca na BD por Grupo de Clientes o que atrasa em cerca de 1 seg. o tempo de apresentação da página.
Substituam o código acima por:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$result = Db::getInstance()->ExecuteS('
SELECT p.*, pl.</code>description<code>, pl.</code>description_short<code>, pl.</code>link_rewrite<code>, pl.</code>meta_description<code>, pl.</code>meta_keywords<code>, pl.</code>meta_title<code>, pl.</code>name<code>, p.</code>ean13<code>,
i.</code>id_image<code>, il.</code>legend<code>, t.</code>rate<code>, m.</code>name<code> AS manufacturer_name
FROM </code>'._DB_PREFIX_.'product<code> p
LEFT JOIN </code>'._DB_PREFIX_.'product_lang<code> pl ON (p.</code>id_product<code> = pl.</code>id_product<code> AND pl.</code>id_lang<code> = '.intval($id_lang).')
LEFT JOIN </code>'._DB_PREFIX_.'image<code> i ON (i.</code>id_product<code> = p.</code>id_product<code> AND i.</code>cover<code> = 1)
LEFT JOIN </code>'._DB_PREFIX_.'image_lang<code> il ON (i.</code>id_image<code> = il.</code>id_image<code> AND il.</code>id_lang<code> = '.intval($id_lang).')
LEFT JOIN </code>'._DB_PREFIX_.'tax<code> t ON (t.</code>id_tax<code> = p.</code>id_tax<code>)
LEFT JOIN </code>'._DB_PREFIX_.'manufacturer<code> m ON (m.</code>id_manufacturer<code> = p.</code>id_manufacturer<code>)
WHERE p.</code>active<code> = 1
AND DATEDIFF(p.</code>date_add<code>, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0
ORDER BY '.(isset($orderByPrefix) ? pSQL($orderByPrefix).'.' : '').'</code>'.pSQL($orderBy).'` '.pSQL($orderWay).'
LIMIT '.intval($pageNumber * $nbProducts).', '.intval($nbProducts)); |
Devem agora perceber que esta alteração faz uma diferença de cerca de 1 seg na abertura de páginas. No entanto, foi desabilitada a busca por Grupo de Cliente.
Outra forma de alterar a velocidade da vossa loja é a utilização do Memcache. Esta opção está disponível apenas em Alojamentos dedicados ou semi-dedicados com acesso a instalação via SSH. Se é o vosso caso, podem fazer a instalação do memcache e configurá-la no BO do Prestashop.
Existem outras formas de colocar o vosso sistema prestashop mais rápido que sempre que tiver novidades, vou colocando aqui.
A minha filha tem blog! Apesar de ainda não estar 100%, está a andar… E diga-se de passagem, tenho tempo para o acabar… Eheh
Olá Pessoal,
Hoje vou falar de uma questão que muitos tentam resolver das mais diversas maneiras, no entanto, foram muitas as pesquisas que fiz sobre uma forma concreta de criar um home office eficiente e cheguei à conclusão que não é tarefa fácil…
Sempre precisei de muito espaço para a quantidade enorme de computadores, portáteis e servidores que completam as minhas secretárias. No entanto, esse é o mal menor, o verdadeiro problema chega quando tenho um monte de dispositivos ligados em simultâneo incluindo a minha “área djing” que não dispenso de a ter sempre ao pé de mim. Claro que aliado a essa questão vêm os km’s de cabo que circundam a minha área de trabalho.
Então pus mãos à obra e pensei num home office que fosse eficiente para as minhas necessidades específicas, apesar de ainda não estar acabado, penso que a pior parte está resolvida, a arrumação!
O primeiro passo foi comprar uma secretária que se ajustasse ao meu trabalho. A minha opção foi um escritório pronto da Staples com 3 peças (1 canto, 1 x 160*80 cm, 1 x 80*80 cm), no entanto, pelo espaço que tinha disponível vs dispositivos, não chegava! Comprei então mais uma parte desse escritório (1 x 160 * 80 cm) e fiquei assim com uma enorme secretária em L com as seguintes medidas:
-Workstation: 240 * 80 cm = (1 x 80*80 cm) + (1 x 160 * 80 cm)
-Support: 240 * 80cm = (1 x 80*80 cm – canto) + (1 x 160 * 80 cm)
Claro que aproveitei umas promoções e ficou em cerca de 300€ tudo.
Um outro problema com que me deparei foi a falta de electricidade que tinha no meu home office, apenas 2 tomadas de corrente para tanto equipamento era pouco. A solução foi criar uma rede eléctrica própria e distribuida através de calhas de 11*5 cm. No total, adquiri 20mts de calha branca, 24 tomadas electricas, 6 aparelhagens de rede (RJ45), 3 de telefone (RJ11), não chegaram as tomadas para usar 1 por equipamento, mas devido ao curto orçamento, usei 3 triplas e 1 sextupla.
Todo este processo foi feito manualmente e por mim para garantir que todos os cabos e afins eram colocados cuidadosamente (não confio muito em electricistas). Ao fim de 2 dias tinha as calhas colocadas e a rede eléctrica distribuída, bem como toda a rede através de RJ45 com cabo cat6 e RJ11.
Comecei a montagem da secretária mas deparei-me com um problema, ela como é das mais baratas, não tem passa cabos. OK, para resolver este problema, comprei uma broca craniana de 79mm e comprei numa fábrica de plásticos 18 passa cabos de 80mm. Convêm que a broca seja um pouco mais pequena porque o buraco alarga sempre um pouco e assim os passa cabos encaixam na perfeição. Apesar de existirem mais pequenos, com 60mm, para a quantidade de cabo que aqui circula, os de 80mm eram os melhores.
Abri 4 buracos na secretária pequena (2 no tampo e 2 nas laterais das pernas), mais 5 buracos numa secretária de 160*80 (3 no tampo e 2 nas pernas), 2 buracos no canto (no tampo só) e 4 buracos na outra secretária de 160 * 80 (3 no tampo e 1 na perna interior).
Uma vez que o meu Home Office é composto por 2 computadores de secretária, utilizei 1 para apoio, ou seja, para utilizar apenas em apoio à escrita ou para guardar o lixo dos outros computadores todos. Na prática, apenas a posição do computador de apoio significa apoio, porque na realidade, todos os dispositivos estão ligados em rede, incluindo os 3 servidores que adquiri e montei posteriormente.
Comprei uma embalagem de braçadeiras plásticas das mais grossas para conseguir juntar o cabo. Coloquei os dispositivos no sítio que queria que ficassem para não ter que cortar um monte de braçadeiras para mudar o sítio do equipamento. Separei os cabos todos por equipamento e uni-os como que se um grande cabo se tratasse e juntei-os com as braçadeiras.
A galeria de fotos abaixo, mostra mais ou menos o resultado. Apesar de ainda não estar acabado, pelo menos material para trabalho já está posicionado…
Neste momento o necessário para o meu trabalho está concluído, no entanto, ainda faltam alguns pormenores indispensáveis que faltam acabar. Com tempo, terei que colocar 1 Ar condicionado para que a temperatura ambiente não tenha grandes variações. Com os servidores sempre a trabalhar, a temperatura aqui ás vezes é um pouco alta de mais. Em relação ao espaço, mais tarde terei que arranjar a parte estética (chão e paredes), mas já estou a tratar disso.
A secretária deverá ser levantada (na área dos monitores KRK RP8) cerca de 40cm e será colocada uma prateleira de 1 ao outro com cerca de 25cm de altura (para pousar os ecrãs e colocar por baixo os periféricos). Essa prateleira será dividida para que na parte de baixo tenha a medida de equipamentos de rack 19″, nunca se sabe o que vem aí e convém que já esteja preparada para esses equipamentos de rack.
Em relação à área DJing, será feita uma mesa de madeira com cerca de 160 * 80cm para embutir os gira-discos e inclinar a mesa de mistura Na parte dos gira-discos a mesa deverá ter cerca de 110cm de altura e na parte mais baixa do tampo, cerca de 90cm de altura. Esta mesa deverá ser completamente tapada com apenas 1 saída de cabos na parte de trás para ligação à corrente. Deverá ter algumas prateleiras para colocação dos discos de vinyl e a parte central deverá ter a medida exacta de um rack de 19″ para a colocação de amplificadores, equalizadores, etc. Em relação a isso, estou a pensar seriamente em adquirir a Behringer DDM 7000. A falta de tempo para a utilização constante deste espaço, será o factor decisivo para não investir muito em material de melhor qualidade.
O resultado está mais ou menos assim (desculpem lá a mess):
Coloquei aqui uma área de upload que aguardam as vossas fotos dos vossos Home Office‘s/ Home Studio‘s e espero que algumas dicas tenham contribuído para a solução do vosso espaço de trabalho em casa. Agradeço a vossa contribuição e ideias para melhorar o espaço de trabalho.
Recentemente lançado e ainda em versão beta, o Google+ é um novo conceito de rede social que abrange as mais diversas formas de partilhar ideias, pensamentos, fotos, locais…
Na realidade, e à primeira vista, o Google juntou o que o twitter tem de melhor e juntou um “q” de Facebook, no entanto, parece-me que, juntando tudo isto num local integrável com Buzz, Gmail, Picasa, e todos os serviços Google, podemos ter uma plataforma social promissora e, claro, com bastante afluência dos utilizadores.

Contando com tudo isto, a Google lançou esta plataforma ainda beta, mas que supera em muito alguns dos concorrentes, de salientar:
- Video Chat com até 10 amigos dos Circulos
- Mensagens instantâneas superiores a 140 caracteres
- Integração a 100% com Android
- Localização geográfica de posts e imagens
- …
Numa nota de avaliação ao serviço, dou apenas 5 (de 0 a 10), por algumas razões:
1 – Ainda em fase beta
2 – Péssima compatibilidade com dispositivos móveis Apple
3 – Falta de integração com outras redes sociais (são precisas manhosisses)
Penso que no momento em que seja disponibilizada a app para iPad ou iPhone, as coisas melhorarão muito e farão com que mais utilizadores tenham acesso a esta plataforma social…
Agradeço as vossas opiniões sobre este conteúdo e se ainda não têm convites, avisem que eu envio…
Abraços
Mo-Zack