sexta-feira, 28 de dezembro de 2018

2019 - Ano Novo!

Mesmo que 2018 não tenha sido um bom ano, eu gostaria de agradecer:

- Aos meus amigos e colegas que me ajudaram, de uma forma ou de outra, a me recuperar de meu orgulho de ser um programador (muito obrigado!);

- De aprender, com todos, sobre o que é a vida e como vive-la;

- Da vida que, por mais que ela seja difícil algumas vezes, é essencial para nossa experiência;

- Da morte, pois devemos saber que tudo tem um fim;

- E da minha família, que esta em primeiro lugar, sempre;

Ah.. E de meus leitores, que sem eles, eu não teria ganhado US$19,55 depois de 8 anos:


Obs.: Putz, deveria ter sido Youtuber quando dava... (acho que blog saiu meio de moda) :P

[Atualização]

Para ajudar as pessoas: aqui esta o código-fonte em Java que gera números para apostar na Mega Sena:

import java.util.*;

public class MegaSena {

public static void main(String... args) throws Exception {
int max = 6;
if (args.length > 0) {
max = Integer.parseInt(args[0]);
if (max > 15) {
throw new Exception("Invalid number");
}
}
for (int i = 0; i < max; i++) {
System.out.print(Math.round(Math.random() * 59.0 + 1.0) + (i == (max - 1) ? "\n" : ","));
}
}
}

Depois de compilado, para executar basta usar o seguinte comando:
java MegaSena

Se quiser quinze (15) números, aí faça:
java MegaSena 15

[Fim da atualização]

Até mais e boa sorte!

sexta-feira, 21 de dezembro de 2018

Feliz Natal!


Sabe, este ano foi um ano difícil para mim... Não vou falar do que me aconteceu, mas foi algo profissional, que não desejo a ninguém que esteja na minha idade (a meia-idade).

Mas foi um ano de aprendizado: aprender a recomeçar, aprender que as coisas não são para sempre e, principalmente, que eu não agrado todo mundo por ser eu mesmo.

E, aprendi, neste último mês, o quanto a vida é preciosa demais para desperdiça-la.

Sim, como sempre, em Dezembro, mando um e-mail de Natal para as pessoas que conheci no trabalho, na escola e em outros lugares. (meio besta? é... mas, sei lá, eu acho legal)

E em um e-mail destes, um pessoal me respondeu de uma forma bem carinhosa e me fez refletir com o que cada um me escreveu. (sim, eu leio todos os e-mails... só não respondo a todos -- yep, preguiça mesmo :P)

Sei que, nesta vida corrida e agitada que todos nós vivemos, onde todo mundo pede tudo para ontem, queremos dar o melhor, principalmente, para mostrar o nosso trabalho e dedicação aos outros (ou para nós mesmos).

Mas será que, algumas vezes, não exageramos um pouco?

Será que precisamos disso para tornarmos felizes? Será que precisamos, realmente, ir para o exterior? Ganhar muito dinheiro? Comprar um carro de luxo?

Ou será que ter mais tempo para sua família e seus amigos seria melhor?

Hum... Cada um tem sua verdade, então, acho que para estas questões não haveria uma resposta certa... :P

Obs.: Não sou de esquerda, nem de direita, sou eu mesmo. :)
Obs. 2: E, sim, preciso de dinheiro, gosto de comprar coisas para mim e tenho que trabalhar. (só não tenho que trabalhar de cara fechada todo o dia :P)

Feliz Natal a todos!

Até mais!

sexta-feira, 14 de dezembro de 2018

Dicas de Programação: Parâmetros nomeados em C#

Sabe aquelas funções que tem n parâmetros que tem que passar, mas que você só quer passar uma e todas as outras são nulas (ou valores "default").

Então, dá para fazer isso em C#, com parâmetros nomeados na função. Por exemplo:

using System;

public class Program
{
  public static int soma(int i = 2, int j = 1) {
    return i + j;
  }

  public static void Main()
  {
    Console.WriteLine("Soma: " + soma(10));
    Console.WriteLine("Soma: " + soma(10, 5));
    Console.WriteLine("Soma: " + soma(i: 10));
    Console.WriteLine("Soma: " + soma(j: 10));
  }
}

Se você ver, ao passar um valor nomeado (seja "i" ou seja "j") a outra variável vai estar atribuído com o valor default (o que esta depois do igual, na função).

Legal, né? (Ah... Sim, isso funciona no Swift e no Kotlin)

Até mais!

terça-feira, 11 de dezembro de 2018

Dicas de Programação: Saindo de dois loops (for, for) em Java

Uma vez me perguntaram: como sair de dois loops dando um break?

Bem, eu sei que em Java é bem simples... É só dar um "labeling break":

public class Main {
    public static void main(String[] args) {
        saidaqui: for (int i = 0; i < Integer.MAX_VALUE; i++) {
            for (int j = 0; j < Integer.MAX_VALUE; j++) {
                System.out.println(i + ":" + j);
                if (j % 10 == 9) {                    
                    break saidaqui;
                }
            }
        }
    }
}

Com isso, quando o break executar, ele irá parar os dois loops (pois o label indica para ele sair do loop mais externo).

A mesma coisa pode ser feita em um loop/switch:

public class Main {
    public static void main(String[] args) {
        saidaqui: for (int i = 0; i < Integer.MAX_VALUE; i++) {            
            switch (i) {                
                case 9:
                System.out.println("Vai sair");
                if (true) {
                    break saidaqui;
                } 
                break;
                default:
                System.out.println("Index: " + i);
            }
        }
    }
}

Estranho, não?

Obs.: Acabei de ver que isso também funciona em Swift (iOS)!

import Foundation 

var i: Int = 0;
var j: Int = 0;
saidaqui: for i in 0...10 {
for j in 0...10 {
  print(String(format: "%d:%d", i, j));
if (j == 9) {                    
break saidaqui
}
}
}

Até mais!

Lembrando dos Natais Passados: Monark BMX

Bem... Eu nunca fui bom com "coisas com rodas", mas teve uma conversa com um pessoal sobre os tempos de criança e falou-se sobre uma tal de BMX Monark:


Me lembro de ter visto estas propagandas nas revistinhas da Turma da Mônica, quando ainda era publicada na Editora Abril...

Mas não me lembro desta bicicleta ter marcha, nem que dava para pular assim, quase no céu, sem se espatifar no asfalto (a bicicleta e quem estava nela...).

Quem diria que a gente era tão inocente de achar que essa era "a" bicicleta (tempo que a TV era o mais rápido meio de comunicação...).

Bons tempos! (eu acho... :P )

Até mais!

quinta-feira, 6 de dezembro de 2018

Tartarugas Ninjas na vida real

E se, as Tartarugas Ninjas fossem gente de verdade, como é que seria um treinamento entre eles? 

Hum... Sinceramente, acho que seria mais ou menos assim:


Aonde será que esta a April? :P

Até mais!