Wednesday, September 12, 2012

HOWTO: 2Wire 3600HGV + Airport Extreme


AT&T's new router -- the 2Wire 3600HGV -- doesn't have a true bridge mode.  This is a problem if you'd rather have a plain old DSL modem delegating DHCP and NAT to their router.  There is, however, a way to get the 3600HGV into a bridge-like mode.  There is a succinct version of how to do this floating around the internet, but here I've added the specific key presses needed in the specific case of connecting to an Airport Extreme.  The bullet points below are my annotations.

If you haven't already, disable the wireless on the 2Wire:


1. http://192.168.1.254/
2. Settings > LAN > Wireless
3. Set the following options:
  Wireless interface: [disabled]
  Wi-Fi Protected setup: [disabled]
  SSID Broadcast: [disabled]
4. Click "save" at the bottom of the page.
  You will need your gateway's password to confirm the changes.

Now put the 2Wire into a bridge-like mode:


1. Set your router's WAN interface to get an IP address via DHCP. This is required at first so that the 2Wire recognizes your router.
- Open Airport Utility on mac or windows
- Right click Airport icon at left > Manual Setup
- Internet > Internet Connection > Connection Sharing: Off (Bridge Mode)

2. Plug your router's WAN interface to one of the 2Wire's LAN interfaces.
- Connect AT&T modem to Airport Extreme with ethernet.

3. Restart your router, let it get an IP address via DHCP.
- Update, Continue.

4. Log into the 2Wire router's interface. Go to Settings -> Firewall -> Applications, Pinholes, and DMZ
- http://192.168.1.254

5. Select your router under section (1).
- Choose [your router]

6. Click the DMZPlus button under section (2).

7. Click the Save button.
- password: [see sticker on bottom of 2Wire modem]

8. Restart your router, when it gets an address via DHCP again, it will be the public outside IP address. At this point, you can leave your router in DHCP mode (make sure the firewall on your router allows the DHCP renewal packets, which will occur every 10 minutes), or you can change your router's IP address assignment on the WAN interface to static, and use the same settings it received via DHCP.
- Go to Airport Utility
- Summary > IP Address: [should NOT look like 192.blah.blah.blah]
- Right click on Airport icon at left > Restart... [wait]
- Internet > Internet Connection > Connection Sharing: Share a public IP address
- I think he means "...you can PUT your router INTO DHCP mode..." which is the only thing that makes sense, since this is the point of the whole exercise.  I have no idea what to do with respect to the rest of the sentence.  Not sure if this applies to Airport Extreme or not.

9. On the 2Wire router go to Settings -> Firewall -> Advanced Configuration
- http://192.168.1.254

10. Uncheck the following: Stealth Mode, Block Ping, Strict UDP Session Control.

11. Check everything under Outbound Protocol Control except NetBIOS.

12. Uncheck NetBIOS under Inbound Protocol Control.

13. Uncheck all the Attack Detection checkboxes (7 of them).

14. Click Save.
- I had to restart my Airport Extreme to get the DHCP working on the Airport.



Some Notes:

1. I found this tidbit about how things might get reverted:

the 2wire router that's supplied for UVerse is awful. Follow the directions in post 2 of the link below to get it to work nicely with an AEBS, thats what i do and it works without any hitches, except when AT&T force software update and it switches it back to factory settings. You'll know thats happened though as the AEBS will start to complain about double-NAT.
http://forums.att.com/t5/Residential-Gateway/U-verse-for-BUSINESS-2Wire-3600HGV-bridge-mode-or-another-AT-amp/td-p/2707031


2.  (Optional) Confirm that your devices have IP addresses assigned by Airport Extreme; by default they are 10.0.1.*.  Check then in Airport Utility > Airport > Summary > Wireless Clients > DHCP Clients.  See column "IP Address".

3. (Optional) On the 2Wire router: Settings > LAN > Status > Devices > Clear List, if you have many listed besides your router.  After this, only your router should remain on the list.

Thursday, March 17, 2011

Android Calendar Bug (Android 2.3.3)

BUG: the "month" view is sticky, and you want a different view to be default
Notes
SOLUTION:

If you exit using the home button in most cases it should return to wherever you were last.

If you exit using the back button there is a magical dance to force a view to be the default. First, go to the view you want to be default, then go to the other three views, then press back until you exit the app. The view you want as default should be the last one to show up before the app exits.

Tuesday, February 16, 2010

Public Buzz == Blog Post

One analogy that has helped me is to think of Public Buzz posting as blogging. Here are some similarities:

1. Posts/Buzzes are inherently public to the world
2. Posts/Buzzes are discoverable via search
3. You have no control over who subscribes to your blog via RSS, just as you have no control over who "follows" you.
4. You have no control over who puts comments on your blog/buzz. This gives hints about those who might be subscribers/followers, but not really because commenting is open to the world.

One non-similarity is that with a blog you don't know how many people are subscribed; in buzz, you do.

Tuesday, January 19, 2010

Vizio VF550M + Comcast Problem (and Workaround)



The Vizio VF550M television has a weird interaction with Comcast Cable at least in the San Francisco Bay Area: replicated channels.

Upon doing a full channel scan during setup, some lowers channels get replicated to channels in the 200s. For example, channel 244-1 is identical to 44-1. The problem is that the "skip channel" feature doesn't allow you to delete these redundant channels! Careful research revealed that all of these 200+ channels get added as a results of scanning the physical channels 81 and 93. So if you do a "partial channel search" and avoid channels 81 and 93, you can work around the problem channels by not adding them in the first place. In other words, do partial channel search 3 times with these ranges: 1 - 80, 82 - 92, and 93-135.

Of course, there are some casualties. TNT, TBS and some sports channels also come in under channels 81 and 93. So I had to give them up. For me that was an acceptable loss, but if you need them, you'll have to live with the redundant 200+ channels.

Sunday, November 8, 2009

The Unique Skill of Understanding a Foreign Language

Daniel Tammet said
"It's one thing to learn a language it, to speak it, to produce it, to be able to talk with somebody. Comprehension, actually listening to a language and understanding it, that's something else because it takes time for the ear to get used to the totally different sounds"

Additionally, written language and spoken are often quite different. The vocabulary is different, and grammar rules are not respected. At least in English and Portuguese there are a tremendous number of sounds that are dropped when compared with written language. Ultimately, what got me over the hump was to recognize groups of sounds/words that occur together frequently and hear them as a single word.

For example, a Brazilian telling a story will start many sentences with "D-F-L". I finally asked someone what that mysterious word was. Turns out they are saying "Dai, eu falei" or "Dai, ele(a) falou" ("And then I said" or "And then (s)he said") The actual phrase has 5 syllables, while the compressed one is nearly 1. You wouldn't come across this phrase in any book and maybe not even on TV. It is something unique to natural, unplanned conversation.

So imagine that the spoken and written language are two different languages altogether. What are the implications? It means that you need to build up a vocabulary of sound groups. These will form the "vocabulary" of the spoken language. This is a hard task because it is usually not written down anywhere. But if you have access to native speakers, you can ask them questions just as I did. And I found that having even a small vocabulary of such "sound groups" goes a long way.

There are at least two benefits to thinking about written vs. spoken language this way. First, you will have less and less of a problem with people speaking too fast because you won't be translating from spoken language to written language (and then possibly back into your own language). You will hear a phrase and treat it as a single idea.

Second, you won't feel so bad that your comprehension skills are low because you'll realize that the task is actually quite difficult--you are learning 2 languages, not just one!

Thursday, November 5, 2009

SVD, PCA, Eigenvectors and all that

Principal Component Analysis (PCA) provides matrices E,L given a symmetric real matrix C such that CE=EL. The columns of E are the eigenvectors and L is a diagonal matrix with eigenvalues on the diagonal.

Singular Value Decompsition (SVD) decomposes an arbitrary real matrix A as A=USV' where U'U=1, V'V=1 and S nonzero only on the diagonal. Thus A'A=V(S^2)V' so that (A'A)V=V(S^2). Comparing this with CE = EL from PCA shows that V holds the eigenvectors and S^2 are the eigenvalues of A'A. To summarize,

SVD(A) gives eigenvectors of A'A. (1)

In applications we often start with a data matrix A where feature vectors are the rows of A. For example, suppose we have a data matrix where each row is an RGB triple that records color samples of skin. We might be interested in extracting a single direction that best approximates this distribution. To do this we first center the data (subtract the mean RGB triple from all rows of A) and find the principal eigenvector of the distribution. Computationally, we let B=[centered version of A], then SVD(B) yields the eigenvectors of B'B. A numerical example is given in [1].

What happens if we start with a symmetric matrix C instead of a data matrix A? For example, each entry c(i,j) could be a direct measurement of similarity between item i and item j as opposed to being computed as a bunch of products as in C = B'B above. Can we still use SVD to get eigenvectors of C? Because according to (1), SVD(C) gives the eigenvectors of C'C, not C.

We can. SVD(C) gives us the eigendecomposition C'C=VSV'. But C symmetric means C'C=C^2 and so C^2=VSV'. Then we can apply the power trick: A^k=Q(D^k)inv(Q) letting k=1/2 so that C=V(S^(1/2))V'.

SVD(C) gives eigenvectors of C when C is symmetric (2)

Note: It is often said that U and V are "the same by symmetry" when C is symmetric. Precisely how? For example, let C = [0 1; 1 0]. Then SVD yields U=S=1 and V=C. In particular, U is NOT equal to V. (This also shows the fallacy of reasoning that USV'=C=C'=VSU' implies that U=V). However, it IS the case that U and V are the same up to a column permutation. Why? SVD(C) gives the eigenvectors of C'C in the columns of V. SVD(C') gives the eigenvectors of CC' in the columns of U. When C'=C it follows that C'C = CC' so that U and V both "hold" the same eigenvectors, up to column permutation.


[1] GNU Octave example

octave:32> a = rand(5,3);
octave:33> b = a - repmat(mean(a),5,1);
octave:34> c = b' * b;
octave:35> [eigen, lambda] = eig(c)
eigen =

0.55689 0.59340 0.58116
0.56566 -0.78331 0.25778
-0.60820 -0.18518 0.77189

lambda =

0.19666 0.00000 0.00000
0.00000 0.22855 0.00000
0.00000 0.00000 0.74406

octave:36> [u,s,v] = svd(b);
octave:37> v
v =

-0.58116 0.59340 -0.55689
-0.25778 -0.78331 -0.56566
-0.77189 -0.18518 0.60820

octave:38> diag(s) .* diag(s)
ans =

0.74406
0.22855
0.19666

Friday, October 16, 2009

PG&E Dishwasher Rebate HOWTO




2. Fill out page 3. The tricky parts are:

Section 1
- PG&E Account Number is on your bill at the top left
- PG&E Electric Service ID is on the 2nd page at the top just under "Electric Account Detail"

Section 4
- Service ID # is the same as in section 1
- Product Code : "B35" or "B20". See page 1 of the pdf. They are listed in blue.
- Manufacturer: see dishwasher list
- Model #: see dishwasher list
- Unit Measure: "dishwasher"

3. Print and sign. Send in together with:

A. Retailer/Contractor name, address, and phone number
B. Itemized listing of each product including quantity, product description, manufacturer, model number, or other identifying information, i.e., SKU # as appropriate
C. Purchase price per product
D. Date “Paid in Full” or payment terms, such as “Charge” or “Net 30”
E. Product installation date