That is a software issue
on
Why TV Lost
·
· Score: 1
And a "convergence" issue. It you have the right software, you can buy one of these puppies so you can keep the Compy86 upstairs and still stream video content from it.
It won't be done by general desktop PCs at all
That is because the "general desktop PC" will not exist as we know it. Computers are becoming closer to a mesh than solo devices.
Damn, it is good to know I'm not alone in thinking this.
I agree with pretty much everything you say. I also think that mobile web pages are a good fit for rendering on a TV. Mainly because people design the mobile sites to be controlled with a device that has limited input. Phones typically don't have a keyboard, and neither does your remote.
You'll be watching Sister,Sister and the "computer" in your TV will notify you of friend updates on Facebook. And why shouldn't it? 1080i is plenty of screen space for "real" web content.
Your high-def TV is the most expensive monitor in your house. Use it for something!
This is absolutely the future. HD content sent to your "computer", which is actually nothing but a 46 inch, 1080p monitor with a hard drive attached. What the naysayers don't realize is 1080i is a lot of pixels! You can finally pull stunts on your "TV" (aka a big monitor) that you were unable to on old TV's.
Remember WebTV? Remember why it sucked? Not the lack of a keyboard or mouse. It was the fact that your TV had such a shitty resolution you couldn't display rich media. Guess what, 1080i is a lot of space to display a website!
Know what else? Watching video on your computer or laptop sucks. Video is ment to be watched from a couch and controlled with a remote. Period. If Paul Grahm thinks we are all gonna gather around your laptop or desktop and watch the latest Office episode, he is sadly mistaken. What the future will be is your SageTV/MythTV monitors the RSS feed for The Office and sucks down the latest show. The future will be what NBC did with the Olympics website, only integrated with your TV's software so you actually watch the videos. The two major things holding it back was shitty resolution and lack of bandwidth. 1080i displays will fix the resolution, and bandwidth is always going up.
The computer as we know it today is what will loose. Video on computers suck. The TV will win.
Damn.. I sure wish more online video joins offered RSS feeds. It makes it easy to play video content where it belongs--streaming on my SageTV (think MythTV, only it actually works) with my skinny ass parked on the couch holding a beer and a remote. Streaming video on a computer is for suckers only.
Will the e-reader be cheap enough that a doctors office can leave them on the table in the waiting room and not have them stolen? Or will I have to read golf magazines from 2009 when I visit a doctor in 2012 because I forgot my e-reader at home?
Traditions of typography have been eroded now that a lot of publishers are allowing layout to be done with word processors like Microsoft Word
Most content is written in a language that only lets you suggest which font to be used, let alone manage fancier things like kerning. You blame Word for the erosion of typography, I'll blame HTML. At least Word has a notion of "columns" and content flow. HTML doesn't even do columns, at least by name.
reading off my notebook screen isn't so pleasant
Two factors are at play:
1) The DPI of your screen is still to small. While I dont have anything to back it up, the last thinkpad I used has a DPI of about 100 or so. The desktop LCD I'm looking at is about 73. Neither is close to what a printer can do--600 DPI or more.
2) Back in Windows XP, the only way to "make the font bigger" on that 100DPI thinkpad was to scale the font or run at a non-native resolution. Either option made your display look like shit.
Vista and OSX (I think) let you change the DPI, which makes a *huge* difference. You can keep your windows looking "normal" and reap the benefits of a higher DPI monitor instead of the hacks you had to do in XP.
Bottom line is reading on your notebook screen sucks because the DPI sucks. Wait a few more years when we get 300 DPI screens and we can talk:-)
Slashdot is not a newspaper. It links to newspapers and other outfits with paid journalists. The day "the newspaper" dies, what will all the slashdots, gizmodos, diggs, reddits, twitters and blogs link to? Who will do the reporting they all link to?
I remember back before the dot.com thing, back when web was only at version 0.4, you used to go visit some place like ikea.com and instead of presenting you with an HTML, "web" catalog, they'd fire up some java-based gizmo that displayed a bitmap of the printed catalog. I think even a couple newspapers and magazines did something similar--display a bitmap ensconced in a java applet. Kind of like a poor mans PDF reader. Why did this pop into my head when I read this?
Either way, none of these will succeed unless there is a standard way to present content across all these e-reader things. Some kind of bastardized version of PDF or something.
then how do you deal with someone breaking that cert
If somebody is trying to break the encryption on your WiFi card, buddy your life has bigger problems then just revoking some certificate. You must be doing some seriously hard-core shit to provoke somebody into wanting to break the crypto on your network. And if you are doing hard-core shit, you have no business using a wireless network anyway.
In other words, you don't deal with revoking certificates--this is SOHO stuff. Unless you are using WEP, nobody will bother cracking your encryption.
It couldn't be automatic. But you could have a training mode or something and then "lock the door" so to speak. The hard part is what do you do with exceptions after the door is locked. I think a bit of that could be solved with some kind of protocol where the firewall alerts the devices, which in turn might alert the user. Something. I think you could handle it so that 95% of your problem cases are covered.
the key probably is as well
This becomes another problem--what to do when an exception is thrown that the router really cannot handle securely. You've got to alert the user that something is amiss and they should go take their network to the computer service station--i.e. call a nerd friend. The problem is, if they don't have a nerd friend they will call the router manufacturer and increase the support costs.
If they added a browser-like address bar where you could type in the path to a particular spot, than maybe. If said address bar did tab-completion like a good shell, than "yes". If the search function used an index instead of what appears to be a sequential scan of the whole registry, then hell yes.
But really, I rarely have to muck in the registry.
1) obviously. Even a penny matters. I've got friends in the CPU business. They brag about removing a couple resistors on some PCB to save half a cent per board. However, I suspect people do buy a new router every few years (gotta have 802.11/xxyyzz after all!). They will choose the next one based on prior experience. I used to buy Netgear routers religiously until I bought some goofy looking white one that crashed every day. I'll never guy a netgear router again. Likewise, if the interface sucks, odds are good somebody won't buy that brand again.
2) We agree. But I'll debate requiring javascript--done properly it could significantly enhance the usability of the device. Flash? Couldn't do it even if you wanted--what if you were configuring the router using a new computer that doesn't yet have it installed? You couldn't download it until you configured the router, and you couldn't configure the router until you had flash. Oops!
I can see defaulting to WEP from the hardware standpoint, but the "enter a HEX key"? Does it still do that? it would seem to me that the second I have to write down a hex key, I'd just can the whole thing and go unencrypted. That or call support.
In other words, doesn't the fact that WEP sucks to configure increase support calls?
Second, UPnP already does 90% of the crap you just "outlined.
Yeah. There is also Link Layer Discovery Protocol, which is used by Vista to figure out what the fuck is on my network. The protocol stack is evolving in such a way that it could make SOHO firewall configuration easier.
But I was told that making a user friendly firewall might be possible. I never ran it through the engineering staff (you) first. Obviously you'd come back to me with a list of what is wrong and we'd reach something better then the "here is a listbox of shit--type a port number and some IP address and click submit" that constitutes most firewall configurations.
And by the way, I've yet to see a SOHO router that has a QoS implementation that doesn't suck. I'm not a network nerd, but I've use online backup software that I'd like to keep from hogging all my upstream bandwidth. Sounds like QoS, right? Point me to a SOHO router that doesn't throw up a wall of jargon and acronyms--or at least documents them. Better still, point me to one that has a report showing that it is working. It never seems like it works and whenever the backup software is running on one of my computers (mozybackup), my SSH sessions all slow to a crawl. It is all outgoing traffic, right? any configuration I do shouldn't depend on my upstream enabling QoS, right?
Odds are that if somebody has a need to configure their firewall then they know what they are doing and all that BS you spouted off will actually get in the way
Nerds wouldn't like my router anyway. I'm talking about the people who buy "Norton Magical Firewall" and crap like that. Do you run "McSlow Super-Dope-Internet-Protector"? Neither do I.
do yourself a favor and hide your Linux server behind a *BSD firewall
Way ahead of you, pal. coryking@cory ~/trunk/mozi $ uname -a FreeBSD cory.local 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 2009 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
coryking@sparky ~ $ uname -a FreeBSD sparky.xxxx 6.1-RELEASE-p12 FreeBSD 6.1-RELEASE-p12 #1: Sat Jan 20 14:15:16 PST 2007 root@sparky.xxxxx:/usr/obj/usr/src/sys/V100 sparc64
the hypothetical moron user you seem to be designing for doesn't know better and includes them in the config
Only if you design the interface in a way that obsures all 15 leeches. The traditional router guys would shove all 15 computers into a listbox and call it a day. Of course people wouldn't bother to remove the 15 devices under that regime.
Remember I said if you take away traditional constraints, a lot of stuff is possible. Ideally it would present you with a map-like interface with an icon for every computer/device connected and let you pick which ones you want. No reason you couldn't have the interface let you right click on the icons, or have some way to click on a rouge laptop and block it. People are scared about getting hacked--if you make it easy and obvious when something is afoul, they will pay attention.
The goal is to make doing the right thing, securing your household network, easy and obvious. You'll never nail it 100% and some people will never figure things out. But than again people will drive around for weeks with a bright red "no oil pressure light" on their car and blow the engine. Those people aren't a reason to not try.
doesn't tell you anything except go crying to your nerd friends
That is all it needs to do than. If your shit is hacked, go see your nerd friends. For most people, when the "check engine" light goes on, they take it to a service station--same thing.
My blockquotes work fine with Chrome
Not if you had it set to whatever the fuck extrans was and then realized after the preview it wasn't blockquoting shit anymore. What is the difference between "Plain Text" and "Extrans"--really "Plain Text" seems to interpret some tags just fine. But seriously, why not make even a spartan rich text editor--think stackoverflow.
And just to back my shit up... the fact that slashdot even has options about how to interpret what I type is stupid. Where is the damn rich text editor everybody else has. Why do I have to format the code on my own? What the hell is "extrans" anyway and why isn't it picking up my blockquote.
So many users want to perform tasks they don't understand and they want this to have good results each time.
Maybe the task is needlessly complex? Why should somebody connecting to a access point need to configure which encryption protocol to use? Why should the damn WiFi card and the access point negotiate automagically and *pick the damn best one they both support*?
^ this space reserved for replies telling me that the protocol doesn't allow it. Well you know what? The user isn't broken, the protocol is. 802.11/whatever is horribly insecure because the protocol doesn't fucking handle the encryption for you. Let me pick a key on the router, type it into the laptop, and the damn things can pick WAP, WPA, WEP, WAZOO or whatever the fuck some encryption dudes dream up all on their own. As long as it works and is secure, I dont really care what the hell protocol is used.
Blame the user is arrogant, stupid and is increasingly a black mark on employment. The world expects the programmer and the designer to do everything for them. That is the market. Deal with it. Programmers who design usable stuff will find their skills highly desired. Programmers who say users are spoiled children will rapidly find nobody wants to hire them.
You know who to blame? Blame the designers and programmers for not understanding what the goals and tasks are. Blame the designers (or lack thereof) and programmers for not removing all the roadblocks in the way of accomplishing said goals and tasks.
Honestly, the real reason programmers get bent out of shape (*cough*aside from the weird vibes coming from those still in the computing stone age like RMS*cough*) is that programming a usable interface is very hard. Lots of edge cases and you can't catch all of them. Really, the shit is hard and no silver bullet will ever be found that makes the hardness go away.
Why modern routers even offer WEP is beyond me. All the stuff I've touched seems to want to place WEP as the "standard" and so people who don't know the acronym soup will pick it over something more secure and usable (no hex passwords) like WPA or WPA2.
It is too bad the protocols all suck. Ideally the access point and the wifi cards would auto-configure in a way that allowed for the strongest encryption possible between the two. However, 802.11a/b/g doesn't offer that, instead forcing you to pick one.
Says who? If it is cheap enough (and energy efficient enough), why not throw a damn Core Duo in the damn thing and use powerful statistical magic to figure shit out?
"Fast and small" for "fast and small"'s sake is old school man. Nobody gives a rats ass about wasting CPU or memory. The computer works for us and what you should really be concerned about is saving *our* CPU cycles and memory--not the computer.
<blockquote>I am really tired of the "ooh shiny" becoming far more important than functionality lately in both projects.</blockquote> Your definition of "functionality" is too narrow to be of use. If you broaden your definition to include the user experience, "ooh shiny" matters a whole hell of a lot. Contrary to some, presentation matters almost as much, if not more, then your very narrow definition of "functionality".
You sure can make firewalling stuff easier. You just have to think a bit outside of what is the norm. We have lots of computing power these days and your router can play games that were previously impossible.
1) If your router is also a switch/hub, it can analyze the internal network traffic and learn computer names (if windows file sharing is enabled anyway).
2) It can tap the internet to look up stuff like mac addresses and other statistical traffic patterns to identify things like your Tivo or XBox.
3) You can invent an internal protocol that enables your household computers and devices to communicate to the router what the fuck they are. Odds are good you can use fancy crypto to make sure that the computers and devices can't lie if they get compromised.
4) Make a training mode that lets everything go through and when you are done, the router uses the wealth of statistical bullshit it collected in steps 1->3 to give the user a report outlining the househouse hold traffic.
5) The user can then "lock" the router and not let anything but what was configured in #4
6) If something odd happens, or the router detects new computers (say a laptop, etc). The magic protocol in step 2 would send some kind of alert to a computer, your email, your phone... something... basically saying "hey man, something changed... you might have to retrain me".
My idea, obviously, is a very crude outline. But you get the idea. Everything can be simplified if you focus in on exactly what the task at hand is and leave the rest of the bullshit out. In fact, I bet you can design the firewall configuration in such a way that the user never needs to see IP addresses or port numbers. All they see is friendly computer names (deduced from #1->#3) and descriptions of the traffic.
Nerds, obviously, wouldn't like this--instead wanting some geeky bullshit. But they can piss up a rope as far as I'm concerned. This is a mass market device intended for people who just want to feel secure that nobody is hacking their shit.
- OO doesn't map to relational databases very well, and I'd say relational theory will be around a whole hell of a lot longer then any programming methodology. Really a "loose", dynamic-typed language with strong support for hashes are the best for database stuff (Perl's hashrefs, PHP's array/hash things, etc). I've always strong-typed languages like C# lead to massive amounts of code to build even simple queries--good database coding involves SQL that returns only exactly the stuff you need (SELECT username, uid vs. SELECT *). The problem with languages like C# and Java are that you have to map every specific query to a bunch of structs, objects or whatever. The whole system strongly discourages dumping the mess into a hashtable and calling it a day--when you do, you loose out on intellesense and other niceness.
- OO doesn't always play nice with threads and parallel programming. The "future" of computing will be massively parallel computers the size of your iPhone. You can see hints of this trend already with quad-core cpu's becoming the norm for consumer desktops and GPU's being exploited for things besides 139.1fps WoW games. This could be simply that our languages haven't made this kind of programming very intuitive. It could also be that parallel programming is just a hard thing all together, though I suspect it is just the languages we use suck at it.
- Many modern languages and their libraries are offering non-oo ways of doing things. Look at jQuery and the state of javascript. Sure you can do OO in JavaScript, but why would you want to--it just isn't a good fit for the language*.
- That said, OO languages, especially those with strong typing, are easy for good IDE's to figure out. Even though VS2008 can kinda-sorta figure out Javascript, it isn't perfect and it is very easy to trip up the IDE to the point where it can't describe what you are creating.
The future, I predict will be a happy blend of OO and functional, dynamic- and strong-typed. OO for the "core", functional for the expressiveness, dynamic for the relational database stuff and strong for the non DB stuff.
I also predict a return to line numbered code. BASIC is hot these days.
* Though your client-side javascript doesn't have to scale to hundreds of files and tens of thousands of lines of code. In other words, it doesn't have to scale to a large codebase. Thus it isn't the best example.
Or you could have decided that it was useful enough that people would pay for it, and tried to sell it as proprietary software.
But in many cases, people wouldn't pay for it and I don't want to deal with the hassle. It is easier for me to just slap a BSD license on it and give the damn thing away. Somebody else gets to incorporate my little bit of code into their project, and I get to claim I contribute to open source projects. Win win.
Most people, I suspect, open source their stuff for precisely these kinds of reasons. They don't sell it because the software isn't worth polishing up to the state that somebody would ever pay for it.
That is why most open source projects that have nobody drawing a paycheck (i.e. not firefox, redhat, etc...) lack polish. If they had polish, the original authors would be selling it. Firefox has lots of polish because people are being payed money to work on it. If nobody got paid, nobody would invest what it took to make a good installer, good docs, and an overall polished appearance.
I really dont get the SQL-hate either. SQL is not scary once you learn it. I think people who learned SQL on MySQL 3.0 got scared off. MySQL didn't really like things like "JOIN" and instead wanted you to shove all your relations in your WHERE. Plus it didn't support aliasing tables without an "AS"
-- the kind of query one might find on MySQL 3 -- it is hard to figure this kind of thing out -- because all the join conditions are not spelled out -- and jammed in the WHERE clause SELECT o.name, p.pet_name, v.name AS vet_name FROM owner AS o, pet AS p, vet AS v WHERE o.owner_id = p.owner_id, o.vet_id=v.vet_id
vs.
-- how you are supposed to write it. -- you can tell exactly what the hell is -- happening in this query SELECT o.name, p.pet_name, v.name as vet_name FROM owner o JOIN pet p ON o.owner_id=p.owner_id JOIN vet v ON o.vet_id=v.vet_id
SQL has an easy learning curve. You do about 75% of the queries you need without learning more then SELECT, FROM, * JOIN, ORDER BY, etc. The fun stuff is once you do aggregate queries and subqueries. The best is when you get to optimize some complex query with indexes and a good query analyzer (hint: the dolphin logo'd database has horrible query analysis tools)
You have to join everything together at some point no matter what. If you join them on the way out the door, it buys you flexibility to basically see your dataset any damn way you need. If you join them going in, you can only see your data in ways envisioned by whoever designed the system inially.
Joins only kill performance if you are either *huge* or are using a certain database that happens to have a dolphin for a logo. In most cases, on a properly indexed, properly tuned database server a 10 table join shouldn't take more then a few milliseconds. You run into more problems with things like nested subqueries--but it really depends on how well you know your system and how many knobs you can turn.
Once you outgrow PostgreSQL, both of the big-boys offer all kinds of neat ways to optimize particularly "interesting" queries. Things like materialized views and such are good hacks to work around crazy views of your data that get hit often. Those kinds of things are the reason people pay big-bucks for Oracle and such. And if they went some crazy "object database" or key-value pair system like in the article, I'd argue the company would have never grown to the size that it could afford Oracle--those systems would have made it impossible to know the metrics and statistics needed to grow to a large enough size.
And a "convergence" issue. It you have the right software, you can buy one of these puppies so you can keep the Compy86 upstairs and still stream video content from it.
That is because the "general desktop PC" will not exist as we know it. Computers are becoming closer to a mesh than solo devices.
Damn, it is good to know I'm not alone in thinking this.
I agree with pretty much everything you say. I also think that mobile web pages are a good fit for rendering on a TV. Mainly because people design the mobile sites to be controlled with a device that has limited input. Phones typically don't have a keyboard, and neither does your remote.
You'll be watching Sister,Sister and the "computer" in your TV will notify you of friend updates on Facebook. And why shouldn't it? 1080i is plenty of screen space for "real" web content.
Your high-def TV is the most expensive monitor in your house. Use it for something!
This is absolutely the future. HD content sent to your "computer", which is actually nothing but a 46 inch, 1080p monitor with a hard drive attached. What the naysayers don't realize is 1080i is a lot of pixels! You can finally pull stunts on your "TV" (aka a big monitor) that you were unable to on old TV's.
Remember WebTV? Remember why it sucked? Not the lack of a keyboard or mouse. It was the fact that your TV had such a shitty resolution you couldn't display rich media. Guess what, 1080i is a lot of space to display a website!
Know what else? Watching video on your computer or laptop sucks. Video is ment to be watched from a couch and controlled with a remote. Period. If Paul Grahm thinks we are all gonna gather around your laptop or desktop and watch the latest Office episode, he is sadly mistaken. What the future will be is your SageTV/MythTV monitors the RSS feed for The Office and sucks down the latest show. The future will be what NBC did with the Olympics website, only integrated with your TV's software so you actually watch the videos. The two major things holding it back was shitty resolution and lack of bandwidth. 1080i displays will fix the resolution, and bandwidth is always going up.
The computer as we know it today is what will loose. Video on computers suck. The TV will win.
Damn.. I sure wish more online video joins offered RSS feeds. It makes it easy to play video content where it belongs--streaming on my SageTV (think MythTV, only it actually works) with my skinny ass parked on the couch holding a beer and a remote. Streaming video on a computer is for suckers only.
Will the e-reader be cheap enough that a doctors office can leave them on the table in the waiting room and not have them stolen? Or will I have to read golf magazines from 2009 when I visit a doctor in 2012 because I forgot my e-reader at home?
Most content is written in a language that only lets you suggest which font to be used, let alone manage fancier things like kerning. You blame Word for the erosion of typography, I'll blame HTML. At least Word has a notion of "columns" and content flow. HTML doesn't even do columns, at least by name.
Two factors are at play:
1) The DPI of your screen is still to small. While I dont have anything to back it up, the last thinkpad I used has a DPI of about 100 or so. The desktop LCD I'm looking at is about 73. Neither is close to what a printer can do--600 DPI or more.
2) Back in Windows XP, the only way to "make the font bigger" on that 100DPI thinkpad was to scale the font or run at a non-native resolution. Either option made your display look like shit.
Vista and OSX (I think) let you change the DPI, which makes a *huge* difference. You can keep your windows looking "normal" and reap the benefits of a higher DPI monitor instead of the hacks you had to do in XP.
Bottom line is reading on your notebook screen sucks because the DPI sucks. Wait a few more years when we get 300 DPI screens and we can talk :-)
Slashdot is not a newspaper. It links to newspapers and other outfits with paid journalists. The day "the newspaper" dies, what will all the slashdots, gizmodos, diggs, reddits, twitters and blogs link to? Who will do the reporting they all link to?
I remember back before the dot.com thing, back when web was only at version 0.4, you used to go visit some place like ikea.com and instead of presenting you with an HTML, "web" catalog, they'd fire up some java-based gizmo that displayed a bitmap of the printed catalog. I think even a couple newspapers and magazines did something similar--display a bitmap ensconced in a java applet. Kind of like a poor mans PDF reader. Why did this pop into my head when I read this?
Either way, none of these will succeed unless there is a standard way to present content across all these e-reader things. Some kind of bastardized version of PDF or something.
If somebody is trying to break the encryption on your WiFi card, buddy your life has bigger problems then just revoking some certificate. You must be doing some seriously hard-core shit to provoke somebody into wanting to break the crypto on your network. And if you are doing hard-core shit, you have no business using a wireless network anyway.
In other words, you don't deal with revoking certificates--this is SOHO stuff. Unless you are using WEP, nobody will bother cracking your encryption.
It couldn't be automatic. But you could have a training mode or something and then "lock the door" so to speak. The hard part is what do you do with exceptions after the door is locked. I think a bit of that could be solved with some kind of protocol where the firewall alerts the devices, which in turn might alert the user. Something. I think you could handle it so that 95% of your problem cases are covered.
This becomes another problem--what to do when an exception is thrown that the router really cannot handle securely. You've got to alert the user that something is amiss and they should go take their network to the computer service station--i.e. call a nerd friend. The problem is, if they don't have a nerd friend they will call the router manufacturer and increase the support costs.
If they added a browser-like address bar where you could type in the path to a particular spot, than maybe. If said address bar did tab-completion like a good shell, than "yes". If the search function used an index instead of what appears to be a sequential scan of the whole registry, then hell yes.
But really, I rarely have to muck in the registry.
1) obviously. Even a penny matters. I've got friends in the CPU business. They brag about removing a couple resistors on some PCB to save half a cent per board. However, I suspect people do buy a new router every few years (gotta have 802.11/xxyyzz after all!). They will choose the next one based on prior experience. I used to buy Netgear routers religiously until I bought some goofy looking white one that crashed every day. I'll never guy a netgear router again. Likewise, if the interface sucks, odds are good somebody won't buy that brand again.
2) We agree. But I'll debate requiring javascript--done properly it could significantly enhance the usability of the device. Flash? Couldn't do it even if you wanted--what if you were configuring the router using a new computer that doesn't yet have it installed? You couldn't download it until you configured the router, and you couldn't configure the router until you had flash. Oops!
I can see defaulting to WEP from the hardware standpoint, but the "enter a HEX key"? Does it still do that? it would seem to me that the second I have to write down a hex key, I'd just can the whole thing and go unencrypted. That or call support.
In other words, doesn't the fact that WEP sucks to configure increase support calls?
Yeah. There is also Link Layer Discovery Protocol, which is used by Vista to figure out what the fuck is on my network. The protocol stack is evolving in such a way that it could make SOHO firewall configuration easier.
But I was told that making a user friendly firewall might be possible. I never ran it through the engineering staff (you) first. Obviously you'd come back to me with a list of what is wrong and we'd reach something better then the "here is a listbox of shit--type a port number and some IP address and click submit" that constitutes most firewall configurations.
And by the way, I've yet to see a SOHO router that has a QoS implementation that doesn't suck. I'm not a network nerd, but I've use online backup software that I'd like to keep from hogging all my upstream bandwidth. Sounds like QoS, right? Point me to a SOHO router that doesn't throw up a wall of jargon and acronyms--or at least documents them. Better still, point me to one that has a report showing that it is working. It never seems like it works and whenever the backup software is running on one of my computers (mozybackup), my SSH sessions all slow to a crawl. It is all outgoing traffic, right? any configuration I do shouldn't depend on my upstream enabling QoS, right?
Nerds wouldn't like my router anyway. I'm talking about the people who buy "Norton Magical Firewall" and crap like that. Do you run "McSlow Super-Dope-Internet-Protector"? Neither do I.
Way ahead of you, pal.
coryking@cory ~/trunk/mozi $ uname -a
FreeBSD cory.local 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 2009 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
coryking@sparky ~ $ uname -a
FreeBSD sparky.xxxx 6.1-RELEASE-p12 FreeBSD 6.1-RELEASE-p12 #1: Sat Jan 20 14:15:16 PST 2007 root@sparky.xxxxx:/usr/obj/usr/src/sys/V100 sparc64
Only if you design the interface in a way that obsures all 15 leeches. The traditional router guys would shove all 15 computers into a listbox and call it a day. Of course people wouldn't bother to remove the 15 devices under that regime.
Remember I said if you take away traditional constraints, a lot of stuff is possible. Ideally it would present you with a map-like interface with an icon for every computer/device connected and let you pick which ones you want. No reason you couldn't have the interface let you right click on the icons, or have some way to click on a rouge laptop and block it. People are scared about getting hacked--if you make it easy and obvious when something is afoul, they will pay attention.
The goal is to make doing the right thing, securing your household network, easy and obvious. You'll never nail it 100% and some people will never figure things out. But than again people will drive around for weeks with a bright red "no oil pressure light" on their car and blow the engine. Those people aren't a reason to not try.
That is all it needs to do than. If your shit is hacked, go see your nerd friends. For most people, when the "check engine" light goes on, they take it to a service station--same thing.
Not if you had it set to whatever the fuck extrans was and then realized after the preview it wasn't blockquoting shit anymore. What is the difference between "Plain Text" and "Extrans"--really "Plain Text" seems to interpret some tags just fine. But seriously, why not make even a spartan rich text editor--think stackoverflow.
So does your mom--ask me how I know.
And just to back my shit up... the fact that slashdot even has options about how to interpret what I type is stupid. Where is the damn rich text editor everybody else has. Why do I have to format the code on my own? What the hell is "extrans" anyway and why isn't it picking up my blockquote.
Maybe the task is needlessly complex? Why should somebody connecting to a access point need to configure which encryption protocol to use? Why should the damn WiFi card and the access point negotiate automagically and *pick the damn best one they both support*?
^ this space reserved for replies telling me that the protocol doesn't allow it. Well you know what? The user isn't broken, the protocol is. 802.11/whatever is horribly insecure because the protocol doesn't fucking handle the encryption for you. Let me pick a key on the router, type it into the laptop, and the damn things can pick WAP, WPA, WEP, WAZOO or whatever the fuck some encryption dudes dream up all on their own. As long as it works and is secure, I dont really care what the hell protocol is used.
Blame the user is arrogant, stupid and is increasingly a black mark on employment. The world expects the programmer and the designer to do everything for them. That is the market. Deal with it. Programmers who design usable stuff will find their skills highly desired. Programmers who say users are spoiled children will rapidly find nobody wants to hire them.
You know who to blame? Blame the designers and programmers for not understanding what the goals and tasks are. Blame the designers (or lack thereof) and programmers for not removing all the roadblocks in the way of accomplishing said goals and tasks.
Honestly, the real reason programmers get bent out of shape (*cough*aside from the weird vibes coming from those still in the computing stone age like RMS*cough*) is that programming a usable interface is very hard. Lots of edge cases and you can't catch all of them. Really, the shit is hard and no silver bullet will ever be found that makes the hardness go away.
Why modern routers even offer WEP is beyond me. All the stuff I've touched seems to want to place WEP as the "standard" and so people who don't know the acronym soup will pick it over something more secure and usable (no hex passwords) like WPA or WPA2.
It is too bad the protocols all suck. Ideally the access point and the wifi cards would auto-configure in a way that allowed for the strongest encryption possible between the two. However, 802.11a/b/g doesn't offer that, instead forcing you to pick one.
Says who? If it is cheap enough (and energy efficient enough), why not throw a damn Core Duo in the damn thing and use powerful statistical magic to figure shit out?
"Fast and small" for "fast and small"'s sake is old school man. Nobody gives a rats ass about wasting CPU or memory. The computer works for us and what you should really be concerned about is saving *our* CPU cycles and memory--not the computer.
<blockquote>I am really tired of the "ooh shiny" becoming far more important than functionality lately in both projects.</blockquote>
Your definition of "functionality" is too narrow to be of use. If you broaden your definition to include the user experience, "ooh shiny" matters a whole hell of a lot. Contrary to some, presentation matters almost as much, if not more, then your very narrow definition of "functionality".
You sure can make firewalling stuff easier. You just have to think a bit outside of what is the norm. We have lots of computing power these days and your router can play games that were previously impossible.
1) If your router is also a switch/hub, it can analyze the internal network traffic and learn computer names (if windows file sharing is enabled anyway).
2) It can tap the internet to look up stuff like mac addresses and other statistical traffic patterns to identify things like your Tivo or XBox.
3) You can invent an internal protocol that enables your household computers and devices to communicate to the router what the fuck they are. Odds are good you can use fancy crypto to make sure that the computers and devices can't lie if they get compromised.
4) Make a training mode that lets everything go through and when you are done, the router uses the wealth of statistical bullshit it collected in steps 1->3 to give the user a report outlining the househouse hold traffic.
5) The user can then "lock" the router and not let anything but what was configured in #4
6) If something odd happens, or the router detects new computers (say a laptop, etc). The magic protocol in step 2 would send some kind of alert to a computer, your email, your phone... something... basically saying "hey man, something changed... you might have to retrain me".
My idea, obviously, is a very crude outline. But you get the idea. Everything can be simplified if you focus in on exactly what the task at hand is and leave the rest of the bullshit out. In fact, I bet you can design the firewall configuration in such a way that the user never needs to see IP addresses or port numbers. All they see is friendly computer names (deduced from #1->#3) and descriptions of the traffic.
Nerds, obviously, wouldn't like this--instead wanting some geeky bullshit. But they can piss up a rope as far as I'm concerned. This is a mass market device intended for people who just want to feel secure that nobody is hacking their shit.
Maybe they are flashes in the pan...
- OO doesn't map to relational databases very well, and I'd say relational theory will be around a whole hell of a lot longer then any programming methodology. Really a "loose", dynamic-typed language with strong support for hashes are the best for database stuff (Perl's hashrefs, PHP's array/hash things, etc). I've always strong-typed languages like C# lead to massive amounts of code to build even simple queries--good database coding involves SQL that returns only exactly the stuff you need (SELECT username, uid vs. SELECT *). The problem with languages like C# and Java are that you have to map every specific query to a bunch of structs, objects or whatever. The whole system strongly discourages dumping the mess into a hashtable and calling it a day--when you do, you loose out on intellesense and other niceness.
- OO doesn't always play nice with threads and parallel programming. The "future" of computing will be massively parallel computers the size of your iPhone. You can see hints of this trend already with quad-core cpu's becoming the norm for consumer desktops and GPU's being exploited for things besides 139.1fps WoW games. This could be simply that our languages haven't made this kind of programming very intuitive. It could also be that parallel programming is just a hard thing all together, though I suspect it is just the languages we use suck at it.
- Many modern languages and their libraries are offering non-oo ways of doing things. Look at jQuery and the state of javascript. Sure you can do OO in JavaScript, but why would you want to--it just isn't a good fit for the language*.
- That said, OO languages, especially those with strong typing, are easy for good IDE's to figure out. Even though VS2008 can kinda-sorta figure out Javascript, it isn't perfect and it is very easy to trip up the IDE to the point where it can't describe what you are creating.
The future, I predict will be a happy blend of OO and functional, dynamic- and strong-typed. OO for the "core", functional for the expressiveness, dynamic for the relational database stuff and strong for the non DB stuff.
I also predict a return to line numbered code. BASIC is hot these days.
* Though your client-side javascript doesn't have to scale to hundreds of files and tens of thousands of lines of code. In other words, it doesn't have to scale to a large codebase. Thus it isn't the best example.
But in many cases, people wouldn't pay for it and I don't want to deal with the hassle. It is easier for me to just slap a BSD license on it and give the damn thing away. Somebody else gets to incorporate my little bit of code into their project, and I get to claim I contribute to open source projects. Win win.
Most people, I suspect, open source their stuff for precisely these kinds of reasons. They don't sell it because the software isn't worth polishing up to the state that somebody would ever pay for it.
That is why most open source projects that have nobody drawing a paycheck (i.e. not firefox, redhat, etc...) lack polish. If they had polish, the original authors would be selling it. Firefox has lots of polish because people are being payed money to work on it. If nobody got paid, nobody would invest what it took to make a good installer, good docs, and an overall polished appearance.
I really dont get the SQL-hate either. SQL is not scary once you learn it. I think people who learned SQL on MySQL 3.0 got scared off. MySQL didn't really like things like "JOIN" and instead wanted you to shove all your relations in your WHERE. Plus it didn't support aliasing tables without an "AS"
-- the kind of query one might find on MySQL 3
-- it is hard to figure this kind of thing out
-- because all the join conditions are not spelled out
-- and jammed in the WHERE clause
SELECT o.name, p.pet_name, v.name AS vet_name
FROM owner AS o, pet AS p, vet AS v
WHERE o.owner_id = p.owner_id, o.vet_id=v.vet_id
vs.
-- how you are supposed to write it.
-- you can tell exactly what the hell is
-- happening in this query
SELECT o.name, p.pet_name, v.name as vet_name
FROM owner o
JOIN pet p ON o.owner_id=p.owner_id
JOIN vet v ON o.vet_id=v.vet_id
SQL has an easy learning curve. You do about 75% of the queries you need without learning more then SELECT, FROM, * JOIN, ORDER BY, etc. The fun stuff is once you do aggregate queries and subqueries. The best is when you get to optimize some complex query with indexes and a good query analyzer (hint: the dolphin logo'd database has horrible query analysis tools)
You have to join everything together at some point no matter what. If you join them on the way out the door, it buys you flexibility to basically see your dataset any damn way you need. If you join them going in, you can only see your data in ways envisioned by whoever designed the system inially.
Joins only kill performance if you are either *huge* or are using a certain database that happens to have a dolphin for a logo. In most cases, on a properly indexed, properly tuned database server a 10 table join shouldn't take more then a few milliseconds. You run into more problems with things like nested subqueries--but it really depends on how well you know your system and how many knobs you can turn.
Once you outgrow PostgreSQL, both of the big-boys offer all kinds of neat ways to optimize particularly "interesting" queries. Things like materialized views and such are good hacks to work around crazy views of your data that get hit often. Those kinds of things are the reason people pay big-bucks for Oracle and such. And if they went some crazy "object database" or key-value pair system like in the article, I'd argue the company would have never grown to the size that it could afford Oracle--those systems would have made it impossible to know the metrics and statistics needed to grow to a large enough size.