Tumgik
jiloh-blog · 10 years
Text
O Paradoxo Apple
Eu adquiri recentemente um novo notebook e resolvi voltar com o OS X para o antigo --um MacBook 4.1 que estava com Linux. Esse Mac antigo veio com o Leopard --OS X 10.5-- e, ao tentar instalar programas nele, descobri que vários exigiam o Snow Leopard --10.6-- ou superior.
Como a versão mais nova do OS X, Mavericks --10.9--, é gratuita, acreditei que migrar para o Snow seria de graça também. Ledo engano. A Apple cobra R$ 69,00 pelo 10.6 e nada para atualizar para as versões mais novas, o que eu considerei uma idiotice, pois não faz sentido comprar um sistema operacional obsoleto, sendo que as versões mais novas são gratuitas.
Essa política me fez buscar no mercado alternativo pelo Snow Leopard e o Pirate Bay atendeu minhas preces. Tendo a imagem .dmg do novo sistema, era necessário coloca-lo numa mídia "bootável" e instala-la no Mac.
Para instalar a imagem num pendrive, basta plugar o dispositivo no computador --eu usei um de 8 GB-- e abrir o Disk Utility. Nele, deve-se selecionar o pendrive, acessar a aba Partition, configurar para 1 partição, com formato Mac OS Extended (Journaled). Após aplicar a formatação, deve-se acessar a aba Restore do Disk Utility, indicar a imagem do Snow no campo Source, o pendrive no campo Destiny --pode arrastar os ícones para os campos-- e aplicar. O processo leva algum tempo e ao final tem-se um pendrive "bootável" com o Snow Leopard.
Para instalar o sistema, deve-se reiniciar a máquina com o pendrive plugado e a tecla option (alt) pressionada. Deverá ser aberto um diálogo para escolha do dispositivo de boot, onde deve-se escolher o pendrive. Após isso, basta seguir os passos normais de instalação do Snow Leopard. Uma dica adicional é que, caso se deseje instalar um sistema "limpo", sem resquícios do sistema anterior, deve-se apagar o disco durante a instalação do novo sistema, usando o Disk Utility.
Mais informações sobre esse procedimento podem ser encontradas aqui e aqui.
Quero deixar claro que sou contra a pirataria. Contudo, políticas como essa da Apple são intragáveis. Obrigar usuários a comprar um software obsoleto, para ter acesso a versões atuais gratuitas, é uma prática sem sentido. Espero que a Apple repense suas práticas e permita que proprietários de sistemas menores que 10.6 também tenham acesso a upgrades gratuitos.
Paz e amor.
P.S.: Um software pirata pode ter uma série de malwares que podem comprometer a segurança da informação. Pelo uso que destinei para o meu Mac antigo, vale a pena correr o risco, mas cada um deve avaliar os problemas que isso pode acarretar.
2 notes · View notes
jiloh-blog · 10 years
Video
youtube
According to this plausible theory, you can steal pin codes using a kind of thermal camera. Very interesting.
1 note · View note
jiloh-blog · 10 years
Text
MacBook Air e OS X Mavericks: Primeiras Impressões
Quase 7 anos depois, meu MacBook não estava mais dando conta do recado; com um Core 2 Duo e 2 GB de RAM, ele sofria de retardo e Alzheimer --uma lástima. O cara foi guerreiro: era realmente meu all-in-one, fazendo as vezes de player de música e de vídeo, editor de textos, compilador, gerenciador de arquivos, editor de imagens, host de VMs etc. e tal. Mesmo depois desse uso pesado, a bateria ainda durava uma média de 1 hora. Isso me fez optar novamente pela Apple na minha nova máquina, que eu pensei em ser um tablet + teclado, mas mudei de ideia pelos sistemas que costumam rodar em tablets e baixos recursos de hardware.
Acabei comprando um MacBook Air. A experiência de desembalar o aparelho continua excelente, mas a Apple ainda peca em não colocar um material de melhor qualidade para proteger a tela do teclado, com o notebook fechado. Tudo bem que eu não uso isso e acho que não faz diferença, mas seria melhor vir sem, do que mandar aquele papel.
Como eu não gosto de usar versões pré-instaladas de softwares, resolvi formatar o Mac de cara. Como o Air não tem drive de mídia, o método é diferente. Este guia da Apple é bem prático e deixou para mim uma imagem de evolução do sistema de instalação de sistema operacional. Não li a fundo como é a arquitetura, mas me pareceu que existe uma memória separada do disco rígido, que armazena o firmware de instalação. Essa [suposta] arquitetura, me lembrou a dos smart phones, o que é ótimo, pois facilita muito a manutenção.
Mavericks reinstalado, hora de fazer tuning do sistema: habilitar firewall, criptografar o SSD, configurar Dock, locales etc. Copiar meus arquivos foi relativamente simples. Como sou organizado na minha estrutura de diretórios e o Ubuntu mantém uma estrutura similar à do Mavericks no /home do usuário, foi só compartilhar cada diretório via Samba, mapear no Mac e copiar. Simples, mas demorado, porque a taxa de transferência estava baixa, não sei se pela lentidão do destiny --a máquina antiga se chama destiny e a nova, death; alguém chuta a lógica?--, pelo protocolo usado no Wi-Fi --G; o router só suporta até esse-- ou por alguma configuração no Samba.
Arquivos no sistema, hora de importa-los nos programas apropriados, como as imagens no iPhoto e as músicas no iTunes. O iPhoto não estava instalado. Ao abrir o App Store, descobri que eu teria de baixa-lo, assim como iMovie, GarageBand, Keynote, Numbers e Pages --eles constavam como "comprado" na loja. Fui também avisado de uma nova versão do iTunes e que poderia atualizar. Esse sistema é o mesmo dos smart phones e uma adaptação do sistema centralizado de gerenciamento de softwares que roda no Linux há anos, o que é excelente.
No geral, a Apple continua melhorando seus produtos. As mudanças mais significativas que eu percebi nesses quase 7 anos foram a forma de instalação do sistema operacional e o gerenciamento de programas. Houve outras boas mudanças também, mas menores e que acabam pesando no final. Os sistemas da Apple, apesar de serem muito amarrados às soluções da empresa, são excelentes. Meus Linux vão ficar confinados à máquinas virtuais. Vamos ver até quando. :)
Go!
0 notes
jiloh-blog · 10 years
Text
Rockin' CyanogenMod
No último final de semana eu tive um problema inusitado com meu smartphone. Tenho um Samsung Galaxy S III, que já roda CyanogenMod há alguns meses e sábado passado apareceu uma atualização para o sistema. Como havia um bug com a câmera, que me obrigava a reiniciar o aparelho em determinadas ocasiões, resolvi atualizar imediatamente.
Após a instalação, percebi que o sistema estava muito instável. Logo na primeira hora de uso, foram tantos travamentos, que eu perdi a conta. Daí resolvi fazer o downgrade. Entrei no site com as imagens do CyanogenMod para meu aparelho e instalei. Como os aplicativos do Google têm licenças específicas, eles não vêm com essa imagem padrão do CyanogenMod. Então eu entrei na página específica e baixei a versão para meu sistema. Bastaram 5 minutos após a reincialização para perceber que o problema vinha do Google Apps, pois ele voltou a travar.
Resolvi instalar versões diferentes, mas aprendi que o Google Apps fica numa partição separada dentro do Android --/system-- e por isso eu precisava formata-la antes de instalar uma nova. Aprendi também que é importante fazer os wipes data/factory reset e cache partition, além de limpar cache dalvik. Outra coisa legal é que, para listar os tamanhos de cada partição no sistema, basta abrir o app de terminal e rodar o comando df.
Enfim, felizmente durante esse processo, já na segunda-feira, saiu uma nova versão estável do sistema que funcionou pra mim. Ainda há alguma instabilidade, mas já consigo utilizar o Android. A lição que fica é que o sistema de partições do Android é bastante eficiente, pois, mesmo no meio dessa loucura, quando achava que tinha "bricado" o aparelho, sabia que meus dados estavam intactos. Outra coisa é que o pessoal do CyanogenMod podia testar melhor o sistema, principalmente com o Google Apps --que é utilizado por muitos usuários--, pois perder o sistema após instalar uma atualização não é muito legal.
O CyanogenMod é ótima alternativa ao sistema da Samsung, mas o usuário precisa ficar atento aos bugs ele possui. Além disso, acho muito importante ter backup de todos os dados do aparelho. No meu caso, por exemplo, como sincronizo os contatos com o Gmail, não tive perda de dados.
Enquanto atualizo e reinstalo os apps, escrevo este texto tô ouvido um Rock'n'Roll. Yeah!
0 notes
jiloh-blog · 10 years
Link
Aproveitando a onda de desenvolvimento, resolvi portar uma aplicação que havia feito em Python + web2py para JavaScript. Não, não estou louco. Tratava-se de uma calculadora IP que eu usava bastante, mas que desde que migrei de servidor, deixou de funcionar. Como eu não queria ter o trabalho de gerenciar aplicações além do meu código, resolvi usar JavaScript.
Daí surgiu o Octet. Essa calculadora, feita em JavaScript + HTML5 + jQuery 2 + Bootstrap 3, tem a manha de processar a entrada do usuário de três formas:
endereço IP;
endereço IP/bits da máscara; e
endereço IP/máscara.
Se o usuário digitar um dado inválido, o Octet utiliza seu valor padrão --127.0.0.1/8-- e coloca a borda da caixa de texto vermelha. Se for válida, a entrada é transformada para inteiro e processada "escovando-se os bits". Ao fim, os resultados são mostrados na tela, com representações convencionais e em binário.
Para apontar endereços privados, os labels são mudados de azul para vermelho. Se o usuário não informar a máscara, o Octet gera uma, baseada no conceito de redes classful --classes A, B, C. Tudo para facilitar a vida de quem usa o programa.
Além disso, o design é responsivo! Fica sinistro no smartphone!
Rock na veia!
0 notes
jiloh-blog · 10 years
Video
vimeo
Recebi um desafio recentemente de programar um Arduino Uno, com uma placa DFRobots v1.1, em um tempo muito reduzido: 2 dias.
Como nunca havia programado para a plataforma, tive de aprender tudo muito rápido e pensar em uma solução fácil de implementar e que desse real funcionalidade ao hardware.
O fruto desse trabalho foi o Cronometrino, que transforma o Arduino num cronômetro. As premissas foram simples:
permitir contar o tempo em um período razoável;
permitir pausa e retorno; e
permitir reiniciar o contador --pausado.
Na prática, ao ligar o aparelho, o contador é iniciado com zero e parado. Ao pressionar select, o contador é disparado, com precisão de décimos de segundo. Ao pressionar reset, o contador é reiniciado e pausado.
Na linha 100 está a rotina que deveria pausar e reiniciar o contador, mas isso não foi observado na prática. Teoricamente, estando o contador parado, ao se pressionar select a variável de controle é ativada, liberando o contador. Estando ele rodando, a variável de controle seria negada, desabilitando o contador.
Como perdi o acesso ao Arduino, não tive como testar mais. Contudo, se alguém entender o motivo disso, deixo o convite para entrar em contato. Se eu descobrir futuramente, posto aqui.
Yeah!
0 notes
jiloh-blog · 10 years
Text
Debian Auto Upgrade
A nice alias to auto upgrade your Debian-like system:
alias debian-auto-upgrade="sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoclean"
Rock!
0 notes
jiloh-blog · 10 years
Text
O Mundo é dos Desenvolvedores
Hoje acompanhei o Worldwide Developers Conference 2014 (WWDC) e, para mim, ficou clara a importância que a Apple [sabidamente] dá aos desenvolvedores. O mérito da empresa está em reconhecer que a alma dos dispositivos/sistemas está nos aplicativos (apps) e, sendo assim, os desenvolvedores são peças-chave para o sucesso de uma plataforma.
Na minha opinião, todas as plataformas deviam ter APIs, IDEs e documentações bem definidas, para que mais pessoas pudessem desenvolver apps sem muito esforço. Como entusiasta do Software Livre, acho que a lição especial fica para o Linux. Eu já desenvolvi para GNOME usando Python e GTK+ no Glade e sei que o processo é longe de ser simples --ok, faz alguns anos, mas não vejo muita mudança no cenário, apesar de iniciativas como o Kivy.
Já que a Apple é pioneira em diversos aspectos, não vejo mal em se copiar o seu modelo. O Mac OS X vem acompanhado do ótimo X Code, que é a IDE padrão de desenvolvimento para o sistema do saudoso Steve Jobs --nos meus tempos de [Snow] Leopard, não era instalado por padrão, mas estava no segundo DVD de instalação; atualmente deve ser até mais fácil.
Adicione à IDE, uma linguagem de alto nível, com vasta API, que possibilite aos desenvolvedores criar paredes sem ter de fazer os tijolos --quem já programou em C, sabe o que eu quero dizer. Para fechar, documente tudo, crie padrões de codificação, empacotamento e publicação e mantenha uma plataforma onde os desenvolvedores possam trocar ideias, solucionar problemas e publicar seus códigos ou apps --uma espécie de Python Docs/PEPs + GitHub + Launchpad + Stack Overflow + Google Play.
Mostre aos desenvolvedores como eles são importantes, como a Apple fez --Tim Cook apresentou várias ferramentas para desenvolvedores e, ao final do evento, pediu que os funcionários da Apple se levantassem para serem aplaudidos. Não reinvente a roda! Tente ao máximo usar os padrões e tecnologias de mercado, como W3C, HTML, JavaScript e GNU C Library, mas se tiver que criar, faça algo que as outras pessoas queiram usar e que seja multiplataforma; não prenda os desenvolvedores a você dessa forma. Crie uma interface amigável para tudo, permita que as pessoas possam enviar ideias para melhorar o ambiente e voilà! Até eu ia querer desenvolver para esse sistema!
Parabéns à Apple! #soudev
P.S.: O meu GMP3Gain [do vídeo] foi descontinuado e aquela minha conta no GitHub não existe mais. Infelizmente o código-fonte foi perdido numa das minhas migrações de sistemas, mas o de outra solução minha --desenvolvida com as mesmas tecnologias--, o GNUSplit, está disponível na minha nova conta. : )
Changelog
Eis o vídeo que a Apple apresentou no WWDC --pra deixar qualquer desenvolvedor orgulhoso!
0 notes
jiloh-blog · 10 years
Link
Presenting the code that broke CloudFlare's Challenge!
0 notes
jiloh-blog · 10 years
Video
vimeo
One of the best explanations on Heartbleed modus operandi, which also explains how Heartbeat works.
0 notes
jiloh-blog · 10 years
Photo
Tumblr media Tumblr media Tumblr media
An awesome infographic about Heartbleed bug by BankInfoSecurity.
As well as the best Heartbleed's explanation and a [possible] tale involving it --both by xkcd.
0 notes
jiloh-blog · 10 years
Link
Nenhum profissional de TI pode subestimar a devastação que o Heartbleed pode causar. IMHO, é a maior notícia de segurança da informação que surgiu depois do caso Snowden. Para se ter uma ideia, o Tumblr já emitiu essa nota (link) para que os usuários troquem suas senhas.
Como o OpenSSL é base para uma porrada de sistemas, o bug tem potencial para afetar a vida de [quase] todas as pessoas que usam algum serviço de informática. A questão que fica para a TI então é: basta atualizar o OpenSSL (para o 1.0.1g) ou fazer downgrade? Vamos trocar todos os certificados digitais? Vamos trocar todas as senhas? Temos condição de fazer uma análise forense para saber se fomos comprometidos?
Como um cara bem observador postou numa mailing list, "fico imaginando se a NSA está envolvida na inserção deste bug em clientes e servidores OpenSSL." Uma coisa é certa: mesmo que não tenha sido a NSA que colocou este bug lá (não creio que tenha sido), o mesmo existe há ~ 2 anos e provavelmente eles já sabiam disso.
Atualizações
20140410 - E até a Cisco e entrou nessa dança. Essa reportagem apresenta o que algumas empresas declararam sobre o Heartbleed. O LastPass criou uma página interessante sobre o bug e até inseriu um testador de sites.
0 notes
jiloh-blog · 10 years
Quote
This bug has been a known issue for about 2 years, and we are only now learning about it. Not from banking, credit card, or shopping sites, nor from most news sites (the reports I've seen on news sites tend to downplay the scope and severity of the problem altogether, or simply say, "It's fixed"). Saying "it's fixed", is far from true. It makes me wonder if the NSA was involved in inserting this bug into OpenSSL clients and servers.
Someone on Tor's mailing list.
0 notes
jiloh-blog · 10 years
Video
youtube
A briefly (and nice) explanation on Common Vulnerabilities Scoring System (CVSS). Helps understanding how it was created, and how it is calculated.
0 notes
jiloh-blog · 10 years
Link
"We are doomed!" (Estamos condenados!)
Assim começava uma das primeiras mensagens sobre o bug Heartbleed em uma das listas que eu assino. O CVE-2014-0160 ou Heartbleed é um bug que afeta as versões 1.0.1[a-f] do OpenSSL, explorando uma falha da extensão Heartbeat do TLS, permitindo revelar até 64 KB de dados por requisição a um cliente ou servidor.
O que preocupa muito é que esses 64 KB de dados podem ser inclusive a chave privada de um servidor e isso é agravado, ao lembrarmos que o OpenSSL é usado em ~ 2/3 da web. Felizmente, o bug tornou-se notório no mesmo dia em que saiu a versão 1.0.1g do OpenSSL, que corrige a falha, mas mesmo isso não foi suficiente para que hackers conseguissem explorar a falha no Yahoo Mail.
A seguir, eu seleciono alguns textos sobre esse bug. Administradores, atualizem seu OpenSSL logo!
http://heartbleed.com/ --página dedicada ao bug.
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160 --a entrada do bug no CVE.
http://arstechnica.com/security/2014/04/critical-crypto-bug-in-openssl-opens-two-thirds-of-the-web-to-eavesdropping/ --matéria bem interessante sobre o bug.
http://arstechnica.com/security/2014/04/critical-crypto-bug-exposes-yahoo-mail-passwords-russian-roulette-style/ --o caso do Yahoo Mail.
Pra finalizar, repasso uma mensagem interessante de um participante da lista do Tor:
https://blog.torproject.org/ covers what to do for Tor things.
For everything else on the net, fix the clients and servers you're responsible for. Then...
You're right, there's a big gotcha in all this, users won't really know if the services they interact with have been fixed [1] because huge swaths of services simply don't publish what they do on their pages, they bury it to keep quiet and shiny happy sites. Only some banks, insurers, utilities, schools, etc will post "we're fixed" anywhere remotely prominent. So you have to trust they did [2], which is a reasonable assumption given regulation and liability of big institutional services. You should already have a regular password changing/logout/session management regimen, so inserting some extra instances of that along guesstimates of [2] should suffice with these classes of service. [2] Sometime during the falloff curve starting yesterday afternoon.
The real user risk is likely on mid to small services, embedded things, shared platforms, legacy systems, services that didn't get the news, don't have the resources or knowledge to fix, etc. Again, consider some form of reasonable regimen.
And there are all sorts of tools and site testing services coming out now for which a brave user might be completely warranted in using to determine [1 above] so they know when to utilize [regimen 2]. (Far better to use a testing service or email their help desks seeking a positive statement than risk being potentially considered an exploiter of things you don't own.)
Partial list...
http://s3.jspenguin.org/ssltest.py
https://gist.github.com/takeshixx/10107280
https://github.com/FiloSottile/Heartbleed
https://www.ssllabs.com/ssltest/index.html
(Note, this is a TLS in process bug, so more than HTTP/S services are affected...)
This bug will no doubt trigger some thinking, analysis and change in the services, security, infrastructure and user communites... that's a good thing.
0 notes
jiloh-blog · 10 years
Video
youtube
A great lecture about Hypertext Transmission Protocol (HTTP). Jackie Chun ;o) explains it with some deepness, using a nice language, which helps understanding.
If you want to learn a bit more about HTTP methods --e.g., GET and POST--, take a look!
0 notes
jiloh-blog · 10 years
Video
youtube
Uma palestra interessante sobre a criação e algumas atividades do Naris --o CSIRT da UFRN. Vale muito a pena assistir, para quem faz parte de um time desses ou está criando um. São apresentadas muitas ideias para se implementar e alguns problemas enfrentados.
0 notes