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/.

January 2, 2012

A Little Chemistry

Could you believe it's been more than a month since my last post? Let us not part ways for so long in the near future.

So what did I do last month? I upgraded my Linux distro. I'm learning about Arduino. I'm thinking of taking up learning Chinese. And I finally understand organic chemistry well enough, that I made these two diagrams representing the four basic nucelic acids attached to deoxyribose sugar.

Deoxyadenosine and Deoxythymidine bonded by hydrogen atoms
Deoxyadenosine and Deoxythymidine bonded by hydrogen atoms
Deoxyguanosine and Deoxycytidine bonded by hydrogen atoms
Deoxyguanosine and Deoxycytidine bonded by hydrogen atoms

These were made with a program called GChemPaint Chemical Structures Editor. It's rediculously buggy!

It is my hope this year to make an income such that I can rebuild my desktop computer such that I can work on more complex molecules. From what I read from websites about organic chemistry on the subject of DNA, the concept is remarkably similar to the study of automata theory in computer science. The nucleic acids form the codon sequences where there is a inital state (Ade-Thy-Gua) and three final states (Thy-Ade-Ade, Thy-Ade-Gua, and Thy-Gua-Ada). (In case you are wondering, Ade is short of Adenine, Thy is short of Thymine, and Gua is short for Guanine.) The idea is very similar to the concept of finte state automata. Your four input nucleic acids (input) can produce twenty amino acids (ouput) on a chain (tape) millons of molecules long! Like a tiny Turing Machine.

I'll probably add this project to the list of side projects I have. I wonder if the folks at Washington University in St. Louis have figured it out yet. It's been a while since there's been a big announcement from the Genome Insitute or event Human Genome Project at Oak Ridge National Laboratory.

November 28, 2011

Structural Changes

Earlier this month I had stated that I don't know Coldfusion or ASP.Net. While I still stand by that, as for some reason I've been told that people lie like hell on their resumes, which doesn't not help everyone else who submit honest resumes.

If you have a copy of my resume, you should know that everything that is written down is the honest truth. I've listed my strengths in HTML (and currently using HTML5 on this site of which plan on using more Canvas elements in the near future), CSS, Javascript, PHP, and Linux. It's been a while since I've rolled my own MySQL database, and in preparation for that I am modifying the structure of this website to be more query based. Hopefully in the near future, I can get the backend of this site set up so that it is easy to use and secure. The frontend, as you can see is beautiful. At least to me it is. I was tempted to switch to a red color scheme, but then realized how eye-burning it is. It still won't hurt to try to make something that is less shocking. I'm still considering developing themes that are yellow, green, violet, and pink. I won't really use them here, but perhaps in some other application.

Yesterday, I had decided to set up the database a combination of Wordpress and Tumblr.

The strength that Wordpress has is its database structure, but everything else is a weakness. Wordpress's administrative interface and page structure is so scattered and over complicated. When I had used it back then, I felt that the page index numbers it was coming up with were random. Collectively, having a category system and a tag system felt like one way or another you weren't going to draw your audience to what you were looking for. Over all it felt like building a trainwreck on top of a junkyard. Spam prevention is possible through the administrative panel, but even if you add the anti-spam widgets and set thing up so that you permit what comments are posted, you're likely to get a deluge of spam comments anyway. (This problem might have something to do with the Apache settings, but touching them is more Senior Web Development territory.)

The strength that Tumblr has is its simplicity. They only use tags. Uploading images in blog posts isn't complicated. There is actually a sense of community and audience. Like Facebook, you can like a post, share posts, and follow blogs. However, the search on many of the blog templates is not designed to search within blogs but within Tumblr. Another flaw with Tumblr's search engine is that you can't search for two or more different keywords. All searches are done to look up exact phrases. For example, when you search on Tumblr for "Abraham Lincoln" your search will pull up all posts that are tagged with "Abraham Lincoln" or contain "Abraham Lincoln", but you will not get any "Abraham" or "Lincoln" searches not even if you use wildcards. Tumblr also does not allow you to reply to posts. Instead their solution is for the blog owner to modify the blog template to include a Disqus form on the post page. On the other hand, Tumblr uses Amazon Web Services to take care of much of their webhosting. So that is pretty cool.

TumblrAdmin
Your average post on Tumblr looks like this.

Tumblr's Dashboard feature is an interesting feature. Here you can look up all the saved search tags and see the latests posts by the people you follow. However, it does become necessary to unfollow people after a while especially when their posts flood your dashboard. However, I won't be needed to develop my own dashboard queue.

The PHP on my website is marvelous, but I need to get over the hump of using my own MySQL database. I can do it, it's just that I'm new at it. But once I get over my hump, you will see some remarkable changes to this site.

November 11, 2011

No! I do not know Coldfusion or ASP.Net!

(UPDATE 2/16/2012: This post was meant to vent my frustrations with a lot of the offers I recieved at the time. I still want this post to stay online as it is the honest opinion for anyone looking for a job at this time who are contacted by recruiters who do not know PHP from ASP. It is not intendex to discourage rec4uiters, just the irrelevant job offers. My appologies if this page is not to your liking.)

I know I let this blog be in limbo for a while, but I assure you this is not an abandoned venture.

Today's subject is aimed at recruiters and employers who have the notion that when you write a resume and list everything that you know, that some how you are leaving out content in the skills section of your resume. While I certainly do not mean to be insulting toward any recruiter or employer who reads this post or my resume, I do wonder whether or not when a recruiter or employer reads a my resume that is two pages long, whether or not they read it completely or if whenever the pull up resumes they just type in "Adobe", "Microsoft", and "Oracle". It feels so impersonal when someone looks up to see if the software brands that your company uses matches their list of brands that they use instead of looking for someone who knows a software language or has experience with using specific software. (Notice, I did not say the word "products"!)

Just because I have experience using Microsoft Word and Excel, it doesn't mean I know Microsoft ASP.Net. Just because I have experience using Adobe Photoshop and Illustrator, it doesn't mean I know Adobe Coldfusion. I wish I had learned how to use Flash. It's not to late to do it. But I really can't run Flash on a 10.4" netbook. I was shocked to actually see the previous owner of this device actually was able to install Microsoft XP, which ran so very slowly and motivated me to swap out the hard drive and install Linux on it last year. But this is beside the point of today's post.

The point is, when someone writes a resume, they are supposed to be honest about what they write in it. If someone who writes in the resume "I played for the Chicago Bears and threw 1000 yards" as part of their work history but has never once listed any of their NCAA Achievements or stated that they played football in high school or college to back up that they actually played for an NFL team, then it doesn't sound very truthful, does it?

So, why is it that when I write on my resume that ever since 1998, I've been writing HTML, majored in Computer Science, and listed the various computer related accomplishments that someone asks me "Do you know Coldfusion?" or "Do you know ASP.Net?" I find myself in a strange predicament. As an accomplished minimalistic computer programmer, who if you don't know I am writing this page using the Vim editor and it is checking my spelling (:set spell) while doing it, and has features like autocomplete and ctags and code-completion and file recovery but is not encased in a obfuscated GUI like many of the mainstream and proprietary development softwares are, feel as though because of my choices in software which is not made by some big corporation except the one that made the operating system, am I being marginalized?

If it is not that, is it because I've been unemployed for more than six months? I mean, why would anyone get the impression that anyone who has been unemployed for so long is not interested in find a job? Of course, I'm interested! But to hear that tone of "you sound like an interesting prospect" change to "oh, you've been out of work for so long therefore we don't like your kind" feels quite discriminating.

If my crime has been being out of work for so long, due to an economic recession in an industry that likes to set up shop in Kansas City, Chicago, and Memphis but not St. Louis, then I'm guilty!

I don't understand why businesses are not attracted to the Gateway City? Well, what would you expect? Sprint, like Verizon, is open to telecommunications innovations. AT&T has a reputation of keeping things like that to themselves unless you pony up an arm and a leg especially if it is for educational or military applications. I can't blame Google for wanting to give free high-speed Internet to a city where a corporation is anti-competitive. I can't even use my Motorola Droid on AT&T's U-verse WiFi, because after about a minute or so, the AT&T-ness kicks in and shuts off access to the device because my service provider is Verizon. (UPDATE 2/15/12: FIXED! It took a long unpleasant phone call where all the other phones using AT&T were down and needed to be put back online ASAP it's finally working again for once.)

This isn't just a problem with a cellphone and Internet Service Provider. History does indicate that AT∧T had, in the past, had been anti-competitive with companies like MCI (which is now part of Verizon). In fact, I was watching a documentary on PBS about a couple of months ago which described one of the reasons for the 1984 divestiture was where MCI's microwave communication system was useful in the state of Colorado, Mountain Bell (an AT&T Bell company) shut off the phone service at MCI so that customers wouldn't leave AT&T for a less expensive long-distance telephone provider. MCI took AT&T to court, then the Department of Justice and the U.S. Supreme Court got involved, and AT&T was divided into smaller "baby bells". However, over the years, AT&T started to merge all the baby bells back into a single entity again. Here in St. Louis, it became clear when Southwestern Bell became SBC then became AT&T again. The phone bills I got from Cingular Wireless were eventually replaced with more expensive bills from AT&T Wireless then eventually AT&T. So I moved on to another provider about a couple of years ago.

So what does all of this have to do with software development? Well, for starters, companies like Microsoft and IBM sell their software to companies the same way AT&T, Verizon, and Sprint sell phone service. However, it is much easier to change telephone or internet service than it is to break out of contract with a software company. Do people use Microsoft because the have to or because everyone is familiar with the brand name?

I've got no problem using Microsoft software. In fact, the best word processing and spreadsheet programs are without question made by those guys in Redmond, Washington. It's the other software that they make that is the problem. Internet Explorer may be part of the Windows Operating System, but it has plenty of security flaws, and unlike Firefox, Chrome, Safari, or Opera, it hasn't joined 2011 yet where HTML5 is now a standard. (Not to mention, it doesn't even render this site's appearance properly!) The same way AT&T was last to catch on to Android (primarily because they didn't want to and they were happily shaking folks down with the iPhone while claiming their system couldn't handle the capacity), Microsoft was last when it came to the catching on to the whole "cloud computing" trend. They were too busy ripping off SuSE Linux's K Destop Environment from Novell. (Look how well that worked out for them with Windows Vista. Biggest flop since Windows ME!)

Yet, just like AT&T, they have plenty of empty office space in a tall office building in the St. Louis area to stroke their egos, but no one to share it.

I would bet that if they weren't tied up in these never-ending software contracts, the companies that are stuck with the software vulnerablities of IIS server and ASP.Net/Visual Basic applications written with Coldfusion would be able to spread their wings a bit and write something in Eclipse or Netbeans or even some real in-house software that they developed with some open source programming lanugage, they would save themselves a ton of money, hire a few more employees, and actually get some work done.

However, there is that majority of people who still claim that open source is for hobbyists or hackers. I say that is not true. And most people really don't like to program as a hobby or are too tired to do it after working at a desk all day. Why should open source be used "outside the office" or "on your own time"?

And why should anyone be turned down for a job because they can use software that can get things done instead the software that they are under contract to use? Software changes all the time. Imagine all the new innovations that are being left untouched because of vendor lock. Google and Apple aren't just making technologies for consumers, but for producers too. No company that is in the business of web development or computer programming should be trapped in a contract with their software provider if the software provider's greatest achievement is Solitaire!

September 30, 2011

Getting It Together

I kinda let this site idle in a fugly construction mess last week. But things are better. That awful gap between the columns is gone. But the migration to putting posts in databases has been much slower than I had anticipated. Mainly because I'm trying to figure out what to do with my side widgets.

I realize as a portfoilio website, there needs to been a emphasis on professionalism. There also needs to be more than one page to make up a website. So for the month of october, I'll set the database part on the side and start working on the Events page.

The Events page will part web application and part widget. By that, when you come to the front page, there will be a smaller calendar with bolded numbers where there is a event on that day. The full version will likely list events either in one-month, one-week, or one-day format. I had developed such a project a few years ago and shortly before Google had released something similar for what is now the Google Calendar. The HTML5 syntax of today will certainly make the new version that I will conjure up look so much better than the one I though up back then.

In terms of widgets. there will be four kinds of widgets. Wide widgets, like this blog, will display things like columns I write. Narrow widgets like the ones on the right will appear whenever wide widgets are used. Full width widgets, like the events calendar, will take the entire width of the screen. And header/footer widgets will be applied in either the header or the footer. The section of the footer with the Amazon widget is a widget inside of widget for coding convienence.

I understand this blog queue is getting quite long, and I intend to correct that by pagenating posts and doing thing like created a widget that shows a short description of a blog post such that the user (you) will need to click on a link to read the rest. I also plan to make another widget that lists recent or related post titles in a bulleted list and integrate RSS syndication.

Again, my reasons for doing this myself rather than using something like Wordpress is to show off my skills as a programmer.

Outside of this website, I am gearing up to play around with some new features that JavaScript has that have piqued my interests by using a data set. And where better to borrow a test data set that from Major League Baseball or some other sports team or league.

Now the folks at the MLB did a great job on their websites integrating all sorts of data stored in an Oracle Database and presenting it in Java Server Pages (JSP). However, I want to make up something that is similar to their system, but more fluid than their ridge system which does not use JavaScript filters like I would like to try out. Originally, I wanted to use only the St. Louis Cardinals as an example set, but then I realized that some of the data coincides with players from other teams. Fortunately, MLB had all their player information for the 2011 regular season stored on a single table, so before the Yankees and the Tigers play each other tonight, I need to get my example set from their website. Another point to make is that the data they use is constantly updated. I'm not really going to do that. For right now, I'd rather make this example run a few INSERT and SELECT statements and worry about updating the data until after the season is over. Alternatively, I could do nothing with the data and just use it as something to play around with whenever someone wants to see my skills in SQL or if the one friend I have who is a big baseball fan wants to give this thing a spin.

I'd like my program to have a little bit more of a computer-terminal feel to it. It's so boring just to point and click all the time.

There's a chatroom on the EFNet IRC network called #hardball where baseball geeks like to converge. One of the features of the chat room is that it has a bot that you can use to call up the score of your favorite baseball team, to information about players, to even when a player's contract is set to expire. The problem with this bot is that it does not take advantage of one of IRC's most hallowed features: colors! However, the folks in that chat room don't like to use colors, which is a shame because using color one of the many advantages of using a UNIX or Linux terminal.

Most IRC scripts that run bot programs are written in either MIRC Script which is used by MIRC or PERL which is used by IRSSI. So, now I have reason to brush up on my PERL again.

Well, that seems to be all the ideas I have to gab about this week. LET'S GO CARDINALS!

September 15, 2011

Two Cool Columns and Navigation

Significant updates over the week. (Though to be honest, some of them were made a few days ago.) This website continues to grown slowly, but steadily. I hope to write up some widgets later today, and finally get that blasted Amazon banner working on this site.

Last week's excellent excursion into the wonderful world of HTML5 Canvas will be redacted from that post and moved to some place that is more friendly for experimentation on this website. A standard system of using canvas elements should be used in the near future so that if I decide to write future javascript examples in separate posts, they won't interfere with each other.

This post that you are reading and the ones to follow and in the past will become part of a blogging widget. I've got a good format for writing posts into this website. (Go ahead a peek at the page source code if you want.) It's a good simple structure which I hope someday will support user comments if I ever get around to it. And it is quite easy to edit. Eventually, I'll refresh my knowelege of MySQL and move much of the meat and potatos to a database when I get around to it.

Web development shouldn't be an excruciating mess, nor should it come packed as part of some software suite if you're just getting started with programming. WordPress seems to make such mountains out of mole hills by doing just that. The result is a tangled mess of PHP classes and an interface where you can't even make changes to themes without editing several pages. Theme settings should be on a single PHP page, especially since you can't have more than one page open at a time when you use the WordPress web interface. MediaWiki and PHPBB are guilty of the same problems even without an interface to edit pages. They all want you to go to header.php and footer.php and sidebar.php and make theme edit changes to each specific part. It's senseless and it can pontentially break everything if you forget to go back to footer.php to close out a edit that was part of header.php.

The entire theme should be modified on a single page and have a base theme to fall back on if the theme you are working on turns into a sloppy trainwreck.

For now, this site does not use themes. In fact, themes are the last thing I want to think about for my site right now. This somewhat minimalistic layout is perfect for setting up a base structure.

I should also compose a UML file describing how this site is structured. It's no different from how most two column sites are structured, so why should I worry if someone borrows the code from this site to use on their site. I think many programmers forget that when their is an option on the browser that allows you to view the source code even if the page has been broken up in to several PHP files. The quilted version of all those little pieces eventually (should) creates an elegant view of what it all looks like as a single page. PHP just exists to make it easier for programmers to not type in the same parts of the website over and over again.

Much about what I know about writing webpages comes from borrowing examples of code from other webpages. Of course, this does not constitue as stealing code. If it were large chunks of someone else's website that I claimed as my own, that would be plagarism. Rather the parts that I used from other pages are small things that I could play around with especially page styles and content features. All of which were tweaked, experimented with, and individualized to reflect my own style that was developed from public examples. Eventually, I developed some of my own ideas that I imagine someone else is also using for their website, like the three-dimmensional look of page borders or the spacing between two columns. These things weren't easily taken from elsewhere. In fact, on some browsers, I would imagine the left and right columns still might not look even enough even after bouncing between the pages that control the look of the main column, the side column, the header, and the cascading style sheet. Thustly, experimenting with code is necessary to make it look just right. But putting the data that arranges these elements to look right (espeically if your PHP code can identify what browser to apply a special case to the style), can be tricky and still makes coding your page with some bits of code from another page legitimately yours and sharable with others. (I mean, that is what the Internet is. A PUBLIC network.) Keeping data private on this Internet is a bit more tricky and requires greater ingenuity.

But enough about that. It's time to apply some changes!

FOLLOW UP:Good News, Everyone! You are now reading this text as you would if it was said by Dr. Farnsworth from Futurama. Better news however is that I finally got the Amazon widget working. (PLEASE BUY SOMETHING USING IT!)

Secondly, this blog entry, along with all the others should be integrated into an SQL database soon.

For now, I think the best way to describe a simple blogging application would be to describe in just two tables.

A simple blogging application
A simple blogging application

This diagram describes a simple blogging application. Notice there are no fields for comments, tags, or categories. A user record is created by a user to ad himself or herself to the database so that they can post a blog. Since it is just me, I'll know that all the blog posts that I make are mine. I guess I could use that last field in the user table to allow if others may blog on this site. (My current answer is "no".) Eventually, I'll open the site up to a few more people, adapt this model to eventually include all the frilly stuff.

But what about files? A great way to catch readers attention is to add visual elements. It's sort of why blogging sites like Tumblr are so popular. (That and they have their own mobile app, which is very nice. I'll eventually get around to making my own in the near future.)

What I'd like to figure out in the near future is if it is possible to store images on databases. It seems possible, but I'd rather have my files stored in a regular directory. But if I wanted to develop a photo album site, would I need to store the files on the database or have an entry in the database pointing toward where the file is stored on the server? For now, the latter should do just fine, and it retains the two-table diagram I use.

I intend on elaborating in on this process later. It doesn't need to be perfect right now. It just has to work.

Tags

Under Construction