sexta-feira, 15 de janeiro de 2010

amarok.sql

CREATE DATABASE amarok;
USE amarok;
CREATE TABLE tags (url VARCHAR(900),dir VARCHAR(900),createdate INTEGER,modifydate INTEGER,album INTEGER,artist INTEGER,composer INTEGER,genre INTEGER,title VARCHAR(255),year INTEGER,comment TEXT,track NUMERIC(4),discnumber INTEGER,bitrate INTEGER,length INTEGER,samplerate INTEGER,filesize INTEGER,filetype INTEGER,sampler BOOL,bpm FLOAT,deviceid INTEGER);
CREATE TABLE album (id INTEGER PRIMARY KEY ,name VARCHAR(255));
CREATE TABLE artist (id INTEGER PRIMARY KEY ,name VARCHAR(255));
CREATE TABLE composer (id INTEGER PRIMARY KEY ,name VARCHAR(255));
CREATE TABLE genre (id INTEGER PRIMARY KEY ,name VARCHAR(255));
CREATE TABLE year (id INTEGER PRIMARY KEY ,name VARCHAR(255));
CREATE TABLE images (path VARCHAR(900),deviceid INTEGER,artist VARCHAR(255),album VARCHAR(255));
CREATE TABLE embed (url VARCHAR(900),deviceid INTEGER,hash VARCHAR(900),description VARCHAR(255));
CREATE TABLE directories (dir VARCHAR(900),deviceid INTEGER,changedate INTEGER);
CREATE TABLE uniqueid (url VARCHAR(900),deviceid INTEGER,uniqueid VARCHAR(32) UNIQUE,dir VARCHAR(900));
CREATE TABLE admin (noption VARCHAR(255), value VARCHAR(255));
CREATE TABLE related_artists (artist VARCHAR(255),suggestion VARCHAR(255),changedate INTEGER );
CREATE TABLE amazon ( asin VARCHAR(20), locale VARCHAR(2), filename VARCHAR(33), refetchdate INTEGER );
CREATE TABLE lyrics (url VARCHAR(900), deviceid INTEGER,lyrics TEXT, uniqueid VARCHAR(32));
CREATE TABLE playlists (playlist VARCHAR(255), url VARCHAR(900), tracknum INTEGER );
CREATE TABLE labels (id INTEGER PRIMARY KEY , name VARCHAR(255), type INTEGER);
CREATE TABLE tags_labels (deviceid INTEGER,url VARCHAR(900), uniqueid VARCHAR(32), labelid INTEGER REFERENCES labels( id ) ON DELETE CASCADE );
CREATE TABLE podcastchannels (url VARCHAR(900) UNIQUE,title VARCHAR(255),weblink VARCHAR(900),image VARCHAR(900),comment TEXT,copyright VARCHAR(255),parent INTEGER,directory VARCHAR(255),autoscan BOOL, fetchtype INTEGER, autotransfer BOOL, haspurge BOOL, purgecount INTEGER );
CREATE TABLE podcastepisodes (id INTEGER PRIMARY KEY , url VARCHAR(900) UNIQUE,localurl VARCHAR(900),parent VARCHAR(900),guid VARCHAR(900),title VARCHAR(255),subtitle VARCHAR(255),composer VARCHAR(255),comment TEXT,filetype VARCHAR(255),createdate VARCHAR(255),length INTEGER,size INTEGER,isNew BOOL );
CREATE TABLE podcastfolders (id INTEGER PRIMARY KEY , name VARCHAR(255),parent INTEGER, isOpen BOOL );
CREATE TABLE statistics (url VARCHAR(900),deviceid INTEGER,createdate INTEGER,accessdate INTEGER,percentage FLOAT,rating INTEGER DEFAULT 0,playcounter INTEGER,uniqueid VARCHAR(32) UNIQUE,deleted BOOL DEFAULT 0,PRIMARY KEY(url, deviceid) );
CREATE TABLE devices (id INTEGER PRIMARY KEY ,type VARCHAR(255),label VARCHAR(255),lastmountpoint VARCHAR(255),uuid VARCHAR(255),servername VARCHAR(255),sharename VARCHAR(255));
CREATE INDEX album_idx ON album( name );
CREATE INDEX artist_idx ON artist( name );
CREATE INDEX composer_idx ON composer( name );
CREATE INDEX genre_idx ON genre( name );
CREATE INDEX year_idx ON year( name );
CREATE UNIQUE INDEX url_tag ON tags( url, deviceid );
CREATE INDEX album_tag ON tags( album );
CREATE INDEX artist_tag ON tags( artist );
CREATE INDEX composer_tag ON tags( composer );
CREATE INDEX genre_tag ON tags( genre );
CREATE INDEX year_tag ON tags( year );
CREATE INDEX sampler_tag ON tags( sampler );
CREATE INDEX images_album ON images( album );
CREATE INDEX images_artist ON images( artist );
CREATE INDEX images_url ON images( path, deviceid );
CREATE UNIQUE INDEX embed_url ON embed( url, deviceid );
CREATE INDEX embed_hash ON embed( hash );
CREATE UNIQUE INDEX directories_dir ON directories( dir, deviceid );
CREATE INDEX uniqueid_uniqueid ON uniqueid( uniqueid );
CREATE INDEX uniqueid_url ON uniqueid( url, deviceid );
CREATE INDEX tags_artist_index ON tags( artist );
CREATE INDEX tags_album_index ON tags( album );
CREATE INDEX tags_deviceid_index ON tags( deviceid );
CREATE INDEX tags_url_index ON tags( url );
CREATE INDEX embed_deviceid_index ON embed( deviceid );
CREATE INDEX embed_url_index ON embed( url );
CREATE INDEX related_artists_artist ON related_artists( artist );
CREATE INDEX url_podchannel ON podcastchannels( url );
CREATE INDEX url_podepisode ON podcastepisodes( url );
CREATE INDEX localurl_podepisode ON podcastepisodes( localurl );
CREATE INDEX url_podfolder ON podcastfolders( id );
CREATE INDEX devices_type ON devices( type );
CREATE INDEX devices_uuid ON devices( uuid );
CREATE INDEX devices_rshare ON devices( servername, sharename );
CREATE UNIQUE INDEX lyrics_url ON lyrics( url, deviceid );
CREATE INDEX lyrics_uniqueid ON lyrics( uniqueid );
CREATE INDEX playlist_playlists ON playlists( playlist );
CREATE INDEX url_playlists ON playlists( url );
CREATE UNIQUE INDEX labels_name ON labels( name, type );
CREATE INDEX tags_labels_uniqueid ON tags_labels( uniqueid );
CREATE INDEX tags_labels_url ON tags_labels( url, deviceid );
CREATE INDEX tags_labels_labelid ON tags_labels( labelid );
CREATE UNIQUE INDEX url_stats ON statistics( deviceid, url );
CREATE INDEX percentage_stats ON statistics( percentage );
CREATE INDEX rating_stats ON statistics( rating );
CREATE INDEX playcounter_stats ON statistics( playcounter );
CREATE INDEX uniqueid_stats ON statistics( uniqueid );

domingo, 26 de abril de 2009

Cedilla - layout Internacional

Add : en no último parâmetro

sudo vim /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Modificar o mapa de caracteres :

sudo gedit /usr/share/X11/locale/en_US.UTF-8/Compose





quarta-feira, 14 de janeiro de 2009

why?

Nós vamos morrer, e isso nos torna afortunados. A maioria das pessoas nunca vai morrer, porque nunca vai nascer. As pessoas potenciais que poderiam estar no meu lugar, mas que jamais verão a luz do dia, são mais numerosas que os grãos de areia da Arábia. Certamente esses fantasmas não nascidos incluem poetas maiores que Keats, cientistas maiores que Newton. Sabemos disso porque o conjunto das pessoas possíveis permitidas pelo nosso DNA excede em muito o conjunto de pessoas reais.
Apesar dessas probabilidades assombrosas, somos eu e você, com toda a nossa banalidade, que aqui estamos...

quarta-feira, 17 de dezembro de 2008

Vim Reference




Editor VIM

Editor VI - Guia de Referência

Aurélio Marinho Jargas (http://aurelio.net)

Entrar e Sair

  • vi arquivo.txt
  • :q

Entrar, Inserir Texto, Salvar e Sair

  • vi arquivo.txt
  • i
  • Minha primeira frase no VI.
  • :wq

Entrar, Alterar Texto e Sair sem Salvar

  • vi arquivo.txt
  • dd
  • :q!

Entrar, Alterar Texto, Salvar em Outro Arquivo e Sair

  • vi arquivo.txt
  • yy
  • p
  • :w arquivo-novo.txt
  • :q

Configurar o VI

  • vi ~/.vimrc
  • i
  • set vb ru nu
  • set ic is hls scs
  • :wq

Repetir a Primeira Linha 2 Vezes e Apagar a Última

  • vi arquivo.txt
  • gg
  • yy
  • p
  • p
  • G
  • dd

Repetir Comandos

  • vi arquivo.txt
  • A
  • FIM
  • j
  • .
  • j
  • .

Abrir Dois Arquivos Simultaneamente

  • vi arquivo.txt
  • :split ~/.vimrc
  • Ctrl+W
  • Ctrl+W
  • :q
  • :q

Obter Ajuda

  • vi arquivo.txt
  • :help


Comandos de Arquivo
:q Sai do VI
:w Salva alteraçoes feitas
:wq Salva aterações e sai do VI
:q! Sai sem salvar
:w abc Grava arquivo com o nome 'abc'
:r abc Insere o conteúdo do arquivo 'abc'
:e abc Edita o arquivo 'abc'

Modo de Inserção
i Entra no modo de Inserção
a Entra no modo de Inserção, após o cursor
o Entra no modo de Inserção, em uma nova linha
Sai do modo de Inserção

Copiar, Cortar e Colar
yy Copia a linha inteira
5yy Copia as 5 próximas linhas
dd Apaga a linha
5dd Apaga 5 linhas
x Apaga uma letra
5x Apaga 5 letras
p Cola o trecho copiado ou apagado
V Seleção visual de linhas

Pulos
gg Pula para a primeira linha
G Pula para a última linha
44G Pula para a linha número 44
w Pula para a próxima palavra
b Pula para a palavra anterior
{ Pula para o parágrafo anterior
} Pula para o próximo parágrafo
( Pula para a frase anterior
) Pula para a próxima frase
f. Pula até o próximo ponto (.), na mesma linha
`` Desfaz o pulo, volta

Apagando com esperteza
dgg Apaga até o início do arquivo
d0 Apaga até o início da linha atual
dw Apaga a palavra
d4b Apaga as quatro palavras anteriores
df. Apaga até o próximo ponto
d) Apaga até o fim da frase

Outros
J Junta a próxima linha com a atual
u Desfaz o último comando
Ctrl+R Refaz o último comando desfeito
. Repete o comando anterior
hjkl Movimenta o cursor
/ Pesquisa um texto
n Vai para o próximo resultado da pesquisa
:%s/a/b/g Troca 'a' por 'b' em todo o texto
:!cmd Executa o comando externo 'cmd'
:r!cmd Insere o resultado do comando externo 'cmd'

Amarok Mysql

#!/bin/bash

#Migração banco de dados sqlite Amarok para mysql.

sudo aptitude install mysql-server-5.0 mysql-client-5.0 mysql-admin-common php5 mysql-navigator mysql-query-browser libmysqlclient12-dev mysql-admin sqlite3 phpmyadmin
echo "É necessário criar um banco amarok com todos os privilégios no banco para o usuário"
sleep 2
cd .kde/share/apps/amarok
sqlite3 collection.db .dump > amarok.sql
cat amarok.sql | grep -v "INSERT INTO admin" | \perl -pe 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO \1 VALUES/' > amarok2.sql
cat amarok2.sql | \grep -v "BEGIN TRANSACTION;" | \grep -v "COMMIT;" | \grep -v "CREATE TABLE" | \grep -v "INSERT INTO directories VALUES" | \grep -v "CREATE INDEX" | \grep -v "CREATE UNIQUE INDEX" > amarok_dados.sql
cat amarok.sql | \grep -v "BEGIN TRANSACTION;" | \grep -v "COMMIT;" | \grep -v "INSERT INTO" > amarok_estrutura.sql
replace "VARCHAR(1024)" "VARCHAR(996)" -- amarok_estrutura.sql
replace "VARCHAR(256)" "VARCHAR(255)" -- amarok_estrutura.sql
echo "Apague todas as linhas que não começam com CREATE"
sleep 3
vim amarok_estrutura.sql
echo "Fazendo dump no banco de dados"
echo "Dump Estrutura do banco"
cat amarok_estrutura.sql | mysql -u root -p amarok
echo "Dump Dados do banco"
cat amarok_dados.sql | mysql -u root -p amarok
echo "Dump executado com sucesso!"
cd

Basic smb.conf

[global]
workgroup = GROUPNAME
server string = COMPUTERNAME
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
log file = /var/log/samba/log.%m
max log size = 100
security = user
passdb backend = tdbsam
; realm = MY_REALM
; password server =
; domain master = yes
; domain logons = yes
; logon script = %m.bat
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
; logon path =
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"
; local master = no
; os level = 33
; preferred master = yes
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
; load printers = yes
; cups options = raw
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; encrypt passwords = yes
; guest ok = no
; guest account = nobody
username map = /etc/samba/smbusers
; store dos attributes = yes
#============================ Share Definitions ==============================

;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = @ggpli

;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = No
; printable = yes

;[netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

;[Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

[public]
path = /home/PASTA
writeable = yes
; browseable = yes
valid users = USUARIO, USUARIO