injinia
  • Welcome
  • Blog
  • contact
  • links
  • Hire Me!

And now for something completely different...

26/3/2024

0 Comments

 

DIY Hammock

Picture
Starting a new DIY project always piques my interest as a coder - it's like tackling a new programming challenge. My latest endeavor was creating an 11-foot netless gathered-end hammock from scratch, optimizing it with some custom design tweaks. To get a solid foundation, I did a deep dive into over 50 hammock-related patents one afternoon, essentially auditing the codebase of prior art. So many fascinating implementations and experimental features to explore!

From there, I immersed myself in the hammockforums.net community, the open-source knowledge-base for this niche. I spent hours trawling through threads, extracting insights from veteran hammockers on best practices, anti-patterns to avoid, and new feature enhancements to consider. Definitely some gems in there amongst the version history!
​
With a solid architecture mapped out from my research, I was ready to start prototyping my optimized hammock build. Iterative development and bug testing in the real-world would commence.

Gathering Materials

Picture
For materials, I looked back at what I had used for my previous hammock prototype - the HyperD XL fabric and thread from ripstopbytheroll.com, some miscellaneous cordage from Amazon.ca, and a few components I already had on hand. Initially, I had planned to source everything directly from Dutchweargear.com for a streamlined supply chain. But after factoring in shipping fees and currency exchange rates, I decided to see if there was a Canadian supplier for the components.
​

After some research, I discovered a promising Canadian vendor - hofmanoutdoorgearsupply.ca. They stock a wide range of hammock, camping and MYOG (make your own gear) supplies. While they didn't carry the exact HyperD XL fabric, they did offer Hexon W from Dutchwear, which seemed to be an optimized fabric designed specifically for hammocks.

My hammock "tech stack"

  1. ​Hexon W fabric
  2. Gutterman Mara Thread
  3. Tree Straps & Buckles*
  4. 7/64" Amsteel Ridgeline & Suspension*
  5. Pack Hooks
  6. Line Locks
  7. Line Lock Hooks
  8. Cord Locks
  9. 1/8" Shock Cord
  10. HWMPE Guy Line
  11. 1/2" Grosgrain
  12. 1" webbing

​With my updated supply chain and tech stack selected, I could proceed to the next phase of building and integration...

Crafting the Hammock Body

Picture
With the fabric acquired, I carefully measured and cut it to 11'5" including seam allowances to achieve the desired 11' finished length. Applying tips that I learned after my last build, I marked fold-to guides along all edges - 1" rolled hems on the ends and 1/2" hems on the sides.

​Knotty Mod Prep
At 2' and 4.5' from the foot end on each side, I marked buttonhole reinforcements where the shock cords would anchor for the Knotty Mod, deviating slightly from standard implementations.

Picture
Gear Attachment Points
The centers of each end were marked for larger buttonholes to attach a structural ridgeline internally and grosgrain webbing loops to accommodate gear hooks.

Picture
Sewing Process
Swapping between machine setups, feet, retensioning, and replacing a couple bent needles, we finally mastered the automatic buttonhole feature to install all 6 reinforcements. A team effort with my wife and daughter! Note: Make the ridgeline hole 3/4" not 1/4" next time.

Hemming went smoothly once edges were folded and pinned to ensure everything was aligned and to position the buttonholes correctly. The ends required sewing in the grosgrain loops, using some surplus 3/4" military webbing I had lying around (500' for some reason?), instead of standard 1/2" for added durability. The triple parallel stitching for the end channel was hard to not fully OCD over. While not required for whipped ends, I included a 1" channel to allow experimenting with different suspension systems later on.

Once it was all hemmed, I began adding the tie out points and a few attachment point loops along the edges using 3" sections of the 1/2" grosgrain. I pulled some 1/8" shock cord through the channel created in each side to form the Knotty Mod. The shock cord was anchored to a grosgrain loop at the foot end, and to a Line Lock sewn into another grosgrain loop near the middle of the hammock. I added one to each side to test out options for different diagonal laying positions.

Picture

​Ridgeline and Suspension

Picture
Suspension
Having tried a number of different suspensions, I've found I like the ones that are simple, fully adjustable, don't take up a lot of room, require as little "hardware" as possible, and are quick to set up and take down. Most suspensions, I've played with, require at least 2 connect/disconnect points on each end, and you wind up with multiple bits that need to be stored or put together each time. For this hammock, I was looking for something as simple as possible. Originally I was going to go with beetle buckles and a Dutch clip with a tree strap and continuous loop. However, with buying things from Hofman instead of Dutchwear and wanting to keep costs down I went with cinch buckles, continuous loops, tree straps, and a soft shackle.

Feeding the continuous loop attached to the cinch buckle through the end channel made for a simple connection to the hammock.

Picture
The cinch buckle makes it very easy to adjust the suspension, and is lite and small. To solve for all of the connecting and disconnecting every time, as well as to speed things up I leave the tree strap connected to the cinch buckle all the time. Instead of looping the end of the line through the loop at the other end of the tree strap, I simply use a soft shackle to connect the two. This seems quite simple and fast for me now, and enables a cleaner setup, without straps or hammock ending up on the ground. Great for setting up in places where there is mud, wet sand, thorn bushes, or anything else you don't want to have to deal with cleaning up.

Ridgeline
I've been using various types of ridgelines for quite a while. Before I knew what they were or why they were, I added one on to my first hammock as it made setup a lot simpler and more consistent. After reading of the different types, pros and cons for each, I tested out a number of styles, and, after much experimentation, found that a fixed structural ridgeline worked best for me.

I "discovered" Amsteel rope a while ago, and it is exrtemly useful for lightweight hammock setups. I've made a number of ridgelines with it, so set about making one for the new hammock. I measured the final length of the hammock after gatheirng the ends, and made a ridgeline with locked brummel loops at each end. For my liking and after a few experimental naps in the hammock my ridgeline is 85.8".

​To connect the ridgeline to the continuous loop, I used a lark's head from the end of the ridgeline, through the buttonhole in the center of the hammock end channel to connect it to the continuous loop. The buttonhole I had sewn was only 1/4", and should have been larger. It was quite a chore getting it connected. For the other end I used a small soft shackle so that I can disconnect to add things like permanent ridgeline organizers or things of that sort.

Picture

Fashioning the Bishop Bag

No hammock is complete without a convenient storage solution, so I whipped up a bishop bag to hold it all together. A bishop bag is perfect for stowing away my hammock and makes it easy to keep everything off the ground and accessible. I made it large enough to store the hammock, suspension, an underquilt and a bugnet. (more on these sometime later).
Picture

The Final Touches

Picture
n old all-in-one hammock I have had 4 small pockets, one on each side at each end, about 1' from each end. I found these very useful for keeping things close at hand, without having them wind up in the bottom of the hammock, and without having them hanging on the ridgeline. I had some fabric left over, and some clips intended for tarp tie outs, so I made a couple of pockets. The clips allow for them to be positioned wherever they are needed. 

With the last bit of fabric I made a simple ridgeline bag as well using the pack clips.

Picture

Enjoying the results

Since the weather outside is typical Alberta spring (i.e. 10 inches of snow and -14 C) I had to setup a tensahedron stand made out of old army surplus antenna mast poles in the basement. (I'll post some info about that, as well as some plans for a smaller, packable aluminum one soon!)
0 Comments

AI coding resources from Fuller's Library in New Hampshire

29/2/2024

0 Comments

 
Hi there Mrs. Olley and Alisha!

Thank you so much for reaching out and providing that wonderful feedback. I really appreciate you taking the time to share those kind words and resources.

Mrs. Olley, it's fantastic to hear that the links page was so helpful for you and the students you're tutoring on their coding project! I'm delighted that Alisha and the rest of the group found value in the programming language resources listed there. Please pass along my congratulations to all of them on the impressive work they're doing.

And a huge thank you to Alisha for surfacing that excellent collection of AI coding and programming tools (www.aiprm.com/education/ai-coding-and-programming-tools/)! I'd be more than happy to include that on the links page. What a fantastic resource, especially as artificial intelligence integrates more into classroom curriculums these days. I can definitely see the benefit in students getting some hands-on experience with AI coding assistants.

In fact, I think that opens up so many fun possibilities for engaging young minds! A few project ideas that come to mind:
  1. Use an AI storytelling tool to collaboratively write and illustrate a wacky choose-your-own-adventure story as a class. The AI could help generate imaginative plot lines, characters and images based on the kids' silly prompts!
  2. Have students train a simple AI image recognition model to identify their favourite toys, pets, foods or objects. They could take turns feeding it examples and watching as the AI slowly learns to distinguish between the different items. It's an engaging way to grasp the concept of machine learning.

​The potential is endless when you blend that technical know-how with creativity! I'll be sure to give Alisha a shout-out on the links page for providing such a valuable resource.

Wishing Alisha the best of luck with those upcoming report cards. With her clear enthusiasm for learning and exploring new tech, I've no doubt she's going to keep soaring. Please let me know if there's any other way I can be of assistance!

If anyone is interested in learning more about the Fuller's Library, I'm sure they would be happy to show you around as well.
0 Comments

Shout out to kids doing homeschooling!

15/12/2023

0 Comments

 
Hi Elizabeth,

Thank you so much for reaching out and for your kind words about the links page. I'm delighted to hear that it has proven to be a valuable resource for you and the homeschooling students you guide on their coding journeys.

First off, please pass along my sincere congratulations to Samantha! What an impressive initiative she has shown by discovering that insightful resource on "Introducing Coding to Young Minds" from BestCodingBootcamps. I would be more than happy to include that link to the page. Resources like that are invaluable for nurturing young minds and sparking their interest in coding from an early age.

It's incredibly heartening to see students like Samantha taking such an active role in enriching their own educational experience. Her eagerness to share that helpful advice piece demonstrates genuine enthusiasm for the subject matter. Please let her know how much I appreciate her motivation to enhance the learning resources available to her peers!

As a homeschooling parent myself, I cannot emphasize enough the importance of fostering computational thinking and programming skills from a young age. It equips students with vital problem-solving abilities that will benefit them immensely, no matter what future path they pursue. Getting an early start can be so empowering and fun!

A few thoughts on engaging young coding students:
  • Gamify the experience with coding puzzles, activities and visual programming tools
  • Encourage them to first simply play around, get curious and creative without boundaries
  • Relate coding concepts to video games, apps and tech they already understand and enjoy
  • Celebrate their "ah-ha!" moments of clarity, no matter how small

​The collaborative nature of your homeschooling environment sounds like the perfect nurturing space for igniting those coding sparks! I'm excited at the potential for us to keep sharing resources and insights.
​
Please give my warmest regards to Samantha and all the students. I look forward to any other suggestions they may have to continue enhancing the links page. Every new addition helps create more opportunities to inspire young innovators!
0 Comments

Hooray for Coding Fun! A Big Thank You to Sarah and the Awesome Lyndhurst STEM Club for Girls!

19/6/2023

0 Comments

 
In today's super cool world of technology, coding and programming are like magical powers that can make awesome things happen. Coding is like a wild rollercoaster ride of fun and creativity! It's a superpower that lets you create awesome things using your imagination and technology. You won't believe the amazing feeling when you see your ideas come to life as cool games, websites, or even robots!

Let's give a high-five to Sarah from the Lyndhurst STEM Club for Girls! She's a rockstar who sent us a link to a Glossary of Coding and Programming Terms—a treasure chest of knowledge just for us coders! This magical glossary will help us understand all those fancy words that programmers use. Thanks a million, Sarah! You've made our coding journey even more awesome, and we're incredibly grateful for your generosity. Now we can all be coding wizards!

STEM Clubs are like secret hideouts for young geniuses like you! They're places where we can come together, make friends, and explore the wonders of science, technology, engineering, and mathematics. The Lyndhurst STEM Club for Girls is one of many such clubs inspiring kids and helping us unleash our coding superpowers. Let's give a big cheer for STEM Clubs!

Wishing Sarah and the Lyndhurst STEM Club for Girls a Super-Duper Coding Summer! As summer arrives, we hope it brings you endless coding adventures, creativity explosions, and mind-blowing projects. May your summer be filled with excitement and discoveries that make your coding dreams come true. You're all stars in our coding universe, and we can't wait to see the incredible things you'll create!
​
Learning to code is like stepping into a world of endless possibilities and unlimited fun. So, let's put on our coding capes, unleash our imaginations, and get ready for an amazing coding adventure this summer and beyond! You're all coding rockstars!
0 Comments

AI generated test example: PyAutoGUI

3/6/2023

0 Comments

 
After playing with the code for the last post a bit, a colleague asked how hard it would be to do the same with a random python library. A quick search turned up PyAutoGUI, which seems ok.

Popping open the last chat that was used to generate the code for the previous post, and simply asking it to "Ok, now generate a python script to use the gherkin test case. Use the pyautogui library."

This generates:
​
test_runner.py

    
Hmm, now I just need to build a test library that will test AI generated tests.....
0 Comments

Enhancing Traditional GUI Testing with AI

1/6/2023

0 Comments

 
In the fast-paced world of software development, functional GUI testing plays a critical role in ensuring seamless user experiences. While traditional GUI testing approaches have been effective, the emergence of Artificial Intelligence (AI) has brought a new wave of possibilities to enhance and optimize the testing process. How can AI elevate traditional GUI testing? What are the benefits of utilizing test cases generated by AI. I'll give an example prompt and demonstrate how an AI can generate test cases to streamline the testing process.

The Power of AI
Artificial Intelligence introduces a range of advancements that augment traditional GUI testing, enabling more efficient and effective processes. Rather than replacing traditional methods, AI serves as a valuable ally, complementing and enhancing existing practices. AI can leverage Natural Language Processing (NLP) algorithms to generate Gherkin-style test cases, further streamlining the testing process.

To demonstrate the power of AI, let's consider an example prompt:

"Write gherkin test cases to validate the login functionality."

The prompt produces structured test cases that describe the login functionality. Here's an example of test cases generated by the AI:
Login test case

    
AI-powered Execution and Analysis
With these test cases in hand, an existing test library like watir can be integrated seamlessly. With a few more prompts like, "Now generate the ruby code to run this test using the watir library. Use the page object pattern, and separate the code into the correct files. Use a test_params.yaml file to store the variables like urls, usernames, passwords, etc."

Here is what we get:
test_parameters.yaml

    
login_page.rb

    
login_steps.rb

    
test_runner.rb

    
It even generated some helpful instructions:
instructions.txt

    
Conclusion
While there is still some setup and configuration to do, we can see that AI brings a wealth of opportunities to enhance traditional GUI testing practices. By generating some of the basic test cases we can focus effort on doing the non-standard tests, poking around where we know the bugs hide. 

Integrating AI with existing GUI testing libraries allows for automated uses of the generated test cases. 
​
Embracing AI in GUI testing is a powerful tool in our QA bag of tricks. So, let's embrace the potential of AI and unlock a new era of GUI testing!
0 Comments

Tools I use: Mouse without borders

1/5/2023

0 Comments

 
Hey there, multi-device multitasker! Are you tired of juggling multiple mice and keyboards while working on multiple computers? Well, say hello to Mouse without Borders! In this article, we'll explore how to set up and use Mouse without Borders on Windows to effortlessly control multiple computers. Let's get started!

Download and Install
First things first, let's grab Mouse without Borders. Visit the official Microsoft Garage website (https://www.microsoft.com/en-us/garage/project-details.aspx?project=mouse-without-borders) and download the installer for Windows. Once the download is complete, run the installer and follow the on-screen instructions to install it on each computer you want to connect.

Configuration
After installation, launch Mouse without Borders on each computer. You'll be prompted to choose if the computer is the main (server) or secondary (client) computer. Select the appropriate option for each machine accordingly.

Set Up Security Code
To ensure secure communication between your computers, Mouse without Borders requires a security code. On the main computer, you'll see a security code displayed. Make a note of it. Then, on each secondary computer, enter the security code to establish the connection.

Arrange Computers
Once the connection is established, you can arrange the computers based on their physical placement. Drag and drop the computer icons on the Mouse without Borders main screen to reflect their physical layout.

Control Multiple Computers
Congratulations! You can now control multiple computers using a single mouse and keyboard. Simply move your mouse cursor to the edge of the screen in the direction of the desired computer, and it will seamlessly transition to that machine. You can now use your keyboard and mouse on the selected computer.

Drag and Drop
With Mouse without Borders, you can effortlessly drag and drop files and folders between connected computers. Just drag the file or folder to the edge of the screen, and it will move to the adjacent computer. It's like magic!

Clipboard Sharing
Need to copy and paste text or files between computers? Mouse without Borders has got you covered! Copy the text or file on one computer, move the mouse to the other computer, and paste it there. It's a breeze.

That's it! You're now enjoying the convenience of controlling multiple computers using Mouse without Borders. But wait, there's more!

Settings and Preferences
Mouse without Borders offers various settings and preferences to customize your experience. Explore the options to configure features like keyboard shortcuts, mouse behavior, and more.

Troubleshooting
If you encounter any issues during the setup or connection process, refer to the Mouse without Borders documentation or support resources for troubleshooting tips and solutions.

Now you can bid farewell to the hassle of managing multiple mice and keyboards. Embrace the simplicity and efficiency of Mouse without Borders as you effortlessly navigate between multiple computers with a single mouse and keyboard. Happy multitasking!
0 Comments

Tools I use: insomnia

15/4/2023

0 Comments

 
Hey there, tech enthusiast! Are you tired of the hassle that comes with testing APIs? Well, fret no more because Insomnia is here to save the day! In this article, we'll explore how to use Insomnia to simplify your API testing process on Windows. Let's get started!

Download and Install
First things first, let's grab Insomnia. Head over to the official Insomnia website (https://insomnia.rest/) and download the Windows installer. Once the download is complete, run the installer and follow the on-screen instructions to install it on your machine. Easy-peasy!

Create a Workspace
After installation, launch Insomnia. You'll be greeted with the option to create a new workspace. Workspaces in Insomnia are like containers for your API testing projects. Create a workspace and give it a meaningful name.

Add Your First Request
Now that you have a workspace, it's time to add your first API request. Click the "+ New Request" button in the top-left corner. A new request tab will appear. Here, you can enter the details of the API you want to test, such as the URL, HTTP method (GET, POST, etc.), headers, and request body.

Organize with Requests and Folders
As your API testing efforts grow, you might want to organize your requests into folders. You can create folders within your workspace to categorize and structure your requests logically. Right-click on the workspace or an existing folder and choose "New Folder" to create one.

Authorization and Environment Variables
Insomnia allows you to handle authorization and environment variables effortlessly. If your API requires authentication, you can specify the authorization type (e.g., Bearer Token, Basic Auth) and provide the necessary credentials. Additionally, you can define environment variables to store values that change across different requests or environments.

Send Requests and View Responses
Now it's time to unleash the power of Insomnia! Click the "Send" button to fire off your API request. Insomnia will show you the response details, including the status code, headers, and response body. You can also save the responses for future reference or share them with your team.

Organize and Export
Insomnia provides handy features to organize and export your API testing efforts. You can create folders, move requests, and even duplicate or delete them as needed. Furthermore, you can export your workspace or individual requests as JSON files to easily share them or back them up.

That's it! You're now on your way to becoming an Insomnia pro. But hold on, there's more!

Environment and Team Collaboration
Insomnia allows you to create different environments for various setups (e.g., development, staging, production) and switch between them effortlessly. You can also collaborate with your team by syncing workspaces using services like Insomnia Sync or exporting and importing workspace files.

Extensions and Plugins
Insomnia supports extensions and plugins, which can enhance its functionality even further. Explore the available extensions, such as code generation or automatic documentation, to streamline your API testing workflow.

Now that you have a solid understanding of how to use Insomnia, you can test APIs with ease, boost your productivity, and ensure the smooth functioning of your applications. Happy testing, and may your APIs always return 200 OK!
0 Comments

Tools I use: Espanso

1/4/2023

0 Comments

 
​Hey there! Are you tired of typing the same long phrases over and over again? Well, have no fear because espanso is here! Here is a quick into on how to set up and use espanso on Windows, so you can save time and effort with your typing. Let's dive in!

What is espanso, you ask? It's an open-source text expander that allows you to create abbreviations for frequently used phrases or snippets of text. When you type an abbreviation, espanso automatically expands it into the full text, saving you from repetitive typing.

Download and Install
Head over to the official espanso website (https://espanso.org/) and grab the Windows installer. Run the installer and follow the on-screen instructions to complete the installation. Easy peasy!

Configuration
Once you've installed espanso, it's time to configure it to your liking. Don't worry; it's a breeze! Open a command prompt or PowerShell window and type `espanso edit`. This will open the configuration file in your default text editor.

Create your first expansion
In the configuration file, you'll see a section called `matches`. This is where you define your abbreviations and the corresponding expansions. For example, if you often type "omw" and want it to expand into "On my way!", simply add the following lines:
base.yml

    
Feel free to add as many expansions as you like. Just make sure to follow the format and indentation. Don't forget to save the file once you're done.

Start espanso
Return to the command prompt or PowerShell window and type `espanso start` to launch espanso. You'll see a small icon in your system tray indicating that espanso is running.

Test it out
Now comes the fun part! Open any text editor, word processor, or even a browser. Type your abbreviation, such as "omw," and marvel as it instantly expands into "On my way!" Voila! You just saved yourself some precious keystrokes.

That's all there is to it! You're now a master of espanso on Windows. But wait, there's more!

Advanced configuration
If you want to take things to the next level, espanso offers advanced features like conditional expansions, dynamic variables, and even regular expressions. Check out the espanso documentation (https://espanso.org/docs/) for more information on these exciting options.

Sync your configurations
Want to use espanso on multiple devices? No problem! You can synchronize your espanso configurations across devices using cloud storage services like Dropbox or Google Drive. Just make sure to point espanso to the synchronized configuration file.

So, there you have it! With espanso on your side, you can save time, avoid typos, and become a typing wizard. Enjoy the benefits of this fantastic text expander and let it do the heavy lifting for you. Happy typing!
0 Comments

Congratulations and thank you!

16/6/2021

0 Comments

 
It is great to hear from people that have found this site helpful. At the end of the day, my goal with injinia is to help whomever and wherever I can.

Over the last year and a bit there have been a lot of changes not only in our work environments but also our kids schooling and after school activities. I know my family has had to adapt, learn, and change a lot! My Work hasn't changed too much, as I've been working remote for a while, but I have been able to use the knowledge and experience to help other teams and groups with their remote transition.

I've heard from a number of groups over the past little while that finding resources for kids to add to their learning and continue being engaged is a bit of a challenge. While we have done some home and online schooling with our own kids, the changes that have happened over the last year have made it hard for my kids to participate in a lot of the group activities and after school events that they were part of. So it has been great to hear from different groups to find out how they have been able to move their groups from in person to virtual and how they are continuing to provide community and instruction to kids and keep them engaged.

One group, the Brownie Scouts' of Kellytown, has been working on their "Coding Basics" badges at home, congratulations! This is a great example of how leaders like Girl Scout Troop leader Andrea have been able to adapt and continue with learning and engaging even though there are changes in everything! Maybe there should be some 'Adapting to Change' badges given out! Her Brownie Scouts wanted to share some resources and a great overview of popular programming languages that they found helpful in their at work at home. Have a look at the links page to see their recommendations. As Andrea pointed out, learning to code offers so many developmental and career benefits, it is great to see kids learning and passing on what they have learned to others.

Thanks for that recommendation, this will be a great help for others as well. Keep up the great work Andrea the Kellytown Brownie Scout troop!

0 Comments
<<Previous

    Author

    Hi, my name is Clancey and I am a quality advocate, agile coach, scrum master, automator, and toolsmith.

    I help companies with agility and quality. To do this I end up automating a lot of things, functional testing and workflows being some of them.

    Clancey McNeal CTSM, CSM, A-CSM
    Getting started with ruby automation series
    1. Required Installs
    2. Tools
    3. Project Structure
    4. Page Objects

    Archives

    March 2024
    February 2024
    December 2023
    June 2023
    May 2023
    April 2023
    June 2021
    March 2020
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    February 2014
    December 2013

    Categories

    All
    AI
    API
    Cucumber
    Espanso
    Getting Started
    Insomnia
    Mouse Without Borders
    Page Objects
    Python
    Rspec
    Ruby
    Setup
    Slack
    Sublime
    Tools
    Web Test Automation

    RSS Feed

Copyright injinia, images copyright Adachi Photography