Tuesday, September 22, 2020
Black Lives Matter And Tabletop Games
Monday, September 21, 2020
Saturday, September 12, 2020
Pathfinding Diagram Improvements, Part 2
In the last post I described improving the diagrams on my Tower Defense page. Once I finished that, I moved on to my other pathfinding pages, starting with the A* page.

Frontier expansion diagram: I didn't find a good way to put labels on the dynamically generated diagram so I created a static state transition diagram and placed it in the text. I using inline legends, which describe in the text the shapes that I'm going to use the in the diagrams. The above is example showing some frontier nodes, unexplored nodes, and reached nodes. I also used colors that match the colors in the diagrams.
I used the inline legends to describe the state transitions:

I think it serves a separate purpose from directly showing labels on the diagram. These are meant to prepare you for the animation, whereas the labels would serve to annotate the animation.
Frontier expansion diagram: I had implemented all the diagram animations to match the code. However early in the explanation, the reader hasn't seen the code yet. The frontier expansion diagram should show the concept of an expanding frontier, not the implementation of it.
I decided to change the slider from number of loop iterations to distance from start. The new animation feels smoother and easier to understand. I posted a comparison of the animations in this tweet.
Early exits: I was planning to add a few more examples of what you could do with early exits. This ended up longer than I wanted to include on the A* page, which is already pretty long, so I put it on its own Early Exit page, and linked to it from the A* page.

All pairs: This was an incomplete page from back when I was writing all the pathfinding pages. The A* page was meant to be one source one destination. The Tower Defense page was many sources one destination, or one source many destinations if run in reverse. And the All Pairs page was meant to be many sources many destinations.
I had implemented the Floyd-Warshall algorithm for all-pairs shortest paths. I had one example problem: find all pairs of paths and then see which tiles are used most often. However, it ran too slowly for this page to work well.
This is one of the struggles I have with making everything interactive. Some algorithms just won't run fast enough to demonstrate effectively.
Since I had good luck with Breadth First Search in mapgen4, with the code running at over 1 million nodes per second, I decided to try it here. Running Breadth First Search hundreds of times was far faster than I expected. The calculation time went from 400ms to 14ms!! It now runs at interactive speeds!

Now that I'm no longer blocked by the algorithm performance, I want to work on this page. Try the first diagram and let me know if you have ideas for more diagrams to add.
Miscellaneous improvements: Lots of my experiments didn't work out, but I kept a few:
- I changed most of the sliders to use a dynamic range. Ideally the slider minimum should be 0 and the maximum should be the last time when something changes on the diagram. The problem is that I implemented the search algorithms to exit early. That means I don't know the last time when something might change. Fortunately for most diagrams I can calculate this in a different way. There's one diagram where I can't easily calculate it without running search twice, once without early exit and once with, so I didn't implement the dynamic range there.
I've long wanted to add faces to my blobs. I've been experimenting with procedurally generated cartoon faces since 2011 or maybe earlier. In my most recent experiment from 2018, I got the mouth working nicely, and I used that in 2019 to regenerate my blob logo. I still haven't worked on the eyes though. I'd like to make blinking attentive eyes. I decided I should put static faces in now instead of waiting until I have everything working.
- One reason I generally use SVG instead of Canvas is that many effects are much easier to implement. One of those is cursor feedback. I can update a tiny part of the SVG, and the browser will figure out what to redraw. Sometimes I don't even need an event handler, such as when I use CSS :hover to add a drop shadow. When I rewrote these diagrams into Canvas, I lost the visual feedback, so I went back and implemented a visual feedback system in code instead of in SVG+CSS. It's a lot more work in Canvas but for this page it was worth it.
The new diagram class has been a joy to work with. It has so much easier to work on diagrams than with my old code. The old diagram class was premature abstraction. I wrote it and then wrote the diagrams to fit the abstration. The new diagram class is based on my experience making the diagrams. The abstraction fits the needs of the project.
Friday, September 4, 2020
Staying Busy During These Times
My work has kept me busy, and there've been some household changes with the grandkids going back to their parents for the summer. That impacted the gaming routine.
I did have two successful seminars at the recent Con of Champions for Tabletop Events, as well as running my Heist game and Delve the Deeps game. Both were interesting and everyone seemed to enjoy themselves.
More recently, I've taken to streaming my podcast recordings! I try to do that every two weeks and the next session is this Thursday at 7pm. I'm going to finish up talking about Unearthed Arcana's classes and get into some miscellanea before getting to spells! You can join me here: https://twitch.tv/chgowiz
I've also found myself in a very fun self-improvement project - learning Python by recreating the very first dungeon crawler I ever played. Did you know that there is a graphical/top-down dungeon crawler that predates unix's rouge?
Yep, the program DUNGEON from Cursor Magazine (issue #15) for the Commodore PET. I played this game in 1979 or 1980 and I was hooked.
Right now, the game is very basic, but I'm getting there! You can follow along to some degree on this r/commodore thread on reddit, or see the code as I update it on my github repository here: https://github.com/Chgowiz/PyDungeon/
My version is on the left - a completed game of DUNGEON from a PET emulator on the right.
Funny coda, after 40 years, I finally finished the game and won! I collected all the gold. I guess knowing the source and how the game works was a huge help. That's something my 13 year old self would have liked to have known... damn wyverns!
I hope that you all are well, safe and hanging in there.
Sunday, August 30, 2020
Osueta: A Simple Python Script To Exploit The OpenSSH User Enumeration Timing Attack
About Osueta?
Osueta it's a simple Python 2 script to exploit the OpenSSH User Enumeration Timing Attack, present in OpenSSH versions <= 7.2 and >= 5.*. The script has the ability to make variations of the username employed in the bruteforce attack, and the possibility to establish a DoS condition in the OpenSSH server.
Read more: OpenSSH User Enumeration Time-Based Attack
The bug was corrected in OpenSSH version 7.3.
Authors of Osueta:
- c0r3dump3d: coredump@autistici.org
- rofen: rofen@gmx.de
Osueta's Installation
For Linux users, open your Terminal and enter these commands:
If you're Windows users, follow these steps:
- Install Python 2.7.x from Python.org first. On Install Python 2.7.x Setup, choose Add python.exe to Path.
- Download Osueta-master zip file.
- Then unzip it.
- Open CMD or PowerShell window at the Osueta folder you have just unzipped and enter these commands:
pip install python-nmap paramiko IPy
python osueta.py -h
Advice: Like others offensive tools, the authors disclaims all responsibility in the use of this script.
Osueta help menu:
Osueta's examples:
A single user enumeration attempt with username variations:
python2 osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v yes
A single user enumeration attempt with no user variations a DoS attack:
python2 osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v no --dos yes
Scanning a C class network with only one user:
python2 osueta.py -H 192.168.1.0/24 -p 22 -U root -v no
Scanning a C class network with usernames from a file, delay time 15 seconds and a password of 50000 characters:
python2 osueta.py -H 192.168.1.0/24 -p 22 -L usernames.txt -v yes -d 15 -l 50
More info
- Hacker Tools Linux
- Android Hack Tools Github
- Kik Hack Tools
- New Hacker Tools
- Hacking Tools Name
- Hacker Tools For Ios
- Pentest Box Tools Download
- Pentest Tools Alternative
- Hacker Tools For Mac
- What Are Hacking Tools
- Hacker Tools Free Download
- Hacker Tool Kit
- Pentest Tools Online
- Hacking App
- Pentest Tools Nmap
- Hacker Tool Kit
- Hacker Tools List
- Hack App
- Pentest Tools Find Subdomains
- Hacking Tools Windows
- Pentest Tools Kali Linux
- Pentest Reporting Tools
- Hacking Tools For Windows
- Pentest Tools Open Source
- World No 1 Hacker Software
- Hack Tools For Mac
- Pentest Tools Windows
- Hacker Tools 2020
- Pentest Box Tools Download
- Pentest Box Tools Download
- Tools 4 Hack
- Hacking Tools Online
- Hacker Tools Windows
- Bluetooth Hacking Tools Kali
- Hack Tools Mac
- Hacking App
- Github Hacking Tools
- Hacking Tools Pc
- Hacker Tools Windows
- New Hack Tools
- Pentest Tools Subdomain
- Termux Hacking Tools 2019
- Pentest Tools Nmap
- Hacks And Tools
- Hacker Search Tools
- Hacking Tools For Windows 7
- Hacker Tools 2019
- Nsa Hack Tools Download
- Black Hat Hacker Tools
- Hack Website Online Tool
- Hak5 Tools
- Physical Pentest Tools
- Hacker Tools List
- What Is Hacking Tools
- Pentest Tools Port Scanner
- Best Pentesting Tools 2018
- Hacker Tools For Windows
- Hak5 Tools
- Easy Hack Tools
- Bluetooth Hacking Tools Kali
- Pentest Tools For Android
- Hacking App
- Easy Hack Tools
- Pentest Tools Port Scanner
- Hacking Tools Windows
- Wifi Hacker Tools For Windows
- Hacks And Tools
- Hacking Tools For Windows
- Pentest Tools Windows
- Hack Tools Mac
- Pentest Tools Windows
- Android Hack Tools Github
- Hacking Tools For Pc
- Hacker Tools Mac
- Hacker Tools For Mac
- Black Hat Hacker Tools
- Pentest Tools Website Vulnerability
- Pentest Tools Bluekeep
- Hacking Tools Mac
Memcrashed DDoS Exploit | Install | Github
Related news
- Hacking Tools Github
- Termux Hacking Tools 2019
- Pentest Tools
- Hacking App
- Easy Hack Tools
- Hacker Tools Linux
- Ethical Hacker Tools
- Computer Hacker
- Hacker Tools For Ios
- Hacking Tools Mac
- Hack Rom Tools
- Hacker Tools Mac
- Hack Tools For Games
- Hack Tools Github
- Pentest Tools Subdomain
- Pentest Tools Free
- Hacker Tools 2019
- Hackers Toolbox
- Pentest Tools Website Vulnerability
- Pentest Tools Review
- Pentest Tools For Ubuntu
- How To Hack
- Easy Hack Tools
- Physical Pentest Tools
- Hack Tools For Ubuntu
- Hacker
- Hacking Tools Software
- Hacker Tools 2020
- Android Hack Tools Github
- Beginner Hacker Tools
- Hacking Tools Usb
- Pentest Tools Port Scanner
- Computer Hacker
- Pentest Tools For Ubuntu
- Hacking Tools Pc
- Tools Used For Hacking
- Hacker Tools 2019
- Hacking Tools Github
- Tools For Hacker
- Hacker Tools Apk
- Hacking Tools Usb
- Hacking Tools For Kali Linux
- New Hacker Tools
- Pentest Tools For Windows
- Hack And Tools
- Blackhat Hacker Tools
- Hacking Tools Online
- Hacker Tools Windows
- Pentest Tools Nmap
- World No 1 Hacker Software
- Pentest Tools List
- Hacker Tools Free Download
- Hacking App
- How To Hack
- Hacker Tools Windows
- Pentest Tools Online
- Pentest Tools Online
- Hacking Tools Hardware
- Pentest Tools
- Hacking Tools For Mac
- Easy Hack Tools
- Hack App
- Hack Tools For Windows
- Pentest Tools Nmap