dijous, febrer 12

 

Last news

Bé, només publico aquest post per avisar del meu altre rss:
http://personal.telefonica.terra.es/web/oscarmartinez/v2/rss.xml
Sí, es estrany que en tingui dos, però mira també tinc web i bloc i fotolog i coses i no per això ho trec, penseu en motius històrics i econòmics. i Wala!! dos posts en dos dies, tot un récord XD

P.D. sí el problema dels espais ja el conec, passo d'investigar-ho, em fa pal XD.

P.D.2. l'article preferit del Domingo és quest: http://personal.telefonica.terra.es/web/oscarmartinez/v2/+240708+0312Converting+xml+to+html.html, ja que es un meta-article...sona molt powerfull!! i ehh, ho podria ser més.

P.D.3. Qui no entengui el que dic que simplement faci un /ignore :)

Etiquetes de comentaris:


 

Hotmail and POP3

Finally, it seems that you can get hotmail via POP3 for free.

Just in some countries for now: United Kingdom, Canada, Australia, France, Japan, Spain, Germany, Italy, and the Netherlands.

This is the configuration you need:

POP server: pop3.live.com (Port 995)
POP SSL required? Yes
User name: Your Windows Live ID, for example yourname@hotmail.com
Password: The password you usually use to sign in to Hotmail or Windows Live
SMTP server: smtp.live.com (Port 25)
Authentication required? Yes (this matches your POP username and password)
TLS/SSL required? Yes

http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!32413.entry

Etiquetes de comentaris: ,


diumenge, gener 18

 

Playing Games

Yesterday, I started to play a game on my wii called safecracker. It basically consists on solving some puzzles.

After doing 3 or 4 puzzles, I started a puzzle but couldn't finish it as I don't like to spent too much time on every puzzle.

So I though I better bruteforce it. The puzzle basically consist on a magnetic ball, some walls and some holes. All you have to do is put the ball in one hole. But you only can move up, down, left, right with four buttons and if there's no wall you just fall off the board and you have to start over again.



So I just did a little program to help me with this task. It's quick and dirty and ...well has some ugly hacks because I was too lazy to do it the right way as it would take more time...so be careful with the Stack Overflows as I was too lazy to avoid loops...

So...here's again the puzzle:
------X-----X--------X---
---XX-----X--------------
------------------X------
----------------X-----X--
--C----------XX-C--X-----
----X-O------------------
---------------X---X---X-
------X------X-----X-----
--X---------X------------
------C--X----X--X------X
--------------X-----XX---
X------------X-----------
---X---------------------
-----X-------------C-X---
--X-------------X----XX--
-------------------------
---------------X---------
----X---------X----------
------------X---X--------
-----------------------X-

and one solution, the shortest :)

Solution:
UP RIGHT DOWN LEFT DOWN RIGHT DOWN LEFT UP RIGHT UP RIGHT UP RIGHT DOWN RIGHT DOWN LEFT UP RIGHT DOWN

and here's the code:

Main.java
Table.java
Cell.java
Solver.java
SegMov.java
Position.java
Moves.java

UPDATE: Improved the code a bit and added license

Etiquetes de comentaris: , ,


dijous, agost 28

 

IEEE 802.14 HFC

Presentació sobre l'estàndar no aprovat de la IEEE 802.14 HFC, per xarxes híbrides fibra òptica - coaxial. Aquest estàndar el podem situar a la subcapa MAC (Control d'Accés al Medi) de la capa d'enllaç de dades (2) del model OSI.
Podeu veure la presentació fent clic al seguent enllaç: 802.14 HFC

Etiquetes de comentaris: , ,


dijous, agost 7

 

Digitalització de veu en telèfon fixe

El rang de freqüències d'escolta d'una persona humana van de 20Hz a 20kHz. En un canal vocal el rang de freqüència va de 300 a 3400 Hz tot i que l'ample de banda real del canal és de 4000 Hz, entre 0 i 4000 Hz. Per fer la conversió de senyal analògic a digital s'utilitza PCM (Pulse-code modulation) Per fer-ho aplica el criteri de Nyquist que bàsicament diu que si agafem mostres a intervals que siguin el doble o més de la frequència màxima, el mostreig contindrà tota la informació de la senyal original.

Així doncs, sabent que el canal vocal té una freqüencia màxima de 4000 Hz, es requeriren 8000 mostres per segons. Un cop fet això a cada mostra se li assigna un valor digital. Un sistema PCM de 4 bits, ens donaria 16 nivells, si es de 8 bits ens donarà 2^8 = 256 nivells que és la que utilitzarem.

Tenim doncs 8000 mostres per segon amb 8 bits cada mostra, això ens dona una velocitat de 64 kbps. Si necessitem 8000 mostres en un segon, això vol dir que haurem d'agafar una mostra cada 125 microsegons.

La codificació és no lineal, això significa que els nivells no estàn separats de forma constant sino que la diferència entre els nivells més centrals de la senyal és més petita que en la dels nivells més exteriors. Això redueix la distorsió en el senyal i permet que hi hagi un nivell de detall més gran a les converses de baix volum.

Etiquetes de comentaris: ,


dijous, juliol 3

 

Linking

It's quite common to call functions of a c library from a c++ program. When doing that we have to take into account that C compilers do not name mangle symbols in the way that C++ compilers do.

Name mangling "is a technique used to solve various problems caused by the need to resolve unique names for programming entities in many modern programming languages". from wikipedia
For example: We have two functions

int f (void) {return 0;}
int f (int) {return 1;}

C does not permit two functions with the same name. The compiler therefore will encode the type information in the symbol name, the result being something resembling:

int__ f_v (void) {return 0;}
int __f_i (int) {return 1;}

It will do the same with non duplicated functions.

Knowing these and taking into account that C compilers do not name mangle symbols in the way that C++ compilers do, what we have to do to be able to link c and c++ code is to prototype these functions with extern "C"

More info: Mixing c and cpp

Etiquetes de comentaris: ,


divendres, abril 11

 

Developing c++/Qt with eclipse

Actually, it's pretty easy. First of all you need to install eclipse and eclipse-cdt:
apt-get install eclipse eclipse-cdt
After that, you have to download qt eclipse integration plug-in from http://trolltech.com/developer/downloads/qt/eclipse-integration-download

Installation instructions are here: http://trolltech.com/developer/downloads/qt/qteclipse-installmanual
Basically you have just to copy the files where you have your eclipse plugins folder. It usually is
/usr/local/eclipse/ or usr/lib/eclipse

If you have no root permissions but you already have eclipse installed on your system, you can install eclipse-cdt and qt integration in your home directory. Just install cdt tools from Help->Software updates->"Find and install" "Search for new updates" Select "Callisto Discovery Site" and C/C++ in the list it'll be shown. If you have no permissions it'll ask you where to install the plugins, just select your home directory. It'll make a dir called "eclipse" where you specify. You'll have to install qt integration in that folder.

then start eclipse with:
eclipse -clean
Now, go to window->preferences Qt and click "Add..." and configure qt settings:


To import an existing project go to File->import Qt->Qt Project and select you .pro.
I also needed to modify some settings
My main executable is inside a directory called app and has some relative addresses so, i needed to specify my working
directory in Run->Debug... Arguments "Working directory:" to ${workspace_loc:main}/app I also had a widget under the folder widget which was used by my main application so i had to specify the path under Debugger "Debugger Options" "Shared Libraries" Add.. ~/FIB/VIG/Myapp/widget in my case. If the debugger tells you something like "No source file named xxx.cpp" try adding the path to Run->Debug... Source

That's all, happy coding :)

Etiquetes de comentaris: , ,


dimarts, març 18

 

Ultrastar-ng powa!!

Potser coneixereu el programa Ultrastar-ng, es com un clon del SingStar de la PlayStation2 per Linux, i tb té un germà anomenat Ultrastar que es per Windows.

Doncs, clar, si volem posar cançons, ens trobem amb un problema, n'hi ha moltes per l'Ultrastar de Windows i el de Linux només admet codificació UTF-8, així que tenim un problema de codificacions...Anem a arreglar-ho i a convertir les lletres de les cançons i els noms dels fitxers a UTF8.

Així que aquí teniu un petit scriptillo (una mica cutrillo sí, però quan hi ha pressa..). Cal pensar que el nom del directori i els dels fitxer amb la lletra a dins ha de ser el mateix i que es fa l'assumpció que cap directori o fitxer conté un guió baix en el seu nom. L'script no converteix tot a minúscules, però seria molt fàcil posar-ho. Recordeu que Linux es Case Aware ( no es el mateix JuAkEr que Juaker).

Fa faltar tenir instal·lat el iconv, el convmv i el rename


#!/bin/bash
FROM=iso-8859-1
TO=UTF-8
ICONV="iconv -f $FROM -t $TO"
CONV="convmv -f $FROM -t $TO -r --notest --replace"
DIR=~/.ultrastar/songs/
cd $DIR
$CONV *
rename 'y/ /_/' *
ls $DIR | while read fn; do
cd $DIR${fn}
pwd
rename 'y/ /_/' *
$ICONV < ${fn}.txt > ${fn}.txt2
rm ${fn}.txt
mv ${fn}.txt2 ${fn}.txt
rename 'y/_/ /' *
cd ..
done
rename 'y/_/ /' *

Etiquetes de comentaris: , ,


dissabte, febrer 16

 

Modificant l'amsn

A vegades trobem coses en alguns programes que no ens acaben d'agradar i ens agradaria personalitzar-ho. En segons quins programes, tot i tenir un munt d'opcions, no podem o no trobem com fer que es comporti com a nosaltres ens agradaria. És en aquest cas quan va molt bé disposar del codi font del programa.

En aquest cas us parlaré del programa amsn (Alvaro's messenger XD), un clon del programa windows live messenger. El que vull fer és que aquest programa no em mostri una finestra de notificació (aquella que surt a sota a la dreta dient tal contacta ha iniciat sessió) quan es connecti un contacte que estigui blocat però que sí estigui a la meva llista de contactes.

El primer pas és esbrinar en quin llenguatge està escrit l'amsn. La web del programa és http://www.amsn-project.net/ i el codi està a http://www.amsn-project.net/download.php. Allà expliquen que està escrit en tcl i que utilitzen tk pel tema gràfic. Tampoc l'aprendrem gaire, que no fa falta pel que volem fer.

El primer que volem saber és si un contacte està blocat. Mirant la API de l'amsn http://amsn.sourceforge.net/devwiki/tiki-index.php?page=AMSN+API i mirant les preguntes freqüents http://www.amsn-project.net/wiki/Frequently_Asked_Questions veiem que hi ha una funció anomenada getLists:

proc getLists {user_login}

Returns a list with the lists the user belongs to (AL, BL, FL, RL).
i a les PMF:
Allow List (AL), Block List (BL), Forward or Contact List (FL) and Reverse List (RL).
Bé, més o menys ja ho tenim, però on posem el codi?
Sabem que surt un missatge on posa tal persona s'acaba de connectar.

Així que busquem aquesta cadena al codi, cosa que ens porta al fitxer langca al directori lang on hi ha les traduccions:

logsin s'acaba de connectar
Cerquem logsin en el codi i veiem que podem trobar la cadena a protocol.tcl.
Obrim aquest fitxer i cerquem la cadena (a la segona ocurrència), a la línia 4849 trobem:

if { (([::config::getKey notifyonline] == 1 &&
[::abook::getContactData $user notifyonline -1] != 0) ||
[::abook::getContactData $user notifyonline -1] == 1) } {
::amsn::notifyAdd "$short_name\n[trans logsin]." "::amsn::chatUser $user" online online $user
}
Aquí ens adonem que aquest és el codi que buscàvem, llavors modifiquem la condició de l'if per que només ens mostri la notificació si el contacte no està blocat

[lsearch [::abook::getLists $user] BL] == -1
Així que si cerca a les llistes de l'usuari que es connecti i no troba (retorna -1) entre elles la de Bloquejats (BL) mostra el missatge.

Si utilitzeu el tema de les alarmes de l'amsn potser també voldreu modificar el codi de just a sota, aquest però no es el meu cas.

Si voleu fer més modificacions una gran ajuda és veure els logs o la consola,
ctrl+s: status log
ctrl+shift+c: la consola
ctrl+d: msn protocol debug

Salut

Etiquetes de comentaris: , ,


dijous, novembre 22

 

FileZilla en català a kubuntu

El paquet del FileZilla, actualment només porta l'idioma anglès, per tenir-lo en català fem el següent:

cd /usr/share/fileZilla
sudo mkdir locales
cd locales
sudo mkdir ca_ES
cd ca_ES
sudo wget http://www.filezilla-project.org/locales/ca_ES.mo
sudo mv ca_ES.mo filezilla.mo



A partir d'aquí obriu l'aplicació i ja està, si no aneu a Edit->Settings->Language i seleccioneu Catalan.

També es pot fer via el vostre gestor de fitxers, per exemple el d3lphin, aneu a K->executa ordre i escriviu "kdesu d3lphin".
Baixeu-vos primer el fitxer .mo al vostre Escriptori o home amb el Firefox, per exemple i després el copieu a /usr/share/filezilla/locales/ca_ES/ i el reanomeneu a filezilla.mo

Etiquetes de comentaris: , ,


dimarts, novembre 20

 

Risk assesment process

Etiquetes de comentaris: ,


dilluns, octubre 22

 

Comandes Telnet

Instruccions Telnet

user: instrucció utilitzada per a ingressar com un determinat usuari.

pass: instrucció utilitzada per a ingressar la password o paraula clau que ens donarà accés al nostre compte de correu.

stat: instrucció utilitzada per a mostrar el nombre de missatges que hi ha en la bústia de correu i la grandària que ocupen tots ells (el total dels missatges).

list: instrucció utilitzada per a llistar els missatges que tenim un després d'un altre, mostrant-nos individualment, la grandària que ocupa cadascun d'ells i el total final.

retr (num): instrucció utilitzada per a llegir en pantalla un determinat missatge. La seqüència deu indicar-se com retr, seguit d'un nombre que indica el missatge a llegir.

top (num) nLin: instrucció de característiques molt similars al instrucció retr, amb l'excepció, que en l'argument nLin, s'indica el nombre de línies que desitgem llegir.

dele (num): instrucció utilitzada per a eliminar un missatge indicat en l'argument num. Perquè l'esborrat sigui efectiu, deurem haver tancat l'accés a la bústia de correu de forma normal.

rset: instrucció utilitzada per a comprovar la bústia a la recerca de missatges nous.

host (dir): instrucció utilitzada per a accedir a l'adreça host donada en l'argument dir.

mbox (file): instrucció utilitzada per a accedir a una determinada bústia donat en l'argument file.

quit: instrucció utilitzada per a tancar la connexió.

Etiquetes de comentaris: ,


dilluns, octubre 1

 

LATEX a blogger





Sempre té la seva gràcia, vist a http://wolverinex02.googlepages.com/emoticonsforblogger2

Etiquetes de comentaris: , ,


dimarts, setembre 25

 

Repositoris de Treviño, amsn i kubuntu

Potser heu volgut instal·lar una versió més recent de l'amsn utilitzant els repositoris del Treviño. Després haureu actualitzat l'amsn i a l'obrir-lo potser us heu trobat que els caràcters especials no es veuen bé.

Per exemple enlloc de ó veieu Ĩ o coses semblants. Per solucionar-ho aneu a Compte->Preferències-> Aparença premeu el botó "Canviar la codificació" i seleccioneu "utf-8".

A continuació aneu a ~/.amsn on ~ és el vostre directori d'usuari (/home/usuari/) i editeu el fitxer langlist.xml

i canvieu l'etiqueta encoding perquè quedi així:

<lang>
<langcode>ca</langcode>
<name>Catalan-Valencian (Català-Valencià)</name>
<version>1.123</version>
<encoding>utf-8</encoding>
</lang>

feu el mateix amb ca_VC.

Etiquetes de comentaris: , ,


dissabte, setembre 22

 

Creant un document amb LateX

Exemple de document amb LateX

Resultat compilat: 3.zip

%Comentari
%continuació de comentari
\documentclass{article}
\usepackage[catalan,activeacute]{babel}
\usepackage{cancel}
%\usepackage{ulem}
\begin{document}
\title{F'isica II}
\author{$\grave O$scar Mart'inez}
\date{2004}
\maketitle
\section{Electricitat}
\subsection{Camp electrost$\grave \textbf{a}$tic}
Caracter'istiques:

\begin{itemize}
\item L'inies obertes $\Leftrightarrow \nabla \vec{E}\neq 0$ ,
$\oint_s \vec{E} d \vec{s} \neq 0$ , $+q \rightarrow -q$
\item Conservatiu $\oint_c \vec{E} dl = 0$ , $\nabla x \vec{E} =
0$ \emph{(rotacional = 0)}
\end{itemize}
Distribucions de c$\grave a$rrega:
\begin{itemize}
\item distribuci'o lineal $dq = \lambda dl$
\item distribuci'o superficial $dq = \sigma ds$
\item distribuci'o vol'umica $dq = \rho dV$
\item \emph{nota: $Q_t =\int dq$}
\end{itemize}
\subsection{Llei de Coulomb}
\begin{itemize}
\item $|E| = \frac {q}{4 \pi \epsilon_0 d^2} o$
\begin{equation}
F_{12}=\frac{1}{4 \pi \epsilon_0}\frac{q_1q_2}{r_{12}^2}
\textbf{$\widehat{r}_{12}$} = \vec{E}_2q_1
\end{equation}
\item Direcci'o: uni'o de c$\grave a$rregues
\item Sentit: $q>0$ cap a fora , $q<0$ q_t="\int" e="\int" de_x =" 0" de_y =" 2|dE_{1y}|\cos" alpha =" \frac{2" alpha =" \frac{2" e =" $\int_0^{\alpha_1}\frac{2" alpha =" \frac{x}{y}" x=" y" dx =" \frac{y}{\cos^2" alpha =" \frac{y}{r}\Rightarrow" r =" \frac{y}{\cos" e =" $\int_0^{\alpha_1}\frac{2" e =" $\frac{\lambda">0$ , $Q_t= \lambda 2 \pi R$}(passa el mateix que abans i els camps direcci'o x
s$'$anul$\cdot$len si l$'$anell t'e l$'$eix en la direcci'o y)E = $\int_{mig anell} \frac{2\lambda dl}{4 \pi \epsilon_0
r^2}\cos\alpha$=$\frac{2 \lambda}{4 \pi \epsilon_0 r^2}\cos\alpha
\int_{mig anell}dl$ = $ \frac{2 \pi R \lambda \cos\alpha}{4
\pi\epsilon_0 r^2}$$\lbrack $Com que $\cos \alpha = y/r , r = \sqrt{R^2+y^2}\rbrack$E= $\frac{2 \pi R \lambda y}{4 \pi \epsilon_0 (R^2+y^2)^{3/2}}$$\lbrack $Com que $Q_t= \lambda 2 \pi R$$\rbrack$
\begin{equation}
\fbox{E= $\frac{Q_t y}{4 \pi \epsilon_0 (R^2+y^2)^{3/2}}$}
\end{equation}
\subsubsection{Disc}
\emph{notes: $\lambda$ uniforme $>0$ , disc =
uni'o d$'$anells, eix del disc a l$'$eix $\cal X$ , $Q_t= \sigma
\pi R^2$. Considerant un anell de radi a i amplada da. La seva
$\grave a$rea 'es $dA=2 \pi a da$ i la seva c$\grave a$rrega $dq =
\sigma dA$ $\Rightarrow$ $dq = 2 \pi \sigma a da$}Equaci'o de l$'$anell per a l$'$eix x: E= $\frac{2 \pi a \sigma
x}{4 \pi \epsilon_0 (R^2+x^2)^{3/2}}$E = $\int_0^R \frac{2 \pi a \sigma x}{4 \pi \epsilon_0
(R^2+x^2)^{3/2}}$ integrant$\cdots \emph{tipus $\int u^n du$}$ amb
$u=x^2 + a^2$ i $n = \frac{-3}{2}$
\begin{equation}
\fbox{E= $\frac{2 \pi \sigma}{4 \pi \epsilon_0}$(1- $\frac{x}{
\sqrt{x^2+R^2}})$}
\end{equation}
\subsubsection{Proximitat d$'$un pla infinit} Si R $\mapsto \infty$
i x $\mapsto$ 0 llavors l$'$equaci'o anterior es transforma en:
\begin{equation}
\fbox{$E = \frac{2 \pi \sigma}{4 \pi \epsilon_0}$ per a $x>0$ o $E
= \frac{-2 \pi \sigma}{4 \pi \epsilon_0}$ per a $x<0$} dvol=" \int_{vol}\frac{\rho">$0}$\oint_s \vec{E} d\vec{S} = \frac{Q_{int}}{\epsilon_0}$Com que
d$\vec S$ paral$\cdot$lel al camp $\Rightarrow \oint_s \vec{E}
d\vec{S} = E 4 \pi r^2 $ i $Q_{int}=Q_t = \sigma 4 \pi R^2$$E4 \pi r^2= \frac{\sigma 4 \pi R^2}{\epsilon_0} \Rightarrow E
=\frac {\sigma R^2}{\epsilon_0}$\subsubsection{Potencial}
Treball necessari per a moure la c$\grave a$rrega d$'$un punt a un
altre en contra del camp.
\begin{equation}
V_b - V_a = - \int_a^b \vec E d \vec l
\end{equation}
Si $V(\infty) = 0$ , $V_b = - \int_{\infty}^b \vec E d\vec l ,
\vec E = - \vec \nabla V$E pot tenir discontinuitats E $\bot$ a les superf'icies potencialsV continu\section{Refer$\grave \textbf{e}$ncies bibliogr$\grave \textbf{a}$fiques}
He utilitzat refer$\grave e$ncies de \cite{Tipler:2000}
\begin{thebibliography}{9}
\bibitem[Tipler Paul A, 2000]{Tipler:2000} Tipler Paul A \textsl{Fisica}, Revert'e ,2003.
\end{thebibliography}
\end{document}

Etiquetes de comentaris: ,


Subscriure's a Missatges [Atom]