The offical website of Jason Charney and his services
FINALLY! SOME UPDATES! This website is being reconstructed. Some content will go away soon. If you want to see my new stuff, visit my github: https://github.com/jrcharney/.
A long long time ago when I was just a kid with a keyboard and a GeoCities account, I must admit that I participated in one of the many web page faux pas: Using MIDI Music in the background.
Today I know better than to do that with a website, but something happened this weekend. I rediscovered the song that was part of that website. Thanks to Netflix, over the past few days I was watching this old anime called The Slayers. My boredom had reignited a memory this morning when I got to the second season of the series titled Slayers Next. The song "Give a Reason" by Megumi Hayashibara (who for those anime geeks may know her as the Japanese voice actress for the lovely Faye Valentine from Cowboy Bebop which to this day is still popular here in the United States) was one of three MIDI files that I used on my very first website back in 1999. The other two songs, in MIDI format were "Pardon Me" by Incubus and "The Perfect Drug" by Nine Inch Nails.
So what makes this post relevant to a computer programming sense? We'll for starters, if you try playing Midi Files in Chrome, you will get a message saying "Could not load the VLC Multimedia Plugin (compatible Totem 3.0.1)". But why would you want to use VLC (or Totem for that matter) for playing a MIDI file?
At this time, I can't think of how to use today's hack the same way that Revision 3 did to get Festival working. (I mentioned something about that last month, just to let you know.) Perhaps some Internet Detective work will help. On the other hand, there isn't a whole lot of interest so just for the nostalgia, we'll settle on playing MIDI files in the command line.
You will need to have two packages installed: You are going to need the ALSA Utilities Package (alsa-utils) and Timidity++ (timdity). Fortunately for me, these packages are available in the Ubuntu Software Center. Of course using the following command line would be much better.
sudo apt-get install alsa-utils timidity
The ALSA Utilities package contains a program called aplaymidi. If you do not install the timidity package with it, you won't have the port you need to play MIDI files in the command line.
aplaymidi requires a port to play the MIDI file. timidity adds a few more ports that allows you to play music on your computer rather than through a MIDI sequencer device which is more than likely what 14:0 is the port for. Typing aplaymidi -l lists the available devices ALSA can use to play the MIDI file. It should also be noted that timdity runs as a daemon, so it runs in the background.
So that's one more thing you can do on the command line. Perhaps you use it to add some MIDI Music to an old-school side scrolling video game you can write. Or maybe show it off at some Demoscene event.
Either way, I'm happy with the results. And even happier to be reunited with this old song.
I decided to design my own business cards this afternoon.
You didn't really think I'd post an uncesored business card on to my website, did you? Besides, I'm a bit timid about making all my contact information public online, so should you, unless you have a business or an office to contact.
At any rate, I designed these cards using Inkscape, used the logo I degsigned from a while back and put the important stuff that would woo anyone that I would need to impress at a job fair or interview. I wish I could add a small QR Code in the lower right corner that would point to this website for smartphone users, but this looks good for right now.
I'm considering taking the SVG version of my file down to Kinko's in the near future. Hopefully my logo will come out in full detail. The border has the logic rules in it. I'm thinking of also developing a stamp and maybe some mailing labels.
I just felt I sharing this real quickly. Back to work on those scripts!
I little bit of humor that seems to be spot on. BTW, I enclosed it a <figure>, an HTML5 element.
So why doesn't this site appease Internet Explorer users? To be honest, if browsers were anthropomorphized as people, Internet Explorer would be the wimpy kid group who always has some excuse to convince the rest of the group not to participate in some fun activity. Of course, the best example I could come up with would be the boys from Hetalia: Axis Powers. Internet Explorer would be Italy Veneziano. The other characters in the following image (from left to right starting in the middle) Brittan as Mozilla Firefox, America as Google Chrome, Japan as Opera, and Germany as Apple Safari.
Of course, anime-style personification of software is nothing new to Internet culture. The previous decade had the OS-tan girls, a phenomenon that although started in Japan, took flight around the world especially given that Windows ME was a fickle and troublesome as the female character that personified the operating system.
The most popular software personification at this time is the computer generated diva representing Yamaha's Vocaloid 2 music synthesizer software who goes by the name of Hatsune Miku. Creating a humanoid image to this software really help boost the popularity of this software and gained special recognition throughout the web. I have to admit, this song has been one of my favorite songs on Last.FM in the past year. Her popularity managed to earn her a commercial deal with Toyota in the United States last year. A concert featuring her as a hologram projection was also held. This technology is also how back here in America there is now a virtual Tupac Shakur singing "California Love".
This post is starting to get really nerdy. So lets wrap this up so I can post another post this afternoon. I still have those programs to finish up this weekend.
Finally, new.sh is on the verge of going beta! This script is 454 lines of getting things done!
The code is better organized. I've decided to take a page from new_c.sh and apply some of the functionalty for adding single lines to created files. The result is some clean comprehensive code that can produced up to 14 different file types.
The next step in new.sh is code inclusion. new_c.sh already has this ability and it's time new.sh had it to.
It is necessary to remember that new.sh is the file for creating Java, PHP, Perl, Python, and Ruby files. The former two I think I know how to include files for. The latter three should be easy to understand. The whole point of new.sh is to mash together a working template for code that the user can define the skeleton in command line and flesh out in their favorite text editor.
Tomorrow, I hope to up load a new version of new_c.sh that takes some coding methods I learned from new.sh and apply it to new_c.sh.
I'm already excited to start working on adding OpenGL and curses.h to new_c.sh and a new version of Poly.js that includes some SVG style path defintions with a few modifications I look forward to sharing with tomorrow. I'm also psyched about trying some new Brush class methods in Poly.js I wasn't able to demostrate last time. But I think I have the code worked out.
Good things are coming this weekend! I know you're going to like them.
So, a friend of mine posted on reddit the anouncement of Jill.js. More or less, today's post is about how I handle constructive criticism.
One person claimed that in another post I was spreading FUD (Fear Uncertainty and Doubt) about Adobe's Create.js. The truth is that if it walks like a duck, and it talks like a duck, it's a duck. Adobe is a software company after all. Much like Microsoft or Oracle. While I would certainly not mind working for such a company someday, what people forget is that a company like Adobe won't just give out free software, not with out a catch and a three page EULA (End User License Agreement) that most people won't read. It also took Adobe a good two years, around 2005, to rewrite the Adobe Flash plug-in for browsers to accomodate UNIX and Linux users which was really unnecessary because the previous version of the Flash plug-in worked just fine until the released the new version for Windows and Mac and should have been planned out such that an existing version of Flash would handle Flash until the new version was released on all platforms. So if I sound a little biased about Adobe regarding that issue, it is with a good reason. Clearly, some folks at Apple and Google feel the same way as they've been pushing for HTML5 Canvas to replace Flash and integrating their own software to read PDFs without Adobe Reader.
Another person, most likely a troll (who I will speak of later in this post), made a statement about how there was no syntax highlighting in some of the examples on my website. It sounds like an interesting project. One that I would certainly like to develop my own version if I had the time. From what I can tell, there is a bit of XML work involved in that because from my experience I haven't seen such syntax parsing done in CSS. Although this code example posted on the same group looks interesting. As ornery as I seem, I like to develop a lot of things through my own research. If there is something everyone is using, like jQuery, and it is compatible with what I have to work with, I will use it. (Likewise, my lack of interest in using ASP.Net or Active Directory when I have had much success using Linux, PHP, and Apache.)
Finally, someone claimed that I've made one line of code into three lines of code with Jill.js. I assume this is in reference to the code examples I used in the past couple of posts. Because of the currently narrow layout of the site, I broke the code down into smaller parts. But consider this, I didn't make a mountain out of a mole hill. Instead, I've made it possible to make more than one mole hill in the same area! Seriously!
You saw yesterday's post. Without Jill, there would have been no way to post three separate canvas's in the same posts or even in the same webpage for that matter. (Which reminds me, I should look through some of my older posts and modify the canvas code which uses the old method.) Jill make is possible to have multiple instances of canvas code embedded int a webpage. You can't even do that with SVG without some PHP backend converting it into a PNG like on Wikipedia. So, have I made my code obfucated? Not without a good reason. If he had taken the time to notice, he could use one of those lines in his own project several times in the page. And that is why it was important.
Canvas by itself was not very object-oriented. It may have been written in JavaScript, but there is one thing that even my own library couldn't eliminate: having an instance of the context as an argument or an object. In my code, getContext which is initiated commonly in HTML5 Canvas ans a object named ctx is used as an argument. Perhaps the enlightenment as to how to make ctx disappear and just be used in the execution function putIn much like the callback function used for drawing the thing I want to draw hasn't dawned on me yet. What I do know is that it works and it works so much better than it did without Jill tidying up the code.
So how can I prove that Jill makes more sense than Canvas and jQuery separately? How about another programming example.
I wanted to make I more Evangelion like with the theme someone made for Android eariler this year, but since I run "a horrible website" according to Reddit user mplindhout, I don't think I want to share that version just yet. Especially since I can't compete with having the best page in the universe. To "mplindhout", I'm sorry I can't be as talented or as gifted as you. I'm also sorry you don't have a website to show off your "amazing skills", if you had any.
To everyone else, I appreciate constructive criticism. And I appreciate the good and the bad, so as long as the bad isn't some complaint about how I don't have a stylesheet yet that can color-code the code source examples. You can always learn how to read code like a programmer. But that's why I'm here in the first place. To explain how it all works will out using crayons.
At any rate, I'm looking forward to doing some more canvas stuff. I might just scrub Project Evan since events and animation seem to be easy to understand and jQuery makes a good set of syntax. On the other hand, it would be nice to create some text buttons or hot spots inside of canvases rather than just clicking anywhere to make stuff happen.
Good programming is a learning process in which if you don't learn how things work, how will you ever learn to do them on your own.