Na sequência:
2 fotos em RAW feitas com ISO800, 1 com ISO 1600, 1 foto com ISO 800 no modo EXR de otimização de ISO e 1 foto em ISO 1600 feita no modo EXR de otimização de ISO.
Na sequência:
2 fotos em RAW feitas com ISO800, 1 com ISO 1600, 1 foto com ISO 800 no modo EXR de otimização de ISO e 1 foto em ISO 1600 feita no modo EXR de otimização de ISO.
Depois de muitos anos sem escrever uma linha de código sequer em PHP, comecei a desenvolver meu site pessoal utilizando a linguagem.
O motivo não foi nada além do desafio pessoal de conhecer outro framework, no caso o Codeigniter. Além disso, se eu fosse desenvolver meu site em Python, eu precisaria abrir um chamado para o meu provedor habilitar o WSGI na minha conta.
Ao testar algumas páginas que desenvolvi percebi que os caracteres acentuados estavam todos aparecendo como símbolos. Verifiquei o encoding que estava configurado no meu config.php estava correto:
$config['charset'] = 'UTF-8';
Mesmo com o charset correto o problema persistia. Googleando achei em uma lista de e-mails um cara dizendo que já tinha passado pelo mesmo problema, e no caso dele o encoding que estava sendo utilizado para salvar o arquivo com o código fonte não era o UTF-8.
Verifiquei que o eclipse estava utilizando como padrão o encoding MacRoman. Alterei o encoding do eclipse para UTF-8 e funcionou.
Para alterar vá em “Preferences – General Workspace – Text File Encoding”.
Tá aí a dica.
Bem galera, estou aproveitando as minhas férias para produzir coisas nas quais eu acredito.
As férias são necessárias para descansar, e com certeza, aproveitar o tempo livre para produzir coisas novas.
Para começar, estou iniciando um novo serviço, que é a produção de Fotografias em 360º e Tour Virtual, para empresas, que procuram uma forma diferenciada de vender seus produtos e serviços, e pessoas que procuram uma forma diferenciada de registrar um momento importante.
Complementando a empreitada das Fotografias 360º, estou trabalhando na produção do meu site, onde meu Portfólio fotográfico estará disponível, além das minhas Fotos em 360º, e informações sobre meus cursos, e está sendo elaborada uma nova identidade visual para minha marca.
Espero que em Janeiro de 2012 já esteja com tudo no ar.
Aos nerds… o Blog continuará falando de tecnologia, como sempre.
A aclamadíssima Nikon deixou seus fãs em polvorosa ao divulgar dois hotsites, que supostamente faziam parte de uma campanha de marketing referente a um novo lançamento: câmeras mirrorless, ou seja, câmeras sem espelho e com lentes intercambiáveis.
Logo que o motivo do grande estardalhaço da Nikon foi revelado o que se viu foram comentários furiosos de todos que esperavam um grande lançamento. O que foi lançado foram duas câmeras sem espelho, o que já era de se esperar. O problema foram os atributos dessas câmeras (pode ser visto AQUI):
1 – Sensor com fator de corte de 2,7 – Ridículo.
2 – Uma linha completamente nova de lentes, com outro padrão de encaixe – Ridículo.
3 – Lentes eletrônicas até no zoom – Deplorável.
4 – Viewfinder digital – fujam para as montanhas!!!
5 – Falta de controles manuais – vou ficar calado e comprar uma Fujifilm X10 que eu ganho mais.
Além de tudo o que foi dito acima há outros problemas que deixam bem claro: é um lançamento para lucrar com os amadores.
Vamos agora ao FLASHBACK.
A SONY já havia lançado câmeras sem espelho. A linha NEX já está no mercado há algum tempo com câmeras que possuem um fator de corte de 1.5, o que é comum em DSLRs e tornando essas câmeras mais aceitáveis…
OK, OK, OK… Nem tão aceitáveis assim, e vamos aos motivos:
O padrão SLR atualmente é o mais adotado entre profissionais por possuir uma vantagem gritante sobre os outros padrões. A vantagem é que você vê praticamente a mesma foto que será gravada no filme. Nas rangefinder, como as glamurosas Leica, o foco é feito de forma diferente e o que se vê no viewfinder não é igual ao que se vê na foto. Além do motivo já dito, as DSLR são rápidas, robustas e extremamente eficientes no quesito consumo de energia.
OK, OK, OK.. denovo. E o que isso tem a ver?
Quando surgiram as câmeras digitais amadoras houve uma grande mudança na forma que pessoas comuns fotografavam, pois ao invés de se ver a cena composta em um viewfinder, o que se passou a utilizar foi uma tela de LCD. Daí vieram os GRANDES EFEITOS COLATERAIS:
1 – Baterias/pilhas que eram drenadas ao invés de a.
2 – Mal costume (opinião minha).
3 – Curtíssima vida útil do sensor – ISSO MESMO, CURTÍSSIMA.
Mas por que o sensor dura pouco? É simples: numa digital comum ele fica ligado o tempo inteiro, o que causa o alto consumo de energia e o grande desgaste do sensor, que acaba fazendo uma média de 15.000 fotos e morre (morre mesmo).
Numa DSLR o sensor fica desligado durante todo o tempo, e só entra em funcionamento quando o fotógrafo pressiona o disparador, e retorna ao descanso dos fortes após o fechamento da segunda cortina. Dessa forma o sensor aguenta impressionantes 100.000 fotos, ou mais.
Devido a sua operação manual, as DSLR acabam sendo mais rápidas também, pois praticamente para cada função das câmeras há existe uma chave ou botão. Além disso o zoom é manual, o que oferece precisão, velocidade e baixo consumo de energia.
Nas câmeras mirrorless o comportamento do sensor é como em uma compacta: fica ligado o tempo todo, consumindo bateria e se desgastando. Além disso, há um probleminha na falta do espelho: o espelho serve como uma proteção para o sensor quando se está trocando de lente, o que não existe numa câmera sem espelho.
Numa mirrorless o zoom das lentes é eletrônico, os controles das funções são através de menus, combinações de botões, ou através telas de toque (shit!). Dessa forma, a operação dessas câmeras é mais lenta, e o consumo de energia é mais elevado devido ao sensor e tela de LCD ficarem ligados durante todo o tempo.
Agora vamos ao fator ergonomia.
As mirrorless são mais leves e menores que as DSLR, daí você pensa “Nossa! Então a mirrorless é ergonomicamente melhor!”. Daí eu digo “Sim e não”:
- Se você usar uma lente pequena e leve, SIM.
- Se você usar uma tele, como uma 70-200 2.8, NÃO! De forma alguma! Nunca!
A DSLR é mais pesada mas possui uma melhor “pegada” para utilizar com lentes pesadas: a mão esquerda segura a lente e a direita opera as principais funções da câmera.
Na mirrorless… bem.. se imagine segurando uma câmera de 3cm de espessura com a mão direita, uma lente de mais de 2 quilos pendurada nela fazendo contrapeso e seus braços esticados para você conseguir enxergar o LCD… Inferno montado.
Vale lembrar que se hoje as DSLR dominam o mercado e a tecnologia é mais que suficiente para produzir rangefinders à um custo acessível, há um motivo óbvio: DSLR é melhor. Os aficionados por Leica vão me apedrejar, eu sei, mas DSLR é melhor e ponto.
Não duvido que futuramente as câmeras sem espelho venham a dominar, mas primeiro os fabricantes precisam pensar nesses problemas e resolvê-los.
If you, just like me, like holding a key when typing, and then use the keyboard repeating feature.
If you installed the Lion and when you press a key, in dispite of repeating chars, what you saw was idiot accented chars.
If you hated this new “feature”.
Your Problem is Over!!!
Now you can write things like “fuuuuuuuuuuuuuuuuuuuuuuck” or “shiiiiiiiiiiiiitttt” again without any disturbing things!
To do this just open the Terminal and past the line below:
defaults write -g ApplePressAndHoldEnabled -bool false
Hit enter, restart your Mac and be happy without this white wire in the mane of the Lion.
Cheers!!!
Se você, assim como eu, gosta de segurar uma tecla ao digitar, e assim utilizar o recurso de repetição do teclado.
Se você instalou o Lion e ao segurar a tecla, ao invés de ver repetição, o que você viu foram letras acentuadas idiotas.
Se você detestou isso.
Seus problemas acabaram!!!
Agora você pode voltar a escrever “foooooooooooooooooooooodaaaaaaaaaaaaa”, “pouuuuuuuuuuuuuutz!!!” e coisas semelhantes novamente e sem ninguém te atrapalhar.
Para isso abra o Terminal e cole a linha abaixo:
defaults write -g ApplePressAndHoldEnabled -bool false
Dê um enter, reinicie seu Mac e seja feliz sem esse fio branco na juba do Lion.
Abraços!!!
I’ve been a little away from the development area, but there are many things that are part of what we are and we can’t just take them apart of us.
Now I’m involved in two personal projects, a Ruby on Rails project, and an IPhone App, that will have an Android twin in future.
In this first post about IPhone development we will talk about Threads.
First is necessary to understand why using threads, and for it we will illustrate with the problem I needed to solve:
- An algorithm must refresh the value of a Label for each 5 seconds, showing current hour, minutes and the seconds, without blocking the user from interact with the application during the execution.
For the Delphi programmers is easy to say: “Put a While infinite loop containing a sleep command followed by a repaint”. But this aproach has two big issues:
The COCOA API is very well structured and designeed. In spite of many things don’t be made the easy or fast way, the structuring of the API is very concise.
We will create a way to switch a thread on and off using only one button. Then we start creating the file MyViewController.h:
#import <UIKit/UIKit.h>;
@interface MyViewController : UIViewController {
//Var that verifies if the thread is 'On'
bool watching;
//The notorious Thread
NSThread *myThread;
//The button and label we talked about
IBOutlet UIButton *btSwitch;
IBOutlet UILabel *currentTime;
}
//Methods to be implemented in MyViewController.m
- (IBAction) timeWatchSwitch:(id)sender;
- (void) timeWatchStart;
- (void) timeWatchStop;
- (void) timeWatch;
- (void) changeLabelText;
@end
Now that we created the interface file, we will create the implementation file “MyViewController.m”. The first method is called timeWatchSwitch, that switches the process that refreshes the label value:
//This is a IBAction method because it's
//the action fired by our button.
- (IBAction) timeWatchSwitch:(id)sender
{
//Verify if the process is not 'on'
if (!watching) {
//If not, switches the process on.
[self timeWatchStart];
}
else
{
//If the process is running, switches it of.
[self timeWatchStop];
}
}
The timeWatchStart method is who will execute the true job inside our thread. COCOA doesn’t have a garbage collector, because of it, we need to create the NSAutoreleasePool to avoid an overflow.
Now we have a loop that looks like an infinite loop that would be created in other languages, but in this case we verify if the Thread isCanceled.
See that before being finalized, a COCOA Thread is canceled, it is like a finishing preparation process.
The command performSelectorOnMainThread is where lies the big secret of our code. Instead of using dazzling fireworks as “repaints”, we must tell the application to run the method changeLabelText on the main thread, then our algorithm only will affect the graphic interface when it becomes really necessary, and differently from repaint, the application will save lots of memory and processing because the “repaint” redraws each visual component on the GUI, what would be very bad for the resources of your IPhone..
- (void) showTime
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
while (![[NSThread currentThread] isCancelled])
{
[self performSelectorOnMainThread:@selector(changeLabelText) withObject:nil waitUntilDone:NO];
[NSThread sleepForTimeInterval:5];
}
// Here is where our Thread really die.
[NSThread exit];
[pool release];
}
The method bellow will change the date on the label:
- (void) changeLabelText
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd hh:mm:ss"];
currentTime.text = [formatter stringFromDate:[NSDate date]];
[formatter release];
}
Finaly, the method that finalizes the thread:
- (void) timeWatchStop
{
[myThread cancel];
watching = FALSE;
}
We shouldn’t forget cleaning the garbage from memory:
- (void)dealloc
{
[myThread release];
[btSwitch release];
[currentTime release];
[super dealloc];
}
I will abstract the linking between visual components and the code, but I really expect this post to be helpfull for you.
Thanks!!!
Andei um pouco afastado da área de desenvolvimento, mas existem coisas que fazem parte do que somos e delas não podemos nos desvincular com facilidade.
Hoje estou envolvido em dois projetos pessoais, sendo um projeto Web em Ruby on Rails, e outro um App para IPhone, que futuramente irá ganhar um irmão gêmeo em Android.
Neste primeiro post sobre desenvolvimento para IPhone, vamos falar do uso de threads.
Primeiramente, é necessário entender a necessidade de utilizar Threads, para tanto vamos ilustrar com o problema que eu precisei resolver:
- Um algoritmo deve a cada 5 segundos atualizar um Label com a Hora, Minuto e Segundos atuais, sem que para isso o usuário seja impedido de interagir com a aplicação durante a execução do mesmo.
Para quem programou em Delphi é fácil responder: “Faça um While infinito e dentro dele coloque um sleep com repaint”. Mas essa abordagem possui dois problemas graves:
Toda a API de COCOA foi muito bem estruturada. Apesar de muitas coisas não serem feitas da forma mais fácil ou rápida, a estruturação da API é bastante concisa, e assim não poderia deixar de ser com as Threads.
Vamos criar uma forma de “ligar” e “desligar” uma thread utilizando apenas um botão, então vamos começar criando o arquivo MyViewController.h:
#import <UIKit/UIKit>;
@interface MyViewController : UIViewController {
//Variável que será utilizada para
//verificar se a thread está Ligada.
bool watching;
//A nossa famigerada Thread.
NSThread *myThread;
//O botão e o label que citamos.
IBOutlet UIButton *btSwitch;
IBOutlet UILabel *currentTime;
}
//Métodos que definiremos em MyViewController.m
- (IBAction) timeWatchSwitch:(id)sender;
- (void) timeWatchStart;
- (void) timeWatchStop;
- (void) timeWatch;
- (void) changeLabelText;
@end
Com o arquivo de interface criado, criaremos o arquivo de implementação “MyViewController.m”. Nosso primeiro método eu chamo de timeWatchSwitch, um interruptor para ligar e desligar o processo de atualizar o label com a hora atual:
//Esse método é do tipo IBAction pois será disparado pelo nosso botão.
- (IBAction) timeWatchSwitch:(id)sender
{
//Verifica se o processo não está "ligado"
if (!watching) {
//Caso não esteja, liga o processo.
[self timeWatchStart];
}
else
{
//Caso esteja rodando, desliga o processo.
[self timeWatchStop];
}
}
O método timeWatchStart é quem vai executar o trabalho da nossa thread. Como COCOA não possui Garbage Collector, um NSAutoreleasePool é necessário para evitar um overflow.
Logo após, Temos um loop semelhante ao loop infinito que criaríamos em outra linguagem, mas nesse caso verificamos a propriedade isCanceled da nossa Thread como condição de parada.
Observe que em cocoa, antes de ser finalizada uma Thread é Cancelada, é como um processo de preparação para o encerramento.
O comando performSelectorOnMainThread é onde reside o grande segredo do nosso código. Ao invés de usar um artifício mirabolante como um “repaint”, devemos mandar executar o método changeLabelText na Thread principal do aplicativo, e não na thread que criamos, assim, o nosso algoritmo só irá interferir na interface gráfica, território sagrado do usuário, quando for estritamente necessário, e diferentemente do repaint, o aplicativo economiza em memória e processamento. Um “repaint” redesenha cada componente na interface, isso sugaria muitos recursos do seu IPhone.
- (void) showTime
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
while (![[NSThread currentThread] isCancelled]) {
[self performSelectorOnMainThread:@selector(changeLabelText) withObject:nil waitUntilDone:NO];
[NSThread sleepForTimeInterval:5];
}
// Aqui é que a thread que criamos morre de verdade.
[NSThread exit];
[pool release];
}
O método abaixo é quem vai alterar a data no label:
- (void) changeLabelText
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd hh:mm:ss"];
currentTime.text = [formatter stringFromDate:[NSDate date]];
[formatter release];
}
Finalmente, o método responsável por finalizar a thread:
- (void) timeWatchStop
{
[myThread cancel];
watching = FALSE;
}
Não devemos nos esquecer de limpar a sujeira da memória:
- (void)dealloc
{
[myThread release];
[btSwitch release];
[currentTime release];
[super dealloc];
}
Vou abstrair a ligação entre nossos componentes visuais, mas espero que este post te ajude.
Abraços e até a próxima!!!
Se você comprou uma Sony Bravia KDL-40EX405 e ficou puto por que:
Este é o lugar certo para você!
Basta pegar tudo o que está escrito no final desse post, colocar num arquivo .TXT vazio, renomea-lo para BraviaKDL-40EX405.conf, colocar na pasta “Resources/Java/renderers” onde está seu PS3 Media Server, abrir o programa e Bingo!
Seja feliz rodando seus MKVs e AVIs e etc… não se esqueça que o programa precisa estar devidamente configurado.
Abraços!!!
#COPIE DAQUI EM DIANTE: <div id="_mcePaste"># ps3mediaserver renderer profile for Sony Bravia KDL-40EX405</div> <div id="_mcePaste"># Refer to PS3.conf for help</div> <div id="_mcePaste">RendererName=Sony Bravia EX405 Series</div> <div id="_mcePaste">RendererIcon=bravia.png</div> <div id="_mcePaste">UserAgentSearch=notusedhere</div> <div id="_mcePaste">UserAgentAdditionalHeader=X-AV-Client-Info</div> <div id="_mcePaste">UserAgentAdditionalHeaderSearch=(BRAVIA KDL-40EX405)</div> <div id="_mcePaste">#Basic capabilities</div> <div id="_mcePaste">Video=true</div> <div id="_mcePaste">Audio=true</div> <div id="_mcePaste">Image=true</div> <div id="_mcePaste">#------------------------------------------------------------</div> <div id="_mcePaste"># DLNA settings</div> <div id="_mcePaste">#Use the DLNA feature seek by time and not by range</div> <div id="_mcePaste">SeekByTime=false</div> <div id="_mcePaste">#Serve different flavors of localization in the DLNA parameters (PAL/NTSC, NA/EU/JP)</div> <div id="_mcePaste">#to allow every worldwide renderer to see the files. Important for Sony Bravia's TVs</div> <div id="_mcePaste">DLNALocalizationRequired=true</div> <div id="_mcePaste">#------------------------------------------------------------</div> <div id="_mcePaste"># Transcoding/Muxing capabilities</div> <div id="_mcePaste">#</div> <div id="_mcePaste">#Transcode codecs for video and audio engines</div> <div id="_mcePaste">#currently supported: MPEGAC3, MPEGTSAC3 or WMV for video, PCM or MP3 for audio</div> <div id="_mcePaste">TranscodeVideo=MPEGAC3</div> <div id="_mcePaste">TranscodeAudio=MP3</div> <div id="_mcePaste">#Use default DVD buffer size: false = greater bitrate and faster encoding,</div> <div id="_mcePaste">#but can generate incompatible videos, depends of your media renderer</div> <div id="_mcePaste">DefaultVBVBufSize=false</div> <div id="_mcePaste">#Muxing capabilities: Does the media renderer supports H264 and MPEG2 in a mpegts file ?</div> <div id="_mcePaste">#Deprecated if MediaInfo=true</div> <div id="_mcePaste">MuxH264ToMpegTS=true</div> <div id="_mcePaste">#Does the media renderer supports DTS in a mpeg file ?</div> <div id="_mcePaste">#Deprecated if MediaInfo=true</div> <div id="_mcePaste">MuxDTSToMpeg=true</div> <div id="_mcePaste">#Does the media renderer supports DTS wrapped into LPCM in a mpeg file ?</div> <div id="_mcePaste">WrapDTSIntoPCM=false</div> <div id="_mcePaste">#Does the media renderer supports LPCM in a mpeg file ?</div> <div id="_mcePaste">#Deprecated if MediaInfo=true</div> <div id="_mcePaste">MuxLPCMToMpeg=false</div> <div id="_mcePaste">#Maximum bitrate supported by the media renderer (0=unlimited)</div> <div id="_mcePaste">MaxVideoBitrateMbps=0</div> <div id="_mcePaste">#Max Width and Height supported by the media renderer (0=unlimited)</div> <div id="_mcePaste">MaxVideoWidth=0</div> <div id="_mcePaste">MaxVideoHeight=0</div> <div id="_mcePaste">#Does the media renderer supports only H264 L4.1 at most ?</div> <div id="_mcePaste">H264Level41Limited=true</div> <div id="_mcePaste">#Does music files need to be resampled at 44.1kHz?</div> <div id="_mcePaste">TranscodeAudioTo441kHz=false</div> <div id="_mcePaste">#Does the client need to receive transcoded video with minimal delay ? (Useful when the client has a small timeout delay)</div> <div id="_mcePaste">TranscodeFastStart=false</div> <div id="_mcePaste">#Size of the transcoded file (unknown length) sent to the renderer (could determine browsing failure/success)</div> <div id="_mcePaste">#Possible values:</div> <div id="_mcePaste"># -1: Specific value working with the PS3, means perfect transcoding and copying support (it's against the dlna spec though)</div> <div id="_mcePaste"># 0: size attribute is NOT sent to the renderer (defaut value if this parameter isn't used)</div> <div id="_mcePaste"># 100000000000: 100Gb, if you want to be sure that the media file is not cutted before the end ?</div> <div id="_mcePaste">TranscodedVideoFileSize=-1</div> <div id="_mcePaste">#-----------------------------------------------------------</div> <div id="_mcePaste"># Misc Images</div> <div id="_mcePaste">#Rotate Jpeg files based on EXIF infos</div> <div id="_mcePaste">AutoExifRotate=true</div> <div id="_mcePaste">#------------------------------------------------------------</div> <div id="_mcePaste"># Misc Files</div> <div id="_mcePaste"># Mime types transforms (oldmime=newmime|olemime2=newmime2|...)</div> <div id="_mcePaste"># Deprecated if MediaInfo=true</div> <div id="_mcePaste">MimeTypesChanges=video/avi=video/x-divx</div> <div id="_mcePaste">audio/wav=audio/L16</div> <div id="_mcePaste"># What extensions are forcefully transcoded</div> <div id="_mcePaste"># Don't use this if MediaInfo=true, prefer codec configurations</div> <div id="_mcePaste">TranscodeExtensions=dvr-ms,dvr,mkv,dv,ty,mov,ogm,hdmov,hdm,rmv,rmvb,rm,asf,evo,asx,flv,m2v,mpe,mod,tivo,ty,tmf,ts,tp,m2p,mp4,m4v,avi,wmv,wm,divx,div,flac,mlp,fla,wma,m4a,aac,dts,mka,ape,ogg,shn,mpc,ra,mp2,wv,oma,aa3,gif,png,arw,cr2,crw,dng,raf,mrw,nef,pef,tif,tiff</div> <div id="_mcePaste"># What extensions are forcefully streamed as is (and not transcoded)</div> <div id="_mcePaste"># Don't use this if MediaInfo=true, prefer codec configurations</div> <div id="_mcePaste">StreamExtensions=</div> <div id="_mcePaste"># ===========================================================================</div> <div id="_mcePaste"># All supported media formats of this renderer (the rest will be transcoded)</div> <div id="_mcePaste"># First steps towards a faster/proper file/codec/mimetype management system (false by default)</div> <div id="_mcePaste"># 1- Parse files with mediainfo on Windows/OSX (Linux too if libmediainfo and libzen installed)</div> <div id="_mcePaste"># 2- Deprecate following parameters: MuxH264ToMpegTS,MuxDTSToMpeg,MuxLPCMToMpeg,MimeTypesChanges</div> <div id="_mcePaste"># 3- The server will skip badly parsed, corrupted files or wrong coding, preventing potential playback errors</div> <div id="_mcePaste"># 4- Faster browsing, due to the launch of ffmpeg/mplayer first thumbnailer process with each http client request, rather than in the browse DLNA request</div> <div id="_mcePaste">MediaInfo=false</div> <div id="_mcePaste"># The media parser and this configuration file will recognize the following formats/codecs (lowercase only, regex supported):</div> <div id="_mcePaste"># Chosen from the most common used and supported formats/codecs (no need to manage ADPCM, nobody cares)</div> <div id="_mcePaste"># mpegps (mpeg presentation stream, used in DVD Videos, VCDs, etc.)</div> <div id="_mcePaste"># mpegts (mpeg transport stream, used in sat tv, blu rays, etc.)</div> <div id="_mcePaste"># wmv (Windows Media Video, tag also used for asf files)</div> <div id="_mcePaste"># avi (AVI container)</div> <div id="_mcePaste"># mp4 (ISOM/MPEG4 container, or MPEG4 codec)</div> <div id="_mcePaste"># mov (Quicktime container, Apple)</div> <div id="_mcePaste"># flv (Flash Video)</div> <div id="_mcePaste"># rm (Real Media, RMVB)</div> <div id="_mcePaste"># mkv (Matroska)</div> <div id="_mcePaste"># wav (WAVE file)</div> <div id="_mcePaste"># wavpac (WavPack)</div> <div id="_mcePaste"># lpcm (Linear PCM)</div> <div id="_mcePaste"># aac (Advanced Audio Codec)</div> <div id="_mcePaste"># ac3 (Audio Coding 3)</div> <div id="_mcePaste"># mp3 (Mpeg Audio Layer 3)</div> <div id="_mcePaste"># mpa (Mpeg Audio)</div> <div id="_mcePaste"># ogg (Ogg Vorbis)</div> <div id="_mcePaste"># wma (Windows Media Audio)</div> <div id="_mcePaste"># dts (Digital Theater Systems)</div> <div id="_mcePaste"># dtshd (Digital Theater Systems)</div> <div id="_mcePaste"># truehd (TrueHD)</div> <div id="_mcePaste"># eac3 (Extended AC3)</div> <div id="_mcePaste"># atrac (Atrac)</div> <div id="_mcePaste"># flac (Free Lossless Audio Codec)</div> <div id="_mcePaste"># ape (Monkey's Audio)</div> <div id="_mcePaste"># ra (Real Audio)</div> <div id="_mcePaste"># mpc (MusePack)</div> <div id="_mcePaste"># aiff (AIFF)</div> <div id="_mcePaste"># alac (Apple Lossless)</div> <div id="_mcePaste"># dv (Digital Video)</div> <div id="_mcePaste"># mpeg1 (Codec used in VCD)</div> <div id="_mcePaste"># mpeg2 (Codec used in DVD Videos and HDTV)</div> <div id="_mcePaste"># divx (DivX Video)</div> <div id="_mcePaste"># h264 (H264)</div> <div id="_mcePaste"># mjpeg (M-JPEG)</div> <div id="_mcePaste"># vc1 (VC-1)</div> <div id="_mcePaste"># jpg (Jpeg)</div> <div id="_mcePaste"># png (PNG)</div> <div id="_mcePaste"># gif (GIF)</div> <div id="_mcePaste"># tiff (TIFF)</div> <div id="_mcePaste"># bmp (Bitmap)</div> <div id="_mcePaste"># und (Undetermined, if the parser did not recognize one of above)</div> <div id="_mcePaste"># Usage:</div> <div id="_mcePaste"># f: format, MANDATORY (the only conf for a 'eat everything' renderer would be f:.+)</div> <div id="_mcePaste"># m: mimetype, STRONGLY RECOMMENDED (if not declared, an estimated value is assigned)</div> <div id="_mcePaste"># v: video codec</div> <div id="_mcePaste"># a: audio codec</div> <div id="_mcePaste"># n: max nb of audio channels</div> <div id="_mcePaste"># s: max audio sample frequency in Hz</div> <div id="_mcePaste"># b: max audio bitrate in bps</div> <div id="_mcePaste"># w: max width in pixels</div> <div id="_mcePaste"># h: max height in pixels</div> <div id="_mcePaste"># other flags: right now, only qpel and gmc (see avi)</div> <div id="_mcePaste"># In case of multiple matches, the first mime type of the list is the used one.</div> <div id="_mcePaste"># Be careful with regexps such as .+ : You shouldn't use these only if you're sure your renderer is quite versatile</div> <div id="_mcePaste"># Taken from the playstation site:</div> <div id="_mcePaste"># The following types of files can be played under (Video).</div> <div id="_mcePaste"># Memory Stick Video Format</div> <div id="_mcePaste"># - MPEG-4 SP (AAC LC)</div> <div id="_mcePaste"># - H.264/MPEG-4 AVC High Profile (AAC LC)</div> <div id="_mcePaste"># - MPEG-2 TS(H.264/MPEG-4 AVC, AAC LC)</div> <div id="_mcePaste"># MP4 file format</div> <div id="_mcePaste"># - H.264/MPEG-4 AVC High Profile (AAC LC)</div> <div id="_mcePaste"># MPEG-1 (MPEG Audio Layer 2)</div> <div id="_mcePaste"># MPEG-2 PS (MPEG2 Audio Layer 2, AAC LC, AC3(Dolby Digital), LPCM)</div> <div id="_mcePaste"># MPEG-2 TS (MPEG2 Audio Layer 2, AC3(Dolby Digital), AAC LC)</div> <div id="_mcePaste"># MPEG-2 TS (H.264/MPEG-4 AVC, AAC LC)</div> <div id="_mcePaste"># AVI</div> <div id="_mcePaste"># - Motion JPEG (Linear PCM)</div> <div id="_mcePaste"># - Motion JPEG (mu-Law)</div> <div id="_mcePaste"># AVCHD (.m2ts / .mts)</div> <div id="_mcePaste"># DivX</div> <div id="_mcePaste"># WMV</div> <div id="_mcePaste"># - VC-1(WMA Standard V2)</div> <div id="_mcePaste">#</div> <div id="_mcePaste"># gives:</div> <div id="_mcePaste"># [Supported video formats]:</div> <div id="_mcePaste"># Here we declare support (or lack) of DTS (here, none of the entries declare dts as a supported audio codec)</div> <div id="_mcePaste">Supported = f:mpegps|mpegts v:mpeg1|mpeg2|mp4|h264 a:ac3|lpcm|aac|mpa m:video/mpeg</div> <div id="_mcePaste"># No H264 for AVI files, plus specific mediainfo attributes, for better auto detection (qpel and gmc are not supported here)</div> <div id="_mcePaste">Supported = f:avi|divx v:mp4|divx|mjpeg a:mp3|lpcm|mpa|ac3 m:video/x-divx qpel:no gmc:0</div> <div id="_mcePaste">Supported = f:mp4 v:mp4|h264 a:ac3|aac m:video/mp4</div> <div id="_mcePaste"># WMV files are supported, but not with 5.1 audio: (hence the n:2)</div> <div id="_mcePaste">Supported = f:wmv v:wmv|vc1 a:wma n:2 m:video/x-ms-wmv</div> <div id="_mcePaste"># [Supported audio formats]:</div> <div id="_mcePaste">Supported = f:wav a:dts n:6 s:48000 m:audio/wav</div> <div id="_mcePaste">Supported = f:wav n:2 s:48000 m:audio/wav</div> <div id="_mcePaste">Supported = f:mp3 n:2 m:audio/mpeg</div> <div id="_mcePaste"># Apple lossless not supported</div> <div id="_mcePaste">Supported = f:aac n:2 a:(?!alac).+ m:audio/x-m4a</div> <div id="_mcePaste">Supported = f:wma n:2 m:audio/x-ms-wma</div> <div id="_mcePaste">Supported = f:atrac n:2 m:audio/x-oma</div> <div id="_mcePaste"># [Supported image formats]</div> <div id="_mcePaste">Supported = f:jpg m:image/jpeg</div> <div id="_mcePaste">Supported = f:png m:image/png</div> <div id="_mcePaste">Supported = f:gif m:image/gif</div> <div id="_mcePaste">Supported = f:tiff m:image/tiff</div> <div id="_mcePaste"># ===========================================================================</div> # ps3mediaserver renderer profile for Sony Bravia 5500 series# Refer to PS3.conf for help RendererName=Sony Bravia EX405 SeriesRendererIcon=bravia.pngUserAgentSearch=notusedhereUserAgentAdditionalHeader=X-AV-Client-InfoUserAgentAdditionalHeaderSearch=(BRAVIA KDL-40EX405) #Basic capabilitiesVideo=trueAudio=trueImage=true #------------------------------------------------------------# DLNA settings #Use the DLNA feature seek by time and not by rangeSeekByTime=false #Serve different flavors of localization in the DLNA parameters (PAL/NTSC, NA/EU/JP)#to allow every worldwide renderer to see the files. Important for Sony Bravia's TVsDLNALocalizationRequired=true #------------------------------------------------------------# Transcoding/Muxing capabilities# #Transcode codecs for video and audio engines#currently supported: MPEGAC3, MPEGTSAC3 or WMV for video, PCM or MP3 for audioTranscodeVideo=MPEGAC3TranscodeAudio=MP3 #Use default DVD buffer size: false = greater bitrate and faster encoding,#but can generate incompatible videos, depends of your media rendererDefaultVBVBufSize=false #Muxing capabilities: Does the media renderer supports H264 and MPEG2 in a mpegts file ?#Deprecated if MediaInfo=trueMuxH264ToMpegTS=true #Does the media renderer supports DTS in a mpeg file ?#Deprecated if MediaInfo=trueMuxDTSToMpeg=true #Does the media renderer supports DTS wrapped into LPCM in a mpeg file ?WrapDTSIntoPCM=false #Does the media renderer supports LPCM in a mpeg file ?#Deprecated if MediaInfo=trueMuxLPCMToMpeg=false #Maximum bitrate supported by the media renderer (0=unlimited)MaxVideoBitrateMbps=0 #Max Width and Height supported by the media renderer (0=unlimited)MaxVideoWidth=0MaxVideoHeight=0 #Does the media renderer supports only H264 L4.1 at most ?H264Level41Limited=true #Does music files need to be resampled at 44.1kHz?TranscodeAudioTo441kHz=false #Does the client need to receive transcoded video with minimal delay ? (Useful when the client has a small timeout delay)TranscodeFastStart=false #Size of the transcoded file (unknown length) sent to the renderer (could determine browsing failure/success)#Possible values: # -1: Specific value working with the PS3, means perfect transcoding and copying support (it's against the dlna spec though)# 0: size attribute is NOT sent to the renderer (defaut value if this parameter isn't used)# 100000000000: 100Gb, if you want to be sure that the media file is not cutted before the end ?TranscodedVideoFileSize=-1 #-----------------------------------------------------------# Misc Images #Rotate Jpeg files based on EXIF infosAutoExifRotate=true #------------------------------------------------------------# Misc Files # Mime types transforms (oldmime=newmime|olemime2=newmime2|...)# Deprecated if MediaInfo=trueMimeTypesChanges=video/avi=video/x-divxaudio/wav=audio/L16# What extensions are forcefully transcoded# Don't use this if MediaInfo=true, prefer codec configurationsTranscodeExtensions=dvr-ms,dvr,mkv,dv,ty,mov,ogm,hdmov,hdm,rmv,rmvb,rm,asf,evo,asx,flv,m2v,mpe,mod,tivo,ty,tmf,ts,tp,m2p,mp4,m4v,avi,wmv,wm,divx,div,flac,mlp,fla,wma,m4a,aac,dts,mka,ape,ogg,shn,mpc,ra,mp2,wv,oma,aa3,gif,png,arw,cr2,crw,dng,raf,mrw,nef,pef,tif,tiff# What extensions are forcefully streamed as is (and not transcoded)# Don't use this if MediaInfo=true, prefer codec configurationsStreamExtensions= # ===========================================================================# All supported media formats of this renderer (the rest will be transcoded)# First steps towards a faster/proper file/codec/mimetype management system (false by default)# 1- Parse files with mediainfo on Windows/OSX (Linux too if libmediainfo and libzen installed)# 2- Deprecate following parameters: MuxH264ToMpegTS,MuxDTSToMpeg,MuxLPCMToMpeg,MimeTypesChanges# 3- The server will skip badly parsed, corrupted files or wrong coding, preventing potential playback errors# 4- Faster browsing, due to the launch of ffmpeg/mplayer first thumbnailer process with each http client request, rather than in the browse DLNA requestMediaInfo=false# The media parser and this configuration file will recognize the following formats/codecs (lowercase only, regex supported):# Chosen from the most common used and supported formats/codecs (no need to manage ADPCM, nobody cares)# mpegps (mpeg presentation stream, used in DVD Videos, VCDs, etc.)# mpegts (mpeg transport stream, used in sat tv, blu rays, etc.)# wmv (Windows Media Video, tag also used for asf files)# avi (AVI container)# mp4 (ISOM/MPEG4 container, or MPEG4 codec)# mov (Quicktime container, Apple)# flv (Flash Video)# rm (Real Media, RMVB)# mkv (Matroska)# wav (WAVE file)# wavpac (WavPack)# lpcm (Linear PCM)# aac (Advanced Audio Codec)# ac3 (Audio Coding 3)# mp3 (Mpeg Audio Layer 3)# mpa (Mpeg Audio)# ogg (Ogg Vorbis)# wma (Windows Media Audio)# dts (Digital Theater Systems)# dtshd (Digital Theater Systems)# truehd (TrueHD)# eac3 (Extended AC3)# atrac (Atrac)# flac (Free Lossless Audio Codec)# ape (Monkey's Audio)# ra (Real Audio)# mpc (MusePack)# aiff (AIFF)# alac (Apple Lossless)# dv (Digital Video)# mpeg1 (Codec used in VCD)# mpeg2 (Codec used in DVD Videos and HDTV)# divx (DivX Video)# h264 (H264)# mjpeg (M-JPEG)# vc1 (VC-1)# jpg (Jpeg)# png (PNG)# gif (GIF)# tiff (TIFF)# bmp (Bitmap)# und (Undetermined, if the parser did not recognize one of above)# Usage:# f: format, MANDATORY (the only conf for a 'eat everything' renderer would be f:.+)# m: mimetype, STRONGLY RECOMMENDED (if not declared, an estimated value is assigned)# v: video codec# a: audio codec# n: max nb of audio channels# s: max audio sample frequency in Hz# b: max audio bitrate in bps# w: max width in pixels# h: max height in pixels# other flags: right now, only qpel and gmc (see avi) # In case of multiple matches, the first mime type of the list is the used one.# Be careful with regexps such as .+ : You shouldn't use these only if you're sure your renderer is quite versatile # Taken from the playstation site:# The following types of files can be played under (Video).# Memory Stick Video Format# - MPEG-4 SP (AAC LC)# - H.264/MPEG-4 AVC High Profile (AAC LC)# - MPEG-2 TS(H.264/MPEG-4 AVC, AAC LC)# MP4 file format# - H.264/MPEG-4 AVC High Profile (AAC LC)# MPEG-1 (MPEG Audio Layer 2)# MPEG-2 PS (MPEG2 Audio Layer 2, AAC LC, AC3(Dolby Digital), LPCM)# MPEG-2 TS (MPEG2 Audio Layer 2, AC3(Dolby Digital), AAC LC)# MPEG-2 TS (H.264/MPEG-4 AVC, AAC LC)# AVI# - Motion JPEG (Linear PCM)# - Motion JPEG (mu-Law)# AVCHD (.m2ts / .mts)# DivX# WMV# - VC-1(WMA Standard V2)## gives: # [Supported video formats]: # Here we declare support (or lack) of DTS (here, none of the entries declare dts as a supported audio codec) Supported = f:mpegps|mpegts v:mpeg1|mpeg2|mp4|h264 a:ac3|lpcm|aac|mpa m:video/mpeg# No H264 for AVI files, plus specific mediainfo attributes, for better auto detection (qpel and gmc are not supported here)Supported = f:avi|divx v:mp4|divx|mjpeg a:mp3|lpcm|mpa|ac3 m:video/x-divx qpel:no gmc:0Supported = f:mp4 v:mp4|h264 a:ac3|aac m:video/mp4# WMV files are supported, but not with 5.1 audio: (hence the n:2)Supported = f:wmv v:wmv|vc1 a:wma n:2 m:video/x-ms-wmv # [Supported audio formats]:Supported = f:wav a:dts n:6 s:48000 m:audio/wavSupported = f:wav n:2 s:48000 m:audio/wavSupported = f:mp3 n:2 m:audio/mpeg# Apple lossless not supportedSupported = f:aac n:2 a:(?!alac).+ m:audio/x-m4aSupported = f:wma n:2 m:audio/x-ms-wmaSupported = f:atrac n:2 m:audio/x-oma # [Supported image formats]Supported = f:jpg m:image/jpegSupported = f:png m:image/pngSupported = f:gif m:image/gifSupported = f:tiff m:image/tiff # ===========================================================================
Comprei meu MacBook Pro. Tá, e o que há de bom nisso? O trecho abaixo diz um pouco:
“Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes.
The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can praise them, disagree with them, quote them, disbelieve them, glorify or vilify them.
About the only thing you can’t do is ignore them. Because they change things. They invent. They imagine. They heal. They explore. They create. They inspire. They push the human race forward.
Maybe they have to be crazy.
How else can you stare at an empty canvas and see a work of art? Or sit in silence and hear a song that’s never been written? Or gaze at a red planet and see a laboratory on wheels?
We make tools for these kinds of people.
While some see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.”
O sistema possui praticamente, senão, tudo que o Linux possui de bom, mas possui tudo o que falta no mesmo. Possui muito do que o Windows possui de bom, mas não possui o que ele possui de ruim: possui um núcleo estável baseado em Unix, mas ao mesmo tempo possui uma vasta gama de aplicações comerciais que existem no Windows, além de ser extremamente fácil e intuitivo.
A qualidade do hardware também dá um show. São peças escolhidas a dedo dentro de um design de encher os olhos… vale cada centavo.
Com ele vou ter uma facilidade monstra para desenvolver meu projeto de mestrado… Acho que vai potencializar minha produtividade.
Ah, pra quem achar que estou blefando, só precisei do windows por causa do Visual Studio, mas assim que terminar o projeto que estou desenvolvendo nele (em breve) a VM morre.
Uma dica pra quem tá chegando é o post do Fábio Akita:
http://www.akitaonrails.com/2009/07/20/off-topic-comprei-meu-primeiro-mac-e-agora
Abraços!