New updated theme, updated logo, and a couple of new links here and there. Overall, things seem to be working properly.
Problems let me know.
~david macias
New updated theme, updated logo, and a couple of new links here and there. Overall, things seem to be working properly.
Problems let me know.
~david macias
Ok, so you might have noticed the somewhat drastic change going around here. Images seem to be in their respective spot and comments can now be viewed again.
There are some bugs that I am chasing around so sit tight.
~david macias
Interesting read over at Slashdot, about Cisco having a hard coded L/P in two of their software packages.
Of course the fine folks at Slashdot have raised all sorts of issues about privacy, who can you trust, open source this, open source that, and wearing tin foil hats.
Cisco SlashdotI am a bit torn on the issue. How many calls does a company get regarding forgotten passwords or rogue employees sabotaging a company’s network?
Who can you trust with information that could potentially put at risk each and every one of your customers?
There is the pickle!
Well not really, I had to change to a default theme, because the theme I normally use Axonz, is not compatible with my version of GL. So I will be dropping the Axonz developer a line to see what’s up. Also, I am working on my own little theme, but since school and work are constantly keeping me too busy, I don’t have that much time to dedicate to this site.
~david macias
PS: to the lovely bot who spammed my site, I will find you.
Well this is the continuation from ealier story to my earlier post about messing around with RSS feeds with PHP. The synopsis of my little project was to capture the recents job postings from a really good job posting website. Take a look below for the code.
~david maciasSome limitations: I need to learn how to reuse the XML parser that way I don’t have to build it and clean it up new everytime, creates really messy code. I am not sure how bad of a load it is causing on the RSS home website. Among other things, but hey for 2 hours of hacking this works out pretty decent. Check out a live example at: Example
<html>
<head>
<title>Bottom Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
//CSS to ensure that text starts on top of colum regarldless of how many entries are received
<style type="text/css">
<!--
.veralign {
vertical-align: top;
}
-->
</style>
</head>
<body>
<p>
<?php
if (($_GET['city']) == NULL){
printf("No City Selected");
//if there is no city selected do not process and code, saves resources
}
else {
printf("<p>City: ");
printf($_GET['city']);
printf("</p>");
class RSSParser {
var $insideitem = false;
var $sectitle = "";
var $title = "";
var $link = "";
var $creator = "";
var $language = "";
var $source = "";
var $rights = "";
var $date = "";
var $type = "";
function startElement($parser, $tagName, $attrs) {
if ($this->insideitem) {
$this->tag = $tagName;
}
elseif ($tagName == "ITEM") {
$this->insideitem = true;
}
}
function endElement($parser, $tagName) {
if ($tagName == "ITEM") {
printf("<font size =\"2\"><b><a href='%s'>%s</a></b> [ %s ]</font><BR>", trim($this->link), htmlspecialchars(trim($this->title)), htmlspecialchars(trim($this->source)));
printf("<font size=\"2\"><b>Date: %s </b></font><BR>", htmlspecialchars(trim($this->date)));
printf("<font size=\"1\">Creator: %s</font><BR>", htmlspecialchars(trim($this->creator)));
printf("<font size=\"1\">Rights: %s</font><BR><BR>", htmlspecialchars(trim($this->rights)));
$this->title = "";
$this->link = "";
$this->source = "";
$this->date = "";
$this->rights = "";
$this->creator = "";
$this->insideitem = false;
}
}
function characterData($parser, $data) {
if ($this->insideitem) {
switch ($this->tag) {
case "DC:TITLE":
$this->title .= $data;
break;
case "LINK":
$this->link .= $data;
break;
case "DC:CREATOR":
$this->creator .= $data;
break;
case "DC:RIGHTS":
$this->rights .= $data;
break;
case "DC:DATE":
$this->date .= $data;
break;
case "DC:SOURCE":
$this->source .= $data;
break;
}
}
}
}
printf("<table width=\"100%%\" border=\"1\" cellspacing=\"0\" cellpadding=\"10\"><tr>");
printf("<td class=\"veralign\">");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
printf("<B>%s Internet Engineering</B><BR>", $_GET['city']);
$fp = fopen("http://".$_GET['city'].".craigslist.org/eng/index.rss","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
printf("</td>");
//////////////
printf("<td class=\"veralign\">");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
printf("<B>%s Software/DBA</B><BR>", $_GET['city']);
$fp1 = fopen("http://".$_GET['city'].".craigslist.org/sof/index.rss","r")
or die("Error reading RSS data.");
while ($data = fread($fp1, 4096))
xml_parse($xml_parser, $data, feof($fp1))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp1);
xml_parser_free($xml_parser);
printf("</td>");
///////////
printf("<td class=\"veralign\">");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
printf("<B>%s Systems/Networking</B><BR>", $_GET['city']);
$fp1 = fopen("http://".$_GET['city'].".craigslist.org/sad/index.rss","r")
or die("Error reading RSS data.");
while ($data = fread($fp1, 4096))
xml_parse($xml_parser, $data, feof($fp1))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp1);
xml_parser_free($xml_parser);
printf("</td>");
///////////
printf("<td class=\"veralign\">");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
printf("<B>%s Web/Design</B><BR>", $_GET['city']);
$fp1 = fopen("http://".$_GET['city'].".craigslist.org/art/index.rss","r")
or die("Error reading RSS data.");
while ($data = fread($fp1, 4096))
xml_parse($xml_parser, $data, feof($fp1))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp1);
xml_parser_free($xml_parser);
printf("</td>");
///////////
printf("<td class=\"veralign\">");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
printf("<B>%s Tech Support</B><BR>", $_GET['city']);
$fp1 = fopen("http://".$_GET['city'].".craigslist.org/tch/index.rss","r")
or die("Error reading RSS data.");
while ($data = fread($fp1, 4096))
xml_parse($xml_parser, $data, feof($fp1))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp1);
xml_parser_free($xml_parser);
printf("</td>");
printf("</tr></table>");
}
?>
</p>
</body>
</html>
Just saw on /., that Mandrake is out of their Chapter 11 like protection which they filed some months back. Good to hear for my favorite linux distribution. I have some reservations over the new Mandrake, however I will not pass any judgement until I get the official release from the MandrakeSoft store.
Support your linux companies, time is not free and their efforts are definetly appreciated.
~david macias
Upgraded the code base of the website, looks like it was succesful. I will kep the old site for a while, just in case I missed something. Seems a little faster, I wish my host was running PHP 4.3 or atleast running PEAR, but alas no :-(
~david macias
So I decided to play around with PHP and XML. My objective was to create a site which will retrieve job postings from a RSS feed. I am currently tweaking it but so far it is working great. Here are some pointers for any souls trying to to do something similar.
~david macias
I retrieved this tutorial from this Great Site.
I have updated this article with this new story.Please take a look at the comments made in the source code. This code will retrieve a feed, parse it, then print only the parts I really care about. For the most part the code is self explanatory, but I have included some comments to help out the newbies like me.
<html>
<head>
<title>DAM's RSS/XML and PHP</title>
</head>
<body>
<h2>Currently...</h2>
<dl>
<?php
class RSSParser {
var $insideitem = false; //Check out the what is inside the <title> tags, and these variables should reflect what you want to pull out
var $sectitle = "";
var $title = "";
var $link = "";
var $creator = "";
var $language = "";
var $source = "";
var $rights = "";
var $date = "";
var $type = "";
//This function checks if you are inside a new item
function startElement($parser, $tagName, $attrs) {
if ($this->insideitem) {
$this->tag = $tagName;
}
elseif ($tagName == "ITEM") {
$this->insideitem = true;
}
}
//functions prints out the data retreived from the RSS feed
function endElement($parser, $tagName) {
if ($tagName == "ITEM") {
printf("<dt><b><a href='%s'>%s</a></b> [ %s ]</dt>", trim($this->link),htmlspecialchars(trim($this->title)),htmlspecialchars(trim($this->source)));
printf("Date: %s <BR>",htmlspecialchars(trim($this->date)));
printf("Creator: %s<BR>",htmlspecialchars(trim($this->creator)));
printf("Rights: %s<BR><BR>",htmlspecialchars(trim($this->rights)));
$this->title = "";
$this->link = "";
$this->source = "";
$this->date = "";
$this->rights = "";
$this->creator = "";
$this->insideitem = false;
}
}
function characterData($parser, $data) {
if ($this->insideitem) {
switch ($this->tag) {
case "DC:TITLE":
$this->title .= $data;
break;
case "LINK":
$this->link .= $data;
break;
case "DC:CREATOR":
$this->creator .= $data;
break;
case "DC:RIGHTS":
$this->rights .= $data;
break;
case "DC:DATE":
$this->date .= $data;
break;
case "DC:SOURCE":
$this->source .= $data;
break;
}
}
}
}
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$xml_parser = xml_parser_create();
$rss_parser = new RSSParser();
xml_set_object($xml_parser,&$rss_parser);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp1 = fopen("htt://YourSiteFeedGoesHere/rss.xml","r")
or die("Error reading RSS data.");
while ($data = fread($fp1, 4096))
xml_parse($xml_parser, $data, feof($fp1))
or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
fclose($fp1);
xml_parser_free($xml_parser);
?>
</dl>
</body>
</html>
So I finally cracked down and started playing with the future of the Windows Servers. I am talking about the Windows 2003 server. Read on to find out what some of my initial thoughts on this new operating system.
edit: 04/08/04
Security Focus just posted a new article on the IIS6.0 security :-) Talk about timely.1. It actually loaded pretty fast, which I was surprised, I didn’t use a beast of a machine, but what I did use, seemed to work well and have a nice response time.
2. Security, this has to be the first server where it seems like the computer is tight down out of the box. A couple of ports were open which seem to be unnecessary, but I will not close then until I find out more about the operating system.
3. The interface is a great improvement from that horrible interface called Windows XP.
4. Symantec Antivirus Corporate Edition v8 does not play well with 2003, at least for me, and I am having a hard time automating the virus updates. I think it might have something to do with Windows security.
5. I absolutely love remote desktop connection; MS finally got on the ball and did what PC Anywhere and tightVNC have been doing for years.
6. Sharepoint is nice; I just need to read up on how to configure it correctly.
I don’t see the migration from Windows 2002 Server to Windows 2003 should be too painful. However, I think that with the new IIS 6.0 that my Linux server might end up doing something else.
-david macias
Kind of a sign, was just thinking about this song, when my favorite internet radio station played it. So this song is about hope after love, the words might seem a little depressing, but the underlaying message is that there is "still tomorrow".
And we sing.One! Two! Three!
To every broken heart in here
Love was once a part, but now it’s disappeared
She told me that it’s all a part of the choices that you’re making
Even when you think you’re right
You have to give to take
But there’s still tomorrow
Forget the sorrow
And I can be on the last train home
Watch it pass the day
As it fades away
No more time to care
No more time, today
But we sing
If we’re going nowhere
Yeah we sing
If it’s not enough
And we sing
Sing without a reason
To ever fall in love
I wonder if you’re listening
Picking up on the signals
Sent back from within
Sometimes it feels like I don’t really know whats going on
Time and time again it seems like everything is wrong in here
But there’s still tomorrow
Forget the sorrow
And I can be on the last train home
Watch it pass the day
As it fades away
No more time to care
No more time, today
But we sing
If we’re going nowhere
Yeah we sing
If it’s not enough
And we sing
Sing without a reason
To ever fall in love
Well we sing if we’re going nowhere
Yeah we sing if it’s not enough
And we sing
Sing without a reason to ever fall in love
But we sing
If we’re going no where
Yeah we sing
If it’s not enough
And we sing
Sing with out a reason to never fall in love
To never fall in love again