RGB controller revisted
Over the past few days I have revisted my RGB controller project. The state of the project was stale and I didn't appreciate how I went about making the microcontroller side of things work. I began by revamping the microcontroller code, I changed how serial data was handled and parsed - this allowed me to add aditional functions other thaqn plain old R, G and B color modifications. I began experimenting with color fading, I thought the results were nice, however I had to taclke the issue of scheduling (psuedo multithreading), I managed to find a nice library that allowed me to do this easily. I integrated fading and many other options to go along with it (more on that later) and began revamping my user interface and the code behind the frontend of the project. To fit with the new data communication scheme I had to rewrite most of my communication functions, adding a few etc. Once this was done I integrated a new section to the user interface named "fade". Here is screenshot of the additions.
- red, green and blue color fading each with their own toggle buttons (can pause a specific color etc)
- individual color fading on their own timers (each color can fade faster or slower than the rest)
- minimum and maximum fade values from 0 to 255 available for each color
- speed control of all colors using one slider
This has been the only spark of motivation for programming i've had in a long time. This is ultimately depressing.
The end of 2016 and my future
As 2016 comes to an end it's time to reflect upon the year. Drama wise, it has been the best yet, the US election specifically and lately, the Reddit drama with Spez - I love drama.
However, on a personal level, this year has been different from any other in many ways. I began 2016 motivated to finally be done with school, and it went well up until August, I was so close, literally weeks away. But I lost grasp of everything, I fell once again into a pit of depressive nothingness. During August I had broken my shoulder, I was in agony for around two or so months, not able to use my left arm. As a left handed individual this was incredibly depressing. I had to relearn how to do everything with only my right hand, I couldn't play CS:GO and I couldn't type at a reasonable pace with only my non-dominate hand. It was around October I was finally able to start re-using my left hand for basic tasks, I could finally shower and sleep without incredible pain. Around November I finally regained my left arm enough to do most things. To this day I still have shoulder pain when lifting things and sleeping on my side and fear it will never go away.
At this point all my school work was due, it had piled up during the last few months, I hadn't done any of it, I had to rush everything. I managed to complete my Research Project start to finish in only a week, I don't know how I managed. However it was too late. The deadlines had come and gone, and I told school to have me back for 2017. I fucking promised myself I wouldn't be in the same position at the end of 2016 as I was at the conclusion of 2015, but I am, once again I have spent a year and achieved nothing. Many other things have happened to me this year, all of which are personal and horrible, however you do not need to know any of it.
Ending on a positive noteThis year hasn't been all bad. Around two months ago I had been accepted into a trial moderation program for the subreddit r/GlobalOffensive with around half a million subscribers, this is a subreddit dedicated to the only game I have ever truly enjoyed and have sunk nearly 2 thousand hours into - Counter Strike Global Offensive. I've spent the last four years of my life on IRC and with that came some moderation duties on the BeamNG IRC channel and I found it incredibly fun. When I noticed this particular subreddit accepting moderator applications I knew I had to apply. 0 expectations going in, as with everything in life of course, however this time I came out a winner. Fast forward a month out of the 11 accepted applicants I was one of the four accepted as a moderator. This is fun, the last two or so months have been entirely taken by moderating the subreddit and interacting with the community both via IRC and Discord. How long will this enjoyment last? Probably not long, but I shall enjoy it while it lasts.
With another month gone by it is probably time for blog post.
School is continuing next year... I thought it'd be over this year, but I just was not up for the work. That's mighty depressing. It wont be all of next year, hopefully I will be done within the first semester.
I have done no programming this month which is mighty depressing, I need to start another project, but ideas have run dry.
I don't know what to do.
I am currently in the home-stretch of recovering from my shoulder injury. I have limited, yet existing movement with my left arm and can use it for basic things, but it still hurts. I am use to doing this with my right arm now - I'm not sure if I will go back to using my left.
I have lately been playing CS:GO again. I have changed a lot of my config. My crosshair, sitting position and style, resolution, sensitivity all has been altered. I took this injury as a chance to rethink how I play as I was not progressing. I don't know if I will play CS:GO much longer. I love it, but at the same time I am sick of it.
Programming, something I love is always getting old for me. I have been using C lately and have made a cool thing or two, however ideas have stopped flowing and I am once again bored. I need a project, I need ideas.
2016 is nearing its end and I am in the same position as I was this time last year. I was supposed to be finished with highschool in 2016, however for reasons talked about before, I am here, at the end of 2016 still procrastinating, still wondering if I will complete. I am over it, sick of it, yet cannot find the motivation to finish it.
Maybe I am not motivated to finish because I don't know what the future holds? I want to become a software developer, programming is the only thing I really enjoy - but how. University is a stretch, the way I am completing high school does not lead into university - thus I'd have ot take one of the other routes, an extrance exam. But, that leads to another issue. Software development courses have math knowledge requirements that far surpass my knowledge. I have nto taken any of the prerequisit classes.
I don't know where to go from here, but what I do know is my media/posts seem to have a constant pattern of being a month apart, this is not intentional, it has just happened that way.
Does anyone read these media/posts? Who am I really talking to, maybe my future self, or maybe a future employer looking into my online history? Don't worry, just stay here and on GitHub.
Broken shoulder, everything is on hold.
Unfortunately a few weeks ago I had somewhat of an accident and broke my left shoulder - my dominant arm. This has made just about everything difficult. I have not had a good nights sleep in weeks and I cannot do anything I enjoy. I am in a sling for another 10 weeks, lets hope it goes fast.
No CS:GO or programming makes Daniel something .. something.
But, negativity out of the way, some cool new things have come about since my last post.
IRC Web clientI have now installed QWEBIRC onto this server which allows you to connect to my IRC network via your web browser.
You can find the service here.
File hostingI now run a temporary file hosting service - perfect for when you need to share small files with others over the internet. You can find the service here.
CS:GO stats viewerA lot of work has gone into my stats viewer since I last talked about it.
The biggest is game integration. Game integration sues the local CS:GO API provided to give real-time in-game statistics about your current match.
However, since I cannot play CS:GO for the time being because of my shoulder, work on this project has been halted. You can find the project on GitHub.
CS:GO Stats viewer
For the past week or so I have been working on a new project that displays a users Counter Strike: Global Offensive in-game statistics.
Using Steam's API a user is given access to an abundant amount of statistics about a given users Steam account and in-game information, in the case of a Valve owned title CS:GO, much of this information is of great importance to a player trying to improve their overall skill and performance.
I have utilised this API to its full advantage and have designed a multi-platform program that can present this information to you in a user-friendly manner.
This project was written using C++ and the QT framework, the code is open source and available on GitHub.
- Profile selection - choose, edit, delete and save any number of users for quick access to their statistics. These profiles are written to file and saved for later use. (select the user you want to view from the dropdown menu)
- In-depth Weapon statistics including the total number of kills, shots, hit and your shots/hits ratio.
- In-depth Map statistics including total rounds played, rounds lost/win and the ratio of wins to losses.
- Generic Steam profile statistics such as your profile picture, username, real name and time played in CS:GO
- Other important CS:GO information such as MVPs earned, total kills achieved, total deaths and your kill/death ratio.
Here is what the UI currently looks like - there are three copies open, one showing my main CS:GO account, the other my alt and the last the user interfaces for selecting and editing users stored on disc.
My RGB LED project - something I actually enjoy working on.
For a while now I have been working on my RGB controller and have made some great progress - the most recent being that of presets. The ability to load, select, save and delete presets has been one I have wanted for a long time yet have never actually attempted to do.
This project allows me to control my rooms RGB LED lighting from software I have written on my computer. This project uses a combination of C/C++ and the Qt library, the LED strip itself is powered by an Arduino - the two way communication is achieved via serial libraries. This project is being featured in a major school project about serial communication - I may post that project here at some point. This project can be found on GitHub. This is the current state of the UI.
Don't try too hard - Linux makes life easy.
For a long time now I have, on multiple occasions went to create an image uploading program simmilar to the Windows software ShareX. Albeit, I only needed a simple "select area of the screen and upload the file to a web-server" deal - I still managed to give up, every. single. time.
I had searched for software compatible with Linux that did this and I just couldn't find any that fit my needs. But, I had an idea I hadn't considered - what if I use multiple pieces of software, combined with bash to make a simple. one lined solution? To my surprise, this worked.
The software starred in this project includes scrot, sftp and xclip.
Here is the one line bash script I use
scrot -s ~/screenshots/%b%d::%H%M%S.png -e 'sftp -P 6669 firstname.lastname@example.org:/var/www/images/ <<< $"put $f"; echo https:/danieljon.es/images/$n | xclip -selection c'
It is pretty simple, first it launches scrot (a screenshotting tool) with the option -s which allows the user to select an area of the screen to capture, then it specifies a location and name of the image to be saved, next it uses the -e option to execute a command - I use SFTP to connect to my server (I use SSH keys, no passwords), 'put' the SFTP command put is used to upload the image. Note the $f, this specifies the file location and name of the image we captured. Next I pipe the location of the image into xclip which copies the final link to the image in my clipboard.
Linux is awesome.
Presets recreated within my RGB controller
You may have read about the presets function I added to my RGB controller a few months back .. it was horrible and literally straight after writing that post, I removed it. Tonight I decided to re-create it using a drop down box, and this time it works. I am re-using this RGB controller as the star of my research project - a required project to achieve the completion of high school, it might be cheating, but I don't care.
Research Project - How I plan for failure.
I'd like to post this little masterpiece I just wrote up.
This is how I plan things - not good.
Failure seems to be my end goal, but is it?
so, I really need to get a move on and get my research project done I don't want to bother handing this project in if it isn't of above-medium standards because that makes all of this a waste of time. If I ever think it is shit - I am dumping it all. Or maybe I won't, I really, really don't care about any of it right now. ------------------------------------------------------------------- Things I have finished: - RGB LED project. I have it done, all the programming etc, and it works. In fact, I have been using it for months - way before I even considered it for this subject, yes, i'm not going to learn anything. Things I need to do: - proposal I want 1.5-2k words, maybe more. - research process I have no damn clue what I am going to do here. Have to pull something out of thin air I guess .. about 9 pages of it too. - log of every session This may actually be done legit, because, let's be honest, I've really done nothing, so the entries can be made up.. on the actual dates. - final outcome - review So, what the hell is my final outcome anyway? - Website - static JS, HTML, CSS - NO PHP, sadly it needs to be handed in via USB. how will they view it? - they will need to open a page called index.html in their browser .. if they cannot manage this I really don't care for their marks/grades - Video of the project (I am not a graphical artist/into video editing, it will be a horrible video - editing wise) (AFTER THOUGHT: the video will basically be a power point presentation, with little video clips and voice overs in it, that counts, right) what will it contain? - Entire video will be voiced over - brief introduction of myself? (seems kinda gay) - motivation behind the project should this be an outline of my proposal? - graphical schematics of the project and UI designs with explanations of my reasons behind things, simmilar ot ins the proposal these will be static images with voice over - parts list insert pictures of each part, maybe talk about their purpose - show pictures of it being put together - of course I will have to take it apart and put it back together, because all of this is basically a lie - talk about challenges I faced constructing it - I did encounter issues .. just not now, about 6 months ago when I originally made it maybe even longer, I hope they don't look at my blog media/posts about it will it be on YouTube? - no, it will be an mp4 file located on the USB drive submitted