SENDERO DE ESPERANZA

Noticias,comentarios y actualidad

Resolviendo el error: angular is not installed. Try running `bower install

Pedro Lara

Este error aparece con frecuencia luego de instalar gulp. Aunque muchos sugieren resolverlo modificando el fichero  .bowerrc  sustituyendo "app / bower_components" por"app / bower_components" y modificando el fichero gulpfile.js eliminando algunas lineas y agregando otras, la mejor solución es modificar este fichero totalmente como dice este hilo en Github: 1299 

En mi caso, luego de modificar el fichero, me empezó a presentar el error:  Invalid call to lazypipe().pipe(): no stream creation function specified


Este error lo resolvemos, como nos recomienda Valentin Ibanez , modificando el fichero gulpfile.js de la siguiente manera:

var lintScripts = lazypipe () 
.pipe ($. jshint, '.jshintrc') 
.pipe ($. jshint.reporter, 'jshint-stylish');
var styles = lazypipe () 
.pipe ($. autoprefixer, 'last 1 version') 
.pipe (gulp.dest, '.tmp / styles');
en lugar de
var lintScripts = lazypipe () 
.pipe ($ .jshint) // '.jshintrc' 
.pipe ($. jshint.reporter, 'jshint-stylish');
var styles = lazypipe () 
.pipe ($. sass, { 
outputStyle: 'expanded', 
precision: 10 
}) 
.pipe ($. autoprefixer, { 
browsers: ['last 2 version'] 
})) 
.pipe (gulp.dest) , yeoman.temp + '/ styles');

Ionic serve bash: ionic: command not found

Pedro Lara

Luego de varios meses de haber instalado nodejs y Ionic en Windows y tener todo funcionando buen, precisamente en el momento en que me encargan un proyecto nuevo, cuando trato de arrancar el servidor con ionic serve me aparecen varios errores que me forzan a tener que instalar todo nuevamente.

Luego de instalar nodejs y ionic de manera global me aparece el siguiente error que me retraso varias horas.


Luego de varias búsquedas en internet pudé encontrar varias posibles soluciones que le funcionaban a los demás pero a mi no.Finalmente, lo que me di cuenta que por alguna razón ionic se instaló en una carpeta diferente a la global de npm. Ejecutando la sentencia npm root -g, me aparecía la siguiente ruta: C:\ionicProyect\1.myApp\Program\node_modules, en lugar  de  /usr/local/lib/node_modules.

La solución fue cambiar el prefijo de configuración de npm. Para hacerlo ejecuté la sentencia: npm config set prefix /usr/local. Sin embargo, esta solución no me funcionó del todo desde Git bash, pues no me movía la raíz a /usr/local, sino que lo hacia a una ruta diferente:



Finalmente volví a ejecutar la sentencia npm config set prefix /usr/local, pero esta vez desde la linea de comandos: 




Esta vez si me movió la carpeta a la raíz correspondiente. Volví a instalar ionic de manera global y todo funciona correctamente.

La Biblia misma no afirma ser inspirada: Un análisis y comentario crítico, exegético y valiente del texto griego de 2 Timoteo 3.16.

En esta ocasión deseamos invitar a nuestros amigos lectores a considerar este nuevo libro del biblista Héctor Benjamín Olea Cordero que lleva como titulo "La Biblia misma no afirma ser inspirada: Un análisis y comentario crítico, exegético y valiente del texto griego de 2 Timoteo 3.16."
El libro está disponible en Amzon como ebook y en papel.Más abajo les dejo el enlace hacia la pagina de Amazon en la cual puden obtener dicho libro:

Hacer clic aquí



La Mmemoria y estrés postraumático


Cómo puedo ser cristiano y a la vez defender el aborto y los derechos de la comunidad LGBT

Pedro Lara 

En más de una ocasión, al conocer acerca de mi postura  a favor, por ejemplo, del respeto al  derecho de la mujer a decidir abortar, y a favor  del  respeto a las preferencias sexuales de las personas, algunos amigos y conocidos me  han cuestionado acerca de la incompatibilidad entre  el cristianismo y mi manera de pensar. Para muchos, en su mayoría cristianos conservadores, es prácticamente imposible que uno sea cristiano y a la vez pensar de esa manera. Esos  cuestionamientos no sólo provienen  de  cristianos conservadores, aunque estos son los más sorprendidos y drásticos en sus criticas,  también personas ajenas al  ambiente religioso en varias ocasiones me han cuestionado la supuesta incompatibilidad entre el cristianismo y  la defensa del derecho de la mujer a  abortar si así lo decide  y a favor de los derechos de las comunidades LGBT. 

Pero si, es posible ser cristiano y a la vez  no hacer apología del cristianismo. Es posible ser cristiano y a la vez defender y luchar por el respeto de los demás a no ser cristianos,  preferir otra religión o incluso no creer en nada. Desde mi adolescencia en la que me inicié en la religión cristiana nunca  me ha interesado convertir personas al cristianismo. Todo lo contrario, siempre he defendido el derecho de las personas a elegir en que creer y que las leyes le garanticen esa libertad. Muchos de  mis amigos cristianos  publican constantemente  textos con mensajes de la Biblia en sus muros de facebook y en  otras redes sociales, cosa que se respeta. En lo particular, nunca lo he hecho, ni me interesa, nunca lo haré. Desde mis inicios en el cristianismo siempre he pensado que la creencia religiosa es un asunto personal que no es necesario exhibir para que los demás me perciban como una persona buena.

 El común de la gente asocia al cristianismo, principalmente a los grupos protestantes, con el rechazo absoluto  al aborto y  el rechazo a las preferencias sexuales de las personas.Y no se imaginan la existencia de un cristianismo tolerante y abierto al dialogo y a la  construcción de  una sociedad mejor aquí en la tierra; no en el "cielo".  

Si bien es cierto que la mayoría de las comunidades cristianas tanto católicas como protestantes son en su mayoría conservadoras, me sorprendo cuando leo o escucho a "intelectuales" tratar de presentar a todos los cristianos  como   una especie primitiva sin ninguna capacidad critica. Los que más se afanan en mostrar esta imagen de los grupos  cristianos  son los fundamentalistas ateos, que  muchas veces incurren en la misma subjetividad e irracionalidad que le critican a los grupos cristianos fundamentalistas.

Los fundamentalistas ateos en su afán de presentarse como super-intelectuales y mostrar a todos los cristianos  como la barbarie que no tiene espacio en este mundo moderno,  pierden de vista y muestran su  ignorancia al desconocer   que muchas de las críticas que ellos le hacen al cristianismo y a la Biblia ya han sido formuladas, y en muchos casos mejor elaboradas,   por intelectuales dentro del mismo cristianismo.

Mi primer encuentro con literatura crítica respecto a la Biblia no fue en la Universidad,  sino cuando empecé a estudiar ciencias Bíblicas en un Seminario con profesores protestantes.En el Seminario descubrí lo avanzado de  la crítica textual, la crítica de las formas, y la  crtica de la redacción aplicados a la Biblia. Lo avanzado de los estudios arqueológicos que demostraban que muchas de las historias del Antiguo Testamento nunca sucedieron. En ese seminario protestante tuve contacto con literatura sumamente crítica producida por intelectuales protestantes y otros no cristianos pero muy ligados al mundo del cristianismo: Walter BrueggemannEd Parish SandersJoachim GnilkaAloys GrillmeierBart D. Ehrmanpor citar sólo unos pocos. Muchos de estos intelectuales han producido literatura de tanta calidad que han recibido  reconocimientos por universidades de gran prestigio. 

Obviamente, mucha de esta  literatura critica, aunque sea producida por intelectuales cristianos católicos y protestantes  no tiene cabida dentro de las iglesias e instituciones educativas cristianas conservadoras.Muchos de estos autores tienen más lectores fuera del cristianismo que dentro de él, pues no se puede negar que la mayoría de las comunidades cristianas católicas y protestantes son conservadoras.

Lo cierto es que dentro del cristianismo existe una gran cantidad de pensadores,  que luchan y promueven un mundo con mas igualdad, un mundo donde se respete las preferenciales sexuales de cada persona y donde se respete creencia  religiosa de todos. 

¿Ser víctima de los fenómenos naturales es muestra de desenfreno moral y del alejamiento del Dios de la tradición judeocristiana?

Una presunción teológica que pone de manifiesto una pésima teología, es que el no ser víctima de algún fenómeno natural (huracán, terremoto, volcán, incendio, etc.) es evidencia de una indiscutible rectitud moral (ortodoxia), o al menos el fruto previsible de extraordinarias jornadas de oración; y, consecuentemente, que el ser víctima de dichos fenómenos naturales es la muestra más simple y tangible de desenfreno moral y del alejamiento del Dios de la tradición judeocristiana.
Sin duda, sorprende que personas que presumen de ser estudiosas de la Biblia, ignoren que la llamada "ley de retribución" hace mucho que fue puesta bajo cuestionamiento por y en la Biblia misma.


Al margen y muy a pesar de ciertos pasajes bíblicos comprometidos con la "ley de retribución"; es preciso poner de relieve que Isaías 58, la parábola del buen samaritano (Lucas 10.25-37), Mateo 25.35-45, así como la enseñanza general de la figura de Jesús de Nazaret (modelo ideal para la teoría y praxis cristianas); no presuponen que detrás de las circunstancias de dolor y desgracia de una persona y de un pueblo está "el designio divino".
Es más, para el mismo Jesús de Nazaret, los beneficios del don del sol y de la lluvia (con todas sus implicaciones) son otorgados por Dios sin tener como prerrequisito un pensamiento y comportamiento ético y ortodoxo (Mateo 5.45); así de sencillo.

Subir múltiples imágenes con laravel

Pedro Lara



En esta ocasión vamos a ver cómo podemos subir varias imágenes simultáneamente a nuestro servidor y guardarlas en una base de datos de Mysql usando Laravel.
Empecemos:

Para este ejemplo vamos a utilizar un formulario HTML  bastante sencillo ya que  contendrá  sólo un imput: images. Sin embargo las imágenes también pueden ser  enviadas a través  de  una aplicación móvil y va a funcionar.

<html>
<head>
<title>Subir imágenes</title>
</head>
<body>

/*Ahora llamamos el action que se encargará de procesar las imágenes que vamos a enviar a nuestro servidor. Para poder enviar las imágenes es necesario colocar enctype="multipart/form-data"  para indicarle al navegador que estamos enviando varios archivos.*/

<form  action=" miservidor.com/UploadImage" method="post"  enctype="multipart/form-data"  >

/*Para poder subir imágenes nuestro input debe ser de tipo file y además debemos indicar que es un array images[] */
<INPUT type="file" name=" images[]">
<br>
<INPUT type="submit" name="enviar" value="enviar" >
</form>
</body> </html>

 Ahora vamos a crear la función que recibirá las imágenes en nuestro servidor, las moverá a una carpeta y guardará el nombre en la base de datos de Mysql. Pero antes debemos crear el endpoint en nuestro archivo de rutas:

Route::post(' UploadImage','ImageController@store');

Como puede observarse, en la ruta anterior hemos hecho referencia a un controlador llamado ImageController  y a su método store. En  consecuencia debemos crear este controlador con su  método. Esto lo podemos hacer con la siguiente sentencia desde la línea de comandos:

php artisan make:controller ImageController

 Esta sentencia nos creará un controlador con el nombre indicado (ImageController). Ahora dentro del controlador creamos la función store la cual  procesará nuestras imágenes:

public function store( Request $request){
                }

También es necesario crear la tabla en nuestra base de datos y su respectivo modelo para guardar el nombre de las imágenes.Para crear un modelo en laravel debemos de ejecutar la siguiente sentencia desde la linea de comandos:

php artisan make:model User

La sentencia anterior nos creará un modelo el cual usaremos para hacer crud a nuestra tabla de imágenes. 

Ya que tenemos creado nuestro modelo, nuestra tabla y nuestro controlador, pasemos ahora a trabajar con el método que procesará nuestras imágenes. 

El usuario puede enviar  sólo una  imagen, pero puede enviar más de una. Así que, para acceder a cada una de las imágenes en caso de que el usuario envié varias, vamos a crear un bucle foreach:

foreach ($request->file('imagen') as $file) {
                }

Dentro de este bucle lo primero que hacemos es colocarle un nombre a cada una de las imágenes que recibimos:

$filename= 'collection_'.time().$file->getClientOriginalName();

En este ejemplo le he colocado el prefijo  'collection_' más la hora en formato unix con la función  time(). Además le he concatenado el nombre original de la imagen con la función getClientOriginalName(). Esto es  para tratar que no se repitan los nombres de las imágenes. Sin embargo, existen otros métodos para colocarle prefijos aleatorios. Cada uno debe escoger el que más les convenga.

Luego procedemos a mover las imágenes a una carpeta que ya debemos haber creado dentro del directorio público de Laravel:

$file->move('Files/', $filename);

Para saber exactamente donde se encuentra la carpeta publica de nuestro proyecto podemos hacer uso de la función public_path().  Y dentro de la ruta que nos devuelve esta función creamos un directorio para guardar nuestras imágenes. En este  caso, hemos creado un directorio de nombre Files dentro de la carpeta Public.

Lo que sigue es guardar el nombre completo (nombre+ ruta)  de nuestras imágenes dentro la base de datos. Otra opción sería guardar las imágenes como base64, pero en este ejemplo  prefirimos guardar sólo el nombre. Para esto inicializamos nuestro  modelo:

$filemodel=new Image;

Guardamos el nombre:

$filemodel->name=$filename;

Posteriormente, validamos que las imágenes se hayan guardado:

if ($filemodel->save()) {
                    $response['success'] = 'true';
                    $response['message'] = 'images Added Successfully!';
                } else {
                    $response['success'] = 'false';
                    $response['message'] = 'Error in saving data try again!';
                }

Al final nuestra función quedaría de la siguiente manera:

public function store( Request $request){
foreach ($request->file('imagen') as $file) {
  $filename= 'collection_'.time().$file->getClientOriginalName();
  $file->move('Files/', $filename);
  $filemodel=new Image;
  $filemodel->name=$filename;
  if ($filemodel->save()) {
                    $response['success'] = 'true';
                    $response['message'] = 'images Added Successfully!';
                } else {
                    $response['success'] = 'false';
                    $response['message'] = 'Error in saving data try again!';
                }


}
return json_encode($response);  


Todo muy fácil, hasta la próxima