PHP no muestra los errores en Linux: solución

Hoy te voy a mostrar una posible solución al problema de que PHP no muestra errores cuando se ejecuta en un servidor Linux (en mi caso fue con un derivado de Debian).

El problema es simple: PHP no muestra ningún error incluso aunque lo haya, es decir, no imprime ningún error en el navegador web, pero sabemos que el error debería estar ahí.

En otras ocasiones muestra un error 500 pero no muestra ningún mensaje explicativo.

(más…)

Go: error con JSON y arreglo vacío

En este artículo expongo un pequeño error que sucede con Go (supongo que no es un bug sino que simplemente así se comporta el lenguaje) al declarar un arreglo vacío.

Lo que sucede es que cuando se declara un arreglo de structs y el mismo está vacío, al ser codificado como JSON el arreglo es null en lugar de [].

En otras palabras: go codifica (con JSON)  un arreglo vacío como null en lugar de como un arreglo vacío [].

(más…)

SQL Server Management Studio se cierra al iniciar – Solución a SSMS

SQL Server Management Studio es una herramienta que sirve para conectarse y administrar un servidor de SQL o concretamente administrar SQL Server.

En ocasiones, al iniciar la herramienta de SQL Server Management la misma se cierra justo al iniciar, sin mostrar errores ni advertencias en ningún lugar.

Voy a explicar en este post cómo solucionar el error de cierre al inicio de SQL Server Management Studio.

Lo único que haremos será eliminar un archivo y unas claves de registro.

(más…)

Modificar gemfile para instalar gema de SQLite3 de otra manera

Solución a Cannot load such file — sqlite3/sqlite3_native (LoadError) en Ruby on Rails

Si al intentar ejecutar una aplicación de Ruby on rails en Windows aparece el siguiente error:

Cannot load such file — sqlite3/sqlite3_native (LoadError)

Hoy traigo una solución que funciona. No sé por qué aparece este error la mayoría de veces sobre Windows, ¿así quieren fomentar el uso de rails? por eso tanta gente prefiere otras cosas, en fin, veremos cómo arreglar este problema.

(más…)

Por parzibyte, hace
Notificaciones en AngularJS con AngularUiNotification

Notificaciones en AngularJS con angular-ui-notification

AngularJS, si bien es un framework que ya no es recomendado hoy en día para realizar proyectos (si eres fan de AngularJS entonces puedes ver a angular.io), tiene un gran uso. Infiero que muchísimos sistemas están escritos con el framework superheroico de Google.

Notificaciones en AngularJS con AngularUiNotification

Notificaciones en AngularJS con AngularUiNotification

En este post se verá cómo mostrar notificaciones usando el framework de JavaScript llamado AngularJS y una librería llamada angular-ui-notification.

(más…)

Por parzibyte, hace

Cannot change save handler when session is active

Introducción Trabajando en un pequeño proyecto de PHP me topé con la siguiente advertencia: Warning: session_set_save_handler(): Cannot change save handler when session is active. Este mensaje me tuvo dando vueltas por todo internet sin encontrar una solución, pero probando algunas cosas di con ella y vengo a exponerla. PHP permite implementar Read more…

(429) Too Many Requests Laravel – Solución y explicación

Introducción

Cuando estamos consumiendo una api creada con Laravel, puede que nos aparezca el error que dice “(429) Too Many Requests“. Aquí explicaré por qué pasa y qué solución tenemos para ello.

Básicamente esto aparece porque estamos haciendo muchas peticiones en un corto periodo de tiempo; por ejemplo, hacer 100 peticiones en menos de un minuto.

Es una forma que tiene Laravel para protegernos. Ya que de esta forma bloqueamos el acceso a un usuario malicioso que haga miles de peticiones para que nuestro servidor caiga. Si pasa el límite, sólo se le responderá con el código http 429.

(más…)

Cuidado con las rutas de Laravel

Introducción Las rutas de Laravel son una gran herramienta que nos permite construir una api rápidamente, y de forma fácil y eficaz. Simplemente tenemos que definir una ruta así: Para después poder consumirla con una petición get a sitio.com/api/usuarios (por ejemplo). De esta manera nos evitamos parsear la ruta y Read more…