Friday, November 13, 2009
Spiceworks 4.5 Beta III is out; my adventure
Friday, October 30, 2009
Version 1.0 of the Helpdesk Customization Plugin
Well, it has finally happened. I've hit version 1.0 of the Helpdesk Customizations Plugin.
In the most recent version, I've added info for tickets relating to software items and fixed a bug where the plugin would only retrieve 100 tickets in the info bar.
If you run into this problem, here is the code to get around it for now.
tkt_ct = (new Ajax.Request('/api/tickets.json?total_count=true&filter=open', {method:'get', asynchronous:false})).transport.responseText.evalJSON().count;
Monday, October 26, 2009
The Spiceworld 2009 Aftermath
- Help Desk - Ticket AutoAssign by Sean Wilson
- User Portal - User Portal Submission Tracking by Justin Davison
- Inventory - Help-Desk, Inventory, Reports, & My Tools User Role by Robert Netzel
- Most Useful - Keyboard Shortcuts by Justin Dorfman
- Most Fun - Dilbert by Dominic
- Grand Prize - Justin Dorfman
- Poster Contest - Denise Parish
Monday, October 5, 2009
Giorgio Sironi just finished his writeup on an introduction to PHPUnit testing. If you are new to PHPUnit, you should check it out.
Thursday, August 27, 2009
Free extending Spiceworks webinar
Love Spiceworks but wish it did one thing differently? With the plugin functionality you can extend Spiceworks to meet the needs of your network. From fun widgets and skins to new functionality you can make Spiceworks yours. Join this webinar and learn how you can get started writing plugins & more. Plus you could win an all expense paid trip to SpiceWorld Austin and a $250 Amazon gift card by submitting your plugin to the plugin contest.
Title: Extending Spiceworks
Date: Tuesday, September 1, 2009
Time: 10:00 AM - 11:00 AM CDT
Registration Link: https://www2.gotomeeting.com/register/246101330
Tuesday, August 25, 2009
A new version of Spiceworks, a new helpdesk customization revision
Anyway, the code is as follows:
// ==SPICEWORKS-PLUGIN==
// @name Help Desk Customizations Clone
// @description Adds minor enhancements to your Help Desk, including ticket status in the toolbar, colors for past due tickets and private messages, and information on devices in the Related To field.
// @version 0.9
// ==/SPICEWORKS-PLUGIN==
//
// Author: Brent Wong
// Date: June 30, 2009
// SW Version: 3.6, 4.0, 4.1
var is4 = SPICEWORKS.version && SPICEWORKS.version.is(">= 4.0");
var is41 = SPICEWORKS.version && SPICEWORKS.version.is(">= 4.1");
var helpdeskCustSettings = [
{name:'past_due_color', label:'Past Due Highlight Color', type:'string', defaultValue:'#ffdede', example:'Default: #ffdede'},
{name:'private_note_color', label:'Private Note Color', type:'string', defaultValue:'#cccccc', example:'Default: #cccccc'},
{name:'tickets_open_display', label:'Display Open Tickets', type:'checkbox', defaultValue:true},
{name:'tickets_due_display', label:'Display Past Due Tickets', type:'checkbox', defaultValue:true},
{name:'tickets_unassigned_display', label:'Display Unassigned Tickets', type:'checkbox', defaultValue:true},
{name:'priority_low_color', label:'Priority Low Color', type:'string', defaultValue:'#c9dcc8', example:'Default: #c9dcc8'},
{name:'priority_med_color', label:'Priority Medium Color', type:'string', defaultValue:'#ffffd7', example:'Default: #ffffd7'},
{name:'priority_high_color', label:'Priority High Color', type:'string', defaultValue:'#fc939c', example:'Default: #fc939c'}
]
// Setup based on Spiceworks version
if (is4){
// For version 4.0
var strToolbar = 'main-toolbar';
var strToolbarDown = 'span.right';
var strDevLink = 'related_to_property';
var strDevLinkDown = '.value a';
var strDevURL = 'devices/';
var strDevInfoAdd = 'related_to_section';
}else{
// For older versions
var strToolbar = 'toolbar';
var strToolbarDown = 'span.advanced_controls';
var strDevLink = 'ticket_review_summary_view';
var strDevLinkDown = 'p.related_to a';
var strDevURL = 'id-';
var strDevInfoAdd = 'ticket_purchase_container';
helpdeskCustSettings.push(
{name: 'expanded_height_enabled', label:'Enable Increased Window Height', type:'checkbox', defaultValue: false},
{name: 'expanded_height', label: 'Ticket Window Height (in px)', type: 'string', defaultValue: '500', example: 'Default: 500'}
);
}
plugin.configure({
settingDefinitions: helpdeskCustSettings
});
function refreshToolbarTicketInfo(){
// display ticket stats
if (plugin.settings.tickets_open_display || plugin.settings.tickets_due_display || plugin.settings.ticket_unassigned_display){
var displayString = '';
if (plugin.settings.tickets_open_display){
displayString += '<span><strong>Open:</strong> ' + SPICEWORKS.data.Ticket.find('all', {filter:'open'}).length + '</span>';
}
if (plugin.settings.tickets_due_display){
displayString += '<span><strong>Past Due:</strong> ' + SPICEWORKS.data.Ticket.find('all', {filter:'past_due'}).length + '</span>';
}
if (plugin.settings.tickets_unassigned_display){
displayString += '<span><strong>Unassigned:</strong> ' + SPICEWORKS.data.Ticket.find( 'all', {filter:'unassigned'}).length + '</span>';
}
var toolbarTicketInfo = $(strToolbar).down(strToolbarDown + ' span.toolbar_ticket_info');
if (toolbarTicketInfo){
toolbarTicketInfo.remove();
}
$(strToolbar).down(strToolbarDown).insert({top:'<span class="toolbar_ticket_info">' + displayString + '</span>'});
}
}
SPICEWORKS.app.helpdesk.ready(function(){
// set styling
if (is4){
SPICEWORKS.utils.addStyle("\
span.toolbar_ticket_info{margin-right:20px;padding:0 5px;border:1px solid #999;}\
span.toolbar_ticket_info span{margin-right:5px;}\
#related_to_summary{clear:both;border:1px solid #ccc;padding:10px;margin:5px 0;overflow:hidden;}\
#related_to_summary ul{margin:0;padding:0;text-align:left;}\
#related_to_summary p{float:right;}\
.filter-priority-low td.priority{background-color:" + plugin.settings.priority_low_color + ";}\
.filter-priority-med td.priority{background-color:" + plugin.settings.priority_med_color + ";}\
.filter-priority-high td.priority{background-color:" + plugin.settings.priority_high_color + ";}\
");
}else{
SPICEWORKS.utils.addStyle("\
span.toolbar_ticket_info{font-size:1em;color:#000;float:right;background:#e8e8e8;padding:3px 5px;border:#888 1px solid;}\
span.toolbar_ticket_info span{margin-right:5px;}\
#related_to_summary{clear:both;border:1px solid #ccc;padding:10px;margin:5px 0;overflow:hidden;}\
#related_to_summary ul{margin:0;padding:0;}\
#related_to_summary li{float:left;width:200px;}\
#related_to_summary p{float:right;}\
.filter-priority-low td.priority{background-color:" + plugin.settings.priority_low_color + ";}\
.filter-priority-med td.priority{background-color:" + plugin.settings.priority_med_color + ";}\
.filter-priority-high td.priority{background-color:" + plugin.settings.priority_high_color + ";}\
");
// Only Expand the height on version 3
if(plugin.settings.expanded_height_enabled){
SPICEWORKS.utils.addStyle("body.tickets #active_overview {height: " + plugin.settings.expanded_height + "px !important;}");
}
}
// mark past due ticket rows
$('td.past_due').each(function(item){
item.up().setStyle({backgroundColor: plugin.settings.past_due_color});
});
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.closed(function(){
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.ready(function(){
// color private messages
$('li.private').each(function(item){
item.setStyle({backgroundColor: plugin.settings.private_note_color})
});
// add device summary
var deviceLink = $(strDevLink).down(strDevLinkDown);
if(deviceLink) {
var deviceURL = deviceLink.readAttribute('href');
var startIndex = deviceURL.indexOf(strDevURL);
if(startIndex != -1) {
var substring = deviceURL.substring(startIndex);
var deviceID = substring.gsub(/[^\d]/, '');
if (is41) {
var devices = SPICEWORKS.data.Device.find('all', {ids:deviceID});
var device = devices.first();
} else {
var device = SPICEWORKS.data.Device.find(deviceID);
}
if(device) {
var displayInfo = '<div id="related_to_summary" style="display:none;"><ul>'
var listStyle = '<li>'
if(device.ip_address && !device.ip_address.empty()) {
displayInfo += listStyle + '<strong>IP:</strong> ' + device.ip_address + '</li>';
}
if(device.mac_address && !device.mac_address.empty()) {
displayInfo += listStyle + '<strong>MAC:</strong> ' + device.mac_address + '</li>';
}
if(device.manufacturer && !device.manufacturer.empty()) {
displayInfo += listStyle + '<strong>Vendor:</strong> ' + device.manufacturer + '</li>';
}
if(device.current_user && !device.current_user.empty()) {
displayInfo += listStyle + '<strong>Last Login:</strong> ' + device.current_user + '</li>';
}
if(device.primary_owner_name && !device.primary_owner_name.empty()) {
displayInfo += listStyle + '<strong>Owner:</strong> ' + device.primary_owner_name + '</li>';
}
if(device.asset_tag && !device.asset_tag.empty()) {
displayInfo += listStyle + '<strong>Asset Tag:</strong> ' + device.asset_tag + '</li>';
}
if(device.operating_system && !device.operating_system.empty()) {
displayInfo += listStyle + '<strong>OS:</strong> ' + device.operating_system + '</li>';
}
if(device.serial_number && !device.serial_number.empty()) {
displayInfo += listStyle + '<strong>Serial No:</strong> ' + device.serial_number + '</li>';
}
displayInfo += '</ul><p><a href="#" onclick="new Effect.BlindUp(\'related_to_summary\', {duration:0.20}); return false;">hide</a></p></div>';
$(strDevInfoAdd).insert({after: displayInfo});
deviceLink.insert({after: ' (<a href="#" onclick="new Effect.BlindDown(\'related_to_summary\', {duration:0.20}); return false;">info</a>)'})
}
}
}
});
Tuesday, July 28, 2009
Why will socialized health care work?
What I am told is that the problem we are facing are rising health care costs. Over the last few years health care costs have continued to rise and are going to increase at a more rapid pace. I am not going to say that this doesn't happen, because it does, but let's take a look at the reasons that health care costs have been rising. Health care costs can be split into two different categories from my point of view, medical insurance and out-of-pocket, or a-la-carte, expenses. First, the insurance costs go up because insurance companies have to make a profit and their costs go up because of both administrative costs and reimbursement costs. Let's say that administrative costs only need to go up when there is a raise in the minimum wage or there is added red tape, and therefore could be pretty much static. That leaves us with the reimbursement costs being the main factor in the rise of medical insurance rates. There are also two main factors in the rise of reimbursement costs, rising cost of service and increase in the number of services performed. We'll say that reimbursement costs are equivalent to costs incurred by someone paying out-of-pocket.
Okay, we've looked at the problem, so let's take a look at the solution. The proposed governmental solution is one of socialized health care in the form of a tax based public insurance option. In other words, everybody pays into this system and is helping to support it. Well, gee, if it is another insurance option, isn't it still affected by reimbursement costs. Why, yes, yes it is. And the only way that an insurance company can cut those costs are by decreasing the number of services performed or to lower the cost of service. To decrease the number of services performed, the government could put in age restrictions or just other restrictions on procedures. And to lower the cost of service, the government can put caps on the price of services performed. Are either of those options going to make health care better?
What I'm not saying is that insurance companies are the best option. What I am saying is that a government run insurance company isn't a better option. What our Nation was founded on is Capitalism and competition breeds lower prices and innovation.
Regular Expressions and an MVC introduction
The next post I came across was "15 PHP regular expressions for web development." This post goes across some basics of regular expressions but then goes on to list some very useful and commonly used ones. There are a couple strictly WordPress regular expressions in there, but most of them are universal.
Thursday, July 9, 2009
The caveats of phone conversations
This is one of the biggest problems with talking to people over the phone (especially with people that have a different accent than you), you are just very limited in ways of communication. When you are chatting with someone in person, there is body language, you can watch the way their mouth moves, hand gestures, and even writing or drawing things out on a piece of paper. I have heard that video chats work better but then you are stuck with slow imitation of the real thing.
BTW, I think the person I was talking with meant foreach.
Tuesday, July 7, 2009
This just in...Michael Jackson is dead
Okay, really, he was great for pop back in the 80's and 90's, but recently he hasn't even done anything notable. I think this just goes to show the sad state of America where we care more about one person two weeks after his death than the state of our Nation.
Tuesday, June 30, 2009
Updated the spiceworks helpdesk customization plugin
// ==SPICEWORKS-PLUGIN==
// @name Help Desk Customizations Clone
// @description Adds minor enhancements to your Help Desk, including ticket status in the toolbar, colors for past due tickets and private messages, and information on devices in the Related To field.
// @version 0.6
// ==/SPICEWORKS-PLUGIN==
plugin.configure({
settingDefinitions: [
{name:'past_due_color', label:'Past Due Highlight Color', type:'string', defaultValue:'#ffdede', example:'Default: #ffdede'},
{name:'private_note_color', label:'Private Note Color', type:'string', defaultValue:'#cccccc', example:'Default: #cccccc'},
{name:'tickets_open_display', label:'Display Open Tickets', type:'checkbox', defaultValue:true },
{name:'tickets_due_display', label:'Display Past Due Tickets', type:'checkbox', defaultValue:true },
{name:'tickets_unassigned_display', label:'Display Unassigned Tickets', type:'checkbox', defaultValue:true }
]
});
function refreshToolbarTicketInfo(){
// display ticket stats
if (plugin.settings.tickets_open_display || plugin.settings.tickets_due_display || plugin.settings.ticket_unassigned_display){
var displayString = '';
if (plugin.settings.tickets_open_display){
displayString += '<span><strong>Open:</strong> ' + SPICEWORKS.data.Ticket.find('all', {filter:'open'}).length + '</span>';
}
if (plugin.settings.tickets_due_display){
displayString += '<span><strong>Past Due:</strong> ' + SPICEWORKS.data.Ticket.find('all', {filter:'past_due'}).length + '</span>';
}
if (plugin.settings.tickets_unassigned_display){
displayString += '<span><strong>Unassigned:</strong> ' + SPICEWORKS.data.Ticket.find( 'all', {filter:'unassigned'}).length + '</span>';
}
var toolbarTicketInfo = $('main-toolbar').down('span.right span.toolbar_ticket_info');
if (toolbarTicketInfo){
toolbarTicketInfo.remove();
}
$('main-toolbar').down('span.right').insert({top:'<span class="toolbar_ticket_info">' + displayString + '</span>'});
}
}
SPICEWORKS.app.helpdesk.ready(function(){
// set styling
SPICEWORKS.utils.addStyle("\
span.toolbar_ticket_info{margin-right:20px;padding:0 5px;border:1px solid #999;}\
span.toolbar_ticket_info span{margin-right:5px;}\
#related_to_summary{display:none;clear:both;border:1px solid #ccc;padding:10px;margin:5px 0;overflow:hidden;}\
#related_to_summary ul{margin:0;padding:0;text-align:left;}\
#related_to_summary p{float:right;}\
");
// mark past due ticket rows
$('td.past_due').each(function(item){
item.up().setStyle({backgroundColor: plugin.settings.past_due_color});
});
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.closed(function(){
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.ready(function(){
// color private messages
$('li.private').each(function(item){
item.setStyle({backgroundColor: plugin.settings.private_note_color})
});
// add device summary
var deviceLink = $('related_to_property').down('.value a');
if(deviceLink) {
var deviceURL = deviceLink.readAttribute('href');
var startIndex = deviceURL.indexOf('devices/');
if(startIndex != -1) {
var substring = deviceURL.substring(startIndex);
var deviceID = substring.gsub(/[^\d]/, '');
var device = SPICEWORKS.data.Device.find(deviceID);
if(device) {
var displayInfo = '<div id="related_to_summary"><ul>'
var listStyle = '<li>'
if(device.ip_address && !device.ip_address.empty()) {
displayInfo += listStyle + '<strong>IP:</strong> ' + device.ip_address + '</li>';
}
if(device.mac_address && !device.mac_address.empty()) {
displayInfo += listStyle + '<strong>MAC:</strong> ' + device.mac_address + '</li>';
}
if(device.manufacturer && !device.manufacturer.empty()) {
displayInfo += listStyle + '<strong>Vendor:</strong> ' + device.manufacturer + '</li>';
}
if(device.current_user && !device.current_user.empty()) {
displayInfo += listStyle + '<strong>Last Login:</strong> ' + device.current_user + '</li>';
}
if(device.primary_owner_name && !device.primary_owner_name.empty()) {
displayInfo += listStyle + '<strong>Owner:</strong> ' + device.primary_owner_name + '</li>';
}
if(device.asset_tag && !device.asset_tag.empty()) {
displayInfo += listStyle + '<strong>Asset Tag:</strong> ' + device.asset_tag + '</li>';
}
if(device.operating_system && !device.operating_system.empty()) {
displayInfo += listStyle + '<strong>OS:</strong> ' + device.operating_system + '</li>';
}
if(device.serial_number && !device.serial_number.empty()) {
displayInfo += listStyle + '<strong>Serial No:</strong> ' + device.serial_number + '</li>';
}
displayInfo += '</ul><p><a href="#" onclick="new Effect.BlindUp(\'related_to_summary\', {duration:0.20}); return false;">hide</a></p></div>';
$('related_to_section').insert({after: displayInfo});
deviceLink.insert({after: ' (<a href="#" onclick="new Effect.BlindDown(\'related_to_summary\', {duration:0.20}); return false;">info</a>)'})
}
}
}
});
Tuesday, June 23, 2009
Cost and Time Estimation
- Right size your estimating process to the project
- Use qualified people
- Constantly monitor your estimates and estimators
- The estimate is what it is
Follow up: An Open Letter to our Nation's Leadership
I'm a home grown American citizen, 53, registered Democrat all my life. Before the last presidential election I registered as a Republican because I no longer felt the Democratic Party represents my views or works to pursue issues important to me. Now I no longer feel the Republican Party represents my views or works to pursue issues important to me. The fact is I no longer feel any political party or representative in Washington represents my views or works to pursue the issues important to me. There must be someone. Please tell me who you are. Please stand up and tell me that you are there and that you're willing to fight for our Constitution as it was written. Please stand up now. You might ask yourself what my views and issues are that I would horribly feel so disenfranchised by both major political parties. What kind of nut job am I? Will you please tell me?Well, these are briefly my views and issues for which I seek representation:
One, illegal immigration. I want you to stop coddling illegal immigrants and secure our borders. Close the underground tunnels. Stop the violence and the trafficking in drugs and people. No amnesty, not again. Been there, done that, no resolution. P.S., I'm not a racist. This isn't to be confused with legal immigration.
Two, the TARP bill, I want it repealed and I want no further funding supplied to it. We told you no, but you did it anyway. I want the remaining unfunded 95% repealed. Freeze, repeal.
Three: Czars, I want the circumvention of our checks and balances stopped immediately. Fire the czars. No more czars. Government officials answer to the process, not to the president. Stop trampling on our Constitution and honor it.
Four, cap and trade. The debate on global warming is not over. There is more to say.
Five, universal healthcare. I will not be rushed into another expensive decision. Don't you dare try to pass this in the middle of the night and then go on break. Slow down!
Six, growing government control. I want states rights and sovereignty fully restored. I want less government in my life, not more. Shrink it down. Mind your own business. You have enough to take care of with your real obligations. Why don't you start there.
Seven, ACORN. I do not want ACORN and its affiliates in charge of our 2010 census. I want them investigated. I also do not want mandatory escrow fees contributed to them every time on every real estate deal that closes. Stop the funding to ACORN and its affiliates pending impartial audits and investigations. I do not trust them with taking the census over with our taxpayer money. I don't trust them with our taxpayer money. Face up to the allegations against them and get it resolved before taxpayers get any more involved with them. If it walks like a duck and talks like a duck, hello. Stop protecting your political buddies. You work for us, the people. Investigate.
Eight, redistribution of wealth. No, no, no. I work for my money. It is mine. I have always worked for people with more money than I have because they gave me jobs. That is the only redistribution of wealth that I will support. I never got a job from a poor person. Why do you want me to hate my employers? Why ‑‑ what do you have against shareholders making a profit?
Nine, charitable contributions. Although I never got a job from a poor person, I have helped many in need. Charity belongs in our local communities, where we know our needs best and can use our local talent and our local resources. Butt out, please. We want to do it ourselves.
Ten, corporate bailouts. Knock it off. Sink or swim like the rest of us. If there are hard times ahead, we'll be better off just getting into it and letting the strong survive. Quick and painful. Have you ever ripped off a Band‑Aid? We will pull together. Great things happen in America under great hardship. Give us the chance to innovate. We cannot disappoint you more than you have disappointed us.
Eleven, transparency and accountability. How about it? No, really, how about it? Let's have it. Let's say we give the buzzwords a rest and have some straight honest talk. Please try ‑‑ please stop manipulating and trying to appease me with clever wording. I am not the idiot you obviously take me for. Stop sneaking around and meeting in back rooms making deals with your friends. It will only be a prelude to your criminal investigation. Stop hiding things from me.
Twelve, unprecedented quick spending. Stop it now.
Take a breath. Listen to the people. Let's just slow down and get some input from some nonpoliticians on the subject. Stop making everything an emergency. Stop speed reading our bills into law. I am not an activist. I am not a community organizer. Nor am I a terrorist, a militant or a violent person. I am a parent and a grandparent. I work. I'm busy. I'm busy. I am busy, and I am tired. I thought we elected competent people to take care of the business of government so that we could work, raise our families, pay our bills, have a little recreation, complain about taxes, endure our hardships, pursue our personal goals, cut our lawn, wash our cars on the weekends and be responsible contributing members of society and teach our children to be the same all while living in the home of the free and land of the brave.
I entrusted you with upholding the Constitution. I believed in the checks and balances to keep from getting far off course. What happened? You are very far off course. Do you really think I find humor in the hiring of a speed reader to unintelligently ramble all through a bill that you signed into law without knowing what it contained? I do not. It is a mockery of the responsibility I have entrusted to you. It is a slap in the face. I am not laughing at your arrogance. Why is it that I feel as if you would not trust me to make a single decision about my own life and how I would live it but you should expect that I should trust you with the debt that you have laid on all of us and our children. We did not want the TARP bill. We said no. We would repeal it if we could. I am sure that we still cannot. There is such urgency and recklessness in all of the recent spending.
From my perspective, it seems that all of you have gone insane. I also know that I am far from alone in these feelings. Do you honestly feel that your current pursuits have merit to patriotic Americans? We want it to stop. We want to put the brakes on everything that is being rushed by us and forced upon us. We want our voice back. You have forced us to put our lives on hold to straighten out the mess that you are making. We will have to give up our vacations, our time spent with our children, any relaxation time we may have had and money we cannot afford to spend on you to bring our concerns to Washington. Our president often knows all the right buzzword is unsustainable. Well, no kidding. How many tens of thousands of dollars did the focus group cost to come up with that word? We don't want your overpriced words. Stop treating us like we're morons.
We want all of you to stop focusing on your reelection and do the job we want done, not the job you want done or the job your party wants done. You work for us and at this rate I guarantee you not for long because we are coming. We will be heard and we will be represented. You think we're so busy with our lives that we will never come for you? We are the formerly silent majority, all of us who quietly work , pay taxes, obey the law, vote, save money, keep our noses to the grindstone and we are now looking up at you. You have awakened us, the patriotic spirit so strong and so powerful that it had been sleeping too long. You have pushed us too far. Our numbers are great. They may surprise you. For every one of us who will be there, there will be hundreds more that could not come. Unlike you, we have their trust. We will represent them honestly, rest assured. They will be at the polls on voting day to usher you out of office. We have cancelled vacations. We will use our last few dollars saved. We will find the representation among us and a grassroots campaign will flourish. We didn't ask for this fight. But the gloves are coming off. We do not come in violence, but we are angry. You will represent us or you will be replaced with someone who will. There are candidates among us when hewill rise like a Phoenix from the ashes that you have made of our constitution.
Democrat, Republican, independent, libertarian. Understand this. We don't care. Political parties are meaningless to us. Patriotic Americans are willing to do right by us and our Constitution and that is all that matters to us now. We are going to fire all of you who abuse power and seek more. It is not your power. It is ours and we want it back. We entrusted you with it and you abused it. You are dishonorable. You are dishonest. As Americans we are ashamed of you. You have brought shame to us. If you are not representing the wants and needs of your constituency loudly and consistently, in spite of the objections of your party, you will be fired. Did you hear? We no longer care about your political parties. You need to be loyal to us, not to them. Because we will get you fired and they will not save you. If you do or can represent me, my issues, my views, please stand up. Make your identity known. You need to make some noise about it. Speak up. I need to know who you are. If you do not speak up, you will be herded out with the rest of the sheep and we will replace the whole damn congress if need be one by one. We are coming. Are we coming for you? Who do you represent? What do you represent? Listen. Because we are coming. We the people are coming.
Friday, June 19, 2009
Spiceworks 4.0 released, helpdesk customization plugin updated
I then went and checked my helpdesk and aghhh, the helpdesk customization plugin I helped write was no longer working. That just wouldn't do, so I decided to fix all the things that were broken in it. I also removed the expanding height for the ticket responses box since the height is now liquid with the new version. I also went and shared the new version of the plugin.
It looks like it hasn't been updated with the new release yet and I'm not sure how long it will take, but there is a direct link to the plugin by going here. There is also the new source below. Enjoy.
// ==SPICEWORKS-PLUGIN==
// @name Help Desk Customizations Clone
// @description Adds minor enhancements to your Help Desk, including ticket status in the toolbar, colors for past due tickets and private messages, and information on devices in the Related To field.
// @version 0.4
// ==/SPICEWORKS-PLUGIN==
plugin.configure({
settingDefinitions: [
{name: 'past_due_color', label: 'Past Due Highlight Color', type: 'string', defaultValue: '#ffdede', example: 'Default: #ffdede'},
{name: 'private_note_color', label: 'Private Note Color', type: 'string', defaultValue: '#cccccc', example: 'Default: #cccccc'}
]
});
function refreshToolbarTicketInfo(){
// display ticket stats
var numOpenTickets = SPICEWORKS.data.Ticket.find('all', {filter:'open'}).length;
var numPastDue = SPICEWORKS.data.Ticket.find('all', {filter:'past_due'}).length;
var toolbarTicketInfo = $('main-toolbar').down('span.right span.toolbar_ticket_info');
if (toolbarTicketInfo){
toolbarTicketInfo.remove();
}
$('main-toolbar').down('span.right').insert({top:'<span class="toolbar_ticket_info" style="margin-right: 40px; padding: 0 5px; border: 1px solid #999;"><strong>Open Tickets:</strong> ' + numOpenTickets + ' <strong>Past Due:</strong> ' + numPastDue + '</span>'});
}
SPICEWORKS.app.helpdesk.ready(function(){
// mark past due ticket rows
$('td.past_due').each(function(item){
item.up().setStyle({backgroundColor: plugin.settings.past_due_color});
});
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.closed(function(){
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.ready(function(){
// color private messages
$('li.private').each(function(item){
item.setStyle({backgroundColor: plugin.settings.private_note_color})
});
// add device summary
var deviceLink = $('related_to_property').down('.value a');
if(deviceLink) {
var deviceURL = deviceLink.readAttribute('href');
var startIndex = deviceURL.indexOf('devices/');
if(startIndex != -1) {
var substring = deviceURL.substring(startIndex);
var deviceID = substring.gsub(/[^\d]/, '');
var device = SPICEWORKS.data.Device.find(deviceID);
if(device) {
var displayInfo = '<div id="related_to_summary" style="display: none; clear: both; border:1px solid #ccc; padding: 10px; margin: 5px 0; overflow: hidden;"><ul style="margin: 0; padding: 0; text-align: left;">'
var listStyle = '<li>'
if(device.ip_address && !device.ip_address.empty()) {
displayInfo += listStyle + '<strong>IP:</strong> ' + device.ip_address + '</li>';
}
if(device.mac_address && !device.mac_address.empty()) {
displayInfo += listStyle + '<strong>MAC:</strong> ' + device.mac_address + '</li>';
}
if(device.manufacturer && !device.manufacturer.empty()) {
displayInfo += listStyle + '<strong>Vendor:</strong> ' + device.manufacturer + '</li>';
}
if(device.current_user && !device.current_user.empty()) {
displayInfo += listStyle + '<strong>Last Login:</strong> ' + device.current_user + '</li>';
}
if(device.primary_owner_name && !device.primary_owner_name.empty()) {
displayInfo += listStyle + '<strong>Owner:</strong> ' + device.primary_owner_name + '</li>';
}
if(device.asset_tag && !device.asset_tag.empty()) {
displayInfo += listStyle + '<strong>Asset Tag:</strong> ' + device.asset_tag + '</li>';
}
if(device.operating_system && !device.operating_system.empty()) {
displayInfo += listStyle + '<strong>OS:</strong> ' + device.operating_system + '</li>';
}
if(device.serial_number && !device.serial_number.empty()) {
displayInfo += listStyle + '<strong>Serial No:</strong> ' + device.serial_number + '</li>';
}
displayInfo += '</ul><p style="float: right;"><a href="#" onclick="new Effect.BlindUp(\'related_to_summary\', {duration:0.20}); return false;">hide</a></p></div>';
$('related_to_section').insert({after: displayInfo});
deviceLink.insert({after: ' (<a href="#" onclick="new Effect.BlindDown(\'related_to_summary\', {duration:0.20}); return false;">info</a>)'})
}
}
}
});
Thursday, June 18, 2009
An Open Letter to our Nation's Leadership - The Petition Site
An Open Letter to our Nation's Leadership - The Petition Site
Wednesday, June 10, 2009
I got some swag, contest announcement
Speaking of decals, PunishUM is starting to have monthly giveaways just for being a member of their site. This months giveaway is a commemorative final Drift event shirt from the stadium and a limited edition PunishUM window decal.
Friday, June 5, 2009
Always be learning
The second approach is to write it down and not go to bed that night until you know the topic better than the person who brought it up. How else, precisely, are you going to become one of the smart people?Really, shouldn't everyone try to be smart? That is how we go about advancing our careers. And doesn't it just feel good to know things? I know it does for me.
Tuesday, June 2, 2009
Follow up: jQuery social bookmarking plugin
Monday, June 1, 2009
jQuery social bookmarking plugin
I decided to write a jQuery plugin to leverage simpler code. The following is the plugin jquery.addthis.js:
/*
* Addthis 1.0
* (c)2009 Brent Wong
*/
(function($){
$.addthis = function(code){
function init(){
try{
// determine whether to include the normal or SSL version
var addthisurl = (location.href.indexOf('https') == 0 ? 'https://' : 'http://') + 's7.addthis.com/js/250/addthis_widget.js?pub=' + code;
// include the script
$.getScript(addthisurl, function(){
$('a.addthis').append('<img src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/>').attr('href', 'http://www.addthis.com/bookmark.php?v=250').mouseover(
function(){
return addthis_open(this, '', '[URL]', '[TITLE]');
}).mouseout(
function(){
addthis_close();
}).click(
function(){
return addthis_sendto();
});
});
} catch(err) {
// log any failure
console.log('Failed to load AddThis Script:' + err);
}
}
init();
}
})(jQuery);
Then all you have to do is create a link such as this:
<a class="addthis"></a>
And include the jQuery command in the header:
$(function(){
$.addthis('publishername');
});
And voila, you have AddThis links.
Thursday, May 28, 2009
Useful jQuery Plugins
Pngfix: fixes problems with transparent png images in Internet Explorer 5 and 6
Corner: creates rounded corners (as well as other corner effects) with only javascript.
GATracker: allows you to load the google analytics tracker very simply at the beginning of the page. Also allows for tracking of internal links such as pdfs.
AddThis: adds social bookmarking links to your website.
BeautyTips: Nice looking and flexible tooltips
ed. 6/1/2009 - added AddThis
ed. 6/12/2009 - added BeautyTips
Easy audio recording on your computer
P.S. The build file uses Launch4j and Nullsoft Scriptable Installer System
Friday, May 22, 2009
How to Enable Automatic Complete for the Command Prompt (Cmd.exe)
It turns out that the fix is a simple registry change:
To enable automatic complete for Cmd.exe, use Registry Editor (Regedt32.exe) to view the following registry key:
HKEY_CURRENT_USER/Software/Microsoft/Command Processor
Edit the CompletionChar value, and set the value of REG_DWORD to 9. Note that you do not need to restart your computer.
Thursday, April 30, 2009
Socialized Electricity, everybody give to the poor
HECO plans credits for low-income customers - Pacific Business News (Honolulu):
Hawaiian Electric Co. has proposed raising rates on all customers to help cut the electric bills of low-income households.
The utility filed an application Thursday with the state Public Utilities Commission to offer so-called “lifeline rates” in the form of fixed monthly bill credits to qualifying families.
The proposed credit amounts are: $25 on Oahu, $30 on Maui, and $35 on the Big Island, Molokai and Lanai.
All ratepayers would pay a monthly surcharge to cover the cost of the credit program.
If approved, the surcharge for a typical monthly residential electric bill is estimated to be up to 31 cents on Oahu; up to 77 cents in Maui County; and up to $1.54 on the Big Island.
“We started developing this proposal late last year, but it’s especially timely now given the economic challenges our community is facing, and the need to help those most vulnerable,” Dick Rosenblum, HECO’s president and CEO, said in a statement.
The credits would be available to customers currently enrolled in one of three government assistance programs: Low Income Home Energy Assistance Program, Medicaid, and Supplemental Security Income.
HECO committed to develop the program as part of an energy agreement signed in October 2008 with the state as part of the Hawaii Clean Energy Initiative.
I know it is just 31 cents on Oahu, but it is the principle of the matter. Do we have any say in what policies natural monopolies are enacting. I guess they can use the political swing to their advantage whenever they see fit.
Tuesday, April 28, 2009
Java Installation: Update 13 note
Tuesday, April 21, 2009
Java Installation: Internal Error 2753. regutils.dll
Friday, April 17, 2009
Spiceworks Help Desk Customization Plugin
- ticket status in the toolbar
- increased ticket window height
- colors for past due tickets and private messages
- information on devices in the Related To field
- custom color codes
- enabling/disabling ticket window height
- custom ticket window height
- more refreshes in the ticket status toolbar
If you have Spiceworks, you can install the plugin here. If not, what's wrong with you?
The following is the source code for the plugin. Feel free to borrow from it or use it as a tutorial to start programming plugins for Spiceworks.
// ==SPICEWORKS-PLUGIN==
// @name Help Desk Customizations Clone
// @description Adds minor enhancements to your Help Desk, including ticket status in the toolbar, increased ticket window height, colors for past due tickets and private messages, and information on devices in the Related To field. From Kat's plugin, I made the expanding height optional and put a refresh of the status bar on ticket close.
// @version 0.3
// ==/SPICEWORKS-PLUGIN==
plugin.configure({
settingDefinitions: [
{name: 'past_due_color', label: 'Past Due Highlight Color', type: 'string', defaultValue: '#ffdede', example: 'Default: #ffdede'},
{name: 'private_note_color', label: 'Private Note Color', type: 'string', defaultValue: '#e3eaf2', example: 'Default: #e3eaf2'},
{name: 'expanded_height_enabled', label:'Enable Increased Window Height', type:'checkbox', defaultValue: false},
{name: 'expanded_height', label: 'Ticket Window Height (in px)', type: 'string', defaultValue: '500', example: 'Default: 500'}
]
});
function refreshToolbarTicketInfo(){
// display ticket stats
var numOpenTickets = SPICEWORKS.data.Ticket.find('all', {filter:'open'}).length;
var numPastDue = SPICEWORKS.data.Ticket.find('all', {filter:'past_due'}).length;
var toolbarTicketInfo = $('toolbar').down('span.advanced_controls span.toolbar_ticket_info');
if (toolbarTicketInfo){
toolbarTicketInfo.remove();
}
$('toolbar').down('span.advanced_controls').insert('<span class="toolbar_ticket_info" style=" float: right; background: #e8e8e8; padding: 3px 5px; border: #888 1px solid;"><strong>Open Tickets:</strong> ' + numOpenTickets + ' <strong>Past Due:</strong> ' + numPastDue + '</span>');
}
SPICEWORKS.app.helpdesk.ready(function(){
// increase window size
if(plugin.settings.expanded_height_enabled){
SPICEWORKS.utils.addStyle("body.tickets #active_overview {height: " + plugin.settings.expanded_height + "px !important;}");
}
// mark past due ticket rows
$$('td.past_due').each(function(item){
item.up().setStyle({backgroundColor: plugin.settings.past_due_color});
});
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.closed(function(){
refreshToolbarTicketInfo();
});
SPICEWORKS.app.helpdesk.ticket.ready(function(){
// color private messages
$$('li.private').each(function(item){
item.setStyle({backgroundColor: plugin.settings.private_note_color})
});
// add device summary
var deviceLink = $('ticket_review_summary_view').down('p.related_to a');
if(deviceLink) {
var deviceURL = deviceLink.readAttribute('href');
var startIndex = deviceURL.indexOf('id-');
if(startIndex != -1) {
var substring = deviceURL.substring(startIndex);
var deviceID = substring.gsub(/[^\d]/, '');
var device = SPICEWORKS.data.Device.find(deviceID);
if(device) {
var displayInfo = '<div id="related_to_summary" style="display: none; clear: both; border:1px solid #ccc; padding: 10px; margin: 5px 0; overflow: hidden;"><ul style="margin: 0; padding: 0;">'
var listStyle = '<li style="float: left; width: 200px;">'
if(device.ip_address && !device.ip_address.empty()) {
displayInfo += listStyle + '<strong>IP:</strong> ' + device.ip_address + '</li>';
}
if(device.mac_address && !device.mac_address.empty()) {
displayInfo += listStyle + '<strong>MAC:</strong> ' + device.mac_address + '</li>';
}
if(device.manufacturer && !device.manufacturer.empty()) {
displayInfo += listStyle + '<strong>Vendor:</strong> ' + device.manufacturer + '</li>';
}
if(device.current_user && !device.current_user.empty()) {
displayInfo += listStyle + '<strong>Last Login:</strong> ' + device.current_user + '</li>';
}
if(device.primary_owner_name && !device.primary_owner_name.empty()) {
displayInfo += listStyle + '<strong>Owner:</strong> ' + device.primary_owner_name + '</li>';
}
if(device.asset_tag && !device.asset_tag.empty()) {
displayInfo += listStyle + '<strong>Asset Tag:</strong> ' + device.asset_tag + '</li>';
}
if(device.operating_system && !device.operating_system.empty()) {
displayInfo += listStyle + '<strong>OS:</strong> ' + device.operating_system + '</li>';
}
if(device.serial_number && !device.serial_number.empty()) {
displayInfo += listStyle + '<strong>Serial No:</strong> ' + device.serial_number + '</li>';
}
displayInfo += '</ul><p style="float: right;"><a href="#" onclick="new Effect.BlindUp(\'related_to_summary\', {duration:0.20}); return false;">hide</a></p></div>';
$('ticket_purchase_container').insert({after: displayInfo});
deviceLink.insert({after: ' (<a href="#" onclick="new Effect.BlindDown(\'related_to_summary\', {duration:0.20}); return false;">info</a>)'})
}
}
}
});
Thursday, April 16, 2009
Free Success Manifesto
On another note, his site looks pretty awesome.
Tuesday, April 14, 2009
Congratulations Hawaii...not the worst Pork spenders
According to the new report released by the Citizens Against Government Waste (or CAGW for short,) Hawaii ranks as the second worst per capita pork spenders in the Nation. The good news is that we aren't the worst.
According to the CAGW site,
Citizens Against Government Waste (CAGW) is a private, non-partisan, non-profit organization representing more than one million members and supporters nationwide. CAGW's mission is to eliminate waste, mismanagement, and inefficiency in the federal government. Founded in 1984 by the late industrialist J. Peter Grace and syndicated columnist Jack Anderson, CAGW is the legacy of the President's Private Sector Survey on Cost Control, also known as the Grace Commission.
This story makes me wonder, does CAGW also stand for Citizens Against Global Warming?
Monday, April 13, 2009
First they came...
Very good poem written by Pastor Martin Niemöller that will probably apply to every era.
They came first for the Communists,
Then they came for the Jews,
and I didn't speak up because I wasn't a Communist.
and I didn't speak up because I wasn't a JewThen they came for the trade unionists
and I didn't speak up because I wasn't a trade unionist.Then they came for the Catholics
and I didn't speak up because I was a ProtestantThen they came for me,
and by that time no one was left to speak up
Tuesday, March 24, 2009
Scheduling a Weekly Defrag in Windows
If it seems like your computer has gotten slower since you bought it, it probably has. One of the biggest factors that slows down your computer’s performance is fragmentation, a situation that occurs over time, in which files on your hard drive become divided into small pieces. Your computer must read a file to open, save, or close it. So when it reads each piece of a fragmented file separately, the effect is that the file can seem “slow” when you’re working with it.
Defragmenting your hard drive is the process of putting all the scattered pieces of files back together. Microsoft Windows XP includes a tool that will defragment your hard drive for you. To keep your system performing well, it’s a good idea to have Windows XP automatically defragment your hard drive every week.
Just a note, there are some helpful command line options for Windows XP and Windows Server 2003:
Usage:
defrag <volume> [-a] [-f] [-v] [-?]
volume drive letter or mount point (d: or d:\vol\mountpoint)
-a Analyze only
-f Force defragmentation even if free space is low
-v Verbose output
-? Display this help text
On Vista and Server 2008, there seem to be a few more options according to this article:
The list of supported command line parameters for "defrag.exe" is the following:
- drive letter - this parameter specifies the drive letter or the mount point path of the volume that will be analyzed or defragmented. (e.g. "defrag c:" or "defrag e:\volume\mountpoint");
- -c - using this parameters forces "defrag.exe" to defragment all volumes on your computer. (e.g. "defrag -c");
- -a - performs only fragmentation analysis and it doesn't defragment the specified drive. (e.g. "defrag d: -a");
- -r - performs a partial defragmentation which consolidates only the fragments which are smaller than 64 MB. This is the default setting. This means that "defrag v:" and "defrag v: -r" are equivalent and the Disk Defragmenter will perform the same type of defragmentation;
- -w - when you use this switch, "defrag.exe" will perform a full defragmentation, regardless of the fragments size. (e.g. "defrag c: -w");
- -f - forces the defragmentation even if the free space is lower than 15%. (e.g. "defrag c: -f");
- -v - verbose mode. In this mode, "defrag.exe" will show a detailed analysis and defragmentation output. (e.g. "defrag d: -v");
- -? - displays help information about how to use "defrag.exe". (e.g. "defrag -?").
Monday, March 23, 2009
Bothering me: Outrageous Salaries for CEOs
Maybe now with it being an "employers-market" we can get away with paying CEOs only $5 million instead of 50.
ed. Here are some great ideas from BusinessPundit on the issue.
Friday, March 20, 2009
Reprint: Speed Safely by Tracy Arakaki
2001 was a year to forget in regards to tragedy caused due to illegal street racing. Young Logan Fujimoto lost his life after he flew off the freeway and landed in a service station parking lot near Kahala Mall. A month later school teacher Elizabeth Kekoa was killed just a few miles from where young Logan lost his life. The driver Nicolas Tudisco is sitting in a prison cell serving 10 years for his poor decision.
Since January 1st of this year there has been 15 fatal crashes resulting in 17 deaths. 60% or 9 of these fatal accidents were due to excessive speeding. In 2008 Honolulu Police gave out over 58,800 citations for speeding. On a recent Friday evening I was listening to a police frequency for a single district and within 30 minutes there were 6 calls to officers on the beat of racing or speeding vehicles.
In 2001 with the help of import drag racer Shaun Carlson PunishUM Motorsports produced a 30 second Public Service Announcement with the help of a well known marketing firm. This PSA had gotten air time on all the network stations during the 2001 holiday season.
This year with the help of Lieutenant Governor Duke Aiona PunishUM Motorsports is producing 3 Public Service Announcements and a half hour television special addressing illegal "Street Racing" or just plain "SPEEDING" and its consequences. Featured on the show is Prosecutor Peter Carlisle, Representative Glenn Wakai and others inform viewers that Speeding can lead to jail time or worse, Death.
Just a few days ago 3 young adults were killed again due to excessive speeding. A tragic loss due to really, there is no other word for it but being plain "STUPID".
The only place is a racetrack and "NOT" the streets.
If you would like more information in regards to this "Speed Safely" campaign you can log onto punishum.com.
Obama: Out of Touch, but Popular
That is what makes me think that he is just out of touch. I don't know what they learn in Chicago, but it doesn't seem to be about thinking things through (No, not a ding against Chicago-ans, just of the political bunch.) The economy is doing bad and that is something we all know about. So why keep pushing frivolous spending such as $2.4B USD for electric vehicles, continuing subisidies for corn based ethanol, and multi-billion dollars to many other programs. It is just ludicrous. Not only that, but the Federal Reserve is going to create $1 trillion out of thin air.
It is just so frustrating to see everything skewed so far to the political left. Personally I am more of a moderate and didn't exactly like the previous administration either. But take a step back and look at what you are doing before you rush in to frivolous off the cuff spending. Politicians need to look back at history and see what hurts and what helps. The can even look at the lives of the common citizen for help. When we (the common man) are in trouble financially, we save and spend money on the things that have a good ROI. That is what our politicians need to see.
Sorry about my little rant. Now back to working with FoxPro.
Thursday, March 19, 2009
Tried out Alfresco, Uninstalled
Why?
For a few reasons actually. First of all, it didn't do too well running on as a Windows service. There are some instructions online but that is just a dead end as it is written for an older version of Alfresco, and it appears that I am not the only one having that problem. I tried just about everything to get it to run as a service, pre-setting all the environmental variables in the tomcat service, adding more memory to the heap, and copied all the settings from the older tutorial. All of that to no avail.
It also is not very well documented in how to run everything. It does look like a good starting point and is probably awesome after you get it set up by someone that knows what they are doing, but for simple uses, it just wasn't the product for me.
Monday, March 16, 2009
Charting libraries for PHP
I have already used eZ components to make bar graphs and that was pretty easy and quick to set up.
Tuesday, March 10, 2009
Trying out Alfresco Document Management
Being that I run Windows XP with OpenOffice.org already installed, I ran into some problems right off the bat. The first thing that happend was that I thought I didn't have to install the JDK. That was a silly mistake on my part, so I just reran the installer again. The next problem I ran into was when I ran the startup of the Alfresco Server. I kept reading the log lines as it started up and noticed that it said something to the effect of "Cannot run C:\Alfresco\OpenOffice.org\programs\soffice". I thought "Wow, that's funny, that's not where I have my OpenOffice installed." So going through the startup program alfresco.bat, I noticed that it called another program SetPaths.bat. I looked in there and noticed that it set an environmental variable called OPENOFFICE_HOME. But the path was my CORRECT install directory. Great I was at a dead end. I ran through a search for the path it was trying to run but Windows XP and Windows Search 4.0 wasn't indexing all the right files fully so it wasn't returning anything. Then i saw that the Tomcat startup was looking at a .properties file. So I adjusted the Windows Search to fully index those files and got a hit. C:\Alfresco\tomcat\shared\classes\alfresco\extension\custom-repository.properties. These files are similar to ini files and had the assignment "ooo.exe=C:\Alfresco\OpenOffice.org\programs\soffice." I just changed that to the correct path and voila! it started up perfectly.
So far I haven't done much with Alfresco so I can't give a really good review. It does seem to be the best open source document management system out there at this time.
Tuesday, February 24, 2009
EU to Strike Another Blow to the "Evil" Microsoft
I see some correlation between this and the way the US is headed. Socialism. Woops, did I really say that. Now me, I grew up as a Liberal and now days I am more of a moderate. You know, I can see what people like about socialism, the lowest common denominator is taken care of and everyone lives a "happier life." But what about the person that wants to change their position in life? The person that grew up in the lower or lower-middle class and has dreams of being rich. That person wants to work hard and change their life. Well Socialism works against that and won't allow for the outliers. Sort of like a bell-curve on life.
Seth Godin is the luckiest guy
Again, congratulations Seth Godin.
P.S. Posted with ScribeFire and hopefully no tracking bug :)
Friday, February 20, 2009
A caveat with MySQL and INNODB
ERROR 1005: Can't create table (errno: 150)
There was no description of the error that I could use to fix it so I was stumped. So after doing a little searching, I came across this thread on the MySQL forums. Basically the problem was that the column for the referenced foreign key was not the same as the referencing column. It seems that a lot of people will forget the "Unsigned" property.
Another simple problem was
ERROR 1005: Can't create table (errno: 121)
This error stems from a duplicate foreign key name. Just be sure to name all of your foreign keys unique names.
Monday, February 16, 2009
Got my book in the mail
I think the best part of the book is that it could be used across different languages. Most of the focus is not on php, but on the aspect of finding a job or running a business. I'd deffinetly recommend this book for anyone looking to get into the business.
Posting this with ScribeFire
I'll continue using this to posts my entries and maybe post some updates in the future.
Update:
Alright, I just noticed that ScribeFire does something that will probably make me stop using it. That thing is adding a little 1px by 1px gif image that uses the Zemanta linking service. I didn't see any warning prior to using ScribeFire but did see a little empty square at the bottom of my new posts. The following is the example code:
<div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=2d26f023-deb5-4bb3-b6d1-6892a134c0ee' class='zemanta-pixie-img'/></div>
Thursday, February 12, 2009
USDA Urges EPA to Increase Amount of Ethanol in Gasoline
Corn based ethanol is good for drinking (e.g. Bourbon), but it's a terrible fuel. In addition to the above reasons, corn requires huge amounts of water to grow and the increase in corn production for ethanol has accelerated the lowering of the ground water table in the massive Ogallala aquifer.
Corn based ethanol uses up precious farm land, uses huge amounts of water, and only produces about 30% more energy that it takes to produce (and that's considered a generous estimate, it may be closer to break even).
Stop the insanity! No subsidies for corn, corn based ethanol, or cornstarch/HFCS. Tell your congresspersons to end the subsidies on corn, end the taxes on sugar cane, and end or delay the ethanol blend requirements. That will affect the ethanol and alternative fuel markets as well as the sugar and sweetener market and food prices.
The corn growers and corn based ethanol distillers may not like it, but until they can demonstrate a viable way to make cellulosic ethanol, the only ethanol made from corn should be in liquor stores.
Tuesday, February 3, 2009
Complex Web Pages with the Zend Framework
And if anyone has any good tutorials or thoughts, then by all means, post a comment.
http://blog.astrumfutura.com/archives/281-Complex-Web-Pages-with-the-Zend-Framework.html
http://blog.astrumfutura.com/archives/282-Complex-Views-with-the-Zend-Framework-Part-2-View-Helper-Pattern.html
http://blog.astrumfutura.com/archives/283-Complex-Views-with-the-Zend-Framework-Part-3-Composite-View-Pattern.html
http://blog.astrumfutura.com/archives/285-Complex-Views-with-the-Zend-Framework-Part-4-The-View-Factory.html
http://blog.astrumfutura.com/archives/288-Complex-Views-with-the-Zend-Framework-Part-5-The-Two-Step-View-Pattern.html
http://blog.astrumfutura.com/archives/291-Complex-Views-with-the-Zend-Framework-Part-6-Setting-The-Terminology.html
Friday, January 30, 2009
I won a book, I think
I know it's stupid but I didn't realize his site was based in the UK and not in the US where I am. But looking at what he's doing with his site got me interested in making my own phppositions site. What it is is a learning process for him to learn the Zend Framework. That works out for me because I am interested in learning about the Zend Framework as well. We'll just have to see if I decide to go through with it.
And thanks to Dave Marshall.
Tuesday, January 6, 2009
Reprint: The Fall of GM - a visual guide
Source: Wallstats.com
Friday, January 2, 2009
Swagbucks search and win?
So far we've only gotten 8 swagbucks (including the 3 that registering gives you) and a $5 amazon gift certificate is 45. If you want to sign up, click the banner and you can sign up using my wife as the referrer. I guess we get a swagbuck for everyone who signs up.