free software resistance
the cost of computing freedom is eternal vigilance
### hamster.py
*original date:* aug 2012
*orginally posted:* sep 2024
all the files from 2012 say theyre from august- i suspect this is the date of a file transfer rather than the date they were created, some may actually be from 2012 though.
this is another one that i did in basic first, its meant to be as silly as it looks. when i first started porting things to python i used curses, since python has no equivalent of a "locate" command like in basic, but later i would use ansi codes for this:
```
#!/usr/bin/env python
# hamster
# 2006 mennonite
# ported to python 2009
# public domain
import time, curses
def hamster(hmstr):
curses.curs_set(0)
while True:
hmstr.addstr(16,0," _--_ ")
hmstr.addstr(17,0," .`\ `. ")
hmstr.addstr(18,0," / \ \ ")
hmstr.addstr(19,0," \ \:)/ ")
hmstr.addstr(20,0," ',/\~\,' ")
hmstr.addstr(21,0," / '--' \ ")
hmstr.addstr(22,0," /________\ ") ; hmstr.refresh()
time.sleep(0.05)
hmstr.addstr(16,0," _--_ ")
hmstr.addstr(17,0," .` | `. ")
hmstr.addstr(18,0," / | \ ")
hmstr.addstr(19,0," \ | :)/ ")
hmstr.addstr(20,0," ',/~/\,' ")
hmstr.addstr(21,0," / '--' \ ")
hmstr.addstr(22,0," /________\ ") ; hmstr.refresh()
time.sleep(0.05)
hmstr.addstr(16,0," _--_ ")
hmstr.addstr(17,0," .` /`. ")
hmstr.addstr(18,0," / / \ ")
hmstr.addstr(19,0," \ / :)/ ")
hmstr.addstr(20,0," ',/\~/,' ")
hmstr.addstr(21,0," / '--' \ ")
hmstr.addstr(22,0," /________\ ") ; hmstr.refresh()
time.sleep(0.05)
hmstr.addstr(16,0," _--_ ")
hmstr.addstr(17,0," .` `. ")
hmstr.addstr(18,0," /______\ ")
hmstr.addstr(19,0," \ :)/ ")
hmstr.addstr(20,0," ',\~/\,' ")
hmstr.addstr(21,0," / '--' \ ")
hmstr.addstr(22,0," /________\ ") ; hmstr.refresh()
time.sleep(0.05)
curses.wrapper(hamster)
```
license: 0-clause bsd
```
# 2006, 2009 mn
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
=> https://freesoftwareresistance.neocities.org