What Happened to Cyrix Processors? | Nostalgia Nerd – YouTube

Do you know there were another processor in the competition than intel (the x86 holder) and AMD?. Cyrix was in the 80’s and 90’s a real PITA to intel. Unfortunately, they were behind intel because intel was in the design part, they seemed to be always cloning intel instead of creating their new tech.

I don’t know what was rally the difference that made Cyrix to die and AMD to be what it is now.

PS. I still remember working with some AMD Geode chips (which were Cyrix before AMD bought them from National Semiconductors).

Loading

Things that can make macOS better

I use macOS as the main OS in my computer, actually the only one in my personal computer, but I have other computers with Linux as desktop too, but macOS is the one that I use the most. And over the time I have learned how to get more from the OS as the default installation.

For example, I currently don’t use Spotlight, I use another tool called “Alfred” you all might know it.

Alfred > Spotlight

Spotlight was a good thing back in the days were it was basically a search tool for the OS living in the corner, where nobody looks. But it was not good as a some sort of launcher, and having all my apps in the Dock was not a good idea. Then Alfred arrived and it came with other functionality like workflows and search in places where spotlight just don’t do, also the fuzzy word search (like GC and expect to get Google Chrome) works very well.

If Apple were smart enough to buy Alfred and use it instead of their current implementation of spotlight (GUI) that would make macOS much more useful.

Quick send mail

Email is my preferred way to send messages, pictures, documents to friends and colleagues, but I don’t want to keep the whole app open, It would be create to have a mini-composer ready to be used whenever you want to send a quick email.

In which cases you would want to use “Quick-email” ?.. well, in the “share” button there is “Mail” and it opens the whole app, you can use that mini-composer, you don’t want to read email, you want to send.

Another example, you just remembered you need to ask for some help to a partner, a quick workflow in “Alfred” could launch that mini-composer, write a small email, hit the send button (or a shortcut-key) and you are done.

Quick Calendar add.

Basically the same thing as Quick send mail but to add things in the calendar, you can quickly view your day or tomorrow in the today widgets.

Open new window in current fullscreen space

Full Screen mode is for me one of the best things that macOS have in the windows corner. I work mostly with full screen apps, this because it let me focus on the current task, is less cluttered and digging a bit on the os side, it allows background apps to take a nap and free resources.

Sometimes I want to open a new tab of safari but in a new window, but, it opens in a new fullscreen window, then I have to enter to mission control and then move the window near to the other an attach it to the space where the original window was, then I have a single space with two windows in fullscreen mode.

A quick way to to that would be great, like in the email composer, just open it in fullscreen mode, hit CMD+N and a new window appears next to the current without leaving the current space.

Flyover apps

This is common in iOS, you can have one app in flyover mode, is hidden in every space, but when you call it is a floating window in the current space with you can remove from flyover mode and attach to the current spate. wouldn’t that be great?. What if you can have several apps in flyover ? I would put mail in that mode.

Loading

Petición · Exigimos que los Jueces y Magistrados sean removidos de su cargo @SCJN · Change.org

Estoy consciente que ser Magistrado o Juez de la SCJN no es cualquier puesto, que posiblemente requiera tener cierto nivel de preparación, y digo posiblemente porque pues… palancazo, relaciones, etc, es cierto que sus salarios son exorbitantes, tienen un sueldo mayor a cualquier funcionario publico de la nación.

Sí, son servidores públicos, su salario sale de los impuestos, trabajan de forma “autónoma” pero a final de cuentas se le paga con el dinero que recauda el gobierno, no, ellos no andan vendiendo galletitas o hacen colectas para tener un “salario”.

Y no es que me indigne el hecho de que tengan un salario mucho mayor al que yo recibo, obvio no, su trabajo les debe haber costado, pero si creo que es exagerado.

Además, sus comentarios de “si me bajo el sueldo me corrompo” esta super fuera de lugar; es como decir que si no estas en la religión te convertirás en una mala persona. Sorpresa, eres una mala persona contenida por la religión, no deberías necesitar la religión para ser una buena persona; no deberías tener un super sueldazo para no ser corrompible.

Cierto, los 500mil, 1 millón, 2 millones de pesos que se ahorren en el salario no va ayudar mucho en los programas sociales, pero se trata de equidad, un funcionario publico no puede tener determinada su rectitud en base a su salario.

Así que por favor, si estas de acuerdo, firma la petición aquí abajo, ayudanos a dar a conocer nuestra voz.

 

Exigimos que los Jueces y Magistrados sean removidos de su cargo @SCJN

Source: Petición · Exigimos que los Jueces y Magistrados sean removidos de su cargo @SCJN · Change.org

Loading

Introvertido?

La verdad es que no sé decir si soy introvertido o no, pero definitivamente no soy extrovertido.

Como extrovertido entiendo (corríjanme por favor, háganlo) que son personas que les gusta estar entre otras personas, que disfrutan y cargan su energía al estar con otras personas, que no les gusta estar solas o que prefieren estar siempre con otras personas antes que estar solas. Que les gusta bailar acompañadas, ver peliculera, escuchar música, que les gusta compartir todo!. 

Esto lo digo porque frecuentemente me encuentro con situaciones en las cuales prefiero estar solo antes que estar con otras personas. Siempre he disfrutado mi soledad, ese tiempo a solas en las que puedes bien leer un libro solitario, disfrutando en tu tranquilidad total del libro, o viendo una película, disfrutando enteramente de los diálogos, de la fotografía sin tener que estar explicando a alguien mas que canijos fue lo que pasó, lo mismo pasa con las series. O escuchando un album de tu artista favorito que simplemente te encanta, a solas, sin ruido, sin nadie que te esté molestando.

Para mi fortuna o infortunio me he casado con una persona que creo que es extrovertida, no sabe vivir sin compañia, literalmente se deprime si está sola, me he esforzado durante estos 10 años de matrimonio por ser una persona como ella, compatible con otras personas, con empatía, que le caiga bien a la gente, para que ella no me sienta como un agente extraño. Sin embargo; últimamente no me siento con ganas de seguir con lo mismo.

Últimamente me he sentido con mas ganas de aislarme, con ganas de disfrutar lo que soy, de ver una película sin molestias, de escuchar mi música, de ver mis videos en YouTube, de leer lo que me gusta sin tener la molestia de otras personas.

¿Esto me hace una persona introvertida?,  me gustaría saber, una parte para poder justificar mi comportamiento, otra para poder ayudar a quienes me rodean a aprender cómo soy y que puedan aceptarme como soy. 

¿Amigos?, los amo, me encanta tener amigos, hay amigos para cada una de la ocaciones en las que me siento a gusto, para trabajar, para convivir, para festejar, para tomar unas cervezas en la cochera y platicar de cosas sin sentido, pero a veces prefiero estar solo.  

A veces solo prefiero estar solo. 

Loading

Yay! PyCharm 2018.3 !!

 

I’ve been using PyCharm for professional use since about 1 ½ years now ( I mean paying for the Pro license, I have more time using the Community Edition), and I like a lot what PyCharm help me to do, the Django support is pretty awesome and is super fast even when my computer is a 2012 model.

So, I’m pretty happy with every new version of PyCharm, there are several new features and improvements, you can see them here: What’s New in PyCharm

Loading

I’ve changed my keyboard

https://www.flickr.com/photos/markuz/33945381520/in/photolist-CGy4tb-CJzq7H-KwbvbE-WUwRQw-Ukj9WT-THCXhC-U143e3-SMcER9-SMcECU-QVfzuD-CGxYwC-ta3JoH-pNVnrr-mhMBrE-kvzLen-kveRnj-i7b6dZ-fo7Bgu-eS8F9Z-eA5s91

After a couple of years my Apple “Magic” keyboard started to fail, there is just one key that is failing but is a very important key… the “Left Shift” key.

It is a very important key since a lot of key shortcuts depend on it, and I had to get a new keyboard for just one key. Maybe if a complete row was malfunctioning I could feel a bit less frustrated, but one key.. one freaking key..

Continue reading

Loading

Redis y el fork “obligado” al cambiar la licencia

Esto es lo que me gusta el movimiento Open Source, si el desarrollador se va por un camino que es diferente al de la comunidad entonces la comunidad tiene el derecho de hacer un fork y continuar sin tener que estar a expensas del desarrollador.

Redis Labs obviamente ha puesto mucho empeño en el éxito de su motor de base de datos en memoria: Redis, así como de otros componentes, pero también consideremos que por mucho empeño que le pongan, no seria tan exitoso si no fuera por la comunidad. Es decir, no le quito ningún mérito a cualquiera de las dos partes.

Esto ya ha sucedido en el pasado, se me vienen a la mente dos proyectos que pasaron por lo mismo:

MySQL

La empresa que se encargaba de desarrollar MySQL eventualmente fue adquirida por Sun Microsystems quien le dió mucho empuje al desarrollo de software Open Source, MySQL en manos de Sun tuvo mucho auge entre la comunidad FLOSS, sin embargo, cuando Sun fue adquirida por Oracle el desarrollo de MySQL se vio menos intenso, vaya, Oracle ya tenia un motor de base de datos era obvio que MySQL no tuviera tanta atención.

Que fue lo que sucedió?. La comunidad hizo multiples forks de MySQL de los cuales están vigentes MariaDB (mi favorita) y Percona. Al ser forks de MySQL sirven cómo remplazo total del motor que ahora es propiedad de Oracle, para algunos incluso, preferible usar estos forks que el motor “original”.

OpenOffice

Open Office tiene una historia muy larga dentro de la comunidad, originalmente como StarOffice, la suite ofimática de Sun Microsystems, luego en su forma Open Source como OpenOffice y que gracias a que Oracle compró a Sun, pues cayó en desarrollo, al grado que se hizo un fork llamado LibreOffice. Eventualmente OpenOffice fue concedido a la Apache Foundation para que la comunidad continuara con su desarrollo pero poco ha crecido, siendo LibreOffice quien tiene mas actividad.

Aunque no todo ha sido miel sobre hojuelas para los forks…

Solaris

Sun Microsystems (otra vez) tenia este sistema operativo (Unix) para sus servidores Sparc, eventualmente lanzaron una versión open source de Solaris, tal como Red Hat hizo con Fedora o SuSE con OpenSuSE, esta versión de solaris se llamó “Open Solaris” que iba bien, hasta que  poco a poco fue cesando su desarrollo, tuvo varios forks (ej. Open Indiana), pero ahora son relativamente pocos los que la ocupan.

Qué sucederá con Redis, pues si la comunidad se aplica espero que suceda lo que vemos vimos con MySQL y Libre office, pero en caso contrario tendremos otro Open Solaris.

Que fork se me esta pasando?,  Escribe en los comentarios.

Redis put some of the program’s code under the anti-open-source Common Clause license. Now, developers are counterattacking by forking the code.

Source: ​Redis Labs and Common Clause attacked where it hurts: With open-source code | ZDNet

Loading

Podría la popularidad de Python ser superior a la de JavaScript en 5 años?

Respuesta corta: NO

La cuestión es que JavaScript está presente como bien dice el articulo, en cerca del 95% de los sitios web en el mundo, es un lenguaje de programación que domina la forma en la que las paginas web tienen cierto dinamismo, vaya, para nadie es raro escuchar de la tripleta HTML5+CSS+JavaScript, sin embargo otras tecnologias como Flash o Java decayeron tanto que solo un par de navegadores lo soportan aún.

Python por otro lado es un lenguaje de uso general, muy popular en el backend y en aplicaciones de Machine Learning y computo científico, es su sencillez y madurez lo que le da su popularidad, sin embargo no cuenta con esa exclusividad que tiene JavaScript.

Es JavaScript un mejor lenguaje que Python?. Lo dudo mucho, hay muchos ejemplos de lo que está roto en JavaScript, tanto que hasta juegos sobre sus patrones de igualdad hay. Incluso hay lenguajes que se compilan a JavaScript para hacer las cosas mas “sencillas” y menos susceptibles a errores. Sin embargo, como dije en el párrafo anterior, JavaScript cuenta con esa exclusividad en la web que hace casi imposible que otro lenguaje de programación sea tan popular como él. Si vas a aprender a hacer sitios web tienes por fuerza que aprender a usar JavaScript, incluso si usas algún framework. Otro punto fuerte de JavaScript son los dispositivos móviles, para muchos el tener que mantener la misma app en diferentes plataformas los ha llevado a tener un framework con un lenguaje de programación común, ahí es donde JS ha sido el que ha triunfado, es común encontrarse frameworks que usan JS y “convierten” estas instrucciones a una app nativa, o en el peor de los casos a una especie de web-view con el dinamismo dado por JS.

Como podría Python ganarle terreno a JavaScript?, lo está haciendo muy bien sirviendo desde el backend (como de costumbre), muchos sitios web estan construidos sobre Django, APIs que se han construido sobre Flask, en el computo científico es muy pero muy popular, pero seria genial que Python fuera la base para alguna plataforma móvil, te imaginas escribir apps para dispositivos móviles usando Python de forma nativa? es decir, que el dispositivo use Python directamente, que no se compile a JS, Java/Kotlin u ObjectiveC/Swift.

Cuál es tu predicción a 5 años?, Python será mas popular que JavaScript?.

JavaScript and Python are two influential programming languages for building a wide range of applications.

Source: Could Python’s Popularity Outperform JavaScript in the Next Five Years?

Loading

Python no tendrá Master/Slave en 3.8

Guido van Rossum hizo el merge del PR de Victor Stinner, por lo que los términos Master y Slave ya no aparecerán en la versión 3.8 de Python, aunque uno de los PRs quedó fue porque refleja la terminología de las pseudoterminales de UNIX.

Así que váyanse preparando, para eliminar los “child processes” porque como vas a tener a un niño trabajando. Igual los Daemons, y finger tendrá que ser renombrado porque, pues propone un dedo y no se me vayan a ofender por eso…

De saber que te marchitas no te corto florecita…

Source: Message 324995 – Python tracker

Loading

Remover “Master” y “Slave” de Python?

 

A ver que opina usted, ¿le gustaría que se dejaran de usar los términos “master” y “slave” o “Maestro” y “Esclavo” de la terminología en Python?.

En lo personal creo que hay muchas cosas mejores que hacer, un par de palabras que no me parecen en absoluto ofensivas porque desde un principio, no estan dirigidas a mi, no se refieren a mi, de hecho, no se refieren a una persona, se refieren a un par de procesos.

Me da un poco de coraje mezclado con tristeza el hecho de que haya personas que con cosas tan triviales como un par de palabras se sientan ofendidas, deberían entender que son solo palabras, las palabras sin contexto no tienen un verdadero significado y dentro del contexto en Python solo se refiere a un proceso que tiene el control sobre otro que no, lo que dice que no es el maestro y el otro el esclavo.

Considerando esto, cualquier palabra podría en algún momento ser ofensiva si nos ponemos a pensar en casos de uso, algo como perro podría ser ofensivo, porque a alguien tal vez le dijeron perro. Al rato va a resultar que no quieren que se diga “Camel Case” porque.. bueno, los camellos pueden sentirse ofendidos.

Usted que opina?

The political correctness debate has now found its way to the world of computers, after a developer from the Python programming language suggested that the words “master” and “slave” should be removed.

Source: ‘Insanity’: Backlash over suggestion to nix ‘master’ & ‘slave’ from Python programming language — RT World News

Loading

“Telmex vs. Apple y Netflix”

 

En mi pobre opinión el problema es que Telmex o el “Sindicado de Telefonistas de la República Mexicana” mejor dicho, creen que Netflix se aprovecha de su infraestructura para poder ofrecer su servicio, pero veamos dos cosas:

En primera, Netflix es un proveedor de servicios, no es un proveedor de internet, no vende discos o renta películas físicas, todo es digital y en la renta de su servicio en ninguna cláusula dice que ellos se harán cargo de proveer el internet al cliente, eso siempre queda de lado del cliente.

Telmex (o cualquier otro ISP a final de cuentas) es quien provee la interconexión entre Netflix y el usuario final, pero tampoco lo hace gratis. Telmex cobra una mensualidad para poder acceder a internet, ojo, digo a in-ter-net, no Netflix, el usuario puede entrar a  cualquier servicio, esto incluye Claro Video, Youtube, Vimeo, Facebook, Twitter, etc..

Entonces, ninguno “le come” el mercado al otro, pero como a Netflix le va a tan bien, entonces Telmex (“El sindicato de telefonistas de la República Mexicana”…) quiere que le vaya igual de bien.

Sorpresa Telmex, en mi experiencia muchos terminan contratando internet porque quieren ver Netflix, o porque quieren ver Youtube, o porque quieren acceder al “feis”. Toda esa infraestructura no produciría mucho si no fuera por aquellos productores de contenido que hacen Internet tan divertido y adictivo.

Telmex se ha beneficiado, porque gracias a estos productores de contenido (youtube es.. vaya, hay de todo) la demanda de Internet ha crecido de una manera exponencial y quién se ha beneficiado de esto?. Pues los ISPs, eso incluye, a Telmex.

Otro punto muy importante, si Netflix debe pagar por ofrecer sus servicios aquí, no debería ser para apoyar la infraestructura de los ISPs como (desgraciadamente) sucede en E.E.U.U. donde tiene convenios con COMCAST y otros. Si sucede así la cosa entonces la neutralidad de la red se vería limitada, puesto que se presta a que cualquier empresa con suficiente poder económico pueda apachurrar a las otras al hacer un convenio con los ISPs para evitar que las empresas emergentes terminen de germinar.

Ahora piensa en los usuarios.. quieres tener Netflix “chingón” ?, bueno pagas tu “extra” para tener a full Netflix (aparte de tu renta de Netflix y tu renta de Internet).

La semana pasada, el Sindicato de Telefonistas de la República Mexicana (el “Sindicato de Telmex”), quien en sus propuestas tiende a coincidir con la directiva de la empresa, presentó su “Agenda Digital por México”. En ésta expresó su rechazo a la orden de separación funcional dada por el Instituto Federal de Telecomunicaciones (IFT) o que la empresa tenga convergencia plena, aunque sin cumplir lo que ordena la ley en la materia.

Source: Telmex vs. Apple y Netflix

Loading

Buenas practicas en Django

En un post anterior les comenté las buenas prácticas en Python, ahora toca hablar de Django, si bien Django esta hecho en el lenguaje Python tiene sus propias convenciones como framework, y seguir estos lineamientos permitirá que tengas proyectos organizados pero sobre todo, que tus compañeros de trabajo (si todos siguen estas recomendaciones) y tu funcionen mejor.

Estilo de código

Aquí no hay mucho que decir, estamos hablando de Python y por lo tanto aplican las reglas de estilo de Código de Python, debes escribir siguiendo la PEP8. Django también tiene sus propias convenciones para escribir código, estas las puedes encontrar aquí , coteja con las de Python, verás que son complementarias.

Settings

settings.py es uno de los módulos principales en tu app, en el se definen los parámetros con los que ha de funcionar tu aplicación, es importante mantener limpio este módulo, e incluso, quitar lo que no es básico para entender el funcionamiento de la aplicación o moverlo a otro lado.

Recordemos que estamos hablando de Python, podemos hacer nuestro settings.py muy modular, e importar lo que se necesita en el momento. Por ejemplo, las configuraciones de logging , o las configuraciones correspondientes al ambiente de desarrollo que son típicamente diferentes a las de producción.

Rutas

Nuestro ambiente de desarrollo esta en una ruta en el almacenamiento diferente de la que estará en producción, es por ello que debemos evitar usar rutas “duras”, en su lugar debemos referirnos a rutas relativas a una que Python nos proporcionará.

Es común ver en el settings.py la variable BASE_DIR y STATIC_ROOT que son variables donde se define la ruta absoluta del proyecto en disco duro, así como donde se guardan los archivos estáticos en disco duro. Estas variables las podemos definir mejor así:

BASE_DIR = os.path.dirname(__file__)
STATIC_ROOT = os.path.join(BASE_DIR, "static")

urls

En nuestro proyecto veremos un archivo urls.py que no es mas que un módulo que contiene la información de cada una e las URLs dentro de nuestro proyecto. Me ha tocado ver urls.py tan largos como la cuaresma, y no, no es nada bonito tener un módulo asi de grande, sobre todo porque es confuso.

Que podemos hacer entonces?. Bueno, en principio, tener un urls.py en cada app de tu proyecto, de esta forma cada app será independiente, se reducirá el tamaño del archivo principal y te será m as fácil ubicar las urls en caso de agregar/editar/borrar. La otra, en el caso de que nuestra app tenga muchas urls, es modularizar, puedes repartir las urls en mas módulos dependiendo de cada sección dentro de tu app.

Plantillas

Las plantillas en Django están en básicamente en dos lugares, en el directorio base de tu proyecto y en el de cada app, ahí deberá haber un directorio llamado templates. Lo importante aquí es que las plantillas de tu app deben estar en el directorio templates dentro de tu app. Las plantillas “base” o genéricas podrían estar en tu directorio templates en el directorio base.

BASE_DIR/
        /myproject/
                  /settings.py
                  /urls.py
        /templates/
                  /base.html
                  /header.html
                  /footer.html
        /my_app/
               /models.py
               /views.py
               /urls.py
               /admin.py

Contenido estatico

Lo mismo que con las plantillas. Cada app debe mantener su contenido estático para cada una de ellas, con esto mantienes la independencia de la app y permites que pueda ser usada en otros proyectos.

El contenido estático pueden ser:

  • imágenes
  • JavaScript
  • CSS

Ojo, no se debe confundir el contenido estático con el contenido que sube el usuario final, este contenido que sube el usuario va al directorio “Media”

Otras convenciones que aplico yo

Estas no están dentro de las convenciones de las buenas prácticas en Django, pero las he usado y me han servido muy bien:

Convertir views.py /forms.py en un paquete

Con esto puedo seccionar las partes de mi app, así tengo Views para cada sección y son generalmente archivos pequeños. Con esto evito tener un “views” de mas de 1000 lineas.

BASE_DIR/
        /myproject/
        /my_app/
               /models.py
               /urls.py
               /admin.py
               /views/
                     /customers.py
                     /products.py
                     /reports.py

Usar siempre Class Views

Django desde hace buen tiempo ya cuenta con las Class Views. Antes estábamos acostumbrados a que cada vista era una función, pero los Class Views tienen muchas ventajas sobre las funciones.

Lo que mas me gusta es que puedo crear una clase base y solo extender su uso dependiendo de la sección, por ejemplo, tengo la sección Customers, entonces creo una vista básica de “customers”:

class CustomerBasicView(LoginRequiredMixin ,TemplateView):
    template_name = "blank.html"
    # Esta variable de clase se llenará con el valor delcliente en turno.
    customer = None

    def get_context_data(self, *args, **kwargs):
        # Crear el contexto y llenar lo "General"

    def get(self, request, *args, **kwargs):
        # Llamar get_context_data
        # Llamar una función en las clases hijas para complementar el contexto
        # Ejecutar una función anexa a "get" para finalizar get
        # Si no existe dicha función retrnar
        return self.render_to_response(self.context)

Y las demás clases solo necesitan heredar de CustomerBasicView

class Dashboard(CustomerBasicView):
    template_name="customers/dashboard.html"

class View(CustomerBasicVIew):
    template_name="customers/view.html"

class Edit(CusotmerBasicView):
    template_name="customers/edit.html"

Como ven?. Dejaré una explicación mas detallada de esto que hago para otro post. Tal vez mañana.


Si te gustó el articulo, compartelo en tus redes sociales, si tienes algo que agregar con toda confianza hazlo en los comentarios.

Loading

Tips and tricks: Django – Mostrar cierto contenido seleccionado en un ChoiceField

Si hemos usado Django seguro nos hemos enamorado de su forma de hacer formularios, sobre todo los que están relacionados con un modelo, puesto que son simplísimos. Hay que reconocer lo simple de Django, y gracias a esta simplicidad que no busca satisfacer completamente todas las necesidades podemos encontrarnos con situaciones que pues, no se apegan a lo que queremos hacer.

Continue reading

Loading

Python is growing up, you know that because tools are getting better 

Microsoft, a company that have their very own tools  and programming languages is now making it easier for developers to use their favorite language. This time Python have better support in the Visual Studio Code, more specifically in the IntelliSense autocomplete System.

Visual Studio Code is the source code editor that Microsoft released as Open Source and is available in Linux, Windows and MacOS. and thanks to the Python Language Server now have better support for Python. I mean, Python support has been there for a while, but is greatly improved by the PLS.

Do you use Python or Visual Studio?, leave your thoughts in the comment section.

Python Language Server an option for those that code

Source: Microsoft Visual Studio Code replumbed for better Python taming • The Register

Loading