This man will leave a lasting legacy of educated people.
http://www.khanacademy.org/
This is absolutely the BEST of the Internet.
Monday, June 28, 2010
Wednesday, June 16, 2010
ATT triple FAIL!
Your iPad email addresses are showing
First we find out that 114,000 emails got exposed by AT & T. No big deal right? Wrong.
http://www.dailytech.com/ATT+Accidentally+Shares+114000+iPad+3G+Buyers+Email+Addresses/article18670.htm
Using the email and the sim card ICC-ID this analyst seems to think this gives you global tracking ability down to the cell level on these users.
http://arstechnica.com/security/news/2010/06/atts-ipad-security-breach-could-be-worse-than-initially-thought.ars
Once you can track them to a cell you can use the IMSI to spoof the phone to get email, calls etc.
I want my iPhone!
I used to work for SBC on their website and thought that some of the people were pretty much unskilled warm bodies cashing a paycheck. Evidently these bodies did produce something... the preorder system for the iPhone.
http://gizmodo.com/5564913/proof-iphone-4-pre+orders-using-other-peoples-credit-cards-shipping-info
My father always said that when you are doing business you can't make people stand in line to give you money. Evidentially this was lost on AT & T. I don't blame Apple. I'm sure their order fulfillment is using crufty data supplied by an under engineered, under tested database.
Service with a smile! Not!
Apparently Randy Stephenson does not like answering the email of average joes...
http://gizmodo.com/5554695/email-atts-ceo-get-threatened-with-legal-action
Personally I find this attitude appalling. Here was an opportunity to hand over an email to a CSR and make a customer happy. Instead you lose that customer and others for life.
Kind of reminds you of this guy...
http://voices.washingtonpost.com/right-now/2010/06/bob_etheridge_the_morning_afte.html
Conclusion
Apple run to Verizon as fast as you can!
First we find out that 114,000 emails got exposed by AT & T. No big deal right? Wrong.
http://www.dailytech.com/ATT+Accidentally+Shares+114000+iPad+3G+Buyers+Email+Addresses/article18670.htm
Using the email and the sim card ICC-ID this analyst seems to think this gives you global tracking ability down to the cell level on these users.
http://arstechnica.com/security/news/2010/06/atts-ipad-security-breach-could-be-worse-than-initially-thought.ars
Once you can track them to a cell you can use the IMSI to spoof the phone to get email, calls etc.
I want my iPhone!
I used to work for SBC on their website and thought that some of the people were pretty much unskilled warm bodies cashing a paycheck. Evidently these bodies did produce something... the preorder system for the iPhone.
http://gizmodo.com/5564913/proof-iphone-4-pre+orders-using-other-peoples-credit-cards-shipping-info
My father always said that when you are doing business you can't make people stand in line to give you money. Evidentially this was lost on AT & T. I don't blame Apple. I'm sure their order fulfillment is using crufty data supplied by an under engineered, under tested database.
Service with a smile! Not!
Apparently Randy Stephenson does not like answering the email of average joes...
http://gizmodo.com/5554695/email-atts-ceo-get-threatened-with-legal-action
Personally I find this attitude appalling. Here was an opportunity to hand over an email to a CSR and make a customer happy. Instead you lose that customer and others for life.
Kind of reminds you of this guy...
http://voices.washingtonpost.com/right-now/2010/06/bob_etheridge_the_morning_afte.html
Conclusion
Apple run to Verizon as fast as you can!
Labels:
ATT,
iPhone,
rude,
technology,
web development
Tuesday, June 15, 2010
Driving Directions 100 pecent of the time - 100 percent of the time
I have had the opportunity to code a locator application using the Google Maps API. As our locator has evolved we look for ways to refactor and produce a higher quality product. This is a traditional locator, the user provides the center point for the search and then using our data we plot the locations around that center point.
The application had problems with providing driving directions in consistent manner. This mainly presented itself when the user entered an incomplete address. Providing a zip code or a just a city name will plot a point on that feature's centroid. This type of address was sometimes incompatible with the the GDirections object. Many times this would return a status code of 602. Other times it would work correctly. So what to do?
Digging deeper into the GDirections object it appears that it will take addresses or lat long pairs or a combination of both. We experimented with supplying lat long pairs for the start and end points in Google Maps. We were viewing a rural area and right clicked in the middle of a field to select directions from here. When the directions plotted it used the closest road as the start point. Eureka!
So then the application was rewritten to utilize only geographic points for plotting driving directions. But this did not work as well as we had hoped. Directions generated via this method do not have a fully formed address as the origin or destination in the directions listing. Instead of '123 Main St.' The origin would be listed as just 'Main St.'. The marker is plotted exactly where we want it, however, the user is just not informed of the destination address.
So it appears that a hybrid approach will solve the problem of the 602 errors. We will structure our code to attempt to use the incomplete addresses and if that does not work we will drop back to just using the the geographic points. To see how this works let's take a look at the code snippet below. ( ${variable_name} indicates an injection point from the jsp )
Notice that we define an event handler for the first attempt at getting directions, however, we really don't use it to display an error. We pass a function pointer to initLatLongDirections() to attempt to resolve the directions using the this function. Within this function we create a new event handler that points the actual error function.
The application had problems with providing driving directions in consistent manner. This mainly presented itself when the user entered an incomplete address. Providing a zip code or a just a city name will plot a point on that feature's centroid. This type of address was sometimes incompatible with the the GDirections object. Many times this would return a status code of 602. Other times it would work correctly. So what to do?
Digging deeper into the GDirections object it appears that it will take addresses or lat long pairs or a combination of both. We experimented with supplying lat long pairs for the start and end points in Google Maps. We were viewing a rural area and right clicked in the middle of a field to select directions from here. When the directions plotted it used the closest road as the start point. Eureka!
So then the application was rewritten to utilize only geographic points for plotting driving directions. But this did not work as well as we had hoped. Directions generated via this method do not have a fully formed address as the origin or destination in the directions listing. Instead of '123 Main St.' The origin would be listed as just 'Main St.'. The marker is plotted exactly where we want it, however, the user is just not informed of the destination address.
So it appears that a hybrid approach will solve the problem of the 602 errors. We will structure our code to attempt to use the incomplete addresses and if that does not work we will drop back to just using the the geographic points. To see how this works let's take a look at the code snippet below. ( ${variable_name} indicates an injection point from the jsp )
function initDirections() {
directionsMap = new GMap2(document.getElementById("drivingMap"));
// try to use addresses.
var startAddress = '${spAddress}';
var endAddress = '${epAddress}';
addressDirections = new GDirections(directionsMap, document.getElementById('drivingDetails'));
GEvent.addListener(addressDirections, "error", initLatLongDirections);
addressDirections.load("from: ${spAddress} to: ${epAddress}", {travelMode:G_TRAVEL_MODE_DRIVING});
}
function initLatLongDirections() {
//alert("dropping to latlong becuase of error" + status);
var status = addressDirections.getStatus().code;
if ( addressDirections.getStatus().code != 200 )
{
var startLatLng = new GLatLng( '${spLatitude}', '${spLongitude}' );
var endLatLng = new GLatLng( '${epLatitude}', '${epLongitude}' );
latlongDirections = new GDirections(directionsMap, document.getElementById('drivingDetails'));
GEvent.addListener(latlongDirections, "error", onDirectionsError);
latlongDirections.load("from: ${spLatitude}, ${spLongitude} to: ${epLatitude}, ${epLongitude}", {travelMode:G_TRAVEL_MODE_DRIVING});
}
}
function onDirectionsError(mode) {
var status = latlongDirections.getStatus().code;
if (status != 200)
{
document.getElementById("directionsGenerated").value = 'false';
document.getElementById("mapDisplayStatus").value = 'error';
document.getElementById("termSearchDisplay").style.display = '';
document.getElementById("termSearchAddress").style.display = '';
document.getElementById("errorMapDisplayText").style.display = '';
document.getElementById("mapHeader").style.display ='none';
document.getElementById("mapDetail").style.display='none';
}
}
Notice that we define an event handler for the first attempt at getting directions, however, we really don't use it to display an error. We pass a function pointer to initLatLongDirections() to attempt to resolve the directions using the this function. Within this function we create a new event handler that points the actual error function.
Labels:
Google Maps,
javascript,
software,
web development
Friday, June 11, 2010
Theres an app for that
Cruise missile guidance... Think about it. The new iPhone is perfect as a guidance system for a cruise missile - GPS, attitude gyros for positioning, heck, you could even pipe the camera images back to Centcom so they could get the kill video as it drove right through the door. Don't try to tell me that the GPS signal comes through a cell tower and that there are no cell towers on the ocean... uh-uh. Ever notice that your location is available even when you don't have a connection? For more info see http://arstechnica.com/apple/news/2008/10/using-the-iphones-gps-without-a-network-connection.ars
What cost the government millions to develop in the 1960s / 70s can now be yours for $200 and a 2 year contract.
What cost the government millions to develop in the 1960s / 70s can now be yours for $200 and a 2 year contract.
Labels:
hack,
iPhone,
technology
Wednesday, June 2, 2010
Lego printer
I think most engineers played with Lego, Erector, or Tinker Toys as they grew up. This beats the crap out of any Mindstorm kit from Lego.
I love the little worker that makes the pen go up and down!
I love the little worker that makes the pen go up and down!
Labels:
humor,
technology
Subscribe to:
Posts (Atom)