Posts

Showing posts from 2018

JavaScript Event handlers

Image
So for this experiment I was intrigued by the continual functions run in a website,  or event handlers.   It took me a bit to figure out what exactly needed a time out, closure, all the stuff mentioned in this article: Medium : front-end-javascript-interviews-in-2018-19 After a fair bit of searching I decided what I wanted my experiment to be in order to understand these concepts better. I'm going to make my own 'event_handler'. I've done it in python with Tkinter: An experiment with Tkinter python blog post Now most would say, "Why go to all the trouble of making something that exists?" And my answer will 99% of the time be, "Because I want to know how it works." For me the best way to learn that, is to try and make it happen myself the way the already existing thing works.   My dad would say something along the lines of, "You really learn how a carburetor works after you've (successfully) rebuilt one."  Helpful links

Javascript : check if a word contains a char in a text file

Image
JavaScript Experiment #1 The goal for this was to read a txt file, go through each word of that txt file, and make a string from every word in that txt file that contain the letter 'o'. *"Halt!" and "hand.]"   are in there because in my list made from the text file:        'down.]\nHalt!' --- is the item in the list.  It's printing the newline. So         they appear seperated.         Same with hand --     'hand.]\nWhoa', There were many many answers that weren't exactly what I was looking for, but gave me the breadcrumb to follow to the next search I needed to do. This was my extension to an exercise from Learn JavaScript the Hard way. Shaving the yak is more fun if you get to give it a fun haircut before the real work starts. (*draws a maze in the yak fur with shears for my toy soldier to tromp through*) Some things I found out: 1) (some string) = string   (x = char to look for) Javascripts string.includes(

Getting random lines from txt files

Image
   Working on my whispering wall the other day, I wanted a much better way to 'randomly' select lines it would give back to the user.  random.shuffle seemed like a better way. Thanks again to the interwebs for the tools to search up the things I need.    I wasn't sure how to properly handle the global aspect of 'LINE_GET' for this piece. LINE_GET is going to be the integer I use to select a number from the list that is made, that is then in turn used to get a 'random' line from my txt file.    In my whispering wall, this variable would be a part of the WhisperingWall class. And it's alteration would be internal, but for the sake of making this blog post I needed it to be easy to access and alter.  And globals, well, everyone says they are bad. I may be writing completely horrible code for that part. I am not sure, but hey, I didn't use a global!  kinda... sorta.... Anyway! two methods, a class(**cough global**), and a system argument (sys.a

fail on retraining tagger, file rewrites accomplished

(Original post was to be me figuring out how to train the tagger in NLTK so it doesn't tag everything it can't recognize as a noun.) Monty python scripts -- http://www.montypython.net/scriptsidx.php NLTK Website docs: https://www.nltk.org/book/ch03.html When I went to do this project, I had no idea what it entailed. So for the purpose of this post, let me say, This is how far I got. I still have no clear picture if training the punkt pos_tagger is useful. More research to do, but I think I need to give it an entirely different data-set to go off from.  Looks like the free one I downloaded isn't very good with tagging spoken language vs. written. But if you came for some code, here's to methods I wrote to clean up the monty python scripts. First step was to copy paste into a new file the script. Second step:  save it as txt file Third: run these py files on the script to clean it up a bit for training texts for NLTK, when I figure that bit out.  ** fin

Getting that key off from repo

Image
For today, the plan is to get SQLite onto my computer, and try to get whispering wall interacting with that database to retrieve my script lines.  FYI: The plan went completely sideways as I tried to get my secret_key off from github.       1)delete settings.py from repo but not local       2)force push origin master of pythonanywhere repo       3)remove original key from settings.py and replace with snark       4)tell gitignore to NOT ignore settings.py       5)push new settings.py to git repo       6)put settings.py back into gitignore       7)change secret key back       8)Find out at a later date if I could have just changed my key and ignored               doing any of this  pictured: The result of shutting down my bash(s) because I couldn't exit vim while trying to change the gitignore file   First step, go to my Learn SQL the hard way to see setup instructions. -- I always try to do "apt-get install" if I can rather then download.  If it's

npm nodejs and Linux

Image
I use Linux, but I hope after student loans come in I can pick up a decent and cheap Microsoft laptop for the college classes. Then the posts like this, I will attempt to have both systems included in the material.  note: To be fair to Zed's book, he clearly tells us to watch the videos.  I don't understand it, but I just have such an aversion to watching videos rather then figuring stuff out on my own.  Watching someone else do it just takes the fun out of it.  So I'm sure all this was covered in the video, I may go back and see it once this is posted.  Otherwise I might be tempted to wipe the whole thing for feeling like an arse afterwards. I was going through Zed Shaw's pre-release of Learn JavaScript the hard way, and an instruction said to install the 'readline-sync' through npm, but I kept getting this error: So after finding a couple links that wanted me to check the .json files for dependencies,  *Which I do not know how to do yet* I dec

python simple finite state machine and logger

Image
Doing another exercise from LMPTHW, and I'm enjoying it. Only broke into Maximum recursion depth once so far. Also I found this good article on logger, and I am really going to start using it from now on.  Just yeah.  It's not much work at all to put it in there. ---logger article:   https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/ So a picture of what my plan was going in: And a picture of the code results in Command Prompt ( Bash ): color codes link :  http://www.lihaoyi.com /post/BuildyourownCommandLinewithANSIescapecodes.html#16-colors And I'm not sure I can explain well enough yet, but basically you're making a 'machine'  that transitions to a predetermined amount of settings -- states. In my code, it's  the class's functions [ FSM_OFF, FSM_GO, FSM_GREEN, FSM_YELLOW, FSM_RED, FSM_BLINKING_RED, FSM_ERROR] And the list of triggers/instructions to change the state are determined in each of those states.

Getting some NLTK running in my Django website

Image
First off,  Some links: Django Girls Tutorial NLTK site And if you wanna see the website in action:   http://nelliesnoodles.pythonanywhere.com/ If your a new reader and haven't seen my work with NLTK, a quick note that I did a lot of playing with it to see how it all works. You can refer to this blog link to see some of the work: blogger-CamelCaseNoodles-playing_with_nltk I followed all my own instructions to make nltk functional in the pythonanywhere server: Enter your python virtual environment: on my server: (bash) source <name of your env>/bin/activate You might have a different set up. My pythonanywhere runs my site through the virtual environment The Django Girls Tutorial is excellent for all this information. 1) pip install -U nltk 2) pip install -U numpy open the python shell and: >>>import nltk >>>nltk.download('wordnet') < Stuff happens Cross your fingers for no errors!> >>>nltk.download('

NLTK python , getting Wiwa to answer to interjections

Image
Todays short project is to get my Whispering Wall, Wiwa, a way to answer to interjections. I often have people I know play with her, to watch what I need to update and fix. My best friend used things such as: 'Wow' and 'Really', and Wiwa did not know what to do with a one word response. She either tagged it as a noun, and grabbed from the noun script, or it answered with the 'Is the cat on the keyboard?' because the UH (interjection) tag was not being used, and therefor the words were not being processed leading to an empty list to grab a response from. So first step is to remember how this works, then open a file and start testing out tagging interjections. websites used: https://pythonprogramming.net/natural-language-toolkit-nltk-part-speech-tagging/    # Having trouble finding out why my interjections are always tagged:    # [('WOW', NN)] -- Noun ,  instead of the expected [('WOW', UH)] -- interjection http://www.nltk.org/book_1ed

playing with python Arcade

Image
I wanted to give python Arcade a test run. link to website I used: arcade.academy html I like pygame, but it seems to be being not kept up, (I could just be looking in all the wrong places). This seems really promising. Here's some crazy errors I had ,  and in the code I'll comment how I got that. I thought the virtual environment was the problem at first. The documentation had a warning that Arcade doesn't do well in virtual environments. But nope.  That wasn't it. Maybe it contributed. And success!  In virtual env, and without. Anyways, back to yack shaving soon! Here's some python Arcade code: ######### py_arcade.py ######### import arcade # I still think putting what you are going to use as globals # is safer if you put them in a class, and access them through there # I'd be happy for someone to explain why not class Config_urations(object):   def __init__(self):       self.WIDTH = 800       self.HEI

working on manual tests for the Python Ternary Search Tree

Image
Hello peoples! This one will be about how I prepare to write a unittest/pytest. I know there's the whole 'test first' approach, but this works best for me so far. If it's not your thing, groovy. TODO: 1) make unittest  (started: see below) 2) compare pytest (started: see below) So far it looks like there is no advantage, other than some extra typing practice, to doing Unittest over pytest Update: adding the started unittest and pytest The Ternary search tree for this exercise in the LMPTHW book may be protected by Zed's copyright, so I shall instead share some testing techniques I am working on. I want to do a unittest for this exercise, because well....  Most testing libraries are built on top of the already built in unittest that python has. Instead of fumbling to write out the tests for pytest / unittest; I first write out the different print calls I'd like to see; Then I'll write the unittest or pytest around what I would like to see