terça-feira, 5 de abril de 2011

Afinal o que é Ciência da Computação?


Afinal o que é Ciência da Computação?

Hoje, vou dar uma dica e não dizer realmente o que é Ciência da Computação ou o seu significado. Para as pessoas que desejam cursar o curso de Ciência da Computação, ou até mesmo aquelas que estão em dúvida se faz ou não um curso de graduação na área de informatica, meu objetivo(aqui) é falar sobre ciência da computação, afinal é o que eu faço e que graças à Deus, termino este ano. (2011)

Para as pessoas que estão mal informadas sobre a grade do curso, ou até mesmo aquelas pessoas que pensam que vão entrar no curso, e aprender a mexer no Word, Excel, formatar máquinas, instalar Linux, estão TOTALMENTE enganadas, como o próprio nome do curso diz, Ciência!!!. Você meu chapa, será um cientista, e para isto acontecer, você irá aprender muita matemática, física, álgebra, resumindo tudo o que envolve matemática, você irá aprender, arquitetura de computação, que envolve desde a criação e funcionamento do hardware desde o ano 1900 (e bolinhas) até as tecnologias mais atuais, e é claro você irá aprender, o porque uma coisa é melhor do que a outra, porque aquilo é tem um preço mais acessível e uma capacidade maior de armazenamento, e outra contém a metade de armazenamento e é extremamente mais cara, etc.

Faço este post porque acredito que é comum, toda a faculdade que possui este curso, possuir uma certa dificuldade de manter seus alunos até o final do curso. Todos os anos formam turmas com muitos alunos, no meu caso 40 pessoas em uma sala (1 semestre), e logo no segundo semestre, a quantidade cair para 25 pessoas, e o motivo mais comum (obvio) é porque muitas das pessoas que entram neste curso, imaginam ou sei-lá, pensam que vão aprender Word, Excel, mas logo de cara, começam na terrível matemática (Cálculo I, Geometria Analítica, (velhos tempos, eee saudade!).

Então, você aí!. Que pensa que vai aprender "informática" em Ciência da Computação, esta totalmente enganado, para dar uma "luz", a grade de Ciência da computação costuma a ser mais ou menos esta:

1. Cálculo I
2. Geometria Analitica
3. Metodologia Ciêntifica
4. Inglês para computação
5. Física Experimental
6. Cálculo II
7. Álgebra Linear
8. Algoritmo e Introdução de Liguagem de programação
9. Estrutura de Dados I
10. Estrutura de Dados II
11. Circuitos Digitais
12. Sistemas Digitais
13. Assembly
14. Engenharia de Software
15. Banco de Dados I
16. Banco de Dados II
17. Paradigmas de Programação
18. Interface Homem Máquina

E por aí vai, são muitas matérias não citei todas, ou seja, você não irá aprender formatar micros, se quiser aprender isto, aconselho procurar uma instituição como a Microlins ou Microcamp, que são conceitudas nestes cursos extracurriculares.

O objetivo deste post, não é criticar quem já começou e parou o curso, mas sim alertar, afinal se você começar estudar e parar, estará perdendo o seu tempo e também o seu dinheiro!

quinta-feira, 31 de março de 2011

Quer ganhar um IPad2?

Olá galera,

Dica rápida, para quem estiver querendo um IPad 2, o site de tecnologia macmagazine.com.br está fazendo um sorteio via twitter, e o felizardo que for sorteado irá ganhar "di grátis" um IPad2.

Para concorrer acesse o link abaixo e saiba mais!.

http://macmagazine.com.br/2011/03/30/agora-e-pra-valer-quer-ganhar-um-ipad-2/

Um abraço!

quarta-feira, 23 de março de 2011

Enviando e-mail pelo VB.NET

Olá pessoal,

Hoje vou postar como enviar e-mail através do VB.NET, o código esta comentado, então não será necessário explicar.

Antes de começar, no cabeçalho do código, onde ficam os Imports, coloque o seguinte importe para que nosso método de envio de e-mail possa funcionar.

Imports System.Net.Mail

Agora sim, o método para enviar o e-mail é este, logo abaixo:


   Protected Sub send()
        Dim objNovoEmail As New MailMessage
        Dim objSmtp As New SmtpClient

        'Adicionando o e-mail do remetente
        objNovoEmail.From = New MailAddress(txtEmailRemetente.Text)

        'Adicionando o e-mail do destinatário
        objNovoEmail.To.Add(New MailAddress(txtEmailDestinatario.Text))

        'Adiciona a prioridade do e-mail
        objNovoEmail.Priority = MailPriority.High

        'Adicionando o assunto ao atributo assunto
        objNovoEmail.Subject = txtAssunto.Text

        'Formato de e-mail em Html?
        objNovoEmail.IsBodyHtml = True

        'Inserir o corpo da mensagem no atributo Body
        objNovoEmail.Body = txtMensagem.Text

        'Configuração de tipagem da linguagem, para não aparecer caracteres estranhos na mensagem
        objNovoEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
        objNovoEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")

        'Adicionando os campos dos atributos da configuração do e-mail
        'parametros necessários para envio de e-mail.


        'Configuração do IP do servidor SMTP
        'Por exemplo: smtp.mail.yahoo.com.br (EXEMPLO)
        objSmtp.Host = txtServidorSmtp.Text
        objSmtp.Port = txtPorta.Text

        'Caso queira definir um tempo do timeout 
        'objSmtp.Timeout = 10


        'Define se deve usar autenticação ou não
        If txtUsuario.Text <> String.Empty And txtSenha.Text <> String.Empty Then
            objSmtp.Credentials = New System.Net.NetworkCredential(txtUsuario.Text, txtSenha.Text)
        End If

        If txtUsuario.Text = String.Empty Then
            objSmtp.UseDefaultCredentials = False
        End If

       'Habilitar SSL ou não? 
        objSmtp.EnableSsl = chkSSL.CheckState

        'Enviando a mensagem por e-mail
        Try
            objSmtp.Send(objNovoEmail)
        Catch ex As Exception
            Throw ex
        Finally
            objNovoEmail.Dispose()
        End Try
        objNovoEmail.Dispose()
    End Sub


Obs¹.: Atente-se que em alguns trechos de código os atributos estão recebendo alguns TextBox, que são do meu form (formulário visual).


No seu formulário (form) deverá ter um botão de enviar, que deverá colocar o seguinte código para chamar o método send().

Obs².: Atente-se que o código que deverá ser inserido no seu botão começa à partir do comando Try até o End Try.


Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
        Try
            send()
            MessageBox.Show("E-mail enviado com sucesso!", "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MessageBox.Show("Falha!" & ex.ToString, "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
   End Sub

Logo abaixo, um screen do projeto que fiz como teste, caso tenham dúvidas utilizem o campo para comentários que tentarei responder à todos da melhor forma possível.



Um abraço e bom estudo.

quarta-feira, 29 de dezembro de 2010

Populando um ComboBox VB.NET

Olá pessoas,

Hoje estou aqui para mostrar como se popula um ComboBox no VB.NET, vamos lá!

Considerando que você já tenha criado seu projeto, e já tenha adicionado o componente em sua aplicação, no meu caso meu combobox foi nomeado para comboDisco.


Dentro do código do form, criei uma função que irá popular todo o combobox com as informações de um retorno de um select no SQL Server.

A função é esta:


Protected Function carregarComboDisco()
        Dim objDisco As New Disco
        Dim dt As DataTable
        Try
'Após instanciar a classe Disco para um novo objeto, meu objeto terá todas as funções da classe instanciada, por medida de segurança sempre coloco meus código dentro de um Try, assim caso aconteça algum erro, cairá diretamente no Catch, onde, irá mostrar a mensagem de erro através do MessageBox.Show.
            dt = objDisco.listarDiscos
            Me.comboDisco.ValueMember = Nothing
            Me.comboDisco.DisplayMember = Nothing
            Me.comboDisco.DataSource = Nothing

            Me.comboDisco.DataSource = dt
'O DisplayMember irá mostar o conteúdo do do campo "disco", ou seja, será o que esta escrito na tabela do banco de dados
            Me.comboDisco.DisplayMember = "disco"
'O ValueMember é minha chave primária da tabela do banco de dados, ou seja, minha chave primária na tabela de discos é o "codigo_disco"
            Me.comboDisco.ValueMember = "codigo_disco"
        Catch ex As Exception
            MessageBox.Show("Falha ao carregar modelos de discos. " & ex.ToString, "CMN Controle", Windows.Forms.MessageBoxButtons.OK, Windows.Forms.MessageBoxIcon.Error)
        End Try
        Return comboDisco
    End Function


Esta função acima é a que irá popular as informações no combobox, mas sem a classe e seu método de ListarDiscos, ela não fará nada, ou melhor, fará, irá exibir uma mensagem de erro :-D.

Abaixo irei colocar o método de select no banco de dados.


Public Function listarDiscos() As DataTable
        Dim comando As New SqlCommand
        Dim da As New SqlDataAdapter
        Dim ds As New DataSet
'Aqui estou abrindo a conexão como banco de dados, no seu caso, você  terá que usar a sua classe de conexão.
        comando.Connection = Me.conn
'Como estou executando um comando e não uma procedure, o CommandType, deve ser o Text, caso contrario, é só setar para Procedure
       comando.CommandType = CommandType.Text
'Meu comando é apenas um select em uma tabela qualquer, para ficar mais, vamos dizer "bonito", coloquei um order by para retornar, neste caso, em ordem alfabética.
        comando.CommandText = "select * from t_disco order by disco"

        da.SelectCommand = comando
        Try
'Coloque o nome de sua tabela dentro do "", no meu caso, minha tabela é a "t_disco" que irá retornar o resultado dentro de um DataSet
            da.Fill(ds, "t_disco")
        Catch ex As Exception
'Caso aconteça algum erro, por qualquer motivo, será gerada uma nova Exception, que irá retornar diretamente para o Catch do form, exibindo a mensagem que você colocar dentro do " ".
            Throw New Exception("Falha ao carregar disco")
        End Try
' Para finalizar, se acaso tudo ocorreu bem, os resultados serão retornados para o form.
        Return ds.Tables("t_disco")
    End Function


Para testar, no load do Windows form, você terá que colocar a função para ser carregada, e pronto! Simples assim. Não sei se deixei bem claro como fazer, mas qualquer dúvida é só comentar.

Quero agradecer a uma grande pessoa, que normalmente chamo de Mestre, pois o cara manja muito, e é o grande responsável por eu saber este pouquinho de VB.NET.

O mestre é o grande José Bressan Júnior, muito obrigado!

Pessoal é isto aí! Até mais e Feliz Ano Novo para todos!

Um abraço.

sábado, 13 de novembro de 2010

Vídeo do Madogg

Fala, Pessoal!

Como estão?

Desculpe por não postar com tanta freqüência como eu gostaria, mas é que o trabalho e a faculdade não me permitem fazer isto, além do mais, quase todas as dicas e tutoriais hoje em dia é difícil ser exclusiva, pois existem inúmeros sites em todo o mundo que postam milhares de dicas e tutoriais todo os os dias.

Mas hoje venho para divulgar um vídeo que achei interessante é que do nosso "mestre" Madogg comentando sobre a importância do software livre, ele também fala sobre o Brasil se referindo a Caixa Econômica Federal, eles utilizam o software livre para suas soluções tecnológicas, entre muitas coisas, recomendo à vocês assistirem o vídeo. segue abaixo.

Abraços!


sexta-feira, 28 de maio de 2010

Configurando os botões da janela no Ubuntu 10.04

Dica rápida,

Para quem começou usar a nova versão do Ubuntu (Ubuntu 10.04 LTS (Lucid Lynx)) percebeu é claro que os botões de Fechar, Maximizar e Minimizar está do lado esquerdo.

Porém como nem todo mundo gostou, segue abaixo os passos para alterar para o canto direito ou vice-e-versa:

Alterando para direita:

Pressione Alt+F2 do teclado para abriro "Executar"  e digite "gconf-editor" navegue no explorer do Editor de configurações, neste caminho: "apps -> metacity -> general"  agora clique duas vezes em "button_layout" e altere o conteúdo para "menu:minimize,maximize,close"

Clique em OK, e pronto.

Alterando para esquerda:

Só alterar o conteúdo do "button_layout" para "close,minimize,maximize:menu"

Feito isto é clicar em OK, e já verá a alteração instantaneamente.

[]'s