Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Wednesday, May 26, 2021

Graduation is on the Horizon!

 Good day readers,

It has come to my attention that I have not posted in quite some time. Perhaps I was too busy? Who knows?

Anyways, I was reading through a recently discovered blog. I think it's hilarious that I have never found this before given the authors! Check it out if you have some time!

Moving on to what has happened; let's see if I can summarize it in one really long sentence, because why not?

After receiving my recognition, the idea of leaving my schoolmates and teachers behind really hit me, but not like a brick, no; instead, I like to think of it as a really friendly and aggressive slap in the face, making part of me want to sit down and riminess, and another part of me want to run away as fast as I can, and this goes for most of my teenage experience; for example, both robotics and work are incredibly vulnerable to this line of logic; after working countless hours at both robots and work, it dawned on me that a part of me would not miss the grind.

So I hope that disgusting sentence helped you understand where I have been, as well as what I've been thinking recently. In case it didn't however, I will go into more detail. 

So I have totaled close to a thousand dollars in earnings recently, so if that doesn't give you an idea of how much a part-time, weekends-only worker works, I don't know what will. Sure there were a few weekdays here and there, but those were only five hours, which isn't too long compared to the classic 13 hour shift I usually work. Lastly, let me make it explicitly clear that I died after that vaccine! I was up till about five AM with an awful fever and muscle aches. Unfortunately, as you may have guessed, I missed the Food Truck Trek, but I heard good things. It seems in about five years our teams gonna be really big!

Now that work has been explained, let's move onto robotics. I suppose I should start off with senior night?

First off, it was a blast, so thank you everyone that did attend, or at least attempted to!

Next, it is unexpectedly important to say that I did not cry! Unlike a lot of seniors, I did not stop showing up to robotics. I need to attend to teach people, fool around, learn, and grow, in that order! Last night, a student from the class of 2020 created the ultimate drift bot using a Cheap and Dirty Radio Control set from Andy Mark. We have been working on perfecting the drifts for a long time, and I think we got it. The best part is, it can pull +3 people! It also can seat one of them on its chassis!

Now, moving towards a more focused and questionable task, I am almost done with my part of the driver station! I have completely remodeled the way this team programs robots in Python, making the process more user friendly and more modern! Again, very sketchy, very questionable. It is certainly possible that the poor RoboRIO will be trying to do too much at once, but hey, it wouldn't be questionable otherwise! I am really excited to see the final product of the driver station, using my exciting networktable-value publishing system and another student's ingenious web design and backend abilities! Wow, that is going to sound really bad out of context. Here's a graphic for understanding backend:



So apart from an absolutely fantastic senior night, nothing has changed too much there; still questionable! Moving onto the Sunday after senior night, May 16th, 2021!

For those who didn't know, this Sunday was the Drydene 400 at the Monster Mile, or Dover International Speedway! This was my first NASCAR race, and boy oh boy was it a blast! I had the time of my life and definitely learned to appreciate my hearing! From the moment we saw rip-off Chase Elliot to the moment Alex Bowman crossed the finish line, I was in paradise. The race was also very special because it was the first time in Hendrick Motorsports' history in which they earned a 1-2-3-4 finish, meaning that their four drivers conquered the top four positions. What made this even more remarkable was the fact that only two of the drivers had excellent starting positions. While William Byron and Kyle Larson both had optimistic starting positions, the other two were not so lucky. Chase Elliott unfortunately had to start from the rear, and Alex Bowman had a solid start in the middle of the pack. After an exceptionally fast pit stop, Alex Bowman was able to get out of the pits and take the lead, passing who I think was Kyle Larson. 

When I came to the race, I knew I wanted some Chase Elliott gear. I think every Hendrick Motorsports fan has some sort of Chase Elliott gear! But I also wanted some of Jimmie Johnson's which would be harder to find since he was no longer racing in NASCAR (he drives the #48 Carvana in Indy Car, also really cool!).But I did however find a piece to remind me of his Lowe's sponsorship!

Back in 2001, Lowe's partnered with Jimmie Johnson, who was a nobody at the time. Why? Great relations with Hendrick and a promise from the legend Jeff Gordon, former Hendrick Motorsports driver of the #24 car, claiming that Johnson had great potential. 

Some people think Lowe's left because Home Depot, the classic Lowe's rival, bailed in 2014. It is certain that the reason they left had to do with business however; Lowe's loved Jimmie!

Anyways, after I saw Alex Bowman in Jimmie's famous Ally car cross that finish line, I knew that although the drivers have changed, my favorite car has not! I think it's time to say I am a proud Alex Bowman fan after that day; or better yet, a fan of the #48 car!

I also had all of my AP tests over the time I was missing. I absolutely wanted to die on the Calculus BC exam, but the Physics I and the Computer Science A exams went very well! Yesterday, I finished all of my finals, except the second part of my calculus one. Ironically, apart from my computer science and English exam, I did the best on the calculus final! Or so I think!

Now on to a little more discomforting subject. Last Saturday, as much as I hate to say it, my grandmother passed away. She was a legendary cook and a legendary grandma! She always loved given whoopins', and I'm sure those will be carried on by my cousin! I never went to Disney World with my dad's parents, but I do know my cousins did, and boy oh boy did they have a blast! It makes me happy to think that my hardworkin', firefightin', grandpa and his good boy Tawny have been joined by my grandma so they can feast at the big table with the big man!

As an introvert, I find funerals very uncomfortable however, so I am a little concerned about that, but I know it means a lot to my dad and the rest of my family, so I'll tough it out. 

I still remember where I was when I learned that my grandma died; my mom told me that morning that they were expecting it soon, and that was all I could think about on that beautiful, Saturday drive to work. When my brother hauled his lazy butt in later that day, I told him to be cognizant towards the fact that she might pass, and he seemed a little shook, but seemed to manage himself well. Later that afternoon, my brother went on break, and returned to tell me she had passed, apparently she had left us earlier that morning. I still remember sitting in the back room, making about a dozen money bags for my clerks. I was a little shocked because I thought she had a little more time. I guess not. 

But people die, and that's life. I think I've talked about this unfortunate subject a lot at this point, so I'll shut up now. 

All in all, my eventful absence has been filled with ups and downs, but I think I'm going to use the "ups" to look at the good in the bad in the "downs", if you catch my drift. Oh, that also reminds me, I'm now practicing skateboarding at robotics! But that's a story for another day!

Congratulations if you read this far, but like always:

Thanks for reading, 

The Questionable Programmer

"Ups and downs in life are very important to keep us going, because a straight line even in an ECG means we are not alive"

- Ratan Tata

Monday, April 5, 2021

2021 At Home Season and Catch Up

Hello readers,

I'd first like to apologize for my disappearance once more; I have been awfully busy with work events as well as robotics of course. 

As most of you know, the FRC 2021 season is a little special, to say the least. Rather than hosting the typical build season with in-person events and a World Championship (which we attended in 2019!), they decided to create three different challenges encompassing both those who have access to their robot, and those who don't. 

For those who are interested in FRC Game Theory and Design, there was a challenge for that. There was also a product design challenge for team's who are more focused on universal and community impact. More information on these two challenges can be found here.

Personally, I took more interest in the third challenge: the at-home challenges. These were challenges that involved the robot and its capabilities, such as cycle speed, accuracy, driver skill, and autonomous potential. 

Long story short, we were randomly assigned a group of 29 teams to compete with, and it seems pretty good. 303, Test Team, was the only team I recognized from the FMA district however; all the others are new to me. 

We generally have really strong scores across the five challenges. Not perfect, but good; in fact, maybe good enough to win our group? Maybe. We are interested to see how other teams do, but so far no team has compared to our scores. Until now. 

FRC Team 3130 of Minnesota is here with some good scores, and it's rather frightening. We are about even, and I have yet to see them post scores to the two shooting challenges. I need to get the autonomous challenge faster to secure a win however. Nevertheless, there are less than three days of competition left. All scores are due on the eighth by 3 PM Eastern. Tomorrow I plan on speeding up that auto, and taking Wednesday if need be. 

Nevertheless, we are going to do the best we can, and if we cannot beat them, too bad so sad. Nothing much we can do about their score. But I remain hopeful. I look forward to updating you all on the eighth. 

Small rant time. Skip if you want. 

So when I first started the season, I was excited to see FRC's unique take on the 2021 game/games. My opinion of the 2021 season gradually declined however. To be honest, I feel as though it is a lot more tedious and frustrating than a normal season. I also really dislike the way FIRST is handling the scoring. For two of the scores, they state that if you over-score yourselves, accidentally or purposefully, they throw your score out. If you underscore it, they do nothing. It's like The Price is Right. Yet unlike The Price is Right, this infuriates me. I think it's stupid that one small mistake or difference in opinion is a throw-away of what could maybe be the best score ever. It's not like teams would argue; they basically have no valid way of arguing since they have no idea who scored their piece. 

Although the Power Port challenge, a challenge which includes 60 seconds of cycling and shooting is exciting, it is, in my opinion, almost ignorant of the robot's skill compared to the skill of the human participants. 

By forcing two people to collect the same three balls from either behind the power port or in front of it (depends on which configuration you used), you are testing the robot's aim, and that's about it. Speed of the robot does not play a huge role, but human speed and hand-eye coordination do. FIRST prides itself on offering activities that give the competitiveness of sports, but also the joys of robot skill and performance and not the physical potential of team members. Speed of the robot is typically regardless because humans will usually take longer than the robot. This challenge also frustrates me because the challenge incorporates little of the robot. For us, it was really only the shooter and the aiming components. We didn't need the intake and the climber, and that goes for most challenges to be honest. It was always these systems. I felt disappointed in the challenges we received. To prevent being overly hypocritical, let me lay down a few suggestions: a speed-climbing challenge, an auto challenge which involved shooting, or a color wheel challenge. 

Although my proposed challenges present a plethora of difficulties, isn't their job to overcome these? I don't think the challenges are that difficult to implement, and I certainly think they provide a better alternative to the 2020 game people were looking forward to playing. Shooting these yellow dodge balls repeatedly is quite boring, and drivetrain skill is certainly nothing new. 

All in all, I feel as though these games are the "tip of the iceberg", and that this season could have been so much more if they put more effort into these at-home challenges. 

However, what's in the past is in the past, and I certainly can not change it. 

End rant. 

In early March, I managed to earn myself a promotion at work. In fact, I am now an assistant supervisor. My tasks are much more different than what they used to be, but they still revolve around the same core concepts: respect, treat guests well, and honor our founder. I look forward to dealing with the Karens and helping out my coworkers across the park! My first day is this Sunday, although it was originally supposed to be the past weekend (one of my close friends and team members got COVID-19 [he will be ok]), so hopefully I can inform you when I also inform you about FRC Team 3130 and our performance. The shift also happens to be a double shift, 0830 - 2100 *excited nerd noises*!

Easter was also yesterday, so it was nice to see most of my family together and healthy too. 

I have a lot of stress on my mind with these challenges, so the sooner its over the better I suppose. Just gotta do my best! 

Again, sorry for my disappearance; just know that I'm still here, and still coding. 

Just kidding! Look here for my most recent work involving Bezier curve generation and following. If you wanna see the inner guts of it, trace it back to the swervedrive.py file in the subsystems folder and locate the methods you are interested in (which is most likely the slope finder of higher degree Bezier curves!) This code certainly lives up to my name of, The Questionable Programmer. 

And with that ladies and gentlemen, I bring this to a close. Thanks for sticking with me once again, and I look forward to writing to you all very soon. 

Sincerely,

The Questionable Programmer

"It always seems impossible until it's done." 

- Nelson Mandela


Thursday, December 31, 2020

Merry Christmas and Happy New Year! Review, College, and Adventure!

 Good afternoon everyone! 

I hope everyone here had a happy holiday, I know I did! 

I would have liked to post much earlier, but a lot had happened recently, so I couldn't find the time. Let's start with Christmas. 

This year was much like any other; we get up, open presents, then go to my grandparents the next day. 

This year, my parents got me new winter boots, which will really come in handy later (I'll explain later in this post)! I also got a new laptop, which is what I am writing this on as of now. It's a really nice Dell Laptop, so Dad, when you read this, thanks again. There is only one issue with it: the OS is Windows 10. While I still despise Windows 10, I really don't like Edge! I need to set Chrome up on this laptop, but I just haven't got around to it. One of the gifts I did not expect was a multimeter! It's a really nice Fluke 117! I try to use it whenever I can, since its nice to practice and experiment with. All in all, the multimeter is most certainly my favorite present. 

So like I said, we went to my grandparents the next day, and it was nice to see everyone. Well, mostly everyone. My one cousin has COVID-19, and therefore could not attend the get-together. That makes him the second one in my family to have become infected by the virus. He seems to just have a cold, and will most likely be just fine thankfully. Anyway, another one of my many cousins, a Lance Corporal in the Marines, was there with his girlfriend, and it was nice to see him too, but that's not why I brought him up. I think it was one of my aunts who offered him the task of opening the wine bottle. Well, I'm not sure if he's never done this before, but it didn't go well. He took the bottle in one hand, and the corkscrew in the other, and really, really pulled on the screw. In fact, he pulled so hard on both components that he dropped the wine bottle. As you would expect, my entire family started screaming at him. His father, grandmother, and brother were the most furious. He kind of just stood there chuckling in shock and surprise. Naturally his brother and I then turned to his girlfriend to rightfully welcome her to the family! 

His brother doesn't serve in the military and instead works for a mortgage company. He's really kind and enjoys writing stories. I don't mean your typical novels; I'm talking really odd, but interesting, science fiction stories and the liking. He does this on the side, and even gets some published! He and I talked for almost the entire time at the family gathering. He typically likes to go on and on about this table top roll playing game called Vampire: The Masquerade. It's like D&D but with vampires. And it's not like I don't enjoy listening to his explanations and stories; in fact, as a fan of D&D, I find this alternative really interesting! 

Now that I have discussed the gathering, I suppose I'll move forward in chronological order. Next up, would be my college decision. Oh, I should mention, I got accepted into Penn State University Park! I finally decided to commit to a college once I found out how competitive Penn State dorms were. I also figured, what's going to change between now and January when I planned on deciding. 

After consideration for many months, I decided on: Michigan Technological University. 

Why? Well, let me start by discussing my insecurities with high school. While progressing through high school, especially in 10th grade, I learned that I was not like everyone else. 

I did not take interest in athletics like most people, nor was I good at them. I got into bad training habits and that really disappointed me. While most of my classmates were focused on their looks, relationships, and athletics, I was focused on my grades and not much else. Throughout this, I kind of blindsided what everyone else thought of me. 

This is how its been for a very long time. Like a very long time. For crying out loud, my best friend was my teacher in 3rd grade. I absolutely hate looking back on this, but I still recall standing next to her for the entire duration of recess for many days. I don't know why I never caught on like most people, but like I said this tunnel vision of mine remained for many years. 

When I reached tenth grade, I realized all of this and rapidly became more and more self-conscious and insecure. I became much more quiet. I considered very few people friends. I looked more and more towards my robotics team for support. 

This is when I learned that a lot of people on the robotics team appreciated and liked me, the old me. The one who naturally fit in, and didn't go into this depressed hiding state. I feel like I can revisit that old me at MTU. 

Now, how does this relate to my college decision? Well, I feel as though Penn State is a larger school and it will therefore be more difficult to find out where I fit in. I also distinctly remember, both my faculty advisor and student contact saying that no one is trying to impress anyone at MTU. There are no cliques, and everyone gets together as one. That unity sounds amazing, and that sounds like the college experience, I not only want, but the one my mental state needs. 

MTU is also an adventure. I have been up there once, and I have never experienced that much snow! I want to travel and see the world, and I figured it would be nice to knock one out in college too! This interest in traveling probably came from my father, and it really grew after we road tripped out West!

The campus is also really beautiful. Here are two screenshots that I just took while writing this actually!



 

Side note, I applied for a private bathroom in the dorm on the right that looks like a right bracket from above (]). It's called Wadsworth Hall. 

Lastly, the education is just as good as Penn State. I get more hands-on experience, which is rare at a school as large as PSU. I also got a scholarship worth $80,000, and I think its nice that they recognized my hard work. 

The only concern I have is with my dad, and the younger me. As a child, I always grew up wanting to go to Penn State Main Campus, and now that I finally can, I don't want to let my younger self down. I don't think I will though. I was naïve and did not look at any other school. I also feel like Penn State has changed ever since they closed Ye Old College Diner! I kind of took this as a sign that this might not be the school for me. Although the campus is beautiful, the community just doesn't suit me. But like I said, I don't want my dad to be disappointed that I'm not going to his Alma Mater. He has said many times that he isn't and I do believe him now, but will it always be that way? I hope so!

So there you have it. That's my college plan. Oh, I majoring in electrical engineering if I haven't mentioned that. 

Now, time to move onto the 29th. On the 29th, we went skiing at Elk Mountain! I was ecstatic because we just bought some gear and everything the night before! I also can say that I went on an intermediate, or a blue (it was labelled as green; I think that was a mistake!). It didn't go very well to say the least! But I conquered the bunny hill with ease, as well as a kind of long and steep hill called the West Slope. I had a lot of fun flying down that hill with my dad. We also brought Noah, who had never really gone skiing before. He focused on the bunny hill while we were there, and resorted to falling as a way of stopping! By the end of the day however, he seemed to have got the basic concepts down pat. Skiing involves a lot of confidence in your speed and ability to stop yourself in my opinion. Here's a photo of me at the top of West!

Yesterday, the 30th, I also managed to finish writing a Reddit reply bot! The bot simply insults people upon command, and you can find the open source code here! I need a server to actually get it working, but right now, it uses another API to generate evil insults and will insult whenever its name is called upon someone in a reply or comment. But like I said, it will only work, when I'm running the program on my computer! Here is the link to the code on my GitHub. I surely think this is living up to my alias!

Today is New Years, and I have my younger cousins coming over soon. They want to celebrate New Years with us they said, and I was really surprised because I don't think they know we don't do anything special!

Anyway, thanks for reading whatever I'm going to call this. This is probably my longest post yet, and am surely exhausted now. I think I spent an hour and a half writing this. But nevertheless, it's nice to vent here sometimes.

Thanks for reading,

The Questionable Programmer

Sunday, October 25, 2020

Brainf**k Adventures

 Hello readers!

Looking through my posts, I notice how few people look at these. I think it would be fun if people find this here years later. Anyway. 

This week was nice, as I only had to go into school twice! Robotics is going well, and I'm working out most of the issues in the code. Today I got to work on more scholarship stuff, so I'm pretty exhausted. 

However, I finally did something this week that I've wanted to do for a long time: learn Brainf**k. I think it is rather obvious what the title is, an its called that for good reason; the language is complex and hurts your brain! Here is the Wikipedia page. As you can see, the language has eight commands, and is Turing-complete. 

See why it's called that? Anyway, I'm working on gaining a deeper understanding of the language! I really enjoy it, and its a lot of fun writing in that language and succeeding. It shocks some people! I even made my own interpreter for the language. I wrote it in Python, and it appears to be fully functional. 

For those who are wondering, here is what the "Hello, World!" program looks like it. I doubt this is most efficient, but this is how I did it. Believe it or not, this version is rather simple. 


Easy, right? I'll leave that there I guess. 

Alrighty, I'm exhausted and have to go do some stuff.

Thanks for reading, stay safe!

The Questionable Programmer


Tuesday, February 26, 2019

A Method To My Madness

Hello fellow programmers and Blogger wanderers!

If you have not read my previous and first blog post, I highly recommend you do in order to get a sense of the topics and ideas I will throw out.

Now that we are all settled, let's get into the title. You're probably pondering upon the title and asking yourself, "Now Ben, when are these strange titles going to stop?". You also probably have your mouse hovering over the back arrow, which is perfectly reasonable and understandable, but wait! If you click that button, you could miss out on some lessons that might be worth while depending on the situation you are in. If you're caught between a rock and a hard place, be sure to read until the end.

This blog should be a place for the clutter-minded programmers to come and ease their troubled minds. A place where students can come to rest their eyes and fingers. A place where homework is done, and the code passes tests and performs flawlessly.

Now without further ado, let's continue into the topic.

First off, several of my programming mates, several being one, dislikes numerous quirks I exercise while performing my tasks and jobs. This section is here to reinforce my ways. To prove a method for my madness! (Get the title now?) 

Number one: 'Ben Numbers'

Reader: "Uhh, what are 'Ben' numbers?". Great question! Ben numbers are real numbers that appear as irrational floats in code. These values are not returned, but declared. Many people, such as this certain one, dislike these numbers. Why do I appreciate their cause? Ben numbers have the capability of providing more accurate positions and rates.

As you can see in the image above, floats do NOT take up more space than integers also, which is a huge convenience for functional programming.

Now that we have that out of our way, let's move on to the next topic: Skipping tests.
Many of you not part of a group that runs tests on code prior to its deployment, which is alright. My point here is short and concise. Tests can lead to the build-up of time, and depending on what you run and how many (I run 5 and they can take around two minutes) you run, it might be quicker to "Ship it" and avoid the tests. Nowadays I am comfortable enough with my skills to set the title for this blog as my title, but also skip tests. If you run the tests every time, you're essentially taking small chunks of time just to get an error, or an annoying statement that says, 'Congrats! Subtract two useless minutes from your day!". Now, when you write big programs or are relatively new to a certain language, running tests are not a bad idea. However minor changes are not necessary in my opinion! Not only do they waste time at some points, crashing right away, and performing a part of it, could be very instrumental in cracking the error.

I hope these two concepts make enough sense that you see where I am coming from, but you do not need to agree.

Congratulations! You made it to the end and heard and reviews the method to my madness! Now for my words of wisdom from the day.

I understand that there are large obstacles in everyone's life, and you can get bummed out all the time. And I mean, all the time! But you must remember: if you claim to have hit rock bottom and you've sunken so low, what are the odds of your day improving to your day getting worse? Hmm? When you sit down on your couch after a hard day and think "Why did I do that?" or "Why did I say that?", I want you to think about what you can do to repair yourself, or get rid of the bug in your code! Make it up to them, rebuild, reconstruct, and most importantly, do not get distracted from the future. The future is everything while the past means and does nothing, except act as a footnote simply pointing to what we could improve or fix. So the key points?:

- It can only get better.
- Rebuild and regenerate!
- You cannot change the past, but you can influence the future.

As I wrap this up, I hope I leave you with a sense of satisfaction and relief, while providing a method to my madness. So, as a friend who understands the struggle, and the cure, have a great day, and an even brighter future!

"Let your hopes, not your hurts, shape your future." 

- Robert H. Schuller


Twentieth Birthday Eve

 Hi everyone, I know it's been a while since my last post, but I am certainly in a much better mindset now! Blogging, firefighting, and ...