Blog

Configuración de wifi en Fedora 26

Hay algunas personas como mi persona que no les aparece la señal de su wifi en el menú del sistema, estaba investigando por que no es la primera vez que me sucede -(ya me había sucedido con el fedora 25)-, después de ver más de mil post de diferentes personas, hasta que una de ellas me llegó a solucionar el problema.

Este post está hecho para las personas que tengan que tengan el driver de wifi

08:00.0 Network controller: Broadcom Limited BCM43142 802.11b/g/n (rev 01)

para verificar que driver tienen que insertar el codio lspci.

Primer paso:
Conectarse a internet ya sea por cable o por usb.

Segundo paso:
ingresar los siguientes códigos.

sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-25.noarch.rpm https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-25.noarch.rpm
sudo dnf install -y broadcom-wl kernel-devel
sudo akmods --force --kernel `uname -r` --akmod wl
sudo modprobe -a wl

y listo a disfrutar del wifi 😀 !gracias

 

 

Anuncios

Pequeña reseña de GNOME

HISTORIA DE GNOME:

Aunque con probabilidad no fue la primera solución en cuanto a entornos de escritorios “amigables” para el usuario, la difusión a mediados de 1995 del sistema operativo Windows95™ supuso un cambio radical en la interacción de los usuarios de a pie con los ordenadores. De los sistemas unidimensionales de línea de instrucciones (los terminales), se pasó a la metáfora de entorno del escritorio bidimensional, donde el ratón ganó terreno al teclado. Windows95™, más que una innovación tecnológica, debe ser acreditado como el sistema consiguió adentrarse en todos los entornos personales y de oficina, marcando las pautas a seguir (normas que, a principios del siglo XXI, todavía seguimos padeciendo).

Los seguidores del software libre, rápidamente se hicieron eco de este notable éxito y, a la vista de que los entornos UNIX carecían de sistemas tan intuitivos a la vez que libres, decidieron ponerse manos a la obra. Fruto de esta preocupación nació en 1996 el proyecto KDE de las manos de Matthias Ettrich (creador de LyX) y otros hackers. El gran problema fue que los chicos de KDE decidieron utilizar una biblioteca de nombre Qt, propiedad de la firma noruega TrollTech™, que no estaba amparada bajo una licencia de software libre. Se daba, por tanto, la circunstancia de que, a pesar de que las aplicaciones de KDE estaban licenciadas bajo la GPL u otras licencias libres, enlazaban con esta biblioteca de manera que se hacía imposible su redistribución. Consecuentemente, se estaba violando una de las cuatro libertades del software libre enunciadas por Richard Stallman en su Manifiesto del Software Libre.

Mientras se seguía discutiendo acerca de la libertad de KDE, la historia quiso que en el verano de 1997, Miguel de Icaza y Nat Friedman coincidieran en Redmond en unas jornadas organizadas por Microsoft™. Es probable que este encuentro propiciara en ambos un giro radical que supuso tanto la creación de GNOME por parte de Miguel de Icaza a su vuelta a México (junto con Federico Mena Quintero), como su admiración por las tecnologías de objetos distribuidos. De Icaza y Mena decidieron crear un entorno alternativo a KDE, ya que consideraron que una reimplementación de una biblioteca propietaria habría sido una tarea destinada a fracasar. GNOMEhabía nacido.

Desde aquellos tiempos lejanos de 1997 hasta la actualidad, GNOME ha ido creciendo paulatinamente con sus reiteradas publicaciones. En noviembre de 1998 ya se lanzó la versión 0.99, pero la primera realmente popular distribuida prácticamente por cualquier distribución de GNU/Linux sería GNOME 1.0, en marzo de 1999. Cabe destacar que la experiencia de esta primera versión estable de GNOME no fue muy satisfactoria, ya que muchos la consideraron como llena de erratas críticas. Por eso, GNOME October (GNOME 1.0.55) es tratada como la primera versión del entorno de escritorio GNOME realmente estable. Como se puede observar, conGNOME October se intentó evitar versiones de publicación numeradas para no entrar en una “carrera” de versiones con KDE.

La realización de la primera GUADEC, la conferencia de desarrolladores y usuarios europeos, celebrada en París en el año 2000, no coincidió en el tiempo por poco con la publicación de una nueva publicación de GNOME, llamada GNOME April. Fue la última que llevó un mes como nombre de publicación, ya que se mostró que ese sistema causaba más confusión que otra cosa (por ejemplo, GNOME April es posterior a GNOME October, aunque el sentido común nos haría parecer lo contrario). En octubre de ese año, tras ser debatida durante meses en diferentes listas de correo, se fundó la Fundación GNOME.

GNOME 1.2 fue un paso adelante en cuanto a la arquitectura utilizada por GNOME, que se siguió usando en GNOME 1.4. Esta época estuvo caracterizada por la segunda edición de la GUADEC, esta vez en Copenhaguen. Lo que empezó siendo una reunión minoritaria de algunos hackers, se convirtió en un evento mayoritario que atrajo miradas de toda la industria del software.

Mientras tanto, el litigio sobre la libertad de KDE se resolvió con el cambio de postura de TrollTech™, que terminó licenciando Qt bajo una licencia dual, que era de software libre para las aplicaciones que son software libre. Hoy en día no cabe ninguna duda de que tanto GNOME como KDE son entornos de escritorio libres, por lo que podemos considerar que el desarrollo de GNOME ha propiciado el hecho de no tener un sólo entorno de escritorio libre, sino dos.

La creación de GNOME2, la segunda versión de la plataforma GNOME. Esta nueva versión se ha venido gestando a lo largo de los  últimos años y ha tenido su momento cumbre en la celebración de la tercera edición de la GUADEC en Sevilla, España. GNOME2 abrió un mundo nuevo de posibilidades al desarrollador.

Versión actual (3.x)
GNOME Shell, el entorno de escritorio introducido en GNOME 3.0.
La versión 3.0 de GNOME fue lanzada el 6 de abril de 2011. Fue anunciada en la conferencia GUADEC en Estambul en julio de 2008. El nombre código ToPaZ fue posteriormente introducido dentro del proyecto y varios bosquejos fueron creados como parte del proceso de elaboración de la nueva versión.[cita requerida] Aunque la nueva versión trae muchos cambios, la principal novedad es la inclusión de GNOME Shell. La versión iba a ser lanzada en septiembre de 2010, pero en julio del mismo año el equipo desarrollador decidió posponer el lanzamiento para el mes de marzo, lanzando en su lugar la versión 2.32. En septiembre, la fecha fue nuevamente retrasada hasta abril de 2011. El 23 de febrero de 2016 se anunció la versión 3.204​ y el 22 de marzo de 2017 fue presentada la versión 3.24, cuyo nombre código es Portland.

Sistemas de Control de Versiones

Concurrent Versions System o simplemente CVS, también conocido como Concurrent Versioning System, es una aplicación informática que implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en los ficheros (código fuente principalmente) que forman un proyecto (de programa) y permite que distintos desarrolladores (potencialmente situados a gran distancia) colaboren. CVS se ha hecho popular en el mundo del software libre. Sus desarrolladores difunden el sistema bajo la licencia GPL.

Su primera versión fue liberada en 1986. Desde 2008 no se publican nuevas versiones.

HISTORIAL DE VERSIONES

240px-Gnome-2.6-en
GNOME 2.6, marzo de 2004
Gnome-2.20-en
GNOME 2.20, septiembre de 2007
1024px-Gnome2.30.0
GNOME 2.30, marzo de 2010
Gnome_3.2
GNOME 3.2, septiembre de 2011
GNOME_Shell
GNOME Shell, el entorno de escritorio introducido en GNOME 3.0.

 

Anexos:

https://blogs.gnome.org/jrb/files/2017/07/A-Brief-History-of-GNOME-1.pdf
https://es.wikipedia.org/wiki/GNOME
https://www.gnome.org/gnome-3/
http://omicrono.elespanol.com/2011/07/todo-sobre-entornos-de-escritorio-en-linux-gnome-kde-unity-xfce-y-lxde/
http://www.calcifer.org/documentos/librognome/gnome-history.html
https://lamiradadelreplicante.com/2017/08/06/la-historia-de-gnome-disponible-en-diapositivas/
https://www.taringa.net/posts/linux/12760763/La-historia-y-evolucion-de-kde-y-gnome-por-el-paso-de-tiemp.html

Actualización de Fedora 25 a Fedora 26

con la nueva actualización que nos brinda Fedora ofrece un método de línea de comandos para actualizar Fedora 25 a Fedora 26. La estación de trabajo Fedora 25 también tiene un método de actualización gráfica.

Ahora pasaremos a actualizar nuestro Fedora.

Poco después del tiempo de liberación, aparece una notificación que indica que hay una actualización disponible. Puede hacer clic en la notificación para iniciar la aplicación de software de GNOME . O puede elegir Software de GNOME Shell. una vez ya hecho la descarga lo instalamos y reiniciamos, esto tardará un momento.

Captura de pantalla de 2017-07-16 01-26-17

Uso de la línea de comandos.

Si has actualizado desde versiones anteriores de Fedora, es probable que estés familiarizado con el complemento de actualización dnf. Este método es el método recomendado y soportado para actualizar Fedora 25 a Fedora 26. El uso de este complemento hará que su actualización a Fedora 26 sea sencilla y fácil.

sudo dnf upgrade –refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download –releasever=26

Captura de pantalla de 2017-07-16 01-46-40Captura de pantalla de 2017-07-16 01-38-08

Captura de pantalla de 2017-07-16 01-39-52

reiniciamos y listo ya tendremos Fedora 26 con nueva visualización más animada y nuevas características.

Captura de pantalla de 2017-07-16 01-50-41

Aquí están los nuevos cambios importantes en Fedora 26:

  • Entorno de escritorio predeterminado GNOME 3.24.2 trae luz nocturna a Fedora.
  • Información del tiempo es en el área de notificación.
  • Kernel de Linux 4.11.9-300.
    Captura de pantalla de 2017-07-16 02-02-25
  • GCC 7 (aunque no todos los paquetes han sido compilados con GCC 7)
  • Otras actualizaciones de paquetes principales: DNF 2.5, Python 3.6, Golang 1.8, Ruby 2.4, Impulso 1.63, OpenSSL 1.1.0
  • Nuevo Vuelta de Fedora basada en Lxqt
  • Aula de Python: Un especial giro de Fedora para los maestros y profesores a usar Fedora en sus aulas o talleres para la enseñanza de Python
  • Integración systemd mejora
    Systemd-on-fedora
  • Rápido de almacenamiento en caché de SSSD está ahora activado por defecto
  • muchas mejoras bajo el capó, como mejor almacenamiento en caché de
  • información del usuario y de grupo y mejor manejo de información de depuración

Aprendiendo PyGTK

PyGTK es un binding de la biblioteca gráfica GTK para el lenguaje de programación Python. La biblioteca GTK se usa para desarrollar el entorno gráfico GNOME, así como sus aplicaciones, a la vez que algunos otros entornos gráficos. La biblioteca GTK permite el desarrollo sencillo de interfaces gráficas y su uso conjunto con Python permite el desarrollo rápido de aplicaciones gráficas potentes.

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

En el principio, tenemos que importar el módulo Gtk para poder acceder a las clases y funciones GTK + ‘s. Dado que el sistema de un usuario puede tener varias versiones de GTK + instaladas al mismo, queremos asegurarnos de que cuando importamos GTK que se refiere a GTK + 3 y no cualquier otra versión de la biblioteca, que es el propósito de la declaración.

La siguiente línea crea una ventana vacía.

win = Gtk.Window()

Seguido de la conexión a evento de borrado de la ventana para asegurarse de que se termina la aplicación si hacemos clic en la X para cerrar la ventana.

win.connect("delete-event", Gtk.main_quit)

En el siguiente paso mostramos la ventana.

win.show_all()

Por último, se comienza el bucle de procesamiento + GTK que dejar de fumar cuando la ventana está cerrada (véase la línea 5).

Gtk.main()

Para ejecutar el programa, abrir un terminal, cambie al directorio del archivo, e introduzca:

python simple_main.py

 

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

captura-de-pantalla-de-2017-06-14-15-56-47.png

ahora crearemos una ventana con título (Titulo) con nombre del botón (boton) y que cada vez que hagamos clic salga (hola mundo).

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Titulo :)")

        self.button = Gtk.Button(label="boton")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)

    def on_button_clicked(self, widget):
        print("hola mundo")

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

Captura de pantalla de 2017-06-14 16-02-17

 

Este ejemplo se diferencia del ejemplo sencillo, ya que sub-clase Gtk.Window para definir nuestra propia MyWindow clase.

class MyWindow(Gtk.Window):

En el constructor de la clase que tenemos que llamar al constructor de la superclase. Además, le decimos que para establecer el valor de la propiedad del título de (Titulo 🙂 ).

        Gtk.Window.__init__(self, title="Titulo :)")

 

Las tres líneas siguientes se utilizan para crear un widget de botón, conectarse a su clic señal y añadirlo como niño a la ventana de nivel superior.

        self.button = Gtk.Button(label="boton")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)

 

En consecuencia, el método on_button_clicked()será llamado si se hace clic en el botón.

    def on_button_clicked(self, widget):
        print("Hello World")

 

 

 

Aprendiendo Python 3.6 Básico (IV)

Lista por compresión anidadas:

creación de matriz.

>>> matriz = [
... [1, 2, 3, 4],
... [5, 6, 7, 8],
... [9, 10, 11, 12],
... ]
>>> matriz
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
>>> [[fila[i] for fila in matriz] for i in range(4)] #transpuesta de la matriz
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

Captura de pantalla de 2017-06-12 00-57-33

ahora veremos otro caso de transpuestas.

>>> transpuesta = []
>>> for i in range(4):
... transpuesta.append([fila[i] for fila in matriz])
... 
>>> transpuesta
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

Captura de pantalla de 2017-06-12 01-00-21

algo mucho mas práctico es.

>>> list(zip(*matriz))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

Captura de pantalla de 2017-06-12 01-04-00

 

La instrucción

Hay una manera de quitar un ítem de una lista dado su índice en lugar de su valor: la instrucción “del”.  es diferente del método pop(), el cual devuelve un valor. La instrucción “del” también puede usarse para quitar secciones de una lista o vaciar la lista completa (lo que hacíamos antes asignando una lista vacía a la sección). Por ejemplo:

>>> a = [1, 2, 3, 4, 5, 6]
>>> del a[0]
>>> a
[2, 3, 4, 5, 6]
>>> del a[2:5]
>>> a
[2, 3]
>>> del a[:]
>>> a
[]

captura-de-pantalla-de-2017-06-12-01-16-43.png

 

Duplas y secuencias

Vimos que las listas y cadenas tienen propiedades en común. Como Python es un lenguaje en evolución, otros datos de tipo secuencia pueden agregarse. Existe otro dato de tipo secuencia estándar: la dupla. Una dupla consiste de un número de valores separados por comas, por ejemplo:

>>> t = 12345, 54321, 'hola!' #creando dupla numero y palabra
>>> t[0] # mostrando el primer valor
12345
>>> t #mostrando la dupla
(12345, 54321, 'hola!')
>>> 
>>> u =t, (1, 2, 3, 4, 5) # anidando una dupla
>>> u #mostrando anidación
((12345, 54321, 'hola!'), (1, 2, 3, 4, 5))
>>> t[0] = 888 #las duplas son inmutuables por tanto nos dará error
#Traceback (most recent call last):
 #File "<stdin>", line 1, in <module>
#TypeError: 'tuple' object does not support item assignment
>>> v = ([1, 2, 3], [3, 2, 1]) #duplas mutables
>>> v
([1, 2, 3], [3, 2, 1])

captura-de-pantalla-de-2017-06-12-01-23-18.png

Como puedes ver, en la salida las duplas siempre se encierran entre paréntesis, para que las duplas anidadas puedan interpretarse correctamente; pueden ingresarse con o sin paréntesis, aunque a menudo los paréntesis son necesarios de todas formas (si la dupla es parte de una expresión más grande). No es posible asignar a los ítems individuales de una dupla, pero sin embargo sí se puede crear duplas que contengan objetos mutables, como las listas.

 

Un problema particular es la construcción de duplas que contengan 0 o 1 ítem: la sintaxis presenta algunas peculiaridades para estos casos. Las duplas vacías se construyen mediante un par de paréntesis vacío; una dupla con un ítem se construye poniendo una coma a continuación del valor (no alcanza con encerrar un único valor entre paréntesis). Por ejemplo:

>>> vacia = ()
>>> singleton = 'hola',
>>> len(vacia)
0
>>> len(singleton)
1
>>> singleton
('hola',)

captura-de-pantalla-de-2017-06-12-01-30-49-e1497249143659.png

 

>>> x, y, z = t
>>> x
12345
>>> y
54321
>>> z
'hola!'
>>> t
(12345, 54321, 'hola!')

Captura de pantalla de 2017-06-12 01-35-58

desempaquetado de secuencias, pondremos nuevos valores que reemplazarán guardando el valor antiguo.

 

Conjuntos

Python también incluye un tipo de dato para conjuntos. Un conjunto es una colección no ordenada y sin elementos repetidos. Los usos básicos de éstos incluyen verificación de pertenencia y eliminación de entradas duplicadas. Los conjuntos también soportan operaciones matemáticas como la unión, intersección, diferencia, y diferencia simétrica.

>>> canasta = {'manzana', 'naranja', 'manzana', 'pera', 'naranja', 'banana'}
>>> canasta # se borra los duplicados
{'naranja', 'manzana', 'banana', 'pera'}
>>> 'naranja' in canasta # verificará si esta el valor en la lista
True
>>> 'hierba' in canasta
False
>>> a = set('abracadabra') # letras únicas en a
>>> b = set('alacazam')  # letras únicas en b
>>> a # mostrará las letras de a
{'r', 'b', 'c', 'a', 'd'}
>>> a - b       # mostrará la resta
{'d', 'b', 'r'}
>>> a | b        # mostrará letras en a o b
{'r', 'z', 'b', 'c', 'l', 'm', 'a', 'd'}
>>> a & b        # mostrará letras en a y b
{'a', 'c'}
>>> a ^ b        # mostrará letras en a o b pero no en ambos
{'r', 'z', 'b', 'l', 'm', 'd'}

Captura de pantalla de 2017-06-12 01-49-37

 

>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'d', 'r'}

captura-de-pantalla-de-2017-06-12-01-55-41-e1497250614575.png