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
It has been a little while since my last blog post, and I have nothing to talk about.
I am stuck in a torrent of nothingness. Nothing excites me, nothing is making me happy. I am not progressing my skills in programming, nor am I progressing through school. Worse yet, I have been unable to maintain any form of 'skill' in counter strike. I cannot make the simpliest of kills - my aim is very off, my spray control is down-right embarassing and I am soon going to derank.
What does it take to be happy? Who knows, I certainly don't.
Maybe, just maybe I need to leave my computer for a little while and have some form of life experience - but that isn't going to happen. So here's to another week of mundane day-in-the-life animes
desu and boredom.
A new item has found its way onto the side navigation bar of my website. Under the label "CS:GO statistics" you will find a page full of information taken from public Steam APIs, specifically that of Counter Strike Global Offensive. I have created a dynamic way to retrieve users statistics, all that is needed is their public Steam ID. I created this page to allow myself to compare my own statistics to that of my close gaming friends. It is ugly, but does the trick.
You can find the project on GitHub here.
Micro USB Digispark Pro issues and how I solved them
EDIT: It seems communication via USB is possible via this library. I am as happy as ever!
EDIT: I shorted the board and it is dead, I give up on electronics.
Today I received a recent, off-the-whim Ebay purchase - a Digispark Pro microprocessor. The product was cheap and to be honest I kind of expected it to be a fake/remake (and to be honest I can't tell if it is). The one I purchased can be found here.
Like with everything in life I did zero research and happily accepted what the listing described to me - what a stupid mistake. I won't go into why it isn't what I expected, however, I can happily say THIS BOARD DOES NOT SUPPORT SERIAL COMMUNICATION! Be warned, don't learn the hard way and waste five dollars. (I bought this product for serial communication in a project, that to me is hilarious)
For once, however this post isn't about bitching, instead, it is how I managed to get code uploaded to this board via the Arduino IDE on a Linux system.
I am running a 64bit Arch Linux installation - this shouldn't really matter, however. If your problem is with Windows, I can't help you.
The first issue I encountered and the solution I found:
I can't find the board in the serial port list and dmesg gives me an output simmilar to this:
[369166.755711] usb 2-1.8: device not accepting address 87, error -32
[369166.755890] usb 2-1-port8: unable to enumerate USB device
When I encountered this error I had tried many things including changing USB port, micro USB cable and using another Linux system the result however, on each attempt was the same. It just didn't seem like it was working.
Now, the answer to this is not simple, and I won't be explaining it, but let it be known, this device does not appear as a standard ttyUSB device when in use. So, how do you upload code? Well, for five seconds upon initial USB connection your computer and thus the program used to upload code (more on this soon) can communicate with the board for a short ammount of time. I have found supposed libraries that allow you to communicate with the board via serial during use, however I have not tested nor used them and can't give an opinion on the subject. (see this for more information)
So, how do I fix the errors? You don't, I guess, it is supposed to do that, and even now, once I managed to get code running on the boad, the same errors occur. (probably due to this board not being meant to be connected via USB for anything more than code upload)
Great, we now know that we are not meant to see this board in our serial list and that dmesg errors are normal, but how do I upload code to the board?
Be warned, the fun starts now and I suggest you have some command line knowledge before continuing.
Now, the first thing that needs to be done is to set your Arduino IDE up to use the Digistump package that includes the piece of software that is the centre of this post, micronucleus.
You must at this point follow the tutorial here in its entirety!
If, after you follow the tutorial linked above you are able to upload code to your board without a hitch, great! You don't need to read on, go enjoy your new microprocessor.
however, if at this point the Arduino IDE spits out the following:
Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device. Updates may be available.
Device reports version as: 2.2
You have a little work to do yet! But don't fret, the solution is simple.
It seems the version of the Micronucleus bootloader on Digispark boards (in my case at least) is newer than what comes with the Arduino software you installed earlier in this tutorial. To fix this issue, we just need to replace it with a newer version!
I'm going to go through the steps assuming you know what the commands do, if not, why are you playing with a microcontrller on Linux anyway?
First, we will make a directory in which we will install and compile the newer version of Micronucleus.
Next we will clone the Github repository of the project. I assume you have Git installed, if not, Google is your friend.
Next we will compile the code into a binary that will replace the version in use now. I also assume you have development libraries installed.
git clone https://github.com/micronucleus/micronucleus/
Now the new version of Micronucleus is compiled and ready to be switched with the current version in use by the Arduino IDE. (your directory structure may differ sightly)
#backup the old micronucleus binary just in case we need it later
Now that an up to date version of Micronucleus is installed you should now be able to upload code to your Digispark microcontroller - well, I could at least!
mv ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus_old
#copy our new compiled binary to replace the one we just backed up
cp ~/compiled/micronucleus/micronucleus-master/commandline/micronucleus ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus
At this point I shall also warn you that I only managed to get Micronucleus running correctly if I opened the Arduino IDE as root, now, I suspect there is a solution for that out there, but I am yet to come accross it.
My experience using the Digispark pro microcontroller spans over a few hours as I received the product earlier today, but I have learnt a lot, and can hopefully help someone else one day.