While uploading an image to my file hosting service using the api and a script utilising curl, scrot and xclip I was left pasting the contents of my clipboard into the url bar hoping that, eventually the image url would be there. The script I was using had no way of reporting that it had finished, so I had no clue when it was. To solve this first world problem I needed a notification program. While installing one and configuring it would have been the easiest option, I instead decided to create my own. Using, like all my other projects, Qt and C++ I did just that.
The application is incredibly simple, however is very effective. The following command is what was used to create the notification seen in the image:
notifier "<b><u>Screenshot</u></b>" "<font color=green>uploaded and copied to clipboard.</font>" 5000
HTML tags are supported, allowing you to customise the text completely, you can also embed images. The top right includes a close button for easy removal and the application allows input of how long it should stay open until it closes itself, this is measured in ms. The notification appears correctly in the bottom right of my main monitor and has a customisable x and y offset. It resizes itself dynamically to keep all the content on screen.
The project is not as of yet on GitHub, i'm not happy with the quality of the code yet.
Recently i've been wanting to collect and store images (mostly reaction images/anime screenshots) that have been posted in a specific IRC channel.
To accomplish this I decided to take the DIY route and create my own scripts/applications.
cp ~/.znc/moddata/logs/zncname_servername_#channel* ~/whereever/you/want
echo 'run this in the directory containing all your logs (not recursive)'
cat *.log | egrep -o 'https?://[^ ]+.png' >> files.txt
cat *.log | egrep -o 'https?://[^ ]+.jpg' >> files.txt
cat *.log | egrep -o 'https?://[^ ]+.gif' >> files.txt
wget -i "files.txt" --directory-prefix=images
I've never gone in depth on how I use my computer and the things that I do every day, so i'm going to now.
Over the last few days I have created two new projects that utilise the core concepts (and most of the code base) of two previousprojects - my RGB controller and CS:GO stat viewer.
The first project is a command-line implementation of my RGB controller. Using C++ and Qt (as with most of my other projects) a console application was created that allows me to send commands to my RGB controller (micro-controller based) over a serial connection.
The application expects at least two arguments: the first being the device to write to (serial port) the second a command to send. Each argument (delimited with a sapce) is sent, one after the other for processing on the micro-controller.
This command will connect to the serial device ttyUSB0, set the "red from" value to 100, thie "red to" value to 255 and toggle fading of the red LEDs. "red from" and "red to" means the red LEDs will fade from the value 100 to 255 repeatedly. If no arguments are given the program will give you al sit of available serial ports to select from.
./rgb ttyUSB0 rf=100 rt=255 redfade
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.
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.
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 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.
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.
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.