Mostrando las entradas con la etiqueta tips. Mostrar todas las entradas
Mostrando las entradas con la etiqueta tips. Mostrar todas las entradas

domingo, 25 de junio de 2017

Tips para nuevos usuarios de Fedora y Gnome


Después de un cierto tiempo de usar alguna distro Linux, a parte de obtener experiencia, también generamos una serie de trucos, sobre el SO, escritorio y la propia personalización del entorno utilizado.

Así que compartiré con ustedes algunas de las configuraciones que realizo a mi SO Fedora con Gnome cuando reinstalo por completo o lo instalo en alguna PC o Laptop.

1.- Ordenar carpetas antes que archivos: Consiste en que todas las carpetas en un directorio vayan al inicio antes de los archivos que contenga. Menciono esto, porque en Fedora, por defecto están ordenados por nombre, sin importar si  es carpeta o archivo.



2.- Ordenar archivos por tipo: Eso es necesario también, por defecto en fedora viene por nombre. Hay dos métodos para realizarlo:

a).- Ir a nautilus, en el menú superior de la esquina derecha, desglosarlo y seleccionar  por "Tipo":

b).- Copiar el siguiente comando y ejecutarlo en la terminal.


$ gsettings set org.gnome.nautilus.preferences default-sort-order type

3.- En Nautilus  a partir de la versión 23 de Fedora: se retiró la tecla "backspace" o "retroceso" para volver a la carpeta anterior, lo cual es hasta cierto punto es molesto, sobre todo si se es nuevo en Fedora.

Los pasos son los siguientes,  y también se pueden encontrar en la página siguiente:

Paso 1: Instalar nautilus-python

$ sudo dnf install nautilus-python

Paso 2: Crear el siguiente directorio

$ mkdir -p .local/share/nautilus-python/extensions

Paso 3: Crear un archivo con el nombre de: BackspaceBack.py

$ gedit .local/share/nautilus-python/extensions/BackspaceBack.py

E ir a al link y copiar el contenido que tiene y pegarlo en el archivo, o copiar el siguiente y guardarlo.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# by Ricardo Lenz, 2016-jun
# riclc@hotmail.com
#

import os, gi
gi.require_version('Nautilus', '3.24')
from gi.repository import GObject, Nautilus, Gtk, Gio, GLib

def ok():
    app = Gtk.Application.get_default()
    print app.set_accels_for_action( "win.up", ["BackSpace"] )
    #print app.get_actions_for_accel("BackSpace")
    #print app.get_actions_for_accel("<alt>Up")


class BackspaceBack(GObject.GObject, Nautilus.LocationWidgetProvider):
    def __init__(self):
        pass
    
    def get_widget(self, uri, window):
        ok()
        return None

Paso 4: Reiniciar Nautilus.

$ killall nautilus

4.- Abrir terminal con clic derecho: Esta función consiste en poder abrir la ruta del directorio en el que se encuentre, tan solo con dar clic derecho y "Abrir en la terminal".



Requiere la instalación de gnome-terminal-nautilus.


$ sudo dnf install gnome-terminal-nautilus

5.- En nautilus a partir de la versión 25: la opción "Extraer aquí" funciona directamente al dar doble clic sobre el archivo o al dar enter, si en caso se quiere abrir el archivo en lugar de extraerlo directamente, es necesario cambiar la configuración:



6.- Previsualizar iconos de instaladores de Windows en nautilus:





$ sudo dnf install gnome-exe-thumbnailer-0.8-5.fc19.noarch.rpm

7.- Alias personalizados en Fedora: Los Alias son útiles cuando se trata de acortar un comando: por ejemplo: en lugar de utilizar "sudo sync && sudo sysctl -w vm.drop_caches=3" es posible acortarlo con alguna otra palabra, ejemplo: liberarmemoria.

La creación de alias depende  del shell que se use, en bash, hay que añadir la siguiente línea al archivo .bashrc que se encuentra en la carpeta personal.

alias liberarmemoria="sudo sync && sudo sysctl -w vm.drop_caches=3"

En cambio, si se utiliza zsh entonces, dicha línea debe añadirse al archivo .zshrc que se localiza en la carpeta personal.

Reiniciar la terminal para que los cambios tengan efectos.

8.- Extensiones para facilitar el uso de Gnome Shell: Las extensiones son funcionalidades extras para el escritorio, las cuales permiten una mejor experiencia en el uso de dicho entorno.

La siguiente lista es la que yo utilizo:




  • AlternateTab: Desagrupa las ventanas del mismo tipo de aplicación, por ejemplo, si se abre dos ventanas de la terminal, éstas no se agrupan, sino que se manejan por separado.
  • Battery Status: Muestra en la barra superior el porcentaje de carga de la bateria.
  • Dash to Dock: Permite la personalización del dock, cambiar el tamaño, posición, etc.
  • Hide Top Bar: Permite ocultar y desocultar la barra superior. Incluso determinar si se muestra al llevar el cursor al tope.
  • NetSpeed: Muestra la velocidad relativa de descarga y subida del internet.
  • Random Walls: Permite añadir una carpeta con imágenes para cambiarlas cada cierto tiempo como fondo de escritorio.
  • Show Desktop from Overview: Muestra el escritorio vacío, al dar clic en un espacio en blanco cuando se presiona la tecla super.
  • Show IP: Muestra en el panel de superior de la esquina derecha la ip local que tiene asignado el equipo.
  • User Themes: Permite configurar y cambiar temas de Gnome Shell.

Todas éstas configuraciones, se realizan directamente desde el navegador de su elección. Ir al link https://extensions.gnome.org/local/ y seguir las instrucciones del siguiente link https://linuxgx.blogspot.mx/2017/06/instalar-complemento-para-administrar.html

Para la administración local de las extensiones, también es posible con gnom-tweak-tool:





$ sudo dnf install gnome-tweak-tool

9.- Cambio de tema de gtk e íconos: Esto requiere la instalación de Gnome Tweak Tool. Es necesario descargar lo iconos de su elección de la página http://gnome-look.org, una vez descargados, los temas de gtk crear una carpeta de nombre .themes  en la carpeta personal y colocarlos dentro de la misma. Y los íconos crear una carpeta .icons en la carpeta personal y colocarlos ahí.

Una vez hecho eso, instalar:


$ sudo dnf install gnome-tweak-tool

Y desde la Herramienta de Retoques o Gnome Tweak Tool en la sección de Apariencia, seleccionar los temas de su preferencia:



10.- Asignar aplicaciones por defecto a tipos de archivos.

Esta opción es relativamente fácil, es ir a Nautilus y clic derecho sobre el archivo, clic en la pestaña Abrir con: y seleccionar la aplicación que se desee utilizar por defecto.




Otros
1.- Respaldo de historial de comandos: Un tip, al reinstalar o irse a otro equipo, a veces es útil copiar la lista del historial de comandos:
Estos son los archivos usuales: .bash_history o .zsh_history dependiendo del shell utilizado y reemplazarlo por el original que esté en el nuevo usuario o equipo a utilizar.

2.- Respaldo de repositorios: Otro truco que me ha funcionado, es realizar un respaldo de los repositorios instalados en el sistema, estos los archivos son los que están en la carpeta  cd /etc/yum.repos.d/ copiarlos, y reemplazarlos en el nuevo SO. Esto solo funciona cuando ambas versiones son las mismas, ejemplo, FC25 a FC25.

3.- Desactivar Wayland/XORG:
Como aun está en proceso de prueba, a veces es mejor entrar en modo XORG. Para evitar algún problema:

Este cambio se realiza antes de iniciar sesión, como lo muestra la imagen de abajo.





Y esos son los tips que les puede ofrecer hasta ahora. Éstos son los que me  han funcionado para dejar estable y funcional mi entorno de escritorio después de formatear o actualizarlo a una nueva versión.

sábado, 12 de noviembre de 2016

Tips para mantenimiento de equipos de cómputo - Parte Software


Cuando se estudia una carrera relacionado con equipos de cómputo,  la mayoría de las personas creen que podemos reparar incluso la licuadora, compresora, lavadora, etc., y prácticamente todo lo electrónico. Pero no es así, incluso aunque en la universidad a veces en algunas materias se ve sobre mantenimiento de equipo de cómputo, es siempre lo básico,  desarmar y volver a armar y punto se acabó.

Y si a esto se le agrega que cada universidad le da un perfil o enfoque diferente  a la carreras, aún peor, no se tiene ni idea de la parte de mantenimiento.

En la universidad que estudié la lic en informática, el enfoque estaba orientado a la administración de información automatizada, pero lo que más nos ensañaban los profesores era el desarrollo de software.

Sobre mantenimiento de equipos de cómputos, reparación, ya sea en software o hardware, simplemente no había nada. Y pues está bien, ya que no es una carrera técnica como tal, por lo que no hay nada qué decir sobre ello.

Aquí viene lo interesante, ¿Qué pasa cuando familiares, amigos, compañeros de la misma carrera de otras carreras necesitan ayuda con sus laptops?.


Ya sea que te pidan un software/programa, actualización, formateo, restauración, archivos ocultos por culpa de virus, recuperar contraseña de su usuario olvidado  etc.? Qué hacer? decirles que no puedes hacerlo? mandarlos con un profesor?

Cuando se es un novato, posiblemente digas que "eso no nos lo enseñan", pero muy el fondo sabes que no es una respuesta que darías si fuera un cliente o tu jefe en el trabajo, por lo tanto tienes que ponerte a investigar sobre cómo solucionar el problema.

Entonces, este post lo hice para darles una idea del proceso que podrían utilizar, así como algunas herramientas.

1.- El usuario final cree que es fácil lo que vas a hacer, por ente, tienes que explicarle la complejidad o facilidad y esta estará sujeta al costo-tiempo, pero sobre todo, tienes que saber qué es lo que quiere realmente, los programas que más usa, configuración, versión de windows, ect.


Dr. House dice "Todos mienten", y sabemos que los usuarios finales dirán, no hice nada, solo se apagó y ya. Por lo tanto se tiene que diagnosticar el equipo, si se trata de software o hardware. En este post, solo hablamos del sofwtare, ya que cuando es hardware, solo hay dos opciones dependiendo del fallo, comprar nueva pieza o nuevo equipo.

Otro punto importante después del diagnóstico, es si tiene o no solución, para que no hagas un trabajo innecesario o algo que no se pueda hacer.

2.- Respaldos: Recuerda, si trabajas con información ajena, siempre debes respaldar todo. No des por hecho de que algún archivo es innecesario. A menos que el usuario te lo diga explícitamente.


Los respaldos siempre se tienen que hacer en un unidad externa: ¿Por qué? Imagina que vas a formatear una laptop, de estas actuales, que traen recovery, y tu muy experto, creas una partición extra de datos, pones toda la información ahí. Inicias el recovery, y como quieres todo de fábrica bueno, pues que resetee todo y particiones. ¿Qué paso? Se fue la información.

3.- Una vez realizado el respaldo de la información: ahora buscar los controladores, ver si los trae en el equipo, buscar el modelo, ir a la página oficial de la marca, y tener listo todo para no tardarse en eso después.


4.- Verificar que se cuenta con todos los programas que el usuario utiliza: office, vlc, firefox, etc.

5.- Verificar si el equipo a restaurar trae recovery, si lo trae genial y sino, entonces a crear una unidad de restauración. Yo utilizo yumi, para bootear en una sola USB varios SO, como hirens boot cd, windows, linux, kalinux, clonezilla, parted magic, wifislax, etc.


6.- Contar con varias versiones del instalador, por si las dudas.


7.- Antes de realizar el formateo del equipo, verificar que los datos sean correctos y estén respaldados. Una vez verificado ahora sí, a formatear.


8.- El postformateo yo realizo lo siguiente (En su mayoría han sido Windows):
- Iniciar sin conexión a internet, nunca conectarlo a internet hasta concluir toda la instalación.
- Instalar controladores todos: audio, pantalla, hdd, usb, lan, wireless, etc., ojo, siempre utilizar los de su página oficial, jamás descargar de softonic, o cosas por el estilo.
- Crear punto de restauración: esto es muy importante, como recién están formateando, quizá algún controlador se haya actualizado y no funcione, pues entonces para evitar volver a formatear es mejor ir a la segura, yo siempre he creado un punto de restauración después de ver que el controladores de pantalla y wireless funcione correctamente, ya que usualmente son los que me han fallado.
- Instalar todo software en su versión gratis primero: firefox, adobe acrobat, vlc, clipgrab, google chrome, netframework en caso de ser ncesario. etc. Aquí les recomiendo instalarlo a conciencia, para evitar instalar extensiones como Ask, Yahoo o cualquier otro malware o adware.
- Instalar programas que requieran activación: office, corel draw, photoshop. etc.
- Desactivar actualizaciones en win 1o utilizo destroy windows.
- Activar windows.
- Instalar un antivirus: este se instala al final de todas el software, esto para evitar que bloquee alguna instalación, suponiendo que utilicen crack ( :) ).
- Ahora sí, conectarlo a internet.
- Verificar que todo el software esté bien, que esté activado windows.
- Adicionalmente instalo las extensiones de adblock u origin ublock en firefox y google chrome.
- Reiniciar y comprobar que todo vaya bien. Y volver a crear un punto de restauración.

9.- Antes de volcar la información del usuario: yo desde linux, hago unas búsquedas de archivos .inf, VBS, js, .exe, .ink y .lnk, y los elimino dependiendo de qué nombre tengan, como ya saben usualmente son las extensiones que se utilizan por los virus, sus ejecutables, accesos directo etc..

10.- Pasar la información al equipo.

11.- Entregar al usuario, explicarle qué se instaló, dónde está sus archivos y cobrarle.

Y básicamente en eso consiste un mantenimiento de software de un equipo de cómputo, en modo resumido.

Ahora qué necesitas tener tu como técnico:

- Archivos de instalación ISOs de windows, linux, los que sean necesario.
- Crear tus propios manuales, luego se olvida.
- Nombrar programas y carpetas con los nombres reales para tener todo organizado, si son drivers, podría ser por ejemplo Asus_K46CA_64bits, y no "drivers laptop novia" o "jkahskjahs".
- De preferencia utilizar un HDD exclusivo para programas, ISOS.
- Un HDD para respaldos de usuarios externos.
- Contar con una USB booteada siempre, puedes usar YUMI, especialmente para eso, ya que nunca sabes cuándo la necesitarás.
- Nunca dejar instaladores en la PC de usuarios: ¿Por qué? simple, a veces por error, curiosidad, puede que lo instalen, y si fuera office, se desactivaría y volverían a llamar, o pero, si fuera un driver y no se instala correctamente, habría un error grave.
- Buscar actualizaciones de los software continuamente.


Y por ahora serían todo mis tips, espero que les sean de utilidad. Y si necesitan saber más a fondo, a investigar, por lo menos ya les di una idea de qué se necesita.

martes, 24 de mayo de 2016

Algunos TIPS al programar en JAVA


Entiendo que como programadores o desarrolladores, tenemos ya nuestra pila de "Trucos y Tips" a la hora de programar, así como también solucionar o encontrar los "Errores", los catch, que no contemplamos o que simplemente no sabíamos que ocurrián.

Como ya mencioné, cada quien crea sus propios trucos con base a sus experiencias, pero no está de más saber trucos de alguien más:

Les presentaré una serie de trucos y métodos que son los más usuales que siempre se requieren a la hora de programar en JAVA.

1.- Siempre crear el paquete main o principal el cual inicie todo el programa



Desde mi punto de vista, éste es el tip más importante, además, de que es esencial en caso de querer crear el Jar al final. Como sabran, para poder crear un Jar, es necesario que solo exista un main en todo el software, por lo tanto al programar, crear una estructura parecida a la imagen de arriba.

La clase principal donde está el único main de todo el software, yo siempre la coloco en un paquete separado a todas las demás, también separo las clases de las interfaces gráficas, de los recursos, y de las imágenes.

De este modo es mucho más fácil el desarrollo, desde mi punto de vista claro.

Entonces, mi clase  principal donde está el único main, lo único que hará es crear y visualizar la primera interfaz Gráfica (JFrame), de todo el software, y de ahí parte todo lo demás.

Ejemplo de mi código en la clase principal donde contiene el main:

[...]
/*
 * Nombre de la clase: Principal
 * Descripción: esta clases es la principal, desde aquí se invocan a las demás
 *  interfaces para que inicie el programa completo.
 */
package gestionbasedatos;

import gestionbasedatos.interfaces.LoginBD;
import gestionbasedatos.interfaces.SplashScreen;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
 *
 * @author m2 <linuxitos@gmail.com>
 */
public class Principal {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch(ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e){
            System.err.println("Error Look GUI: "+e.getMessage());
        }
        SplashScreen s=new SplashScreen();
        s.setVisible(true);
        try {
            Thread.sleep(10000);
        } catch (InterruptedException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }
        s.dispose();
        SwingUtilities.invokeLater(new Runnable(){
            @Override
            public void run(){
                /*Aquí crean el objeto hacía su aplicación, para hacer visible*/
                LoginBD nuevaSesion = new LoginBD();
                nuevaSesion.setVisible(true);
            }
        });        
    }
    
}
[...]

2.-  Agregar javadoc a todos los métodos y clases

Esto no creo que sea solo un tip, sino una oligación de todo desarrollador;
En Java es sencillo, solo basta posicionarse sobre el método, presionar la tecla Alt+Enter y lo agrega automáticamente:

Ejemplo:

[...]
/**
     * Método que devuelve el valor de un campo espéficico que se le indique lo retorna como string
     * si la consulta cuenta con muchas filas, se quedará con el último valor
     * @param rel
     * @param campo
     * @return String
     * @throw SQLException.
    */
    public String obtenerCampo(ResultSet rel, String campo){
       String valCampo =new String();
       try{
            while(rel.next()){ 
                valCampo=rel.getString(campo);
            }
        } catch (SQLException ex) {
            System.out.println("Error: "+ex.getMessage());
        }
        return valCampo;
    }
[...]

Si no quieren, escribir toda la documentación o comentarios en un momento dado, entonces, solo agreguen lo más importante y después la terminan.

Documentar su código no solo los ayudará a ustedes cuando no se acuerden qué hace cada uno de los mil método que tienen en su código, sino que también ayudará a otros en caso de que desarronen en grupos.

También debo decir, que su código se verá más profesional, esto es de cada quien, pero es una excelente prática hacerlo.

3.- Evitar cerrar todo el  PROGRAMA al dar CLIC en la opción Cerrar de la Vetana:

Quizas no en todos los programas se requiera inahabilitar esta opción, pero algunos casos es importante preguntar al usuario si realmente desea cerrar o si simplemente no cerrar el programa sino que te regrese a otra ventana.

Para esto, yo utilizo el siguiente código:

//Se inhabilita que al presionar el botón cerar de la ventana salga del programa
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
//Se agrega de Listener para que éste detecte cuando se presione el botón 
//cerrar y ejecute otra accion, por ejemplo hacer visible una ventana anterior.
addWindowListener(new java.awt.event.WindowAdapter() {
    @Override
    public void windowClosing(java.awt.event.WindowEvent evt) {
        //Acción a realizar contrario a salirse del programa
    }
});

4.- Crear métodos para reutilización


La idea es la siguiente: Supongamos que en el ejemplo anterior, se requiere regresar a una ventana anterior al presionar el botón cerrar de la ventana, pero también, hay que actualizar la información que se haya capturado en la ventana actual antes de cerrar. Además, tenemos un botón de "Cerrar", entonces, el código que se ejecutará en botón cerrar de la ventana, también se utilizará en el botón cerrar que agregamos nosotros, por ente, para no duplicar el mismo código, crear un método, y solo se invocaría el método en ambas opciones:

Ejemplo:

[...]
//Método creado
private void close(){
    consultas.cargarPacientesTablas(jtableInfoActFisica);
    consultas.actualizarDatosGenerales();
    regAModiExp.setVisible(true);
    this.dispose()
}
[...]
[...]
//Cuando se detecte clic en el botón de cerar ventana quedaría así
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
    @Override
    public void windowClosing(java.awt.event.WindowEvent evt) {
       close();
    }
});
[...]

Y cuando se de clic en el botón cerrar que se agregó en la ventana quedaría aśi:
[...]
private void jbCerarActionPerformed(java.awt.event.ActionEvent evt) {
   close();
}
[...]

Y con eso se dismiyen las líneas de código, y se hace uso de la Reutilización.

5.- Centrar todas las ventanas al iniciar el programa:



Para lograr que las ventanas de todo nuestro Software a desarrollar se centre automáticamente, es necesario agregar lo siguiente:

[...]
initComponents();
setLocationRelativeTo(null); //esto hace que se centre de manera utomática
[...]
Es necesario agregarlo a cada JFrame que se cree. El orden también es necesario, ya que si no lo hacen en ese orden, les lanzará una excepción.

6.- Agregar ícono a nuestro Software


Muchos podrán decir que no es necesario, pero la personalización de un Software es lo que lo hace ser más llamativo, así que, para agregar el ícono yo utilizo el siguiente código:


[...]
initComponents();
/*Tiene que ser después de initiComponents*/
Image icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("../images/favicon.png"));
setIconImage(icon);
[...]

Obviamente es necesario crear el ícono previamente, guardarlo dentro del proyecto, y agregarlo a cada JFrame que se cree.

7.- Agregar ícono a nuestro Software

Izquierda utilizando el tema default de Java, Derecha adaptado al tema del SO.
Hacer que la interfaz se adapte al estilo de ventanas y botones del sistema en el que se ejectue el software y que no utilice el default de Java.

Para esto, yo agrego el siguiente código al inicio de donde inicia la ejecución del primer JFrame:


[...]
try{
   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch(ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e){
    System.err.println("Error Look GUI: "+e.getMessage());
}
[...]

8.- En las excepciones agregar más información

Esto también lo recomiendo, pero es de cada quien de cómo encuentra sus errores en el código, sobre todo por las excepciones:

Lo que yo hago en cada error de una posible Excepción, es mostrar el con System.out.println("");, pero agregando el nombre del método en el que ocurra el error:

Ejemplo:


[...]
     /**
     * Método que realiza la desconexión con la BD.
     * @return boolean
     */
    public boolean desconectar(){
        boolean desconecta=false;
        try {
           conexion.close();
           desconecta=true;
           System.out.println("Clase conexión: desconexión exitosa");
        } catch (SQLException e) {
           System.out.println("Error en método desconectar: " + e.getMessage());
        }
        return desconecta;
    }
[...]

De esta manera me doy cuenta de dónde más o menos está el error.


Bueno, por ahora solo les dejo esos tips, espero y les sean de utilidad. Gracias por visitar.