elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 42
181  Programación / Bases de Datos / Problema paginador en Sql Server 2005 en: 15 Julio 2013, 16:41 pm
Hola, por razones alienigenas no puedo utilizar sql server 2012 por lo tanto crear un paginador de datos en sql server 2005 es todo un rompecabezas ya que no existe la función limit ni offset.

La idea es la siguiente: Tengo 5 mil millones de registros en una sola tabla, ahora necesito crear una pagina web que me vaya mostrando los datos de 10 en 10 con un botón para ir mostrando siguiente, siguiente, siguiente etc.

El inconveniente es que en sql server solo puedes utilizar la función top() la cual obtiene todos los datos a partir desde el id que le indiques, por ejemplo select top(10) * from tabla obtiene los primeros 10 registros pero como obtener los primeros 10 registros a partir del registro 500?

Una de las muchas soluciones es hacer un select * y luego cortar con betwen, el problema es que el motor sql va a obtener los 5 mil millones de registros y luego los cortará y eso multiplicado por la cantidad de solicitudes por segundo es un desastre.

Lo que un amigo me recomendó es mandar toda la base de datos a la memoria del servidor a traves de un grid en .net, el problema es el mismo, si tengo 5 mil millones de registros que se van a ir a memoria eso significa que voy a desperdiciar recursos cuando los datos aumenten y tenga mas sistemas que hagan lo mismo y peor aun cuando se actualice algún dato, tendría que volver a volcar todos los datos a la memoria y es una locura.

Esta es la mejor solución que he encontrado dando vueltas por ahi:
Código:
select * 
from (
    select *, ROW_NUMBER() over (order by id desc) AS idColumna
    FROM datos
) as buffer
where buffer.idColumna between 2 and 15

El problema es el mismo, que debe seleccionar los 5 mil millones de registros para poder cortarlos y entregarlos y es toda una locura porque la tabla datos contiene un campo varbinary con varios  megas por cada uno.

Cual sería la solución oficial por parte de microsoft? a caso microsoft nunca utilizó sql server que no se dieron cuenta que hacer un simple paginador era imposible?
182  Programación / Desarrollo Web / ¿Necesitas quitar la publicidad de tu hosting gratuito? en: 15 Julio 2013, 14:41 pm
Hola! inicio este hilo de post para que podamos saber como quitar nuestra publicidad del hosting gratuito.

Recuerden que no siempre será posible pero si la mayoría de las ocasiones.

¿Como hacerlo?: Responde este post solicitando ayuda sobre como quitar tu publicidad pegando la url de tu sitio WEB y entre todos te ayudaremos con códigos javascript, php, CSS, etc hasta que quede muy limpio :)

Si alguien quiere poner un tip sobre como eliminar la publicidad de algún hosting entonces bienvenido sea y envíeme un mensaje privado para agregarlo al índice de este post.

Saludos y Enjoy!

Índice de Hacks para quitar la publicidad de Hostings Gratuitos

183  Programación / .NET (C#, VB.NET, ASP) / Problema con Arrays dinámicos multidimensionales con dictionary en: 12 Julio 2013, 18:01 pm
Hola, quiero hacer un array multidimensional en c# para procesarlo con JavaScriptSerializer y exportarlo a json, el problema es que visual studio no me reconoce todas las dimensiones y me salta un error en tiempo real:

Código
  1. List<object> datos = new List<object>();
  2.  
  3. Dictionary<
  4. Dictionary<string, int>,
  5. Dictionary<string, string>,
  6. Dictionary<string,
  7. List<
  8. Dictionary<string, int>,
  9. Dictionary<string, float>,
  10. Dictionary<string, float>,
  11. Dictionary<string, float>,
  12. Dictionary<string, float>
  13. >
  14. >
  15. > plantillas = new Dictionary<
  16. Dictionary<string, int>,
  17. Dictionary<string, string>,
  18. Dictionary<string,
  19. List<
  20. Dictionary<string, int>,
  21. Dictionary<string, float>,
  22. Dictionary<string, float>,
  23. Dictionary<string, float>,
  24. Dictionary<string, float>
  25. >
  26. >
  27. >();

Tengo importado lo necesario para hacer funcionar List y Dictionary, me toma todo menos el primer dictionary y el primer list, me dice si quiero crear una clase con ese nombre :-/ pero mas abajo en el mismo código llamo un Dictionary solo y me funciona de lo mas bien.

Que será? Uso vs2010
184  Programación / .NET (C#, VB.NET, ASP) / Problema con declaraciones estáticas en: 11 Julio 2013, 20:15 pm
Hola, estoy desarrollando un sistema en ASP bajo c# con .net 4.5 y tengo un problema:

Necesito acceder de una clase a otra ya que tengo una clase principal y desde ahi hago todas las inclusiones de los controles de usuario hacia un mismo form dinamicamente pero cada uno tiene funcionalidades distintas y no puedo unir todos las funciones de todas las clases en una sola.

Asi que lo que hice fue crear multiples clases con valores y funciones, por ejemplo una de ellas es la encargada de manejar las configuraciones del sistema y para poder utilizarla desde todo el resto de las clases tube que declararla como estática.

El problema es que al ser estática esta persiste y todos los cambios realizados se mantienen cuando otra persona vuelve a visitar la página y es un gran problema. Esto me sucede con varias clases.

Para evitar esto intenté buscar la manera de intercomunicar clases una a otra sin utilizar static pero fue imposible.

Una solución fue crear una estructura al comienzo de la clase principal con todas las demas clases estaticas, entonces cuando se llama al evento Page_Unload seteo todas las variables a null, el problema es que debo hacerla una por una.

Igual estuve buscando información sobre como resetear una estructura, el problema sigue siendo que es static.

Cual sería la manera correcta para solucionar este tipo de problemas? Necesito hacer que exista una comunicación entre controles de usuario y por el momento estoy utilizando un namespace "This.Default" para llamar a todas las demás clases de forma recursiva pero estoy llegando al límite y no encuentro como solucionarlo.

Alguna idea?

Default.aspx.cs
Código
  1. using librerias.sql;
  2.  
  3. namespace This
  4. {
  5.    public partial class Default : System.Web.UI.Page
  6.    {
  7. public static cls_sql sql;
  8.  
  9. protected void Page_Load(object sender, EventArgs e)
  10. {
  11. sql = new cls_sql();
  12.  
  13. Control modulo = LoadControl(@"C:\...\modulo.ascx");
  14. controlPrincipal.Controls.Add(modulo);
  15. }
  16. }
  17. }

Ahora desde modulo.aspx.cs necesito acceder a sql por lo tanto lo hago así: This.Default.sql pero siendo estático hay ciertos valores que no quiero que se compartan entre otros usuarios y no quiero tener que controlar los permisos de usuario o del visitante cada ves que escribo una linea, por eso por el momento en Page_Unload los seteo todos a null.

Igual se que cuando carga la pagina se establece una nueva instancia del objeto pero quiero evitar que estos datos muertos sigan con vida despues de la ejecucion de la pagina.

Si tengo 500 proyectos corriendo en el mismo servidor no quiero tener 500 espacios de memoria ram ocupados sin que nadie tenga una sola visita, necesito que se eliminen cuando finalicen y no que queden vivos hasta que alguien mas ingrese.

Será error de diseño de ASP.NET? no lo se y lo quiero averiguar.
185  Programación / Desarrollo Web / Que sale mejor? Rendimiento de binarios en html en: 9 Julio 2013, 17:06 pm
Alguien sabe que ocupa menos memoria y menos CPU?

Opcion 1: guardar el binario de varias imagenes en data:base64 dentro de un tag html.
Opcion 2: guardar el binario de var5ias imagenes en data:base64 dentro de un array en javascript.

No se si el motor de javascript consumirá mas memoria o no que el mismo tag de html por el tema del DOM y todo eso.

Me gustaría utilizar Storage de HTML5 pero aun está muy nuevo, las versiones normales de firefox y chrome no las soporta que yo sepa, solo las ultimas.

Alguien sabe?
186  Seguridad Informática / Hacking / Acceso a la red local del servidor de Yahoo a traves de Yahoo QL en: 3 Julio 2013, 20:25 pm
Vamos a convertirnos en trolls por un par de minutos y vamos a darle un vistazo a la consola QL de Yahoo la cual permite realizar multiples consultas a distintas apis de Yahoo pero a modo de SQL.

Ejemplo de una simple query:
http://query.yahooapis.com/v1/public/yql?diagnostics=true&q=show tables

Esto nos devolverá todas las tablas (servicios, apis).

Ahora probaremos utilizar la api HTML de la siguiente manera:
http://query.yahooapis.com/v1/public/yql?diagnostics=true&q=select * from html where url = "http://foro.elhacker.net/"

Esto nos devolverá el contenido HTML parseado en XML.

Ahora que ya entendimos un poco sobre el funcionamiento de YQL vamos a trollear un poco:
http://query.yahooapis.com/v1/public/yql?diagnostics=true&q=select * from html where url = "http://192.168.1.1/"

Nos retornará:
Código
  1. <url ... http-status-code="502" http-status-message="Network is unreachable">http://192.168.1.1/</url>

Pero si intentamos entrar a la subred local 0.1: http://query.yahooapis.com/v1/public/yql?diagnostics=true&q=select * from html where url = "http://192.168.0.1/"
Código
  1. <url ... http-status-code="403" http-status-message="Forbidden">http://192.168.0.1/</url>

Esto nos demuestra una cosa: que la api de peticiones HTTP no filtra ips ni dominios :D asi que podemos pasearnos por toda la red local si queremos ya que al intentar entrar a la puerta predeterminada de enlace (router o switch o lo que sea) nos arrojó un error 403 que probablemente haya retornado el panel de administración del router ya que cuando probamos con otras ips locales simplemente nos dice que es imposible conectarse (error 502 Cannot find server).

Probamos otras urls sensibles:
http://localhostx/ : 502 - Cannot find server
http://localhost/ : 200 Empty
http://192.168.0.1/ : 403 (necesita autorización, ¿como?: buena pregunta)
http://192.168.1.1/ : 502 - Network is unreachable
http://adminx/ : 502 - Cannot find server
http://admin/ : 400 - Bad Request
http://zebra/ : 502 - Cannot find server
http://jaguar/ : 400 - Bad Request
http://intranet/ : 502 - Cannot find server
http://admin/login/ : Timed out waiting for operation - failing node: memcache4.yql.bf1.yahoo.com/68.142.224.71:11211
http://68.142.224.71/ : 502 - Connection refused
http://local/ : 404 - Not Found Tenemos acceso a un servidor WEB local!
http://dev/ : 404 - Not Found on Accelerator Tenemos acceso a un servidor WEB local!
http://developer/ : 404 - Not Found on Accelerator Tenemos acceso a un servidor WEB local!
http://servers/ : 400 - Bad Request
http://labs/ : 400 - Bad Request

Información útil para comenzar a husmear dentro de los servidores locales de yahoo :)

Saludos.
187  Programación / Programación General / Dilema matemático con porcentajes en: 2 Julio 2013, 18:18 pm
Hola, estoy programando un editor de imagenes pero me he detenido en un pequeño pero gran dilema.

Lo que hago actualmente es tener una imagen escalada y rotada y a partir de esto necesito mover algunos objetos que estan dentro de el calculando la posición del mouse.

Para no complicar mas el tema iré directo al grano.

Necesito sacar este calculo:
Tengo zoomActual = x%.
Tengo zoomCero = 100%.
El nuevo zoom debe ser el inverso doble, por ejemplo:

Si el zoom actual es 100% entonces el nuevo zoom debe ser 100
Si el zoom actual es 75% entonces el nuevo zoom debe ser 150
Si el zoom actual es 50% entonces el nuevo zoom debe ser 200
Si el zoom actual es 25% entonces el nuevo zoom debe ser 400
Si el zoom actual es 12.5% entonces el nuevo zoom debe ser 800
...

Como ven, no es un zoom inverso normal porque los valores estan relacionados de una manera especial que no logro comprender por completo, solo se que he llegado hasta este punto programando el editor desde cero y he llegado a la conclusión de que para que funcione el movimiento de algunos objetos dentro de la imagen escalada sobre este zoom debo realizar exactamente este calculo (en pixeles).

Un % invertido simple lo calculé de esta manera:
Código:
var zoomInvertido = (-(data.ob.zoomActual - 100) + 100);

De esta manera si el zoom actual es 50% entonces el nuevo es 150%, se invierte bién pero necesito el doble, no la mitad mas el normal.

Si el zoom es la mitad del tamaño entonces necesito aplicar el doble, bajo este concepto necesito calcular los escalados de objetos con sus movimientos.

No se ve tan complejo asi que debe tener un nombre para esta ecuación, el problema es que no se como se llama porque es primera ves que lo veo y llegué hasta ahí, por ende no se como buscarlo en google tampoco.

----------------------------------
Para los que quiren saber que estoy haciendo exactamente pueden continuar leyendo, esto no es necesario para saber como realizar el calculo.

Estoy programando en javascript, HTML5 y CSS3, tengo unn editor de imagenes, este debe tener multiples selecciones en forma de rectangulos, cuando la imagen es rotada entonces los selectores tambien lo hacen sin perder las posiciones, cuando escalo la imagen entonces los selectores tambien se escalan, pero no estoy utilizando redimensionado de ancho y alto sino la propiedad directa de css transform scale y transform rotate para poder darle algunas animaciones extras sin perder la fluidez.

Intenté hacer esto con jquery UI draggable, el problema es que jQuery tiene un bug: no soporta css3 por lo tanto las posiciones absolutas no son reales al momento de escalar o rotar un objeto desde css3 haciendo que el arrastre del objeto se pierda en el infinito, por ende comencé a hacerlo de forma manual utilizando css top y left teniendo como referencia el movimiento del mouse calculando desde la posicion inicial desde que comenzó el click hasta que se suelta el botón.... esa misma cantidad de pixeles recorridos se aplica a la división del selector, entonces cuando se hace zoom (escalado) de 50% es necesario recorrer la misma cantidad de pixeles multiplicado por el doble, o sea un 200% de esa misma cantidad.

Por ejemplo, digamos que la imagen tiene 1000px de ancho, el mouse recorre una distancia de 50px, entonces el selector debe recorrer esa misma distancia recorriendo desde el pixel 0 hasta el pixel 50.


Cuando la imagen se escala a un 50% entonces la imagen queda en 500px (de manera virtual porque desde el DOM sigue teniendo 1000px), el cuadro de recorte también es escalado ya que lo que se está escalando es una division que contiene esta imagen mas los selectores.

Cuando el mouse recorre 50px cuanto debe recorrer la division? ya no son 50px porque quedará mas atrás del mouse, recordemos que con css el 50% de un ancho se convierte en 1:2, o sea dentro de un espacio de 500px del document hay 1000px, por lo tanto la división recorrió solo el 50% de los pixeles totales en ves del 100%, o sea 25px.

Para solucionar esto debo sumarle la cantidad de pixeles según el zoom actual, por eso:

Si el zoom actual es 100% entonces debe recorrer el 100% de los pixeles.
Si el zoom actual es 75% entonces debe recorrer el 150% de los pixeles.
Si el zoom actual es 50% entonces debe recorrer el 200% de los pixeles.

Recordemos que al hacerle un zoom de 50% ha quedado en la mitad del tamaño, por lo tanto los pixeles recorridos deben aumentar al doble para contrarrestar este desface.

Intenté realizar un zoom invertido simple, o sea si el zoom es de 50% entonces que recorra el 150% de pixeles totales pero no funcionó, mientra mas pequeña la imagen había mas desface, la division se iba quedando atrás, pensé que por lógica debería ser el 200% para contrarrestar la mitad con un doble asi que lo probé y funcionó de lujo.

Lamentablemente tampoco puedo utilizar $(foo).offset().[top, left] porque en javascript eso no existe, jquery lo que hace es utilizar offsetParent para calcular la posición de cada objeto pariente pero no realiza correctamente los calculos si este está rotado o tiene algún zoom ya que aun no está preparado para CSS3. Ya está reportado hace casi 2 años atrás, algunos dicen que es un bug del navegador, otros dicen que es problema del core, otros dicen que es problema del UI, etc, hasta ahora nadie lo ha solucionado, por eso tube que hacerlo de forma manual.

Se comprende la idea?
-------------------------------------------

Alguien sabe como realizar este calculo de manera matematica? tengo un javascript con mas de 800 lineas con calculos complejos matematicos y me siento un poco cansado mentalmente, cada ves me cuesta mas realizar un calculo a pesar de que pueda ser mas lógico.

Gracias.

PD: por si alguien quiere darle un vistazo al código:
Código
  1. iniciaArrastreCorte: function(obMover){
  2. /* La división padre puede estar escalada, por lo cual la cantidad
  3. * de pixeles a mover ya no son los mismos. Se ajustará al % del
  4. * escalado v/s la posición real del mouse dependiendo de la dirección de
  5. * la rotación. No se puede mover directamente calculando la posición del mouse
  6. * debido a que el escalado y la rotación se realiza via CSS, las propiedades
  7. * top y left no varían después de realizar esta modificación ya que por estandar
  8. * no se actualiza el DOM, las propiedades offset.left y offset.top tampoco son
  9. * reales ya que se relativizan según el tamaño original no rotado.
  10. * Por ende la única manera de calcular estos tamaños es creando multiples wraps
  11. * realizando calculos inversos sobre las redimensiones y posiciones relativas para
  12. * luego calcular los reales y volver a convertir. */
  13.  
  14. /* Matris de datos para el cálculo del arrastre del objeto */
  15. var data = {
  16. ob : this,
  17. mouse : {
  18. inicio : { left: 0, top: 0 },
  19. final : { left: 0, top: 0 }
  20. },
  21. obMover : {
  22. inicio : { top: 0, left: 0 },
  23. final : { top: 0, left: 0 },
  24. dimensiones : { width: 0, height: 0 }
  25. },
  26. imagenPrincipal : { width: 0, height: 0 },
  27. enganchado : false
  28. };
  29.  
  30. /* Evento del movimiento del mouse */
  31. $(document).mousemove(function(e){
  32.  
  33. /* Captura inicial de posiciones y propiedades */
  34. if(data.enganchado == false){
  35.  
  36. /* Posición actual del mouse */
  37. data.mouse.inicio.left = e.pageX;
  38. data.mouse.inicio.top = e.pageY;
  39. data.mouse.final.left = e.pageX;
  40. data.mouse.final.top = e.pageY;
  41.  
  42. /* Dimensiones de la imagen principal */
  43. data.imagenPrincipal.width = $('._cargar_imagen_original').width();
  44. data.imagenPrincipal.height = $('._cargar_imagen_original').height();
  45.  
  46. /* Posición inicial del corte */
  47. data.obMover.inicio.left = parseFloat(obMover.css('left'));
  48. data.obMover.inicio.top = parseFloat(obMover.css('top'));
  49.  
  50. /* Dimensiones del corte */
  51. data.obMover.dimensiones.width = obMover.width();
  52. data.obMover.dimensiones.height = obMover.height();
  53.  
  54. data.enganchado = true;
  55.  
  56. /* Después de obtener las posiciones iniciales comienza el movimiento del objeto */
  57. }else{
  58. data.mouse.final.left = e.pageX;
  59. data.mouse.final.top = e.pageY;
  60.  
  61. /* Dependiendo de la rotación actual es la posición del corte */
  62. if(parseInt(data.ob.rotacionActualReal) == 90){
  63. }else if(parseInt(data.ob.rotacionActualReal) == 180){
  64. }else if(parseInt(data.ob.rotacionActualReal) == 270){
  65. }else{ /* 0 Grados. */
  66.  
  67. // Mueve la division el mismo % que el % movido por el mouse (funciona, pero con problemas al establecer valores negativos para poder rotar)
  68. /* Dimensiones reales de la imagen */
  69. //espectro_P1 = ((imgW * ob.zoomActual) / 100);
  70. //espectro_P2 = ((imgH * ob.zoomActual) / 100);
  71.  
  72. /* % del recorrido del mouse */
  73. //espectro_P3 = (((e.pageY - inicioY) * 100) / espectro_P1);
  74. //espectro_P4 = (((e.pageX - inicioX) * 100) / espectro_P2);
  75.  
  76. /* pixeles que debe recorrer la división */
  77. //espectro_P5 = obY + ((imgW * espectro_P3) / 100);
  78. //espectro_P6 = obX + ((imgH * espectro_P4) / 100);
  79.  
  80. //espectro_P7 = espectro_P5; /* top */
  81. //espectro_P8 = espectro_P6; /* left */
  82.  
  83. //var descompuesto = -(data.ob.zoomActual - 100);
  84. // 50 debe ser 200
  85. // 25 debe ser 400
  86. // 12.5 debe ser 800
  87. //var compuesto = (descompuesto + 100);
  88. var zoomInvertido = (-(data.ob.zoomActual - 100) + 100); // invierte el zoom teniendo como centro único el 100%
  89.  
  90. console.log(data.ob.zoomActual + ' v/s ' + zoomInvertido);
  91. data.obMover.final.top = data.obMover.inicio.top + ((zoomInvertido * (data.mouse.final.top - data.mouse.inicio.top)) / 100);
  92. data.obMover.final.left = data.obMover.inicio.left + ((zoomInvertido * (data.mouse.final.left - data.mouse.inicio.left)) / 100);
  93.  
  94. }
  95.  
  96. /* El corte no puede salir de la imagen */
  97. if(data.obMover.final.top < 0)
  98. data.obMover.final.top = 0;
  99. if(data.obMover.final.left < 0)
  100. data.obMover.final.left = 0;
  101. if(data.obMover.final.top > (data.imagenPrincipal.height - data.obMover.dimensiones.height))
  102. data.obMover.final.top = (data.imagenPrincipal.height - data.obMover.dimensiones.height);
  103. if(data.obMover.final.left > (data.imagenPrincipal.width - data.obMover.dimensiones.width))
  104. data.obMover.final.left = (data.imagenPrincipal.width - data.obMover.dimensiones.width);
  105.  
  106. /* Finalmente establece las coordenadas exactas */
  107. obMover.css({
  108. top : parseFloat(data.obMover.final.top),
  109. left : parseFloat(data.obMover.final.left)
  110. });
  111. }
  112. });
  113. },

Eliminé varias lineas de esta función para que no se viera tan gigante, solo muestra la función cuando la rotación es cero.

Tengo varios bosquejos con diferentes maneras de calcular estas posiciones utilizando diferentes técnicas con css, jquery, etc pero quiero probar con esta.

No quiero que me solucionen el tema de la programación en si, por algo lo puse en el foro de programación general, solamente necesito el tema de como calcular la ecuación.
188  Programación / Desarrollo Web / Tips de velocidad y rendimiento (CSS3 v/s jQuery) en: 25 Junio 2013, 22:20 pm
Estoy en un proyecto WEB y pude comprobar que CSS3 redenderiza las animaciones de manera mucho mas fluida que jQuery utilizando menos CPU.

Por ejemplo un efecto de barrido hacia la izquierda utilizando jQuery UI:
Código:
$(foo).show('slide', {direction: 'left'}, 250);

Utilizando CSS3:
Código:
#foo{ left: 555px; transition: all 0.5s; }

Luego para habilitar la animación de CSS3 llamamos el movimiento:
Código:
$(foo).css({ left: 0 });

Resulta que la animación es enormemente mas fluida y eficiente, ahorras CPU y no da conflicto de queque.

Por ejemplo, si necesitas hacer un efecto suave con animate() desde jQuery realizando muchas llamadas (por ejemplo para simular un scrollbar suave o suavizar el slider de jQuery UI) tendrás que llamar a $(foo).stop().animate(...) haciendo que las transiciones se detengan para crear la pila siguiente creando un efecto muy feo en caso contrario tu animación total puede caer en una cola infinita de animaciones sin terminar.

Esto no sucede con CSS3 ya que el CORE del navegador es mucho mas eficiente y su código está mucho mejor diseñado ya que los efectos no producen ese efecto de corte cuando necesitas llamarlo 1000 veces en un segundo (por ejemplo para crear el efecto de suavidad de cambio de volumen de un video), por lo contrario la animación retrocede si es necesario utilizando procentajes hasta enfocarse completamente sin afectar al tiempo final de la animación como sucede con jquery.

Ejemplo:
http://jsfiddle.net/TfkH3/

En mi proyecto esta animación se repetía 20 veces sobre un DOM masomenos grande con un setTimeout de 65 milesimas de segundo entre cada aparición de objetos y la diferencia es demasiado grande ya que el uso de CPU optimizó por completo mi aplicación.

Cosas no puedes hacer con jQuery:
Animación suave de un zoom utilizando CSS3 y un slider de jQuery UI
http://jsfiddle.net/NShzx/3/

Intentando simular este efecto en jQuery:
http://jsfiddle.net/NShzx/1/

Como nos dimos cuenta, al agregar el efecto animate() este nos crea una cola de trabajo enorme creando un loop infinito, por lo cual le agregamos un stop:
http://jsfiddle.net/NShzx/2/

El problema es que cuando movemos el scroll de un lado a otro de manera rápida el efecto se corta, no tiene ese efecto elástico como CSS3 que detiene la animación de forma suave devolviendose al siguiente estado por porcentajes:
http://jsfiddle.net/NShzx/3/

Con CSS3 la cantidad de frames por segundo se ajusta a la aceleración de hardware del navegador, en otras palabras utilizará la aceleración gráfica de la tarjeta de video ya que se procesa como objeto 2D, en cambio con jQuery las animaciones están basados en frames simples y no como objetos.

La velocidad de frames por segundo en jQuery es definida a traves de jQuery.fx.interval, el problema es que solo funciona en Google Chrome quedando a merced de unos cuantos fps.

Otro punto extra para CSS3 es que las animaciones se ven igual de fluidas en un desktop y en un movil como un celular, en cambio el framework de jQuery es demasiado pesado para un celular y es casi imposible simular los mismos efectos que jQuery UI, por ello existe una versión muy similar llamada jQuery Movil y algunas animaciones si se basan en CSS3 pero volvemos a lo mismo, el uso de CPU.

Conclusión: si piensas que estás listo para emprender tu proyecto en HTML5 entonces
Si no puedes hacer algo con CSS3 + HTML5 + Canvas entonces recién recurre a jQuery.

Saludos.
189  Programación / Desarrollo Web / Que servidor me conviene? en: 23 Junio 2013, 22:15 pm
Hola, me gustaría crear un proyecto pero no estoy seguro que utilizar.

La idea principal es crear la shell para cualquier distribución de linux pero en formato web utilizando un frame a pantalla completa de webkit con v8 (google chrome) creando el gestor de archivos, comandos etc pero todo basado en html5 y css3.

La cosa es que necesito comunicar el HTML con la shell del mismo sistema operativo y para eso me gustaría utilizar algún sevidor WEB como apache, night o lighttpd con php o python pero estoy indeciso.

Cual servidor WEB será el mas rápido para monousuario? no me interesa el rendimiento con cargas altas, solo funcionará en localhost con el usuario actual nada mas, el resto se ejecutará directamente sobre la shell.

Que servidor me recomiendan y porqué?
190  Seguridad Informática / Bugs y Exploits / Evadir el inspecionador de Internet Explorer en: 11 Junio 2013, 17:08 pm
Revisando las funcionalidades de internet explorer 10 encontre que el inspeccionador no trabaja adecuadamente y es posible crear un codigo para prevenir que modifiquen el DOM de tu pagina.

En si este es un bug que encontré, me hubiera gustado reportarlo pero me pasearon por un sin fin de formularios hasta llegar a una sección donde solo hablan ingles y nadie toma en cuenta ningun comentario. Asi que pensé que si lo publicaba en ese lugar nadie ganaba, ni microsoft, ni yo ni los usuarios finales, asi que decidí publicarlo acá, mas provecho lo sacarán ustedes.

El bug está cuando escribes una etiqueta HTML desde javascript, al hacerlo se hace totalmente imposible editarlo desde el inspeccionador de elementos, por eso podemos crear un código muy simple para modificar el body por completo agregandole unicamente un espacio en blanco al final para que sea imposible su edición por parte de internet explorer 10:

Código
  1. <head>
  2. <script type="text/javascript">
  3. function b(){
  4. document.body.innerHTML += ' ';
  5. }
  6. </script>
  7. </head>
  8. <body onload="b();">a</body>
  9. </html>
  10.  

Si lo prueban verán que donde dice texto del nodo es imposible modificar su valor con la letra "a", si comentan el onload verán que si se puede editar.
También es posible modificar el head, de esa manera los usuarios de internet explorer no podrán modificar sus documentos.

Saludos.
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 42
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines