Sunday, March 29, 2009

Washington DC OTA DTV Channel Line-up: cheaper than cable with more stations

Many cable companies have a government-mandated monopoly. In exchange, they offer "basic cable" which was supposed to be a modestly priced service that includes little more than you could receive over the air. With the advent of DTV, does basic cable grow to include high-definition television? Of course not! Cable companies now charge more for you to receive lower-quality signals than you can receive over the airwaves. They also require you to rent an HD set-top box. If you have an HDTV manufactured in recent years, you can get it free over the air. Also, most of the local stations in DC offer more than one programming feed over the air. Cable companies charge extra for those same free signals.



WUSA and WRC are changing their frequencies on June 12, so be sure to scan through on your HDTV/receiver. Others may be changing, but information is not easy to find on their sites.


















































































Station/AffiliationOld Analog NumberDigital ChannelProgramming, FormatOnline ListingsReponse to questions?
WRC/NBC448 (674-680 MHz UHF)

4.1 HD 1080i 16:9

4.2 Weather 480i 4:3

4.3 Sports 480i 4:3 (mostly skiing this winter)


Nono response
WTTG/FOX536 (602-608 MHz UHF)Single DTV channel

720p 16:9
NoFullest, fastest response to email inquiry.
WJLA/ABC739 (620-626 MHz UHF)7.1 HD 720p 16:9

7.2 Weather 480i 4:3

7.3 Classic TV 480i 4:3
Nono response
WUSA/CBS934 (590-596 MHz UHF)9.1 HD 1080i 16:9

9.2 Weather 480i 4:3 Transitioning back to
VHF channel 9 on June 12th.
Nono response
WFDC14 14.1 480i 4:3? 
WDCA2035 (596-602 MHz)20.1 HD 720p 16:9Yes 
WETA/PBS26

Analog goodnight

6/12/2009
27 (548-554 MHz)

26.1 HD

26.2 Create

26.3 Kids

26.4 WETA


YesReponded, but without frequency information.

WHUT3233 (584-590 MHz)32.1 480i 4:3Yes 
WDCW5051? unreceivable



Friday, March 20, 2009

Why the telemarketers aren't stopping.

June 16, 2009 update: Fox News has a story on the auto-warranty Scammers.

With the implementation of the National Do-Not-Call registry, you'd think that telemarketing activity would decrease. Instead, telemarketing activity is increasing. Of course, it's impossible to measure, because there are no reliable statistics for illegitimate telemarketing activity. By illegitimate, I mean not just that they're not supposed to call you, but they're trying to scam you with a bogus auto warranty, fake sweepstakes winnings, or fake identity-theft protection services.

The cost of calling has dropped dramatically. With SIP trunking and the g729 codec, I can squeeze a hundred calls across a T1. The SIP trunk will cost me $.01 per call-minute. An open-source PBX will cost a few hundred dollars for server hardware. Robocalling and autodialing scripts are free. Add in a kilobuck hardware codec card, and I can start calling every number there is. A thousand sixty second robocalls cost me $10.00 and take only ten minutes to complete at a hundred concurrent calls a minute. My caller ID is whatever I enter into the caller id field. Faking caller id is trivial and legal. Even if only one in a thousand calls hooks me up to a sucker, I'm making money.

If I'm a telescammer, I'm not really concerned with the do not call list. If I'm faking my ID, what are you going to do -- report a number? A company that doesn't exist? I'm practically untraceable. If you *69 me, all you get is the faked caller ID number. You'd need a trap-and-trace from your phone company, and you can't do that without a threat. Even if you do get one, I've already called. I'm not going to call again, and if I do, it'll be from a different number. In Canada, the do-not-call list is a service for scammers to get Canadian phone numbers.

The economics make it almost as cheap as spam, and spam is a LOT easier to block than roboscammers. Blacklisting phone numbers, or even faked caller-id numbers is not easy. There are several free web services tracking this type of information, like whocalled.us and 800notes.com. However, there's no update service to add this to phone blocklists, which don't exist. Vonage won't let you blacklist numbers unless you get their Wifi hardware phone. Even Verizon's anonymous call blocking permits obviously bad 000-000-0000 numbers through.

Freepbx has a great blacklist, but it blacklists only known bad numbers. What we really need is a shared database of bad originating numbers.



Tuesday, March 17, 2009

Enumerate many Active Directory Groups at once

Here's another simple script that will simply write out your AD group memberships to a csv file with the name of a group. Input is a simple text file with one group name per line. This script is adapted from the original at "WiseSoft":http://www.wisesoft.co.uk/scripts/vbscript_list_group_members.aspx.

' VBScript source code
' takes a list of groups in a text file and dumps out a text file with each group's membership.
Set objFSO = CreateObject("Scripting.FileSystemObject")
'change this line to wherever you want to read the input from.
Set objTextFile = objFSO.OpenTextFile("c:\scripts\groups\groups.txt",1)

Do Until objTextFile.AtEndOfStream

groupName = objTextFile.Readline
'Debug.WriteLine groupname
If groupName = "" Then
wscript.quit
End if

groupPath = getgrouppath(groupName)
'Debug.WriteLine groupPath
If groupPath = "" then
wscript.echo "Unable to find the specified group in the domain"
wscript.quit
End if

Set objGroup = getobject(grouppath)
Set objFSO2 = createobject("scripting.filesystemobject")
'change the path to where you want the output files to go.
Set objFile = objFSO2.createtextfile("c:\scripts\groups\" & groupname & ".csv")
q = """"


objFile.WriteLine(q & "sAMAccountName" & q & "," & q & "Surname" & q & "," & q & "FirstName" & q)
For each objMember in objGroup.Members
objFile.WriteLine(q & objmember.samaccountname & q & "," & q & objmember.sn & _
q & "," & q & objmember.givenName & q)
Next

Loop
Set objFile=nothing
'***** Users who's primary group is set to the given group need to be enumerated seperatly.*****
getPrimaryGroupMembers groupName


wscript.echo "Completed"

Function getGroupPath(byval GroupName)
Set cmd=createobject("ADODB.Command")
set cn=createobject("ADODB.Connection")
set rs=createobject("ADODB.Recordset")

cn.open "Provider=ADsDSOObject;"

cmd.commandtext = "SELECT adspath from 'LDAP://" & getnc & _
"' WHERE objectCategory = 'Group' and sAMAccountName = '" & groupname & "'"
cmd.activeconnection = cn

set rs = cmd.execute

if rs.bof <> true and rs.eof<>true then
getgrouppath=rs(0)
else
getgrouppath = ""
end if
cn.close

End function

Function getNC
set objRoot=getobject("LDAP://RootDSE")
getNC=objRoot.get("defaultNamingContext")
End function

Function getPrimaryGroupMembers(byval GroupName)
set cn = createobject("ADODB.Connection")
set cmd = createobject("ADODB.Command")
set rs = createobject("ADODB.Recordset")

cn.open "Provider=ADsDSOObject;"
cmd.activeconnection=cn

'***** Change the Page Size to overcome the 1000 record limitation *****
cmd.properties("page size")=1
cmd.commandtext = "SELECT PrimaryGroupToken FROM 'LDAP://" & getnc & _
"' WHERE sAMAccountName = '" & GroupName & "'"
Set rs = cmd.execute

If rs.eof<>true and rs.bof<>true Then
PrimaryGroupID = rs(0)
Else
Err.Raise 5000, "getPrimaryGroupMembers", "Unable to find PrimaryGroupToken property"
end If

cmd.commandtext = "SELECT samaccountname, sn, givenName, distinguishedName FROM 'LDAP://" & getNC & _
"' WHERE PrimaryGroupID = '" & PrimaryGroupID & "'"

set rs = cmd.execute

while rs.eof<>true and rs.bof<>true
objFile.WriteLine(q & rs("samaccountname") & q & "," & q & rs("sn") & q & _
"," & q & rs("givenName") & q & "," & q & rs("distinguishedName"))
rs.movenext
Wend
cn.close

End Function



Wednesday, March 4, 2009

How to dump your web hosting provider in one line.

I used to host with Interland, which is now web.com. They just sent me an email telling me my monthly Windows hosting plan monthly price would double because FrontPage extensions are end-of-life on Linux. Thus I needed to download everything via FTP, because FrontPage will always choke before it completes. Windows GUI FTP clients are no longer free -- and they also choke before finishing 300 MB and thousands of files. (I checked and ChiliSoft ASP isn't supported/sold by Sun anymore, either.)

wget -r ftp://userxxx:password@ftp.mysite.com

Who knew wget could use ftp and be recursive?