Wednesday, December 31, 2014

vCenter Appliance 5.5 - HTML5 VM Console - Could not connect to hostname:7331

VMware vCenter Server Appliance 5.5 has a bug where (after a reboot) the vSphere Web Client works but the VM Console connection page returns a "could not connect" error message. The problem is that the VCSA is not setting one of its JRE environment variables during boot. Here's the fix for it:
1. ssh into the vCenter Appliance as root (turn on SSH in the VCSA admin console at https://hostname:5480 if it's not already on)

2. edit this file:
/usr/lib/vmware-vsphere-client/server/wrapper/conf/wrapper.conf

3. add this line anywhere under # Environment Variables:
set.default.VMWARE_JAVA_HOME=/usr/java/jre-vmware

4. restart the vSphere client service with this command:
/etc/init.d/vsphere-client restart

Now, wait a few minutes for vsphere-client to finish initializing (after the command prompt says that it has restarted you still have to wait for it to finish starting up).

That's it! Next time you restart your VCSA, the VM consoles in the vSphere Web Client will work without any intervention.


VMware KB article: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2060604

Thursday, December 18, 2014

Wednesday, December 3, 2014

CVP Call Studio 10.5 - RDP user workspaces

If you have CVP Call Studio on a Remote Desktop server where different users need to log in and have their own Call Studio workspaces, you can edit the C:\Cisco\CallStudio\startStudio.cmd file (just right-click > edit the desktop icon for Call Studio) to start Call Studio with a workspace in the user's folder:

start eclipse\eclipse.exe -data "%userprofile%\workspace" -vm eclipse\jre\bin\javaw.exe

CVP Call Studio 10.5 - Invalid Configuration Location

Cisco's CVP Call Studio 10.5 will complain about not being able to lock the configuration file if your user account doesn't have write privileges on the configuration folder. Here is a (poor) screenshot of the error:


To work around this, do as the message says and add this line to the end of your eclipse.ini file (located in C:\Cisco\CallStudio\eclipse\):
-Dosgi.locking=none

You'll need to have permission to edit that file, of course, so any user seeing the error message will likely not have that privilege.

CVP Call Studio 10.5 - Call Studio plugins not loading

I found out through trial and error that CVP Call Studio 10.5 must be installed with Windows UAC turned off. If you don't (at least, on Windows Server 2008 R2), Call Studio will open and only show the standard Eclipse features with no Call Studio projects or views available. This is due to it not loading the Audium plugins. The activation window will also not pop up at startup during the 30-day trial license that it comes with. Only uninstalling and reinstalling with UAC off will fix this issue.

Thursday, November 20, 2014

Disconnect all remote shares in Windows

Want to disconnect all the mapped drives (even ones that don't have a drive letter) that Windows is keeping open for you? Here you go:
net use * /delete

Wednesday, November 19, 2014

Forget dd for disk copying - use cat instead!

Instead of waiting an eternity for dd to copy one hard drive to another, you can use cat. It is way, way faster, and it will functionally work the same to clone a drive (grub will work, etc.). The following command will clone source drive /dev/hda to target drive /dev/hdb:

cat /dev/sda >/dev/sdb

Reference: http://unix.stackexchange.com/a/144227

Tuesday, November 18, 2014

Trust all IPv4 ranges on SalesForce.com

Only do this if you know what you are doing to yourself. This helpful script will set up a trusted IP range for all possible IPv4 ranges in your SalesForce.com organization. Trusting all IP ranges means you can log in to SFDC from any IP address and not be prompted to enter a verification code from new browsers. I would only recommend this in a sandbox or demonstration environment as this definitely reduces your SFDC org's security.

Link: http://raydehler.com/cloud/clod/enable-all-trusted-ip-ranges-for-a-salesforce-org.html

Retrieving MS SQL Server CD Key using Powershell

From this excellent post: http://mspowershell.blogspot.in/2010/11/sql-server-product-key.html

function Get-SQLserverKey {
    ## function to retrieve the license key of a SQL 2008 Server.
    ## by Jakob Bindslet (jakob@bindslet.dk)
    param ($targets = ".")
    $hklm = 2147483650
    $regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\Setup"
    $regValue1 = "DigitalProductId"
    $regValue2 = "PatchLevel"
    $regValue3 = "Edition"
    Foreach ($target in $targets) {
        $productKey = $null
        $win32os = $null
        $wmi = [WMIClass]"\\$target\root\default:stdRegProv"
        $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue1)
        [string]$SQLver = $wmi.GetstringValue($hklm,$regPath,$regValue2).svalue
        [string]$SQLedition = $wmi.GetstringValue($hklm,$regPath,$regValue3).svalue
        $binArray = ($data.uValue)[52..66]
        $charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9"
        ## decrypt base24 encoded binary data
        For ($i = 24; $i -ge 0; $i--) {
            $k = 0
            For ($j = 14; $j -ge 0; $j--) {
                $k = $k * 256 -bxor $binArray[$j]
                $binArray[$j] = [math]::truncate($k / 24)
                $k = $k % 24
         }
            $productKey = $charsArray[$k] + $productKey
            If (($i % 5 -eq 0) -and ($i -ne 0)) {
                $productKey = "-" + $productKey
            }
        }
        $win32os = Get-WmiObject Win32_OperatingSystem -computer $target
        $obj = New-Object Object
        $obj | Add-Member Noteproperty Computer -value $target
        $obj | Add-Member Noteproperty OSCaption -value $win32os.Caption
        $obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture
        $obj | Add-Member Noteproperty SQLver -value $SQLver
        $obj | Add-Member Noteproperty SQLedition -value $SQLedition
        $obj | Add-Member Noteproperty ProductKey -value $productkey
        $obj
    }
}


Use the function to retrieve the Product Key from the local PC:

Get-SQLserverKey

Or to retrieve the Product Key from one or more PCs (locally or remotely):

Get-SQLserverKey "pc1", "pc2", "server999", "server777"

Monday, November 17, 2014

CVP Community Forums link

I have no idea why this was so hard for me to find: https://communities.cisco.com/community/developer/collaboration/contact-center/customer-voice-portal

OS X Yosemite 10.10.1 update - can't restart bug

I had this bug while trying to update to Yosemite 10.10.1 from Yosemite 10.8. It couldn't complete the update because it was stuck trying to restart. Finder would hang and the dock wouldn't leave. I couldn't even restart or shut down without hard powering it off by holding the power button down. sudo shutdown -r in a terminal didn't even work. The fix is to log in with safe mode. I loosely followed these odd directions, and the update applied normally in safe mode.

Friday, October 24, 2014

Recover lost data from git hard reset

Big thanks to this excellent post I used to restore a ton of "lost" data when I accidentally did a git hard reset back to an old commit: http://www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/

My takeaway steps to recovering data:

coty$ git fsck --lost-found
Checking object directories: 100% (256/256), done.
Checking objects: 100% (17780/17780), done.
dangling commit b7c3533a8219f99ff4dd7402372dcea9ce114644
coty$ git show b7c3533a8219f99ff4dd7402372dcea9ce114644
coty$ git stash save "before rebase to recover data"
coty$ git rebase b7c3533a8219f99ff4dd7402372dcea9ce114644

Friday, October 3, 2014

Fixing high-availability failover condition in Cisco CUP 10.5

When Cisco Unified IM and Presence servers are in a high availability enabled subcluster, the high availability can go into failover / failed over when one of the servers goes down or is rebooted. If this happens, you can't assign any new users to the subcluster without either bringing high availability back up, or disabling high availability for the server that is still working.

If you thought that this setting was in the CUP server admin pages, you'd be wrong. As I found here, you have to go into CUCM admin page to change this. It's under System > Presence Redundancy Groups. Click find, click on your subcluster, and Enable High Availability is there as a simple checkbox. Turn HA off and then back on again to get it back into a good state.

Thursday, October 2, 2014

Jabber 9 and 10.5 error: Starting a feature set failed and Incorrect Username or Password

If you encounter this error in Jabber 10.5:
Starting a feature set failed
or this error in Jabber 9.3 or higher:
Incorrect Username or Password
when trying to sign in to Jabber using CUCM and CUPS (as opposed to Webex), and your typed password is actually correct, you may have a problem with your CUPS server and/or not have this user assigned to a presence server.

Test/verify:
To verify this is the problem,  try manual sign-in to CUCM (phone features only). If you can sign in to phone features, your problem is with CUPS. Make sure you have assigned this end user to a CUPS server and that the CUPS server is in a good state.

Adobe PDF "Please Wait..." error message, and can't print PDF on Mac

Adobe has extra features beyond the PDF standards. If you have an Adobe-only PDF file (or you have a newer version than someone you're sending the PDF to), you'll be able to open the PDF normally while others will get this message in place of the PDF content:
This seems to be the case especially for PDF forms created in Acrobat Pro that can only be filled out in Acrobat Pro or Acrobat Reader.

To resolve this, the recipient either needs to open the file in the latest version of Adobe Acrobat, or you'll have to print the PDF from Acrobat using a PDF Printer. An additional caveat when using Acrobat on a Mac is that you cannot save a filled-out PDF form using the built-in PDF printer in Acrobat; it will tell you to save as a PDF. The form I had trouble with also was not able to be exported to the PDF/A standard, so the only option I had was to install a 3rd-party PDF printer. If Adobe had used the built-in printing functionality in OS X, we wouldn't even be having this issue.

Install PDFwriter from http://sourceforge.net/projects/pdfwriterformac/. If you're on Windows, CutePDF and Bullzip PDF Printer are both pretty good. Once you install PDFwriter, go to the Settings app in OS X and open Printers. Click the + at the bottom of the installed printers list to add a new printer, and select PDFwriter from the popup that follows. Now, go back to your PDF in Acrobat, click print, select PDFwriter as the printer, and print it. Your new PDF print file will be located in /users/shared/PDFWriter/. If you want to get fancy, you can also create a link to your dropbox folder by running this command from Terminal:
sudo ln -s /var/spool/pdfwriter/$USER ~/Dropbox/Documents/PDFs
This will upload your print-to-PDF files into your Dropbox.

reference: http://sourceforge.net/p/pdfwriterformac/discussion/1246009/thread/d66abec3/?limit=25

Friday, September 26, 2014

Replacing the default https certificate in a java keystore

I have a JBoss server that hosts a bunch of web apps, and I needed to update the self-signed certificate that signs the https requests.
Step 1: find the keystore.jks file
[root@jboss ~]# find / -iname keystore.jks
/opt/jboss/domain/configuration/security/main-loadbalancer-group/keystore.jks

Step 2: backup the keystore.jks file, and remove the old "https" keystore. This won't affect the running JBoss services until you restart it.
[root@jboss ~]# cd /opt/jboss/domain/configuration/security/main-loadbalancer-group
[root@jboss ~]# cp keystore.jks keystore.jks.bak
[root@jboss ~]# keytool -delete -keystore keystore.jks -alias https

Step 3: generate a new private key with alias of "https"
[root@jboss ~]# keytool -genkey -alias https -keyalg RSA -keystore keystore.jks -keysize 2048

Step 4: generate a certificate request for "https"
[root@jboss ~]# keytool -certreq -alias https -keystore keystore.jks -file myjbossserver.csr

Step 5: copy the certificate request to the CA server
Step 6: set up your CA config file with the SANs you want. Use this as a guide: http://apetec.com/support/GenerateSAN-CSR.htm
[ccondry@ca:~]$ sudo openssl ca -config ./myjbossserver.cnf -in myjbossserver.csr -out myjbossserver.crt
Step 7: copy the signed certificate and the ca's public certificate back to the jboss server
Step 8: import the ca certificate (mine is ca.crt) as a trusted certificate, with the alias "myca"
[root@jboss ~]# keytool -import -trustcacerts -alias myca -file ca.crt -keystore keystore.jks
Step 9: convert the certificate to DER so that keytool can import it
[root@jboss ~]# openssl x509 -outform der -in myjbossserver.crt -out myjbossserver.der
Step 10: import the new "https" certificate, in DER format
[root@jboss ~]# keytool -import -trustcacerts -alias https -file myjbossserver.der -keystore keystore.jks
Step 11: restart your jboss server for the changes to take effect! (note your jboss service is probably not "jboss", so just replace that with your service daemon script name)
[root@jboss ~]# service jboss restart

Thursday, September 25, 2014

Can't uninstall Exchange 2013 or install another Exchange server version in current domain

I was stuck with a broken Exchange 2013 installation (brand new, too - never could fix the 'emails stuck in drafts folder' issue). I also couldn't uninstall Exchange 2013, because I couldn't delete all the mailboxes in it (access to the error message was denied...). And, once you install Exchange 2013 in your domain, you can't install another previous version in the same forest.

Fix: Open up ADSI Edit, connect to your domain, and choose 'Default naming context'. When ADSI Edit has connected, look in the folder directly under "Default naming context [your.domain.com]". It is named with your domain's distinguished name. Delete these folders:
CN=Microsoft Exchange Security Groups
CN=Microsoft Exchange Security Objects
Now change the ADSI Edit connection from 'Default naming context' to 'Configuration' and look in the folder directly under it. Go to the "CN=Services" folder, then delete these folders:
CN=Microsoft Exchange
CN=Microsoft Exchange Autodiscover

You'll also have to delete some user accounts, but this was the step that took me the longest to figure out. Thanks to this site for the info: http://blog.dargel.at/2012/11/20/complete-remove-exchange-2013-using-adsiedit/

Tuesday, September 16, 2014

Attempted to send call to agent: (ID: ), on peripheral: (ID: ), who has no device target.

If you receive an error like this:
Attempted to send call to agent: ccondry_0 (ID: 5050), on peripheral: CUCM_PG (ID: 5000), who has no device target.
Then you need to add the Routing Client in question to the Agent Targeting Rule you have set up for the agent device. Here is a screenshot of the button to add more routing clients to an existing Agent Targeting Rule:

Fix "Unknown" CLID on CUCM phone

I'm trying to get an Android app on the Cisco DX series phones to pull the caller ID field of the current call. If the call comes through UCCE, the caller ID number (or string, in this case) comes through fine. If the call goes directly to the extension, the expected caller ID is displayed while the phone is ringing, but then displays "Unknown" as the caller ID at the top of the call screen - and this is what my Android app is seeing.

To fix this, I had to turn off all options except "Caller Number" in the "Forwarded Call Information Display on Device" section of the device's line settings. Here's a screenshot of the settings on a device:


and here's where you would change it in the auto-registration template:

Monday, September 15, 2014

Fix eGain v11 services and instances stuck in 'Starting' state

eGain v11 will sometimes get stuck its service instances stuck in a 'starting' state where you can't manually start or stop them, and they remain in this state even after reboot (because the interfaces is just reading a database field, not the actual state of the service). Here's an SQL statement to set all instances in the 'starting' state to the 'stopped' state:
UPDATE [eGMasterDB].[dbo].[EGPL_DSM_INSTANCE] SET STATE = 4 WHERE STATE = 6
If you have a system service (as opposed to an instance of that service) that is stuck, use this instead:
UPDATE [eGMasterDB].[dbo].[EGPL_DSM_PROCESS] SET STATE = 4 WHERE STATE = 6
Obviously, if your eGain Master database has a different name, you'll need to change that. You can also limit this down to a single service or instance by changing the WHERE STATE = 6 to narrow down the search using the instance or process name/id. Just have a look at those tables to see what you need to use. For reference, here are the states:
0 = Undefined
1 = Error
2 = Waiting
3 = Running
4 = Stopped
5 = Undefined
6 = Starting

Wednesday, September 10, 2014

Where is my T1/E1 card?!?!

In Cisco IOS, you have to use the "card type" command first, before "interface controller" will even show up as a valid command.

I'm using a UC520 box with a built-in T1/E1 port that is labelled "0/3" on the exterior of the physical device, so this was the command that worked for me:
card type t1 0 3
You'll then need to follow up with something like this:
isdn switch-type primary-5ess
!
network-clock-participate wic 3
!
controller t1 0/3/0
 framing esf
 linecode b8zs
 clock source line
 pri-group timeslots 1-24
!

Reference: http://www.cisco.com/c/en/us/td/docs/routers/access/interfaces/software/feature/guide/vd-t1e1_vwic3.html

Tuesday, September 9, 2014

Default ICM Superuser Password

ICM comes with a 'superuser' account that controls Configuration Manager, specifically the Application Object Filter. The default password:
password

You must change this password in Configuration Manager's Options (in the File menu). There is no installation step that defines this password.

Credit: https://supportforums.cisco.com/discussion/11664641/icm-application-object-filter-password

Tuesday, August 26, 2014

Adding a PQ Attribute to a CCE Agent using UnifiedConfig API

Look up the SkillTargetID and ChangeStamp number of the agent either in the AWDB or in CCE Web Administration (you'll have to inspect the webpage or HTTP requests to see it).

You also need the ID of the PQ Attribute you wish to add to this agent.

In this example, my agent's SkillTargetID is 5164 and the desired PQ Attribute ID is 5018. I'm setting it to True. His current ChangeStamp is 3. Use base64-encoded authentication in the header, the same as my previous posts.

URI:
https://aw.my.domain.com/unifiedconfig/config/agent/5164?async=true

HTTP Method:
PUT

Data:
<agent>
 <agentAttributes>
  <agentAttribute>
   <attribute>
     <refURL>/unifiedconfig/config/attribute/5018</refURL>
   </attribute>
   <attributeValue>true</attributeValue>
  </agentAttribute>
 </agentAttributes>
<changeStamp>3</changeStamp>
</agent>

Monday, August 25, 2014

Create a Precision Queue in CCE using Unified Config API

In this example, we create a Precision Queue in Contact Center Enterprise using the Unified Config API that runs on the Administration Workstation system in your CCE deployment.

Use HTTP POST to this URI:
https://aw.my.domain.com/unifiedconfig/config/precisionqueue?async=true

Set the Content Type to:
application/xml

And add this header:
Authorization

with the value:
Basic YWRtaW5pc3RyYXRvckBteS5kb21haW4uY29tOnNlY3JldHBhc3N3b3Jk

That is, "Basic", followed by a space, followed by your base64-encoded admin credentials.

Now, set the content to the following to create a 1-step PQ that requires agents have a proficiency greater than or equal to 7 of PQ Attribute 5005 AND that PQ Attribute 5013 is true:
<precisionQueue>
 <department/>
 <name>MyPrecisionQueue</name>
 <description>This is a 1-step Precision Queue</description>
 <serviceLevelType>1</serviceLevelType>
 <serviceLevelThreshold>30</serviceLevelThreshold>
 <agentOrdering>1</agentOrdering>
 <bucketInterval/>
 <steps>
  <step>
   <terms>
    <term>
     <termRelation>0</termRelation>
     <attribute>
      <refURL>/unifiedconfig/config/attribute/5005</refURL>
     </attribute>
     <attributeRelation>6</attributeRelation>
     <value1>7</value1>
     <parenCount>1</parenCount>
    </term>
    <term>
     <termRelation>1</termRelation>
     <attribute>
      <refURL>/unifiedconfig/config/attribute/5013</refURL>
     </attribute>
     <attributeRelation>1</attributeRelation>
     <value1>true</value1>
     <parenCount>-1</parenCount>
    </term>
   </terms>
   <considerIf/>
  </step>
 </steps>
 <callOrdering>1</callOrdering>
</precisionQueue>

I'm using UCCE 10.5 for this, so I don't have departments, but you would in Packaged CCE 10.0 or 10.5.

<serviceLevelType> Values:
1 = Ignore Abandoned Calls
2 = Abandoned Calls have Negative Impact
3 = Abandoned Calls have Positive Impact

<agentOrdering> Values:
1 = Longest Available Agent
2 = Most Skilled Agent
3 = Least Skilled Agent

<termRelation> Values:
0 = OR (also used for the first term)
1 = AND

<attributeRelation> Values:
1:  ==
2:  !=
3:  <
4:  <=
5:  >
6:  >=

Create a CCE PQ Attribute using Unified Config API

In Cisco's Contact Center Enterprise, configuration of Precision Queus is done solely through the CCE Web Administration interface (as opposed to the Configuration Manager win32 application on the AW). This includes creating Attributes, Precision Queues, and assigning attributes to agents.

This web interface is driven by the Unified Config API, which you can see by inspecting the POST and GET requests your browser makes to the web interface. I used Firebug in Firefox, then Poster to test the API. Below is an example of how to create one of each type of PQ Attribute.

Encode your admin user credentials in base64, formatted like this:
administrator@my.domain.com:secretpassword

It will look like this:
YWRtaW5pc3RyYXRvckBteS5kb21haW4uY29tOnNlY3JldHBhc3N3b3Jk

Use HTTP POST to this URI:
https://aw.my.domain.com/unifiedconfig/config/attribute?async=true

Set the Content Type to:
application/xml

And add this header:
Authorization

with the value:
Basic YWRtaW5pc3RyYXRvckBteS5kb21haW4uY29tOnNlY3JldHBhc3N3b3Jk

That is, "Basic", followed by a space, followed by your base64-encoded admin credentials.

Now, set the content to the following for a Boolean PQ Attribute type that is default true:
<attribute>
<department/>
<name>MyBooleanAttribute</name>
<description>This is a Boolean Attribute</description>

<dataType>3</dataType>
<defaultValue>true</defaultValue>
</attribute>

Or use this for a Proficiency PQ Attribute type that defaults to 5 (out of 10):
<attribute>
<department/>
<name>MyProficiencyAttribute</name>
<description>This is a Proficiency Attribute</description>

<dataType>4</dataType>
<defaultValue>5</defaultValue>
</attribute>

I'm using UCCE 10.5 for this, so I don't have departments, but you would in Packaged CCE 10.0 or 10.5.

Update: I maxxed out the queue using curl and awk to insert a bunch of PQ Attributes from a text file list. It looks like it processed about 60 or 70 before it stopped accepting new requests. Here is the error message I received:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<apiErrors>
    <apiError>
        <errorMessage>Request processing queue is at capacity.</errorMessage>
        <errorType>asyncQueueLimit.maxQueueSize</errorType>
    </apiError>
</apiErrors>

Bad Request 400: finesseLayout property value should not contain children

Referring to the Cisco Finesse API, at /finesse/api/Team/5000/LayoutConfig
If you receive a Bad Request 400 response to a PUT request on this API (i.e. you're trying to update the layout XML for a Team in Finesse), and the error message contains this line:
Exception converting class com.cisco.ccbu.finesse.api.team.TeamLayoutConfig : Property value should not contain children on type:com.cisco.ccbu.finesse.api.team.TeamLayoutConfig child: finesseLayout
It means you need to encode the < and > characters using &lt; and &gt; for everything inside the <layoutxml> tag.

On a related note, if you receive an HTTP 415 Unsupported Media Type error response, make sure you're setting your content type to 'application/xml' and not 'text/xml'. Or anything else.

Tuesday, August 5, 2014

vSphere web client console not working - no http response

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2060604

Monday, August 4, 2014

Show nonpresent devices in Windows device manager

Reveal the hidden network adapters in Windows. I'm using this in Windows Server 2008 R2.
Run these commands from the command prompt with administrator privileges:

set devmgr_show_nonpresent_devices=1
start devmgmt.msc

Now click View from the File menu and then check 'Show hidden devices'. 

This will only work for this session of the device manager, because we started it from the command prompt with the devmgr_show_nonpresent_devices environment variable set. If you wanted this to be a permanent change, you could add it to the environment variables in system properties.

Monday, July 21, 2014

The correct MSSQL collation for Cisco ICM/UCCE

If you're installing ICM/UCCE in US English, you need to use the LATIN1_GENERAL_BIN  collation. Note this is not the default collation. Here's the screenshot of the correct choice:

Remove hidden network adapters in Windows

From a command prompt, run:
set devmgr_show_nonpresent_devices=1
start devmgmt.msc


Then enable "show hidden devices" in Device Manager.

Wednesday, May 14, 2014

How to test a TCP or UDP port in linux

from http://superuser.com/questions/621870/test-if-a-port-on-a-remote-system-is-reachable-without-telnet

is this localhost's SSH running?
$ cat < /dev/tcp/localhost/22
SSH-2.0-OpenSSH_6.2p2 Debian-6
YEP

is port 8080 on 192.168.30.5 open?
$ cat < /dev/tcp/192.168.30.5/8080
-bash: connect: Connection refused
-bash: /dev/tcp/192.168.30.30/8080: Connection refused
NOPE

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
...
Offending RSA key in /Users/coty/.ssh/known_hosts:13


If you know that the server key you're connecting to is the correct key - that is, it's changed because you're connecting to a server that shares an IP address with a server on a different network or VPN, or you've reinstalled or rekeyed the server in question - here's the quick sed command to "forget" the old key:

coty@jupiter:~$ sed -i".bak" '13d' ~/.ssh/known_hosts

Cisco IOS error: Static entry in use, cannot remove

This is a Cisco 2951 ISR running 15.0(1r)M16 (c2900-universalk9-mz.SPA.154-1.T.bin)

If a NAT entry is in use, you'll get an error:
router(config)# no ip nat inside source static tcp 192.168.30.5 80 interface GigabitEthernet0/1 12345
%Static entry in use, cannot remove

Clear the NAT translations first:
router(config)# do clear ip nat translation *

Then try again:
router(config)# ip nat inside source static tcp 192.168.30.5 80 interface GigabitEthernet0/1 12345
router(config)#

update apt-get's slow us.archive.ubuntu.com server setting

sudo sed -i 's`http://us.archive.ubuntu.com/ubuntu/`http://us-east-1.ec2.archive.ubuntu.com/ubuntu/`g' /etc/apt/sources.list