Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Monday, December 31, 2018

2018

            Another year has come and gone. Can you believe that I started this blog back in 2013, and it’s still here six years later? Six whole years of a new blog every week – plus the bonus stories of my D&D games, for those who read them. I never thought I could keep it going this long.

            While 2018 may not have been the best year globally, it was a pretty good one for me. I mean, for starters, we didn’t have any rats in the house, which was fantastic. Aside from that, though, it seemed to be a year of growth and change.

            One of the biggest changes is that this was the first year since it started Ringcrafts, my chainmaille business, didn’t attend any conventions or festivals. While we were sad to miss out on the events and seeing the friends we made there, we stand by the decision we made – with the increased success of Colleen’s Green Door Life Coaching, there was no way she could commit to the shows, and the set-up and tear-down of the shows couldn’t be done by me alone. Apart from freeing up a great deal of time, the lack of shows has also greatly reduced stress, making for a more relaxed year.

            For me, that extra time has been divided between a number of enterprises. The first, and by far most obvious of those, is Dungeons & Dragons. Last November, I switched from playing D&D weekly at the Devil’s Bench to running it, and I’m keeping a record of the ongoing adventure. That campaign has been running for over a year now, and has also led to me being invited to several other games. Not only that, but come the New Year, I’ll be starting a second campaign at the Bench! Crazy, I know.

            Apart from that, I’m still teaching myself computer programming and steadily advancing my skills. It’s both fun and useful, and I’m slowly understanding more about how these machines work (they could have run by magic, for all I knew). The stories I could tell you... but I won’t, because I know that if you’re as interested in the subject as I am, you’ll go and learn for yourself! (It’s easier than you think!)

            My writing projects, on the other hand, have slowed down drastically. I’m still working on them, of course, but the pace has slowed to a crawl. Why is that, you ask? I really don’t know. My best guess is that with all the creative energy I’m pouring into D&D (and the time spent recording the story) and the brainpower being absorbed by coding, my mind just doesn’t have enough juice left for my previous writing productivity. That’s alright with me, though, because I’m still quite happy with my other projects.

            Over the summer, I discovered what promises to be an amazing game, and got involved with a community awaiting its arrival. I could talk your ear off about it, but I’ll spare you by simply saying go check out Chronicles of Elyria – you won’t regret it. Your wallet might, if you get obsessed with the game, but you won’t.

            Right now, the most interesting thing is to look back over the year and see what I can best describe as a steady improvement in life. I couldn’t point at specific things and say, “That! That is better now!” but, when viewed as a whole, the world (at least my little corner of it) is just a little better than it was before, with promises of a continuing trend.

            Now it’s time to look forwards into 2019. As with all years, it’s certain to have its ups and downs, but I have high hopes for it.


            To you and yours, I wish a happy New Year. May it be full of joy and wonder, empty of sorrow, and an experience worth remembering.





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.




Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, July 30, 2018

Balanced Learning

            As I’ve been progressing through learning to code, I’ve been working my way through a lot of tutorials. The trouble with tutorials is that, while they’re great for showing you how to do certain things, a lot of your time is spent following along and just copying the work you’re already being shown. Yes, you’re usually being told why you’re doing each of the steps, but when your goal is learning, how do you know if you’re actually retaining that information?

            It’s a challenging prospect, especially if you pick things up fairly quickly, to figure out if you’re actually learning. Being self-taught, there (usually) aren’t any tests to take, so I have to find a way to measure my own success. So, the first method I came up with for proving to myself I was actually learning was to skip ahead of the tutorial. I’d pause in the middle of an instruction to finish writing the code the way I though it should be – it was very rewarding when I got it right, and when it was wrong I felt I’d learned more – because I now had a comparison of two different ways of approaching a problem, and that gave me more information than simply being told how to do it right.

            More recently, I moved on to playing with designing some of my own projects. This is very challenging because, unlike tutorials, there’s nothing there to teach the right way to do things, and unlike with proper tests, there’s no way of knowing if you even have the skills to accomplish what you want. I knew this going in, but I found one additional unexpected challenge – my own desire to learn.

            The important thing to know about programming is that there is a lot of code that has already been written – either built into the language, or that other people have written for their own projects. Just about anything you want to do, someone has either done, or has done something similar enough that you can make minor changes to their code to make it work.

            But, I want to learn and prove to myself that I can figure out how to solve the problems on my own. Yet, there’s no reason I should re-invent the wheel, especially when it’s already built into the language, just so I can say I did it. On the other hand, it’s an excellent exercise for testing my capabilities.


            In the end, it comes down to finding a balance between using what’s available and writing my own functionalities. The important part, after all, is getting the code effectively and efficiently written – and it’s just as important to learn how to look up code for things I don’t know how to do as it is to learn how to do it myself.





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.



Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, May 28, 2018

Journey Through Code

            Around a year and a half ago, I decided to take a shot at teaching myself programming. It was a decision a long time in coming, and something I hadn’t attempted since I was 16 or so – when the resources I found weren’t very good, and I quickly gave up on. However, I’ve always had a vague interest in programming – with a slight lean towards making video games – and I wanted to figure out if it was something I could do.

            So, I did some research into various coding languages and landed on a wonderful website for teaching C++, which is a low-level programming language (which means it provides very basic functionality, making more work for the programmer, but also giving far more flexibility and control over the program). Being a low-level language, that made it harder to learn, but it also meant I was being taught exactly how everything worked – something important for someone like me, who is very curious and wants to understand how all the pieces fit together.

            I was delighted to find that, not only did I take well to programming, but I thoroughly enjoyed it as well. The ways of communicating instructions to computers meshed with my own logical way of thinking so well that I felt I was made for this. However, the lessons only took me so far – and they stopped without teaching me what I really wanted to know, which was how to make a Graphic User Interfaces – basically, all the stuff people see on their displays and can interact with, rather than needing to type in specific instructions.

            Some research taught me that these GUIs are extremely complicated to create, ad, as such, most programmers use pre-designed systems for designing them. This was disappointing for me, but I continued on with my learning experience. A random ad that had noticed how much programming research I was doing brought me to a site that offered me some free lessons in another language, Python, for the purposes of data science. I took to this new, higher-level programming language fairly quickly and easily, finding that different programming languages function in essentially the same way – you just need to learn the new keywords and syntax.

Then my father-in-law gave me a Raspberry Pi – a small computer designed for teaching programming and other computer sciences. This also had some functionalities that taught Python, including a built-in GUI system. I played around and learned with it for quite a while, but, again I felt limited. Then I came across code.org, which provided an excellent course in both computer science and coding with JavaScript – a higher-level programming language that is often used for web programming. The lessons also included an app-building program, which was great to learn with.

            I was coming to the end of those lessons earlier this year when something I’d been waiting for happened. Magic Leap released their standard developer kit. For those who haven’t been following my interest in Magic Leap, this is an augmented reality headset that’s being developed. Rather than forcing you to have a screen in front of you, it allows you to bring put interactive digital objects into the world around you. This can range from digital pets that wander around the room, to work screens you can place wherever you want and carry around with you, to... well, almost anything, really! I’ve been following the progression of this product for years, since I discovered it, and my interest in all the possibilities it offers was part of what resparked my interest in programming. And, while the product itself isn’t set to be released until later this year, they had now released everything needed to star programming applications for it – and I was now at least partially competent at programming.

            Needless to say, I immediately signed up, downloaded what was needed, agreed to all the non-disclosure and other agreements related to it (which, yes, I actually read), and happily launched it. The functionality I saw was really cool and exciting, but I also learned of another step I needed to take – this new technology was being combined with game-engines – programs that make it easier to build and create video games. It wasn’t necessary to use one of them, but it was strongly encouraged and would make life easier.

            And that’s what brought me to Unity, a system I was aware of because I’d played games made with it before, and that was, in fact, already on my computer because I’d considered learning it before. However, as excited as I was about learning how to work with Unity and Magic Leap, I had to hold myself back until I completed my code.org lessons – after all, what’s the point of learning if I’m just going to skip the last, and often most important lessons, just to move on to the newest, most exciting thing?

            And I finished those lessons this week. Now I’ve finally moved on to working with Unity, and I’m loving it! I’ve already made my first little game. It isn’t much – just a ball that you can roll around to collect floating boxes – but I made it myself! And while I did have a tutorial through the whole thing, the most important part to me is that I actually understood at least 90% of what I was doing – including writing code in C#, which appears to be the next language being added to my coding repertoire.


            So that’s my programming journey to date, and it’s very exciting. Where will it go next? Who can say? But you may eventually be seeing little games I’ve made, which will be fun, and when the Magic Leap finally comes out the augmented reality world won’t know what hit it (although, in all fairness, this could end up being because I won’t have learned enough by then and I won’t be sensible enough to let that stand in my way).





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.



Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, March 19, 2018

Learn to Code

            Today I want to tell you about a wonderful resource I came across for learning how to program: code.org . As those of you who are regulars around here know, I’ve been teaching myself to code for a little over a year now – and it’s been going well, with the one hiccup that I eventually run out of material on the website I’m learning from, and have to find another.

            Then a hashtag caught my attention on Twitter that was something about an hour of code. I did some research, and discovered that it was part of a movement for encouraging students to learn programming. I was enthralled, so I looked into it some more and found my way to this website that offered tons of lessons on coding – all for free. And so, my education continued.

            As technology becomes more and more prominent in the world, it’s becoming more important for people to understand how it works. Sure, it does what we want it to (at least, most of the time), but how does the technology actually accomplish this? Even a rudimentary understanding of coding is helpful in understanding what’s going on behind the screen, making it easier to deal with those infuriating times when the technology just won’t work properly.


            So, why not pop by code.org and learn a little about programming? Not only is it extremely good knowledge to have, but it’s fun, too! And it isn’t nearly as hard as you think. Really! Anyone can code.





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.




Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, January 01, 2018

2017

            Egadz, is it that time again already? The years certainly seem to be getting faster as they rush past. And what an eventful year it’s been.

            The year started off with rats, then went on to form new friendships, have lots of Dungeons & Dragons (including a 12 hour marathon for Cystic Fibrosis), and drew to an exciting close as I started a YouTube channel.

            Alongside all of that, I started a project – well, more of a system of goals, really – at the beginning of last year, and it has lasted all the way until now. While I haven’t mentioned it before, I’ve hinted at parts of it.

            Essentially, I noticed that the best way to get myself to do something is to do it every single day. It’s part challenge and part... well, part that once I get on a streak, I really don’t want to break it. For example, I have written every single day for coming up of seven years now. Imagine how horrible it would be if I missed a day and had to start over again!

            And now I’ve expanded that list. Since the beginning of last year, I have also read and exercised every day. On top of that, I’ve also worked every day on learning two new skills: drawing and coding – both with fair success. And I’ve been practicing piano as well, which more along the lines of continuing learning a skill I’d given up on several years ago (because I’d never worked hard enough at it. To be fair, this one I didn’t do every day, but only because a piano wasn’t available on my vacation).

            To keep track of all of this, I’ve made a spreadsheet with Google Sheets with little boxes that I check off every day when I complete a task. I even have a colour-code for “rating” how well I felt I performed on that task for the day. Pretty neat, I think, and overall a huge success! So, as a New Year’s gift to all those out there seeking to set goals for 2018, I’m giving you this idea, that you might do with it as you see fit.


            With that, I wish you all a Happy New Year! May this one be better than the last.





Check out my YouTube channel where I tell the stories of my D&D campaigns.

Click here to find the charity anthology containing a couple of my short stories.




Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, September 04, 2017

A Slice of Raspberry Pi

            I have a new toy. Upon hearing me talk about learning to code, my father-in-law recalled a system he’d had experience with – a computer designed for teaching code. And so, he decided to get me one. That’s how I came to own a Raspberry Pi.

            This is a computer roughly the size of a credit card, and it comes with all kinds of neat features. As I’ve had it for less than a week, I haven’t had much chance to explore them all yet. However, one program has particularly captured my attention: Sonic Pi.

            Sonic Pi is a system designed to teach coding through music. It sounds crazy, I know, but it’s a ton of fun. You create music by writing code and, before long, you’ve developed two new skills. You don’t even notice you’re being taught code – the technical jargon is left out, and it’s incredibly easy to follow. Of course, since I went into it with some programming knowledge, it’s been even easier to work through the tutorial.

            Now, on the surface, it might seem like a lot of effort to code music – after all, there are programs that you can just plug notes into to do that. And you’d be right, if you just wanted something to convert sheet music into sound. However, Sonic Pi is intended to create music from scratch, and quickly, allowing you to quickly create music that you may not even know what it’ll sound like until you hit play. And if it doesn’t sound good? You can quickly alter it to sound different. You don’t even need a background in music.

            I think the coolest thing about Sonic Pi is that its creator, Sam Aaron, actually performs live with it. He goes on a stage, types some code to create some music, and builds on it, all in front of a live audience. He’s turned programming into a musical instrument. I think that’s amazing.


            Anyway, I still have a long way to go before I’m comfortable using Sonic Pi to perform on stage, so I’d best get back to it. I’m sure you’ll be hearing more about it – and my Raspberry Pi – in the future, once I have more time to explore and play.




Click here to find the charity anthology containing a couple of my short stories.



Also, make sure you check out my wife's blog and her website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.

Monday, January 16, 2017

Language and Code

            So, back in the fall I decided I wanted to learn programming. It wasn’t the first time I decided this – I’ve long had an interest in making my own video games and such – but this time I actually went ahead and did it.

            I started with a few free phone apps, but quickly came across a slight problem – most of the apps were teaching me a programming language without really explain how to code. It all seemed to assume I had a pre-existing knowledge of coding and programming terminology and, as such, I had to extrapolate a lot of information from context.

            When I came to the end of the free lessons in the best of these apps (it didn’t even tell me which programming language I was learning – I believe it was either Java or Javascript), I decided to look for something that taught a bit better. To refine my search, I decided to look for a specific language tutorial rather than casting my line out and seeing what I caught – my thought being that if I could find something that taught well enough, the terminology and skills could transfer to other programming languages.

            I decided to lean C programming, as my research revealed it to be one of the core programming languages. My search soon popped up with this site for C++, an upgraded form of C. Within the first few lessons, I knew I’d come to the right place. Rather than just telling me how to code, it goes into detail about how programming works, so I actually understand what I’m being taught to do. There’s even a review from a university professor saying this free online textbook is the best programming textbook he’s ever seen.

            So, now I’m buzzing along, learning to code and loving it – it comes naturally to me and feels like one of the things my brain was designed for. I’m not very advanced yet, mind you, but I’m getting there and making a list of programs to write once I have the skill.

            For now, though, I thought I’d share with you one of the things I find the most interesting about programming. It’s one of the things that inspired the thought process of, oh, three blog posts ago – how everything is broken into smaller pieces.

            You see, a programming language is just that – a language. It has certain words you use to combine together that tell the computer to do something. A line of code is like a sentence – only it ends with a semi-colon rather than a period. Code is broken into paragraphs called functions that look something like this:

Type of function and its name()
{
            Lines of code that give the computer its instructions;
            Just for appearances, we should have multiple lines;
            After all, a single sentence paragraph is boring;
            Also, there are usually more numbers;
}

            A program as made up of a bunch of functions (among other things) and they work together through logical progressions to make whatever the program is for happen. Just like how words, sentences and paragraphs fit together to tell a story.


            It makes so much sense, yet it never occurred to me that that was how it would work. When you think about it, the familiar structure makes it easier for programmers learn the new language. Plus, as with everything else in life, it means that if something is too big to accomplish, it can be done by breaking it down into smaller, more manageable, pieces.





Click here to find the charity anthology containing a couple of my short stories.




Also, make sure you check out my wife's blog and her life coaching website.


If there's any subject you'd like to see me ramble on about, feel free to leave a comment asking me to do so.