Ferramentas para produtividade
Nos ultimos meses busquei em ferramentas uma forma de apurar minha produtividade e melhora-la.
Este assunto é muito pessoal, mas pode ser que estas dicas ajudem alguns que estejam atrás do mesmo resultado.
Para anotar as tasks categorizada por projetos, eu utilizo o evernote, cada nova nota faz referência a um projeto que estou engajado e utilizo caixas de seleção para cada tarefa que necessito realizar e até mesmo visualizar as tarefas já realizadas. Alguns lembretes e imagens podem ser armazenadas aqui desde que eu tenha que tomar alguma decisão sobre, entretanto este fazem partes de novas notas separadas.
O evernote atualmente possuí um aplicativo para android que supri todas as necessidades acima.
Dropbox atualmente serve como um compartilhador de arquivos, em alguma empresas sofri restrições quanto a utilização do google docs, então gosto de compartilhar alguns documentos prioritários.
Este támbem possuí um aplicativo para o android que supera espectativas, muito prático.
Grindstone, esta ferramentsa fica local e ela basicamente controla todo o tempo gasto em cada tarefa, também separando por projetos, este software possibilita a geração de relatórios contabilizando o tempo de trabalho e até mesmo o tempo ocioso. Ele permite acompanhar o tempo por um relógio a parte que serve como contador para cada atividade que você esteja no momento. Ele captura sua ausência do computador pela ociosidade do mouse e pergunta se o tempo ocioso é para ser somado a atividade vigente ou descartar,para mim, o melhor software desta categoria.
Este programa é utilizado para gestão pessoal, entretanto existe versões pagas que possibilitam a gestão de um time inteiro.
http://www.epiforge.com/Grindstone/
Uma outra ferramenta que pra mim tem um foco um pouco diferente, mas pode ser enquadrado aqui.
XMind, esta ferramenta colabora com a geração de mapas mentais, facilitando na organização do pensamento e na construção de idéias,
ideal para inicio de projetos ou no planejamento da carreira, reformas de casa em fim, tudo que dependa de uma grande massa de informação.
Existe uma versão similar para o Android chamado: Mind Map Memo, recomendo a todos.
São estas ferramentas que venho utilizando e após longos meses a procura, hoje me sinto bem com estas, claro que com novas necessidades surgem novos procuras.
Obrigado.
Extesion Methods
Esse assunto é bem legal e simples, como verão abaixo. Uma classe de extensão, permite que gere novos métodos para as váriaveis do projeto como acontece em .ToString(), .ToUpper(). Pemitindo costumizar o codigo ao seu gosto, centralizando seus métodos em uma classe externa.
No exemplo abaixo vou fazer um método de extensão chamado CamelCase, que retornorá todo o texto incluso dentro das normas do CamelCase, para aqueles que não sabem:
CamelCase é a denominação em inglês para a prática de escrever palavras compostas ou frases, onde cada palavra é iniciada com Maiúsculas e unidas sem espaços. É um padrão largamente utilizado em diversas linguagens de programação, como Java, Ruby, PHP e Python, principalmente nas definições de Classes e Objetos. Pela sua associação com tecnologia, o marketing se apropriou dessa maneira de escrever, injetando certo ar de "tecnologia" nos produtos assim nomeados: iPod, GameCube, OpenOffice.org, StarCraft, dentre outros. (Fonte)
Vamos ao exemplo
public static class ExtensionMethods
{
public static String CamelCase(this String source)
{
string[] arr = source.Split(new char[] { ' ', ',', '.', '_', '-' });
String Retorno = string.Empty;
foreach (String item in arr)
{
Retorno += item.Substring(0, 1).ToUpper() + item.Substring(1, item.Length - 1).ToLower();
}
return Retorno;
}
}
Repare que o método pode estar em qualquer classe do tipo static , o compilador ao entepretar o This na entrada dos parâmetros, reconhecerá em seguida este método como de extensão, independentemente do nome da sua classe ou namespace. Para sanar esta possivel dúvida eu gerei uma classe dento do namespace da página Default.aspx.cs, e ambos foram reconhecidos como extensão.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
String Case = "toDo Mundo sabE quE o camEl case-tem a primeira_letra de cada nova palavra como_maíuscula e sem espaço";
int Numero = 12031202;
Response.Write(Case.CamelCase());
Response.Write(Numero.ParOuImpar());
}
}
}
public static class RobsonAlves
{
public static String ParOuImpar(this int Numero)
{
if (Numero % 2 == 0)
return "PAR";
else
return "IMPAR";
}
}
è isso ai, os métodos de extensão são bem legais e simples, vale agora ter a necessidade de usar mais esta.
Obrigado.
Gerando Novas Thread .Net (MultThreading)
Pois é, mas o que é uma Thread?
Segundo o Wikipedia: (Fonte)
Linha de execução (em inglês: Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. O suporte à thread é fornecido pelo próprio sistema operacional (SO), no caso da linha de execução ao nível do núcleo (em inglês:Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).
Uma linha de execução permite que o usuário de programa, por exemplo, utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações.
Em hardwares equipados com uma única CPU, cada linha de execução(Thread) é processada de forma aparentemente simultânea, pois a mudança entre uma linha e outra é feita de forma tão rápida que para o usuário isso está acontecendo paralelamente. Em hardwares com multiplos CPUs ou multi-cores as linhas de execução(Threads) podem ser realizadas realmente de forma simultânea;
Os sistemas que suportam apenas uma única linha de execução são chamados de monothread e aqueles sistemas que suportam múltiplas linhas de execução são chamados de multithread.
Então abaixo fiz um exemplo onde executo três Threads, três criadas dinâmicamente e a Main.
Veja que a última thread ela chama um método com parâmetros, existe a possibilidade de se passar qualquer tipo de parâmetro, neste caso eu preciso de uma entrada no método como Object e dentro dele eu converto para o tipo que me interessa. Portanta atente-se neste caso e pesquisam outras formas de fazer a passagem de parâmetro.
È um processo muito interessante que resulta em ganhos de desempenho tudo graças ao MultThread do .Net. Claro que outros assuntos então poderiam ser abordados como a Programação Paralela, foco da nova estrutura do Framework 4.0, portanto para quem sentiu interesse podem buscar informações sobre (PLINQ – Paralelism )
Segue Código:
public class Program
{
static void Main(string[] args)
{
//Thread novaThread = new Thread(EscrevaNovaThread);
//novaThread.Start();
//for (int i = 0; i < 100; i++)
//{
// Console.WriteLine("Main {0}", i);
// novaThread.Priority = ThreadPriority.Highest;
//}
Thread ThreadOne = new Thread(EscrevaNovaThread);
ThreadOne.Name = "ThreadOne";
ThreadOne.Start();
Thread ThreadTwo = new Thread(EscrevaNovaThread);
ThreadTwo.Name = "ThreadTwo";
ThreadTwo.Start();
Thread.CurrentThread.Name = "Main";
EscrevaNovaThread();
Thread ThreadThree = new Thread(new ParameterizedThreadStart(EscrevaThreadParametros));
ThreadThree.Start("Robson Alves");
Console.Read();
}
public static void EscrevaThreadParametros(object Nome)
{
foreach (var item in (string)Nome)
{
Console.Write(item.ToString());
Console.Read();
}
}
public static void EscrevaNovaThread()
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("Nova Thread is On {0} - Name of Thread - {1} ", i, Thread.CurrentThread.Name);
if (i == 50 && Thread.CurrentThread.Name == "ThreadOne")
{
System.Threading.Thread.CurrentThread.Abort();
}
}
Console.Read();
}
}
Obrigado!
Evento dos caras do DotNetArchictects em São Paulo
Amanhã será feito no Canindé, um workshop da microsoft, com o intuito de apresentar as novidades que estão por vir e outros que já vieram, estas que são os novos produtos da microsoft 2010, fica o destaque para uma apresentação sobre MVC, uma tecnologia que gostaria muito de aprender.
Estarei lá, das 09:00 ás 13:00 horas deste sabado, dia 20/03/2010,
e voltando a postar depois um longo tempo!
Visual Studio 2010 e .NET Framework 4.0
Palestras práticas e dinâmicas cobrindo as novas funcionalidades através de demos:
- Novidades da IDE Visual Studio 2010
- Novidades do .NET Framework 4.0
- ASP.NET Web Forms 4.0
- ASP.NET MVC
- Entity Framework 4.0
- TDD no Visual Studio 2010
- Diagramas de Arquitetura
- Linguagens e programação dinâmica
Teremos a presença dos palestrantes:
- Giovanni Bassi
- Victor Cavalcante
- Leandro Daniel
- Fabio Margarito
- Vinicius Quaiato
- Daniel Fonseca
Local:
IFSP - Instituto Federal de Educação, Ciência e Tecnologia - São Paulo
Rua Pedro Vicente, 625 - Canindé - São Paulo - SP – Brasil
(Rua do metrô armênia com acesso direto pela Av. Cruzeiro do Sul, ao lado do Shopping D.)
Experimentos do Google – Google Labs
O google Labs realmente é um site com novidades incriveis, muita coisa que você nem imaginava existir e lá está, outras coisas mais… Vale a pena ver o poder das aplicações web no mundo e o time de feras que criam esses experimentos. Abaixo listei alguns bem interessantes. Vejam e comentem.
Sky Map para Android
Para quem gosta do céu noturno, esse aplicativo móvel é capaz de transformar um smartphone com Android em uma janela de informações sobre estrelas e planetas.
Você deve possui um aparelho celular com o sistema operacional Android.
Google Fusion Tables
O Fusion Tables facilita a administração e visualização de grandes conjuntos de dados na nuvem, com recursos como filtros e a função para juntar tabelas múltiplas para comparações.
Para acessar o serviço é necessário possuir e-mail GMAIL.
link: http://tables.googlelabs.com/
Chrome Experiments
Já Chrome Experiments é um espaço para ver projetos de desenvolvedores que se divertem com JavaScript e o navegador Chrome, como o game Browser Ball. Você deve possuir o Browser Chrome ( ._. ), Safari e Firefox. Com o IE não Funcionará.
LInk:http://www.chromeexperiments.com/
Incrivel os efeitos 3D deste Experimento: http://mrdoob.com/projects/chromeexperiments/depth_of_field/
Faça a Gravidade derrubar o Google e depois arraste os obejtos: http://mrdoob.com/projects/chromeexperiments/google_gravity/
Google Audio Indexing
Com a tecnologia de reconhecimento de voz, esse serviço permite fazer pesquisas avançadas e encontrar arquivos multimídia pela identificação de uma palavra ou frase, todo o Lab está em Inglês.
Link: http://labs.google.com/gaudi
Google Code Search
Os serviços de buscas não param de evoluir: o Code Search permite realizar pesquisas por código fonte, com listas de comandos e o que cada um deles faz.
Link: http://www.google.com/codesearch
Uma das tecnologias mais interessantes, o Goggles é capaz de interpretar uma imagem capturada pelo celular e mostrar informações sobre o objeto, local ou texto da foto. Para celulares com o sistema operacional Android. Link: http://www.google.com/mobile/goggles/
Google Goggles
Browser Size
Considerando as diferentes resoluções de monitores, o Browser Size aplica uma máscara em qualquer site para mostrar quais regiões são mais visualizadas pelos internautas muito legal.
Link: http://browsersize.googlelabs.com/
Google Moderator
Todos querem uma oportunidade para expressar o que pensam. Esse é o conceito por trás do Moderator, que oferece grupos para votações, questões e comentários em massa.
Link: http://www.google.com/moderator/
Google Mars
Todos já ouviram falar no Google Earth ou no Google Maps. O Google Mars é exatamente a mesma coisa, só que ele mostra regiões de um local mais distante: o planeta Marte.
Link: http://www.google.com/mars/
Google Tranliteração
Assim como um tradutor, o google tranlisteração em tempo real traduz um texto totalmente digitado em inglês para uma linguagem escolhida, como por exemplo: Russo, Indu, Urdu?.
http://www.google.com/transliterate/
Google News Timeline
Google TimeLine mostra diversos assuntos uma linha do tempo, miuto interessante para ler noticias do dia e de diversos assuntos diferentes.
Google estreia opção ‘Nearby’ em sua ferramenta de busca na web
O Google anunciou nesta sexta-feira (26/2), em seu blog, que colocou no ar uma nova opção de filtro de busca, chamado Nearby.
Com a opção - disponível inicialmente apenas para a interface em inglês, mas que pode ser usada para buscas em português -, o internauta pode refinar os resultados obtidos, filtrando-os por localização (cidade e estado).
A opção Nearby surge na coluna à esquerda da tela, como alternativa a All Results, e fica disponível depois que se abre o painel Search Options. É possivel definir uma localização padrão e, depois dela, escolher o grau de aproximação - cidade, região ou Estado.
Para experimentar o filtro Nearby, basta mudar a interface de busca do Google, de português para inglês, clicando no link Configurações da Pesquisa, no canto superior direito da tela.
Com o recurso, lojas, bancos, restaurantes e outros estabelecimentos próximos do internauta aparecem no topo da lista de resultados.
O que não é NetWorking – Dicas
Networking é uma expressão que já entrou no nosso vocabulário corporativo. Mas muita gente ainda se confunde com o que realmente significa “cultivar uma rede de contatos”. Pra tentar deixar um pouco mais claro, desta vez vou pontuar o que NÃO é networking:
- Mandar currículo pra todo mundo: Esse erro é clássico. Tem gente que NUNCA cultiva contatos mas, quando quer mudar de emprego, dispara seu histórico profissional pra todo mundo que já viu na vida (ou até quem nunca viu). Talvez você até consiga um emprego, mas essa não é a melhor maneira de abrir as portas pra um novo contato profissional de longo prazo. Aliás, a maioria das pessoas ODEIA receber currículos sem necessidade.
- Puxar o saco dos outros: Ficar elogiando e concordando constantemente com o chefe ou outros colegas de trabalho não vai te levar a lugar algum. Além disso, a maioria dos bons profissionais NÃO GOSTA de ter funcionários que concordam com as suas idéias 100% das vezes (os chamados “yes-man”).
- Distribuir a maior quantidade de cartões possíveis: tem gente que vai pra um evento com a missão de distribuir, no mínimo, 100 cartões de visita. E depois, nunca mais fala com essas pessoas. Prefira a qualidade (fazer poucos contatos mais certeiros e com continuidade) do que a quantidade.
- Mandar um resumo SEMANAL dos excelentes resultados que você conseguiu no trabalho pra todos os seus contatos: Sim, networking pode até ser interpretado como uma ferramenta de “Marketing pessoal”, mas cuidado com o bom senso e com a frequência do seu “plano de mídia”.
- Pedir ajuda dos outros constantemente (afinal, é pra isso que servem os contato, não?): eu sugeriria usar mais a prática de OFERECER ajuda do que pedir. Conte com seus contatos apenas quando você realmente precisar.
- Mandar e-mails com notícias, correntes ou piadinhas pros seus colegas: Sim, isso vai manter o seu contato ativo. Mas pode gerar problemas: sua imagem pode virar a de um profissional desocupado, você pode ser adicionado à lista de bloqueio de seus colegas, etc. Mande o que for relevante, com moderação e bom senso.
- Adicionar todos os colegas de trabalho em redes sociais pessoais tipo Orkut, Facebook, etc: lembre-se de estabelecer um relacionamento PROFISSIONAL, o que não implica em um relacionamento PESSOAL.
Uma última dica: quer fazer contatos mas não sabe onde achar as pessoas certas?Procure em comunidades online de executivos como o ToTheTop ou o LinkedIn.
Fonte: http://hsm.updateordie.com/social-network/2010/02/o-que-nao-e-networking/