Tuesday, June 10, 2014

Comcast Creating Public WiFi Network

From slashdot, a Comcast customer in Texas points out that Comcast is going to turn thousands of WiFi routers into public hotspots. Wait a minute... what? I can't immediately see the evil in this one... depending on how they decide to implement this.

Having your router allow anons to connect wirelessly to it to get internet access is generally a good thing in my mind but that depends on a few things. 1, how many anons are getting onto your network and will this affect your ability to connect? 2, how many anons are going to use the connection to the point that your upstream and/or downstream bandwidth becomes saturated? There are ways of controlling or limiting these negative effects though and I would hope that Comcast is going to do this sensibly.

Some might be unhappy that this open WiFi hotspot plan seems to be coming in as an opt-out policy with Comcast but I don't see the problem here. If you are using Comcast's equipment then Comcast gets to decide how that equipment is configured, not you. There is nothing that I am aware of that would prevent anyone from purchasing their own equipment (router or modem/router combo) but the fact is that the majority of any ISP's customers simply don't have the time nor interest to learn about modems and routers. Most of my non-internet-savvy friends couldn't tell me the difference between a modem and a router if their lives depended on it. Welcome to the internet, you don't need to be an expert to be here, haven't had to be an expert for MANY years now.

Ultimately, the power over the equipment in your home is in your hands. If you don't know how to configure a router it's not even remotely difficult to learn. If you don't like that Comcast's routers are going to be allowing others to get (free?) internet access via your internet connection there will always be ways for you to change this. The easiest way being to just buy your own networking devices and take responsibility for configuring them so that they operate the way you want.

If Comcast does this intelligently then they will actually earn a few points from me. 1, any bandwidth coming from these open WiFi connections should NOT count towards any limits that Comcast has arbitrarily chosen to put in place on your connection/account. 2, since Comcast's customers have open WiFi connections for any anon to use, this makes it even less plausible that an IP address should or can be linked to an individual, a street address, or an account number, and as such any lawsuits that might depend on an IP address being linked to any of these things should vaporize.

Some might think that they should be compensated for allowing open internet access to any anon via the wireless router in their home. That's funny to me... because if you have not purchased the router and you have not configured the router, then you have done nothing worthy of gratitude or compensation. Comcast is actually the good guy for once. Scary thought.

Sunday, April 27, 2014

My Boots Don't Have Straps

I wear boots in the winter. They usually don't have straps... straps on my boots is not a feature I've ever needed I guess. I prefer steel toe boots over boots with no toe protection because if I'm not wearing boots simply for the added warmth and protection from cold or water then I'm probably wearing them because regular shoes or loafers are lacking in protection or utility in other ways. Something like these boots are the style I've been wearing since I was in my teens working in a crummy fiberglass ladder factory. They give more protection than a sneaker or loafer, they aren't unreasonably expensive, and they don't have bootstraps. They don't need bootstraps... I've never had trouble putting them on without straps. So why do other people think I need bootstraps?

Dictionary.com's definition of bootstrap might help you to understand what the term means if the only bootstrap you are familiar with is the highly opinionated Bootstrap front-end framework from the Twitter developers. I hear the term "bootstrap" used too often by people that have no clue what it really means... and I see Twitter's Bootstrap used by people who should go back to table layouts if they can't handle HTML5 and CSS3 properly with or without a framework.

I had the thought recently that I should just develop my own front-end framework that reflects my own opinions and things I've learned from the experience of putting together web pages over the past 4 years, but then it dawned on me that I already have my own framework... and it's a lot more flexible and minimal than the monstrous Bootstrap framework. I don't start a page or project with empty HTML and CSS files. I will use whatever the best practices are at the time. When it comes to HTML that means at least looking at what h5bp is doing at the time and copying what we need from there without mindlessly throwing away things I've learned that might contradict what they are currently doing. I have a set of CSS rules that I start with that I've only ever referred to as a "reset" because when I first developed it that's what everyone called that sort of thing. It's a basic set of rules put in place in order to standardize or normalize the rendering of content and elements across browsers. It's a set of rules that is constantly evolving as things have changed over the years (like no longer being required to support IE6, 7, and 8 on every project my team works on) and will continue to evolve as needed. I guess I need to give it a name, so it's name will be Vstrap.

It's taken me too much time to fully understand and appreciate what Bootstrap is - I have not followed its development over the years because it has always been way more than what I need for what I do... that and I've always known (since the 1990s) how to write correct cross-browser-friendly (I got started as a hobby trying to make pages that looked good on WebTV as well as PC browsers) HTML and CSS and don't need a large framework to help me get things right. We recently brought a new developer into our team and he loved Bootstrap. I tried to ask, when I could and very politely, what's so great about this Bootstrap? Why is it better than what I've already put many months, perhaps years of development into? What problems did we have that this is now solving? Why are these things now broken when they weren't before you threw away my work and replaced it with bootstrap? I did not get any good answers from the new dev... which is why it took me so long to start to understand the beast that is Bootstrap. I've had to search and research in my own spare time essentially and I'm still far from being an expert on Twitter's Bootstrap.

This new developer, let's call him Paul, took all of the CSS improvements I had contributed to our CMS over the course of a couple of years and threw them out. Why? I never got an answer to that question from him... and he has left our team after only a few months. I've come to my own conclusion though. Paul is a proper developer, and not a designer at all. Paul is a programmer first, not a designer so much. Paul doesn't have time to eat, sleep, and breathe CSS like I've had time to do.

I'm not a very patient person when it comes to some things. If you tell me that I'm doing something wrong, but cannot tell me what exactly I'm doing wrong, then at best you're not a good communicator and at worst you do not know what you are talking about. You might be awesome at javascript, python, ruby, and who knows how many other programming languages, and I think that's great! I'm not a programmer, I can't criticize other people's programming skills, and I'm generally honest about that I think. HTML and CSS are pretty much all I'm proficient with... sometimes, depending on who else is listening, I feel like a fraud calling myself a developer because HTML and CSS aren't programming languages... but the fact is that I have developed a framework of my own. It might not be as popular as Bootstrap is (or even publicly available) but it DOES solve a lot of common problems as well as a lot of problems specific to the projects that I've worked on over the years. I don't like calling myself a designer (I'm more of a developer or editor IMO) but given the competition I've seen in my small circle I must be one.

But Sean, you might be thinking, why reinvent the wheel when someone else has already done it for you? Well, for starters, when someone hands over a design to me that looks like it has had very little thought or time put into it (BUT THEY USED BOOTSTRAP! SO IT'S SUPER-AWESOME BECAUSE OF THAT!) and the first 8 hours of my time working on it is spent doing NOTHING other than undoing a bunch of different rules that are getting in the way of making it actually functional and not looking like junk on a smart phone, then I'm doing something terribly wrong. Seriously wrong. This is not productive. I can make this work but it will go a whole lot faster if I don't have to undo or over-ride 20 different rules just to stop a ridiculous looking 80 pixel gap being added below some text when viewed in phone browsers because someone didn't use the Bootstrap framework properly.

The non-minified bootstrap.css file from v3.1.1 is 118 kilobytes with well over 5000 lines of CSS rules contained in it. The last version of my vstrap.css (I gotta start naming it this I guess) is 12.7 kilobytes with about 200 lines of text... and about one-third of that text is COMMENTS that I've left in the file with the thinking that if, for some reason that I should ever disappear from the team, the next person that has to deal with my code won't be completely in the dark about the whats and whys of it. Apparently if that next person is a "modern" developer they're more likely to just throw out my lightweight CSS code rather than reading the comments to understand it.

And that's another thing... Bootstrap v3.1.1. Just because when Paul came along 5 months ago Bootstrap v3.0.3 was the latest and greatest doesn't mean that's the version we're going to use for everything going forward. So when I get handed a website "design" using an outdated version of a framework that just adds more frustration. I'm using the term "design" very loosely here because what I have to deal with is basically one html file, the main page, with links to NINE other pages that haven't been designed AT ALL. The files don't even exist yet... so I spent EIGHT hours just trying to fix ONE PAGE. This is seriously not productive. I could have written the page in 2 hours or less using my own Vstrap and not had to fix the problems that I see because the solutions so far have been to overwrite rules that (in my opinion) should not be there in a bare-bones template... this is, of course, assuming that I had been given a proper design of some kind to work from... which almost never happens. I was even told that the colors can be changed to whatever I think looks good in this "design"...

If I have to spend 8 hours removing, changing, and over-riding the rules of your design or template in order to fix what's broken, then your design or template is seriously broken. That's all it comes down to. I don't want to spend any time scouring the internet for bootstrap templates that I think will match the suggested but broken design given to me either. I'm quite capable of writing my own code here and it goes a lot faster if there isn't 80 kilobytes or more of bloat in the code to begin with.

If you're going to design with Bootstrap, fine. If your Bootstrap design is broken, that's not fine. If you hand that broken design off to a dev who isn't familiar with bootstrap...

My web development process is very much an additive process, not subtractive. Why? Because that's what makes sense to me. If you want to fly from Boston to Los Angeles do you really want to take a flight that makes stops in Austin, Fargo, Cleveland, St. Louis, Salt Lake City, and Miami? Probably not. So why start with the mindset that you will have to subtract things from your framework in order to achieve a goal?

Bootstrap is not the problem here. I've had my framework evolving since I started doing web development full time in 2009. Twitter's Bootstrap wasn't a thing until 2011. It wasn't the first front-end framework and won't be the last. There's plenty of things that the Twitter devs and I have both used in our frameworks, things that we all agree are good and best practices. What differs is the scope of our frameworks... and Twitter's Bootstrap had a broader scope from the very beginning (I don't need nor want a rigid, verbosely coded, complicated grid system) than what our team's projects have needed. Twitter's Bootstrap grid system might be clever and very good, but there are simply many things in it going unused or getting in the way of fixing what I was given, and that is the definition of bloated code. There's nothing in Twitter's Bootstrap that I can't replicate in a way that makes sense to me, given time, and probably using a lot less CSS code. I'm rarely given that time though... everything needs to be done two weeks ago by the time it gets handed to me... maybe I can get it done faster if I'm not given broken HTML as the design ref.

If all you want is a responsive site, you don't always need a 916 kilobyte bootstrapped framework to start with! You start with the basics and add features and rules as needed... especially if mobile device friendliness is your main reason for wanting "responsive" web design. If you want people who have tiny screens and terrible internet connections to get the best experience as often as possible from your website then don't used bloated code filled with features and rule-sets that you are NOT using! Basic HTML is already responsive until someone designs the responsiveness OUT OF IT with bad and/or short-sighted CSS rules.

Perhaps the problem here is me... and that I'm not thinking clearly. I was asked to fix this Bootstrapped "design" and even though in the back of my mind I know that since I'm not familiar with all of Bootstraps quirks and intricacies I probably shouldn't try and mess with it unless I'm given GENEROUS time-lines to work with... I went against my own gut feelings and decided to try and work within the Bootstrap framework. Disastrous... lost 8 hours of work essentially because the navigation menu that was handed to me still isn't right on mobile.

Then again, if I'm the problem, then why am I fixing someone else's broken bootstrap design/template (not the first time either) in the first place?

Wednesday, April 02, 2014

USB Type-C plug

I'm going to miss the type A USB connectors when they've been phased out. They're very hackable (smaller connectors are more difficult for certain physical hacks or modifications) and fairly secure compared to the smaller connectors. I find even standard HDMI connectors to be less secure than USB type A. type A connectors just seem to put up with more abuse, tugging and other small stresses before losing their connection than smaller connectors do. Source | Screenshot