
Esta semana a raíz de un fallo en mi proveedor celular, que también es mi proveedor de internet fijo, me dejó en una condición donde lo único que pude usar para llevar a cabo una teleconferencia fue la línea conmutada fija, porque todo lo demás falló, y que quienes estaban al otro lado de la línea me leyeran los documentos que íbamos a trabajar, debido a que perdí acceso a los documentos en el correo electrónico y en la nube.
Eso me hizo pensar en lo vulnerables que están las empresas para afrontar algo que indirectamente puede causar los mismos efectos, un racionamiento eléctrico que es cada día más inminente.
Recordemos un poco de historia, este artículo del diario El Tiempo del 5 de abril de 1992 cargado gentilmente en el archivo digital, nos cuenta los horarios que cubría el racionamiento (transcribiré solo los de Antioquia, pero hay referencias a las demás regiones):
“en Medellín los cortes de energía pasan, a partir de mañana lunes, de 27 a 57 horas semanales en el sector residencial, y de 27 a 29 horas semanales en sectores con gran actividad comercial y bancaria.
En algunos sectores de la ciudad, serán todos los días, entre las 5:30 de la mañana y las 2 de la tarde. En otros, este horario se aplicará cuatro días a la semana, y en los tres días restantes se racionará entre la 1:30 y las 4 de la tarde.
En los sectores denominados como mixtos (residencial-comercial), el racionamiento será entre 5 y 10 de la mañana todos los días. Los domingos se aumentará entre las 2 y las 6 de la tarde.
En Medellín no se iniciarán cortes en el sector industrial. Sin embargo, se incrementó la cuota de ahorro voluntario del 10 al 15 por ciento del consumo.
Por otra parte, en los 99 municipios que maneja la Empresa Antioqueña de Energía, incluida la ciudad de Quibdó y siete municipios chocoanos, se aumentó en tres horas el racionamiento, que ahora quedará de diez horas diarias, incluidos los domingos. Los cortes se harán entre las 3 y las 9 de la mañana, y de 4 de la tarde a 8 de la noche.”
Para quienes alguna vez han hecho un plan de continuidad del negocio, saben que en la matriz de riesgos se definen los potenciales impactos de cada uno y se multiplican por la probabilidad de ocurrencia de los mismos. Haremos un breve análisis de porque debe revisar su matriz.
El riesgo es suspensión del fluido eléctrico, en algunos casos ni siquiera se analiza porque se confía mucho en el suministro, sin embargo la probabilidad de que comience a suspenderse por varias horas al día digamos que en este momento puede estar en un 90%. Ahora pensemos cuál es el impacto del riesgo si llega a materializarse, analicemos algunos activos de información, como se verían afectados si nuestros computadores no tienen energía:
- Documentos en la nube: Sin acceso a su lectura y modificación.
- Correo electrónico: Solo sería posible su lectura desde dispositivos móviles con plan de datos.
- Red interna de comunicaciones: Fuera de servicio.
- Comunicaciones por VoIP: Fuera de servicio.
- Teleconferencia nacional e internacional: Solo disponible desde dispositivos móviles con plan de datos.
- Sistemas de facturación, contables, CRM y otros ubicados en la nube: Sin acceso.
- Sistemas de facturación, contables, CRM y otros ubicados localmente: Sin acceso.
El nivel de impacto para la mayoría de estos escenarios es alto, por lo cual amerita que se analicen estrategias de mitigación del riesgo, miremos algunos escenarios.
1. El proveedor de canales de comunicación:
En 1992 el servicio por excelencia era la telefonía, por ley las empresas telefónicas debían mantener el servicio a pesar de los cortes de energía, por lo cual las centrales telefónicas de los operadores (que eran todos estatales entonces, Gaviria apenas comenzaba a hacer de las suyas) instalaron plantas de energía en todas ellas, así que mientras el aparato telefónico no requiriera energía (que solo la necesitaban las plantas, en los hogares no) el servicio seguía operando.
En 2016 no sabemos si los operadores de telecomunicaciones están obligados a mantener sus servicios más allá de la telefonía, no está de más que llame a su ejecutivo de cuenta y le haga la pregunta embarazosa ¿En caso de racionamiento mantendrán el servicio en las horas racionadas?
Suponiendo que si, y que van a dotarse de plantas eléctricas, o que ya las tienen, viene la segunda parte de los equipos en las premisas del cliente ¿Tiene su empresa como mantener encendidos los modems que suministran el canal de comunicación?
Existe la posibilidad de usar los canales de datos celulares como respaldo, pero tenga en cuenta que el nivel de servicio que le ofrecen no es de ancho de banda fijo sino de lo que se llama “del mejor esfuerzo”, si hay como le transportamos sus datos, sino, de malas. Cualquier cosa que le ofrezcan en contrario pida que se la dejen por escrito. También considere que los planes celulares tienen restricciones de la cantidad de información descargada, un plan sin restricciones puede estar alrededor de $330.000 pesos mensuales en este momento.
2. Los sistemas de respaldo eléctrico:
Si usted mira los horarios de 1992, debe primero hacerse una pregunta ¿En qué zona está mi empresa? ¿Está en una zona residencial? Esto es importante porque los cortes más largos en horario diurno se dieron en las zonas residenciales.
En este punto puede que esté pensando en un sistema de UPS que usted ya tenga, recuerde que las UPS se hicieron en general para tiempos de respaldo cortos, básicamente de minutos, pues lo que buscan es que puedan apagarse los equipos de forma ordenada y que no haya daños en la información, para lo otro que sirven es para entregar energía “limpia”, lo que explicaremos al hablar de plantas eléctricas.
Si usted va a necesitar un sistema de respaldo eléctrico de varias horas, o sea una planta eléctrica ¿Sabe cuánta potencia consumen sus equipos de cómputo? ¿Sabe cuánto vale cada kilovatio de planta eléctrica? ¿Sabe cuánto vale el ACPM para el tiempo que necesitará mantenerla encendida? ¿Sabe que acometidas eléctricas y ventilación requiere la instalación de la planta eléctrica? Aquí le sugiero para responder la primera pregunta una de tantas páginas que calculan el consumo eléctrico de diversos dispositivos para la oficina en el hogar y otro para el caso de los Data Centers, tenga en cuenta que sus equipos de red también deben estar cubiertos. Para más detalles es bueno que consulte a un proveedor especializado.
Si no tiene aún la planta eléctrica, tenga en cuenta que hay de dos tipos, las que están destinadas a alimentar motores e iluminación, que suministran lo que llamamos energía “sucia” es decir, que la frecuencia y el voltaje pueden variar de forma impredecible, pero que no afecta ese tipo de elementos. Hay otras que son un poco más costosas que tienen un AVR, el cual sirve para mantener esos valores constantes en ciertos rangos y que pueden usarse para equipos electrónicos, lo que llamaríamos energía “limpia”. Nuevamente consulte con un proveedor especializado para más detalles.
3. El respaldo de sus sistemas de información:
Esto tiene íntima relación con el 1, ¿Están sus sistemas de información en la nube? ¿Puede su negocio operar offline sin computadores unas 4 horas al día? ¿Legalmente puede utilizar sistemas manuales? (en casos como la facturación puede que no sea legalmente viable) ¿Puede tener sistemas locales que presten la función de los sistemas en la nube? ¿Puede sincronizar los sistemas locales con los de la nube y cuánto tarda? ¿Qué pasará con las peticiones que sus clientes hagan a los sistemas en la nube mientras no tiene acceso a ellos?
4. Los equipos de trabajo prioritarios:
Es posible que piense que la mejor opción es que todo el personal prioritario trabaje en laptops, pero ¿Ya revisó cuanto tiempo de autonomía tienen las baterías de sus equipos actuales? Si van a usar comunicación por canales celulares ¿Cuánto duran las baterías de los móviles cuando comparten internet? ¿Cuánto tardar en cargar las baterías para portátiles y móviles? ¿Cómo va a sincronizar las versiones de los documentos compartidos? ¿Su red inalámbrica interna será alimentada por baterías?
A modo de recomendación para la duración de las baterías en general use la regla de cargue al máximo y descargue hasta el mínimo, en cualquier caso cargue las baterías solo si están por debajo del 70% de carga.
5. Redes y comunicaciones internas:
Tenga en cuenta plantas telefónicas, sistemas telefónicos VoIP, sistemas de videoconferencia, redes de datos, servidores de almacenamiento en red. Una de las preguntas primordiales se refiere a si es posible no disponer de estos servicios por varias horas al día y como afecta eso la producción de la empresa, igualmente si hay métodos alternativos que puedan suplir esas funciones o si puede re-programarse su uso para que solo se realice durante el tiempo fuera del racionamiento.
CONCLUSIÓN
Es el momento indicado para que revise su plan de continuidad y lo ajuste con respecto a un riesgo cuya probabilidad de ocurrencia se ha elevado considerablemente, de modo que esté preparado en términos de identificación de recursos logísticos, físicos y económicos para mitigarlo en caso de que se haga realidad, con el menor impacto para su negocio. Y mientras tanto, economice energía y haga alguna rogativa a ver si llueve en los embalses.



Aunque hoy no los usaremos, puedes notar en el menú a la izquierda que ha creado un archivo .swift para cada una de las vistas hijas. Esto servirá luego para poder hacer programación personalizada de cada una de las vistas, en cuanto a contenido y acciones. Cambia el color de fondo de cada vista para que puedas observar fácilmente su cambio en el menú.
Abre el menú de los elementos del story board que se muestra en la imagen, si está colapsado y no lo ves da click sobre botón para desplegarlo en la parte inferior que hemos encerrado en un círculo fucsia.



















Observa la advertencia que dice cerrar las sesiones abiertas de tu proyecto y a partir de ahora abrirlo desde el archivo terminado como .xcworkspace, el otro que termina en .xcodeproj no tiene las librerías que acabamos de adicionar. Al abrirlo notarás que ahora hay dos carpetas principales, una con el nombre de tu proyecto y la otra con el nombre Pods


luego
y posteriormente se nos presentará una ventana que nos preguntará como queremos crear el Objective-C bridging header.
Allí importaremos las librerías que necesitemos, por ejemplo:

Primero vamos a crear nuestra cuenta en GitHub, para ello ve a 
Lo siguiente es elegir el plan que queremos, por el momento nos vamos con el plan gratuito, que básicamente te permite hacer todo público, ya si quieres tener repositorios privados que solo ciertas personas vean entonces necesitarías un plan pago. Le das click sobre “finish sing up” y estamos dentro.


Entonces das click sobre el ícono que parece un barril con un signo + y le dices que vas a crear un nuevo repositorio.




¿Qué hemos hecho? Piensa que estás haciendo una transacción bancaria y hasta ahora has elegido la cantidad, nos falta decir de donde saldrá el dinero, debemos especificar a nombre de quien se hará la transacción, para el caso que nos importa vamos a configurar la identidad con la cual se ejecutan las operaciones. Para esto vamos a las preferencias de SourceTree y en la configuración general elegiremos nuestro nombre y el correo tal cual como lo escribimos al momento de crear nuestra cuenta de GitHub. Si el correo es diferente sucederá que nuestras operaciones quedarán anónimas y cuando alguien mire nuestra frecuencia de uso, dirá que no hemos hecho nada. Lo bueno es que esta configuración es permanente y no necesitas repetirla cada vez.
Cerramos las preferencias y estamos listos para confirmar la transacción. Al paso de confirmar lo llamamos “Commit”, busca el ícono en la parte superior y al presionarlo te abre una ventana que tiene el fin de que documentes de qué se trata el cambio que estás realizando, una vez le das commit ha quedado localmente aceptado, como cuando presionas pagar en la tienda electrónica.





Para sincronizar con el servidor busca a la izquierda en el menú de “Remotes” la opción Show para ver el nombre del que acabaste de crear.
Da click derecho sobre el nombre y selecciona “Push” ¿Qué cosa es un push? Es sincronizar los cambios locales que dejaste en firme con el commit, en un servidor remoto. ¿Por qué no se hace al mismo tiempo que el commit? Para darte oportunidad de cambiar de idea sobre tus cambios locales.


Lo primero que verás al abrir XCode será una ventana como esta, la cual te permite iniciar un Playground (no hablaremos de eso hoy), crear un nuevo proyecto o iniciar algo desde un repositorio existente (tampoco lo cubriremos hoy). A la derecha, no mostrado en la figura, podrías abrir proyectos que ya hayas comenzado antes, debe estar vacío si tu XCode está recién instalado. Escogeremos la opción de crear un nuevo proyecto de XCode.
Nos pide entonces escoger una plantilla para la aplicación, a la izquierda está la lista de sistemas operativos para los cuales podemos crear cosas, para nuestro caso escogeremos iOS y que sea una aplicación de una sola vista.
Luego debemos identificar la aplicación, escoge un nombre que sea unico, el nombre de la organización es tu empresa o el tuyo propio si desarrollas para ti, el nombre de la organización se escribe como un nombre de dominio pero al revés, debe ser único por lo cual si posees un dominio personal en internet sería lo más indicado para nombrarlo, sino lo posees para efectos de prueba puedes inventarte el dominio que quieras. Escogeremos como lenguaje Swift, como dispositivo iPhone y por ahora deshabilitaremos el Unit Testing y el UI Testing.
Elige el lugar donde deseas guardar el proyecto, XCode creará por sí mismo una carpeta con el nombre que le diste al proyecto en el lugar que elijas. Activa la casilla inferior donde dice Source Control -> Create a Git Repository on -> My Mac. Esto va a servir para que XCode administre los cambios en tu código y luego cuando vayas a usar un manejador de versiones ya estén creados los archivos básicos. Si no sabes que es un manejador de versiones no te preocupes por eso ahora.
Una vez abierto el proyecto encontrarás tres secciones de XCode, la izquierda tiene varios íconos arriba y cada uno te permite varias cosas, no te preocupes si todavía no conoces algunos términos, si quieres adelantarte puedes darle una googleada a lo que no te sea familliar:
En el centro está la identificación del proyecto y la configuración en general aquí seleccionaremos cosas que serán importantes cuando estemos integrando código de terceros y configurando una cuenta que nos permita publicar la aplicación en el App Store.
El menu de la derecha vamos a usarlo mucho hoy, es donde verás todas las propiedades de lo que estés editando en ese momento y desde donde vamos a extraer los elementos que necesitaremos para crear nuestra aplicación, lo veremos con más detalle luego.
En la parte inferior derecha vas a ver una cantidad de elementos que puedes usar, dales una mirada. Por el momento quiero que veas que existen: Label, button, Image View, y Views. Puedes buscarlos digitando sus nombres. El cuadro blanco que tienes en el centro es una vista, podemos agregar nuevas vistas desde este mismo menú, hay diferentes tipos de ellas, la más simple que es igual a la que tenemos en el centro es una View Controller. Puedes ver que la View Controller está en amarillo mientras los otros elementos son grises, todos los elementos en amarillo son digámoslo así padres, y puedes arrastrarlos al Story board de forma independiente, los elementos en gris son hijos y solo puedes ponerlos dentro de un elemento en amarillo.
Vamos a introducir un elemento de navegación, esto nos permitirá que XCode cree el código para pasar de una vista a otra por nosotros. El elemento de navegación que usaremos se llama un Navigation Controller. Para introducirlo iremos al Menú Editor -> Embed in -> Navigation Controller. Verás que tu Story Board ha cambiado y ahora aparece un Navigation Controller justo antes de la vista donde tienes el Image View y los Buttons. También verás que le ha aparecido una franja gris a tu vista, allí puedes ponerle un nombre, si tu imagen ha quedado bajo la franja gris muévela hacia abajo.






I started using versioning software years ago, as an independent web developer. I remember installing SVN and tortoise on my laptop in order to track the PHP code I was building. I remember installing the server (locally), the client, and committing my changes in the server; but really not having clear idea of what I was doing. Basically I took it as a kind of backup (I’m also a sysadmin, so that operation was familiar to me). After finishing that project and actually having lost the server repository key, I had no much interest about using them.