tag:blogger.com,1999:blog-272289312024-03-13T02:04:27.161-07:00Dave's TechytipsDavid Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.comBlogger39125tag:blogger.com,1999:blog-27228931.post-56167666226748732092023-08-12T15:52:00.010-07:002023-08-12T16:07:26.370-07:00Installing Vicidial cluster & migrating from an existing installation<p><span style="font-size: 15px;">Upgraded Vicidial to new server hardware and VM's recently and found it extremely difficult in concept to take the plunge. The below guide is a brief to demystify how to install it using Vicibox v9. If you are migrating from an existing there are special steps to do, these are are optional steps are marked as <span style="background-color: #f6b26b;">#migrate</span>.</span></p><p><span style="font-size: 15px;"><br /></span></p><h3 style="text-align: left;"><span style="font-size: 15px;">Vicidial Server Cluster overview:</span></h3><p><span style="font-size: 15px;">Vicidial servers have the role types: Database, Telephony, Web, Archive. Based upon the infratructure intent these can be one one or many m/c's; we choose to have each of these servers as a separete instances. When seperate, the servers need to be installed in the order: database, archive, web, Telephony (n times). Each can be done in under 10m, though the database took us about 20m given the size of our tar.gz is ~200mb.</span></p><h3 style="text-align: left;"><span style="font-size: 15px;">Pre-requisite & assumption:</span></h3><p><span style="font-size: 15px;">Download ViciBox ISO (here's a <a href="http://download.vicidial.com/iso/vicibox/server/archive/">list of download for vicibox</a>)</span></p><p><span style="font-size: 15px;">You can install VM's rapidly from HyperV; created a Gen 1 box; setting the ISO as the installation CD.</span></p><h3 style="text-align: left;"><span style="font-size: 15px;">Steps to install each server:</span></h3><p><span style="font-size: 15px;">It's a similar install for each server installation: install OS, establish networking, get appropriate SVN version (critical if performing a migration/restore), install vicidial. It's the last step that varies depending on the server type. Complete the setup of each server before moving on to the next.</span></p><p><span style="font-size: 15px;">1) Install ViciBox (using ISO)</span></p><p><span style="font-size: 15px;">2) run from CLI: <span style="font-family: courier;">yast lan</span></span></p><p><span style="font-size: 15px;"> (affirm networking works by ping google.com)</span></p><h4 style="text-align: left;"><span style="font-size: 15px;">Before proceeding to 3, if this is a migration/restore:</span></h4><p><span style="font-size: 15px;"><span style="font-family: courier;">cd /usr/src/astguiclient/</span></span></p><p><span style="font-size: 15px;"><span style="font-family: courier;">svn checkout -r 3426 svn://svn.eflo.net:3690/agc_2-X/trunk</span></span></p><p><span style="font-size: 15px;">(where 3426 is the desired SVN obtained from observing the value in the UI of the existing Vici Admin, Server Settings page.)</span></p><p><span style="font-size: 15px;">Should output a lot of obtain files, concluding with:</span></p><p><span style="font-size: 15px;"></span></p><blockquote> Checked out revision 3426.</blockquote><p><span style="font-size: 15px;">3) Run: <span style="font-family: courier;">vicibox-install</span></span></p><p><span style="font-size: 15px;">This is where you'll need to specify the server role. Each question is important to answer appropriately, else you may need to start all over. (You've been warned! h/t mflorell)</span></p><h4 style="text-align: left;"><span style="font-size: 15px;"><span style="background-color: #ffd966;">#migrate</span> Database Backup & Copy</span></h4><p><span style="font-size: 15px;">Backup existing database using ADMIN_backup.pl. I decided to not include log & archives and from the legacy database server ran the command:</span></p><p><span style="font-family: courier; font-size: 15px;">/usr/share/astguiclient/ADMIN_backup.pl --db-only --db-without-logs --db-without-archives</span></p><p><span style="font-size: 15px;">This creates a file named like [ipaddress].tar.gz.</span></p><p><span style="font-size: 15px;">You'll later copy this using scp from the original server to the new server:</span></p><p><span style="font-size: 15px;"><span style="font-family: courier;">scp /var/log/astguiclient/archive/10.1.1.50_ALL_5.tar.gz root@10.83.90.119:/root</span></span></p><p><span style="font-size: 15px;">(obviously replacing the file name and IP address with your own)</span></p><h4 style="text-align: left;"><span style="font-size: 15px;">Telephony (VoIP) Server:</span></h4><p><span style="font-size: 15px;">For the VoIP server, you will be prompted to answer:</span></p><p style="text-align: left;"><span style="font-size: 15px;"></span></p><blockquote><p style="text-align: left;"><span style="font-size: 15px;">Will this server be used as a Telephony server? [y/N] : y</span></p><p style="text-align: left;"><span style="font-size: 15px;">---> Is this the first server in a cluster? [y/N] :</span></p></blockquote><p><span style="font-size: 15px;">If you are <span style="background-color: #ffd966;">#migrating</span>, pay attention to answer the second question with a N.</span></p><p><span style="font-size: 15px;">If the following error occurs:</span></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;"><span style="font-size: 15px;"></span></p><blockquote>Telephony server already exists! Server was previously installed.</blockquote></blockquote><p><span style="font-size: 15px;">Then you'll need to delete the server record. Do this in the Vicidial GUI (or in mysql from the servers table). Then repeat the vicibox-install step.</span></p><p><span style="font-size: 15px;">After installing the Telephony server, the server status should show in Vicidial. If it shows up with a red status, make sure that the server registration has the correct Asterisk version in the vicidial GUI Admin, Server, Asterisk Version. The version should match the name shown in asterisk when connecting via ssh and running asterisk -rvvv. For example: 13.27.0-vici.</span></p>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-53245292795321618212014-11-11T12:43:00.001-08:002014-11-11T12:43:38.927-08:00How I got Tickets To Big Bang TheoryI don't watch much television, but I've been watching the Big Bang Theory show for years. I love it because I can empathize with several attributes of the characters and it reminded me of several childhood encounters with my geeky friends. I though I had found <i><b>my show</b></i>, but it turns out that nearly <a href="http://www.latimes.com/entertainment/envelope/cotown/la-et-ct-tv-ratings-big-bang-theory-jane-the-virgin-the-voice-20141021-story.html" target="_blank">15 million</a> watch this this top rated CBS show.<br />
<br />
For the past couple years, I've been trying to get tickets to see a live taping at Warner Bros. Studios in Burbank. The TVTickets <a href="http://www.tvtickets.com/fmi/xsl/tickets/addrecord.xsl?" target="_blank">website</a> provides audience tickets to the Big Bang Theory taping, but they are not showing because they are "sold out". The website states:<br />
<blockquote class="tr_bq">
<span style="background-color: #f8f8f8; color: #383838; font-family: verdana, tahoma; font-size: xx-small;">The show schedule and this order form automatically update by 8:30am (M-F Los Angeles time) to display shows scheduled for the next 30 days. Shows/dates that are "sold out" or are more than 30 days from today will not be included in the drop box.</span></blockquote>
So I've been repetitively checking the website. After a while, I relegated to fact that I'd only see the be able to see the TV that the rescinded to the fact that I'd never<br />
<br />
I've been checking routinely, but after two unsuccessful seasons, I decided to kick things up a notch by creating a HTTP monitor for the website. I configured it to look for the keyword "Bang" on the webpage, which would only appear if the show has available time slots for ticket reservations. I first set this up as a <a href="http://linux.about.com/od/commands/l/blcmdl1_wget.htm" target="_blank">wget</a> script, with an email notification and attached it as a <a href="http://www.thesitewizard.com/general/set-cron-job.shtml" target="_blank"><span style="font-family: Courier New, Courier, monospace;">cron</span></a> job. The email notification was potentially unstable due to DNS failures and slowness. So I decided to use dotcom monitor which has a feature to send a text message.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://images.esold.com/techydave/HTTP-Monitor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://images.esold.com/techydave/HTTP-Monitor.png" height="92" width="320" /></a></div>
<br />
There were a few false alerts when the TVTickets site was down or unreachable. Anyway, after a few months, it finally triggered!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://images.esold.com/techydave/Big-Bang-SMS-Text-Notification.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://images.esold.com/techydave/Big-Bang-SMS-Text-Notification.png" height="320" width="180" /></a></div>
Attending the filming today!David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com3tag:blogger.com,1999:blog-27228931.post-22857225882063989402014-03-17T13:21:00.002-07:002014-03-17T13:23:46.728-07:00Google Talk Down for the CountGoogle Talk services are out across the board. It all started this morning and was out for several hours; it took a while for <a href="http://www.google.com/appsstatus#hl=en&v=issue&sid=3&iid=9cb1a82cdfa9e2ce88ca138c4af8915d" target="_blank">Google to acknowledge</a> that Hangouts and Google Talk were having a service disruption. This isn't a typical partial network outage either since it affects all users in many regions; although Google didn't formerly admitted to be a service outage.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://images.esold.com/TechyDave/Gchat-login-spinning.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://images.esold.com/TechyDave/Gchat-login-spinning.gif" /></a></div>
<br />
Users attempting to login were stuck in a continuous looping cycle leaving them with the uncertainty that it might be due to their Windows machine. Rebooting of course didn't work; so some people here thought it was a problem with their station and tried to re-install Google Talk only to discover that it is no longer available. I too learned this lesson the hard way after having to re-installing Windows due to an audio problem (which incidentally was triggered by Google Hangouts).<br />
<div>
<br /></div>
For those unfortunate soles who thought it was a problem with their computer, I'm proving a <a href="http://images.esold.com/techydave/Download/googletalk-setup.exe" target="_blank">download for Google Talk here</a>.<br />
<br />
It seems to be an all out withdrawal from supporting the Windows platform; similarly Google Sync which allowed Outlook users to <a href="https://support.google.com/a/answer/2716936?hl=en" target="_blank">synchronize Google calendar was formerly ended last July</a>. It's well known that within the Googleplexes of the world, that <a href="http://techcrunch.com/2011/05/11/googlers-windows/" target="_blank">Mac & Linux usage far outweighs Windows</a>; in fact a contact of mine said that you'd practically need CTO approval to get Windows. <i>Over/under bets are currently being made as to which year Chrome support will be dropped from Windows ;)?</i><br />
<br />
It's tough to start the week off with this outage, and while I'm happy to see it running again, the concern however that support for this product may permanently go away since Google declared that the Talk would be deprecated (done away with), in favor of <a href="https://support.google.com/a/answer/3094760?hl=en" target="_blank">Google Hangouts</a>. Our office relies upon it significantly and will need to find a replacement if Google Talk support completely stops. Google Hangouts is just plain clunky: prone to having video complications, poor quality & delayed audio and the text chat feature is not well integrated. The simplicity and quality of Google Talk is usually spot on; both within the desktop app, gmail integrated pane and the Android app.<br />
<br />
For now, I'll be holding my breath to see if another viable replacement comes along for Google Apps based communication.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com1tag:blogger.com,1999:blog-27228931.post-73382065382327204722013-04-21T11:08:00.002-07:002013-04-21T11:08:56.221-07:00Enable Default Windows Wireless Connection ManagerUsually hardware manufacturers tools are better than the Windows default equivalent. In the case of Wireless Network management, I usually find that Windows Zero Configuration Management is more reliable with the exception of a multi-location wireless network I use at work. In some networks, especially cheap wifi routers (like the Fry's unit in my home) the built in Intel ProSET seems to get disconnected every so often and is very annoying, so for that, I will switch to the Windows built-in tool.<br />
<br />
<h3>
Enabling Windows Default in Windows 7</h3>
<br />
<ul>
<li>Start/automatic the <b>Wired AutoConfig Properties</b> service.</li>
<li>Start/automatic the <b>WLAN AutoConfig Properties</b> service.</li>
<li><span style="color: purple;">Stop/Disable</span> <b>Intel(R) PROSet/Wireless Zero Configuration Service</b>, if it exists.</li>
<li>In task manager, view processes and sort task name. Kill the task called Intel PROSet Wireless.</li>
</ul>
<br />
<br />
For instructions in Windows 8, XP also see the <a href="http://www.inf.aber.ac.uk/advisory/faq/965#win7" target="_blank">visual instructions</a> from Aber Univ.<br />
<br />
<br />
<h3>
Enabling Intel Wireless Configuration Management in Windows 7</h3>
<br />
<ul>
<li>Start/automatic <b>Intel(R) PROSet/Wireless Zero Configuration Service</b>, if it exists.</li>
<li><span style="color: purple;">Stop/Disable</span> the <b>Wired AutoConfig Properties</b> service.</li>
<li><span style="color: purple;">Stop/Disable</span> the <b>WLAN AutoConfig Properties</b> service.</li>
</ul>
<br />
<br />
David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com18Green Valley, Fountain Valley, CA 92708, USA33.7099509 -117.9410098000000232.0193589 -120.52279680000002 35.400542900000005 -115.35922280000001tag:blogger.com,1999:blog-27228931.post-79228254425310033572013-02-01T01:04:00.002-08:002013-02-01T01:05:06.662-08:00SQL Server Agent (Agent XPs disabled)Error in SQL Server Jobs:<br />
<span style="font-size: 12px; font-style: italic; line-height: 16px;">SQL Server blocked access to procedure 'dbo.sp_get_sqlagent_properties' of component 'Agent XPs' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Agent XPs' by using sp_configure. For more information about enabling 'Agent XPs', see "Surface Area Configuration" in SQL Server Books Online.</span><br />
<br />
Resolve by:<br />
<span style="font-family: Courier New, Courier, monospace;">sp_configure 'show advanced options', 1; GO;</span><br />
<span style="font-family: Courier New, Courier, monospace;">RECONFIGURE; GO;</span><br />
<span style="font-family: Courier New, Courier, monospace;">sp_configure 'Agent XPs', 0; GO;</span><br />
<span style="font-family: Courier New, Courier, monospace;">RECONFIGURE; GO;</span><br />
<br />David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com17tag:blogger.com,1999:blog-27228931.post-58300848177718798242012-09-24T12:04:00.001-07:002012-09-24T12:14:30.965-07:00Scammers get personal with your friendsLike a efficient biological virus, spam and online scams continue to evolve and take on new forms that elude even the discerning person.<br />
<blockquote class="tr_bq">
<span style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">From: "Friends name" <what appears="appears" be="be" email="email" their="their" to="to"></what></span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Subject: "<i>Vacation Problems...</i>"</span></blockquote>
<blockquote class="tr_bq">
<i>My Family and I are currently on vacation to Madrid (Spain),and we got mugged last night in an alley by a gang of thugs on my way back from shopping, everything i had on me including my cell phone, credit cards were all stolen,quite honestly it was beyond a dreadful experience for me but looking on the bright side i was not seriously hurt or injured and i am still alive so that is whats important.</i><br />
<i><br /></i>
<i>I've reported to the cops here and canceled all my cards,it appeared I had acted quickly enough or they almost would have succeeded in cleaning out my bank account. I'm really having some difficulties clearing my hotel bills and also need to pick up a voucher ticket at the counter for us to catch a flight back home in a couple of hours.</i><br />
<i><br /></i>
<i>I was wondering if you could please loan me some money pending when i get things straighten out and I promise to refund as soon as we arrive home safely. All i need to get back is €1,300Euros.</i><br />
<i><br /></i>
<i>Write me back and let me know how soon you can get it to us asap.</i><br />
<i><br /></i>
<i>Your friend in the business</i><br />
<i>[my friends personal email signature]</i></blockquote>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.deceptology.com/2012/06/how-to-defeat-nigerian-e-mail-scams.html" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="" border="0" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTu80o7s1iQ3DP7NqAsWB9ClCrF1xfpT2rSGM_SnCi-qfPDlmZv" title="Nigeria Scam shirt" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Nigeria scam shirt from <a href="http://www.deceptology.com/2012/06/how-to-defeat-nigerian-e-mail-scams.html">Deceptology.com</a></td></tr>
</tbody></table>
To be honest, my initial reaction was one of concern. I'm not very familiar with my friend (more of an acquaintance) but it wouldn't entirely surprise me that they are on vacation and that this could happened. Being a kind person and subscribing to the idea that I look for opportunities to <a href="http://wishfulconnections.blogspot.com/2006/09/eating-with-keith-ferrazzi.html" target="_blank">deeply help my connections</a>, I give it a thought. Fortunately my better sense of suspicion sets in... so what to do?<br />
<br />
Obviously I could just ask my friend if this is legit, but an email response only puts fuel to this fire. I decided to play along to see how far this would go. Here is a follow up response that the scammer sent me in another case:<br />
<blockquote class="tr_bq">
<i>I need a quick loan of $790 to get the Hotel bills settled and get a cab to the airport as soon as I get back home would def refund it back to you immediately...You can have the it wired on my name via Western Union.Here's my info below<br /><br />Name: <span class="il" >Daniel H*****</span> Location: 63 Cannon Street<br /><span class="il">London</span>, EC4N 5AA, <span class="il">UK</span><br /><br />As soon as it is done, kindly get back to me with the confirmation number. Let me know when if you are heading to the WU outlet now???</i></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://maps.google.com/maps?q=St+santa+alicia+23+Madrid+28053,+Spain&ll=40.386436,-3.665518&spn=0.011073,0.023378&sll=40.386923,-3.666165&layer=c&cbp=13,22.37,,0,6.06&cbll=40.386926,-3.666171&gl=us&hnear=Calle+de+Santa+Alicia,+23,+28053+Madrid,+Comunidad+de+Madrid,+Spain&t=m&z=17&panoid=vp53OMGtmK31bZC-fMzmaw" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://cbks2.google.com/cbk?output=thumbnail&cb_client=maps_sv&thumb=2&thumbfov=120&ll=40.386923,-3.666165&cbll=40.386924,-3.666169&thumbpegman=1&w=300&h=118" /></a></div>
<span style="font-size: small;"><span style="font-weight: normal;">In another case they tell me to wire money to a Western Union located in this <a href="https://maps.google.com/maps?q=St+santa+alicia+23+Madrid+28053,+Spain&ll=40.386436,-3.665518&spn=0.011073,0.023378&sll=40.386923,-3.666165&layer=c&cbp=13,22.37,,0,6.06&cbll=40.386926,-3.666171&gl=us&hnear=Calle+de+Santa+Alicia,+23,+28053+Madrid,+Comunidad+de+Madrid,+Spain&t=m&z=17&panoid=vp53OMGtmK31bZC-fMzmaw" rel="nofollow" target="_blank">dumpy looking neighborhood in Spain</a>. </span></span><span style="font-size: small; font-weight: normal;">I suggest to help my friend by traveling out and getting them. But a</span><span style="font-size: small; font-weight: normal;">fter doing a little dialog, the scammer gives up or senses that I'm onto them and stops responding.</span>
<br /><br />
<h3><b>So how can you know for sure that this is a scam</b>?</h3>
Fortunately most email service providers properly maintain the source IP address of the sending machine. To view this, you must look at the raw original email message; in GMail do this by selecting "<span style="font-family: Courier New, Courier, monospace;">Show Original</span>" in the message actions. The raw message headers can be difficult to read, but look for something that looks like this:<br />
<div>
<blockquote class="tr_bq">
<code>Received: from [197.242.108.159] by web122905.mail.ne1.yahoo.com via HTTP; Sun, 16 Oct 2011 00:50:13 PDT</code></blockquote>
<div>
This directive identifies that Yahoo's mail server accepted the message to be sent via HTTP (web browser) from the IP 197.242.108.159. You can run a reverse IP check at and it<br />
<br />
The IP is delegated by Nigeria and currently allocated to a company called Cybercity Ebene on the African island of <a href="https://maps.google.com/maps?q=Mauritius&ie=UTF-8&hq=&hnear=0x217c504df94474c9:0x4203d9c2116bd031,Mauritius&gl=us&ei=I_5dUMPSLIisiAKUhoDABg&ved=0CK0BELYD" rel="nofollow" target="_blank">Mauritius</a>. So, unless my friend says that she being held as a Nigerian hostage, we can safely dismiss the authenticity of the message at this point.<br />
<br />
<h3>
WHOIS</h3>
<i>I don't always dissect emails from my friends, but when I do.. I use whois</i>.sc (aka domaintools). Whois is a service that can retrieve information about the ownership of an IP or domain name. It's very easy to type in the browser address bar, here are the two primary ways its works:<br />
<code>
http://whois.sc/[IP_address] i.e.: <a href="http://whois.sc/197.242.108.159">http://whois.sc/197.242.108.159</a><br />
http://whois.sc/[domainname.com] i.e.: <a href="http://whois.sc/esold.com">http://whois.sc/esold.com</a></code><br />
<br />
You just need to remember to use 'whois' and think about U<u>SC</u> Football (my alma mater!)<br />
<br />
<i>Stay internet savvy my friends</i>.</div>
</div>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com7tag:blogger.com,1999:blog-27228931.post-52143015364928202032012-04-13T17:05:00.000-07:002012-04-13T20:31:15.385-07:00Continuing Online Education<span style="font-family: arial;">Recently a friend asked me to take an online course with him. </span><span style="font-family: arial;">Although I'm a big proponent of education, I didn't see the value in taking a couple extra classes. But I begrudgingly enrolled because the classes that seemed interesting in AI & search engines. I was very surprised at how well done the entire class was, how easy it was to follow each exercises and do homework functioned online. It was very easy to fit it in my schedule too. Sections are given out each week at your own pace, so I was able to go through them at various evenings during the week or on the weekend.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQtNEnfwhutc7MTaqizjH0XCBvKkzujxdU4e91_TTRS_8f55S1djmA8qmJr0EQTpTYvEIJ_-Z2IwnIoTmC8x7_2IOnJijdyUuwMRW-YEXWqQoCsUX0tG2IbQlJZRcOsYwOUVnJPw/s1600/stanford_robot_car.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQtNEnfwhutc7MTaqizjH0XCBvKkzujxdU4e91_TTRS_8f55S1djmA8qmJr0EQTpTYvEIJ_-Z2IwnIoTmC8x7_2IOnJijdyUuwMRW-YEXWqQoCsUX0tG2IbQlJZRcOsYwOUVnJPw/s320/stanford_robot_car.jpg" width="320" /></a></div>
<span style="font-family: arial;"><br /></span><br />
<span style="font-family: arial;">The courses I took are provide by </span><a href="http://www.udacity.com/" style="font-family: arial;" target="_blank">Udacity</a><span style="font-family: arial;"> and taught by Stanford professors that work at Google (Sebastian Thrun & David Evans). You can learn how to program a search engine, program in python, Javascript and HTML, the finer details of data encryption, or like I did, learn how to </span><a href="http://www.youtube.com/watch?v=bdCnb0EFAzk" style="font-family: arial;">program a robotic car</a><span style="font-family: arial;">. The best part is that this is a completely free, 7-week online course; no upsells or marketing.</span>
<br />
<span style="font-family: arial;"><br /></span><br />
<span style="font-family: arial;">Another great online education resource is </span><em style="color: #1122cc; font-family: arial, sans-serif; font-style: normal; font-weight: bold; white-space: nowrap;"><a href="http://ocw.mit.edu/courses/" style="color: #1122cc;" target="_blank">MIT OpenCourseWare</a></em><span style="font-family: arial;"> which provides 1,000's of their past years courses online in several subjects so you can sharpen your</span><span style="font-family: arial;"> </span><a href="http://ocw.mit.edu/courses/mathematics/18-013a-calculus-with-applications-spring-2005/" style="font-family: arial;" target="_blank">calculus skills</a><span style="font-family: arial;">, study </span><a href="http://ocw.mit.edu/courses/#history" style="font-family: arial;" target="_blank">history</a><span style="font-family: arial;">, or learn about </span><a href="http://ocw.mit.edu/courses/chemical-engineering/10-40-chemical-engineering-thermodynamics-fall-2003" style="font-family: arial;" target="_blank">Chemical Engineering Thermodynamics</a><span style="font-family: arial;">.</span>
<br />
<span style="font-family: arial;"><br /></span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvDomSF96DdBElHBAVAAeWjmrC_Wb2DHQ5k7TjdYKj-rlawAj3yrA947UaLNrX0dFhXSu1LO_S2RIhMgm6lwahWT_KaYsB7bOMqraj5SqQmyrqP-rpMSR4smMiTNF7MmxxheWQmg/s1600/Stay-Thirsty.jpg" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvDomSF96DdBElHBAVAAeWjmrC_Wb2DHQ5k7TjdYKj-rlawAj3yrA947UaLNrX0dFhXSu1LO_S2RIhMgm6lwahWT_KaYsB7bOMqraj5SqQmyrqP-rpMSR4smMiTNF7MmxxheWQmg/s1600/Stay-Thirsty.jpg" /></a><br />
<i><span style="font-size: x-small;">"I don't always take classes, but when I do, I prefer Udacity & MIT online courses. Stay young my friends, and keep your minds fresh."</span></i>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com2tag:blogger.com,1999:blog-27228931.post-48887468923494472612012-03-15T23:36:00.000-07:002012-03-15T23:44:15.281-07:00Chrome - The Browser of Surfing Champions"<i>I don't always browse the web, but when I do, I prefer Google Chrome</i>"... In case you haven't installed it yet, the Chrome browser is quite powerful. Admittedly, I was not an early adopter of Chrome; but once I got on it, I was hooked.<br />
<br />
Having been online since before the days of BBS's and 56K modems, I've ridden the <a href="http://www.visualnews.com/2011/09/01/an-interactive-timeline-of-browser-history/" target="_blank">wave of browsers</a> from the <a href="http://news.cnet.com/2009-1032-995679.html" target="_blank">revolutionary Mosaic browser</a>, to the free academic Netscape browser, Microsoft's ubiquitous, yet "<a href="http://www.justice.gov/atr/cases/f3800/msjudgex.htm" target="_blank">monopolistic</a>" Internet Explorer, the open source Mozilla Firefox and now Google Chrome.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Layout_engine_usage_share-2009-01-07.svg/520px-Layout_engine_usage_share-2009-01-07.svg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Layout_engine_usage_share-2009-01-07.svg/520px-Layout_engine_usage_share-2009-01-07.svg.png" /></a></div>
<div style="text-align: center;">
<i>Graph demonstrating that each new browser rapidly takes a major market share and slow decline. (graph predates Chrome's launch)</i></div>
<br />
Chrome is quite a different browser; in that it's actually a mini-operating system. It's even package on a stand-alone, low cost laptop called a <a href="http://www.google.com/chromebook/" target="_blank">Chromebook</a> which are even <a href="http://www.virginamerica.com/vx/chromezone" target="_blank">rented on Virgin America flights</a>. It's literally <a href="http://www.youtube.com/watch?v=nCgQDjiotG0" target="_blank">lightning fast</a> in loading websites and has rock-solid stability.<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/nCgQDjiotG0?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Concerned about security? Internet Explorer has so many exploits that even on a fresh install of Windows XP, you can literally loose control of your computer by simply going to a single malicious website without clicking on a thing. Google, on the other hand, has put their money on it; recently they upped the ante by offering $1Million in cash to <a href="http://blog.chromium.org/2012/02/pwnium-rewards-for-exploits.html" target="_blank">hackers that can find vulnerabilities in Chrome</a>, I'm nearly tempted to try; but given the <a href="http://www.udacity.com/" target="_blank">academic intellect</a> put into this product, I think my chances are better in entering a casino.<br />
<br />
Quick points about Chrome.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNVwaizsPwhBK80JmY2bOKHNRibnDcDoI0hDpyCt7AtfvRyhmrbFVltXOJwpiHaSId_n5u9VtIykiEGEIRArLvjrmsqeyjZHDX8V-IlbfY_yoHuyc7Au8ROi8FIm0GF6t4Go8bLA/s1600/Incognito.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNVwaizsPwhBK80JmY2bOKHNRibnDcDoI0hDpyCt7AtfvRyhmrbFVltXOJwpiHaSId_n5u9VtIykiEGEIRArLvjrmsqeyjZHDX8V-IlbfY_yoHuyc7Au8ROi8FIm0GF6t4Go8bLA/s1600/Incognito.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Incognito (Ctrl-Shift-N) instantly makes you anonymous.</td></tr>
</tbody></table>
<ul>
<li><b><i>Omnibox (aka Keyword/URL)</i></b>: Just type any words in the URL/address bar and it will search Google. They really don't want you to have to think about URLs.</li>
<li><b><i>Incognito Mode</i></b>: a browser session that is free & clear of any past cookies, cache or history. Once you close it, the browser session is deleted. This is useful when you want to visit sites anonymously or just with different login credential; i.e. multiple sign-ons to GMail.com.</li>
<li><b id="internal-source-marker_0.8962121591903269"><i>Tabbed Browser</i>:</b> Modern browsers support this; some people are still not familiar with using tabs. Get used to it and take advantage of the below hotkeys to browse like a champ (see list of useful hotkeys below).</li>
<li><b><i>Chrome Store</i></b>: True to being an OS, there's a whole <a href="https://chrome.google.com/webstore/category/home" target="_blank">Chrome app store</a> for web applications published to work with Chrome. Many of these are just basic websites, but make it easier to open and use versus remembering a bookmark.</li>
<li><b>No Fuss Software</b>: Upgrades are done transparently; furthermore they are releasing improvements quite frequently; allowing users to get the most out of new internet advances like <a href="http://101besthtml5sites.com/" target="_blank">HTML5 features</a>.</li>
</ul>
<br />
<b id="internal-source-marker_0.8962121591903269"><span style="color: #222222; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><br /><span style="color: #222222; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span>Tab Hotkeys<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span></b><br />
<div dir="ltr">
<table style="border-bottom-style: none; border-collapse: collapse; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; width: 624px;"><colgroup><col width="*"></col><col width="*"></col></colgroup><tbody>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Alt - D</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Highlights the address bar so you can enter a URL or keyword</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - N</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">New tab</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - Shift - N</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Restore last closed tab (very useful if you want to bring back the page you accidentally closed)</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - Shift - T</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Open Incognito browser window</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - W</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Close tab</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - 1</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Switch to first tab</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - [2, 3... 8]</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Switch to second, third, n</span><span style="font-family: Arial; font-size: 9px; font-weight: normal; vertical-align: super; white-space: pre-wrap;">th</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> tab.</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - 9</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Switch to last tab</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - PgUp / Ctrl - PgDn</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Switch to next or previous tab.</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl + / Ctrl </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">-</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Enlarge Font or Reduce font size</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl 0</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Set font size back to normal.</span></td></tr>
</tbody></table>
</div>
<b id="internal-source-marker_0.8962121591903269">
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span>Common Hotkeys<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr">
<table style="border-bottom-style: none; border-collapse: collapse; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;"><colgroup></colgroup><tbody>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - J</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Open downloads</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - H</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Open history</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - Shift - Esc</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Clears history, cookies dialog box.</span></td></tr>
</tbody></table>
</div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span>Advanced/Developer Hotkeys<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr">
<b id="internal-source-marker_0.8962121591903269"></b><br />
<div>
<table style="border-bottom-style: none; border-collapse: collapse; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;"><tbody>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Shift - Esc</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Task manager; very useful to see the resources used per tab, like CPU, RAM Memory and network I/O. You can then kill any task or tab. This is a clear benefit of the Chrome OS.</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - U</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">View HTML source code</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - Shift - I</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Developer tools; useful to see CSS style codes and the page hierarchy structure.</span></td></tr>
<tr style="height: 0px;"><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Ctrl - Shift - J</span></td><td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-image: initial; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;"><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Javascript console; useful to debug JS errors on your website.</span></td></tr>
</tbody></table>
</div>
<b id="internal-source-marker_0.8962121591903269">
</b></div>
<div dir="ltr">
<br />
<br /></div>
</b>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com2tag:blogger.com,1999:blog-27228931.post-49637652736480490252012-02-15T23:49:00.000-08:002012-02-15T23:49:05.927-08:00Is our solar system like an Oxygen atom?If you've seen the film Men In Black, you might remember at the end of the movie that <a href="http://www.youtube.com/watch?v=LyzIau5dBao" target="_blank">cool scene</a>. It starts with Will Smiths and zooms out over his car, above the streets, over Manhattan, Earth, past our Sun, solar system and beyond to reveal that the entire milky way galaxy is encapsulated in a marble. Our whole universe is then in the hands of some octopus-like alien. It's easy to see that we are not even a visible spec on the cosmic scale. By way of comparison, we humans might be aliens to the sub-microscopic world of the molecules around us and in our body.<br />
<br />
So I wondered to myself is there's any comparison to the <b>proportional size of the universe to that of the atomic world</b>. After <a href="https://twitter.com/#!/drodecker/status/126106000016146432" target="_blank">browsing</a> <a href="http://www.wolframalpha.com/input/random.jsp" target="_blank">wolfram alpha</a>, I found that there may be! So here's an analogy...<br />
<div class="separator" style="clear: both; text-align: -webkit-auto;">
<br /></div>
<div style="text-align: -webkit-auto;">
We have a massive sun and 8 planets in our solar system (poor <a href="http://www.universetoday.com/13573/why-pluto-is-no-longer-a-planet/" target="_blank">Pluto is a drawf planet</a>).</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRpfE8CXJrGnjeUFZkPZlWVw206djWImZif4gUUkGmdQL4TE6a0biG4OBFg6HtA92USdCWHvsTUtlWlCE1UKksmsN3IAX2zzoUEFV5-hg74B9NgZ4J9XINi-8xBF3s4WTgjlDiYQ/s1600/Solar-System.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRpfE8CXJrGnjeUFZkPZlWVw206djWImZif4gUUkGmdQL4TE6a0biG4OBFg6HtA92USdCWHvsTUtlWlCE1UKksmsN3IAX2zzoUEFV5-hg74B9NgZ4J9XINi-8xBF3s4WTgjlDiYQ/s200/Solar-System.png" width="187" /></a></div>
<br />
<br />
<center>
<table border="1" padding="1">
<tbody>
<tr>
<td><nobr><a href="http://www.wolframalpha.com/input/?i=mass+of+sun" target="_blank">Mass of Sun</a>: 1.988×10<span style="vertical-align: super;">30 </span>kg</nobr><br />
<nobr><a href="http://www.wolframalpha.com/input/?i=mass+of+planets" target="_blank">Mass of planets</a>: 2.668×10<span style="vertical-align: super;">27 </span>kg </nobr><br />
<br />
<nobr>Ratio of Sun / Planets = 745:1</nobr>
</td>
</tr>
</tbody></table>
</center>
So the sun is about 745 times heavier than all the weight of the planets.
<br />
<br />
Reaching for an atomic parallel lets take Oxygen with its 8 electrons, <a href="http://www.wolframalpha.com/input/?i=mass+of+proton" target="_blank">protons</a> and neutrons. Think of Oxygens core as being the Sun of its system, and the 8 electrons as planets.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAhgQmro5eIDO0UIzLplpNP8JrKX1V34WtlbB_P5FmaCgvVl1H9HyaA_K6LjM6T3YgPhDV_8MAbE061d3-TXgu6lNscgbm2FAhlk17pREGoqeyiy2rEezkFRTn0hC7rvpcgBiOA/s1600/Oxygen-Atom.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAhgQmro5eIDO0UIzLplpNP8JrKX1V34WtlbB_P5FmaCgvVl1H9HyaA_K6LjM6T3YgPhDV_8MAbE061d3-TXgu6lNscgbm2FAhlk17pREGoqeyiy2rEezkFRTn0hC7rvpcgBiOA/s200/Oxygen-Atom.png" width="186" /></a>
<br />
<br />
<br />
<center>
<table border="1" padding="1">
<tbody>
<tr>
<td><nobr>Oxygen's core: 2.678×10<span style="vertical-align: super;">-23 </span>kg</nobr><br />
<nobr><a href="http://www.wolframalpha.com/input/?i=mass+of+electron" target="_blank">Electrons mass</a>: 7.287×10<span style="vertical-align: super;">-27 </span>kg</nobr><br />
<br />
<nobr>Oxygen's core / electrons: 367 : 1</nobr></td></tr>
</tbody></table>
</center><br />
<div>
An atoms core is about 367 times heavier than the weight of its electrons. 750/367 is a relative ratio of about 2 to 1.</div>
<br />
<div>
By way of comparison, the <b>planets are about twice as heavy compared to the sun as electrons are to the atomic core of atoms</b>, which is actually quite similar. The analogy might not stop there, there is probably similar comparisons to be found in the volumes of space and atoms, and possibly even the speed of light, distances and phases of time. Even though it's beyond our typical scope of reality to imagine the magnitude of these dimensions, there is a sense of harmonic balance that the universe and atoms share in their in relative proportions.</div>
<br />
Perhaps in a future MIB movie we might see a reversed scene where the camera zooms in on Will Smith, into to his hair, follicles, cells, molecules, atoms until we see quarks and <a href="http://superstringtheory.com/" target="_blank">strings</a> dancing about. If nothing else, this could give astrologers and physicists one more way to work together -- Go <a href="http://en.wikipedia.org/wiki/The_Big_Bang_Theory" target="_blank">Raj & Sheldon</a>!David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com8tag:blogger.com,1999:blog-27228931.post-38910285497543540532011-06-10T10:07:00.000-07:002011-06-10T10:20:58.278-07:00VB.Net code to control mouse movement and click<div>VB.Net code to perform mouse movements and clicks.</div><div><br /></div><div><br /></div><div>Include references at the top of the class code file to Windows interface libraries:</div><div><br /></div><code><div> Public Declare Auto Function SetCursorPos Lib "User32.dll" (ByVal X As Integer, ByVal Y As Integer) As Integer</div><div> Public Declare Auto Function GetCursorPos Lib "User32.dll" (ByRef lpPoint As Point) As Integer</div><div> Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)</div><br /></code>Some fixed constant values will be needed, so include these as basic names:<br /><code><br /></code><div><code><div> Public Const MOUSEEVENTF_LEFTDOWN = &H2</div><div> Public Const MOUSEEVENTF_LEFTUP = &H4</div><div> Public Const MOUSEEVENTF_MIDDLEDOWN = &H20</div><div> Public Const MOUSEEVENTF_MIDDLEUP = &H40</div><div> Public Const MOUSEEVENTF_RIGHTDOWN = &H8</div><div> Public Const MOUSEEVENTF_RIGHTUP = &H10</div><div> Public Const MOUSEEVENTF_MOVE = &H1</div></code><div><code><br /></code><br /></div><div>This provides three types of capabilities to move the mouse pointer, determine the mouse pointer location and to perform click events.</div><div><br /></div><div>Set the mouse position on the screen:</div><code><div>Dim X As Integer, Y As Integer</div><div>X = 428</div><div>Y = 256</div><div>SetCursorPos(X, Y)</div></code><div><br /></div><div>Get the mouse position on the screen:</div><code><div><div>Dim lpPoint As Point</div><div>GetCursorPos(lpPoint)</div><div>X = lpPoint.X</div><div>Y = lpPoint.Y</div><div>System.Diagnostics.Debug.WriteLine(String.Format("X: {0}, Y: {1}", X, Y)) 'output the current position to the debug window</div></div></code><div><br /></div><div>Lastly, perform click operations, notice that a complete click is a "down" followed by "up" action, otherwise you're holding down the click button:</div><code><div>Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)</div><div>Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)</div><div><br /></div></code></div>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com47tag:blogger.com,1999:blog-27228931.post-71456177640599978662011-04-18T23:56:00.000-07:002011-04-19T18:54:53.926-07:00I Don't Need No Stinking Antivius -- But Will You Please Get It?<div><p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">People often ask me what antivirus I use. The answer is that I don't use any AV. I typically know the metrics on what my programs are doing, so viruses aren't something I tend to get.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">Don't get me wrong; there are a few times I've been exposed to malware, but I had put myself in a risky position and knew what to expect from it. Downloading music or alternative software are both prime examples of such situations. When viruses run amok throughout a computer system, it’s imperative to know how to seek and destroy the many tentacles with which it can take hold. It's actually kind of fun not only to kill, but to observe the hacking creativity (I have a small collection of well designed viruses).</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">There are some nasty programs out there. It’s important to act very quickly upon getting infected with a virus or malware because it could start transferring private files to the net almost immediately. To make matters worse, once a single piece of malware makes it through, it very often creates a backdoor that provides easy access for other hostile programs, and the scenario inevitably repeats itself. I've cleaned a few systems with literally 100+ virus processes running.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">If you install Windows XP out of the box, you can get a virus by visiting a </span><a href="http://techydave.blogspot.com/2008/05/dissection-of-asp-sql-injection.html"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">basic website</span></a><span style="font-size: 12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> and not even clicking on anything (trust me; I've even </span><a href="http://techydave.blogspot.com/2008/05/dissection-of-asp-sql-injection.html"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">experienced it from my own website</span></a><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">). To prevent most of the bad stuff, you should run Windows Update (or automatically enable to download) since the folks at Microsoft are pretty much on the forefront of security patches.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">Should you come down with an unfortunate case of sporadic applications, browser pop-ups or some other malware, you need to be quick to disable the network adapter and kill the processes. On one occasion, I had to pull the plug on my system as a rouge process was maliciously wiping data files.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">I take the care and tending of my system resources very personally and don't want my programs running amuck. <b>I consider AV programs, like Norton, one of the worst offenders</b>. That having been said, please take note that I am a </span><a href="http://www.desktopped.com/featured/2010/12/software-developers-portable-triple-display-setup-running-off-a-laptop/"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">power user</span></a><span style="font-size:12.0pt; font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> and I oversee a farm of web and database servers for my </span><a href="http://www.localsplash.com/"><span style="font-size:12.0pt;font-family: "Arial","sans-serif";mso-fareast-font-family:"Times New Roman";color:blue">local SEO</span></a><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman""> company- I use hotkeys everywhere, I've created macros to do repetitive tasks and I program automation processes to accelerate and interoperate.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">The problem with AV programs is that they operate by constantly scanning inputs & outputs of all your files and internet activity. This adds processing time and latency in just about everything you do. In most situations, this is may be a minor resource utilization and probably goes unnoticed by most users; nevertheless, it’s a burden I'm not inclined to accept. However, unless are prepared to a) avoid malware in the first place, and b) are capable of completely cleaning up something that may have slipped in, then I'd strongly recommend you use AV software.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">About a month ago, I was (un)lucky enough to be part of the </span><a href="http://www.eweek.com/c/a/Messaging-and-Collaboration/Google-Suffers-First-Gmail-Outage-of-2011-850632/"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">0.02%</span></a><span style="font-size:12.0pt; font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> of </span><a href="http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en/us/appsstatus/ir/nfed4uv2f8xby99.pdf"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">Google users affected</span></a><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman""> with an outage. Accidents do happen, and antivirus software is like an insurance policy. In fact, if you get a virus on your system, it can often spread to your local and office networks. Nothing is worse than having your co-worker’s computer contaminate the network! So for the other 99.98% of internet users, I recommend you get a solution in place.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">If I ever have an AV program installed on my system, I will disable all active monitoring of said program and enable it to perform detection only when I ask it to do so. I personally like to use Microsoft Defender and legacy versions of AdAware (before they went commercial), both of which I've linked on the side of my blog. A nice feature about periodically running AV programs is that they can scan and cleanse unnecessary objects, such as clear wasted registry pointers & marketing/tracking cookies.</span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; "><span class="Apple-style-span" ><br /></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><u><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">Malware Prevention Tips:</span></u><u><span style="font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-font-family: "Times New Roman""><o:p></o:p></span></u></p> <ul type="disc" style="font-family: arial; font-size: small; "> <li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; line-height:normal;mso-list:l1 level1 lfo1;tab-stops:list .5in"><b><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Don't Click. Just Close It</span></b><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">-- when you're prompted with something that you don't want, clicking on anything, even something that looks like "Cancel" or "No" might be a trick. Instead, hit the Escape button, Ctrl-W (a switch to shutdown a browser tab), or Alt-F4 (close application).</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman""><o:p></o:p></span></li> <li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; line-height:normal;mso-list:l1 level1 lfo1;tab-stops:list .5in"><b><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Keep Windows Patched</span></b><span style="font-size: 12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> -- visit </span><a href="http://www.windowsupdate.com/"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman";color:blue">http://www.WindowsUpdate.com</span></a><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman""> if you’re not sure.</span><span style="font-size:12.0pt; font-family:"Times New Roman","serif";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span></li> <li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; line-height:normal;mso-list:l1 level1 lfo1;tab-stops:list .5in"><b><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Use Google Chrome or Firefox</span></b><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman""> – both are resilient, yet functional, browsers. Stay far away from Internet Exposer.</span><span style="font-size:12.0pt; font-family:"Times New Roman","serif";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span></li> </ul> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-size: small; font-family: arial; "><span style="font-size:12.0pt;font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman""><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; font-family: arial; font-size: small; "><u><span style="font-size:12.0pt;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman"">Dealing With Malware:<o:p></o:p></span></u></p> <p class="MsoListParagraphCxSpFirst" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal; font-family: arial; font-size: small; "><!--[if !supportLists]--><span style="font-size:12.0pt; font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><b style="mso-bidi-font-weight:normal"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Disconnect</span></b><span style="font-size:12.0pt; font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> -- pull the network plug or shutdown your wi-fi. That tends to stop most popup based ads.</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman""><o:p></o:p></span></p> <p class="MsoListParagraphCxSpMiddle" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal; font-family: arial; font-size: small; "><!--[if !supportLists]--><span style="font-size:12.0pt; font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><b style="mso-bidi-font-weight:normal"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Ctrl-Alt-Del</span></b><span style="font-size:12.0pt; font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> -- Open Task Manager and look at the list of processes, sorted by CPU desc. Take note of oddly named processes that you don't see on other computers (call a nerdy friend and ask them to compare). Kill any suspicious ones. If they come back alive, you may need more professional help.</span><span style="font-size: 12.0pt;font-family:"Times New Roman","serif";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span></p> <p class="MsoListParagraphCxSpLast" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal; font-family: arial; font-size: small; "><!--[if !supportLists]--><span style="font-size:12.0pt; font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman""> </span></span></span><!--[endif]--><b style="mso-bidi-font-weight:normal"><span style="font-size:12.0pt;font-family:"Arial","sans-serif";mso-fareast-font-family: "Times New Roman"">Run AV</span></b><span style="font-size:12.0pt;font-family: "Arial","sans-serif";mso-fareast-font-family:"Times New Roman""> -- hopefully you've contained the malware, now eradicate it with Microsoft Defender, AVS, AdAware or your $60 Fry's special software.</span></p><p class="MsoListParagraphCxSpLast" style="margin-left: 0.75in; text-indent: -0.25in; line-height: normal; font-family: arial; font-size: small; "><span style="font-size:12.0pt;font-family: "Arial","sans-serif";mso-fareast-font-family:"Times New Roman""></span><b style="mso-bidi-font-weight:normal"><span style="font-size:12.0pt; line-height:115%;font-family:"Times New Roman","serif";mso-fareast-font-family: "Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US; mso-bidi-language:AR-SA"><span class="Apple-style-span" style="font-family: Symbol; font-weight: normal; line-height: normal; ">·<span style="font: normal normal normal 7pt/normal 'Times New Roman'; "> </span></span>(advanced)</span></b><span style="font-size:12.0pt; line-height:115%;font-family:"Times New Roman","serif";mso-fareast-font-family: "Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US; mso-bidi-language:AR-SA"> -- </span><span style="font-size:12.0pt;line-height: 115%;font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman"; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">Seek and Destroy yourself by performing tricks such as: deleting or renaming the malware file, opening Regedit and searching for the process.</span></p></div>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com2tag:blogger.com,1999:blog-27228931.post-76668938160543170362010-04-12T09:46:00.000-07:002010-04-12T10:10:51.362-07:00Google's Automated Search Query CaptureIt's known that Google takes preventative measures to reduce automated use of their search engine. In fact, Googles terms of service restrict the use of <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=66357">automated</a> queries. Normally human users with real browsers will not be suspect of such use and thereby should not trigger firewall rules that detect queries that appear to be automated.<br /><br />However I found myself in just that position. After running several varied queries, I came back to running the repeating a past query (through the browser drop down query history) and received the <a href="http://sorry.google.com/sorry/?continue=http://www.google.com/search%3Fhl%3Den%26q%3Dsite%253Ahttp%253A%252F%252Fwww.dexknows.com%252Fbusiness_profiles%252F%2Bintitle%253Aextra%2Bspace%2Bstorage%2B-%2Bself%2Bstorage%26sourceid%3Dnavclient-ff%26rlz%3D1B5_____enUS352US352%26ie%3DUTF-8%26aq%3D1%26oq%3D">following</a>:<br /><br /><img src="http://image.esold.com/techydave/Google-Suspicious-Searches.png" alt="Google Automated blocking of Searches" border="1" /><br /><br /><br /><a href="http://image.esold.com/techydave/Sorry-Google.html">HTML Source</a><br /><br />Interesting to note is that the <a href="http://image.esold.com/techydave/Sorry-Google-HTTP-Header.txt">page response header is a 503 error code</a>.<br /><img src="http://image.esold.com/techydave/Google-Suspicious-Searches-HTTP-Header.png" alt="Google Suspicious Searches HTTP Header" border="1" /><br /><br /><br />I suspect this was triggered by my complex query, retrieving multiple pages or results, and repeated usage in a short period. Google <a href="http://www.google.com/support/websearch/bin/answer.py?answer=86640">knowledge base on this topic</a> suggests that users that have this problem may also have a virus or other spyware on their computer or another in the network.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com70tag:blogger.com,1999:blog-27228931.post-89501149304096271042010-02-17T16:45:00.000-08:002010-02-17T16:52:18.675-08:00DNS Settings for LinuxFile for client DNS resolution as well as the default domain search is: /etc/resolve.conf<br /><br />Modify this file:<br /> <code>vi /etc/resolve.conf</code><br /><br />to appear like:<br /><code>search relevantads.com<br />nameserver 4.2.2.1<br />nameserver 4.2.2.4</code><br /><br />No restart should be required.<br /><br />You can replace the term "relevantads.com" with your local domain name. That will allow for pinging a machine without fully qualified domain name.<br /><br />The nameserver records should ideally be provided by your ISP. The above 4.2... records are gold TLD's which may block abusive traffic.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-66643156848663830692010-02-02T08:45:00.000-08:002010-02-02T08:55:38.185-08:00Finding Googlebot IP Addresses In IIS Server Logs<span style="color: rgb(31, 73, 125);"> I’ve made a parser command to find all references of GoogleBot (case insensitive) in our server logs, extract their source IP addresses, and summarize the hit count. To do this in Windows with your IIS logs files, you will need to have Gnu <a href="http://sourceforge.net/projects/gnuwin32/files/coreutils/5.3.0/coreutils-5.3.0.exe/download">CoreUtili</a> tools.<o:p></o:p></span><div class="Section1"> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> First try this from command prompt, type in:<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> </span><span style=";font-family:";" >grep -i "GoogleBot" c:\temp\logs\*.log | grep " / " | more<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> You should get an output of text log records, each containing a GoogleBot request.<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> Notice:<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="color: rgb(31, 73, 125);font-family:Symbol;" ><span style="">·<span style=";font-family:";font-size:7pt;" > </span></span></span><!--[endif]--><span style="color: rgb(31, 73, 125);">My log files are located in c:\temp\logs<o:p></o:p></span></p> <p class="MsoListParagraph" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="color: rgb(31, 73, 125);font-family:Symbol;" ><span style="">·<span style=";font-family:";font-size:7pt;" > </span></span></span><!--[endif]--><span style="color: rgb(31, 73, 125);">I’m looking for requests to the root (“ / “); optional<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> Next, extract the column containing the requestors IP address; in my log file, it is column number 9:<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> </span><span style=";font-family:";" >grep -i "GoogleBot" c:\temp\logs\*.log | grep " / " | cut -f <b>9</b> -d " “<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> Lastly, sort, summarize and store the results to a local file:<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> </span><span style=";font-family:";" >grep -i "GoogleBot" c:\temp\logs\*.log | grep " / " | cut -f <b>9</b> -d " “ | sort | uniq –c > c:\temp\googlebot-class-c.txt<o:p></o:p></span></p><span style="color: rgb(31, 73, 125);"><o:p></o:p></span> <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"> Note: It’s possible/probably that some of the request headers are fabricated and not actually coming from Google.</span></p><o:p></o:p> </div>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-51630388051656778942010-01-29T08:40:00.000-08:002010-01-29T09:44:28.157-08:00How to Test a Website Through Command PromptThe information that is exchanged through our internet browsers travels over standard communication protocols. Most of these protocols are compatible with basic keystrokes (ASCII) characters and can be accessed in their raw format through a few keystrokes in command prompt.<br /><br />1) Prepare a notepad window with the HTTP request codes that you want to run;<br /><img src="http://image.esold.com/blog/Notepad-HTTP-Commands.png" /><br /><code><br />GET / HTTP/1.1<br />Host: www.google.com<br /></code><br />2) Copy the commands to the clipboard;<br />3) Open command prompt and telnet;<br /><img src="http://image.esold.com/blog/Start-Run-Command-Prompt.png" /><br /><code>telnet www.google.com 80</code><br /><img src="http://image.esold.com/blog/Command-Prompt-Telnet.png" /><br /><br />4) Paste the HTTP code by right-clicking; then hit enter a couple times;<br /><br />Note that you will get a blank screen (unless you have full duplex connection) and will not see the keystrokes that you enter.<br /><br />At this point you will see a stream of text fill the screen. You should be able to scroll back in the command prompt window; you may need to change the <a href="http://image.esold.com/blog/Command-Prompt-Properties.png">command prompt properties</a> to scroll all the way back.<br /><br /><img src="http://image.esold.com/blog/HTTP-Telnet.png" /><br /><br /><span style="font-weight: bold;">Reference</span><br /><h3>Debug Browser Requests</h3><br />Your browser will pass many headers in each request it makes. In the past, we used to have to run HTTP monitoring tools to see what the browser was doing, but now Firefox has a great add-on called <a href="https://addons.mozilla.org/en-US/firefox/addon/3829">Live HTTP Headers</a> that makes it much easier.<br /><br /><h3>Protocols</h3><br />There are several protocols that can be used in telnet, here is a list of ones I have used:<br /><table><br /><tbody><tr><td>Service</td><td>Standard Port</td></tr><br /><tr><td><a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">HTTP</a> (websites)</td><td>80</td></tr><br /><tr><td><a href="http://www.ietf.org/rfc/rfc2821.txt">SMTP</a> (email sending)</td><td>25</td></tr><br /><tr><td>FTP (file transfer)</td><td>21</td></tr><br /><tr><td><a href="http://www.ietf.org/rfc/rfc1939.txt">POP3</a> (fetch messages)</td><td>110</td></tr><br /><tr><td><a href="http://www.faqs.org/rfcs/rfc3501.html">IMAP</a> (email server)</td><td>143</td></tr><br /></tbody></table><br /><h3>Other online HTTP testing tools</h3><br /><a href="http://www.pingdom.com/">Pingdom</a> is great as it shows time to first/last byte<br /><a href="http://www.uptrends.com/">Uptrends</a> - several geographical sources to test from.<br /><a href="http://www.site-perf.com/">Site-perf</a><br /><a href="http://www.linkvendor.com/">LinkVendor</a>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com3tag:blogger.com,1999:blog-27228931.post-62398627827574930632010-01-11T17:53:00.001-08:002010-01-11T17:58:22.048-08:00Windows 7 God ModeGodmode in windows 7 lets you have a single place to configure most windows settings:<br /><br />Make a folder called: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}<br />Or from cmd (command prompt) run:<br /><br /><code><br />cd \<br />mkdir "GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}"<br /></code>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-9845958848720700892009-10-14T15:33:00.000-07:002009-10-14T15:56:02.098-07:00Astricon 2009 - Open Source MaximusI'm at <a href="http://www.astricon.net/">Astricon</a> 2009, the Asterisk Development conference. <a href="http://www.asterisk.org/">Asterisk </a>is an internet based, free phone system. Quite an interesting crowd of open source developers, solution providers, VOIP resellers, and hardware manufacturers; about 500 persons in total.<br /><br /> <span class="right-white-textbold">Chris DiBona</span> of Google gave the keynote this morning and focused on Open Source. He pointed out that the majority of time that Google is interested in a technology company that they fund/support the company to get to a stable build and then make it available to the entire Open Source community. There are somewhere around 32 billion lines of open source code; a code base that will outgrow and out-maneuver most proprietary software applications. Ironically Google does <span style="font-weight: bold;">not</span> use Asterisks; Google Voice is a proprietary application that is specifically works of off Google's core servers; which Asterisk will not. So much for embracing open source!<br /><br />I've been hanging out in the Coders Zone most of the day. The breadmaker and soda's are keeping the me and the developers here happy. Half the people here seem to either work for Digium (the inventor of Asterisk) or are a reseller of Digium. Although I've been a customer of Digiums; they are too big these days to care for the little guy; nevertheless, in my quest to find a phone system consultant they referred me to Leif, a fellow that literally wrote the book on Asterisks, and hopefully he can build our custom solutions.<br /><br />The exhibit hall has shown a few phone system solutions of interest:<br /><ul><li>Presenceco.com - a whole customer service platform (really sweet/complete system)<br /></li><li>VICIdial.com - call center management system</li><li>Loquendo.com - text to speech solutions</li><li>Braxtel.com - contact center people</li><li>LumenVox.com - Speech-to-text provider</li></ul> All-in-all; It's been a successful days quest here in Glendale, AZ.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-54105496996189568382009-09-11T12:02:00.000-07:002009-09-11T12:07:50.119-07:00Asterisk: Identify and Hanging Up a CallWhen using an Asterisk with a SIP client like X-Lite; sometimes a disruption in the X-Lite client may occur, but Asterisks keeps the call active. If you're paying by the minute, this can be an expensive annoyance.<br /><br />Identify if Asterisk is still on the line by running the command:<br /><span style="font-weight: bold; font-family: courier new;">core show channels</span><br /><code><br /><span style="font-family:courier new;font-size:85%;">pbx*CLI> core show channels</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Channel Location State Application(Data)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/16-1 (None) Up Bridged Call(SIP/7118-b6b1c5d8</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7118-b6b1c5d8 s@macro-dialout-trun Up Dial(ZAP/g0/48###71268|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/13-1 (None) Up Bridged Call(SIP/7112-b6b0d0f8</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7112-b6b0d0f8 s@macro-dialout-trun Up Dial(ZAP/g0/8884588762|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/7-1 (None) Up Bridged Call(SIP/7103-b6e0dc68</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7103-b6e0dc68 s@macro-dialout-trun Up Dial(ZAP/g0/60###77511|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/11-1 (None) Up Bridged Call(SIP/7114-b6b2b8b0</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7114-b6b2b8b0 s@macro-dialout-trun Up Dial(ZAP/g0/61###02929|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/6-1 (None) Up Bridged Call(SIP/7104-b6efd110</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7104-b6efd110 s@macro-dialout-trun Up Dial(ZAP/g0/50###8698|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/1-1 (None) Up Bridged Call(IAX2/freepbx-3125</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">IAX2/freepbx-3125 s@macro-dialout-trun Up Dial(ZAP/g0/80###75414|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/2-1 (None) Up Bridged Call(SIP/7113-b67f3ed8</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7113-b67f3ed8 s@macro-dialout-trun Up Dial(ZAP/g0/41###16000|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/10-1 (None) Up Bridged Call(SIP/7106-b67241a0</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/7106-b67241a0 s@macro-dialout-trun Up Dial(ZAP/g0/95###26252|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/4-1 (None) Up Bridged Call(SIP/310-b607b0d0)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/310-b607b0d0 s@macro-dialout-trun Up Dial(ZAP/g0/3083446400|300|tT)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">SIP/323-08806ba8 (None) Up Bridged Call(Local/317@from-in</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Local/317@from-inter s@macro-dial:7 Up Dial(SIP/323|22|trTM(auto-blkv</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Local/317@from-inter 1001@from-internal:1 Up Bridged Call(Zap/9-1)</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/9-1 1001@ext-queues:20 Up Queue(1001|t||custom/RelevantA</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/5-1 33BBACE092CA83BA9E39 Up MeetMe(33BBACE092CA83BA9E39E8C</span><span style="font-size:85%;"><br /></span><span style="font-family:courier new;font-size:85%;">Zap/pseudo-331706926 s@from-zaptel:1 Rsrvd (None)</span><br /></code><br />In the above, I determined that the MeetMe call was our stale conference call session. You then, hangup a line, with the command:<br /><span style="font-weight: bold;font-family:courier new;" >soft hangup Zap/5-1</span>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-29690823468910025172009-03-25T12:10:00.000-07:002009-03-25T12:21:10.533-07:00Killing Excessive Blocking Transactions in SQLI recently made a small error in a SQL Server parsing function that caused an endless loop. Unfortunately SQL doesn't escalate an error and will allow these transactions to go on endlessly.<br /><br />I quickly realized the error and attempted to correct the SQL function. However since there were users stuck in this endless loop, my ALTER FUNCTION transaction was being blocked.<br /><br />KILLing individual SPIDs didn't work since I could not keep up with the number of backup of user requests.<br /><br />To circumvent this, I ran a process to KILL all queries blocking my SPID:<br /><code><br />declare @bCont bit, @i int, @s varchar(100)<br />set @bCont = 1<br /><br />while @bCont = 1<br />Begin<br /> select @i = blocked<br /> from master..sysprocesses<br /> where spid = 113<br /><br /> if isnull(@i , 0) <> 0<br /> BEGIN<br /> set @bCont = 1<br />print @s<br /> SET @s = 'kill ' + convert(varchar(12), @i)<br /> exec (@s)<br />waitfor delay '00:00:00.05'<br /> END<br /> else<br /> SET @bcont = 0<br />end<br /></code>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-13711515199197900092008-10-01T00:16:00.000-07:002008-10-01T01:13:51.199-07:00ASP.net Session Error remedyHas your SQL server restarted lately; well if you're ASP.net application is reporting errors like these it might need some reconfigurations:<br /><div class="codediv"><code>SELECT permission was denied on the object 'ASPStateTempSessions', database 'tempdb', schema 'dbo'.<br />INSERT permission was denied on the object 'ASPStateTempSessions', database 'tempdb', schema 'dbo'.<br />UPDATE permission was denied on the object 'ASPStateTempSessions', database 'tempdb', schema 'dbo'.<br /></code><br /></div><br />The cause of this is that your ASP.net application uses SQLServer session storage. This is generally a good design pattern; the SQLServer session storage allows you to have multiple webserver and thereby scale your infrastructure. SQLSession is one of three possible session storage method and is defined in the web.config with a directive like:<br /><div class="codediv"><code><sessionstate mode="SQLServer" timeout="1440" sqlconnectionstring="Data Source=RelevantYellow.sql.relevantads.com;User ID=WebSession;Password=password" cookieless="false"></sessionstate></code></div><br /><br />However it relies upon a temporary database in SQL server. Each time the server is rebooted, the entire database is recreated along with the access permissions. Your database server is doing its rightful job of blocking non-administrative accounts from doing things without authorization.<br /><br /><span style="font-weight: bold;">Solution</span><br />Instant Fix. Grant permissions to you WebSession database user to tempdb. Simply make it a db_owner. This is okay, however, you'll need to repeat the step each time the server is restarted.<br /><div class="codediv"><code>USE [tempdb]<br />GO<br />EXEC sp_addrolemember 'db_owner', 'WebSession'<br /></code></div><br /><br /><span style="font-weight: bold;">Temporary Relief</span>.<br />Grant sysadmin privledges to the WebSession account:<br /><div class="codediv"><code>EXEC master..sp_addsrvrolemember @loginame = 'WebSession', @rolename = 'sysadmin'<br /></code></div><br />However granting such copious rights to this account is dangerous. Should you web application be compromised, hacked or be exposed, you could be caught with your shorts down.<br /><br /><span style="font-weight: bold;">Best Solution</span><br />Instead of relying on tempdb, the session data can be stored in permanent tables. Install the SQL script:<br /><div class="codediv"><code>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallSqlState.sql<br /></code></div><br />Alternatively, from the command prompt, run:<br /><div class="codediv"><code>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -ssadd -E -sstype p<br /></code></div>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-91803881230434990542008-09-22T14:32:00.000-07:002008-09-22T15:07:25.517-07:00Hyperlink behavior - forcing popup window"<span style="font-style: italic;">I'm clicking the link, but nothing happens</span>"<br /><br />Many websites use popup hyperlinks. While that has been fine in the past, with the advent of tabbed browsers, hyperlink popup windows will not behave as predictable as they once did. Furthermore, since users may have several websites open, it adds to the possibility that another site is using the same windows entitled "new".<br /><br />The problem is that the hyperlink uses the directive <span style="font-family:courier new;">target="new"</span> to cause the popup window. Subsequent clicks to that hyperlink will cause the new windows to be refreshed. Microsoft Windows will bring that Internet Explorer to focus or cause it to flash until clicked. However, with tabbed browsing only newly opened tabs will come into focus. So when a user clicks on an already opened tab, it will not be flashing or be focused on.<br /><br />If the web experience intent is to guarantee that the user will be shown the hyperlink in a popup form; instead use <span style="font-family:courier new;">target="_blank"</span>. However if you want the end-user to use a single browser window, use the "new" declaration of another name.<br /><br />Example:<table border="1"><tbody><tr><td><b>Target Link Test</b></td><td><b>Experience</b></td></tr><br /><tr><td><a href="http://relevantads.com/" target="new">new</a></td><td>Subsequent clicks does <u>not</u> yield new popups.</td></tr><br /><tr><td><a href="http://relevantads.com/" target="_blank">_blank</a></td><td>Each click gives its own popup.</td></tr><br /></tbody></table><br /><br />Note that "_new" is treated the same as "new".David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com2tag:blogger.com,1999:blog-27228931.post-55861140092160418542008-06-17T01:03:00.000-07:002008-06-17T01:04:07.346-07:00Blocking brute force administrator account attack via FTPDavid Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0tag:blogger.com,1999:blog-27228931.post-89429468319848136332008-05-12T20:06:00.000-07:002008-05-20T18:20:34.492-07:00Dissection of the ASP SQL Injection OutbreakSeveral website owners this past week, including the United Nations and the UK Government, were left with a compromised database after being hit with the notorious SQL injection bug. This is a flaw in which a basic ASP webpage can run malicious script on a SQL server.<br /><br />The mass attack hit a number of website that were ASP driven and supported querystring paramters for database lookup. Webpages can allow for dynamic retrieval of information based upon querystring parameters; however if programmed in a basic manner, it might allow for a malicious script to be run.<br /><br />Here is a basic example of a page that is vulnerable:<br /><br /><blockquote>Page: BadCode.asp<br /><code><br />Dim myVar<br />myVar = Request("input")<br /><br />...<br />objComm.CommandText = "Select * from myTable where ID=" & myVar<br />objRS.Open objComm.Execute<br /><br />...</code></blockquote><code><br /></code>In the normal situation, this will query the database for the specified record. However if the value of <code>input</code> is passed in as a malicious script, it could be run by the SQL server and run amok! Lets have a look...<br /><br /><h2>Example SQL ASP Malicious Script</h2><br />Given our BadPage.asp example, consider what the following HTTP request would do:<br /><code>http://samplesite/BadCode.asp?input=555;EXECUTE("MALICIOUS SCRIPT")</code><br /><br />In the mass attacks we've seen from China (IP=222.91.65.191) in the past week, the actual querystring script was encoded into hexadecimal so that it was interpreted by SQL, but not munged by ASP.<br /><br /><code><i>***REMOVED PER GOOGLE EDITORIAL GUIDELINES***</i></code><br /><br />Here is the script as interpreted by SQL:<br /><code><br /><i>***REMOVED PER GOOGLE EDITORIAL GUIDELINES***</i><br /></code><br /><br />The outcome of this executing the SQL command would result in modifying all the text content in the entire database. The text content would direct your website users to download malware to their desktops.<br /><br /><h2>Identifying Websites Vulnerable To SQL/ASP Bug<br /></h2>A basic query for <a href="http://www.google.com/search?num=100&hl=en&lr=&safe=off&as_qdr=all&q=test+filetype%3Aasp&btnG=Search">ASP pages to Google</a> can be performed to identify potential sites with the flaw.<br />Combine this script with a mass crawler to identify the querystring parameters, then hit the pages in mass coordination worldwide; pretty cleaver stuff indeed... The actual purpose of this latest infection from China was even more impressive as it ran a javascript to end-user coming to the website. That javascript contained several other fun forms of malware; which fortunately my browser decided to pass on...<br /><br /><h2>SQL Injection Fix</h2><br />There is <a href="http://www.pcsympathy.com/2008/04/28/microsoft-offers-assistance-to-combat-mass-sql-injection/">no patch that prevents this flaw</a>. A fully patched, secure and locked down server can be susceptible to this problem. It is only eliminated with good coding practices. I recommend exclusively using stored procedures to gain access to the database; in that way you tightly control all access levels and can avoid the pitfalls of rouge or poor programmers and basic exploits.<br /><br />In short, don't allow uncontrolled, dynamic SQL statements to be run from the web application.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com5tag:blogger.com,1999:blog-27228931.post-71731203834275196842008-04-03T15:23:00.000-07:002008-04-03T15:32:26.269-07:00Lanier cannot connect to Windows 2003 Domain Folder shareThis is likely due to a secure channel connection being requested by the server. Lanier 232c and Lanier 122; connect through SMB network file sharing. They do not support secure connection. <br /><br />In the Group Policy Editor, Select Security Settings\Local Policies\Security Options, details pane, locate and Disable:<br /><span style="font-family: courier new;"> Microsoft network server: Digitally sign communications (always).</span><br /><span style="font-family: courier new;"> Microsoft Network Server: Digitally Sign Communicates (If Client Agrees).</span><br /><span style="font-family: courier new;"> Domain member: Digitally encrypt or sign secure channel data (always).</span><br /> To apply the Group Policy change immediately either, (1) restart the domain controller; (2) open a command prompt, and type:<br /> <code>gpupdate</code><br /><br />If you change these setting and still have a problem, check the following settings. 1. Open the Default Domain Controllers Policy to edit the properties.<br /><br /> 1. Under Computer Configuration, expand Windows Settings\Security Settings\Local Policies\Security Options.<br /> 2. In the details pane, locate and<br /><span style="font-family: courier new;"> Microsoft network server: Digitally sign communications (always)</span><br /><span style="font-family: courier new;"> Domain member: Digitally encrypt or sign secure channel data (always)</span><br /> To apply the Group Policy change immediately either, (1) restart the domain controller; (2) open a command prompt, and type:<br /> <code>gpupdate</code>David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com4tag:blogger.com,1999:blog-27228931.post-38083558449698806532008-03-30T06:13:00.000-07:002008-03-30T06:19:52.430-07:00ASP.Net Remote Debugging & Local Host AliasVisual Studio Error: "Unable to start debugging unknown user name or bad password"<br /><p>Here is an even better solution than using locolhost with some bugus port. There was a security change in SP1 for Windows 2003 that prevents debugging on anything but localhost. There's an obscure KB article about it here:</p> <p><a href="http://support.microsoft.com/?kbid=896861">http://support.microsoft.com/?kbid=896861</a> </p> <p>The fix is simple:</p> <p> </p> <table class="list ol"><tbody><tr> <td class="number">1.</td> <td class="text">Click <strong class="uiterm">Start</strong>, click <strong class="uiterm">Run</strong>, type <span class="userInput">regedit</span>, and then click <strong class="uiterm">OK</strong>.</td></tr> <tr> <td class="number">2.</td> <td class="text">In Registry Editor, locate and then click the following registry key: <div class="indent"><strong class="uiterm">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa</strong></div></td></tr> <tr> <td class="number">3.</td> <td class="text">Right-click <strong class="uiterm">Lsa</strong>, point to <strong class="uiterm">New</strong>, and then click <strong class="uiterm">DWORD Value</strong>.</td></tr> <tr> <td class="number">4.</td> <td class="text">Type <span class="userInput">DisableLoopbackCheck</span>, and then press ENTER.</td></tr> <tr> <td class="number">5.</td> <td class="text">Right-click <strong class="uiterm">DisableLoopbackCheck</strong>, and then click <strong class="uiterm">Modify</strong>.</td></tr> <tr> <td class="number">6.</td> <td class="text">In the <strong class="uiterm">Value data</strong> box, type <span class="userInput">1</span>, and then click <strong class="uiterm">OK</strong>.</td></tr></tbody></table>(reboot may be necessary)<br /><br />If the other computer is truly remote, it will be necessary to define debugging permissions on that machine:<br />Click <strong class="uiterm">Start</strong>, click <strong class="uiterm">Microsoft Visual Studio 2005</strong>, point to <strong class="uiterm">Visual Studio Tools</strong>, and then click <strong class="uiterm">Visual Studio 2005 Remote Debugger Configuration Wizard</strong>.<br /><br />Also configure in Administrative Tools: "Local Security Policy" / "User Rights Assignment". The policy "Debug Programs" should be granted to your User.David Rodeckerhttp://www.blogger.com/profile/05723327160781202681noreply@blogger.com0