PHP: função para cortar string com delimitador

Para quem pegou a função para cortar string estilo aquelas chamadas em site que possuem um leia mais ou então um … que disponibilizamos anteriormente aqui no blog ai vai a função otimizada.

function cutstring($str,$number,$delimiter){
$len=strlen($str);
if($len >= $number){
// se a string for maior que o numero especificado corto com o delimitador
$str=substr($str,0,$number).$delimiter;
return $str;
}else{
// se a string for meno apenas imprimo
return $str;
}
}

Para aplicar basta utilizar o exemplo abaixo:

$string=cutstring($sua-variavel-string,100,”…”);

Posted in Sem categoria

Destaque de 2010 ( Parte 01): Mark Zukenberg de ativista open source ao mais jovem milionário do vale do silício

Sem dúvida você deve ter ouvido falar nele. Mark Zukenberg foi considerado a personalidade do ano pela revista Time. Desde cedo Mark foi um ativista pela utilização de aplicações open source tanto que hoje o coração do Facebook é movido por tecnologias abertas. Abaixo vocês podem conferir o vídeo da entrevista dada a revista time e também um álbum de fotos com o ambiente de trabalho e servidores do Facebook.

A vida dentro do escritório do Facebook

Server Farm Facebook

Posted in Sem categoria

Desenvolvimento: processo de desenvolvimento SCRUM


O Scrum é um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. Apesar de a palavra não ser um acrônimo, algumas empresas que implementam o processo a soletram com letras maiúsculas como SCRUM. Isto pode ser devido aos primeiros artigos de Ken Schwaber, que capitalizava SCRUM no título.

Scrum não é um processo prescribente, ou seja, ele não descreve o que fazer em cada situação. Ele é usado para trabalhos complexos nos quais é impossível predizer tudo o que irá ocorrer.

Apesar de Scrum ter sido destinado para gerenciamento de projetos de software, ele pode ser utilizado em equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos/programas.
Índice
[esconder]

* 1 História
* 2 Características
o 2.1 Product backlog e Sprint backlog
o 2.2 Planejamento de sprint
* 3 Scrum simplificado
* 4 Algumas características de Scrum
* 5 Agendando discussões diárias
* 6 Scrum Solo
* 7 Ver também
* 8 Livros
* 9 Ligações externas

[editar] História

Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de projetos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo “The New Product Development Game” (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares (cross-functional) produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação Scrum do Rugby (utilizada para reinício do jogo em certos casos). Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum, conforme descrito abaixo, na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka. Em 1995, Ken Schwaber formalizou a definição de Scrum e ajudou a implantá-lo no desenvolvimento de softwares em todo o mundo.

Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.

A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planejamento de um casamento.

Mesmo que idealizado para ser utilizado em gestão de projetos de desenvolvimento de software ele também pode ser usado para a gerência de equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.
[editar] Características

Scrum é um esqueleto de processo que contém grupos de práticas e papéis pré-definidos. Os principais papéis são:

1. o ScrumMaster, que mantém os processos (normalmente no lugar de um gerente de projeto)
2. o Proprietário do Produto, ou Product Owner, que representa os stakeholders e o negócio
3. a Equipe, ou Team, um grupo multifuncional com cerca de 7 pessoas e que fazem a análise, projeto, implementação, teste etc.

* Cada sprint é uma iteração que segue um ciclo (PDCA) e entrega incremento de software pronto.
* Um backlog é conjunto de requisitos, priorizado pelo Product Owner (responsável pelo ROI e por conhecer as necessidades do cliente);
* Há entrega de conjunto fixo de itens do backlog em série de interações curtas ou sprints;
* Breve reunião diária, ou daily scrum, em que cada participante fala sobre o progresso conseguido, o trabalho a ser realizado e/ou o que o impede de seguir avançando (também chamado de Standup Meeting ou Daily Meeting, já que os membros da equipe geralmente ficam em pé para não prolongar a reunião).
* Breve sessão de planejamento, na qual os itens do backlog para uma sprint (iteração) são definidos;
* Retrospectiva, na qual todos os membros da equipe refletem sobre a sprint passada.

O Scrum é facilitado por um Scrum Master, que tem como função primária remover qualquer impedimento à habilidade de uma equipe de entregar o objetivo do sprint. O Scrum Master não é o líder da equipe (já que as equipes são auto-organizadas), mas atua como um mediador entre a equipe e qualquer influência desestabilizadora. Outra função extremamente importante de um Scrum Master é o de assegurar que a equipe esteja utilizando corretamente as práticas de Scrum, motivando-os e mantendo o foco na meta da Sprint.

Scrum permite a criação de equipes auto-organizadas, encorajando a comunicação verbal entre todos os membros da equipe e entre todas as disciplinas que estão envolvidas no projeto.

Um princípio chave do Scrum é o reconhecimento de que desafios fundamentalmente empíricos não podem ser resolvidos com sucesso utilizando uma abordagem tradicional de “controle”. Assim, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando na maximização da habilidade da equipe de responder de forma ágil aos desafios emergentes.

Uma das grandes vantagens do Scrum, porém, é que não tem abordagem “receita de bolo” do gerenciamento de projetos exemplificado no Project Management Body of Knowledge ou PRINCE2, que tem como objetivos atingir qualidade através da aplicação de uma série de processos prescritos.
[editar] Product backlog e Sprint backlog

Um backlog é uma lista de itens priorizados a serem desenvolvidos para um software. O Product backlog é mantido pelo Product Owner e é uma lista de requisitos que tipicamente vêm do cliente. O Product Owner pode altera-lo a qualquer momento, desde que os itens alterados não estejam na sprint. O Sprint backlog é uma interpretação do Product backlog e contém tarefas concretas que serão realizadas durante o próximo sprint para implementar alguns dos itens principais no Product backlog. O Product backlog e o sprint backlog são, então, duas coisas totalmente diferentes, o primeiro contendo requisitos de alto-nível e o segundo contendo informações sobre como a equipe irá implementar os requisitos do produto.
[editar] Planejamento de sprint

Antes de todo sprint, o Product Owner, o Scrum Master e a Equipe decidem no que a equipe irá trabalhar durante o próximo sprint. O Product Owner mantém uma lista priorizada de itens de backlog, o backlog do produto, o que pode ser repriorizado durante o planejamento do sprint. A Equipe seleciona itens do topo do backlog do produto. Eles selecionam somente o quanto de trabalho eles podem executar para terminar. A Equipe então planeja a arquitetura e o design de como o backlog do produto pode ser implementado. Os itens do backlog do produto são então destrinchados em tarefas que se tornam o backlog do sprint.
[editar] Scrum simplificado

Muitas organizações têm sido resistentes às metodologias introduzidas em baixos níveis da organização. Porém, a adaptabilidade do Scrum permite que ele seja introduzido de forma invisível (“stealth”), usando os três passos:

* Agende uma demonstração do software com seu cliente em um mês a partir de agora;
* Como equipe, tome um mês para deixar o software pronto para uma demo, com funcionalidades prontas, não simplesmente telas;
* Na demonstração, obtenha feedback e use-o para guiar o seu próximo mês de trabalho de desenvolvimento.

[editar] Algumas características de Scrum

* Clientes se tornam parte da equipe de desenvolvimento (os clientes devem estar genuinamente interessados na saída);
* Entregas frequentes e intermediárias de funcionalidades 100% desenvolvidas;
* Planos frequentes de mitigação de riscos desenvolvidos pela equipe;
* Discussões diárias de status com a equipe;
* A discussão diária na qual cada membro da equipe responde às seguintes perguntas:
o O que fiz desde ontem?
o O que estou planejando fazer até amanhã?
o Existe algo me impedindo de atingir minha meta?
* Transparência no planejamento e desenvolvimento;
* Reuniões frequentes com os stakeholders (todos os envolvidos no processo) para monitorizar o progresso;
* Problemas não são ignorados e ninguém é penalizado por reconhecer ou descrever qualquer problema não visto;
* Locais e horas de trabalho devem ser energizadas, no sentido de que “trabalhar horas extras” não necessariamente significa “produzir mais”.

[editar] Agendando discussões diárias

Um momento bom para as discussões diárias é depois do almoço. Durante a manhã pode ser complicado. Estas discussões de status não demoram e uma forma eficiente de fazer estas reuniões seria ficar em pé e em frente a um quadro negro. Como as pessoas tendem a ficar cansadas depois do almoço, ter uma viva reunião em pé nessa hora permite que a equipe mantenha a sua energia alta. Como todos estiveram trabalhando durante a manhã, suas mentes estão focadas no trabalho e não em questões pessoais.
[editar] Scrum Solo

Scrum é baseado em pequenas equipes. Ele permite a comunicação entre os membros da equipe. Entretanto, há uma grande quantidade de softwares desenvolvidos por programadores solos. Um software sendo desenvolvido por um só programador pode ainda se beneficiar de alguns princípios do Scrum, como: um backlog de produto, um backlog de sprint, um sprint e uma retrospectiva de sprint. Scrum Solo é uma versão adaptada para uso de programadores solo.

Fonte: Colaboração Wikipedia http://pt.wikipedia.org/wiki/Scrum

Posted in Sem categoria

PHP: Validando url com função em PHP

O Blue Systems Labs disponibilizou nesta última semana no repositório open source uma função PHP bem simples para validação de url. No cenário que vemos no exemplo validamos url’s com os protocolos http / https / ftp / mms e rtmp

function urlValidation($url){
// check the protocol link
//$urlregex = “^(https?|ftp)\:\/\/”;
$urlregex = “^(https?|mms?|rtsp?|ftp)\:\/\/”;

// check user and password to htaccess conection
$urlregex .= “([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?”;

// check hotsname or ip address
$urlregex .= “[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*”;
//$urlregex .= “[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)+”; // http://x.x = minimum
//$urlregex .= “([a-z0-9+\$_-]+\.)*[a-z0-9+\$_-]{2,3}”; // http://x.xx(x) = minimum
//use only one of the above

// check port address
$urlregex .= “(\:[0-9]{2,5})?”;
// check path
$urlregex .= “(\/([a-z0-9+\$_-]\.?)+)*\/?”;
// check query
$urlregex .= “(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?”;
// check anchor
$urlregex .= “(#[a-z_.-][a-z0-9+\$_.-]*)?\$”;

// return results
if (eregi($urlregex, $url)){
return “1”;
}else{
return “0”;
}
}

Posted in Sem categoria

Wikileaks: Como é executado a operação Payback a favor do Wikileaks

Nos últimos dias companhias como Visa, Mastercard, Paypal e Amazon.com foram alvos dos ataques de DDOS ( distributed denial-of-service ) no qual possuem o objetivo de tirar estes sites do ar.

A campanha chamada de “Operation Payback” foi reportada por um hacker anônimo informando que o objetivo é enviar um alerta aos governos contra as medidas tomadas contra o fundador do Wikileaks Julian Assange.

O ataque foi tão bem planejado que qualquer usuário da internet que estiver indignado com as ações tomadas pode simplesmente “ajudar” os objetivos utilizando apenas sua banda de acesso a internet através da ferramenta desenvolvida chamada de LOIC ( Low Orbit lon Canon ). A ferramenta foi desenvolvida para stressar a rede destas companhias. A ferramenta foi desenvolvida em C# e pode ser baixada como código open source nos repositórios como Github e Sourceforge.

Veja abaixo a interface do aplicativo que está sendo usada em parte dos ataques
LOIC

Vamos ver o que isto vai dar!

Posted in Sem categoria