Instalar Servidor Debian/Raspbian/Ubuntu

A continuación resumo en pocos comandos los pasos de instalación de un servidor Debian/Ubuntu/Raspbian. Compilando artículos publicados en este blog bajo la etiqueta #Server6001. Agregando cosas inéditas, para tener en un sólo post todos los pasos que suelo aplicar en un primer momento para la instalación de un servidor Linux basado en Debian.

sudo su

apt-get update && apt-get upgrade

apt-get install openssh-server apache2 apache2-mod-php7.0 php7.0 php7.0-mysql mysql-client mysql-server php-curl tomcat8 vsftpd phpmyadmin php-intl php-soap php-xmlrpc

sudo ln -s /usr/share/phpmyadmin /var/www/

Instalar Cliente no NO-IP

Configurar Servidor FTP

Instalar MariaDB

Explicación de lo que estamos instalando:

openssh-server: Servidor SSH.

apache2: Servidor HTTP.

php7.0: Servidor PHP.

mysql-client: Necesario para administrar MySQL desde la cónsola.

mysql-server: Servidor MySQL.

tomcat8: Servidor Java.

vsftpd: Servidor FTP.

php-curl: Esta extensión es uno de los requisitos obligatorios para instalar sistemas algunos sistemas como Moodle.

Más info en:

🙂

Kanban for WordPress: un plugin de agilidad.

kanbanwp-logoKanban for WordPress (Kanbanwp)

es un plugin que te permite crear un tablero Kanban dentro de tu instalación de WordPress, tan sencillo de instalar y utilizar que casi da asco.

board-full-basic

Trae de manera predeterminada las columnas básicas de un tablero kanban, pero se pueden personalizar todas, agregar nuevas, quitarlas o cambiarles el texto si lo prefieres.

También puedes crear proyectos con los usuarios de la instalación de WordPress o crear usuarios sólo para este plugin, actuando como un sistema aparte.

En la web del plugin (kanbanwp.com) es posible encontrar agregados de pago para completar sus funcionalidades, sin embargo, el plugin básico se mantiene gratuito.

Falta de capacidad como indicador de éxito de un sitio web

Una pequeña startup* que llamaremos RedBuho quiere publicar en Internet un sitio web con su idea empresarial, se trata de una red social general para compartir y guardar cualquier tipo de material multimedia.

El dueño de RedBuho (dueño, programador, analista, diseñador y el que hace todo porque es el único), ideó su portal en PHP* y MySQL* ya que, le resulta muy sencillo encontrar servidores gratuitos o muy económicos para subir su desarrollo.

El dueño de RedBuho, que llamaremos Mr. Bigowl, quiso probar un poco su conocimiento de Lean*, así que publicó su red social con las mínimas características necesarias para que fuera operativa.

Luego de dos meses, un famoso y respetado profesor de informática y seguridad en la web, con muchos seguidores en Youtube por lo didáctico y actualizado de sus videos, hizo una reseña de esta nueva red social, mencionó que a pesar de tener muy pocos usuarios, menos de 100, ofrece unas características innovadoras y muy interesantes. Inmediatamente, en una hora, RedBuho pasó de 85 usuarios a 1200, a la siguiente hora a 3500 y a la siguiente hora el portal dejó de funcionar por el exceso de visitas y registros.

En los siguientes días RedBuho tuvo serios problemas de disponibilidad, se caía constantemente, tenía lentitud, etc…

Hasta este punto de la historia probablemente alguien pensaría que Mr. Bigowl se equivocó al decidir montar su red social en un server gratuito, que no tuvo previsto soportar cierta cantidad de usuarios, que planificó mal, en fin, que todos estos eventos pueden verse como un fracaso.

Nada más alejado de la realidad…

Mr. Bigowl tuvo el problema más deseado por una empresa emergente, la falta de capacidad para un exceso de demanda. No ha fracasado, al contrario, tuvo demasiado éxito.

Ahora vienen nuevas decisiones…

  • Limitar la cantidad de usuarios mientras comienza a ser rentable el sitio.
  • Arrendamiento de hosting con más capacidades.
  • Buscar apoyo con publicidad u otro tipo de patrocinio

Lo realmente agradable es que alguna decisión tendrá que tomar. Si el sitio no hubiera tenido éxito, el pequeño cascaron de un hosting gratuito le hubiera sido suficiente para tener su proyecto.

Las conclusiones a las que quiero llegar son las siguientes:

  1. No llenes tu lista de cosas por hacer antes de lanzar tu producto. Sal al mercando con lo mínimo que necesites (eso se llama Producto Mínimo Viable).
  2. Si lanzaste tu producto y tienes problemas de capacidad, celébralo, porque ahora tendrás la tarea de pensar una estrategia para sopesar esa carencia, eso es un reto que deriva del éxito.
  3. No le temas al fracaso. El fracaso es información para mejorar.
  4. No le temas al éxito.

Glosario:

Startup: Una compañía startup, compañía de arranque, compañía incipiente o, simplemente, compañía emergente es un término utilizado actualmente en el mundo empresarial el cual busca arrancar, emprender o montar un nuevo negocio y hace referencia a ideas de negocios que están empezando o están en construcción, es decir son empresas emergentes apoyadas en la tecnología. [wikipedia]

PHP: Lenguaje de programación, muy usado.

MySQL: Base de Datos.

Lean Startup: Filosofía para abordar el lanzamiento de negocios y productos que se basa en aprendizaje validado, experimentación científica e Iteración en los lanzamientos del producto para acortar los ciclos de desarrollo, medir el progreso y ganar valiosa retroalimentación de los clientes. De esta manera las compañías, especialmente startups pueden diseñar sus productos o servicios para cubrir la demanda de su base de clientes, sin necesitar grandes cantidades de financiación inicial o grandes gastos para lanzar un producto.

Hosting: Servidor o servidores que sirven que ofrecen los recursos necesarios para alojar un sitio web y hacerlos de acceso público en Internet.

#RetoLMT2016 (8/36) Libro (6/12): Gestión de Proyectos Scrum Manager

Scrum, a veces catalogado como metodología de desarrollo ágil y en otra bibliografía como marco de trabajo es uno de los procesos que más auge está teniendo en la actualidad, para el desarrollo de software por su sencillez y por ser muy intuitivo.

Ceñirse a lo estrictamente teórico va en detrimento de su propio potencial, ya que, de no existir Scrum, como metodología de desarrollo (o como marco de trabajo), algún otro le hubiera dado nombre.

Este libro, que además es de acceso libre (descárgalo aquí), es perfecto para tener una primera aproximación a Scrum, consta de dos partes, en la primera aprenderás la teoría, las reglas y la implementación (Scrum técnico); en la segunda parte aprenderás cómo romper esas reglas con el fin de optimizar todo tu proceso productivo (Scrum pragmático).

Note estimado(a) lector(a) que en el título del libro destaca “Gestión de proyectos”, el título no menciona “desarrollo de software” ni nada referente a programación. Particularmente considero que Scrum se adapta realmente a cualquier proyecto o meta que tengas en la vida, no necesariamente el desarrollo de software ágil, sólo haciendo pequeñas adaptaciones.

 

cerdo-gallina-scrum

¿Qué te pasó Ubuntu? #Reflexión

robot-ubuntuNota previa: Las palabras marcadas con un asterisco (*), están en un mini glosario de términos al final del artículo.

Siempre que se habla de Software Libre uno tiene dos opciones, o documentarte muy bien de lo que vas a hablar (como favor a la humanidad siempre que intentes hablar de algo deberías saber muy bien de lo que estás hablando) o bien advertir del carácter subjetivo de lo que vas a hablar, así poder expresar opiniones, pensamientos o sentimientos acerca de ese algo.

La comunidad de software libre tiende a ser muy crítica al momento de leer artículos y comentarios, ya que, detrás de lo meramente tecnológico existen dimensiones ideológicas y filosóficas, por eso, lo que diré a continuación se trata de una opinión de un “usuario no-avanzado” y muy personal de la distribución* Ubuntu.

He sido usuario Ubuntu por muchos años por su rendimiento, facilidad de uso y su compatibilidad con el Hardware, cuando comencé con esta distro* esos aspectos eran insuperables por ningún sistema de aquel momento (hace 10 años aproximadamente). Recuerdo especialmente los efectos que se lograban con algo llamado Compiz Fusion*, algo nunca visto hasta el momento, también los inmensos niveles de personalización que se podían lograr, pero cuando llegó Unity* la fatalidad para mi fue máxima, me pareció pesado, poco amigable y poco configurable, así que me pasé a Ubuntu Netbook Remix con LXDE, que mantenía la eficiencia que me gustaba, pero al final me cansé un poco tanto de XFCE* como de LXDE*, livianos si, pero sin ningún sabor como lo tenía el antiguo Gnome*, además nunca fui amigo de KDE*.

Recuerdo que era muy emocionante esperar la nueva versión de Ubuntu, ya que, de una versión a otra las mejoras eran notables y sorprendentes, pero desde la llegada de Unity por defecto en 2011, unido con la muerte de Gnome versión 2, hasta la última versión de 2014, a mi personalmente me ha parecido poca la mejora en la experiencia de usuario que ha tenido Ubuntu, mientras que la experiencia en máquinas de gama baja es cada vez peor. Por eso, desde aquellos años mozos hasta hoy sólo he usado Ubuntu con propósitos de desarrollo de software.

Desde hace mucho tiempo el objetivo principal de Ubuntu es la convergencia, es decir, el uso del mismo sistema operativo independientemente del dispositivo o tamaño de pantalla,  la introducción de Unity es un factor fundamental para lograr ese objetivo. Sin embargo esta podría ser una apuesta arriesgada. Dicen por allí que, el que mucho abarca poco aprieta, como muestra tenemos Windows 8, un sistema que son los pininos del mismo propósito en la gente de Microsoft: La convergencia. Pero resulta que para los usuarios de computadoras personales (de escritorio o laptops conencionales), Windows 8 no es un sistema amigable, de hecho, no conozco a nadie que prefiera Windows 8 a Windows 7 y es precisamente porque los factores de una buena usabilidad en tablets y smartphones son muy distintos a los de computadoras de escritorio y portátiles e incluso a las netbooks*.

Considero que la convergencia siempre implica un sacrificio. Para desarrollar para todos debes tienes dos opciones:

  • Hacer tu sistema igual para todos los dispositivos y decidir para cual dispositivo eres óptimo. Caso particular que Win8 sea un fastidio en computadoras personales, dado que los gestos* usados en dispositivos táctiles no siempre pueden ser imitados o no son “cómodos” usando un mouse (como arrastrar desde la derecha de la pantalla para que aparezca un menú). En este particular tengo una anécdota: un día instalé un juego en el que decía: “Toca la pantalla para continuar”. ¿Se entiende el chiste? 😀 La pantalla de una PC no es táctil  😀 Incluso haciendo clic o tocando alguna tecla no funcionaba, así que nunca pude jugar, sencillamente el juego era completamente incompatible. Al menos en otros sistemas las apps* que no son compatibles simplemente no se pueden instalar (recordar que muchas representan un gasto de dinero).
  • La otra opción es que el sistema se adapte al dispositivo y su modo de uso, pero la desventaja es que el sistema será más pesado y probablemente 50% del código nos será completamente inútil. En ese caso sería apropiado generar versiones para cada tipo de dispositivo (cero convergencia).

>#FLISoLve CCS 2010: FLISoL en FotosPersonalmente como usuario de escritorio y de computadoras de bajo rendimiento, cada día Ubuntu se me hace una opción menos viable, para mi es lamentable por la cantidad de años de uso y por el cariño que le tengo a la comunidad y al propio sistema, pero lamentablemente ya no soy parte del público objetivo de Ubuntu. Tocará buscar, e instalar algún otro sistema que sea funcional y muy fácil de usar (lo que más me gustaba de Ubuntu porque soy muy “usuario final”).

Mini-glosario de términos

Distribución / Distro: Adaptaciones del sistema operativo GNU/Linux para crear nuevos sistemas operativos.

Gnome, KDE, XFCE, LXDE, Unity: Son sistemas que permiten cambiar completamente la apariencia de una distribución GNU/Linux. Les llaman “Entornos de Escritorio”. Algunos programas están optimizados para trabajar en alguno(s) de esos entornos.

Compiz Fusion: Era (no se si aun existe) un sistema administrador de efectos gráficos, desde los más rimbombantes y divertidos, hasta los más sutiles.

Netbook: Laptops muy pequeñas, también llamadas minilaptops.

Gestos: Es el modo que interactuas con una pantalla táctil, ejemplo: arrastrar, pellizcar, girar la pantalla, sacudir el dispositivo, tocar con uno o más dedos, etc.

Apps: Aplicaciones que puedes descargar y usar en tu sistema operativo.

Configuración de un dispositivo CISCO (Visión general)

Al igual que una computadora personal, un router o switch no puede funcionar sin un sistema operativo. Sin un sistema operativo, el hardware no puede realizar ninguna función. El sistema operativo Internetwork (IOS) de Cisco es el software del sistema en dispositivos Cisco. Es la tecnología principal de Cisco y está presente en casi todos sus productos. El Cisco IOS se utiliza en la mayoría de los dispositivos Cisco, independientemente del tamaño o tipo de dispositivo. Se usa en routers, switches LAN, pequeños puntos de acceso inalámbricos, grandes routers con decenas de interfaces y muchos otros dispositivos.

El Cisco IOS provee a los dispositivos los siguientes servicios de red:

  • Funciones básicas de enrutamiento y conmutación.
  • Acceso seguro a recursos en red.
  • Escalabilidad de la red.

Los detalles operativos de IOS varían de acuerdo con los diferentes dispositivos de internetworking, según el propósito y el conjunto de características del dispositivo.

Por lo general, se tiene acceso a los servicios que proporciona el IOS de Cisco mediante una Interfaz de línea de comandos (CLI). Las funciones accesibles a través de la CLI varían según la versión de IOS y el tipo de dispositivo.

Métodos de acceso

Existen varias formas de acceder al entorno de la CLI. Los métodos más comunes son:

  • Consola
  • Telnet o SSH
  • Puerto auxiliar

 Interfaces-Router-CISCO

Los dispositivos de red dependen de dos tipos de software para su funcionamiento: el sistema operativo y la configuración. Al igual que el sistema operativo en cualquier equipo, el sistema operativo facilita la operación básica de los componentes de hardware del dispositivo.

Los archivos de configuración contienen los comandos del software IOS de Cisco utilizados para personalizar la funcionalidad de un dispositivo Cisco. Los comandos son analizados (traducidos y ejecutados) por el software IOS de Cisco cuando inicia el sistema (desde el archivo startup-config) o cuando se ingresan los comandos en la CLI mientras está en modo configuración.

El administrador de red crea una configuración que define la funcionalidad deseada del dispositivo Cisco.

Un dispositivo de red Cisco contiene dos archivos de configuración:

  • El archivo de configuración en ejecución, utilizado durante la operación actual del dispositivo.
  • El archivo de configuración de inicio, utilizado como la configuración de respaldo, se carga al iniciar el dispositivo.

También puede almacenarse un archivo de configuración en forma remota en un servidor a modo de respaldo.

El Cisco IOS está diseñado como un sistema operativo modal. El término modal describe un sistema en el que hay distintos modos de operación, cada uno con su propio dominio de operación. La CLI utiliza una estructura jerárquica para los modos.

En orden descendente, los principales modos son:

  • Modo de ejecución usuario
  • Modo de ejecución privilegiado
  • Modo de configuración global
  • Otros modos de configuración específicos

Cada modo se utiliza para cumplir determinadas tareas y tiene un conjunto específico de comandos que se encuentran disponibles cuando el modo está habilitado. Por ejemplo, para configurar una interfaz del router, el usuario debe ingresar al modo de configuración de interfaces. Todas las configuraciones que se ingresan en el modo de configuración de interfaz se aplican sólo a esa interfaz.

Cuando se usa la CLI, el modo se identifica mediante la petición de entrada de línea de comandos que es exclusiva de ese modo (también llamado prompt).

prompt-indicador-router-cisco-ios

En un artículo posterior veremos un listado de los comandos básicos para configurar un dispositivo Cisco.

#Enlace: Windows 93

En Internet se consiguen cosas locas y Windows 93. Un “sistema operativo” ejecutable en el navegador, joya del desarrollo web, pero una demencia total. Juegos, gatos, navegador, emulador de gameboy y otras herramientas que explorar están disponible en esta suerte de parodia funcional.

Windows-93

Enlace: www.windows93.net
Fuente: www.microsiervos.com

¿Qué es una computadora?

La vemos a diario, probablemente la usamos todos los días. Hablamos de ella casi a diario. Pero, si viene un niño y te pregunta ¿Qué es una computadora?

es-una-pregunta-muy-dificil

Una computadora es una máquina electrónica cuya función es ejecutar instrucciones, tan sencillo como eso (la naturaleza de esas instrucciones las veremos más adelante). Ahora, te preguntarás. Si una computadora se encarga de ejecutar instrucciones ¿En que se diferencia entonces de una calculadora (que realiza cálculos), un microondas (que calienta la comida en base a unos parámetros que le damos) o un ascensor (al que le decimos hacia donde debe ir)? La diferencia radica en EL PROPÓSITO.

computadora_homero_simpsonLa computadora es una máquina de propósitos generales, es decir, puede ser usada para crear documentos, jugar, navegar ver vídeos, comunicar, calcular, interconectar, entre otros usos menos comunes (como trabajar) 😉

Sin embargo, los límites de lo que es y lo que no es una computadora se han diluido un poco en los tiempos modernos… Celulares, relojes, tarjetas de crédito, tabletas, vehículos, televisores, cámaras fotográficas, cónsolas de videojuegos y muchos otros dispositivos “inteligentes” son también una computadora, ya que tienen los mismos componentes y en ocasiones las instrucciones que llevan a cabo a bajo nivel son las mismas.

Usualmente, al momento de describir una computadora se suele dividir en dos partes Hardware y Software.

Hardware: es todo aquello a lo que puedes golpear cuando estés molesto o algo no funcione. En otras palabras es todo lo físico, lo que se puede tocar.

hardware

Software: Es todo aquello que deja de existir sin un suministro eléctrico. Por ejemplo, un celular apagado sería todo hardware, pero desde el momento que lo encendemos comenzamos a interactuar son su software, así todos los programas y lo que hacemos en esos programas son software. Se podría decir que el software es el conjunto de instrucciones y datos que le dan funcionalidad al hardware.

gordo_friki_software_hardware La pieza de software más importante es el Sistema Operativo. Este es un conjunto de instrucciones y datos que le da una funcionalidad básica a la computadora, además sirve de capa intermedia para que otros programas (software), puedan ser desarrollados y usados en un hardware de manera más sencilla.

Por ejemplo, en el caso de los teléfonos inteligentes un posible sistema operativo sería Android. Android permite usar las capacidades del teléfono de manera básica, brinda un conjunto de “aplicaciones” (programas), que complementan sus capacidades, además ofrece la posibilidad de que programadores (personas que hacen programas), desarrollen nuevo software. Un ejemplo en computadoras personales serían Windows, GNU/Linux, o OS X.

sistemas-operativos

 

 

 

Guía de tamaños de imágenes en las redes sociales

Fuente: http://www.puntogeek.com/2015/01/12/guia-de-tamanos-de-las-imagenes-para-los-perfiles-de-las-redes-sociales-2015/

Capa Física OSI

La capa física de OSI proporciona los medios de transporte para los bits que conforman la trama de la capa de Enlace de datos a través de los medios de red. Esta capa acepta una trama completa desde la capa de Enlace de datos y lo codifica como una secuencia de señales que se transmiten en los medios locales. Un dispositivo final o un dispositivo intermedio recibe los bits codificados que componen una trama.

El envío de tramas a través de medios de transmisión requiere los siguientes elementos de la capa física:

  • Medios físicos y conectores asociados.
  • Una representación de los bits en los medios.
  • Codificación de los datos y de la información de control.
  • Sistema de circuitos del receptor y transmisor en los dispositivos de red.

El objetivo de la capa física es crear la señal óptica, eléctrica o de microondas que representa a los bits en cada trama. Luego, estas señales se envían por los medios una a la vez.

Otra función de la capa física es la de recuperar estas señales individuales desde los medios, restaurarlas para sus representaciones de bit y enviar los bits hacia la capa de Enlace de datos como una trama completa.

Existen tres tipos básicos de medios de red en los cuales se representan los datos (La presentación de los bits depende del tipo de medio):

  • Cable de cobre
  • Fibra
  • Inalámbrico

Cuando la capa física codifica los bits en señales para un medio específico, también debe distinguir dónde termina una trama y dónde se inicia la próxima. De lo contrario, los dispositivos de los medios no reconocerían cuándo se ha recibido exitosamente una trama. En tal caso, el dispositivo de destino sólo recibiría una secuencia de señales y no sería capaz de reconstruir la trama correctamente. Como se describió en el capítulo anterior, indicar el comienzo de la trama es a menudo una función de la capa de Enlace de datos. Sin embargo, en muchas tecnologías, la capa física puede agregar sus propias señales para indicar el comienzo y el final de la trama.

las tecnologías de la capa física se definen por diferentes organizaciones, tales como:

  • La Organización Internacional para la Estandarización (ISO)
  • El Instituto de Ingenieros Eléctricos y Electrónicos (IEEE)
  • El Instituto Nacional Estadounidense de Estándares (ANSI)
  • La Unión Internacional de Telecomunicaciones (ITU)
  • La Asociación de Industrias Electrónicas/Asociación de la Industria de las Telecomunicaciones (EIA/TIA)
  • Autoridades de las telecomunicaciones nacionales, como la Comisión Federal de Comunicaciones (FCC) en EE.UU.

Las tecnologías definidas por estas organizaciones incluyen cuatro áreas de estándares de la capa física:

  • Propiedades físicas y eléctricas de los medios
  • Propiedades mecánicas (materiales, dimensiones, diagrama de pines) de los conectores
  • Representación de los bits por medio de las señales (codificación)
  • Definición de las señales de la información de control

Las tres funciones esenciales de la capa física son:

  • Los componentes físicos: son los dispositivos electrónicos de hardware, medios y conectores que transmiten y transportan las señales para representar los bits.
  • Codificación de datos: método utilizado para convertir un stream de bits de datos en un código predefinido. Los códigos son grupos de bits utilizados para ofrecer un patrón predecible que pueda reconocer tanto el emisor como el receptor.
  • Señalización: método de representación de bits.

Los bits se representan en el medio al cambiar una o más de las siguientes características de una señal:

  • Amplitud
  • Frecuencia
  • Fase

amplitud-frecuencia-fase

Señalización NRZ

En NRZ, el stream de bits se transmite como una secuencia de valores de voltaje.

Un valor de bajo voltaje representa un 0 lógico y un valor de alto voltaje representa un 1 lógico. El intervalo de voltaje depende del estándar específico de capa física utilizado.

Este método simple de señalización sólo es adecuado para enlaces de datos de velocidad lenta. La señalización NRZ no utiliza el ancho de banda de manera eficiente y es susceptible a la interferencia electromagnética. Además, los límites entre bits individuales pueden perderse al transmitir en forma consecutiva secuencias largas de 1 ó 0. En dicho caso, no se detectan transiciones de voltaje en los medios. Por lo tanto, los nodos receptores no tienen una transición para utilizar al resincronizar tiempos de bit con el nodo transmisor.

Codificación Manchester

En el esquema de codificación Manchester, los valores de bit se representan como transiciones de voltaje, una transición desde un voltaje bajo a un voltaje alto representa un valor de bit de 1. Una transición desde un voltaje alto a un voltaje bajo representa un valor de bit de 0.

manchester

Un grupo de códigos es una secuencia consecutiva de bits de código que se interpretan y asignan como patrones de bits de datos. Por ejemplo, los bits de código 10101 pueden representar los bits de datos 0011.

Entre las ventajas de utilizar grupos de códigos se incluyen:

  • Reducción del nivel de error en los bits
  • Limitación de la energía efectiva transmitida a los medios
  • Ayuda para distinguir los bits de datos de los bits de control
  • Mejoras en la detección de errores en los medios

Fuente: Exploration: Aspectos básicos de networking (CISCO).