5. Charges while the online game account is suspended
#5 sounds like Sprint. I had a cell phone with Sprint. I started traveling for a few months full time for my job, left my cell phone at home (lost it actually) and was too busy to cancel my Sprint account or replace the phone. I stopped paying the bill, and 6 months later Sprint is telling me I owe them like a thousand dollars, even though I never touched the phone, and even though they had terminated my account a months before. It went into collections, and they wouldn't work with me when I returned home and wanted to get cell service again. It'll be a cold day in hell before I ever do anything with Sprint again.
I run into that sometimes. It's called "burnout". It's common, and it doesn't mean you're a bad developer. I deal with it by going and working on something fun and interesting, but still working. Secretly write a game or something, ideally in another language.
Richard Feynmann went and did creative things from time to time, and got some of his best ideas during his goof-off time. It's actually why people in academia have sabbaticals. Give yourself a sabbatical, some time to do whatever you want. Once I wrote a bootable CD-ROM that would play a Star Wars movie on a text display. I had to learn some assembly in the process, and learned all about boot sectors and boot loaders and memory models and things in the process.
You might feel like you can't take that time, your employer won't let you. That may be true, but it may not be. Lots of employees pretend to accomplish things and don't really. Most developers are really only truly productive a handful of hours per week anyway. If you think about it, you can still hold down your job without doing that much great work. may as well do the bare minimum, then really do what you want with the rest of your time. Hopefully that'll recharge your batteries and soon you'll be able to come back full force and hit your to do items with passion.
Picasso said, inspiration will find us, but it has to find us working.
It's true, but the choice won't be all that meaningful in the US until we can vote for multiple candidates, which we never will (follow the money). People with great honest ideas who are outsiders, such as Ron Paul or Ross Perot or Ralph Nadir will never be serious contenders for holding power.
So what you're saying is we have to have a review of the reviews...
Actually, it's reasonable to periodically review and improve and streamline all of your processes. Any part of the process that takes time or money should be justified by an improvement in the metrics after adding that part of the process. if the metrics don't improve after adding that part, then that part should be removed from the process. This can help lead to less busywork and less paperwork, rather than more, as it sounds at first blush.
You could easily write a "vector_add" function which spawns (or unlocks pre-spawned which is smarter) threads to perform a variety of tasks.
AC here is right, but also missing something. I often hear about things being "easy". Often when people say something is "easy" they really mean, "it's easy after it's done." This is one of those things where it's only easy after it's done. The code might look easy after it's created and debugged. But getting to the point where it's created and validated and debugged is much harder in some languages and approaches (e.g. C) than it is in others (e.g. Erlang).
Take someone experienced with multithread, multi process, multi node programming in C. And put them up against someone experienced with same in a language designed for distributed systems. Have them drag race on producing code that expands to an arbitrary number of processes and computers and evenly distributes the load among them in a fault tolerant, smooth way. The person in a language designed for it is going to blow the doors off the person doing it in C in terms of productivity. And that's what these languages are all about.
If you've got a library already present that does exactly what you need, great, and AC is right on target there. But when you don't have such a library, and you almost never will, then it's great to use a tool that makes the job easy to do well and do quickly.
The fact that it seems so simple at first is where the problem starts. You had no trouble in your program. One program. That's a great start. Now do something non-trivial. Say, make something that simulates digital circuits-- and gates, or gates, not gates. Let them be wired up together. Accept an arbitrarily complex setup of digital logic gates. Have it simulate the outputs propagating to the inputs. And make it so that it expands across an arbitrary number of threads, and make it expand across an arbitrary number of processes, both on the same computer and on other computers on the same network.
There are some languages and approaches you could choose for such a project that will help you avoid the kinds of pitfalls that await you, and provide most or all of the infrastructure that you'd have to write yourself in other languages.
If you're interested in learning more about parallel programming, why it's hard, and what can go wrong, and how to make it easy, I suggest you read a book about Erlang. Then read a book about Scala.
The thing is, it looks easy at first, and it really is easy at first. Then you launch your application into production, and stuff goes real funny and it's nigh unto impossible to troubleshoot what's wrong. In the lab, it's always easy. With multithreaded/multiprocess/multi-node systems, you've got to work very very hard to make them mess up in the lab the same way they will in the real world. So it seems like not a big deal at first until you launch the stuff and have to support it running every day in crazy unpredictable conditions.
You sound like a frustrated developer, perhaps disappointed that your cross-platform development experience didn't go smooth as glass. Sorry to hear that! I wonder: if you weren't using Java for this frustrating experience, how much worse would your frustration have been? using cross-platform C++ or C, perhaps, it would have been better?.NET? The life of a developer isn't always a cake walk. Sometimes it's hard. Perhaps you could suggest what alternative technology would end your frustration?
An excellent way to state the architecture astronaut point of view. Now, if you could just spice it up a little, put it through a few iterations that make it more obscure and difficult for us plebs to understand...
Not being able to read the headers and moderator points made me realize just how much it influences how I read slashdot, which is interesting and unnerving...
Ubuntu's not really better right now. I installed Ubuntu on my main windows machine. It's got 2 monitors running through an Nvidia card. The sound didn't work until I played with it for 2 hours (I think it's because I've got a motherboard with surround sound where any of the jacks can be used for any conceivable purpose), and I still don't know what I need to do to get my Twinview settings to persist. And I had all kinds of trouble with multi-monitor support, fiddling with which one has the main menu and which doesn't, and so on.
With Windows, all that kind of stuff just works. It breaks my heart, and I want to use Ubuntu on my desktop, but not bad enough to spend a whole weekend messing around with it. For now, I'm happy with using Windows on my desktop and using samba shares to an ubuntu server. Well, I'd be happier if my config was all worked out, but it's not worth it.
But as my machine continues to bug me about Windows Genuine Advantage, it's becoming more temping to rid myself of that windows plague...
I'd love to turn my computer off, but I don't. Here's a list of the stuff that breaks if I hibernate or turn it off:
I have to reconnect my synergy server, because I have a mac and PC both via synergy. I could wait for synergy to re-establish, but that takes a while, and when I'm ready to work, I'm ready to work.
I have to reconnect my samba shares, and it blows away the open documents that I have to my samba shares.
I have to re-establish my SSH tunnels to the remote computers I work on every day.
I have to re-establish between 1 and 5 ssh sessions I have open to remote computers to get back to work on what I was doing the night before.
I do hate to be an energy hog, but it takes me a few minutes to perform the entire startup ritual. I wonder if it's the same for other people. I could probably figure out ways to get all that stuff to happen automatically if I worked real hard at it...
I do a lot of web development, and typically keep my browser around 1100px wide since that's around the size most of my target users use. If I get even more browsers, I may open that up a little...
Is it just me, or is Scribd super annoying? Often this happens to me: I'm searching for information about something. I'm clicking through Google links trying to figure out the answer to my question. I click on a promising-looking link, and then I end up on a screwed-up looking site that's basically totally unreadable. I've learned to recognize such piles of crap as scribd documents.
There's a tiny little text box taking up like 6 cm by 5 cm of space with a scrollbar... I have multiple monitors, huge space on my desktop, and they're cramming all the content into this tiny little unreadable scrollable space. After a while I figured out that I could click a couple times and turn the content into something that was somewhat usable. But generally when a search puts me into a scribd document, I just hit the back button and look elsewhere. Only in a fit of pure desperation will I return to the scribd content, but usually I don't have to.
Am I alone in feeling this way? perhaps I'm hopelessly backwards or something, but scribd annoys me greatly.
I love all that is good and holy about geek culture as much as the next guy. Microsoft innovated a hell of a lot with Visual Basic,.NET, and C#. To deny it is ignorance or incorrigible fanboism or both.
I recognize that C# is real similar to Java. I've done lots of coding professionally in both. I won't get into the specifics because people either already have their minds made up or don't care..NET's Gui library is better than Swing. Their tools are better than anything anybody else makes. There are language features that Microsoft has innovated that left Java struggling to catch up with.
I'm in no way a Microsoft fanboy. I'm just saying that Microsoft has come up with some game changing innovations, and and the very least, decent honest techies should acknowledge that Visual Basic was one of them.
You're a geek. You don't care about normal people, because you were perfectly happy with DOS or whatever you were using.
Harsh! The truth is, I wanted a mac really badly. I lusted deeply for it. But the true appeal of it was more emotional than practical. And as awesome as it was, for most people the Mac and the Lisa wasn't truly justified by their high price tag.
The Mac was selling in 1984 for $2500 or so. Adjusted for inflation, that's about $5000 now. $5000 is a lot of money for word processing or other personal computing tasks today, and $2495 was a lot of money for personal computing tasks then, in pretty much the same way that $5000 is a lot of money for personal computing tasks now.
Also consider that the early Mac printers were dot matrix, and generally the results were actually not as professionally acceptable as the daisy wheel printers of the era.
I love Macs as much as anybody. And I'm not a mindless command line fanboi like many people around here are. I'm just sayin, the appeal of the Mac and the Lisa was as much about "cool" as it was about "practical". And it's much the same with the current Apple offerings. They're fantastic products, and they're expensive, and for some reason I buy them even though I can accomplish the same things elsewhere for half the price or less.
--
Posted from my iPhone (and it took me like an hour to type it, but damn did I look sexy)
It is just as stupid as navigating folders by just being shown the contents of the actual folder, and its path (or even just the name). KDE is worse in this than even Windows. Windows had a default of showing such a folder window.
Agreed. OSX is crappy in this way also. Windows file explorer and their file dialog is better than anything comparable I've seen on Linux or OSX, and it baffles me. Sometimes I think that Microsoft must have it patented or something. Because the Windows dialogs and explorer are so much better, yet it's certainly not rocket science. Every few months I start to consider writing a file explorer and just blatantly imitating Microsoft's UI.
Perhaps someone will straighten me out and tell me that only noobs use Finder or Gnome desktop for file exploring, and I should be using (insert name of something here). Almost certainly someone will tell me I should just be using the command line all the time. Well, sometimes being able to poke around the directory structure graphically is just more efficient. For people that haven't been assimilated by the Borg, anyway.
It is just as stupid as navigating folders by just being shown the contents of the actual folder, and its path (or even just the name). KDE is worse in this than even Windows. Windows had a default of showing such a folder window.
Agreed. OSX is crappy in this way also. Windows file explorer and their file dialog is better than anything comparable I've seen on Linux or OSX, and it baffles me. Sometimes I think that Microsoft must have it patented or something. Because it's so much better. Every few months I start to consider writing a file explorer and just blatantly imitate Microsoft's UI.
People have been saying for years that we're about to reach the end of the line in terms of Moore's law. So far they've all been proven wrong, and scaling continues unabated.
I don't know about unabated. It's been progressing, but we hit a bump, and all the sudden it was all about multicore and such rather than just continuing to double the clock speed every year or two.
Would you really consider an Apple II to be a fashion accessory?
No, but arguably starting with Mac or Lisa. It's pushing the metaphor I'll admit in the sense that you wouldn't wear a Macintosh the way you'd wear an iPod. But the appeal of the Mac and the Lisa was as much or more fashion and style as it was practical.
What you're saying is true. But do keep in mind that if everyone always did the reasonable, rational thing, we'd not get a lot of the progress we've made over time. For example, I could take what you wrote above, and substitute, say, OS/360 in there:
OS/360 is a gigantic software application. It probably has as many or more lines of code as any computer program ever created. It's been through years of testing and refinement, and has god knows how many hours invested into the [whatever].
Recreating all that from scratch, even if you have a working example to clone, is a huge financial blunder and a waste of resources.
It may be that it's a bad idea or a waste of resources. But just because there's something big and established doesn't automatically make it a bad idea to try to challenge it. There's an ebb and flow to everything, especially computer games. But there's even an ebb and flow to the power of nations. India, China, Russia, other places, are going to see a lot more time in the limelight in the future of technology. They're already having an impact in all kinds of areas that the US dominated exclusively just a decade ago and it seemed hard to imagine they'd be stepping out of the shadow of the US any time in our lifetimes. It's not so hard to imagine, now.
WoW is big and established, but one day it will, it must be, dethroned. It hasn't been that long since it seemed unthinkable that EQ could lose its throne..
Cuter than watching goats: bikini clad lawnmower service, video here. Also keep in mind that these bikini clad chicks probably have a better greenhouse gasses footprint than the goats. Well, maybe if you don't factor in the lawnmowers they're pushing, but those are easy to miss when they're wearing bikinis...
At first I thought this meant I'd no longer be able to use Num Lock to just run in a direction in World of Warcraft, without having to hold down an arrow key. Imagine my relief when I realized what this was really just about DVD's and stuff.
Agreed. It's also a little like people who say you'd have to be retarded to write a large system in Python, because it doesn't use static typing. Stored procedures? Bah. Just say no. Put RESTful web services in front of the DB and just say no to stored procedures. Sure, there's counter arguments and situations where stored procs are really the way to go. I guess.
You don't know it's slow until you've benchmarked it.
This is similar to a mantra of continuous improvement: "In God we trust. All others must bring numbers." The point of that saying is that if you want to make a change to the process, you must support your assertions with real metrics.
#5 sounds like Sprint. I had a cell phone with Sprint. I started traveling for a few months full time for my job, left my cell phone at home (lost it actually) and was too busy to cancel my Sprint account or replace the phone. I stopped paying the bill, and 6 months later Sprint is telling me I owe them like a thousand dollars, even though I never touched the phone, and even though they had terminated my account a months before. It went into collections, and they wouldn't work with me when I returned home and wanted to get cell service again. It'll be a cold day in hell before I ever do anything with Sprint again.
Here's a link to one of the Feynman goof off stories I was thinking of.
I run into that sometimes. It's called "burnout". It's common, and it doesn't mean you're a bad developer. I deal with it by going and working on something fun and interesting, but still working. Secretly write a game or something, ideally in another language.
Richard Feynmann went and did creative things from time to time, and got some of his best ideas during his goof-off time. It's actually why people in academia have sabbaticals. Give yourself a sabbatical, some time to do whatever you want. Once I wrote a bootable CD-ROM that would play a Star Wars movie on a text display. I had to learn some assembly in the process, and learned all about boot sectors and boot loaders and memory models and things in the process.
You might feel like you can't take that time, your employer won't let you. That may be true, but it may not be. Lots of employees pretend to accomplish things and don't really. Most developers are really only truly productive a handful of hours per week anyway. If you think about it, you can still hold down your job without doing that much great work. may as well do the bare minimum, then really do what you want with the rest of your time. Hopefully that'll recharge your batteries and soon you'll be able to come back full force and hit your to do items with passion.
Picasso said, inspiration will find us, but it has to find us working.
It's true, but the choice won't be all that meaningful in the US until we can vote for multiple candidates, which we never will (follow the money). People with great honest ideas who are outsiders, such as Ron Paul or Ross Perot or Ralph Nadir will never be serious contenders for holding power.
Actually, it's reasonable to periodically review and improve and streamline all of your processes. Any part of the process that takes time or money should be justified by an improvement in the metrics after adding that part of the process. if the metrics don't improve after adding that part, then that part should be removed from the process. This can help lead to less busywork and less paperwork, rather than more, as it sounds at first blush.
AC here is right, but also missing something. I often hear about things being "easy". Often when people say something is "easy" they really mean, "it's easy after it's done." This is one of those things where it's only easy after it's done. The code might look easy after it's created and debugged. But getting to the point where it's created and validated and debugged is much harder in some languages and approaches (e.g. C) than it is in others (e.g. Erlang).
Take someone experienced with multithread, multi process, multi node programming in C. And put them up against someone experienced with same in a language designed for distributed systems. Have them drag race on producing code that expands to an arbitrary number of processes and computers and evenly distributes the load among them in a fault tolerant, smooth way. The person in a language designed for it is going to blow the doors off the person doing it in C in terms of productivity. And that's what these languages are all about.
If you've got a library already present that does exactly what you need, great, and AC is right on target there. But when you don't have such a library, and you almost never will, then it's great to use a tool that makes the job easy to do well and do quickly.
The fact that it seems so simple at first is where the problem starts. You had no trouble in your program. One program. That's a great start. Now do something non-trivial. Say, make something that simulates digital circuits-- and gates, or gates, not gates. Let them be wired up together. Accept an arbitrarily complex setup of digital logic gates. Have it simulate the outputs propagating to the inputs. And make it so that it expands across an arbitrary number of threads, and make it expand across an arbitrary number of processes, both on the same computer and on other computers on the same network.
There are some languages and approaches you could choose for such a project that will help you avoid the kinds of pitfalls that await you, and provide most or all of the infrastructure that you'd have to write yourself in other languages.
If you're interested in learning more about parallel programming, why it's hard, and what can go wrong, and how to make it easy, I suggest you read a book about Erlang. Then read a book about Scala.
The thing is, it looks easy at first, and it really is easy at first. Then you launch your application into production, and stuff goes real funny and it's nigh unto impossible to troubleshoot what's wrong. In the lab, it's always easy. With multithreaded/multiprocess/multi-node systems, you've got to work very very hard to make them mess up in the lab the same way they will in the real world. So it seems like not a big deal at first until you launch the stuff and have to support it running every day in crazy unpredictable conditions.
You sound like a frustrated developer, perhaps disappointed that your cross-platform development experience didn't go smooth as glass. Sorry to hear that! I wonder: if you weren't using Java for this frustrating experience, how much worse would your frustration have been? using cross-platform C++ or C, perhaps, it would have been better? .NET? The life of a developer isn't always a cake walk. Sometimes it's hard. Perhaps you could suggest what alternative technology would end your frustration?
An excellent way to state the architecture astronaut point of view. Now, if you could just spice it up a little, put it through a few iterations that make it more obscure and difficult for us plebs to understand...
Thanks for this tip!
Not being able to read the headers and moderator points made me realize just how much it influences how I read slashdot, which is interesting and unnerving...
Ubuntu's not really better right now. I installed Ubuntu on my main windows machine. It's got 2 monitors running through an Nvidia card. The sound didn't work until I played with it for 2 hours (I think it's because I've got a motherboard with surround sound where any of the jacks can be used for any conceivable purpose), and I still don't know what I need to do to get my Twinview settings to persist. And I had all kinds of trouble with multi-monitor support, fiddling with which one has the main menu and which doesn't, and so on.
With Windows, all that kind of stuff just works. It breaks my heart, and I want to use Ubuntu on my desktop, but not bad enough to spend a whole weekend messing around with it. For now, I'm happy with using Windows on my desktop and using samba shares to an ubuntu server. Well, I'd be happier if my config was all worked out, but it's not worth it.
But as my machine continues to bug me about Windows Genuine Advantage, it's becoming more temping to rid myself of that windows plague...
I do hate to be an energy hog, but it takes me a few minutes to perform the entire startup ritual. I wonder if it's the same for other people. I could probably figure out ways to get all that stuff to happen automatically if I worked real hard at it...
I do a lot of web development, and typically keep my browser around 1100px wide since that's around the size most of my target users use. If I get even more browsers, I may open that up a little...
Is it just me, or is Scribd super annoying? Often this happens to me: I'm searching for information about something. I'm clicking through Google links trying to figure out the answer to my question. I click on a promising-looking link, and then I end up on a screwed-up looking site that's basically totally unreadable. I've learned to recognize such piles of crap as scribd documents.
There's a tiny little text box taking up like 6 cm by 5 cm of space with a scrollbar... I have multiple monitors, huge space on my desktop, and they're cramming all the content into this tiny little unreadable scrollable space. After a while I figured out that I could click a couple times and turn the content into something that was somewhat usable. But generally when a search puts me into a scribd document, I just hit the back button and look elsewhere. Only in a fit of pure desperation will I return to the scribd content, but usually I don't have to.
Am I alone in feeling this way? perhaps I'm hopelessly backwards or something, but scribd annoys me greatly.
I love all that is good and holy about geek culture as much as the next guy. Microsoft innovated a hell of a lot with Visual Basic, .NET, and C#. To deny it is ignorance or incorrigible fanboism or both.
I recognize that C# is real similar to Java. I've done lots of coding professionally in both. I won't get into the specifics because people either already have their minds made up or don't care. .NET's Gui library is better than Swing. Their tools are better than anything anybody else makes. There are language features that Microsoft has innovated that left Java struggling to catch up with.
I'm in no way a Microsoft fanboy. I'm just saying that Microsoft has come up with some game changing innovations, and and the very least, decent honest techies should acknowledge that Visual Basic was one of them.
Harsh! The truth is, I wanted a mac really badly. I lusted deeply for it. But the true appeal of it was more emotional than practical. And as awesome as it was, for most people the Mac and the Lisa wasn't truly justified by their high price tag.
The Mac was selling in 1984 for $2500 or so. Adjusted for inflation, that's about $5000 now. $5000 is a lot of money for word processing or other personal computing tasks today, and $2495 was a lot of money for personal computing tasks then, in pretty much the same way that $5000 is a lot of money for personal computing tasks now.
Also consider that the early Mac printers were dot matrix, and generally the results were actually not as professionally acceptable as the daisy wheel printers of the era.
I love Macs as much as anybody. And I'm not a mindless command line fanboi like many people around here are. I'm just sayin, the appeal of the Mac and the Lisa was as much about "cool" as it was about "practical". And it's much the same with the current Apple offerings. They're fantastic products, and they're expensive, and for some reason I buy them even though I can accomplish the same things elsewhere for half the price or less.
--
Posted from my iPhone (and it took me like an hour to type it, but damn did I look sexy)
Agreed. OSX is crappy in this way also. Windows file explorer and their file dialog is better than anything comparable I've seen on Linux or OSX, and it baffles me. Sometimes I think that Microsoft must have it patented or something. Because the Windows dialogs and explorer are so much better, yet it's certainly not rocket science. Every few months I start to consider writing a file explorer and just blatantly imitating Microsoft's UI.
Perhaps someone will straighten me out and tell me that only noobs use Finder or Gnome desktop for file exploring, and I should be using (insert name of something here). Almost certainly someone will tell me I should just be using the command line all the time. Well, sometimes being able to poke around the directory structure graphically is just more efficient. For people that haven't been assimilated by the Borg, anyway.
Agreed. OSX is crappy in this way also. Windows file explorer and their file dialog is better than anything comparable I've seen on Linux or OSX, and it baffles me. Sometimes I think that Microsoft must have it patented or something. Because it's so much better. Every few months I start to consider writing a file explorer and just blatantly imitate Microsoft's UI.
I don't know about unabated. It's been progressing, but we hit a bump, and all the sudden it was all about multicore and such rather than just continuing to double the clock speed every year or two.
Look at the palpable hump in this graph.
No, but arguably starting with Mac or Lisa. It's pushing the metaphor I'll admit in the sense that you wouldn't wear a Macintosh the way you'd wear an iPod. But the appeal of the Mac and the Lisa was as much or more fashion and style as it was practical.
What you're saying is true. But do keep in mind that if everyone always did the reasonable, rational thing, we'd not get a lot of the progress we've made over time. For example, I could take what you wrote above, and substitute, say, OS/360 in there:
It may be that it's a bad idea or a waste of resources. But just because there's something big and established doesn't automatically make it a bad idea to try to challenge it. There's an ebb and flow to everything, especially computer games. But there's even an ebb and flow to the power of nations. India, China, Russia, other places, are going to see a lot more time in the limelight in the future of technology. They're already having an impact in all kinds of areas that the US dominated exclusively just a decade ago and it seemed hard to imagine they'd be stepping out of the shadow of the US any time in our lifetimes. It's not so hard to imagine, now.
WoW is big and established, but one day it will, it must be, dethroned. It hasn't been that long since it seemed unthinkable that EQ could lose its throne..
Cuter than watching goats: bikini clad lawnmower service, video here. Also keep in mind that these bikini clad chicks probably have a better greenhouse gasses footprint than the goats. Well, maybe if you don't factor in the lawnmowers they're pushing, but those are easy to miss when they're wearing bikinis...
At first I thought this meant I'd no longer be able to use Num Lock to just run in a direction in World of Warcraft, without having to hold down an arrow key. Imagine my relief when I realized what this was really just about DVD's and stuff.
Agreed. It's also a little like people who say you'd have to be retarded to write a large system in Python, because it doesn't use static typing. Stored procedures? Bah. Just say no. Put RESTful web services in front of the DB and just say no to stored procedures. Sure, there's counter arguments and situations where stored procs are really the way to go. I guess.
This is similar to a mantra of continuous improvement: "In God we trust. All others must bring numbers." The point of that saying is that if you want to make a change to the process, you must support your assertions with real metrics.