What’s Killing Linux and Software Freedom?

I know many will say “we knew that already” when they read what I’m about to write, but I just came to this realization today. I was reading a blog title “I miss using Linux“. The author was describing some of the reasons he can’t avoid using Windows. That blog is a continuation and actually comprises of my interpretations and expostulation on the previous blog on data synthesis.

There are many good reasons like the ones he offers. Some people want to game, but game companies just don’t make games for Linux because it isn’t popular enough. Others need certain programs that are only available for Windows. Whatever the reasons, it’s not going to be the “year of the Linux Desktop” any time soon, but those people have another option and are Nevada Online Casinos games .

One part that really stood out to me about the post was the reiteration that Photoshop was a main reason for not using Windows. I would actually go so far as to say that the entire creative suite is a major reason more people don’t switch to Linux completely.

Sure, one could possibly run it in a VM but that’s not a good solution. If you need a VM of Windows, why not just run Windows, right? That’s the correct reasoning if you ask me, and I’m a Linux advocate. The problem could be that more people are procrastinating truthfully. They simply don’t want to switch completely or don’t feel comfortable enough in Linux to use it full time. I don’t think this is the prime reason, but for some it could be a factor.

Adobe is the problem, at least in my mind. Adobe is the last non-open company. Microsoft office uses an open document format finally. There is a lot of compatibility with Open Office. Most other programs have decent open source alternatives. Even Photoshop has a decent open source alternative in the Gimp, but some people don’t think it is enough. Adobe has a lock on a lot of the media on the web right now with Flash, even though there are better alternatives to using Flash, most sites use it.

Adobe is holding back Linux. Rather, our dependency on Adobe products is holding back Linux tremendously. There would be a lot more people to adopt Linux if the Creative Suite was available in it. There would be a lot of people adopt Linux is Flash was no longer the defacto standard for media on the web.

Apple has the right idea by not including Flash support on the iPhone. This will help push us away from the closed-standard. I’m for this change.

Browser Extensions For Developers and Internet Marketers

I’m on the fence when it comes to my favorite browser. I’ve recently started using chrome much more, due to some bad performance issues in Firefox. Firefox on my 64-bit Windows 7 installed sits and eats memory. I’ve seen it use nearly 2gb of RAM. This was after it had been open on the computer for a few days, and a restart of the browser fixed the issue. However, I’m not sure why this leak is there. The last time I can remember truly liking Firefox completely was back in the version 1.5 days, and even then there was supposedly a huge memory leak. Back then I didn’t notice a memory leak, but these days I do.

It could be that Firefox utilize memory different, and it may be the new way Windows 7 display memory usage. I still see sluggishness. Thus, my move to Chrome. There area a few different things that could have caused the slowness, such as the added extensions in Firefox. After installing about seven extensions in Chrome, however, I see no performance hit. So, I still suspect that there is an issue with the browser itself. Even with all of these woes, it is still better than using IE. I hate that browser. I don’t necessarily hate using it, but it is difficult to write web sites that work well in it along with all other browser. It’s the odd ball which never works the way I want.

For web development, Javascript is necessary for client-side scripting. However, Javascript is difficult to debug. Luckily, we have the Firebug extension for Firefox. This is the uber-extension for web developers. I’ve used it quite a lot, so much so that it has become a necessity. I probably couldn’t write Javascript without it. There are also other features to this extension, like being able to examine the DOM and such. Internet Explorer has a similar tool set but it’s slow and hard to utilize. I would dare say that there are some IE users who installed Firefox just so they can use Firebug. One setback here is that IE’s Javascript engine has certain nuances that do not readily show up in Firebug. So, while you can debug a majority of javascript errors with Firebug, it will miss certain IE javascript issues.

The next must-have extension for web development is the Firefox Web Developer extension. It gives you a host of options to example page elements and CSS rules within the page itself. This plugin along with Firebug have saved me TONS of time, while working on websites.

SEO is important to not only marketers but web site developers as well. Getting a site online is one thing. Getting it to show up in search results is another. A couple of excellent extensions for examining the search engine optimization of a site are the Firefox SearchStatus extension and the Chrome SEO extension for Chrome. The Chrome SEO extension is great for getting a brief synapsis of your site’s backlinks, pagerank, and indexed pages at various search engines. Neither of these offer a lot of advice for SEO, you’ll need a company that offers Drupal SEO services for that, but they do show some stats to get your started.

These are only a few of the extensions available for Firefox and Chrome. There are many others. They are a good reason to switch from IE. PLEASE DO!

Eclipse issues in Linux Mint

I’ve been wrestling with IDEs and OSs for the past few days, trying to decide which would be best for Javascript and PHP development. I had been using Netbeans. I absolutely love Netbeans, but I found that editing Javascript in it was somewhat lacking. I was having trouble keeping up with my nested anonymous functions and thought it’d be a good time to try out other alternatives.

I bounced around between Linux Mint, Mac OS X, and Windows 7. I find that I would really like to program on my Macbook Pro, but it just doesn’t feel comfortable. There’s something about the keyboard setup or something that just annoys me. It’s more of a problem with my familiarity with the keyboard, I think. At any rate, after messing with Eclipse, Netbeans, and Textmate on my Mac, I decided it was going to be a no-go.

Windows 7 presented a problem in the fact that XAMPP seems to have issues with sessions. They work but almost at random, creating a new session will lock up the entire web server. When you are developing a website which uses Sessions for user logins, that creates a problem. So, I decided it would be in my best interest to use Linux, which seems to be made for programmers, because most programming related things work great in it and the fact that you almost have to be a programmer to get some things to work correctly in it. Though, that is an outdated misconception, but everyone still seems to believe it.

I had been using Linux for most of the development of my new project anyway. So, there was no transition there. I’m using SVN on a server machine so it really didn’t matter which OS or IDE I decided upon for that. They are all pretty universal in their ability to handle SVN. The major exception was Mac OS X which didn’t include the ssh-askpass command needed to tunnel SVN through ssh correctly. I was able to find a shell script that handled the ssh-askpass function, however. Textmate didn’t really work well, either, because it didn’t really have robust SVN integration. It was pretty much just like manual SVN. I also needed separate programs for Diff and Merge. That was lacking and clunky. I was spoiled by Netbeans’ built-in Merge, Diff, SVN, and so forth.

I thought I’d give Aptana a try. It is a PHP developer plugin for Eclipse. It is also available in a standalone package. I had various problems with the standalone version of Aptana so I decided to install Eclipse from the LinuxMint/Ubuntu repositories. Eclipse worked great, and Aptana installed perfectly. However, I needed the SVN tools that are Aptana add-ons. They wouldn’t install. There was a version conflict with the version of Eclipse in the LinuxMint/Ubuntu repositories.

So I decided to install the latest version of Eclipse. I downloaded and ran the latest version and found that there were UI issues. This brings me to the subject of this post. The UI issues were a major roadblock, so I searched for a solution. The problem, I believe, stems from compositing inside Gnome. Unlike Ubuntu, I couldn’t find an easy way to turn off compositing inside LinuxMint. OH, I’m sure I could disable the compositing extension inside the xorg.conf file, but I really wanted a light switch option. The normal way I would handle this is the Fusion Icon. It didn’t seem to work. I also tried disabling effects from the Gnome Appearances menu option. Compositing just wouldn’t turn off that easily.

So here is the solution for Eclipse and Aptana inside Linux Mint.

GDK_NATIVE_WINDOWS=true /opt/eclipse/eclipse

That will work if eclipse is installed in /opt/eclipse, but I just had mine downloaded to my home folder. It doesn’t really matter. You would just change the /opt/eclipse/eclipse to your actual executable path. The key here is to add the GDK_NATIVE_WINDOWS=true before the eclipse command.

I’m about to create a shortcut to do this for me. Now all my buttons will work when I click on them. That’s convenient huh.

Resetting WordPress Passwords Manually

I’ve had to do this for my wife and her mom both, so I thought I would share this with anyone who needs to reset a WordPress password. I personally love WordPress. You can build any type of site with it, not just a blog. If you have created a WordPress site but haven’t visited the admin dashboard in a while, you may have forgotten your password. I thought that WordPress would email you a lost password, but maybe they didn’t put in their correct email address. It could have also been the installation script they used through cPanel. Whichever the case, they couldn’t get into their dashboard and they needed their passwords sent to them.

There’s a very easy way to reset that password through SQL. Whether you are using phpmyadmin or some other SQL client to access your databases, you’ll want to use the following SQL statement to reset your password:

1
UPDATE `wp_users` SET `user_pass`=md5('password1') WHERE `ID`=1;

You can change password1 to whatever you want. I’m amazed that WordPress passwords aren’t stored with more encryption than a simple MD5 hash. It’s secure enough, don’t get me wrong. I’m just surprised that the WordPress developers didn’t opt for more.

Oh well, I hope that helps someone in a pinch.

ExtJS Bug – Form doesn’t submit

ExtJS is a great framework, and I really enjoy using it. There is a bug that I feel more people may happen upon and I hope this post will help them with the solution.

Let me start off by saying that I love the ExtJS framework and it has been a pleasure to learn it over the last few days. It is probably the most professional JavaScript framework I’ve seen, thus the reason I wanted to add it to my latest app. The documentation is very thorough and it’s very easy to learn.

However, I’ve spent most of my day (when not taking care of kids and doing school work) trying to figure out why a simple form I’ve created doesn’t submit. The thing that really had me perplexed is that almost the exact same code worked for another form on another page. It was frustrating because I just knew it was something I was doing wrong.

Perhaps the most frustrating part about it was the fact that it was a bug in the framework itself. From what I’ve since found by researching on their forums, the bug was reported a few versions ago. There’s a work-around and I’ll get to that in a bit, but I want everyone to see the code.

var dbPanel = new Ext.form.FormPanel({
		id     			: 'dbPanel',
		name   			: 'dbPanel',
		height 			: 'auto',
		width  			: 'auto',
		standardSubmit 	        : true,
		layout 			: 'form',
		method 			: 'POST',
	        url    			: 'db_verify.php',
		border			: false,
		bbar			: tb,
		keys			: [{
		     key	: Ext.EventObject.ENTER,
		     fn 	: verifyDB
		}]
});

This is the code that doesn’t work. It’s a basic form and it should POST data to the db_verify.php page. The “standardSubmit : true” sets the form panel to use the old standard submit instead of Ajax. Here is another example that works:

var loginPanel = new Ext.form.FormPanel({
		id			: "loginPanel",
		height		: 'auto',
		width		: 'auto',
		layout		: 'form',
		border 		: false,
		standardSubmit	: true,
		url		: 'login.php',
		method		: 'POST',
		bbar		: tb,
		keys 		: [{
		   	key: Ext.EventObject.ENTER,
			fn : doSubmit
		}]
	});

There’s very little different in these two instances of FormPanel. The only difference I could find was that the first one doesn’t work and the second one does. In fact, I changed just about every option three times or more just to make sure I wasn’t missing anything. Everything I did gave me the same result. The page would refresh to itself and my form data would just disappear.

The eventual fix for the problem is to manually set the DOM action for the form when the handler is fired. So, for the first code listing, my handler went from looking like this:

var verifyDB = function(){
     dbPanel.getForm().submit();
};

To looking like this:

var verifyDB = function(){
    dbPanel.getForm().getEl().dom.action = 'db_verify.php';
    dbPanel.getForm().submit();
};

The first handler worked perfectly well with the other form submit. For some reason, it just seems to randomly decide it isn’t going to work for this scenario. It’s an easy fixed, but when you are trying to learn a new framework it’s not good to deal with a bug like this during your first few days.

Twutils.com

I’ve starting a new website and have almost completed development on the first tool. It’s a site devoted to Twitter tools. I call it Twutils. The first utility is a spam removing tool called Spit Remover. I’ve settled on “Spit” as a good name for Twitter Spam. I’m in the process of moving the site to a new host due to DNS issues on the previous host. A few other ideas I have for Twutils are:
1.) Tweet Scheduler
2.) Follower generator
3.) Unfollow those that don’t follow you (like Huitter.com’s Mutuality.

I’m also planning to keep track of users who are removed with the spit remover. I may use this to show blacklisted spammers. I may generate a list of the most removed spammers, and allow people to remove these people automatically. Or I may just use it to create the biggest spammers list.

Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration

If you’ve seen that error message you’ve probably happened upon a security feature that your shared web hosting provider has enabled. There are a few work-arounds for this error but most require you to have certain privileges on the server that you probably don’t have. Quite frankly, if you are getting these errors you probably don’t have the ability to change these settings yourself.

Rather than try to get the provider to change these settings (let’s face it, they have this enabled for a reason and surely someone else has already tried to get this changed, right?) one can easily get around this with Curl. In most cases, curl will be enabled on the server. So here is the quick and dirty way to get around it:

Create a PHP file and name it anything you want. For the sake of this article we’ll refer to it as curl_functions.php. In this file put the following functions:

<php
function setupMyCurl() {
   $myCurl = curl_init(); 
   $temp = curl_setopt($myCurl, CURLOPT_RETURNTRANSFER, 1);
   return($myCurl);
}
define("myCurl", setupMyCurl());
function curl_get_contents($url) {
   $temp = curl_setopt(myCurl, CURLOPT_URL, $url);
   return(curl_exec(myCurl));
}
?>

Include or require this file. Then, all you have to do is use the curl_get_contents($url) in your code to pull in the xml to a string. Then use the simplexml_load_string() instead of simplexml_load_file(). This will give you the same results but works around the url fopen feature. If you don’t have curl enabled on your host, GET ANOTHER HOST. 🙂

Make Twitter Better

One of the things I like about Twitter, believe it or not, is the simplistic design. There’s not a lot of useless options. There not many things to click on at all really, compared to other sites. There are a few missing items that should be on the site, however. I just recently installed a Firefox extension that accomplishes everything I need.

I’ve found that a lot of the twitter “clients” are lacking. For instance, I can’t easily search and follow people from TweetDeck. I really like to just use the web client. I only thing that I could use on the web interface is a notification of @ replies. Every other option that I found useful in the clients is now available on the web client via Power Twitter Firefox extension. There’s also a few features I wasn’t expecting. For instance, Song.ly is now integrated. I had never tried Song.ly until I installed this extension. I love it.

Check out the extension. It’s worth it if you Tweet much at all.

International Whats-hot-weekly.com

I finished up modifications to whats-hot-weekly.com. There is now a drop-down list which lets the users choose their country. This is all handled with eBay site IDs. Categories are still being stored in a MySQL database locally on the server. This make the menus function much better. I’ve already noticed many people in the UK, Canada, Spain, France, and Australia are using the site. Currently the site is averaging over 100 unique visitors per day. This isn’t great but it’s nice to have even that many people interested in your work.

Really cool online auction idea

At this point, most people have heard of eBay. A high percentage of them have probably signed up for an eBay account and have made a purchase on the online auction site. EBay has been the defacto online auction site for years. Through those years many other auction sites have tried to get some of that market share with little luck. Most just didn’t have the right marketing. After all marketing is a major factor in whether a site succeeds or not. One can have the best site on the internet, and if no one knows anything about it, it’ll never rank well on search engines or become a high traffic site.

Sometimes there are ideas that just can’t be ignored, even if they have suffered from poor marketing. This is especially true for one of the coolest sites I’ve come across recently. It is a great idea and already there are many sites trying to copy the idea. The idea is simple really, but it is ingenious. This site is an auction site that works slightly different. It is possible to win items and end up paying pennies on the dollar for the item’s worth. As an example, a Macbook which normally sells for around $1300 could sale for $200 bucks.

What’s the catch?

Well, the catch is all in the way you bid on the items. It’s more of a competition. It’s actually pretty addictive. Bids are incremented by a certain amount. There are regular auctions and penny auctions. The regular auctions increment by a larger amount, while penny auctions go up a penny every time someone bids. Any time a person bids, it costs them a certain amount of money. I believe the current going rate is around 75 cents per bid. When they bid, the current bid price goes up a certain amount and they become the high bidder. These auctions are also timed, but every time a person bids, it adds a little more time to the auction. So if one waits till the last second to place a bid, hoping to be the last bidder, the time goes up and a bunch of other people jump on board.

Now it doesn’t go on like this indefinitely. There is a permanent end time for auctions as well. This is pretty easy when you understand what’s going on.

It is very possible to get a great deal on something on this site. I’ve seen items go for 10% of the retail cost with the bidder only spending about ten bucks for bids. There are TV’s, game systems, laptops, and many other things that get auctioned there at amazing prices. Check it out here!!