Actually, I think the Eclipse CDT plugin provides some amount of C++ refactoring. I know it can at least do some simple variable renaming, since I did that the other day. Not sure how much it can do beyond that, though.
Other than that, yeah, automated refactoring is just going to be much harder for C++ than for most other languages.
Sharing the GRE has been discussed for quite a while, and according to the Mozilla roadmap, it's still something they want to do. How soon it gets done is another matter, but it's at least on the list of stuff to do.
Perhaps something based off of PyMP3Cut ? I haven't used it, but the description seems pretty relevant ("PyMP3Cut was designed to slice high quality MP3 recordings of day-long congresses into smaller per-speaker MP3 files. It only needs the exact same amount of disk space as the original file to slice, even less if you plan to skip some parts, which PyMP3Cut can do automatically if you use a specially formatted *SKIP* entry in your timeline. It was successfully used many times against several hundredths megabytes MP3 files.").
Bit of a correction... Duke3D used the Build Engine, created by a guy named Ken Silverman, who was also responsible for an _old_ shareware game by the name of Ken's Labyrinth. Info on the history of the engine is available from Ken himself here. He's also got several other useful utilities, such as an excellent PNG optimizer.
Yep, there is. A bit of searching says that it's "Final Frontier", by Diane Carey. It's a good book, although it doesn't mesh with the other 412 versions of the early history of Starfleet that we've gotten from the novels and the series itself (like that really means anything these days). Still, definitely worth a read, as is the semi-sequel, "Best Destiny".
Just want to comment on the memory leak issue. It's a whole lot _harder_ to leak memory in a GC'ed language, but it's still possible, especially when dealing with native interop issues (JNI, P/Invoke, or C-based extensions). Actually, the other major concern is reference issues. As far as I know, if a reference isn't nulled out, GCs often won't pick up the object. Things will still get cleaned up in the end, so the usual form of leaking is basically gone, but memory pressure during execution can get pretty bad.
I'll freely admit I'm not an expert on the topic and don't know the exact details of the Java and.Net GCs, so any further comments would be appreciated.
Wow... after 5 minutes, I can tell that UPA Frisbee is gonna get absurdly addicting (especially since I'm an avid player in real life). So... any chance you guys could put the source code up as well? I'd love to be able to see what all you did to pull that off.
Sweet game... now we just need a networked multiplayer version:)
I'll be the first to admit that I don't like a lot of what Microsoft does and that I have issues with a lot of their software, particularly Internet Explorer. With that said... this is very much a good thing.
Eolas could easily proceed to sue the Mozilla Foundation, Opera, and anyone else who writes a browser with plugin technologies. That would be devastating for developers, users, and web designers. The News.com article linked in one of the previous articles on this topic points out that not only would the browser have to be revised, but far too many web pages as well.
Would I like to see Microsoft set back a bit, or at least forced to mess with IE some? Yeah. But this is a case that would affect all of us negatively, not just Microsoft. We owe Ray Ozzie some thanks for bringing this to light.
Only after the Civil War? Sorry, wrong. That's part of what Michael Bellisles tried to claim in his book "Arming America". See the archives of Clayton Cramer's blog for research showing that American gun ownership was quite common well before the Revolutionary War (Cramer has dug through numerous archives of town records, all of which prove his point). In particular, see here, here, and here Mark Erikson
Y'know, this seems to be the one thing that people who have never tried Python latch on to as a reason to dislike it. I'll grant that it takes a bit to get used to, but it really is quite comfortable and makes things look clean. Besides, writing readable code requires decent indentation and most IDEs auto-indent anyway, so it's not like you have to go to all kinds of extra effort.
Basic explanation: Python doesn't use {} to denote blocks, it uses indentation. 4 spaces is the convention, but as long as all lines under the parent are indented the same, it'll accept it (1 space, 4 spaces, 15 spaces, doesn't matter as long as they're the same). You can even have, say, two for() loops at the same level, one whose block is indented at 4 spaces and the other whose block is indented at 7.
Actually, I believe that as long as all the lines at a given level are indented the same, the actual amount of indenting is irrelevant. Example:
for(1):
for(2): # indented two spaces
for(3): # indented five spaces
for(4): # same as for(2)
for(5): # note different than for(3)
The accepted standard is 4 spaces per indent. And really, most programmers tend to write something similar anyway, Python just forces you to at least make an attempt at making the code readable.
ICQ was, at least as far as I could tell, the first truly widespread IM client, and certainly the first popular client for Windows (yes, I'm ignoring IRC and Unix's "talk"). I originally got it because it had become a requirement for my Mechwarrior 2/Netmech clan (which would put it somewhere back around 96/97). My number was ~1.1 million, so by that point it had already taken off reasonably well.
Interestingly enough, I'm pretty sure that early on ICQ had most of the features that AIM has added on in recent years, though I don't happen to have an old copy of it around to compare for sure. Unfortunately, later versions became nothing more than an exercise in "How many new buttons can we add per version?" (see this ICQ history page for an example).
Ultimately, I think the two major items that have hurt ICQ are the feature bloat and the network effect. AIM's ability to communicate with AOL users offered a huge incentive to those who didn't have AOL, and with if the people you know are on AIM, why bother with ICQ? AIM's relative simplicity didn't hurt either.
So, while ICQ may not be quite dead yet, it's certainly lost the role of leader and pioneer that it once had. It's a bit of a shame seeing an old favorite go the way of Prodigy and Compuserve, but I guess that's life on the 'Net.
It sounds like a pretty decent idea to me. Granted, I'm no assembly expert (I'm just now in my Microprocessors class, which is based on the Z80), but I don't see how having more registers could be a bad thing. Anything that keeps operations there inside the CPU rather than going out to memory would pretty much have to be faster. I especially like the fact that he's implemented it such that no current code would be affected. THAT is a key point right there.
Admittedly, even if Intel and AMD decided to implement this, it'd still be a while, and then we'd have to get compilers that compile for those extra instructions, and there's our entire now-legacy code base that doesn't make use of them, and don't forget those ever-present patent issues...
But yeah. Cool idea, well thought out. Petition for Intel, anyone?
Never said it wasn't. Look, I understand the argument you're making in your post below. A license restriction like this is, in my opinion, pretty stupid. otopico's post below this says it pretty well, though. One, it's software. Two, freedom means you can use what you want.
The problem as I see it is that Free Software advocates feel that a piece of software should be judged purely by how Free it is, without regard to any other attributes. I disagree (here's that whole opinion thing again). When I'm looking at a piece of software, I'm going to judge it based on several things. How well does it do what it's supposed to do? How well does it do what _I_ need it to do? DOES it do what I need it to? What is the price? After all that, THEN I'll factor in how Free it is. If I've got two effectively identical programs in front of me, with the licensing being the only difference, yeah, sure, I'll go with the Free one.
Like I said. Software Freedom isn't a life or death issue. Don't try to make it one.
Aw, enough already. Look, this isn't personal, and it's partially cause I'm way too tired right now and therefore easily annoyed.
With that said...
I'm sick of people acting like "Software Freedom" is a life-and-death issue. Linus is right. If it works, use it. If it doesn't work, don't. If the Free Software product is better, use it. If the proprietary/closed/whatever version is better - use it. Or contribute to the open product until it's better, THEN use it. The key point here is, USE WHAT WORKS.
Don't get me wrong. I'm in favor of open-source stuff, I admire RMS and the GNU project for everything they've contributed to the computing world, and I enjoy having the freedom to tinker with stuff. In the end, though, I'll use whatever is going to work best for ME in whatever situation.
The world won't end if people use proprietary software. Get over it.
I don't think he was necessarily saying use Python for the entire program. And yes, in the end Python _would_ probably wind up being a little too slow.
On the other hand... one of Python's strengths IS the ability to rapidly put something together. Far better to go through 5 or 6 iterations of the interface with Python + (insert GUI toolkit here), decide what works, and move on to the next stage, then to take however many times longer using C++ or C#. Heck, for that matter, you could easily do large portions of the program in Python, then replace them one by one with C++ for more speed. They don't call it "executable pseudocode" for nothing.
In all honesty, I've never worked on a project ANYWHERE close to the size he's talking about, but based on my (admittedly limited) tidbits of experience, prototyping in Python is an excellent way to go.
Mark Erikson
Re:Impossible to use in combination with...
on
Pie-Menus in Mozilla
·
· Score: 0
I'd say it's more a factor of how you personalize Mozilla. I just swapped RadialContext over to my middle mouse button, since I don't use it when browsing. My preferred method for opening stuff in a new tab is right clicking, since it's the first item on the menu (so much so that it's now a conditioned reflex for every link I click on). So while there's probably room for improvements in RadialContext, overall it seems to be pretty decent in its current state.
While I'm no genius programmer or guru, I can see where these people are coming from. There's something satisfying about finally figuring out how to solve a problem and making it work, and there are definitely bits of my code that I would call "beautiful", stuff that not only serves a purpose and solves the problem, but also does it in a particularly elegant or ingenious manner.
Oh, and lack of sleep? Not a problem. Course, there was the 28-hour day I pulled last Friday (work at 8:00, break for lunch, went home at 2:00 PM on Saturday), but that doesn't count:)
Actually, I think the Eclipse CDT plugin provides some amount of C++ refactoring. I know it can at least do some simple variable renaming, since I did that the other day. Not sure how much it can do beyond that, though.
Other than that, yeah, automated refactoring is just going to be much harder for C++ than for most other languages.
Next up on ESPN: Davion vs Steiner, live from Solaris VII!
(maybe we should get these guys involved to speed up the process).
I feel compelled to point out that we're now roughly 5% of the way to Frank's 2000-inch TV.
Sharing the GRE has been discussed for quite a while, and according to the Mozilla roadmap, it's still something they want to do. How soon it gets done is another matter, but it's at least on the list of stuff to do.
Perhaps something based off of PyMP3Cut ? I haven't used it, but the description seems pretty relevant ("PyMP3Cut was designed to slice high quality MP3 recordings of day-long congresses into smaller per-speaker MP3 files. It only needs the exact same amount of disk space as the original file to slice, even less if you plan to skip some parts, which PyMP3Cut can do automatically if you use a specially formatted *SKIP* entry in your timeline. It was successfully used many times against several hundredths megabytes MP3 files.").
Bit of a correction... Duke3D used the Build Engine, created by a guy named Ken Silverman, who was also responsible for an _old_ shareware game by the name of Ken's Labyrinth. Info on the history of the engine is available from Ken himself here. He's also got several other useful utilities, such as an excellent PNG optimizer.
Yep, there is. A bit of searching says that it's "Final Frontier", by Diane Carey. It's a good book, although it doesn't mesh with the other 412 versions of the early history of Starfleet that we've gotten from the novels and the series itself (like that really means anything these days). Still, definitely worth a read, as is the semi-sequel, "Best Destiny".
Mark Erikson
Just want to comment on the memory leak issue. It's a whole lot _harder_ to leak memory in a GC'ed language, but it's still possible, especially when dealing with native interop issues (JNI, P/Invoke, or C-based extensions). Actually, the other major concern is reference issues. As far as I know, if a reference isn't nulled out, GCs often won't pick up the object. Things will still get cleaned up in the end, so the usual form of leaking is basically gone, but memory pressure during execution can get pretty bad.
.Net GCs, so any further comments would be appreciated.
I'll freely admit I'm not an expert on the topic and don't know the exact details of the Java and
Mark Erikson
Wow... after 5 minutes, I can tell that UPA Frisbee is gonna get absurdly addicting (especially since I'm an avid player in real life). So... any chance you guys could put the source code up as well? I'd love to be able to see what all you did to pull that off.
:)
Sweet game... now we just need a networked multiplayer version
Mark Erikson
I'll be the first to admit that I don't like a lot of what Microsoft does and that I have issues with a lot of their software, particularly Internet Explorer. With that said... this is very much a good thing.
Eolas could easily proceed to sue the Mozilla Foundation, Opera, and anyone else who writes a browser with plugin technologies. That would be devastating for developers, users, and web designers. The News.com article linked in one of the previous articles on this topic points out that not only would the browser have to be revised, but far too many web pages as well.
Would I like to see Microsoft set back a bit, or at least forced to mess with IE some? Yeah. But this is a case that would affect all of us negatively, not just Microsoft. We owe Ray Ozzie some thanks for bringing this to light.
Mark Erikson
Tools > Options > Advanced > Uncheck "Open links in background"
Mark Erikson
Only after the Civil War? Sorry, wrong. That's part of what Michael Bellisles tried to claim in his book "Arming America". See the archives of Clayton Cramer's blog for research showing that American gun ownership was quite common well before the Revolutionary War (Cramer has dug through numerous archives of town records, all of which prove his point). In particular, see here, here, and here
Mark Erikson
*sigh*
Y'know, this seems to be the one thing that people who have never tried Python latch on to as a reason to dislike it. I'll grant that it takes a bit to get used to, but it really is quite comfortable and makes things look clean. Besides, writing readable code requires decent indentation and most IDEs auto-indent anyway, so it's not like you have to go to all kinds of extra effort.
Basic explanation: Python doesn't use {} to denote blocks, it uses indentation. 4 spaces is the convention, but as long as all lines under the parent are indented the same, it'll accept it (1 space, 4 spaces, 15 spaces, doesn't matter as long as they're the same). You can even have, say, two for() loops at the same level, one whose block is indented at 4 spaces and the other whose block is indented at 7.
</rant>
Mark Erikson
Mark Erikson
ICQ was, at least as far as I could tell, the first truly widespread IM client, and certainly the first popular client for Windows (yes, I'm ignoring IRC and Unix's "talk"). I originally got it because it had become a requirement for my Mechwarrior 2/Netmech clan (which would put it somewhere back around 96/97). My number was ~1.1 million, so by that point it had already taken off reasonably well.
Interestingly enough, I'm pretty sure that early on ICQ had most of the features that AIM has added on in recent years, though I don't happen to have an old copy of it around to compare for sure. Unfortunately, later versions became nothing more than an exercise in "How many new buttons can we add per version?" (see this ICQ history page for an example).
Ultimately, I think the two major items that have hurt ICQ are the feature bloat and the network effect. AIM's ability to communicate with AOL users offered a huge incentive to those who didn't have AOL, and with if the people you know are on AIM, why bother with ICQ? AIM's relative simplicity didn't hurt either.
So, while ICQ may not be quite dead yet, it's certainly lost the role of leader and pioneer that it once had. It's a bit of a shame seeing an old favorite go the way of Prodigy and Compuserve, but I guess that's life on the 'Net.
Mark Erikson
Steven den Beste, who blogs at USS Clueless, wrote a couple of related posts in the last couple of months, one on information-age military logistics and a somewhat more technical post on how a battlefield network would work.
Mark Erikson
It sounds like a pretty decent idea to me. Granted, I'm no assembly expert (I'm just now in my Microprocessors class, which is based on the Z80), but I don't see how having more registers could be a bad thing. Anything that keeps operations there inside the CPU rather than going out to memory would pretty much have to be faster. I especially like the fact that he's implemented it such that no current code would be affected. THAT is a key point right there.
Admittedly, even if Intel and AMD decided to implement this, it'd still be a while, and then we'd have to get compilers that compile for those extra instructions, and there's our entire now-legacy code base that doesn't make use of them, and don't forget those ever-present patent issues...
But yeah. Cool idea, well thought out. Petition for Intel, anyone?
Mark Erikson
Heh... I don't normally pick on misspellings, but this one's too good to pass up...
Would a mile-high minstrel also qualify as "Raising the bard"?
Mark Erikson
Never said it wasn't. Look, I understand the argument you're making in your post below. A license restriction like this is, in my opinion, pretty stupid. otopico's post below this says it pretty well, though. One, it's software. Two, freedom means you can use what you want.
The problem as I see it is that Free Software advocates feel that a piece of software should be judged purely by how Free it is, without regard to any other attributes. I disagree (here's that whole opinion thing again). When I'm looking at a piece of software, I'm going to judge it based on several things. How well does it do what it's supposed to do? How well does it do what _I_ need it to do? DOES it do what I need it to? What is the price? After all that, THEN I'll factor in how Free it is. If I've got two effectively identical programs in front of me, with the licensing being the only difference, yeah, sure, I'll go with the Free one.
Like I said. Software Freedom isn't a life or death issue. Don't try to make it one.
Mark Erikson
Aw, enough already. Look, this isn't personal, and it's partially cause I'm way too tired right now and therefore easily annoyed.
With that said...
I'm sick of people acting like "Software Freedom" is a life-and-death issue. Linus is right. If it works, use it. If it doesn't work, don't. If the Free Software product is better, use it. If the proprietary/closed/whatever version is better - use it. Or contribute to the open product until it's better, THEN use it. The key point here is, USE WHAT WORKS.
Don't get me wrong. I'm in favor of open-source stuff, I admire RMS and the GNU project for everything they've contributed to the computing world, and I enjoy having the freedom to tinker with stuff. In the end, though, I'll use whatever is going to work best for ME in whatever situation.
The world won't end if people use proprietary software. Get over it.
Mark Erikson
I don't think he was necessarily saying use Python for the entire program. And yes, in the end Python _would_ probably wind up being a little too slow.
On the other hand... one of Python's strengths IS the ability to rapidly put something together. Far better to go through 5 or 6 iterations of the interface with Python + (insert GUI toolkit here), decide what works, and move on to the next stage, then to take however many times longer using C++ or C#. Heck, for that matter, you could easily do large portions of the program in Python, then replace them one by one with C++ for more speed. They don't call it "executable pseudocode" for nothing.
In all honesty, I've never worked on a project ANYWHERE close to the size he's talking about, but based on my (admittedly limited) tidbits of experience, prototyping in Python is an excellent way to go.
Mark Erikson
I'd say it's more a factor of how you personalize Mozilla. I just swapped RadialContext over to my middle mouse button, since I don't use it when browsing. My preferred method for opening stuff in a new tab is right clicking, since it's the first item on the menu (so much so that it's now a conditioned reflex for every link I click on). So while there's probably room for improvements in RadialContext, overall it seems to be pretty decent in its current state.
But hey, that's why they call them preferences.
Mark Erikson
One of the better comments I've seen here. Man, I wish I had some mod points.
While I'm no genius programmer or guru, I can see where these people are coming from. There's something satisfying about finally figuring out how to solve a problem and making it work, and there are definitely bits of my code that I would call "beautiful", stuff that not only serves a purpose and solves the problem, but also does it in a particularly elegant or ingenious manner.
:)
Oh, and lack of sleep? Not a problem. Course, there was the 28-hour day I pulled last Friday (work at 8:00, break for lunch, went home at 2:00 PM on Saturday), but that doesn't count
Mark Erikson
Yep, one more great reason to buy a console. Now, tell me again how I've managed to survive all these years without one?