En Prestashop las cosas más básicas que tenemos que hacer para mejorar el rendimiento de nuestra página ante el cruel e inmisiericordioso PageSpeed de Prestashop son dos:
Te vas a Parámetros Avanzados / Rendimiento
Aplicas Caché, y colocas una opción que indique no recompilar las plantillas.
Luego más abajo activas el CCC el cual optimizará la carga del Javascript y CSS.
Yo hice eso el PageSpeed de mi tienda Prestashop pasó de ser 50 a ser de... 50
Si, así de inútil me fue aplicar estas medidas... Me pareció sumamente frustrante.
Sin embargo, luego entré en el Cpanel del hosting y encontré la opción Optimizar el sitio web. La fulana optimización es realmente la compresión del contenido. En esta característica tenía tres posibilidades: Deshabilitarla, comprimir todo el contenido y comprimir según el tipo de archivo.
Yo le di comprimir todo el contenido y voilá, de un PageSpeed de 50 logré que se optimizara a un 70.
Adsense
viernes, 31 de julio de 2015
martes, 21 de julio de 2015
Primeros pasos en microfameworks php Slim Php 3 Beta
Cuando los frameworks de PHP son mucho con demasiado, llega el momento de probar cosas más sencillas. Hoy me he decantado por Slim php, uno de los microframeworks que al juzgar, lleva buena reputación, al ser un verdadero micro framework y prestar un rendimiento verdaderamente bueno.
Luego de una existosa versión 2, está disponible Slim 3 Beta 1 para empezar a probar el mismo y ponerte las pilas con microframeworks: crea tu carpeta y comienza en composer:
composer require slim/slim:3.x-dev
Así comenzarás a trabajar con tu versión 3 beta 1 y tomarás la delantera en los microframeworks. Si crees que tu proyecto es demasiado chico para tener que utilizar un framework, puede que tengas toda la razón. Pero jamás será muy pequeño para un microframework, el cual podrá permitirte cumplir aunque sea con las medidas más básicas de seguridad en peticiones y en base de datos.
Actualización
Una forma sencilla de empezar, con cosas ya añadidas es trabajar con la app skeleton de Rob Allen. Basta con tipear
Actualización
Una forma sencilla de empezar, con cosas ya añadidas es trabajar con la app skeleton de Rob Allen. Basta con tipear
composer create-project -n -s dev akrabat/slim3-skeleton my-app
Y tendrás en tu carpeta my-app una app con estructura.
lunes, 20 de julio de 2015
Decodificar html entities con Jquery
Si tenemos una cosa como "<p>name<" y queremos mostrarlas en cristiano empleando Jquery hacemos una cosa tonta
Fuente
var text = '<p>name<';
var decoded = $('
'
).html(text).text();
alert(decoded);
Las html entities van a quedar reemplazadas por su símbolo, como puede verse en el ejemplo.Fuente
viernes, 17 de julio de 2015
Problemas con typeahead.js
Pues typeahead.js es una libreria javascript hecha por twitter que permite hacer búsquedas y autocompletados. Al ser de twitter, pensé que podría ser bueno usarla. Que iba a ser responsive, muy bien documentada y todo eso.Ayer empecé con ella y me pasaron cosas interesantes.
Fallan los estilos de bootstrap:
necesitaba utiliar un input que sería a lo largo de toda la pantalla. Al implementar el typeead.js se perdía todo. Ya otras personas habían pasado por eso e inventaron una serie de parches en css que se encuentran disponibles en typeahead.js-bootstrap3.less.
Las direcciones relativas fallan:
Algo jocoso. Te puede pasar que cuando vas a implementar el componente Bloodhound, si usas en el prefetch una dirección relativa (que de hecho son las que utilizan en los ejemplos) pues no va a cargar la data. Así como lo oyes. A mi me pasó eso en el entorno local ¿y sabes lo más loco? que cuando lo monté en el servidor si me funcionaron las direcciones relativas.
Espacios del json:
Cuando le pasaba un json [{"con":"formato"},{"similar":"a este"}] no hacía las búsquedas. Sin embargo:
[
{
"con":"formato"
},
{
"similar":"a este"
}
]
Me funciona a la perfección.
Tres cosas que me hicieron estos dos días dudar de todo en la vida.
jueves, 7 de mayo de 2015
No se ejecuta las tareas programadas de Windows Server con un .BAT [SOLUCIONADO]
Hoy estuve creando una tarea en windos para ejecutar un .Bat que no estaba ejecutándose.
Una posible solución es muy sencilla de hacer.
Digamos que nuestro .bat se encuentra en la ruta c:\carpeta\tarea-remoto.bat
Abrimos el Programador de Tareas, localizamos nuestra tarea, le damos propiedades, buscamos la pestaña acciones editamos la accion y:
Una posible solución es muy sencilla de hacer.
Digamos que nuestro .bat se encuentra en la ruta c:\carpeta\tarea-remoto.bat
Abrimos el Programador de Tareas, localizamos nuestra tarea, le damos propiedades, buscamos la pestaña acciones editamos la accion y:
Le colocamos Iniciar en y con esto va a funcionar como si lo ejecutaramos en cónsola.
Eloquent de Laravel: Obtener el primer registro y cambiar formato a un campo de fecha
Si deseamos extraer un campo fecha del primer registro y darle un formato personalizado (Bendito seas Carbon) podemos hacer así:
Modelo::first()->created_at->format('d/m/Y H:i a');
jueves, 16 de abril de 2015
Laravel 5 db:seed Class NombreSeeder does not exist [solucion]
Si al ejecutar php artisan db:seed te dice que tu seeder does not exist es porque debes ejecutar composer dump cada vez que agregues o elimines alguna clase del directorio database para que sea actualizado el autoloader de composer.
Laravel 5 Establecer relación Muchos a Muchos con Eloquent
Dadas dos tablas tablaa tablab y una tabla relacion tablaa_tablab
En el modelo de la tabla a
public function tablab (){
return $this->belongsToMany('App\Tablab', 'tablaa_tablab');
}
donde 'tablaa_tablab' es el nombre de la tabla relación en la bd (Puede obviarse si se mantiene la convención de nombres de tablas)
Recordar que los campos de unión en la tabla relación deben definirse así para que queden con el estandar:
tablaa_id y tablab_id
El mismo procedimiento pero a la inversa se haría en el modelo de tablaa
Importante: No hace falta declarar claves foráneas en la base de datos.
Yo no aconsejo el uso en la base de datos.
En el modelo de la tabla a
public function tablab (){
return $this->belongsToMany('App\Tablab', 'tablaa_tablab');
}
donde 'tablaa_tablab' es el nombre de la tabla relación en la bd (Puede obviarse si se mantiene la convención de nombres de tablas)
Recordar que los campos de unión en la tabla relación deben definirse así para que queden con el estandar:
tablaa_id y tablab_id
El mismo procedimiento pero a la inversa se haría en el modelo de tablaa
Importante: No hace falta declarar claves foráneas en la base de datos.
Yo no aconsejo el uso en la base de datos.
viernes, 10 de abril de 2015
Montos Cupo Viajero Cencoex Cadivi
En un nuevo Viernes Negro, Venezuela recortó el monto de asignación de cupo de viajero Cadivi / Cencoex como se puede ver en el siguiente listado por país:
Pero si hasta allí el panorama de la Gaceta Oficial 40.636 te parece desolador, la parte en que seccionarán por número de días te va a parecer peor:
Pero si hasta allí el panorama de la Gaceta Oficial 40.636 te parece desolador, la parte en que seccionarán por número de días te va a parecer peor:
Y desde la noticia de Últimas Noticas donde saqué esa información indican que el monto en efectivo: Sólo se dará niñ@s y adolescentes.
jueves, 2 de abril de 2015
[SOLUCIONADO] Error: Non-static method Illuminate\Http\Request::...should not be called statically, assuming $this from incompatible context
Si hacemos uso de una función estática de la clase Request puede que nos devuelva el error:
Reemplaza esto:
Por
Esto solventará el inconveniente.
Error: Non-static method Illuminate\Http\Request::ajax() should not be called statically, assuming $this from incompatible contextLa causa de eso es que usamos el namespace en vez de la facade.
Reemplaza esto:
use Illuminate\Http\Request;
Por
Request;
Esto solventará el inconveniente.
lunes, 30 de marzo de 2015
Serializar con jquery los inputs de la fila de una tabla
La validación en el Back End es obligatoria. Así que si eres vago como yo puedes dejarle todo al back end para que valide y no trabajas doble.
Si tuvieras el caso de una fila de una tabla que quisieras validar, y solamente validar esa fila, puedes usar una cosa maravillosa como es la serialización de Jquery.
#tabla el id de la tabla tobdy
tbody el cuerpo de la tabla
tr:first tomara la primera fila de la tabla
:input solo los campos de entrada
Con un post mágico pasamos toda la data de esa fila y allá en php, ruby, django, etc validas todo maravillosamente y si hay un error devuelves lo que necesites.
Si tuvieras el caso de una fila de una tabla que quisieras validar, y solamente validar esa fila, puedes usar una cosa maravillosa como es la serialización de Jquery.
var datos = $("#tabla tbody tr:first :input").serialize();
$.post('index.php', datos, function(data){
if(data.error=true){
alert(data.mensajeerror);
}
});
De esta forma tenemos#tabla el id de la tabla tobdy
tbody el cuerpo de la tabla
tr:first tomara la primera fila de la tabla
:input solo los campos de entrada
Con un post mágico pasamos toda la data de esa fila y allá en php, ruby, django, etc validas todo maravillosamente y si hay un error devuelves lo que necesites.
viernes, 20 de marzo de 2015
Consejos para hacer videotutoriales
No he hecho ningún videotutorial en mi vida, y creo que jamás lo haré. Pero soy un consumidor de ellos. Por tal razón escribo unas cosas que creo deberían evitar los creadores de videotutoriales para evitar comentarios negativos en youtube:
Reduzca el ruido del teclado: Muchos espectadores usarán audífonos. Algunos creadores de videotutoriales usan el micrófono integrado de un laptop, y algunas veces el ruido del teclado se graba tan duro que parecen martillazos.
Si tu presupuesto no te permite un buen micrófono: Si el micrófono es el del laptop, puedes escribir el código con anterioridad e irlo pegando o mostrando a medida que transcurre el videotutorial. He visto esa técnica en los videos de Jesús Conde y a mi juicio permite llevar el código más rápido.
Haga pausas: ¿Va a toser? ponga pausa, tosa, y luego prosiga. ¿Se oyó un gallo en el fondo? Guarda el archivo en varias partes. Youtube permite utilizar un editor en línea rudimentario que te permite cortar las partes del video que se oye el gallo y continuar.
El todo del videotutorial es la preparacion antes de empezar a rodar. Tener pensado las cosas que ocurren en el transcurso de la grabación que pueden removerse de forma sencilla para permitir que llegue mejor la información al espectador.
Reduzca el ruido del teclado: Muchos espectadores usarán audífonos. Algunos creadores de videotutoriales usan el micrófono integrado de un laptop, y algunas veces el ruido del teclado se graba tan duro que parecen martillazos.
Si tu presupuesto no te permite un buen micrófono: Si el micrófono es el del laptop, puedes escribir el código con anterioridad e irlo pegando o mostrando a medida que transcurre el videotutorial. He visto esa técnica en los videos de Jesús Conde y a mi juicio permite llevar el código más rápido.
Haga pausas: ¿Va a toser? ponga pausa, tosa, y luego prosiga. ¿Se oyó un gallo en el fondo? Guarda el archivo en varias partes. Youtube permite utilizar un editor en línea rudimentario que te permite cortar las partes del video que se oye el gallo y continuar.
El todo del videotutorial es la preparacion antes de empezar a rodar. Tener pensado las cosas que ocurren en el transcurso de la grabación que pueden removerse de forma sencilla para permitir que llegue mejor la información al espectador.
miércoles, 18 de marzo de 2015
Seleccionar en Sublime una columna de todo un archivo
Ctrl+A- seleccionar todo.
Ctrl+Shift+L- separa la selección a cada línea.
Mueve el cursor a la izquierda, derecha (inicio o fin) según la necesidad.
martes, 17 de marzo de 2015
Godaddy con problemas
Muchas veces uno siente lenta una página web y le echa el muerto a la mala conexión al internet de Venezuela, Pera para estas fechas Godaddy está presentando problemas en las bases de datos mysql y para entrar al cPanel.
Secuencias en Postgresql
Honestamente no se si sea una buena idea eso de las secuencias en Postgresql. Me han dado varios dolores de cabeza, probablemente sea por una mala implementación y escazos conocimientos de mi parte.
Crear una secuencia en Postgresql que comience con 1
Consultar el valor de una secuencia en Postgresql
Cambiar el valor de una secuencia en Postgresql
Obtener un listado de las secuencias en Postgresql
Desde 8.4 puedes usar:
Crear una secuencia en Postgresql que comience con 1
CREATE SEQUENCE esquema.nombresecuencia START 1;
Consultar el valor de una secuencia en Postgresql
select nextval('secuencia');
SELECT last_value FROM i_articulo_idarticulo_seq;
Cambiar el valor de una secuencia en Postgresql
select setval('secuencia', 65,false);
Obtener un listado de las secuencias en Postgresql
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
Desde 8.4 puedes usar:
SELECT * FROM information_schema.sequences order by sequence_schema;
Etiquetas:
postgres,
postgresql,
secuencias,
sequences,
sql
Obtener el primer registro con Eloquent de Laravel
Si necesitas obtener un solo registro, o solamente el primero de una consulta, Eloquent de Laravel te permite algo como esto:
Esto es muy util si necesitas verificar la existencia de algún registro, u obtener el registro deseado sin utilizar el id de la base de datos.
$Registro1 = Tabla::where('campo','=','valor')->first();
Esto es muy util si necesitas verificar la existencia de algún registro, u obtener el registro deseado sin utilizar el id de la base de datos.
lunes, 16 de marzo de 2015
902 unavailable database Crear base de datos en firebird en Windows 8
Ayer estuve tratando de crear una base de datos en Firebird 1.5 bajo Windows 8 64 bits. Pensaba que una falla de conpatibilidad de este viejo manejador hacía que el comando:
Pero no era ninguna falla de compatibilidad...
Abra el isql y en vez de colocar solamente la ruta, intenta colocar localhost
Y listo puede crear, hacer sus consultas... siempre que indiques el servidor.
Bueno, eso me funcionó a mi. Fue probado el procedimiento en windows 7 64 bits y Windows 8.1
SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192 CON>user 'SYSDBA' password 'masterkey';retornara "unavailable database"
Pero no era ninguna falla de compatibilidad...
Abra el isql y en vez de colocar solamente la ruta, intenta colocar localhost
SQL>CREATE DATABASE 'localhost:C:\data\test.fdb' page_size 8192 CON>user 'SYSDBA' password 'masterkey';
Y listo puede crear, hacer sus consultas... siempre que indiques el servidor.
Bueno, eso me funcionó a mi. Fue probado el procedimiento en windows 7 64 bits y Windows 8.1
domingo, 1 de febrero de 2015
Spotify en Venezuela @spotifyve [ACTUALIZACION]
Hace poco vi en twitter esto:
Pero quizás no sea por mucho. Se ve tan, pero tan sospechosa la manera que esto aparece... Hey una compañía trasnacional ¿se anuncia en una cuenta twitter nada más? La descarga de la app es súper clandestina porque no se puede bajar por el google play, y para completar si ingrsas a spotify.com te dice que el servicio no está disponible a tu cuenta.
Por lo pronto, estoy escuchando Spotify sin usar proxy.
Actualizacion: Todo fue una farsa de alguien. La cuenta @SpotifyVE fue suspendida.
@edgaralbarran solo con seguirnos ganas una cuenta de lanzamiento de música ilimitada por 10 dias #daleplayVE #RT pic.twitter.com/w9SK6NardK
— Spotify Venezuela (@SpotifyVE) February 1, 2015
Hice el procedimiento indicado y me enviaron por mensaje privado una cuenta Spotify, con la cual pude entrar sin ningún problema. Y bueno, si caemos en los anuncios que indica la cuenta podríamos decir que Spotify ya está en Venezuela.Pero quizás no sea por mucho. Se ve tan, pero tan sospechosa la manera que esto aparece... Hey una compañía trasnacional ¿se anuncia en una cuenta twitter nada más? La descarga de la app es súper clandestina porque no se puede bajar por el google play, y para completar si ingrsas a spotify.com te dice que el servicio no está disponible a tu cuenta.
Por lo pronto, estoy escuchando Spotify sin usar proxy.
Actualizacion: Todo fue una farsa de alguien. La cuenta @SpotifyVE fue suspendida.
viernes, 23 de enero de 2015
Pasos para emigrar de Venezuela como profesional
1. Tienes que llevar tu partida de nacimiento al registro principal del estado donde naciste. Luego que lo tengas registrado, tienes que llevarlo al saren (queda en Altamira). Es por terminal de numero de cédula y en la mañana. Tardas como 20 min y te lo dan al día siguiente.
2. Llevar todos los papeles de la universidad, incluyendo el título original, al ministerio de educación superior. Puedes ir temprano en la mañana y te anotas para la lista de la tarde que no hay tanta gente. También entregar los papeles al días siguiente y puedes ir cualquier día.
3. Llevar todos los papeles de la universidad + partida de nacimiento al ministerio de relaciones exteriores. Tienes que hacer la cita por internet. El día que vayas di que quieres apostillar y legalizar los papeles, ambas cosas para que luego te sirva para cualquier país a donde te quieras ir.
4. Una vez que tengas los papeles entregados por mppre, tienes que llevarlos al consulado del país a donde te quieras ir para que ellos validen que los papeles son auténticos.
Más información en: http://papeleovenezuela.blogspot.com/
2. Llevar todos los papeles de la universidad, incluyendo el título original, al ministerio de educación superior. Puedes ir temprano en la mañana y te anotas para la lista de la tarde que no hay tanta gente. También entregar los papeles al días siguiente y puedes ir cualquier día.
3. Llevar todos los papeles de la universidad + partida de nacimiento al ministerio de relaciones exteriores. Tienes que hacer la cita por internet. El día que vayas di que quieres apostillar y legalizar los papeles, ambas cosas para que luego te sirva para cualquier país a donde te quieras ir.
4. Una vez que tengas los papeles entregados por mppre, tienes que llevarlos al consulado del país a donde te quieras ir para que ellos validen que los papeles son auténticos.
Más información en: http://papeleovenezuela.blogspot.com/
miércoles, 7 de enero de 2015
Suscribirse a:
Entradas (Atom)







