3/15/2017

iPhone -- Party like it's 1990!

iPhones stink. The more I use one (for work) the more I wonder why anybody uses them. First, the very limited and rigid interface is straight out of the 80's. And today my iPhone randomly decided to not show any of my widgets on the widget screen. A reboot brought them back but I thought iPhones were "so stable." Pfft!

Just some examples of why I'm "less than impressed" with iPhones:

* The iPhone "desktop" is just a group of icons... period.. like a flashback to Windows 3.1 and the interface concepts from the 1980's that led up to it -- you can't put anything actually useful on the desktop, like a weather widget, music controls, etc.
* The closest iPhone comes to supporting widgets is having a dedicated but separate "widget" screen but it's not very flexible as everything on the widget screen is forced into a simple and inefficient top-down stack of widgets.


* Similarly, the desktop icons are forced into a top-left to bottom-right "reading" layout. There is, for example, no way to move a single icon to the bottom-right corner if you want it to stand out for some reason.

* There is no native "swipe' keyboard, and though you can install one from the app store Apple doesn't allow any 3rd-party keyboard app to access the microphone which means to gain swipe-typing you give up easy access to voice-typing.

* iPhones support being mobile hotspots, which is convenient for laptops etc when travelling, but the iPhone only supports doing so on the 2.4GHz band -- using 5GHz or even selecting a specific 2.4GHz channel is not even an option.

* The interface is inconsistent -- there is no universal way of going "back", for example. Each app is left to itself to decide where the "back" option is (if it even has one) and what it's labeled. Some put it in the top-left, others in the top-right. And I've seen it called anything from back, cancel, exit, done, or even just an x or a back-pointing arrow. It's functional, but odd that an interface and phone that is touted for its ease-of-use and supposed integration and consistency lacks such basic integration and consistency.

* iPhones don't support something as simple and basic as standard Bluetooth file exchange. Of course, they make it simple for file transfer between 2 iPhones or a Mac, but if you want to direct file transfer to an Android or Windows PC you have to jump through some hoops.

* iPhones don't allow apps to directly access signal information. This means you can't easily use an iPhone to get even basic WiFi information like what channel or speed you're connected at, or get anything more than basic cell signal information. For example, to know what LTE band you're using, or to get precise dBm signal information, you have to go into Field Test Mode.

There's more, but that's the gist of what I find most glaringly perplexing and limiting to using an iPhone to do anything technically interesting.

5/07/2014

Getting a Linux router to work with a direct connect to Google Fiber


  • 22 Sep 2015
    • I've had this working for a long time, but wanted to officially post instructs for setting up the IGMP portion for TV service.
    • I simply installed igmpproxy and configured it as follows. br-wan is my WAN interface, br-lan is my LAN interface, you'll just need to adjust those interface names for your own environment. This is the entirety of my igmpproxy.conf file and I haven't had any problem with it for months. Technically you should only need the 10.30. and 10.79. altnets, but I was getting intermittent igmpproxy log errors about other 10. unknown upstream IP sources (even though my TV service appeared to be working fine) so I added the 10.16. altnet as a catch-all and that got rid of the errors, and even though my own network runs a 10.

      • quickleave

      • phyint br-wan upstream ratelimit 0 threshold 1
      •         altnet 10.16.0.0/16
      •         altnet 10.30.0.0/16
      •         altnet 10.79.0.0/16

      • phyint br-lan downstream ratelimit 0 threshold 1

  • 13 Nov 2014
    • Tested this guide with my own setup and it worked exactly as planned.
    • Test environment
      • GF Jack to a standard (non-managed) 5-port Netgear 1Gb switch
      • Netgear switch to two legs
        • GF Network Box
          • Was running simultaneously, with its own pubic IPv4 and IPv6 address
        • OpenSUSE Linux box
          • Got a different public IPv4 address
  • 12 Nov 2014
    • Greatly simplified the CoS settings per the latest FAQ from Google. Simply set default egress CoS to 2.
  • I got my install 11/11/2014 and will finally be able to test this myself.
  • Google has provided some official-but-vague guidelines for using their service without their network box here: https://support.google.com/fiber/faq/3333053
 -----
  • This is a work in progress. The content will likely change frequently until the details are worked out so check back often for updated info.
  • I'm posting publicly for peer review, questions, and collaboration.
  • While being developed, it assumes you already have basic familiarity with the effort and the how, what, and why it is being done.
  • Assuming eventual success, I'll rewrite this for a more general audience at that time.
Goal:
  • To completely replace the Google Fiber Network Box (GFNB) with a Linux router
  • Capable of full link performance.
  • Reliably proxy IGMP for Google Fiber TV (GFTV) functionality.
    • note: The GFTV/IGMP aspect is only precursorily addressed at this time by setting the Google-specified VLAN CoS bits for it. I will get to the GFTV/IGMP functionality in more detail if/when the Internet connection itself works as intended.


1. Your Internet interface must be configured for VLAN 2.

ensure the VLAN module is loaded:
--
modprobe 8021q

2. Create VLAN 2 on your Internet interface, eth0 (for example)
--
vconfig add eth0 2

3. Google has said the VLAN CoS bit must be set on packets egressing to the fiber. Without setting the CoS you will likely be limited to 10Mbits/s UPload, if it works at all.

To set CoS for VLAN 2, map (default) skb-priority 0 to CoS 2:
--
vconfig set_egress_map eth0.2 0 2

5. Use your DHCP client to get an IPv4 address for your VLAN 2 interface: (dhclient for example)
--
dhclient eth0.2


As I understand it that should do it for a basic IPv4 connection. IPv6 steps can be extrapolated from the above though I intend to document the IPv6 setup in the final version.

Feedback very much appreciated, thank you.