Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Helio Loureiro

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Skyrim, um dos melhores jogos que existem

12 de Maio de 2019, 12:02, por Home - 0sem comentários ainda

Estamos em maio de 2019 e até agora não escrevi nada por aqui.  Um pouco por falta de tempo, mas a verdade é que a preguiça e procrastinação estão tomando conta de mim.  Então resolvi fugir de assunto mais técnicos e falar de dragões, de Skyrim.

Já jogou Skyrim?  Não?  Recomendo fortemente.  É um jogo estilo RPG e longo, mas como bem legal de jogar e não cansativo.

Antes de falar do jogo em si, vou descrever um pouco das plataformas.  Plataformas?  Sim!  Adoro tanto o jogo que comprei pra consoles e pra PC.

Console versus PC

Quem ganha?  Não sei dize a resposta pois muito vai de gosto.  Mas comparando alguns quesitos que sempre entram na discussão.

Xbox 360

Esse foi o primeiro console que comprei o Skyrim.  Em termos de custo foi o que paguei mais caro.  Mas o motivo foi que comprei como 1 anos após o lançamento.  O valor já era mais baixo que o preço de lançamento, mas foi muito mais caro que nas outras plataformas pelo fator de idade do jogo.  Diferenças gráficas?  Não percebi muita coisa.  O jogo parece o mesmo.  Mudança no roteiro do jogo?  Não.  Tudo segue do mesmo jeito, inclusive onde achar mais dinheiro ou relíquias.  O único ponto que era chato no Xbox3 60 era a transição de telas quando entra ou sai de algum lugar como castelo ou caverna.  O tempo era tão longo que eu podia checar o twitter, postar alguma coisa e a tela ainda não tinha carregado.  Na época não me importei tanto mas hoje em dia é notável a lentidão pra carregar essas transições.  E travamentos!  Eventualmente o Xbox 360 dava uma travadinha pra nos lembrar que por mais que não fosse Windows, ainda era Microsoft.

Playstation 4

Durante uma promoção de Black Friday acabei comprando um Playstation 4.  Paguei 200 euros mas mesmo assim achei que foi caro demais pra um console que nada mais é que um upgrade do Playstation 3 (e sim, tenho também um Playstation 3, mas não tenho Skyrim nele).  O que jogar?  Sim!  Skyrim.  O valor já foi mais baixo que o que paguei pro Xbox 360 mas no pacote ainda vieram dois DLCs, o de Dawnguard que entram os vampiros no jogo e o Dragonborn que enfrenta outro como você, que absorve as almas dos dragões, mas tomou um rumo de vilão na vida (lado negro da força?).

Minha primeira decepção foram os gráficos.  Esperava um baita upgrade em relação ao Xbox 360 mas no fim ficou a mesma coisa.  Se sombreado ou efeito da água melhorou, eu realmente não percebi.  A jogabilidade ficou exatamente a mesma, com baús, dinheiro e prêmios todos basicamente nos mesmos lugares.  A transição de telas ficou bem mais rápida no Playstation 4 se comparado com Xbox 360.  

PC com Steam

Acabei fazendo um upgrade no meu PC e entre placa mãe nova, nova CPU, e mais memória, eu acabei adicionando um placa NVIDIA.  Ao contrário dos consoles, PC é preciso passar a configuração pois cada um monta o que quiser. Minha configuração de PC é a seguinte:

  • 32 GB de memória RAM (acho que DDR4)
  • 4 TB de HDD híbrido (64 GB em SSD) de 7200 RPM + 2 TB de HDD de 7200 RPM (em LVM)
  • Placa de vídeo NVIDIA GTX 1050ti (4 GB RAM DDR5)
  • CPU AMD FX-8300 (8 cores)
  • Fonte de 750 W
  • Ubuntu 18.04

Eu fiz o upgrade sem intenção de somente jogar mas de ter um PC pra fazer de tudo.  A grande mudança que aconteceu foi o lançamento o Proton da Steam, que, baseado em Wine, permite rodar os jogos de Windows em Linux.  Sobre o lançamento do Proton e estado atual da Steam sobre Linux com certeza não vou entrar em detalhes aqui, mas vale um outro artigo.

Agora descrevendo o Skyrim no PC.  Com as configurações no máximo, ultra, tive problema de "stuttering", da imagem quebrando, sem fluidez.  Mesmo diminuindo os efeitos pra médio não consegui resolver o problema.  De longe a versão pra PC é a que tem mais bugs em relação aos outros.  É bem comum atirar uma flecha em alguém na sua frente e... a flecha passar direto e acertar a parede.  Fora erros de renderização de tela.  Até agora não consigo entrar na água pois fica um borrão na tela e não vejo nada.  Poderia dizer que são bugs do proton mas pela quantidade de gente reclamando em fóruns na Internet e rodando Windows, parece ser bug do jogo mesmo.

Agora ponto positivo: a imagem ficou melhor.  Ah... ficou com um pouco mais de contraste, mas nada pra dizer que é muito melhor que console.  Mas a transição de cenas... ficou um espetáculo.  Entrar em um castelo leva coisa de 5 segundos.  Isso sim foi algo a se elogiar.

 



Aprendendo a programar através de desafios com o site osprogramadores

23 de Dezembro de 2018, 11:00, por Home - 0sem comentários ainda

 

Uma das grandes barreiras que encontramos ao iniciar o aprendizado de uma linguagem de programação é a falta de exercícios mais próximos da realidade.  Talvez nem todo mundo veja essa dificuldade, mas pra mim sempre foi assim.  Se não vejo uma forma de aplicar o que estou aprendendo, não consigo evoluir na linguangem.

Pegando como exemplo o livro da linguagem C escrito por Kerninghan e Ritchie: os exemplos são tão específicios que fica difícil abstrair as ideias e aprender como usar ponteiros de forma eficiente.

Para tentar superar essa barreira e ajudar a quem quiser aprender a programar sair da inércia e praticar surgiu o site "os programadores" ou http://osprogramadores.com.  É um site criado e mantido pelos programadores Bernardino Campos, Marcelo Pinheiro, Marco Paganini e Sergio Correia pra ajudar iniciantes com desafios que são enviados através de "pull requests" no GitHub, ou seja, além de programar ainda existe a oportunidade de aprender controle de versão com git.

Não existe exigência de regularidade: é possível enviar seu código quando estiver disponível pra escrever.  Também não existe uma linguagem só.  Os desafios podem ser resolvidos em qualquer linguagem, de C à nodejs.  E atualmente existe um sistema de scores pra ver quem está com maior pontuação de participação.

Eu só resolvi até agora os desafios 01 (que é criação e fork do repositório no github), 02 e 03 mas estou devendo de enviar meus pull requests.  Fiz em python, go e C mas ainda quero escrever também em perl.

E tem mais uma parte interessante: grupo no telegram!  Não bastando ter apenas o site, o grupo está lá pra ajudar com perguntas e respostas sobre os desafios e assuntos às vezes nem tão ligados à programação assim como por exemplo lubrificante pra ventoinha da cpu.  O link é esse: https://t.me/osprogramadores

Então se tem interesse em aprender a programar ou aprender uma nova linguagem, não deixe pra depois e participe.  É bem divertido e interessante.

 



Fontes de aplicativos em GTK no KDE

13 de Dezembro de 2018, 12:50, por Home - 0sem comentários ainda

Se existe algo que é um inferno em Linux é fonte.  Como uso KDE como desktop padrão com HiDPI em 196 pontos, os aplicativos em GTK teimam em usar outras fontes e com tamanhos diferentes.  É tipo uma maldição de Montezuma.   Um dia seu ambiente gráfico está tudo certo, e de repente fica tudo com cara de que você tem problemas de visão.

Fala sério...

E pior que os aplicativos escritos em GTK não respeitam o tamanho de fonte colocado no KDE.  Uma das maneiras que encontrei foi usando comandos diretamente vi gsettings pra verificar o que os aplicativos em GTK têm configurados:

helio@xps13:~$  gsettings get org.gnome.desktop.interface text-scaling-factor
helio@xps13:~$  gsettings get org.gnome.desktop.interface monospace-font-name
helio@xps13:~$  gsettings get org.gnome.desktop.interface document-font-name
helio@xps13:~$  gsettings get org.gnome.desktop.interface font-name
helio@xps13:~$  gsettings get org.gnome.desktop.wm.preferences titlebar-font

e depois trocar pra padrões mais confortáveis.

helio@xps13:~$  gsettings set org.gnome.desktop.interface text-scaling-factor 0.5
helio@xps13:~$  gsettings set org.gnome.desktop.interface monospace-font-name 'Ubuntu Mono 10'
helio@xps13:~$  gsettings set org.gnome.desktop.interface document-font-name 'Ubuntu 10'
helio@xps13:~$  gsettings set org.gnome.desktop.interface font-name 'Ubuntu 10'
helio@xps13:~$  gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Ubuntu Bold 10'

E às vezes ainda preciso forçar um re-cache das fontes usadas com o comando:

helio@xps13:~$  sudo fc-cache -f -v

mas o resultado final é satisfatório (em geral basta fechar e abrir os programas pra encontrar a interface com as fontes corrigidas).

 



Bloqueando Youtube no OpenWRT

28 de Novembro de 2018, 18:44, por Home - 0sem comentários ainda

Quem tem filho sabe que não é fácil impor limites.  Especialmente quanto uso de tablets ou smartphones ou até mesmo da TV.  Eu tenho em casa um problema com YouTube que acaba virando a atração principal com um conteúdo bem longe de ser didático.  Tentei até onde podia limitar no "YouTube é das 18 às 20" mas tenho fracassado miseravelmente.

Então resolvi apelar aos meus conhecimento computacionais e ao roteador por onde passa todo o tráfego da casa, e que roda open-wrt.

Criei um sistema básico em shell script que bloqueia tudo que é relacionado com YouTube em horários pré-determinados.  Não ficou bonito, mas funciona.

#! /bin/sh
# save it into /usr/lib/scripts/firewall.sh
# and add into scheduled tasks as
# */5 * * * * /usr/lib/scripts/firewall.sh

hour=`date +%H`
minute=`date +%M`

echo "hour=$hour"
echo "minute=$minute"

status_file=/tmp/firewall_status

blocked_pattern="youtubei.googleapis.com googlevideo.com ytimg-edge-static.l.google.com i.ytimg.com youtube-ui.l.google.com www.youtube.com googleapis.l.google.com youtubei.googleapis.com video-stats.l.google.com ytimg-edge-static.l.google.com"

enable_firewall() {
    echo "Enabling firewall"
    for chain in INPUT FORWARD OUTPUT
        do
        count=1
        for proto in tcp udp
            do
                for blocked in $blocked_pattern
                    do
                    echo iptables -I $chain $count -p $proto -m string --algo bm --string "$blocked" -j DROP
                    iptables -I $chain $count -p $proto -m string --algo bm --string "$blocked" -j DROP
                    count=`expr $count + 1`
                done
        done
        echo iptables -I $chain $count -p udp --sport 443 -j DROP
        iptables -I $chain $count -p udp --sport 443 -j DROP
        count=`expr $count + 1`
        echo iptables -I $chain $count -p udp --dport 443 -j DROP
        iptables -I $chain $count -p udp --dport 443 -j DROP
        count=`expr $count + 1`
    done
}

disable_firewall() {
    echo "Disabling firewall"
    for chain in INPUT FORWARD OUTPUT
        do
        for proto in tcp udp
            do
                for blocked in $blocked_pattern
                    do
                    echo iptables -D $chain -p $proto -m string --algo bm --string "$blocked" -j DROP
                    iptables -D $chain -p $proto -m string --algo bm --string "$blocked" -j DROP
                done
        done
        echo iptables -D $chain -p udp --sport 443 -j DROP
        iptables -D $chain -p udp --sport 443 -j DROP
        echo iptables -D $chain -p udp --dport 443 -j DROP
        iptables -D $chain -p udp --dport 443 -j DROP
    done
}

case $1 in
    start) enable_firewall
           echo -n "enabled" > $status_file
           exit 0;;
    stop) disable_firewall
          echo -n "disabled" > $status_file
          exit 0;;
esac

# possible status
# enabled|disabled

# start
# from 7:55-09:59
time_status=disabled
if [[ $hour -ge 7 && $hour -lt 10 ]]; then
    time_status=enabled
    if [[ $hour -eq 7 ]]; then
        if [[ $minute -lt 55 ]]; then
            time_status=disabled
        else
            time_status=enabled
        fi
    fi
fi

# from 12:00-17:59
if [[ $hour -ge 12 && $hour -lt 18 ]]; then
    time_status=enabled
fi
# from 20:00-21:59
if [[ $hour -ge 20 && $hour -lt 22 ]]; then
    time_status=enabled
fi
echo "time_status=$time_status"

current_status=
if [[ -f "$status_file" ]]; then
    current_status=`cat $status_file`
fi

if [[ $current_status = $time_status ]]; then
    echo "nothing to do"
else
    if [[ $time_status = "enabled" ]];then
        echo "loading firewall rules"
        enable_firewall
    fi
    if [[ $time_status = "disabled" ]];then
        echo "removing firewall rules"
        disable_firewall
    fi
    echo -n $time_status > $status_file
fi

Basta salvar o arquivo em /usr/lib/scripts/firewall.sh e adicionar à crontab do open-wrt.

O código fonte está também publicado no github: https://github.com/helioloureiro/homemadescripts/blob/master/openwrt-firewall-block-youtube.sh



Fim do encurtador eri.cx

8 de Novembro de 2018, 10:12, por Home - 0sem comentários ainda

Toda história tem um começo, meio e fim.  E esse momento chegou pro encurtador que criei em 14 de novembro de 2010.  Inspirado no miud.in criado pelo Eduardo Maçan e baseado no yourls.org, criei o encurtador pra desafiar o "status quo" da empresa e mostrar que as coisas podiam funcionar de forma fácil e simples.  A vida do encurtador foi legal com vários pontos altos mas ultimamente pude ver que eu era o único usuário costumaz do sistema.  De resto eram só SPAMs e mais SPAMs.  E custo.

O verdadeiro matador do encurtador foi custo.  De algo em torno de 10 dólares em 2010, o custo bateu 70 dólares agora pra renovar.  Alto demais pro pouco uso.  Então decidi juntar o eri.cx ao panteão dos heróis e mitos da Internet e encerrar seu uso.

Foi divertido enquanto durou.

Mas tem um outro lado positivo.  Registrei outro domínio dentro do .br com valor muuuuuito mais acessível: http://hl.eng.br 

É basicamente o eri.cx só que com outro domínio.  Então todas os links encurtados do passado funcionarão no novo.  E com um adicional: CAPTCHA!  Sim, menos SPAMs e mais links encurtados.  E que dure 8 anos do eri.cx ou até mais.  Longa vida ao http://hl.eng.br !

http://hl.eng.br



Tags deste artigo: #debian #debianbr #debianse #softwarelivre #freesoftware #linux #python