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/.
Programming is such an art at times (which may explain why I'm a starving artist!)
August is the time for Job Fairs. So to anyone who I've met recently and shared a resume with, welcome to my website.
Today's flavor of the day is HTML5 Canvas. I've spent most of the day whipping up some killer HTML5 and JavaScript.
If you recall one of my previous projects Jill, the jQuery Illustrator. Jill makes using HTML5 Canvas easy. A new version of Jill is available. Today, I have a new JavaScript project called Poly which handles polygons when used with Jill. These files along with the source for a couple of demonstration pages will be listed at the end of this page.
It is remarkable how well HTML5 Canvas can handle so many objects. One of my two examples generates what could possibly be millions of hexagons for a color hexagon grid I was working on today. Even on my small netbook, the fill processed without cramping up too many resources. On a much smaller scale, I generated a smaller color hexagon grid.
One of the things I noticed is that when did this, for the most part I own used two color elements at the same time. It sort of reminded me of partial differential equations. I am quite interested in learning what the common equation the three code sections I had when I drew the hexagon have in common.
At any rate, I feel like I have created something beautiful and functional. I have interest in integrating the hexagon functions in the next version of Poly. They could be useful in created two-dimensional isometric drawings, a method of drawing that draftsmen (both traditional and computer-aided) have used for decades to create the illusion of a three dimensional perspective in a two dimensional medium.
I could try to whip up a program that could draw things in 3D but doing so requires a greater amount of time, effort, and especially computer hardware.
My next post may contain a new version of the Polygon Library and a couple of math things I want to try out.
If you used the previous version of this script you probably noticed there were a few bugs in the rapid file generation featueres. Version 2.4a should fix this.
I'm still trying to wrap my head around how to use Git. Wheter I can set the Git server up here at the website or if I need to do it on my netbook. I really think it should be the latter especially since the server is always on but my netbook is on for a few hours each day.
Now on to other developments that have been going on.
I'm finally getting back into Perl programming for the purpose of developing scripts that can be used with IRSSI.
I like using colors in my programs. It is a major advantage of writing programs on Linux and other terminal systems. I've never been able to do it MS-DOS back when I used to use Window as my operating system. Thusly, programming in C, C++, Perl, Bash, Python, PHP, Ruby, and other languages seems to be more enjoyable and intuitive on Linux, UNIX, BSD, and Mac OSX.
The first thing I did was write a bash script colors.sh. Now if these colors don't look like they are in the order of a regular terimal, you are correct. That's because I went back and wrote the program to look as it would when I ran colors.pl inside of IRSSI by using /exec perl colors.pl inside a dummy IRSSI session that wasn't connected to any network.
Of course, I initially wrote colors.sh about a year ago. More recently, I've been playing around with Perl. The purpose was to test out writing a color coded script that can be translated into some sort of ASCII art later on. It turns out, this will only run when inside of a Perl-based environment like IRSSI.
Finally, I wrote this program again in C++. The colors program (compiled from colors.cpp) runs significantly faster than colors.sh
Now, it is important to note that I needed to test these out in a termial where the colors scheme hadn't been altered by the vender. (**cough**Ubnuntu**cough**). So I recently installed urxvt. urxtv is a termnal designed for the AfterStep user interface, clames to be quite configurable. I plan to fool around with it this weekend and hopefully use that as a replacement to the Gnome terminal. So far it seems to support everything I need working on projects within the terminal.
I look forward to sharing more programs with colors and making some pretty cool scripts for IRSSI that make using Internet Relay Chat such a joy.
I'm gunning to figure out how to get Java working as any good computer programmer knows, graphical user interaces are so unnecessary and can't compete with setting up vim in such a way to support code completion and all sorts of other goodies. I'm hoping to share with you how to do all that cool stuff between now and the end of the year.
UPDATE: From now on I'm just going to post a list of the new files I've been working on at the end of each post. It will make my blog process much easier.
It is with much elation that I release new_c.sh version 2.3 alpha
You may be wondering, what happened to version 1? Version 1 wasn't as nice. So I made a new version with all sorts of radical changes. That was version 2.0. It wasn't until version 2.1 I realized I forgot the linker. And in version 2.2 I added the debugger and mades the code more dynamic. Version 2.3 corrects several bugs that we're working and makes some changes to the quick compile syntax. Most of the program is still in the alpha phase as some parts have been untested yet but I have confidence that the code should work.
Version 3 promises to have some really cool features like class declaration.
At over 500 lines of code, this bash script is just about ready for prime time.
Features of this program include an all-in-one solution for writing, compiling, archiving, linking, and debugging code. You can add include files when you execute the write function and this script inserts it. All you have to do is open Vim and fill out the more important parts. I've just elimitated common repetitive tasks. All you need to do is write your program!
I'd really like to add features for OpenGL in the near future.
This is a project that has been two months in the making. It would have been here sooner but my non-computer-programmer life wanted me to do other things.
It is likely in the future, I will host this project onto github or sourceforge given the changes that are made often to this file.
I'd also like to include a widget indicating the latest and stable releases of this program.
In case anyone asks "Why doesn't it include __insert_really_intricate_thing_here__, it's because I designed this to serve mostly C/C++ programmers who have been writing code for about a few years. It doesn't need all that other stuff that makes the man files for gcc/g++ tens, maybe hundreds, of pages long. It's designed for rapid compilation. It's the program I wish I had 10 years ago when I was starting out with C++.
In the meantime, I'm back on the job market. If you like this program, send me a job offer (locally!) and I'll send you a resume.
Finally! I fixed the TODO widget. Asside from needing to ajust the stylesheet for subtasks, this widget works now, and it will allow me to pursue other XML projects on this website in the near future. Projects/Porfolio section of this site could really use it.
It also turns out if you want to jQuery to apply changes after you've created or append a new element, you can't tell the new element todo anything until the entire page is rendered. Not even defering a <script> element to tell the computer to process any modifications after the page is rendered will convince the computer to do it. You'll have to do it manually afterwards, or maybe even create a cookie with some element settings to save to activate before hand. I'm still a bit new to jQuery, but I'm learning a lot about it.
I also figured out how jQuery modifies elements inside an <iframe>. As you see from looking through the heriarchy of an <iframe>, the parent page is separated from the child page by a #document, which can't be touch no matter what you do. There are a few things you can do that don't use jQuery and vary from browser to browser. But in the end, using
is your best bet for doing something. the_iframe can be the <iframe>'s id or class or the element's nameitself, and the item_in_the_iframe can be an element from the page inside the <iframe>.
Second item on the agenda today, the Amazon widget is back. For now, I'll use this to list the various products used in various projects like the one yesterday. I'm still trying to figure out how to get the footer to show up at the end of the contents section of this blog wich contains both columns. It looks fine when my blog is in page mode, but in article mode, it looks terrible. This is an issue I intend to address and should be fixed in the near future.
In the near future, I plan to expand my project to include a Roku Streaming Player. Let's face it, Netflix and Last.FM are the new CableTV and radio station. YOU control the content. YOU decide what to play. You don't sit through these sly little 10 minute commercial gaps for some micro-infomercial. (Case in point, any NBC/Comcast network!) No commericals, and if there are commerical, you can skip through them (except on services like Hulu). Interactive TV doesn't have to be expensive, as I will soon point out.
All you need is the right components to make things happen. Often these components have to be ordered online because for one reason or another, your local retail store will not have it or have something in your budget.
To end today's post, I have some very strong thoughts about the state of the media. As much as I'd prefere to keep this blog as objective as possible, the fact that I've actually committed to these couple of projects demands a good reason.
In its current state, television caters to advertisers, corporations, and people with money. Which is quite sad as even public access channels have served less public access and more paid programming. With video now an integral part of the Internet, everyone gets a chance to express themselves rather than just a few corporate sponsors. Today's video is an example of that and why it is so important for everyone to express their ideas rather than just a few talking heads.
Radio is just as bad. Instead of discovering new music, listeners are limited to a short playlist. There is always that set of three or four songs that gets played over and over. Making matters worse is all the radio stations that are on the FM side that are switching to Conservative Talk Radio (unless you live in Minnesota, it's almost always Right-leaning Politics), Sports Talk (which is the only other thing that happens on Conservative Talk Radio), or Christian Music with Hard Right Talk Shows. The last one is a real kill joy due to the fact that prior to switching to that format, the radio station played all classical music. It should also be noted, that in the St. Louis market, the owners of "Joy Radio" simulcast on THREE frequencies. This has inspired me to turn to Internet broadcasts for entertainment and information.
On election years, it is generally the politicians that have the most money who have accepted donations from some very wealthy backers who pay for their advertising. As if the general public won't know any better and won't google who they really are and what they have done in the past that contradict there campaign of being a "job creator" or "manufacturer of jobs". I spent five good years of my life in a terrible position because these folks spent more time lobbying in Congress than they did calling up people for job interviews. It is an issue that I just couldn't bear to censor from my generally objective blog and it is far too important to ignore given the limited choices we have for representation in this country.
I'm happy to state that I have a job again. It's not the job I want. It doesn't offer the hours I need. But at least I'm getting paid to do something and as one of my friends said as I was riding home from work on my bike "It is a step forward."
I hope to make a lot more steps forward in the coming months. It hurts to go back or be stuck in the doldrums. We only have have a short time to live in this world and such vast potential we can offer under the right set of conditions.
There is no going back. Only forward at this point. We can keep beating a dead horse or we can move forward and make a difference.