import { Injectable } from '@angular/core'; | |
import { Observable } from 'rxjs/Observable'; | |
import 'rxjs/add/observable/fromPromise'; | |
import 'rxjs/add/observable/throw'; | |
import 'rxjs/add/operator/map'; | |
declare var qz: any; | |
No hay balas de plata: Lo esencial y lo accidental en la Ingeniería del Software
by Frederick P. Brooks, Jr.
De todos los monstruos que pueblan nuestras pesadillas, ninguno es tan terrorífico como el hombre lobo, porque pasa repentinamente de lo familiar al horror. Por eso, todos buscamos balas de plata que puedan acabar con ellos magicamente.
El familiar proyecto de software, al menos tal como lo ve un gestor no técnico, tiene algo de ese caracter: suele ser inocente y sencillo, pero es capaz de convertirse en un monstruo de plazos incumplidos, objetivos fallados y productos defectuosos. Por eso escuchamos lamentos clamando por una bala de plata -- algo que haga que los costes del software caigan tan rapidamente como lo han hecho los del hardware.
Pero no se ve en ningún lugar una bala de plata. No hay ningún desarrollo, ni en tecnología ni en técnicas de gestión, que por si sólo prometa ni siquiera una mejora en un orden de magnitud en productividad, en fiabilidad, en simplicidad. En este artículo,
<?php | |
namespace App\Procedure; | |
class Evento | |
{ | |
public function obtener_eventos($query = '', $usuario_id = 0, $cliente_id = 0, $tipo_publicado = '-1', $orden = '1', $empieza = 0 ) | |
{ | |
try { |
<?php | |
use Illuminate\Support\Facades\Schema; | |
use Illuminate\Database\Schema\Blueprint; | |
use Illuminate\Database\Migrations\Migration; | |
class SpMisEventos extends Migration | |
{ | |
/** | |
* Run the migrations. |
$ sudo apt update && sudo apt upgrade
$ sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less
Para cada instancia única de desarrolo y/o versión a instalar crear un usuario.
$ sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
[FIX] : Correción de errores, se utiliza para versiones estables, pero es válido si se esta solucionando un error reciente en la version de desarrollo.
[REF] : Refactorización, cuando una característica se reescribe en gran medida.
[ADD] : Añadir nuevos módulos.
[REM] : Eliminar recursos, eliminar código muerto, eliminar vistas, eliminar módulos, etc.
[REV] : Revertir confirmaciones, si una confirmación causa problemas o no se desea revertir, se hace usando esta etiqueta.
###Commit Standard
- feat( ) : Especifica una nueva implementación
- fix( ) : Solución de errores - bugs.
- refactor( ) : Modificación y/o mejorada de una implementación.
- chore( ) : Modificación que no afecta a la funcionlidad | comentario de prueba | instalacion de paquete o dependencia.
- style( ) : Manejo de maquetacion | Modificación o nueva implementacion frontend.
- init( ) : inicializacion de un proyecto, donde se podria especificar las caracteristicas y/o tipo.
<?php | |
use Illuminate\Support\Facades\Schema; | |
use Illuminate\Database\Schema\Blueprint; | |
use Illuminate\Database\Migrations\Migration; | |
class V9SpAmigosHostC0 extends Migration | |
{ | |
/** | |
* Run the migrations. |
var searchBox = new google.maps.places.SearchBox(document.getElementById('searchinput')); | |
google.maps.event.addListener(searchBox, 'places_changed', function() { | |
var place = searchBox.getPlaces()[0]; | |
if (!place.geometry) return; | |
if (place.geometry.viewport) { | |
map.fitBounds(place.geometry.viewport); | |
} else { |