Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - WHK

#1481
Buena pregunta!, de hecho no lo se, realmente nunca he averiguado, lo que si se es que megaupload en un tiempo tubo talves mas espacio de almacenamiento que facebook y no usaba sus propios servidores, tenía un proveedor que le arendaba los servidores así como cualquier persona puede arrendar un dedicado o un vps, recuerdo que eso salió a la luz cuando su proveedor comenzó a cobrarle a dotcom cuando este estaba en juicios.

http://www.emol.com/noticias/tecnologia/2013/06/19/604598/proveedor-de-servidores-europeo-elimina-contenidos-de-usuarios-de-megaupload.html

Hay que recordar que en su tiempo megaupload no solo era el portal mas utilizado para almacenamiento de archivos online sino también el portal mas grande, mas concurrido y con mas cantidad de peliculas vistas diariamente.. no existía ninguna película que no fuera nueva y que no estuviera ahí y en hd, asi que siguiendo la misma lógica podría decir que facebook puede utilizar sus propios servidores como puede no hacerlo.

#1482
Antes usaba comas también, el problema es que las comas generan una mala costumbre y puede ocacionar muchos problemas, especialmente con las condicionales inline, por ejemplo:

Código (php) [Seleccionar]
<?php
echo 'Hola, mi nombre es '.($nombre htmlspecialchars($nombreENT_QUOTES) : 'desconocido').'!'.


Cuando tienes muchas comas y muchos condicionales tendrás muchas excepciones en php a menos que vayas encerrando cada cosa entre parentesis, pero para evitar eso emjor usas puntos :)

Por ejemplo si miras el código fuente de simplemachines verás que casi todo está con comas y condicionales inline y hacer cambios en esa ensalada de código dentro de un mismo echo es muy dificil, normalmente debes normalizar el código pasando todo a puntos y usando condicionales por separado, pero si ves el código fuente de otros sistemas webs mas profesionales y mejores hechos como wordpress verás que todo está hecho con cierre y apertura de etiqueta php y concatenaciones con puntos, por ejemplo:

Código (php) [Seleccionar]
<h1>Hola, mi nombre es <?php _($nombre $nombre 'Desconocido'?>!.</h1>

Ahora, imagina la cantidad de código que hago durante el año, imagina si mañana dijera... sabes, es mejor hacer comas que puntos y comillas simpels que dobles... imagina la cantidad de código que tendría que ir modificando todos los dias para poder continuar con mis proyectos personales, por eso me documenté, averigué, filosofé como no sabes y llegué a la conclusión que en todos mis proyectos de php debo seguir la misma línea, la mejor para mi la cual es usar puntos para concatenar, usar apertura y cierre de tag php para escribir código html como en el ejemplo anterior, usar comillas simples para cerrar variables o strings, usar comillas dobles para código html, simples para javascript, prevenir el uso de secuencias de escape, nunca juntar la lógica de un sitio entremedio del código html (para eso se separa una página entre controladores y vistas), jamás hacer consultas sql dentro del mismo archivo php con contenido html, para eso existen los controladores (vease modelo mvc), nunca codificar variables antes de usarlas, siempre codificarlas en el mismo lugar donde se usará, siempre identar incluyendo parrafos y código y nunca sobrepasar una cierta longitud que provoque que se vea la barra de desplazamiento horizontal de mi editor de código a menos que sea por causa de muchas identaciones para muchas anidaciones, siempre comentar el código con /**/ y no con // porque la momento de querer compilar tendrás un dolor de cabeza gigante, además usas menos código, no tienes que comentar cada linea cuando quieres hacer comentarios con mas de una línea y se vería bastante feo la mitad del código comentado con Ç// y la otra mitad con /**/, asi que mejor uso todo con /**/, excepto cuando quieres hacer comentarios dentro de código comentado, nunca usar funciones de php obsoletas, nunca dejar visible el reporte de errores de php en producción, de preferencia usar boilerplate o initializr para comenzar los proyectos, etc.

Se ve muy interesante el Benchmark que pegaste, pero aun así prefiero usar puntos para concatenar :p

Saludos.
#1483
La base de datos lo puedes poner en cualquier servidor medianamente descente (recomiendo amazon web hosting), pero lo que si va a pesar muchisimo serán los archivos media, o sea fotos, videos, etc, para eso necesitas servidores especiales para archivos estáticos como los que usa mega, rapidshare, facebook, servidores cdn, etc. En amazon puedes usar S3 Bucket para ese tipo de almacenamiento, terminarás pagando por lo que usas y lo puedes ir expandiendo cuando quieras.
#1484
Me gusta mas la forma de MinusFour, sería lo óptimo, pero también podrías hacer algo mas corto:

Código (php) [Seleccionar]
<?php
$string 
"quiero tener un Perro muy valiente.";
$string explode('Perro'$string)[1];
#1485
Se supone que windows 8.1 era windows 9 beta.
#1486
Seguridad / Re: Malwarebytes actúa como Antivirus?
3 Septiembre 2014, 00:57 AM
Buenas auditorías de seguridad mensuales o semestrales o anuales dependiendo del flujo de tu sitio, aprender a usar snort, de ves en cuando monitorear los logs de cada servicio (para eso están los respaldos comprimidos en tar), etc. Hay muchas herramientas muy básicas para detectar rootkits en un servidor con linux o unix, el resto lo puedes hacer desde las herramientas del mismo sistema como por ejemplo usando iptables, netstat, ifconfig, monitoreo de puertos ojala sincronizados con logs (en windows necesitas drivers y programas especiales, en linux lo haces con una sola linea desde la consola), etc.

En linux te puedes defender mejor porque no necesitas drivers ni softwares especiales para saber lo que está sucediendo en tu servidor, como por ejemplo el uso de tcpdump para saber si hay solicitudes raras como ataques de tipo syn o al servidor dns, etc, puedes monitorear puertos abiertos, buscar entre procesos activos, crear scripts en bash para levantar servicios, detectar cantidad de conexiones máximas o cargas excesivas, uso de memoria y cpu inadecuados, etc, puedes sacar reportes en vivo con un solo bash, no necesitas hacer softwares para eso.

Para mi lo mas importante para mantener un servidor seguro son las auditorías de seguridad y revision del servidor, por ejemplo ver si no hay shells, si no hay rootkits, si el servidor no fue rooteado, si el sitio tiene algún agujero básico de seguridad, si los servicios están desactualizados, si el kernel es viejo, etc, revisando todo eso por lo menos una ves cada 6 meses no deberias tener mayores complicaciones aunque yo recomendaría hacerlo cada una semana pero sería mucho gasto a menos que hubiera una persona de planta revisando eso todos los días. Y donde dejas el antivirus? pues guardado en su cajita listo para ponerselo en un pc de hogar con windows porque ningún antivirus te va a hacer todo eso que te mencioné, con suerte solo detecta si se subió un troyano y ni eso.
#1487
Varias, la primera es costumbre, la segunda es mayor control, no puedes evaluar todo tipo de objetos sobre comillas dobles, yo acostumbro a usar objetos y entre comillas dobles casi nunca funcionan o funcionan mal y terminan en fugas de información inesperadas.

Con comillas simples el string no se evalua, con comillas dobles si se evalua, el problema viene cuando usas mucho código html dentro de código php, por ejemplo:

<a href="" <?php id($x) echo 'class="active"'?>>xxx</a>

Si lo hubiera hecho en php con comillas dobles hubiera tenido que haber escrito html con comillas simples y puede ser peligroso porque casi todos los lenguajes de programación incluyendo php filtran comillas dobles para prevenir los xss pero no las simples a menos que des parámetros especiales a las funciones como ENT_QUOTES.

Mayor control también porque puedes procesar funciones sobre variables entremedio, por ejemplo:

Código (php) [Seleccionar]
<?php
$extras 
'ghi';
echo 
'
  abc 
  def
  '
.$this->str->escapeHtml($extras).'
  jkl
'
;


Hacer esto con comillas dobles poniendo las variables por dentro puede generar:

Mal acostumbramiento a usar variables que tienen solo un uso de vida, por ejemplo:
Código (php) [Seleccionar]
<?php
$extras 
$this->str->escapeHtml('ghi');
echo 
"
  abc 
  def
  
$extras
  jkl
';


Ahi hay varios problemas, uno que $extras ya no lo podrás usar en un contexto que no sea html porque va filtrada,, por ejemplo si lo quieres usar en una consulta sql o dentro de una variable javascript no te servirá porque estará codificada en html, el orto problema es que talves quieras poner un simbolo peso entremedio y tendrás que usar carácteres de escape porque se va a evaluar y puede ser peligroso, otro problema como lo dije antes va en los códigos html, por ejemplo simplemachines (el sistema en php de este foro) escribe mucho las etiquetas html en echo por lo cual debes usar muchisimos carácteres de escape porque tanto php como el html los escriben en comillas dobles o podrás caer en agujeros de seguridad o en problemas de codificación.

Por ejemplo:

Código (php) [Seleccionar]
<?php
echo "<a href=\"#\">\$ 0.00 pesos</a>";


Entonces para no hacer trabajo de más, prevenir agujeros de seguridad, hacer que php no evalue haciendo los echos mas rápidos, prevenir tener que estar escribiendo a cada rato carácteres de escape, etc etc mejor te acostumbras a usar una sola manera de hacer las cosas... para mi la mejor manera y la mas correcta es usar siempre código php con comillas simples, concatenar variables con un punto y escribir código html en comillas dobles.

Cuando necesito escribir código javascript dentro de php escribo php en comillas simples y javascript en comillas dobles, pero cuando javascript lo escribo en un archivo solo entonces ahi lo uso también con comillas simples, solamente html es el único lenguaje que siempre siempre uso con comillas dobles y sin excepción, las consultas sql desde php las hago con comillas dobles y php con comillas simples.

De esta manera cuando voy a programar nunca tengo problemas ni enredos con las comillas y nunca me dan problemas de ningún tipo, salvo cuando debo escribir obligadamente comillas simples sobre comillas simples, ahi si uso las secuencias de escape pero son muy pocas las veces y trato de evitarlas, en html cuando necesito escribir valores con comillas simples y dobles uso html entities, como &quote;

Saludos.
#1488
Porque la gente usa curl? no todos los servidores web lo tienen instalado, además no hace nada que no pueda hacer file_get_contents() el cual es nativo de php y está diseñado para este tipo de situaciones:

Código (php) [Seleccionar]
<?php

/* Primera petición */
if(!$result file_get_contents(
'http://www.xxxxx.com/repositorio/consultas_web/'
false
stream_context_create(
array('http' =>
array(
'method'  => 'POST',
'header'  => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query(
array(
'login' => 'userxxxxx',
'password' => 'passxxxxx'
)
)
)
)
)
))
die('Error en la primera consulta');

/* Obtiene las cookies de autentificación */
$cookies = array();
foreach(
$http_response_header as $cabecera)
if(strtolower(substr($cabecera0strlen('set-cookie: '))) == 'set-cookie: ')
$cookies[] = substr($cabecerastrlen('set-cookie: '));
$cookies implode('; '$cookies);

/* Segunda petición */
if(!$result file_get_contents(
'http://www.xxxxx.com/repositorio/privado/'
false
stream_context_create(
array('http' =>
array(
'method'  => 'POST',
'header'  => implode("\r\n", array(
'Content-type: application/x-www-form-urlencoded',
'Cookie: '.$cookies
)),
'content' => http_build_query(
array(
'data1' => 'val1',
'data2' => 'val2'
)
)
)
)
)
))
die('Error enl a segunda consulta');

/* Resultado */
echo '<plaintext>';
print_r($result);
#1489
Como es eso de partirlo? lo que debes hacer es acostumbrarte a identar los códigos estén en el legunaje que estén:

Código (php) [Seleccionar]
<?php
/* escribimos la sentencia MySQL */
$sentencia '
UPDATE '
.$tabla.
SET 
nombres = "'
.$nombres.'",
apellidos = "'
.$apellidos.'",
direccion = "'
.$direccion.'",
ciudad = "'
.$ciudad.'",
pais = "'
.$pais.'",
nacionalidad = "'
.$nacionalidad.'",
cedula = "'
.$cedula.'",
tel_movil = "'
.$tel_movil.'",
tel_casa = "'
.$tel_casa.'",
tel_oficina = "'
.$tel_oficina.'",
email = "'
.$email.'",
red_email = "'
.$red_email.'",
fecha_nac = "'
.$fecha_nac.'",
peso = "'
.$peso.'",
altura = "'
.$altura.'",
rh = "'
.$rh.'",
organos = "'
.$organos.'",
sangre = "'
.$sangre.'",
religion = "'
.$religion.'",
alcohol = "'
.$alcohol.'",
tabaco = "'
.$tabaco.'",
seguro = "'
.$seguro.'",
nom_company = "'
.$nom_company.'",
num_poliza = "'
.$num_poliza.'",
tel_company = "'
.$tel_company.'",
num_seg_social = "'
.$num_seg_social.'",
historial_clinico = "'
.$historial_clinico.'"
WHERE qr = "'
.$qr.'"
'
;


Recuerda escapar cada variable con mysqli_escape_string() para prevenir las inyecciones sql y usar el objeto DateTime() para validar fechas y exportar con el formato sql ( $ob->format('Y-m-d') ).

Mira, acá hay una consulta sql que hice hace tiempo y a pesar del tamaño que tiene mantengo la identación y no necesito partirla o separarla (auqnue esta consulta ya no lo uso porque estaba muy pesada, ahora uso tablas para caché desnormalizadas):

Código (php) [Seleccionar]
<?php

$busqueda 
$this->mysqli->query('
SELECT 
usuarios.id,
usuarios.apellidos,
usuarios.nombres,

COUNT(DISTINCT especialidades_areas.id) as cantidad_especialidades,
COUNT(DISTINCT centros_medicos.id) as cantidad_centros_medicos,
COUNT(DISTINCT profesionales_titulos.id) as cantidad_titulos,

IF(usuarios.hash_foto IS NOT NULL, 0, 1) as tiene_foto,
IF(COUNT(DISTINCT especialidades_areas.id) = 0, 0, 1) as tiene_especialidades,
IF(COUNT(DISTINCT centros_medicos.id) = 0, 0, 1) as tiene_centros_medicos,
IF(COUNT(DISTINCT profesionales_titulos.id) = 0, 0, 1) as tiene_titulos

FROM usuarios

INNER JOIN usuarios_roles_relacion ON (usuarios_roles_relacion.usuario_id = usuarios.id)
INNER JOIN usuarios_roles ON (usuarios_roles.id = usuarios_roles_relacion.usuarios_rol_id)

LEFT JOIN especialidades_areas_relacion_profesionales ON (especialidades_areas_relacion_profesionales.usuario_id = usuarios.id)
LEFT JOIN especialidades_areas ON (especialidades_areas.id = especialidades_areas_relacion_profesionales.especialidades_area_id)
LEFT JOIN usuarios_relacion_centro_medico ON (
usuarios_relacion_centro_medico.usuario_id = usuarios.id AND 
usuarios_relacion_centro_medico.usuarios_rol_id = (
SELECT id
FROM usuarios_roles
WHERE namespace = "profesional"
LIMIT 1
)
)
LEFT JOIN centros_medicos ON (centros_medicos.id = usuarios_relacion_centro_medico.centro_medico_id)
LEFT JOIN centros_medicos_tipos ON (centros_medicos_tipos.id = centros_medicos.centros_medicos_tipo_id)
LEFT JOIN profesionales_titulos ON (profesionales_titulos.usuario_id = usuarios.id)

WHERE 
usuarios_roles.namespace = "profesional" AND
usuarios.esta_acreditado_superintendencia = 1 AND
CONCAT_WS(
" ", 

usuarios.apellidos, 
usuarios.nombres, 
usuarios.apellidos,

profesionales_titulos.texto,

centros_medicos_tipos.nombre,
centros_medicos.nombre,

especialidades_areas.nombre,

centros_medicos_tipos.nombre,
centros_medicos.nombre,

profesionales_titulos.texto,

usuarios.apellidos, 
usuarios.nombres, 
usuarios.apellidos,

" "
) LIKE "%pedro%"

GROUP BY usuarios.id

ORDER BY 
tiene_foto,
usuarios.apellidos,
usuarios.nombres
'
);
#1490
Foro Libre / Re: Aprendiendo Java
1 Septiembre 2014, 16:27 PM
CitarJava, Gambas, Html, css, php ... Blender!

Alguien dijo blender? :D

[youtube=640,360]https://www.youtube.com/watch?v=GAuhUTzNwiY[/youtube]

Ah no, era blend xd