Cookie Notice

As far as I know, and as far as I remember, nothing in this page does anything with Cookies.
Showing posts with label networking. Show all posts
Showing posts with label networking. Show all posts

2014/02/22

You Don't Want Another Computer! On Dash-Top PCs, Set-Top PCs and Pocket Supercomputers

A decade ago, I started to get obsessed with the idea of hooking a computer to my car. I thought about storing and displaying diagnostic and status information, about storing music and podcasts, about having it handle navigation and all sorts of stuff. I hit the point where I considered the trade-off between storage media — solid state would be more survivable, but I could get literally hundreds of much bigger spinning hard drives for the cost of an SSD — and decided to keep it a mental exercise.

I'm certainly not the only one who considered putting computers in cars. And, eventually it became easy, because the iPhone came around, phones all had data and GPS, so the media and navigation parts of the equation were solved, and with Bluetooth and even 1/8" jacks, cars became stereos with four wheels. The only parts remaining are diagnostics and auto behavior modification. You can get the Garmin ecoRoute for $100 or a Bluetooth-talking ELM327 OBDII dongle for much less, plus many free apps for your phone. To my knowledge, chipping isn't dynamic yet — you can't remap your engine control unit's behavior on-the-fly — but I'm sure it's coming. Andy Greenberg wrote in Forbes about all the things two security researchers could do to pwn a Toyota Prius, and they were looking at capabilities, not attack vectors.

Point I'm trying to make is, for all my dreaming of putting a car into my computer, I now have one every time I sit down in my car, and even better, it comes back out every time I get out, so I don't have to worry about it when I go to the office, and it isn't locked in there if I have an accident. Things like Ford's Sync work best when they realize they're just an interface between your phone and your car.

(I now have an OBDII-to-USB cable and a Raspberry Pi, so I will have a computer in my car, but I'm going to explore the API and try to do more of the controlling-the-car things than a phone app would do. Certainly I'll still listen to podcasts while driving with my phone, not my Pi. I'll be sure to blog about it later.)

But I am not here to talk about car PCs.

I'm here to talk about home theater PCs.

I have one. It's an old HP that was handed down to me because it had connection issues I have never been able to replicate. The CMOS battery had died and corroded, too. Now it runs Windows 8.1 — will the indignities never end? — and I have it in my bedroom connected to the VGA port of my TV. I don't often use it, because when I start throwing pixels through the video card, the fan starts up and I have to turn it up to hear anything. I use it when I want to play with Windows 8, so not a lot.

When I want to consume media these days, I pull out my phone or tablet and point it at the Chromecast. More and more apps are coming — Google's opened the ChromeCast API — so the sweet spot between "essentially a wireless HDMI cable" and "smart thing that holds on to your credentials and streams you stuff" is being filled with more and more things.

I have a BluRay player. It comes with a wired ethernet jack in the back, and I have on occasion had it set up so I could use the networking portions, but when you're searching for YouTube videos or trying to type in passwords, the remote is a poor interface. Updates to YouTube's TV interface and others now bring up a URL you browse to that sets up the connection between your box and your account, but that's an update nobody ever pushed to my BluRay player; basically, once they make the next device, they don't care about the old one, so nothing cool is ever going to come back to my several-year-old player. This is what I fear is the fate of proprietary smart TV interfaces: the next cool thing in streaming apps will come next year, while I'll hold on to any TV I buy for several years, which means I'd have an ugly interface I hate for a decade after the company doesn't care.

We just got a Roku; I haven't even used it yet, and have only touched the remote once. It makes sense for the living room TV, which is old enough that it doesn't have an HDMI port. There is a Roku app for Android, so I'm sure I'll use it in a similar way to how I use the ChromeCast.

I saw a presentation recently that showed the older Google TV interface next to the Apple TV remote, arguing that every button in the full-keyboard-rethought-as-an-XBox-controller is a delayed design decision, and that the sparseness of the Apple TV is a selling point; I haven't used the Apple ecosystem, and I understand it's really slick, but trying to handle deep, full and varied content through such a limited interface. (Sophie Wong has a fuller discussion with photos of both remotes in a blog post.) The Roku's remote adds to that by having a hardware button to go directly to Blockbuster's app; Blockbuster is defunct and now there's a button always pointing to a dead thing. Software remotes like the Roku app should be easily updated to the sweet spot of usability.

When some people I know have tried the ChromeCast, they've objected, because they want a computer they control, not a second screen for their phone. I recognize that thinking, because really, that's what I was looking for in a car PC, before I realized that it isn't what I really want. Nothing built-in, as little smarts as I need to talk to it, and as much controllable from my phone as possible.

Do you have an argument for set-top boxes I haven't talked through? The only one I can think of is that content providers sometimes allow their content to be viewed in one forum and not others; the video to the left of Marina Shifrin telling her boss she quits through the art of interpretative dance is one of many that is cleared to be shown through TV only. As the use of phones for connectivity dwarfs the use of desktops and laptops, I'm sure that'll fall. If there's another argument, I'm game to engage it.

2012/08/02

Free Outdoor WiFi in Downtown Lafayette

City of Lafayette
"Want to live in a progressive city with 21st century technology?"

That's Lafayette mayor Tony Roswarski's question, and if you live in Lafayette, "Now you do", as the City of Lafayette and Wintek announced the opening of "Free Wi-Fi on Main Street."

I haven't tried it yet, but I expect to do so today. There's a bunch of places I go downtown that are in that map, so I am sure that I'll have a great chance to do so.

As a reminder, though, if you are using free Wi-Fi, there are few controls to keep potential bad guys away from your system. Lifehacker has writeup on how to keep your system safe on free Wi-Fi networks.

2011/10/21

We Solved It! Return of the PAL Problem

Remember what I was saying about the campus networking issue I've been discussing? Long story short: My phone connects to our PEAP and THAWTE protected campus network just fine, but once I am on, the network cannot do anything. But only with Android. Windows is happy with PAL2.0. iOS is happy with PAL2.0, and if I recall the last time I booted the poor, battery-starved old Linux laptop I have in my bookcase at work, desktop Linux is happy with PAL2.0.

But Android is not. Which is annoying.

I have of course went to the helpdesk, and that's where it gets a bit interesting. There's two groups I've hit: the helpdesk, who have found this problem across different Android versions, across different carriers, different handset manufacturers, without finding any common indicator, and the networking group, who, without more to go on, have entered the go away kid, you bother me zone, considering it a failure in user configuration.

I feel I should point out that, for the most part, my co-worker Rick keeps his Android phone all but off when he's in the office. I, on the other hand, tend to hook my phone into my Greater Audio System (Windows and another 1/8" cable [either laptop or phone, depending] run into a y-cable plugged into the audio-in of my Linux box, which I config to go direct to the audio out, because I don't have a mixer, and then into a speaker and to my headphones) so I can get my phone's notification beeps and podcasts along with the other audio I have at work. So I use the network and feel it when it isn't available. So, while I was pushed by usage, for Rick it was a question of curiosity. Which seems to be enough.

When you think about networking, if you think about networking, you probably think about your IP address akin to a phone number, which kinda works and kinda doesn't. Assume we have an address of 8.8.8.8 (which I don't: that's the IP address of Google's open DNS server, which I kinda like). I can directly connect to any machine on my subnet, which could easily be 8.8.8.7 and 8.8.8.15 or further out, and if I can't find what I want on my local network, the traffic goes out the gateway to the hierarchically higher network. (There can also be down, in addition to up, but that's not important right now.)

One way to look around the local network is by using MAC addresses and routing tables, but that's too low level for this discussion. We use subnet masks. It's a series of 1s and 0s, in that order, which is used to tell if IP address A is in the same subnet as IP address B. A common netmask would look like 11111111111111111111111100000000. Clearly, that's hard for people to deal with, so we would write that as 255.255.255.0. First, each of those four breaks out 8 spaces, which are binary representations of positive integers between 0 and 255. Here's a table of what the allowed numbers are:
00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254
11111111 255
So, if the subnet mask is, 255.255.0.0, that means the mask in binary is 11111111 11111111 00000000 00000000. The digit that share a space with 1 will be the same if the IP address is on the same subnet, and different if it's 0. Google's 8.8.8.8 would be 00001000 00001000 00001000 00001000, the neighbor 8.8.8.9 would be 00001000 00001000 00001000 00001001. Diff's at the end, in the zero space, and thus same subnet. 8.9.8.8 would be 00001000 00001001 00001000 00001000, and that diff would be in the ones, and thus different.

The subnet mask sent out by DHCP was 255.255.240.0. iOS and Windows are just peachy with that. Rick noticed that the IP addresses were a little higher than he would expect. He suggested that we enter in static IP addresses based upon what we got via DHCP (using a tool like ifconfig to tell you it all) but with 224 as the third octet, and it worked like a charm. Go us!

2011/02/08

Items from the Feed - Tying Down The Uplink


A couple of issues here. First, Sara Underwood is pretty, but that voice! Almost like fingernails on a chalkboard.

Anyway, one of the issues she brings up is wide-open home networks. The warning wasn't folks coming into your WiFi, infecting your PCs and stealing private stuff. It's glomming onto your network and "stealing" your bits.

Honestly, before I moved, I never encrypted my WiFi. I never thought it was worth it. Different neighborhood, with more people closer, and the new access point came with it up by default. As long as they don't use enough to mess up your video streaming, why not?

2011/01/28

Netflix As SpeedTest


This is cool. 

When you think about it, watching a movie from Netflix or something is a great way to test a network. This is a graph of different big ISPs and their throughput.
In the metric below, we’re filtering for titles that have HD streams available, and for devices capable of playing HD streams (which also filters out mobile networks), to highlight what’s achievable in terms of HD performance on the various ISP networks.
What I find interesting is the high numbers for Comcast. Their light-blue line is consistently #2 on this graph here. I have said that nobody loves Comcast, they either hate Comcast or resign themselves to having to have them, but the data clearly puts them as having a good network.

(Thanks, LifeHacker)


2010/12/09

The New Telephony meets the New Television: Expensive Remote

I have fairly close to the top end of the smartphones, the HTC Evo Android phone. I have a Vista computer connected to the Internet. I have just installed Boxee on said TV. Thing is, this TV, while it has a big screen and all, is across the room from me, and the keyboard and mouse are corded.

I did say I have an Android phone, right?

While it is a wonder of technology that can talk to WiFi, Bluetooth and 3G/4G mobile networks, and do much cooler stuff. I can watch video. I can make video. It is a cool thing. Being able to control my other computer is minor, but still cool.

I've done something like this before. Years ago, I had a Palm III. You could install an app that made your Palm into a programmable universal remote. That's cool, but that's coolness relying on IR and line-of-site and the IR source was meant for sending electronic business cards 3 feet away, not turning on a DVD player 10 feet away. This works over wireless networking, so line of sight is done, and thanks for that.

I'm also new to virtualizing interfaces. I've been a big fan of Synergy2 to allow you to have one keyboard for two or more computers. I just didn't expect it to touch the smartphone.

I know I'm at best second or third wave on this sort of thing. MythTV's been around for over 5 years, and many of these concepts are very stable. Microsoft's been putting these capabilities as part of their advertisements these days. And I know there are things involved here that I'm taking the goofy way around with. Big example is moving media onto my Android. (I call it RoyBatty, by the way. Considered going with RickDeckard, but no.) The old reliable way to do it would be to plug in the USB/charging cable. The slightly cooler way is via Bluetooth. My way is to use Dropbox. It's a cool and wonderful cross-platform thing. I was expecting full syncing, but it turns out to be pick-and-choose, which is okay, but it means I'm more active.) I think the really cool solution would be to using uPnP/DLNA. This means I have to start learning how to make that stuff work.

But seriously, this really convinces me that the New Television is a big monitor, receiving signal from whatever device you want, and not really the interface device in and of itself.

Now, if you excuse me, I'll watch some Revision3 on my computer as I go to bed.

2010/08/05

My Wireless Networking, Plus


In the foreground is my netbook, connected to the campus wireless network with barely one bar of connectivity.

In the background is the antenna for the access point for the campus wireless network.

Yes, I can physically touch my netbook to the antenna and not get better than low connectivity. Elsewhere it's OK.

I have sent a help ticket on. I haven't sent this picture. Yet.


This one's just a bit silly. I realized that the foliage (which I think is for sale) is covering the hours. If it wasn't open 24 hours, covering up when you're open could be a problem. Still, it's kinda FAIL, don't you think?

2010/06/30

Bluetooth Question

I have a netbook. It has a Bluetooth dongle. An IOGear dongle using a Broadcom 2046 chip. Don't know if that makes any difference.

I have a phone. A Samsung Instinct. Don't know if that makes any difference.

I wanted to try to use my Samsung as a data modem for my netbook in those few moments when I didn't have WiFi close by. Never really got it to work. Not really a huge concern for me, as I spend most of my time within easy access of WiFi.

And now, when I have my netbook on, it seems to try to connect every 30 seconds or so to my phone.

  • I work out of cell phone reception, so it couldn't connect on my desk if I wanted it to, which really I don't
  • It drops to the speed dial menu after it fails and drops the lock, which puts me in danger of butt dialing
  • It keeps it from being in sleep mode, thus eating the battery
So, clearly, I hate hate hate that it does this.

Any pointers to fixing this behavior while still keeping the Bluetooth dongle on? I on occasion want to copy things to the phone without finding my USB cable, and would rather have things on.

2010/04/27

Networking Fun

What we have here are two browsers running of a local machine (XP, but that's not important right now), and one X-forwarded from my home, all trying to get to perl.org.

At work, I cannot go to perl.org or cpan.org. At home, I can.

If I can route to home, and home can route to perl.org, I should be able to route to perl.org. And I don't know why I can't.

2010/04/08

Graphical Programming

I've worked with it before, 2 years ago when I was working with a defense contractor. There, they used it as a way to not have to write C++, and since they were electrical engineers and not computer guys, I can get not wanting to write C++. That's the closest I've ever gotten to being paid for it myself. But I had enough problems figuring out some problems with the generated code that I soured on the concept of Graphical Programming.

Until LifeHacker came up with solutions for improving your Google Reader feeds, including Yahoo Pipes, which has it's own Graphical Programming bit.

I've done a few. I've taken the Craigslist instrument feeds and searched out organ and Fender (as Fender guitars and amps and Hammond organs are the things I most want), and pulled out Pimp My PC from Butterscotch, as well as FLOSS Weekly from TWIT.TV.

It's a neat thing. I haven't done much more than touch the most simple part of it, so we'll see how it goes, if I can make it do stranger things. But it's a neat idea.

2009/12/10

Sprint Rant as Modem, pt 1 of ... 1

My home is a reasonably-networked environment. My work is a well-networked environment. I have a USB dingus that lets me link my Compaq Mini 110 to the Sprint phone network, but between my two computing environments, I don't need it very often.

K, on the other hand, has much more of a need for it. But it has not worked for her and her EeePC. Never has. It's gone back to the shop recently to get some work, but it's still flaky. I have just now downloaded the new Sprint SmartView software ...

I don't even get to get into it. I downloaded the newest version of SmartView, it grabbed newer drivers for the USB dingus, and now K can use the USB dingus to connect at Bill-Kurtis-like speeds. I was going to write down all my notes toward using her Samsung Rant as a modem, but the dingus works.

Don't you hate it when you're just about to get a nice hate-filled rant on and the thing just works?

2009/12/04

Gizmo - The Rest of the Story

I reinstalled XP on my netbook. I just thought about Gizmo. I've dealt with this before, but this time, post-reinstall, it works.

Just to clarify what I mean by "it works". I have called my laptop with my cellphone. I have called my cellphone with my laptop. I was able to call. I was able to answer. It works.

Google did buy Gizmo, so, like GrandCentral before it, it will soon be integrated directly into the Google stack. Expect it to be integrated first with Google Voice and then with the Android. Which ultimately gets to an interesting point.

My friend Patrick says that when VoIP becaomes universal, VoIP companies will be superfluous. Or words to that effect; I could look it up in my GTalk logs, but nah. When is easy and commonplace for people to call point-to-point via whatever networked device they have, with nothing but TCP/IP between them, what's the point of the AT&Ts and Verizons and Vonages of the world? And with Google making the OS for that device, plus the mechanism (Gizmo) and voice mailbox for this to work, it seems like they're pushing for that future.

Anyway, it's working.

2009/11/17

jBiff - Announcing New Mail via XMPP/Jabber

The Productivity People say turn off alerts for new mail, because it will suck your brain and suck your time. That's fine well and good. Except when you're coding and your boss shows up over your shoulder and says "Did you get my email?"

I hate having to respond "What email?" So, there's good reasons to have highly-specific alerts. And, to my knowledge, you can't really do that with Thunderbird and Epiphany. So, I began to wonder why I should even use those. Why not use Perl? It has Net::XMPP and more than one IMAP module.

So, I wrote jBiff. First there was biff, the command line tool. Then there was xbiff. Now, we have jBiff, telling your jabber client "You have mail."

I will put it on Github, soon after I figure out how.




#!/usr/bin/perl

# USAGE
# jBiff.pl -imap -x -s foo -s bar -s blee

use Carp ;
use Data::Dumper ;
use Getopt::Long ;
use IO::Socket::SSL ;
use IO::Interactive qw{interactive} ;
use Mail::IMAPClient ;
use Modern::Perl ;
use Net::XMPP ;
use subs qw{ imap_part xmpp_part } ;

$Data::Dumper::Indent = 1 ;
my @sender ;
my $debug ;
my $xmpp_identity ;
my $imap_identity ;
GetOptions( 'sender=s' => \@sender,
'debug=i' => \$debug,
'xmpp=s' => \$xmpp_identity,
'imap=s' => \$imap_identity, ) or exit( 1 ) ;

exit if !defined $imap_identity ;
exit if !defined $xmpp_identity ;
exit if length $imap_identity < 1 ;
exit if length $xmpp_identity < 1 ;

imap_part @sender ;

# ====================================================================
#
# Pull credentials from a configuration file
#
# ====================================================================
sub get_credentials {
my ( $protocol, $identity ) = @_ ;
my %config_files ;
my %config_vals ;
my %config ;

$config_files{ imap } = '.imap_identities' ;
$config_files{ smtp } = '.smtp_identities' ;
$config_files{ xmpp } = '.xmpp_identities' ;

$config_vals{ imap } = [ qw{
key server port username password directory
} ] ;
$config_vals{ xmpp } = [ qw{
key host component sender password recipient resource
} ] ;
my $stat = ( stat "$ENV{HOME}/$config_files{$protocol}" )[ 2 ] ;
my $hex_stat = sprintf '%04o', $stat ;

if ( $hex_stat != 100600 ) {
say 'You should ensure that this file is not executable,' ;
say ' and not world or group-readable or -writable.' ;
exit ;
}

if ( -f "$ENV{HOME}/$config_files{$protocol}"
&& -r "$ENV{HOME}/$config_files{$protocol}" ) {
if ( open my $fh, '<', "$ENV{HOME}/$config_files{$protocol}" ) {
while ( <$fh> ) {
chomp $_ ;
$_ = ( split m{\#}mx, $_ )[ 0 ] ;
my @creds = split m{\s*,\s*}mx, $_ ;
next if scalar @creds < 6 ;
for my $i ( 1 .. $#creds ) {
my $key = $creds[ 0 ] ;
my $val = $creds[ $i ] ;
my $key2 = $config_vals{ $protocol }[ $i ] ;
$config{ $key }{ $key2 } = $val ;
}
}
close $fh ;
}
my $href = $config{ $identity } ;
return %$href ;
}
else {
say "No Configuration" ;
exit ;
}
exit ;
}

# --------------------------------------------------------------------

# ====================================================================
#
# connect to and search your mail server via IMAP
#
# ====================================================================
sub imap_part {
my @sender = @_ ;
my $sender = join '|', @sender ;
my %creds = get_credentials( 'imap', $imap_identity ) ;

my $socket = IO::Socket::SSL->new( PeerAddr => $creds{ server },
PeerPort => $creds{ port },
) or die "socket(): $@" ;

my $client = Mail::IMAPClient->new( Socket => $socket,
User => $creds{ username },
Password => $creds{ password },
) or die "new(): $@" ;

if ( $client->IsAuthenticated() ) {
$client->select( $creds{ directory } )
or die "Select '$creds{directory}' error: ",
$client->LastError, "\n" ;

for my $msg ( reverse $client->unseen ) {
my $from = $client->get_header( $msg, 'From' ) ;
my $to = $client->get_header( $msg, 'To' ) ;
my $subject = $client->subject( $msg )
or die "Could not subject $@\n" ;
if ( $from =~ m{$sender}i ) {
my $title = 'New mail from ' . $from ;
my $body = $subject ;
$body = join q{"}, '', $body, '' ;
xmpp_part "$title - $body" ;
}
}
$client->logout() ;
}
else {
say 'FAIL ' . $! ;
}
}

# --------------------------------------------------------------------

# ====================================================================
#
# send message via XMPP/Jabber
#
# ====================================================================
sub xmpp_part {
my $args = shift ;
my %creds = get_credentials( 'xmpp', $xmpp_identity ) ;

# connection
my $hostname = $creds{ host } ;
my $port = 5222 ;
my $componentname = $creds{ component } ;
my $connectiontype = 'tcpip' ;
my $tls = 1 ;

#login
my $username = $creds{ sender } ;
my $password = $creds{ password } ;
my $resource = $creds{ resource } ;

#msg_to
my @field ;
push @field, $creds{ recipient } ;

my $Connection = new Net::XMPP::Client() ;

# Connect to talk.google.com
my $status = $Connection->Connect( hostname => $hostname,
port => $port,
componentname => $componentname,
connectiontype => $connectiontype,
tls => $tls ) ;
if ( !( defined( $status ) ) ) {
print "ERROR: XMPP connection failed.\n" ;
print " ($!)\n" ;
exit( 0 ) ;
}

# Change hostname
my $sid = $Connection->{ SESSION }->{ id } ;
$Connection->{ STREAM }->{ SIDS }->{ $sid }->{ hostname } = $componentname ;

# Authenticate
my @result = $Connection->AuthSend( username => $username,
password => $password,
resource => $resource ) ;

if ( $result[ 0 ] ne "ok" ) {
print "ERROR: Authorization failed: $result[0] - $result[1]\n" ;
exit( 0 ) ;
}

# Send messages
foreach ( @field ) {
$Connection->MessageSend( to => "$_\@$componentname",
resource => $resource,
subject => "Notification",
type => "chat",
body => $args ) ;
}

$Connection->Disconnect() ;
}

# --------------------------------------------------------------------


2009/10/21

A Few Words on Net Neutrality

I am a user of an ISP. I'm sure you heard of it. I feed my TV through the same wire I feed my home network with. I get 10mbps down and 3 up, more or less, but I share a local network with those people in my neighborhood, so if lots of folks are running some tools (BitTorrent, for example), that could tend to hinder my network usage. This makes me unhappy with my ISP, and this makes my ISP unhappy, so they throttle back the network traffic associated with those tools.

This capability is built into the high-level switches that ISPs use. There's an acronym, QoC for "quality of service", that's all about this kind of thing.

I used to use a service, and I did like it, called Vonage. This provides VoIP, or Voice over IP. My ISP, which also does cable TV, is becoming a competitor to Vonage, handling their own VoIP. It seems like it would be relatively simple to throttle network going to and from Vonage just like they throttle traffic handling BitTorrent packets. This would be technologically easy for them — we've established that they have the technology — but if you, like me, have decided that Vonage is the way you want to go, you get tired of an ISP that sucks like that and move on to one that doesn't suck like that.

This is what I understood Net Neutrality to be about.

But I'm thinking I might be getting to be wrong about that.

I think my statements so far shows my biases. To a certain extent, shaping the traffic of a network to make it more usable is the business of an ISP. But there are points where that is illegitimate. My feeling is that Networks should have Neutrality, but that, with an acceptable level of competition, ISPs that don't mess with you have a competitive advantage over those who do. But, ultimately, that's an issue between the people who provide the network to my house and the people who have things running on their servers. As a programmer, I can see myself eventually working for a start-up, but beyond that, really, there's little direct effect this would have on me personally, and for most people.



Glenn Beck is Glenn Beck. Like him or not. I'm not going to try to argue into accepting him. Skip ahead to 3:55 and you see Van Jones talking about Net Neutrality. Or something that's unrelated to Net Neutrality as I understand it, but going by that name. Net Neutrality meaning free internet to everybody, that doesn't seem ... well, forget "right" or "wrong". It doesn't seem related to the subject at hand.

Let us step back and look sideways. Let us assume that this graph is right. Phones these days have more powerful chips than any computer I had before 2002. And that's Verizon, AT&T, Sprint, T-Mobile — lots of companies that are ISPs. I'm not seeing the problem Van Jones sees, but I can see that Net Neutrality having a generally neutral effect on the population at large.

But what, if anything, am I missing?