Welcome to Astroblahhh Desktop v0.3!

Astroblahhh Desktop v0.3 (or ABDesktop for short) is software I, Apollia of Astroblahhh.Com, wrote mainly in PHP, with a bit of JavaScript. ABDesktop also uses a MySQL database.

So far, ABDesktop only contains the Astroblahhh Link Organizer software, but it will someday include some file organizer software, etc.


You are totally free to use and modify Astroblahhh Desktop and the Astroblahhh Links Organizer for any purpose, even commercial purposes, without even asking permission or paying me anything. Though of course, I joyously welcome purchases of any item or service I have for sale on my website or in Second Life, or donations and microdonations of literally any size.

By the way, here's an excellent essay by Richard Stallman on software and freedom: Why Software Should Be Free.

As for why I'm releasing ABDesktop into the public domain, rather than under "copyleft" - even "copyleft" still has too many darn rules for my tastes. I have a strong aversion to legal documents and how people are forced to waste way too much time on dealing with legal nonsense, and the GNU General Public License is too long and boring for me to enjoyably read.


In order to run ABDesktop, you will need to be running some web server software, like XAMPP, which can run PHP and has a MySQL database; or else upload the files to an actual web server which can run PHP and which has a MySQL database.

(However, I don't recommend the latter option; this software wasn't designed to be on a web server, and might be too slipshod, security-wise, for that, vulnerable to SQL injection attacks, etc., and it isn't designed for multiple users, etc.).

Please only use this software at your own risk and please don't sue me if anything goes horribly wrong. Thanks. :-)

I've done my best to make sure it's safe for use on your own computer, and below I've shared all I know of to enhance the security of your computer's web server software (based on what I've done with my own set-up), at least if you're using Windows - but I know far from everything about this stuff, and there could be some horribly obvious things I'm overlooking.

So, I recommend not trusting this software. Please don't use it for anything really important or that has to definitely be private and secure.


I also recommend making periodic backups of your database, either using the export feature of phpMyAdmin, or just by saving a copy of your database's folder located in C:\xampp\mysql\data.


Setting Up XAMPP

XAMPP is "an easy to install Apache distribution containing MySQL, PHP and Perl" for Windows. (You can even install Python, though it took me hours to figure out how). Apache is a type of web server software. PHP (which I used to write ABDesktop), Perl, and Python are three popular programming languages. MySQL is a type of database software, and that's what ABDesktop uses to store data.

You can get XAMPP for a variety of different platforms, like Windows, MacOS, Linux, and Solaris (whatever that is) at this link:

http://www.apachefriends.org/en/xampp.html

I recommend installing or unzipping the files directly to the location C:\xampp on Windows.

You can start Apache and MySQL by opening the file xampp-control.exe in the directory C:\xampp\ and clicking the Start buttons next to "Apache" and "MySql".


However, be warned that you probably should implement various measures to make sure you have some extra security - because if someone has your IP address, and there are no other safeguards, then, while Apache is running, people on the internet could literally browse some of the files you have on your hard drive. Hopefully only files in the C:\xampp\htdocs folder, but who knows? (Not me - I'm not some kind of internet security expert.)

One of the easier measures is to change some of Apache's configuration settings. Go to the C:\xampp\apache\conf folder. Make a duplicate of the httpd.conf file, so in case you mess anything up, you can go back to the original settings. Then, open httpd.conf with a text editor.

Go to the section that says:

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

You'll want to delete those last two lines, and replace them with:

    Order deny,allow
    Deny from all
    Allow from 127.0.0.1

127.0.0.1 is the "localhost" address, so, that means anyone with an IP address different than that (such as anyone on the internet) should not be able to get files. I assume this probably works, but I would never trust this 100%, because you never know how a computer might be messing things up behind the scenes, either through inadvertant glitches, or by malicious design.


Next, you should probably have a firewall. You might have to fiddle around with your firewall software to be able to use Apache at the same time you have your firewall software on.

I have Norton Internet Security 2003 and Windows XP, so these next instructions (or suggestions) won't apply to everyone. If you have Norton Internet Security, then, the first time you start Apache and MySQL, a Norton Internet Security alert should come up asking you whether to permit or block them, or if you want to manually configure access.

I picked manually configure, then blocked connections from any other computer, both TCP and UDP connections on all ports, and, since I'm a bit paranoid, I have it create an event log entry and show me both a Security Monitor and Security Alert message when that firewall rule is triggered. These alerts display every time I start up Apache and MySQL, and if I don't do this next step, they come up intolerably often, every time I do anything with Apache, like browse a web page on my computer's server.

So, to fix that, open up Norton Internet Security, then click Personal Firewall, and click the Configure button. Then, go to the Home Networking tab. Click add, and select "Individually", then put in the localhost IP address - 127.0.0.1.

Hopefully this won't be a horrible, security-endangering move. If you're really worried, you can delete 127.0.0.1 from your Trusted Zone when you're done using xampp - or, you can physically disconnect your computer from the internet when you use xampp.


If you really can't figure out how to configure your firewall, or just don't trust it, a presumably safe alternative is to physically disconnect your computer from the internet and turn off your firewall software while you're running xampp. Remember to turn your firewall software back on before you reconnect your computer to the internet.

If you're using Norton Internet Security 2003 and somehow messed up the firewall rules when you first configured them, you can edit the rules you added by opening Norton Internet Security, clicking Personal Firewall, clicking the Configure button, and going to the Program Control tab. Apache will be listed in the programs list as "apache.exe" and MySQL will be listed as "mysqld.exe". Highlight whichever one you want to edit and press Modify, and adjust it as you wish.


One odd side effect of having Apache on while I'm browsing the rest of the internet is that sometimes little web browser alert things pop up asking me about certificates and stuff related to "localhost". Also, if I delete 127.0.0.1 from my Norton Internet Security Trusted Zone and still have Apache running, visiting some internet sites triggers multiple Norton Internet Security alerts.

I believe this might be related to the fact that I use a Hosts file to block Google AdSense, Google Analytics and other nuisances - since what a Hosts file does is redirects attempts to connect to nuisance sites to some other IP address, and frequently, the IP address of choice is 127.0.0.1 - the localhost address.

So, I think, when you have Apache running - because Apache reacts whenever anything on your computer goes to http://localhost/ or http://127.0.0.1/ , Apache takes notice when the Hosts file redirects stuff to 127.0.0.1, hence triggering various Norton Internet Security alerts (if 127.0.0.1 isn't in your Trusted Zone) which don't normally show up when Apache is turned off, as well as somehow causing those web browser alerts about certificates and localhost, etc.


(By the way, though this has nothing to do with installing the Astroblahhh Desktop, I just thought I should point out somewhere that, despite the fact that I keep putting in these links to Wikipedia articles, you should never completely trust Wikipedia, since Wikipedia can be edited by literally anyone at any time.

And, while we're on the topic of security, I'd like to also point out the excellent free (but not open source) software Spybot: Search & Destroy. Among many other things, it creates (or edits) a Hosts file for you, though you can also edit it manually.

On my Windows XP computer, the Hosts file is located at C:\WINDOWS\system32\drivers\etc . If you want to edit your Hosts file, I recommend making a backup copy of it before you edit it).


And, another security-related idea - a router might be helpful. A router is a physical device which you might use to share your internet connection (like probably a high-speed cable connection) amongst multiple computers in your house. As I understand it, in my currently feeble, poor, and inadequate way, any connections that try to come in from the internet have to go through the router, and somehow this can help with your security.

However, if you have a router, you should have a password on it, because otherwise, anyone who visits your IP address and puts in your router's default login details will be able to get into your router and reconfigure its settings, unless you changed the default login details.

Consult your router's manual for more details. (And in case you can't find your router's manual, you often can find the manuals of routers on the web on the manufacturer's website).


Finally, once you start running xampp, you might as well go to http://localhost/xampp and click the Security link, and follow the instructions to plug the various security holes that are left open by default.


By the way, I would like to caution people against just running any random PHP, Perl, or Python script they find without understanding it. Even I didn't realize this at first, when I first installed xampp, but:

To my surprise, these scripts, run by Apache/xampp, are capable of accessing, reading, writing, overwriting, and deleting information not only in the htdocs folder, but anywhere on your hard drive.

That is actually what will make some future features of ABDesktop possible. But, it also means scripts are potentially very dangerous. So, don't go naively running every random script or scrap of source code you find on the internet, OK?


Setting up Astroblahhh Desktop

When or if you have the XAMPP security issues figured out to your satisfaction - start up Apache and MySQL, then you can access Astroblahhh Desktop by following this link, assuming you have the "abdesk" folder in C:\xampp\htdocs.

http://localhost/abdesk/00main.php

The first time you follow that link, there will be a login page. By default, you don't have to enter any user name or password, and the cookie it creates will last a very, very long time. If you'd like to change this, though, you can edit the source code of login.php.

It's not very good security, especially if the person trying to log in is physically using your computer (meaning the ABDesktop source code files are probably all accessible to that person if they know to look in the C:\xampp\htdocs\abdesk folder ). But it could deter someone not very knowledgeable about computers and/or not very determined to get in.


Before you can get started using ABDesktop, you'll first need to mess about with MySQL.

Open the source code file "lib-abdesk.php" and in the ConnectToDb function, change the user name and password to your MySQL user name and password. As for where to get your MySQL user name and password - well, if I recall correctly you can set your MySQL password possibly easily by following the instructions at http://localhost/security/index.php if you haven't already set a password for the MySQL root account.

Alternatively, instead of changing the user name and password used by "lib-abdesk.php", you can create a MySQL user named "insertnamehere" with the password "insertpasswordhere" and that will actually work too (but that's a bad idea from a security perspective). You can manage MySQL user accounts from within phpMyAdmin by clicking the Privileges link.

Next, go to the software phpMyAdmin, which is a handy MySQL database manager program included with xampp. In the text box underneath the text "Create new database:", type in "abdesk-links" and press the Create button.


Then, open login.php in a text editor, and set $username to the user name of your choice, and $password to the password of your choice. And, open up lib-abdesk.php and set $cookiename to whatever you want, and $cookievalue to whatever you want. Now, you should be able to log in at http://localhost/abdesk/login-form.html

After you log in, go to this page: Nuke Links DB and/or Make New Database Tables Then press the Make New Database button, and the Astroblahhh Links Organizer will be ready to use.


OK, hopefully all that wasn't too horribly confusing. I've tried to make it as simple as possible, and it would be nice if this were the sort of software which you could just download and double-click on it and it would install, but, I actually don't know how to make that sort of thing yet.

But, it probably wouldn't be useable on multiple platforms if I did that. So, actually, I quite like the trade-off of greater complexity in exchange for it (presumably) being able to run on multiple platforms. I don't actually know how well it runs on any computer besides my own set-up, but, hopefully it works.


If you'd like to change cosmetic aspects of ABDesktop, and have such things as a different color scheme, different fonts, etc., you can edit ABDesktop's CSS files, which can all be found in various folders titled "css". Of course, I recommend making a backup copy of those files before you start editing them, in case you want the old settings back.

Again, I joyously welcome purchases of any item or service I have for sale on my website or in Second Life, or donations and microdonations of literally any size.

Lastly, please don't forget to read the below privacy issue note.

http://localhost/abdesk/00main.php



A Possible Web Browser Privacy Issue

I would like to point out a potential privacy issue. By default, this (hopefully) won't be an issue, but it will almost definitely be an issue if you edit Astroblahhh Link Organizer's list-links.php and set the $buttonlinksmode variable to false.

When list-links.php's $buttonlinksmode mode variable is set to false, the backward/forward/random buttons get changed to regular links, and it also seems to make the page load faster. However, when using regular links for the backward/forward/random navigation, a lot of variables, including any tag searches or other search queries, get stored in the URL.

The reason this presents a privacy problem is because web browsers are generally set up to make available to whatever website you visit, the URL of the "referrer" or "referring page" that contained the link you clicked to reach that website.

This feature of web browsers is actually rather obnoxious and intrusive, in my opinion. Sure, it makes website statistics a lot more interesting for website owners to look at, since it allows website owners to see how much of their traffic comes from particular websites, as well as find out what searches people typed into a search engine that led to to the owner's site - but I think it's wrong to have that be the default setting of web browsers without telling people about it and how they can opt out of it.

Anyhow, what this means for any Astroblahhh Desktop users who have $buttonlinksmode set to false is - if you click on any link in your links list when you have a lot of variables stored in the URL, all those variables (including your complete search query) might very well end up logged in the website statistics page of whatever website you're visiting.

Leaving $buttonlinksmode set to its default setting of "true", should, I hope, bypass this problem, since no variables will be stored in the URL. The referring URL will hopefully just be "http://localhost/abdesk/links/list-links.php". (By the way, you can set $camobuttons to true to make the buttons be camouflaged to look like regular links instead of buttons).


A way to stop your web browser from passing on any "referring page" information at all is to use some software, though I don't know what exactly you could use which is free, though there must be something. (There's probably even some obscure setting you can change in your web browser, though I have no idea what it is). I just use Norton Internet Security 2003.

To set Norton Internet Security 2003 to do that, right-click on the Norton Internet Security icon in your taskbar and select the menu item "Norton Internet Security". Then, click Options, and select the "Internet Security" menu item. Click the "Web Content" tab, then under the "Global settings" tab under "Information about visited sites", choose "Block".

In some cases blocking your browser from sharing that information with websites can cause problems with the functioning of some sites, but there's only one site I ever ran across that had major problems (a small astrology site I visited quite a while ago that I can't remember the name of).


Doubtless other privacy/security issues could exist in Astroblahhh Desktop (such as the stuff I explained above). The safest course of action is probably to not store anything very private in your database.



Update History

Astroblahhh Desktop was first released in a partially complete form on March 1, 2009 as Astroblahhh Desktop v0.3. It is v0.3 because the total Astroblahhh Desktop package is only about 1/3rd complete, as it contains only the Astroblahhh Link Organizer so far.

I've been working on Astroblahhh Desktop off and on for a long time, and first got the idea for the links organizer in December 2007 or maybe even November 2007 or before. The Astroblahhh Links Organizer is the third large project written in PHP/MySQL/JavaScript I've completed and released. It borrows lots of code and design ideas from my first two large completed PHP/MySQL/JavaScript projects, the Astroblahhh Music Organization Database (AMODB) and WordsPlatz (my blog software).

The reason I call this Astroblahhh Desktop is because eventually I plan for Astroblahhh Desktop to have file searching and organizing features similar to (and hopefully better than) Google Desktop. Those features are still in development, though.


To write Astroblahhh Desktop, I used the wonderful code editing software Notepad++ v5.0.3. With its color coded text, fully customizeable colors, line numbers, bookmarks, easy indent features, etc., it really helped a lot. It is my favorite code editor.

Before I discovered Notepad++, I used NoteTab Light a lot, which is still my favorite plain text editor, though no longer my favorite code editor.