Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - westwest

Páginas: [1] 2 3 ... 12
1
Preguntas, Ideas y Reclamaciones. / Sugerencia - Desbloquear palabras
« en: 24 de Agosto de 2011, 20:46:21 pm »
Hace tiempo que tengo esto en mente y por fin me ha dado por proponerlo.
Es algo muy sencillo y sin mucha repercusión, y es desbloquear palabras como pi.to y po.ya.
¿Por qué?
Porque es un engorro tener que poner repi.to o apo.ya con puntos, o cosas por el estilo. Además, no creo que el mencionar esas palabras cause mucho daño al foro, de hecho, no sé si en el tiempo que llevo he visto a alguien tratando de hacer spam o tocar las narices con eso.

Es todo, saludos.

2
AJAX / 2 tips al usar AJAX
« en: 01 de Agosto de 2010, 02:08:42 am »
Hola, despues de responder una duda me he propuesto poner estos tips que son muy importantes a la hora de usar ajax, no creo que me extienda demasiado, pero aunque sea corto nos ahorrará muchos dolores de cabeza.

1º usar encodeURIComponent:
Cuando enviamos datos con AJAX, ya sea GET o POST pueden surgir fallos relacionados con los parametros, ya sea post o get.
Independientemente del metodo usado, la estructura será:
"nombre=valor1&mensaje=valor2"
Imaginemos que el valor1 viene dado por un input donde escribo "westwest" y el segundo valor es un textarea (o input...) que pone "Ese post es un copy&paste ¬¬"

Al enviar quedará:
"nombre=westwest&mensaje=Ese post es un copy&paste ¬¬"
Pero... verdaderamente se enviará el mensaje que queremos? SI hacemos la prueba veremos que "mensaje" contendrá "Ese post es un copy", y se añade un nuevo parametro llamado "paste ¬¬"
¿Por qué? El &, inicia otro parametro.
Por ello, encodeURIComponent cambia caracteres que afectan a la URL por una equivalencia %XX que solucionará nuestro problema.

2º cache:
Los navegadores guardan a veces el código de una web para que cargue más rápido en otro momento, esto es tedioso si debemos abrir la misma web con ajax, aunque haya cambiado, devolverá lo mismo.
Se soluciona añadiendo un parametro único a la URL, lo mejor es usar el "equivalente" a time() de PHP en JS, que es:
Código: [Seleccionar]
var date = new Date.getTime();
url += "&time=" + date;

NOTA: Si usas jQuery, puedes usar cache: false en el $.ajax; si lo usas continuamente, puedes usar ajaxSetup para establecerlo por defecto, de esta manera:
Código: [Seleccionar]
$.ajaxSetup({cache:false});

Saludos.

3
CSS / Selectores CSS
« en: 12 de Julio de 2010, 22:17:51 pm »
Me ha parecido raro no ver un tutorial específico para esto, así que voy a hablar de algunos selectores CSS, de CSS3...

Para empezar, los selectores CSS seleccionan (¿De veras?) unos objetos determinados.

Antes, lo más basico son los nombres de etiqueta, clase e id.
Etiqueta:
Se escribe el nombre de la etiqueta HTML que será afectada
Código: [Seleccionar]
div {
// esto afecta a todos los div
}
Se puede usar el comodín * para referirse a cualquier tipo de elemento.
Clase:
Se escribe el nombre de la clase prececido de un punto, esto afectará a todo elemento con class="nombre"
Código: [Seleccionar]
.miclase {
// esto afectaria por ejemplo a <a class="miclase">, <p class="miclase"> etc
}
ID:
Se escribe el nombre de la ID precedido de una almohadilla (#), afectará al elemento con id="LAID"
Código: [Seleccionar]
#hola {
// esto afecta a <a id="hola" o <p id="hola">, recuerda que la ID debe ser UNICA

Se pueden "anidar" para acceder a elementos dentro de los mismos, así:
Código: [Seleccionar]
#hola div.pepe a {
// afecta a cualquier A dentro de un div con la clase "pepe" dentro del elemento con id "hola"
}
Esto no es del todo exacto, pues algo así:
<div id="hola">
<div class="pepe">
<span><a>hola</a></span>
</div>
</div>
El "A" se vería afectado por el CSS, pero a partir de CSS3 (si no me equivoco) se puede hacer que tenga que ser un hijo inmediato, justo debajo:
Código: [Seleccionar]
#hola > div.pepe > a {
blabla
}
Esto no afectaría al codigo anterior, ya que div.pepe si es un hijo directo de #hola, pero el A no lo es, sin embargo sí afectaria al A si fuera así:
<div id="hola">
<div class="pepe">
<a><span>hola</span></a>
</div>
</div>

Esto es lo más basico, a partir de lo cual parten los selectores, los más básicos son los de efectos como son hover y active; están disponibles para cualquier elemento a partir de CSS3, y solo para los links (a) antes de este.

Hover:
Se "activa" al pasar el mouse por encima.
Código: [Seleccionar]
#hola:hover {
// Esto pasa al pasar el mouse por encima del div id="hola"
}
Active:
Se activa al hacer click, es muy útil para hacer botones sobre todo
Código: [Seleccionar]
button:active {
// Esto pasa al hacer click encima de los "button" (es una etiqueta HTML)
}
Focus y blur:
Se activa cuando recibe o pierde el foco, respectivamente.

Otros selectores muy buenos hacen referencia a las etiquetas del elemento:
[atributo]:
Afecta a los elementos que tengan el atributo, por ejemplo:
Código: [Seleccionar]
[hola] {
// cualquier elemento con atributo hola (<a hola="h">, <p hola="biba">)
}
a[title] {
// links con titulo
}
[atributo=valor], [atributo|=valor], [atributo$=valor], [atributo~=valor]:
Hacen referencia a etiquetas cuyo atributo "atributo" sea igual a valor, comience por valor, acabe en valor, y contenga valor, respectivamente.
Código: [Seleccionar]
input[type=button] {
// Hace referencia a inputs que sean botones, UTILÍSIMO!
}
a[href|=/privado] {
// Hace referencia a links que lleven a /privado
}
a[href$=html] {
// Hace referencia a links que llevan a archivos HTML
}
a[smile~=sonrisa pepe] {
// Hae refenia a links cuyo atributo smile contenga sonrisa o pepe
}

Selectores X-child:
first-child y last-child:
Seleccionan el primer y último elemento X, respectivamente.
Código: [Seleccionar]
div:first-child {
// primer div
}
ul.lista li:last-child {
// último elemento li de la lista (ul) con clase "lista"
}

nth-child(expresion):
Estos selectores son MUY utiles. Seleccionan los elementos que cumplan cierta expresión, la expresión puede ser un número entero, odd (impar) o even (par), o una expresión compleja
- número entero: selecciona el elemento que se encuentre en esa posición.
Código: [Seleccionar]
div span:nth-child(3) {
// selecciona el tercer hijo span
}
- odd o even: seleccionan los elementos impares o pares respectivamente.
Código: [Seleccionar]
a > :nth-child(odd) {
// selecciona los elementos impares hijos directos de a
}
div:nth-child(even) {
// selecciona los div pares.
- expresión compleja: estas expresiones permiten seleccionar los elementos en cierto orden.
Código: [Seleccionar]
:nth-child(2n) {
// selecciona el 2º hijo, el 4º, el 6º...
}
:nth-child(5n) {
// selecciona el 5º hijo, 10º...
}
:nth-child(3n+1) {
// selecciona el 3º, 6º, 9º... y además el primero.
}

X-of-type:
Son como los selectores child, existen first-of-type, last-of-type y nth-of-type(expresion). La única diferencia respecto a los anteriores es que a estos no les basta cualquier elemento hijo, han de ser del tipo concreto de elemento, es decir:
Código: [Seleccionar]
div > :first-child {
color: #F00;
}
div > span:first-of-type {
background: #F00;
}
<div><a>este link tiene la letra roja</a><a>este no tiene nada especial</a><span>este span tiene fondo rojo</span><span>este span es normal</span>

Adyacente:
El selector adyacente selecciona un elemento que esté justo en la siguiente posición que el otro.
Código: [Seleccionar]
div + span {
// span que esté despues de un div
}
// ejemplo
span + a {
color: #F00;
}
<span>hola</span><a>este link es rojo</a>
<span>hola</span><b>estoy en negrita</b><a>este link NO es rojo</a>

Hermano:
El selector hermano selecciona todos los elementos hermanos, independientemente de que estén al lado o no.
Código: [Seleccionar]
span ~ a {
// todos los a hermanos de un span, ejemplo:
color: #F00;
}
<div>
<span>soy un span</span>
<a>soy rojo</a>
<h1><a>yo no soy rojo</a></h1>
<b>yo estoy en negrita</b>
<a>yo tambien soy rojo</a>
</div>

Otros:
before y after
Permiten insertar algo antes y/o despues de un elemento
Código: [Seleccionar]
span.pregunta:before {
content: '¿';
}
// insertaria una interrogación antes de cualquier span .pregunta
span:after, p:after {
content: '.';
}
// pone un punto tras cualquier span o p (para vagos)

Esto es todo de momento, más adelante pondré más.

Saludos.

4
(X)HTML / Problema con longitud de texto
« en: 19 de Junio de 2010, 17:01:27 pm »
Hola, hace tiempo hice una web tipo taringa, y hoy un usuario me dice que no puede entrar a su post, entro y veo este error

ERROR
The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: http://blabla/posts/turinga/9830/(Post-100)-Mi-historia-en-Bla-.html

The following error was encountered:

•Zero Sized Reply
Squid did not receive any data for this request.

Your cache administrator is webmaster.



--------------------------------------------------------------------------------

Generated Sat, 19 Jun 2010 14:59:51 GMT by sv29.byethost29.org (squid/2.7.STABLE9)

Haciendo pruebas, he visto que si corto el texto del mensaje a unos 4800 caracteres, no da error. Por lo que he supuesto (y más bien aseguro) que es por la longitud de este texto.

Así que querría saber, como hacer que pueda mostrarse el texto completo...

Salu2

5
Charlas / Offtopic / Traductor español-HOYGAN
« en: 18 de Junio de 2010, 23:46:37 pm »
Todo el mundo anda creando traductores xD, así que hice yo mi español-hoygan.

Para que funcione bien, hay que escribir perfectamente, sin faltas y usando puntos.
Aunque no está acabado :P

TRRADUSTOR HOYGANME

6
Charlas / Offtopic / Politica
« en: 08 de Junio de 2010, 20:40:37 pm »
Para no desviar :D

Guero, decías que la culpa la tienen los estudiantes... vamos a ver...
La culpa es de la especulación, se fue inchando la burbuja y explotó, no tienen nada que ver los estudiantes... Esto es una crisis global, no por 4 estudiantes de mierda, y en el resto de países compensarían pues generalmente son más aplicados y tienen mejor sistema de educación.

7
Minichat o MC / Proyecto de MC - ХОЗГАРРИЛИКОХ МЦ
« en: 28 de Mayo de 2010, 16:02:49 pm »
ХОЗГАРРИЛИКОХ МЦ

Rodrinete y yo queriamos programar alguna cosilla juntos, que fuera sencillo. Y dijimos, ¡un MC!
Como en el asunto del diseño somos la os.tia... de malos usaremos (por desgracia) habbo, que está todo hecho.

- Será sin base.

- Pensamos liberar el MC, y hacerlo lo más configurable posible.

- Usará cookies (pero seguras)

- No andamos muy metidos en esto, así que esperamos ideas, lo que sea, cualquier cosa. Lo que veamos minimamente útil se usará.

Caracteristicas:
  • Posibilidad de elegir mensajes en pequeño o grande
  • Mensajes en AJAX o no, a elección
  • Número de placas a mostrar personalizables
  • Tienda de placas
  • Posibilidad de crear rangos comodamente
  • Usuarios online
  • Estados
  • Esperando ideas...

Esperamos ideas, Saludos!

PD: Sobre el nombre (ХОЗГАРРИЛИКОХ МЦ), no hagais preguntas
PD2: A ser posible, no borreis este mensaje joder -.-

8
Tutoriales PHP / Crear funciones con un número indefinido de parámetros
« en: 05 de Mayo de 2010, 22:38:24 pm »
Voy a explicar como crear una función con un número de parametros variable.
Esto es, una función se crea así:

function hola($arg1$arg2) {
...
}

Pero alomejor necesitamos pasar muchas variables diferentes, y no nos apetece usar arrays, para esto crearemos la función, pero donde deben ir los parámetros, no pondremos nada.

function hola() {
...
}

Pero, ¡como saco mis variables!
Para esto podemos usar estas funciones:
func_num_args() -> Devuelve el número de argumentos enviados
func_get_args() -> Devuelve un array con los valores de los argumentos
func_get_arg($pos) -> Devuelve el valor del argumento en la posición $pos

Pongamos un ejemplo práctico, queremos comprobar que todas las variables sean númericas (int)

function son_numericas() {
$num func_num_args();
echo &
#39;Comprobando &#39;.$num.&#39; variables.<br>&#39;;
$primera func_get_arg(0);
echo &
#39;Empezamos por &#39;.$primera.&#39;<br>&#39;;
$args func_get_args(); // Cogemos todos los argumentos
for($i=0;$i<$num;$i++) { // Recorremos el array generado con for
if(is_int($args[$i])) {
echo 
$args[$i].&#39; es numerico.<br>&#39;;
} else {
echo 
$args[$i].&#39; no es numerico.<br>&#39;;
// cerramos if
// cerramos for
// cerramos la función


Salu2

9
Preguntas, Ideas y Reclamaciones. / Mi post
« en: 29 de Abril de 2010, 23:37:27 pm »
Exijo saber quien y por qué estúpida razón borraron mi post... el de MC...

10
Tutoriales PHP / Ejecutar operaciones a partir de un texto
« en: 20 de Abril de 2010, 20:49:32 pm »
Ayer necesitaba ejecutar una ecuación guardada en la base de datos.
Como $var = $fetch['ecuacion']; lo almacena como simple texto, he recurrido a eval poniendo:

eval("\$return=" $equation ";");
echo 
$return;
// Si hicieramos $equation = "2*2+45"; imprimiria 49...

Hasta ahí bien, pero el problema llegó cuando quise hacer potencias, para hacerlas yo uso ^ (por la calculadora, por lo que 23 sería 2^3.
Pero PHP requiere usar pow(), así que me estrujé un poco la cabeza y saqué esta función, tal vez muy mejorable, y que funciona perfectamente.

function parseEquation($eq) {
// IPER FUNSION POR WESTWEST :D
	

                
$rest_eq $eq;
	
$prev_eq = &#39;&#39;;
	
$pos strpos($rest_eq, &#39;^&#39;);
	
while(
$pos !== false) {
	
	
settype($rest_eq, &#39;string&#39;);
	
	
$prev 0;
	
	
$array = array(&#39;(&#39;, &#39;+&#39;, &#39;-&#39;, &#39;*&#39;, &#39;/&#39;);
	
	
$addp 0;
	
	
foreach(
$array as $operator) {
	
	
	
$op strrpos(substr($rest_eq0$pos), $operator);
	
	
	
if(
$op !== false && $op >= $prev) {
	
	
	
	
$prev $op;
	
	
	
	
$addp 1;
	
	
	
}
	
	
}
	
	
$prev += $addp;
	
	
$next strlen($rest_eq)-1;
	
	
$array = array(&#39;)&#39;, &#39;+&#39;, &#39;-&#39;, &#39;*&#39;, &#39;/&#39;, &#39;^&#39;);
	
	
$addp 0;
	
	
foreach(
$array as $operator) {
	
	
	
$op strpos(substr($rest_eq$pos+1), $operator);
	
	
	
if(
$op !== false && $op $next) {
	
	
	
	
$next $op;
	
	
	
	
$addp $pos;
	
	
	
}
	
	
}
	
	
$next += $addp;
	
	
$prev_eq .= substr($rest_eq0$prev).&#39;pow(&#39;.substr($rest_eq, $prev, ($pos-$prev)).&#39;, &#39;.substr($rest_eq, $pos+1, ($next-$pos)).&#39;)&#39;;
	
	
$rest_eq substr($rest_eq$next+1);
	
	
$pos strpos($rest_eq, &#39;^&#39;);
	
}
	
$eq $prev_eq.$rest_eq;
	

	
eval(
"\$return=" $eq ";");
	

	
return 
round($return);
}


Explico un poco por encima, así de paso sirve de tutorial.
Primero con strpos determino donde hay un ^, esto devuelve false si no encuentra, así que el while se eecutará mientras haya alguno (notad que es !==, no !=).
Primero, con un foreach obtengo la mayor posición de un caracter que delimite a los números, ya que al lado irá "pow(", despues hago lo mismo pero tras el ^, y busco el primero.

El $addp es para que cuadre todo.
Despues "corto" la cadena y la monto en $prev_eq, en $rest_eq, la cadena que se analiza pongo lo que queda y, si es necesario, vuelve a empezar.

Luego lo paso por eval, lo redondeo y devuelvo.

Funciones:
eval
strpos
strrpos

No tiene una utilidad general, pero tal vez le sirva a alguien.

Salu2!

11
Charlas / Offtopic / xDDD
« en: 07 de Marzo de 2010, 01:03:18 am »

12
Pixel Art / Mi primer pixel art
« en: 04 de Marzo de 2010, 17:05:14 pm »
El aburrimiento hace cosas... cosas en pixel art! xD

Hice mi nick en perspectiva isometrica, :P



¿Qué tal me quedó?

13
Tutoriales PHP / [TUT] Enviar EMail a hotmail
« en: 27 de Febrero de 2010, 23:14:16 pm »
Enviar emails a hotmail siempre ha tocado un poquillo la moral...
Por suerte, hace poco ví (no recuerdo donde) como enviarlos, y por supuesto que se envíen a otros, claro está.

Es tan sencillo como poner estos headers:


$headers 
"MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
// Tipo contenido, aquí pone texto pero podeis poner text/html en lugar de text/plain para enviar en formato HTML
$headers .= "From: NOMBREREMITENTE <EMAILREMITENTE>\n";
// En NOMBREREMITENTE debeis poner el nombre de quien lo envía, por ejemplo "westwest" (sin comillas) y en EMAILREMITENTE vuestro EMail, por ejemplo westwest@hotmail.com
$headers .= "To: NOMBREDESTINATARIO <EMAILDESTINATARIO>\n";
// Igual que arriba pero con los datos del destinatario
$headers .= "Reply-To: EMAILREMITENTE\n";
// El mismo email que pusiste 2 lineas más arriba
$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
$headers .= "X-Mailer: PHP/".phpversion();

// Para usarlo:
mail(&#39;pepe@hotmail.com&#39;, &#39;Hola pepe!&#39;, &#39;EY pepe que tal? yo DPM nos vemos! dw!&#39;, $headers);


He explicado en el código qué hay que modificar.
Cabe destacar, que si el EMail del remitente no existe puede dar problemas...

Salu2.

14
General / Herramienta para desarrolladores de IE
« en: 19 de Febrero de 2010, 22:43:34 pm »
Hola, no sabía si colocar esto aquí o en off-topic, al final me decanté por el foro de general porque es relacionado con programación, si creeis que está mal, que los mod (TLX, vamos) lo muevan, por favor ;)

Esto es una ayuda a aquellos programadores que usen JS, basicamente, o para ver el código fuente de tu pagina en busca de errores por el PHP, o cosas así (sí, por desgracia invalida cualquier "protección", LADRONES DE MIERDA ABSTENERSE)

Esta herramienta viene incorporada en IE, al pulsar F12

Nos muestra una lista con cada elemento de la web, y la posibilidad de ver y cambiar sus atributos, incluyendo CSS.

Esto es muy útil, sobre todo con JS, nos permite saber si el JS actuó de manera correcta ;)

Tiene más utilidades, imagino, pero a mi para probar si falla el JS me viene de lujo!

Salu2

15
Preguntas, Ideas y Reclamaciones. / Nos invaden
« en: 14 de Febrero de 2010, 09:31:46 am »
Habbo nos invade...
Este post puede parecer una tonteria, pero en mi opinión es que ya pasa de castaño a oscuro...
Pase que el forito de MC se pase las reglas por el forro de los cataplines, pero NO INVADAIS EL FORO CON HABBO.
Hoy, nada más entrar, he visto TODOS los post de habbo, excepto UNO (y seguro que ese era para una web fan)...

Así que QUEDAOS EN VUESTRO FORO DE MC CON EL MALDITO HABBO

Páginas: [1] 2 3 ... 12