Pages

Sunday, July 26, 2020

Home Educated: Wielding a homeschool Diploma

Let me introduce myself, as I'm certain you don't know me. My name is Kyle, I am 32, I am married, and my wife is expecting our 4th child at the time of writing this. We own a large house in the suburbs of Austin, I currently maintain a 6 figure salary as a Software Engineering Manager, and my wife stays home with the children. I hold a Bachelor's of the Arts Cum Laude in Computer Science with no student debt. I say all of this, not to brag, but to give you a picture of an outcome. For you see, I hold a high school Diploma given to me by my parents at 15.

This particular post is not a post to recognize or provide thanks to those who helped me along the way. This is a post to provide insight into where home education can be a success during the increased interest of Covid-19, the coronavirus pandemic. If you are a parent trying to decide if home education is right for you, maybe I can help provide some insight during this troubling pandemic about what homeschooling can be, and if it might be something you want for yourself. I am going to start with earlier grades, some of which my wife and I now have experienced ourselve , and move into middle and high school towards the end off the post. 

Let me preface all of the following with this simple statement: all parents, children, and families are different, unique. Problems faces by one family may be entirely didn't from another. With that in place, let's proceed. 

The early years, kinder through 2nd are both the easiest and the hardest in many ways. In these early years, setting habits, figuring out personalities, teaching the building blocks for later use - all while by yourself can be a daunting task. Questions of socializing your kids, of whether or not they have enough taught to them - these are all hard. But the subject matter in the other hand - it's fairly straightforward. Most of us parents use and remember everything we learned in elementary school and the teaching aspect is what is new for us. There are curriculum available for this piece. I grew up under the Abeka curriculum. It's a daunting curriculum and covers pretty much everything. It's definitely not free , and it requires a lot of work as a parent. Depending on how closely you adhere to it. But the subject matter isn't the only item to worry about. 

Personality of yourself and your child come into play in extremes. If you have a temper tantrum throwing child prior to school , that will continue and become more pronounced during school. I've often heard the term "strong willed child". It fully applies. This is the hardest to homeschool. Where a public school setting allows a divide and conquer approach. Homeschooling can be Battle of the will. All other types of child are easier at this stage. If you have a strong will child, the early years are the hardest. I was the highly ambitious child. My mom often said that if my next brother had been oldest, she would have given up on homeschooling. He was a strong willed child. 

After the early years come the years before highschool. Depending on personality, your child might be able to go through a lot of bookwork on their own. Or, in the case of a strong will, you'll still be fighting to get them to do school work. My son, for example, could read and do the math work fairly well in public school at the 5tg grade level. We tried to get him to do some simple math /reading assignments and he immediately came back saying he didn't know how to do those things. Naturally, we called him out in this, and now he is actually doing assignments. 

My son is also one to be hyper stimulated by electronics, has a terrible temper, and can be incredibly manipulative when he doesn't want to do something. He is highly intelligent, and a pain to homeschool. He's also the oldest. My wife worked with him through 2nd grade and we ended up sending him to a private school for 3rd and 4th because of extenuating medical circumstances. He went to public school for 5th - but now, at middle school age , we are pulling him back to home education as the "virtual" classroom the schools are imposing was terrible for him. Hyperstimulation from computers and teachers that were just checking in and not teaching. We're not doing that garbage again. 

6th grade is where more complex foundations start getting laid. Writing complex paragraphs, basic math equation reduction, advanced reading. All things that go into a 6th and 7th grade class. If you find yourself terrible at math, consider hiring a tutor, or studying up on youtube. Myself, I skipped 6th and went straight to 7th. Math was hard. I ended up not being supervised enough, and went through the summer making up for work I'd skipped. By the time 8th rolled around I was ready. 

It was during this time when other homeschooling friends of mine started going to public school. Many parents feared socializing needed to be increased. I didn't feel this myself , I was highly engaged in church and other homeschooling activities. And for me, I could largely get through a day's worth of Abeka curriculum in an hour or two. I liked my freedom. 

For this age group, and for any age group really. Just as with public school, the goal is to pay attention and know what is going on. I. E. Be a parent. If you're working a full time job, and teaching school in between, and trying to be a parent, maybe this is too much. Burnout is a real thing. 

High school was a time my mom asked a number of times if I wanted to go to public school. I vehemently opposed this idea. I saw my friends from middle school and what happened to them after going public. I wanted none of that myself. I worked myself diligently through highschool. I was highly competitive and could often solve math story problems faster then my friends with calculators. I could read faster then any if them, and just picking up new things, I was like a sponge. I ended up graduating at 15,and decided I wasn't ready for college. My parents agreed to a foreign exchange program, my idea. I'd already taken the ACT, my second standardized test after the written driving test. 

Long story short. I got back from my foreign exchange and went straight into college at 16. This was where things got a bit tricky. But not really. You see, my score in the ACT was high enough that I qualified for scholarships and financial aid. My final transcript from highschool followed the required courses from Michigan. And the university had other homeschooled kids that had graduated and been exemplary students. Suffice it to say, the only tricky part was a minor in a college setting. I ended up walking out of more then one class my freshman year. 

I've ended up fielding a lot of questions about being homeschooled in my professional career. Not by the employer, but by co-workers and people in breakrooms. Professionally, I've only ever met one other person home schooled. I can honestly say she holds the same type of ambition professionally that I don't see in many people. 

I won't say this path is for everyone. But I will say a year during a pandemic isn't going to hurt education wise any more then the virtual school option, and, in the best scenario, will likely show a far better form of education. 

I'd love to answer questions people have. This is largely an overview. Not a full set of information. I'm proud to have been homeschooled, but I know enough understand that my viewpoint won't necessarily answer questions you might have. 



Friday, June 26, 2020

Book Review: Starflight by Melissa Landers

I've been going through books I've gathered over the past few years - decided it was time to write up some reviews. Here's the first one!

I read through Starflight pretty quickly - it was clearly a Young Adult book. It was definitely a single storyline book, easy to follow, etc. For scifi elements, it largely lacked anything technical or scientific - but relied on the typicial tropes of spaceflight and star travel. That aside, the book is a young adult Heroine's Quest Romactic adventure.

The protagonist, one Solara, is not as unusual as her name. She's a pretentious know it all mechanic, who has run into trouble in the past, but failed to find the actual cause of her problem. She copes pretty consistently by keeping a constant vision of her future, and walking toward that future (no matter the cost).  The author does a solid job of keeping the main character consistent. However - I didn't find this to be the case at the end of the story. Not to spoil exactly what that is.

For the majority of the book, the antagonist is not clearly defined, but rather a more atmospheric presence. This worked well to add a sense of mystery, and was probably the most interesting aspect throughout. Unfortunately, I was able to guess the plot twist when it was first introduced. That didn't spoil the twist to much. 

All in all, some of the supporting characters were a bit underwhelming, but the story was consistent and well thought out. It was an enjoyable three hour read.   

Stats:
Time to Read = 3hr
Stars = 3.5/5
Final verdict: this was definitely more on the romance/feminine side of syfy - but it was a fun read anyhow. 

Saturday, December 23, 2017

Php Generator Trait added to the Waryway Traits Library

Introduction to a Generator Trait

The trait library has grown! The newest addition is the Generator. There are lots of guides online about PHP Generators. Now, a specific 'file line reader' generator is available in the Waryway trait library. Let's take a look at what a generator is, why would it be needed, and an example of how it was implemented.

What is a Generator?

In the context of PHP, a generator is a syntax construct where a function 'yields' a value without instantiating an entire set in memory. Maybe think of it like a magic variable that yield an iteration each time you call it. 

Why would a generator be needed?

In the rare event you need to read from a line based file in PHP, I highly recommend a Generator pattern. It's a quick implementation, and less memory intensive approach to reading from a file. If you need the whole file in memory at one time though, stick with file_get_contents. Essentially, any iterable operation can be conducted with a generator. However, the only time to truly use one, is when only one line at a time is relevant, as opposed to the entire set. An example would be search a file for an entry without sorting it. Just run through the file until the item is found. The complexity is O(n),but the memory footprint is only 1 row.

Example of Implementation

I built a file line reader into a generator as a trait. This can be found in the php-traits-library on github. I like the availability of traits to build a 'base' system without intense inheritance models in PHP (abstract base class, anyone?).  For this trait, it does not cover all generator options, but specifically the line by line file reading approach. I added the typical file reading safety features, but I did not add a terminator - that might actually be a good future idea. What I did add was a callable argument, to allow a closure for parsing the line before return. Passing in a null will just return the line, unprocessed. 

Unit Testing Bonus

I've also built out an example of testing a generator (note: if you are testing something that uses a generator, phpunit has a mock approach for that).

Conclusion

I have as of yet to build out the implementation around the generator. For now - it is in place and ready to go and I've included the latest repo into the service MicroServiceEngine. 

Saturday, November 25, 2017

Waryway Website built on Aurelia hosted locally on Omega Onion2!

Announcement

I have deployed the new Waryway website FrontEnd based on Aurelia. This website is currently hosted on a dynamic ip address,with an Omega Onion as the server.

My main goal in this endeavor has been a 'hobby' website running with minimal power consumption. I had previously hosted websites on a full desktop computer (600w powersupply). This desktop running 24/7 had a marked spike in my energy bills after I got it running. I'm happy to report the omega onion is a much smaller footprint. 

I've had good uptime on a static PHP website hosted with reactphp - but I've decided to redesign the frontend/backend architecture. The new approach is an entirely Aurelia frontend with Microservices written in PHP, using reactPHP

The website itself is my initial Aurelia implementation - I have yet to link it to a microservice. Look to that in a following post.

Specifications:


  • Omega Onion2 
    • Nodejs
      • http-server
    • screen
  • Windows 10 'build' machine
    • Aurelia
    • Waryway\Frontend
    • au build for production
    • winscp for deployment

Deployment:

  1. Followed Aurelia's build instructions
  2. copied The scripts, bootstrap, and index.html files to the omega
  3. Started the http-server in screen
  4. Checked on an external network
  5. Profit!

Sunday, November 19, 2017

Setting up a Packagist PHP library using GitHub / Composer

Today I setup a new packagist entry for WaryWay's trait library. It was much easier then I expected. I have previously setup composer packages locally. This time, it wasn't much different. I build out the composer.json. Set the name. Then went ahead and tagged a semantic version. After I had all this in place and pushed up to GitHub, it was a simple matter to publish on packagist. 

Here are the exact steps:

  1. Follow the documentation on https://packagist.org/packages/submit
  2. Add the integration / services setting in github (See example1).
  3. Once setup with your token, click the 'test' button to let packagist know it is integrated.

Example 1


Monday, October 23, 2017

Bronze Sword Casting Birthday Present

For my 30th birthday my wife decided to do something special. She happens to be an excellent gift giver, and this time she had outdone herself. With my background in history, and my interest in all things nerdy... My wife had found a local Bronze Sword casting class! Now, I didn't actually know a whole lot about bronze swords - just a general idea that they existed and that they fell by the way due to Iron. That said - the class sounded really exciting! 

The class was over a period of three days. The first day involved packing a sand cast. A sand cast is one inexpensive method for holding molten bronze while it quickly cools. It's also reminiscent of making sand castles. Here you can see the impression left by the mold I chose.
After choosing the mold, the next step was to heat the bronze in a kiln, and poor it into the cast.


After the bronze had cooled, which made time go slowly because of anticipation, the sword was removed from the cast. As you can see, some of the sand stuck to the bronze, and, the bronze itself was quite rough.


On the second day, a considerable amount of time was spent sanding down the sword. It was quite a noisy endeavor! The first pass was a rough sandpaper. It made the metal gleam, but, was still quite rough. After we stepped through the levels of finer sandpaper, the sword was really starting to take shape.






The final day, we put the handle on the sword. This involved a hammered rivets. The handle we added reminded me very much of Chicago Cutlery.  


Many Hammer strikes later, and after a little bit of polishing of the handle, the sword was complete.

Bonus: After the class was over, I headed over to Hobby Lobby and picked up some leather. I used this to put together a sheath. Here is the final product. All in all, it was a great birthday present from my wife. :)


Saturday, October 21, 2017

Guide: Implementing a PhpUnit Development Environment in PhpStorm

Introduction

Unit testing is one of the most critical aspects of Continuous Integration. For some background, I like the idea of TDD, but in the end… I am a developer, I code first, ask questions later. A sample repository can be found on GitHub

Preparation

For this example, I will be starting with the following:
  • PhpTraits repository https://github.com/Waryway/PhpTraits
  • PhpStorm Project
    • Make certain you have a php interpreter referenced in your storm project
    • Also make certain you have Composer referenced by PHPStorm
  • A desire to test.allTheThings()



Getting started

Let's start from the very beginning

First, make composer do some work. We need a copy of phpunit.
Get it with this:
"require-dev":{ 
    "phpunit/phpunit":"6.4.3" 
}

As this is a 'library' style app - use an exact version. The lock file gets ignored in favor of precise dependencies in the composer.json.

Now run composer update to pull in the requested phpunit package.

Setup phpunit in the general settings, under phpunit


Adding a new test

Or rather, a test skeleton

  1. Open the file to test in the Project View
  2. Place you cursor on a method to test within the file
  3. Go To Navigate -> Test
  4. Create New test
  5. I tend to set mine up with a test prefix to keep tests more obviously separate from code.
  1. Click Ok then Open up the new file
  2. Add a line to pull in the composer autoloader
  3. Clean up the Namespace reference to the TestCase if you are using PSR-4
  4. Disclaimer: Strongly avoid namespacing unit tests. They should not be built out like a code base. They are testing units.
  5. Add an empty testHydrate method.
  6. Add a super obvious assertion.
  7. Add a phpunit.xml file
    1. I put it in the test directory.
  8. Run the test (At this point, I needed to restart phpstorm to detect that I actually had a 'test' to run.
  9. Build the tests out further.

Conclusion

Ending of the beginning

I've gone ahead and built out the 'hydrate' test against a trait. Note the use of the trait object that phpunit provides. Pretty slick, right?  I'll continue to build out this repository - core libraries need the most directed test coverage.


Even adding the 'test' cases around the hydrate method - I have found use cases I didn't consider while writing the code - and have adjusted the code to reflect the behavior I expect.

You can find this repository on GitHub! This post might need some more work, feel free to ask questions or for updated instructions.  Thanks!