Delphi e NASA

David I, que andava meio sumido (pelo menos do seu blog), voltou a postar, e trouxe uma notícia curiosa e interessante:

It was great to visit NASA/Johnson Space Center in Houston while the Space Shuttle (STS 119) was docked wth the International Space Station (…)  Just let me say that high speed, native code is critical to some of the systems on the Shuttle and ISS, and Delphi and C++Builder are key parts of some of the critical systems.

Ou seja, a NASA está usando o Delphi e o CBuilder para desenvolver programas usados em sistemas críticos do ônibus espacial e da estação espacial.

Share and Enjoy !

Ressuscitando o Apple II?

Me deparei com uma notícia no site Engadget sobre um computador de 8 bits sendo vendido na China e na Índia por USD 49. A surpresa foi ver as características técnicas do mesmo: CPU 6502 de 1Mhz, a mesma usada no Apple II 😉 Apesar de não estar muito detalhado, de cara podemos citar como diferença para a versão da maçã, o fato de ter por padrão uma entrada para “cartucho” (no melhor estilo do velho “Atari”), joysticks, mouse, além de som estéreo.

Mas será que nos tempos de iMac, Netbooks, PlayStations e Wii, alguém ainda tem interesse em comprar um negócio desses?

Share and Enjoy !

NF-e… situações estranhas…

Como sempre soubemos, o governo não gosta de facilitar nossa vida, e sempre que tem a oportunidade de fazê-lo, acaba fazendo com qualidade questionável. Vejamos o exemplo que está deixando muitos programadores loucos: NF-e (Nota Fiscal Eletrônica).

Entre outras exigências, o XML que é enviado para o governo autorizar a emissão da nota, deve conter o nome da cidade e o código do município, segundo cadastro do IBGE. Nem bem acabei de normalizar as informações do meu BD com os dados obtidos do IBGE, e já me deparei com situações que vão de curiosas até ridículas. Vejamos o primeiro exemplo:

Mogi-Mirim: é uma cidade do interior de São Paulo. No entanto, no cadastro do IBGE, o nome se escreve com “j”, ou seja, Moji-Mirim. No entanto, tirando o IBGE, todo o resto da população e organizações escreve o nome com “g”. Olhe o site da prefeitura da cidade, os Correios, etc. e você verá que está tudo com “g”. E aí, quem está certo?

Guará: Na base do IBGE, Guará é um município do estado de São Paulo. No entanto, fui questionado por um cliente que precisava emitir uma NF para Guará no Distrito Federal, e adivinhe?! Na base do IBGE não existe Guará no DF. Alias, DF no IBGE é somente Brasília. Ou seja, nenhuma cidade satélite de Brasília é considerada município pelo IBGE! Indo mais além, Guará-DF, nos Correios, é considerado cidade, e tem até CEP próprio! Ou seja, se você quer emitir uma NF-e para Guará-DF, não vai conseguir (o manual de integração diz que, nesse caso, a cidade a ser usada é Brasília). Mas e se você mandar uma correspondência para Guará usando Brasília como cidade, o Correio vai chiar?

Em suma, a falta de padrão ainda impera nos diversos orgãos deste país. E aí nós, desenvolvedores, ficamos numa sinuca de bico.

Só pra constar, minha instrução para o cliente foi a de colocar Guará como Bairro, e cidade Brasília. Mas aí fica ainda mais estranho, pois Guará-DF tem dois Bairros, Guará I e Guará II… zzzzZZZ.

Share and Enjoy !

Tecnologia “sexto-sentido”

O vídeo abaixo mostra uma tecnologia muito legal que está sendo desenvolvida. Apesar de estar em estágio inicial de desenvolvimento, já dá pra imaginar os inúmeros usos que ela terá, e como poderia ajudar as pessoas em tarefas do dia-a-dia. Audio em inglês, mas se você tem um pouco de conhecimento da língua conseguirá entender perfeitamente.

Share and Enjoy !

Tabela de estados e códigos do IBGE

Abaixo segue o script de criação de uma tabela de estados (para Firebird 2.1), bem como os inserts com todos os estados do Brasil, incluindo o código do IBGE. Se você pretende implementar NF-e nos seus sistemas, provavelmente vai achar útil.

CREATE TABLE ESTADOS (
    SIGLA CHAR(2) CHARACTER SET WIN1252 NOT NULL COLLATE WIN_PTBR,
    CODIGO SMALLINT NOT NULL,
    NOME VARCHAR(30) CHARACTER SET WIN1252 NOT NULL COLLATE WIN_PTBR);

alter table ESTADOS
add constraint PK_ESTADOS
primary key (SIGLA);

alter table ESTADOS
add constraint UNQ_ESTADOS_CODIGO
unique (CODIGO);

commit;

INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (12,'AC','Acre');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (27,'AL','Alagoas');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (13,'AM','Amazonas');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (16,'AP','Amapá');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (29,'BA','Bahia');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (23,'CE','Ceará');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (53,'DF','Distrito Federal');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (32,'ES','Espírito Santo');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (52,'GO','Goiás');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (21,'MA','Maranhão');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (31,'MG','Minas Gerais');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (50,'MS','Mato Grosso do Sul');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (51,'MT','Mato Grosso');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (15,'PA','Pará');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (25,'PB','Paraíba');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (26,'PE','Pernambuco');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (22,'PI','Piauí');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (41,'PR','Paraná');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (33,'RJ','Rio de Janeiro');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (24,'RN','Rio Grande do Norte');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (11,'RO','Rondônia');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (14,'RR','Roraima');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (43,'RS','Rio Grande do Sul');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (42,'SC','Santa Catarina');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (28,'SE','Sergipe');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (35,'SP','São Paulo');
INSERT INTO ESTADOS (CODIGO,SIGLA,NOME) VALUES (17,'TO','Tocantis');

commit;

Provavelmente vai precisar também de uma tabela com os municípios Brasileiros e seus respectivos códigos. Neste caso, sugiro que dê uma olhada neste post.

Os dados foram retirados do site da SPED Fiscal

Share and Enjoy !

Cinco fatos que você não sabia sobre o Delphi

O site мебели софияAbout Delphi publicou um artigo muito interessante, sobre 5 coisas que a maioria dos programadores desconhecem sobre o Delphi. Bom, alguns talvez até conheçam, mas a grande maioria provavelmente não usa.

Você sabia, por exemplo, que podemos criar uma classe interceptora para um classe já existente (no exemplo deles, a TButton) e estender os recursos da classe original sem precisar criar uma nova classe com um nome diferente?

Não deixe de dar uma olhada nos cinco itens listados, pois com certeza, algum dos recursos apresentados poderá lhe poupar muitas horas de programação em algum momento futuro.

Share and Enjoy !

1 11 12 13 14 15 30