A revolução digital está acontecendo ou já aconteceu?
Posted by Rique Costa on August 22nd, 2009Para refletir
iThink, therefore I am from iThink on Vimeo.
Para refletir
iThink, therefore I am from iThink on Vimeo.
Em experiência reportadas por outros usuários foi necessário remover ou desabilitar o driver da placa de som no Windows NT/2000/2003/Vista/2008 para resolver o problema, mas nomalmente somente “realocando” o pool de memória usado pelo BDE na propriedade SHAREDMEMLOCATION já é
o suficiente.
Fala ai pessoALL!
Abaixo uso dois erros comuns em aplicações BDE, principalmente em SOs mais novos como Windows Vista e 2008 Server, para exemplificar a parametrização de memória do BDE.
Estava dando uma folheada no manual do meu MacBook, e na seção “Last, but no least” encontrei pequenas dicas sobre ergonomia, algo que muitas vezes os programadores não dão muito importância.
Ao usar o teclado e o trackpad, seus ombros devem estar relaxados. O seu braço e o antebraço devem formar um ângulo pouco maior que 90 graus, com o seu pulso e sua mão quase em uma linha reta.
Toque levemente o teclado ao digitar ou usar o trackpad e mantenha suas mãos e dedos relaxados. Evite rolar seus polegares sob as palmas das mãos.

Altere sempre a posição das mãos para evitar fatiga. Alguns usuários de computadores podem desenvolver desconfortos em suas mãos, pulsos ou braços após o uso intensivo sem intervalos.
Se começar a desenvolver uma dor crônica ou desconforto nas suas mãos, pulsos e ombros, consulte um médico especialista qualificado.
Antes de entrar para o mundo da informática, trabalhei por uns 3 anos em uma empresa de pagers (ou beepers). Eram 6 horas por dia de atendimento telefônico digitando as mensagens a serem enviadas. Lá aprendi sobre LER (Lesão por esforço repetitivo) e vi muita gente fazendo tratamento fisioterapêutico para curar tendinite.
Eu digitava com os pulsos suspensos, sem apoiá-los em lugar nenhum. No final do dia estava com dores nos tendões, nervos e ligamentos. Depois que comecei a apoiar os braços para digitar, minha produtividade e velocidade aumentou. Com isso, aliado a alongamentos periódicos (por exemplo, de uma em uma hora, sentado mesmo), minhas dores nos braços se foram.
Eu já vi muitos programadores escreverem código de uma forma tensa, sem relaxar os ombros e os braços, com os pulsos suspensos, sem apoio.
Os pulsos devem ficar apoiados na mesa ou (melhor ainda) em um apoio ergonômico de teclado próprio.
Hoje em dia, alguns programadores ficam até 12 horas por dia na frente do computador, escrevendo código sem parar. Se você não relaxar quando está digitando, estará muito propenso a uma lesão crônica.
Algumas empresas, como a Locaweb, fornecem um programa de ginástica laboral para seus funcionários. Isso ajuda e muito, mas não adianta terminar a sessão de ginástica e voltar a sentar na frente do computador sem postura e movimentar os pulsos quando deveria movimentar somente os dedos.
Uma observação rápida: bons programadores evitam o usar o mouse, substituindo suas funções por teclas de atalho. Além de aumentar sua produtividade, ajudam na sua saúde também.
Você precisa cuidar do seu corpo: coluna, ombros, braços, pulsos, mãos, dedos. Se eles não funcionarem bem, como você irá transformar as idéias que surgem em sua mente em código?
Post retiado do blog: http://prodis.pro.br/2009/05/09/cuide-de-suas-ferramentas-de-trabalho/
Durante os últimos dias muitas pessoas tem me perguntado, o que é twitter? Como funciona? É fácil saber o que é o twitter quando você já está nele, difícil é explicar para a pessoa que nunca esteve.
Acredito que essa curiosidade está na cabeça de muitas pessoas, pois, muitos programas de televisão, apresentadores, artistas, celebridades e etc, estão no twitter e divulgam isso a todo momento.
Bom, muitos de vocês já oviram a definição de que o twitter é um microblogging. Mas o que isso quer dizer?
Bom, a principio a definição de blog era de um diário virtual. Mas isso se modificou, hoje os blogs não são só pra falar de coisas pessoais. Existem muitos blogs técnicos (como este), blogs de notícias, políticas, filmes, fofoca etc. Entretanto para acompanhar o blog você sempre precisava acessá-lo, para verificar atualizações e novos posts. Daí surgiu os feeds, para agilizar o processo de verificar atualizações no blog.
Mas e o twiiter, onde entra nisso? Bom, se o twitter é um micro blogging, então ele tem de ser menor que o blog. O twitter é um site/aplicativo (possui uma API) que também pode ser considerado uma rede social, colaborativa. No twitter os posts são limitados a 140 caracteres, isso faz com que seja mto dinâmico, já que você não tem espaço pra enrrolação, tem que ser direto e objetivo.
“Twitter parece pátio de hospício, todos falam ao mesmo tempo e eventualmente alguém responde” por @saintbr
No orkut, por exemplo, você tem amigos. No twitter você tem seguidores. Somente os seus seguidores recebem seus posts, que são chamados de Tweets. Você também recebe posts de pessoas que citaram o seu nome. Qualquer pessoa pode seguir outra pessoa no twitter. Uma pessoa que não é cadastrada no twitter também pode ver seus posts, caso você não faça o bloqueio.
O twitter é muito popular nos EUA, e sua popularidade vem crescendo cada vez mais entre os usuários brasileiros. Para se ter uma idéia da velocidade de crescimento na internet, veja o comparativo abaixo:
Anos que que se levou para atingir uma audência de 50 milhoes de pessoas:
Rádio: 38 anos;
Televisão: 13 anos;
Internet: 4 anos;
Ipod: 3 anos;
Facebook: 2 anos;
Não encontrei nenhum dado oficial sobre o número de usuários do twitter, mas o site é relativamente novo, foi criado em 2006 e colocado em prática em 2007. Aliás, uma leitura inspiradora é a história de como o twitter foi criado.
Veja a popularidade do twitter no link da figura abaixo, retirado do site último segundo, do IG:

Clique aqui para ver o infográfico
Com a popularidade em alta, o twitter virou a menina dos olhos para as grandes empresas. Empresas como Submarino, Dell e Camiseteria tem faturado com essa nova mania.
Bom, agora que você já sabe o que é o twitter você pode se cadastrar e nos seguir:
http://www.twitter.com/riquecosta
http://www.twitter.com/betoAFL
Você sabe o que é um erro de stack overflow de looping eterno??? Confira a seguir na prática
O diretor de uma empresa disse à secretária:
– Vamos viajar para o exterior por uma semana, para um Seminário. Faça os preparativos da viagem!
A secretária faz uma chamada para o marido:
- Vou viajar para o exterior com o diretor por uma semana. Se cuida,querido.
O marido liga para a amante:
- Minha mulher vai viajar para o exterior por uma semana, então nós vamos poder passar a semana juntos, meu docinho!
A amante liga para um menino a quem dá aulas particulares:
- Tenho muito trabalho, na próxima semana não precisa vir às aulas.
O menino liga para o seu avô:
- Vô, na próxima semana não tenho aulas, a minha professora estará ocupada. Vamos passar a semana juntos?!
O avô (que é o diretor da empresa) diz à secretária:
- Vou passar a próxima semana com o meu neto, então não vou participar daquele Seminário. Pode cancelar a viagem.
A secretária liga para o marido:
- O diretor da empresa mudou de idéia e acabou cancelando a viagem.
O marido liga para a amante:
- Não poderemos passar a próxima semana juntos, a viagem da minha mulher foi cancelada.
A amante liga para o menino das aulas particulares:
- Mudança de planos: esta semana vamos ter aulas como normalmente.
O menino liga para o avô:
- Vô, a minha professora disse que esta semana tenho aulas. Desculpe-me, não vai dar para fazer-lhe companhia.
O avô diz novamente à sua secretária:
- Meu neto acabou de dizer que não vai poder ficar comigo essa semana. Continue com os preparativos da viagem ao seminário!
Entendeu o que é looping eterno e que provavelmente irá gerar um erro??? rs
Sábado dia (27/06/2009) fomos até Piracicaba para participar do MS Tech Day.
O evento tinha uma grade muito interessante quando nos inscrevemos, mas ao longo do tempo a grade foi sendo alterada, sem haver qualquer notificação no site. Ficamos sabendo das alterações somente na apresentação das palestras.
Algumas palestras foram alteradas, outras excluídas e outras simplesmente jogadas ao vento. Logo no começo do evento alguém pegou o microfone e já avisou que poderiam ocorrer falhas (neste momento eles ja tinham falhado mas ninguém sabia ainda).
Logo no credenciamento recebia-se a instrução para que quem fosse participar das palestras de desenvolvimento deveria ficar na sala vermelha. Se fosse participar das palestras sobre infra deveria ir pra sala verde.
Algumas pessoas da sala verde reclamaram bastante, pois as palestras da parte da manhã só aconteceram na sala Vermelha, e na sala verde recebiam um streaming de audio/video. Reclamaram pois a qualidade do video não era das melhores.
Depois da apresentação do modelo do evento alguns palestrantes tiveram que “rebolar” para entreter a platéia por aproximadamente 20 minutos, pois o coffe break (?) ainda não estava pronto.
Após o coffe break tivemos uma palestra sobre a plataforma Azure, o palestrante dominava o assunto e a palestra foi boa. Logo em seguida nos foi apresentado alguns métodos de desenvolvimento com o VS2010 para Azure.
Após essa palestra teve um intervalo para o almoço, quando voltamos já estava rolando a palestra sobre o Project. Essa palestra também foi legal, porém muito rápida! Muitos palestrantes reclamaram de tempo, porém o evento acabou bem antes da programação que estava no site.
Alguns palestrantes tiveram que “cobrir buracos”, já que alguns palestrantes convidados simplesmente não foram ao evento. A palestra sobre Ajax e JQuery não existiu. Teve uma pequena demonstração do VS2010 e uma introdução sobre o Team Foundation. Além disso ainda teve uma palestra de um fabricante de painéis para o VS.
Depois do coffe break da tarde o volume de pessoas caiu drasticamente.
Resumindo: O evento foi realmente muito mal organizado. Das palestras que aconteceram tivemos muitas ruins e só algumas boas, isso do ponto de vista de desenvolvimento. Os brindes sorteados foram excelentes! Sorteram um SQL Server 2008, VS 2005, Team Foundation, Camisetas, bonés entre outros…
Alguns comentários sobre o Evento:
“Muito desorganizado em relação a horários e grades.
Conteúdo das palestras muito fraco e superficial.
Deu a impressão que alguns palestrantes estavam brincando.”
Daniel Buona
“Organização fraca e conteúdo pobre na maioria das palestras”
Luiz Henrique Rocha e Costa
“Este foi o 1º evento MS Techday realizado pelos organizadores de Piracicaba, por esse motivo ocorreram diversos problemas neste âmbito, que prejudicaram muito as palestras de desenvolvimento.
Nas palestras de desenvolvimento faltaram 2 palestrantes, como eram 4 palestras, isso contribuiu muito para o evento deixar a desejar. Além disso a palestra sobre MS Project foi prejudicada pelo fato de não disponibilizarem acesso à internet.
O que foi valido, pelo que conversei com todos, foram as palestras de infra-estrutura (só o Rafa participou) e as palestras sobre Cloud Computing (computação nas nuvens) e Windows Azure (SO para gerenciamento do Cloud Computing), que participamos.
Com isso foi agregado conteúdo sobre novas tecnologias como Windows 7 e Server 2008, em infra, e desenvolvimento em Cloud Computing e a estrutura/funcionamento do Windows Azure.”
Beto Lima
Veja um video sobre uma palestra de infra (O pessoal disse que foi bem interessante) :
.
Você também estava lá? Deixe um comentários e conte-nos o que achou.
O Google liberou uma série de artigos do tipo howto explicando como aumentar a velocidade do seu website.
Acredito que fizeram isso para tentar “ensinar” a grande quantidade de pessoas que se utilizam de suas APIS.
Talvez isso já esteja indomodando, já que deve gerar uma lentidão absurda nos serviços do google.
Pensando (acredito eu) o google resolveu montar uma página de boas práticas para a programação de sites.
São diversos artigos como:
Clique aqui e veja todos os artigos!
Além desses artigos eu ainda recomendo o as extensões para o firefox: FireBug e também o WebDeveloper.
Aproveite!
Acesse já o site e vamos deixar a web mais rápida!
Li ontem um artigo chamado Polyglote Programming do Neal Ford, autor do “The Productive Programmer” comentado pelo Erich aqui no TecBlog.
Esse artigo, publicado numa antologia de artigos de funcionários da ThoughtWorks, fala sobre a necessidade de saber programar em várias linguagens não só para saber usar a linguagem mais apropriada para cada sistema mas também, dentro de um único sistema, saber usar a linguagem mais apropriada para a tarefa a ser resolvida.
De uma certa forma, o desenvolvimento de sistemas web já é poliglota, pois precisamos saber SQL, javascript, XML, HTML e alguma linguagem (Ruby, PHP, Java, etc.) para unir tudo. Mas a idéia do Neal Ford é ir além e usar as plataformas poliglotas (JVM, C#) para desenvolver cada pedaço de código com a linguagem mais apropriada para o que aquele pedaço de código precisa resolver.
Um exemplo que ele cita é a leitura de arquivos, que pode ser bastante trabalhosa em Java:
package com.nealford.polyglot.linenumbers;
import java.io.*;
import static java.lang.System.*;
public class LineNumbers {
public LineNumbers(String path) {
File file = new File(path);
LineNumberReader reader = null;
try {
reader = new LineNumberReader(new FileReader(file));
while (reader.ready()) {
out.println(reader.getLineNumber() + ":"
+ reader.readLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException ignored) {
}
}
}
public static void main(String[] args) {
new LineNumbers(args[0]);
}
}
Mas que em Groovy, que roda em JVM, ficaria:
def number=0
new File (args[0]).eachLine { line ->
number++
println "$number: $line"
}
Outro exemplo é um pedaço de código tirado do projeto Apache Commons para determinar em Java quando um string é vazio:
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
Usando Jruby teríamos:
class String
def blank?
empty? || strip.empty?
end
end
E os testes para comprovar que está tudo certo:
require "test/unit"
require "blankness"
class BlankTest < Test::Unit::TestCase
def test_blank
assert "".blank?
assert " ".blank?
assert nil.to_s.blank?
assert ! "x".blank?
end
end
Outra dica que ele dá é usar uma linguagem funcional (Haskell, Scala, F#) para resolver a dificuldade que linguagens imperativas como Java e C# tem em lidar com threading:
class SafeArray{
private final Object[] _arr;
private final int _begin;
private final int _len;
public SafeArray(Object[] arr, int len){
_arr = arr;
_begin = begin;
_len = len;
}
public Object at(int i){
if(i < 0 || i >= _len){
throw new ArrayIndexOutOfBoundsException(i);
}
return _arr[_begin + i];
}
public int getLength(){
return _len;
}
}
A mesma funcionalidade em Jaskell, a implementação de Haskell para JVM:
newSafeArray arr begin len = {
length = len;
at i = if i < begin || i >= len then
throw $ ArrayIndexOutOfBoundsException.new[i]
else
arr[begin + i];
}
E o último exemplo do artigo compara construção de testes com JMock, para testar a interação entre uma classe Order com uma classe Warehouse:
package com.nealford.conf.jmock.warehouse;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
public class OrderInteractionTester extends MockObjectTestCase {
private static String TALISKER = "Talisker" ;
public void testFillingRemovesInventoryIfInStock() {
//setup - data
Order order = new OrderImpl(TALISKER, 50);
Mock warehouseMock = new Mock(Warehouse.class);
//setup - expectations
warehouseMock.expects(once()).method("hasInventory" )
.with(eq(TALISKER),eq(50))
.will(returnValue(true));
warehouseMock.expects(once()).method("remove" )
.with(eq(TALISKER), eq(50))
.after("hasInventory" );
//exercise
order.fill((Warehouse) warehouseMock.proxy());
//verify
warehouseMock.verify();
assertTrue(order.isFilled());
}
}
E com JRuby:
require 'test/unit'
require 'rubygems'
require 'mocha'
require "java"
require "Warehouse.jar"
%w(OrderImpl Order Warehouse WarehouseImpl).each { |f|
include_class "com.nealford.conf.jmock.warehouse.#{f}"
}
class OrderInteractionTest < Test::Unit::TestCase
TALISKER = "Talisker"
def test_filling_removes_inventory_if_in_stock
order = OrderImpl.new(TALISKER, 50)
warehouse = Warehouse.new
warehouse.stubs(:hasInventory).with(TALISKER, 50).returns(true)
warehouse.stubs(:remove).with(TALISKER, 50)
order.fill(warehouse)
assert order.is_filled
end
end
Para terminar esse post, aqui vai um link para um vídeo do Neal Ford explicando o conceito de programação poliglota:
http://www.nofluffjuststuff.com/media.jsp?id=28
*Post retirado do blog Tecnologia da Internet da locaweb
Rediscover the web
Fique ligado no lançamento…
Já algum tempo que eu estava tendo esse problema, ao acessar uma base do SQL Server 2000 com o SQL Server Management 2008 dava este problema:
Falha ao recuperar dados para essa solicitação. (Microsoft.SqlServer.Management.Sdk.Sfc)
Server user ‘xyz’ is not a valid user in database ‘e-Pocurement_A’. (Microsoft SQL Server, Erro: 916)
Ocorreu uma exceção ao executar um lote ou uma instrução Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
The server principal “xz” is not able to access the database “kk” under the current security context. (.Net SqlClient Data Provider)
A Microsoft confirma o erro para outros produtos além do SQL Server Management 2008 listados abaixo
Outros softwares afetados:
PS: Este problema também pode acontecer se não for um usuário do grupo Sysadmins.
Para solucionar o problema:
Agora tudo deverá voltar ao normal
Recent Comments