My review--it hasn't improved
on
Hacking Vim 7.2
·
· Score: 0
From the point of view of someone who doesn't remember or want to remember shortcuts, VI is an abomination.
I use VI occasionally when I can't avoid it. You have to know a few commands (:wq,:q!, a, i, x, dd,/) to be able to use it, but at that it is the most annoying system possible.
If possible I use "cat > file" instead.
VIM is supposed to have help, so I gave it a try. Here's my review of VIM
It comes up with a little help screen.
It says a bunch of stuff I don't really want to read--I just want to know how to navigate to a position visible on the screen--something you should be able to do with a mouse.
I see that:help or f1 gives me "on-line help". worth a try.
I hit f1. It splits the screen and gives me a bunch of other help commands. WTF. I'd already be done twice if I had started with notepad!
Wait, it says I can type ":set mouse=a" to get my mouse to work.
Now I'll type in a little bit to see if it works. I know how to do that, it's "i".
I returns "Cannot make changes, 'modifiable' is off.
Screw this, I'm done.:q!
Damn, they did break the one key I knew!:q! ALWAYS quits out. I'll do it again.
There that worked. Crap, so much for this improved VIM functionality, I'll stick with vi in cases of extreme emergency when cat >> file just won't do the job.
Yeah, I realize I could put in a little effort and get much further, but I've already wasted more time just in this session than I could possibly gain back in the next the years by knowing VI inside and out.
The funny thing is that the arguments by the pro-vi guys are just as ridiculous as this.
Everyone seems to forget that iPad is a dedicated device--a large iPod that happens to run certain apps developed for the iPhone. It is no more a general purpose computer than a Nintendo DS, a router or the cable box sitting on top of your TV. (although some routers actually CAN run Linux and general purpose apps legally--within licensing terms--so I guess those are general purpose computers.)
Nobody has the RIGHT to develop apps on an iPad--period. Apple ALLOWS many people to develop apps for their dedicated device, but that doesn't make it a general purpose computer (Many people can develop apps for a cable box too--that's what I'm doing--but the cable company still controls deployment just like Apple).
This misunderstanding is actually why you hear many of your more technical friends say "iPad, why would you get one of those???", they want it to be a computer and notice that it doesn't fit, but perhaps don't understand that it's not in any way targeted at them. It's just not a general computer computer, it's not intended to be one and it won't be as long as Apple gets their way.
Disclaimer: I love my iPhone and have finally displaced all my windows computers (mostly) with Macs. Still I really dislike Apples anti-competitive practices and will be waiting for the Unix iPad clones this Christmas--I may even start adjusting the Mac/Linux ratio away from Mac soon.
I had assumed that at these "camps" children might engage in a couple 2 hour sessions a day, but for the most part they would be encouraged to interact in other ways.
I mean, when you go to a camp for any topic, you spend most of your time on things vaguely or not at all associated with that topic.
They could have kids play a sports game on the computer then play it for real and compare, or kids that like role playing might re-enact some of it outdoors (Lightning bolt! Lightning bolt!)
If they actually allow kids to sit around inside and play for 12 hours a day every day then I have a problem with it too!
It makes me wonder if you realize that what they did had nothing to do with creating a print server--it was genericising the print drivers which can still be a royal pain in the ass on windows. It also takes care of hooking you up to local print servers--also pretty cool.
I mean, I realize you were being sarcastic, but that should have SOME relation to the article.
Most of the time your computer at work is physically secure enough for the data that is on it.
Your work computer better not be accessible through the firewall.
Your office should ensure that viruii do not exist, this includes monitoring firewall traffic and computer activity internally.
With those precautions, aging passwords isn't going to help.
With them, aging passwords probably won't help.
The only thing they are going to help is when someone has physical access to your computer--and when that happens any/.er will tell you that all bets are off and passwords are pretty much irrelevant.
So what is the drawback? If there are any passwords I have to change regularly, I'll toggle between two.
If they don't allow toggling, I'll add the month to the end or something like that.
If that's blocked (too similar) I'll write it down and tape it to my damn monitor. Physical security is NOT my job.
The one thing a password is good for is keeping co-workers from sabotaging me via sending bad emails or putting child porn on my computer. If they force rotation and I have to tape my password to my monitor, this is the one level of security I lose (which is a pretty reasonable chance to take).
Wouldn't you say that if something should be left to parents and it IS left to parents and it isn't taken care of that there needs to be a fix beyond "this should be left to the parents"?
I had some difficulty seeing some of the images at Avatar. It was still pretty, but I thought there should be more "Popping out" stuff--I literally saw two images in front of the screen, but it seemed like I was missing a lot.
I intend to go back and watch again from a different position in the theater and concentrate on effects more carefully--I think it really is a matter of retraining yourself.
Kinda the opposite of Sony though, don't you think?
I mean if you assume IP is good, then Sony is great and Apple is evil...
But if you don't like IP? Apple is robin hood standing against the IP hoarders of the country.
At least that's what this sounds like. I'm sure on other fronts Apple is using their IP to put other poor slobs out of business, so this isn't any sweeping generality, just a comment on the previous post.
Calling the 4th dimension time is merely a label. For instance, is the first dimension left-right, or up-down or forward-back? We assume it's one of those, and there are generally conventions that are more deterministic when it matters.
Time is the 4th dimension that we can travel through, although in one direction. We use the time dimension to navigate every day--for instance, you arrive home at night. You look at your house. There is NO WAY you can possibly get inside just traveling in 3 dimensions. You pass through the 4th--now the door is open, you have moved to a different 4th dimension plane where the door is no longer blocking your progress. You proceed through it then shift to a 4th dimension state where the door is once more closed and your house is impenetrable without more 4th dimension manipulation.
So technically that game is playing in 5 dimensions since time also seems relevant.
But that just confuses issues. Since everyone is used to time just being there, they ignore it. It's in every game anyway.
Just because some people call time the 4th dimension in no way implies that this game must also label it that way.
The iPad is in no way a computer. It is a large iPod touch. It's a dedicated music listening tool with a browser and the ability to install some programs.
It's a consumer appliance and will make some people very happy.
That doesn't happen to be me:)
But I did finally figure out how to look at it correctly and through that what market they were actually after (and few of those who read this message are in that market)
The user should see nothing, or as little as possible. If your program can adapt to the error without the users input, it should (as an example, using relative paths to ensure that if your program is moved it doesn't break).
If it needs further input, it should ask for it directly (this file seems to have moved--where is it now?)
If it's an unexpected exception, always append as much of your state as you can to a log and restart. Never clear this log. If you cannot start, offer the user the ability to send you his log in a Very Short Dialog. Make it trivial to send, a single button-press if possible.
Don't expect them to read a dialog and implement a solution for you. If you know enough about what's going on in the dialog to have them fix it, fix it for them. If you don't, don't have them guess, have them contact you (assuming it's internal company support).
Whenever you solve a problem, be sure to incorporate it back into your program so you don't see that problem again.
Although you are correct, compare this to the fact that some Java apps written for the web will soon show up, unaltered, on your microwave or other more realistic appliances and on your phone as well. In many cases this could be done without even recompiling.
These are the targets of the portability. The only thing that comes close is flash. As far as complex back-ends, the supporting code is often written into the JVM as a compatibility layer where that is necessary (for instance, between different models of phone).
As platforms become more standardized, they factor the unique parts (like the video/audio you mentioned) out into the JVM as JSRs. There are many JSRs under development all the time and many are to allow standardized java access to some resource like you mentioned.
So in Java, you can expect that if you can't write generic code to adapt to your video camera/audio device yet, you will be able to soon.
Being a/.er I, of course, only read the summary--but that makes it sound like they are preventing anyone from installing software on your computer that you don't approve of.
>> Otherwise, buying an app like this and not using it is a complete and utter waste of time.
Google often buys apps and doesn't use the original app, but re-creates it as their own. Generally I think this is due to the fact that they have higher coding standards and are more interested in long-term maintainability than most startups--they are also after the user base. Is there anything wrong with this? If they were buying up ALL the companies in a given area I'd start to worry, but--for instance--I don't think they ever tried to eliminate a competing search engine, webmail or document management group. They bought one and made it work. What's wrong with this approach?
> They hired the developer, though, and it's not necessarily a waste of time to deprive a competitor of a good application either.
This is what I was saying they tend not to do--but if they bought the company, they would certainly want the developers.
They will probably re-write the product and release it. My guess is that they will not harm any companies that compete in that same area though--Good for everyone. I still don't get the hate...
So if we see all the people responsible for this latest financial fiasco go to jail, nuclear power is safe. If most of them buy their way out of any kind of responsibility, it's not.
As I understand it, the only truly random things in our universe involve some kind of quantum interaction--everything else is a reaction to something else.
But on the bright side, if they supplied a large number of quantum elements, they could always keep the other half "in-house" so they'd know when you'd used them all and needed more bits...
The longer you work at it, the more you will be exposed to, but you'll learn a bit more over the first few years. I'll list a few that come to mind.
Modeling--UML. You really should know sequence diagrams, they rock. Seriously. When you need them, you NEED them.
O notation. O1, On,... Just helps you articulate some concepts that you intuitively know but might have trouble discussing with others.
Data Structures--what to the insides of a hash table or heap look like?
State Machines--They can replace threading in many scenarios, would you automatically know when and how to use one?
Low level crap--how are variables stored? how do references work? how do operating systems work? Could you dive in and write a parser for a DSL if it was prudent?
There are also many areas that a self-taught person would have more in-depth knowledge then someone who decided to specialize in computer science after a year or two of college just due to his passion.
A lot of it, too, is simply communication. If you take a class on Design Patterns, nearly everything they teach should be DAMN OBVIOUS to you, however if someone comes up and says that should use the Memento, Flyweight, Bridge or Builder pattern, would you know what they were saying? When you need a pattern you should be able to derive it just through being a programmer, but how long does it take you to describe it without knowing the names? Get a book on design patterns, by the way. One on Refactoring wouldn't hurt either.
Some systems allow you to be more sloppy than others--
For instance, in windows XP it's pretty easy to write code that assumes it is "admin" (possibly not even intentionally) and have it pass all your testing and be delivered--when you go into admin on a mac, Linux or windows 7, you are more likely to be aware that you are going into admin mode--on a linux system you are even going to be forced to seriously consider NOT going into root when you start getting reports from users that don't install as root on their machine.
On the other hand, with Linux you can get really lazy about writing GUIs under the (generally correct and self-sustaining) assumption that most users will be technical enough to use a good CLI interface.
On the mac, people tend to program for a single API, knowing that apple will most likely completely redesign everything when they move to OSXI and run your stuff in an OSX VM. With Windows and Linux, forward and backwards compatibility is important and will generally be considered all along.
My point is that there is a HUGE difference in what aspects you are "Lazy" with between platforms (and languages, but that's for another post).
From the point of view of someone who doesn't remember or want to remember shortcuts, VI is an abomination.
I use VI occasionally when I can't avoid it. You have to know a few commands (:wq, :q!, a, i, x, dd, /) to be able to use it, but at that it is the most annoying system possible.
If possible I use "cat > file" instead.
VIM is supposed to have help, so I gave it a try. Here's my review of VIM
It comes up with a little help screen.
It says a bunch of stuff I don't really want to read--I just want to know how to navigate to a position visible on the screen--something you should be able to do with a mouse.
I see that :help or f1 gives me "on-line help". worth a try.
I hit f1. It splits the screen and gives me a bunch of other help commands. WTF. I'd already be done twice if I had started with notepad!
Wait, it says I can type ":set mouse=a" to get my mouse to work.
Now I'll type in a little bit to see if it works. I know how to do that, it's "i".
I returns "Cannot make changes, 'modifiable' is off.
Screw this, I'm done. :q!
Damn, they did break the one key I knew! :q! ALWAYS quits out. I'll do it again.
There that worked. Crap, so much for this improved VIM functionality, I'll stick with vi in cases of extreme emergency when cat >> file just won't do the job.
Yeah, I realize I could put in a little effort and get much further, but I've already wasted more time just in this session than I could possibly gain back in the next the years by knowing VI inside and out.
The funny thing is that the arguments by the pro-vi guys are just as ridiculous as this.
I do wish all editors had "dd" though.
Everyone seems to forget that iPad is a dedicated device--a large iPod that happens to run certain apps developed for the iPhone. It is no more a general purpose computer than a Nintendo DS, a router or the cable box sitting on top of your TV. (although some routers actually CAN run Linux and general purpose apps legally--within licensing terms--so I guess those are general purpose computers.)
Nobody has the RIGHT to develop apps on an iPad--period. Apple ALLOWS many people to develop apps for their dedicated device, but that doesn't make it a general purpose computer (Many people can develop apps for a cable box too--that's what I'm doing--but the cable company still controls deployment just like Apple).
This misunderstanding is actually why you hear many of your more technical friends say "iPad, why would you get one of those???", they want it to be a computer and notice that it doesn't fit, but perhaps don't understand that it's not in any way targeted at them. It's just not a general computer computer, it's not intended to be one and it won't be as long as Apple gets their way.
Disclaimer: I love my iPhone and have finally displaced all my windows computers (mostly) with Macs. Still I really dislike Apples anti-competitive practices and will be waiting for the Unix iPad clones this Christmas--I may even start adjusting the Mac/Linux ratio away from Mac soon.
I had assumed that at these "camps" children might engage in a couple 2 hour sessions a day, but for the most part they would be encouraged to interact in other ways.
I mean, when you go to a camp for any topic, you spend most of your time on things vaguely or not at all associated with that topic.
They could have kids play a sports game on the computer then play it for real and compare, or kids that like role playing might re-enact some of it outdoors (Lightning bolt! Lightning bolt!)
If they actually allow kids to sit around inside and play for 12 hours a day every day then I have a problem with it too!
It makes me wonder if you realize that what they did had nothing to do with creating a print server--it was genericising the print drivers which can still be a royal pain in the ass on windows. It also takes care of hooking you up to local print servers--also pretty cool.
I mean, I realize you were being sarcastic, but that should have SOME relation to the article.
What they did is actually amazingly useful.
What on earth makes you think they want you to read it. They would prefer you didn't and just said you did--which you do. Hey, it works!
Most of the time your computer at work is physically secure enough for the data that is on it.
Your work computer better not be accessible through the firewall.
Your office should ensure that viruii do not exist, this includes monitoring firewall traffic and computer activity internally.
With those precautions, aging passwords isn't going to help.
With them, aging passwords probably won't help.
The only thing they are going to help is when someone has physical access to your computer--and when that happens any /.er will tell you that all bets are off and passwords are pretty much irrelevant.
So what is the drawback? If there are any passwords I have to change regularly, I'll toggle between two.
If they don't allow toggling, I'll add the month to the end or something like that.
If that's blocked (too similar) I'll write it down and tape it to my damn monitor. Physical security is NOT my job.
The one thing a password is good for is keeping co-workers from sabotaging me via sending bad emails or putting child porn on my computer. If they force rotation and I have to tape my password to my monitor, this is the one level of security I lose (which is a pretty reasonable chance to take).
Wouldn't you say that if something should be left to parents and it IS left to parents and it isn't taken care of that there needs to be a fix beyond "this should be left to the parents"?
I had some difficulty seeing some of the images at Avatar. It was still pretty, but I thought there should be more "Popping out" stuff--I literally saw two images in front of the screen, but it seemed like I was missing a lot.
I intend to go back and watch again from a different position in the theater and concentrate on effects more carefully--I think it really is a matter of retraining yourself.
I think discussing your new iPhone game on slashdot is an NP-Easy way to get a substantial popularity boost.
This seems so obvious--how could we not have such a law in the US???
Kinda the opposite of Sony though, don't you think?
I mean if you assume IP is good, then Sony is great and Apple is evil...
But if you don't like IP? Apple is robin hood standing against the IP hoarders of the country.
At least that's what this sounds like. I'm sure on other fronts Apple is using their IP to put other poor slobs out of business, so this isn't any sweeping generality, just a comment on the previous post.
Calling the 4th dimension time is merely a label. For instance, is the first dimension left-right, or up-down or forward-back? We assume it's one of those, and there are generally conventions that are more deterministic when it matters.
Time is the 4th dimension that we can travel through, although in one direction. We use the time dimension to navigate every day--for instance, you arrive home at night. You look at your house. There is NO WAY you can possibly get inside just traveling in 3 dimensions. You pass through the 4th--now the door is open, you have moved to a different 4th dimension plane where the door is no longer blocking your progress. You proceed through it then shift to a 4th dimension state where the door is once more closed and your house is impenetrable without more 4th dimension manipulation.
So technically that game is playing in 5 dimensions since time also seems relevant.
But that just confuses issues. Since everyone is used to time just being there, they ignore it. It's in every game anyway.
Just because some people call time the 4th dimension in no way implies that this game must also label it that way.
I've used it to learn about geography. Taught me more than I ever got from school.
This will work with google maps, but tends to be a good deal quicker once you get an area cached.
> I'd like to be surprised - but it seems like all the presidents are mostly interchangeable these days.
I thought that until Bush II was elected--he proved me wrong in oh so many ways.
On the other hand, games have been redesigned for years to be more and more motivating for the sake of keeping you interested alone.
The workplace has not evolved much at all along these lines.
There's a good chance this would actually work for many people. It would also annoy some.
If these rare earths are going to become more valuable, why should we be in a hurry to exploit them until they do so?
The iPad is in no way a computer. It is a large iPod touch. It's a dedicated music listening tool with a browser and the ability to install some programs.
It's a consumer appliance and will make some people very happy.
That doesn't happen to be me :)
But I did finally figure out how to look at it correctly and through that what market they were actually after (and few of those who read this message are in that market)
The user should see nothing, or as little as possible. If your program can adapt to the error without the users input, it should (as an example, using relative paths to ensure that if your program is moved it doesn't break).
If it needs further input, it should ask for it directly (this file seems to have moved--where is it now?)
If it's an unexpected exception, always append as much of your state as you can to a log and restart. Never clear this log. If you cannot start, offer the user the ability to send you his log in a Very Short Dialog. Make it trivial to send, a single button-press if possible.
Don't expect them to read a dialog and implement a solution for you. If you know enough about what's going on in the dialog to have them fix it, fix it for them. If you don't, don't have them guess, have them contact you (assuming it's internal company support).
Whenever you solve a problem, be sure to incorporate it back into your program so you don't see that problem again.
Although you are correct, compare this to the fact that some Java apps written for the web will soon show up, unaltered, on your microwave or other more realistic appliances and on your phone as well. In many cases this could be done without even recompiling.
These are the targets of the portability. The only thing that comes close is flash. As far as complex back-ends, the supporting code is often written into the JVM as a compatibility layer where that is necessary (for instance, between different models of phone).
As platforms become more standardized, they factor the unique parts (like the video/audio you mentioned) out into the JVM as JSRs. There are many JSRs under development all the time and many are to allow standardized java access to some resource like you mentioned.
So in Java, you can expect that if you can't write generic code to adapt to your video camera/audio device yet, you will be able to soon.
What serves that function in other languages?
Being a /.er I, of course, only read the summary--but that makes it sound like they are preventing anyone from installing software on your computer that you don't approve of.
Am I misreading it?
well..
>> Otherwise, buying an app like this and not using it is a complete and utter waste of time.
Google often buys apps and doesn't use the original app, but re-creates it as their own. Generally I think this is due to the fact that they have higher coding standards and are more interested in long-term maintainability than most startups--they are also after the user base. Is there anything wrong with this? If they were buying up ALL the companies in a given area I'd start to worry, but--for instance--I don't think they ever tried to eliminate a competing search engine, webmail or document management group. They bought one and made it work. What's wrong with this approach?
> They hired the developer, though, and it's not necessarily a waste of time to deprive a competitor of a good application either.
This is what I was saying they tend not to do--but if they bought the company, they would certainly want the developers.
They will probably re-write the product and release it. My guess is that they will not harm any companies that compete in that same area though--Good for everyone. I still don't get the hate...
Totally agreed.
So if we see all the people responsible for this latest financial fiasco go to jail, nuclear power is safe. If most of them buy their way out of any kind of responsibility, it's not.
Is that a good summary?
As I understand it, the only truly random things in our universe involve some kind of quantum interaction--everything else is a reaction to something else.
But on the bright side, if they supplied a large number of quantum elements, they could always keep the other half "in-house" so they'd know when you'd used them all and needed more bits...
This whole quantum thing confuses me.
The longer you work at it, the more you will be exposed to, but you'll learn a bit more over the first few years. I'll list a few that come to mind.
Modeling--UML. You really should know sequence diagrams, they rock. Seriously. When you need them, you NEED them.
O notation. O1, On, ... Just helps you articulate some concepts that you intuitively know but might have trouble discussing with others.
Data Structures--what to the insides of a hash table or heap look like?
State Machines--They can replace threading in many scenarios, would you automatically know when and how to use one?
Low level crap--how are variables stored? how do references work? how do operating systems work? Could you dive in and write a parser for a DSL if it was prudent?
There are also many areas that a self-taught person would have more in-depth knowledge then someone who decided to specialize in computer science after a year or two of college just due to his passion.
A lot of it, too, is simply communication. If you take a class on Design Patterns, nearly everything they teach should be DAMN OBVIOUS to you, however if someone comes up and says that should use the Memento, Flyweight, Bridge or Builder pattern, would you know what they were saying? When you need a pattern you should be able to derive it just through being a programmer, but how long does it take you to describe it without knowing the names? Get a book on design patterns, by the way. One on Refactoring wouldn't hurt either.
Some systems allow you to be more sloppy than others--
For instance, in windows XP it's pretty easy to write code that assumes it is "admin" (possibly not even intentionally) and have it pass all your testing and be delivered--when you go into admin on a mac, Linux or windows 7, you are more likely to be aware that you are going into admin mode--on a linux system you are even going to be forced to seriously consider NOT going into root when you start getting reports from users that don't install as root on their machine.
On the other hand, with Linux you can get really lazy about writing GUIs under the (generally correct and self-sustaining) assumption that most users will be technical enough to use a good CLI interface.
On the mac, people tend to program for a single API, knowing that apple will most likely completely redesign everything when they move to OSXI and run your stuff in an OSX VM. With Windows and Linux, forward and backwards compatibility is important and will generally be considered all along.
My point is that there is a HUGE difference in what aspects you are "Lazy" with between platforms (and languages, but that's for another post).