Skip to main content

Star Wars ASCIImation with Python - Windows

In this post, we'll watch a Star Wars movie in ASCII format.
The only thing we need for this demo is Python-installed PC and internet connection.

Figure: Screenshots from Python Command line while Star Wars is being streamed


All credits gained in this demo will go to "blinkenlights.nl" [2] website, which broadcasts this ASCII movie using Telnet protocol on Port 23, and Python which makes socket implementation very easy for us. No authentication is needed for this broadcast.

Anyone who is able to create a TCP socket and listens blinkenlights.nl on port 23 would be able to get this stream and display on their Python command line.


CODE

My main source for Python source code is [1].

What  code below does is simply importing Python "socket" library, create a socket, use "towel.blinkenlights.nl" address variable to create connection, receive data from socket and display it. While typing (copy/paste) code, be careful about indentation. Don't forget that Python is sensitive about indentation since it interprets tab characters as function blocks (parenthesis and curly brackets in C-style languages)

Note that main body of the code is within an infinite loop. If you want to interrupt/stop streaming, use "Ctrl + C" key combination.


import socket
addr_info = socket.getaddrinfo("towel.blinkenlights.nl", 23)
addr = addr_info[0][-1]
s = socket.socket()
s.connect(addr)
while True:
 data = s.recv(500)
 print(str(data, 'utf8'), end='')



Figure: Code required for ASCIImation of Star Wars


TEST ENVIRONMENT
PC: Windows 10, 64-bit
Python Version: 3.6
REFERENCES
[1] https://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/network_tcp.html#star-wars-asciimation [2] http://blinkenlights.nl/

Comments

Popular posts from this blog

How to change Country/Region of App Store in iOS 10.0.2 on iPhone?

When you moved to any country other than your original country, you need to change the region/country settings of your iPhone/iPad so that you are able to download the apps specifically published for that country/region. 1- Open Settings App. 2- Tap on “iTunes & App Store”. 3- Tap on Apple ID: 4- Tap on “ View Apple ID ”. 5- Then sign in into your iTunes store either with your AppleID/Password or Touch ID . 6- Then, your iTunes account is opened as follows… Tap on " Country/Region" 7- Tap on “ Change Country or Region ”. 8- Select your current country or region from the list. 9- Then tap on “ Agree ” to agree with the Apple Media Services Terms and Conditions. 10- Tap again on “ Agree ” on the pop-up. 11- Now, Billing information on your account is displayed. Insert 3-digit security code at back of your credit card and tap on “ Next ” again. ...

Automatic Cover Letter Generator & Job Application Tracker & Active Contact List Manager (3 in 1)

In this post, I will mention about my current personal project that I have been using to manage and organize my job application process. Name of this project is " Automatic Cover Letter Generator & Job Application Tracker & Active Contact List Manger (3 in 1) ". Automatic Cover Letter Generator (ACLG) part automatically generates Cover Letters, Job Application Tracker (JAT) part helps me out track and organize my job applications and Active Contact List Manager (ACLM) part helps me build my own customized contact list. All of the three parts are good helpers for any job seeker.      MOTIVATION 1- Automatic Cover Letter Generator As a widely accepted analogy, a resume is like an ambassador to your potential  employer; a cover letter is like a bridge between your resume and the employer to introduce you and your resume. As a matter of fact, your cover letter is your very first contact with your potential employer. Knowing the importanc...

STORY: Most Challenging Bug

It was an embedded software running on a specific hardware. Software was consisting of different modules for each task. The functionality that I was testing was related to two different modules which are written by two different developers. Required functionality was not working and test was failing consistently. Then, we debugged the Module-1 with Developer-1, Module-1 seemed to work properly. Then, we debugged the Module-2 with Developer-2, Module-2 also seemed to work surprisingly. Of course, each developer was blaming the other developer for the fault : ) Then I suspected about my own test case and re-reviewed and inspected it again, but test case also seemed as OK. Afterwards, we suspected about the software testing tool and debugged it with the developer of the test tool. Not surprisingly, test tool also seemed to work properly : ). Ooopsss. What is next? The next suspicious guy was the data buses between test tool and the software/hardware. Then we checked data...