While it doesn't include much in the way of a client, there is another C++ based library called - um - libtorrent (as opposed to LibTorrent mentioned above - note the caps) released under the BSD license. It doesn't really include a client (just a 'demo' CLI client that shows how to use the lib), but this is slashdot and we should all be able to write our own clients using other peoples' libraries, right?
When I started writing my OS X client (Shameless plug: Hurricane. Early beta.) I shopped around for BT libraries and found libtorrent to be better documented than LibTorrent (Sheesh - could that naming issue be any more confusing?). Also, the developer community seems very receptive and active - always a good thing!
Cool Features? Sure! It runs all torrents over a single port in a background thread, offers configuration and stats for damned near everything BT can do, 'fast resume' data for quickly restarting a download and various other niceties.
And great documentation - a rarity for an OSS project;)
consider the pros of taking a respectable understanding of technology into a career in law or politics, even.
I'll second that. Right now, I think one of the largest problems with this industry is the lack of people with a clue outside the industry making rules governing it.
Bullshit. The advent of mature and stable standards along with browsers that actually support them is opening up worlds of possibilities that didn't exist in the heyday of the browser wars.
I've been making web pages since '94, and DOM+ECMA+CSS is one of the most powerful things I've seen in quite a while. It's exactly what the web was supposed to be before the browser wars came along and screwed it all up with blink tags and other useless shit.
Take a look at Google Maps in a fully compliant browser and see what's possible. This is the dynamic web as it was meant to be. It's got nothing to do with which browser you prefer to use - but if you want to play with these amazing standards, then you need a browser that supports them.
Yes, you could do the same thing with Flash or ActiveX. I'll leave the reasoning behind why that is wrong as an exercise for the reader. You get a hint by looking at the TLD for each of the above links...
There is no more news on TV. There is only entertainment. News has to do with dissemination of facts. Facts are often unpopular and therefore generate poor ratings. End of discussion.
Yes, the government will only make available the information it wants to. This is how governments work. We've created safeties like the FOIA to make it more transparent, but the government and the people are fundamentally at odds on this point - which is why we have a system built on checks and balances. This has absolutely nothing to do with entertainment.
Once upon a time there were people willing to dig up those unpopular and unknown facts (ie, news) and publish them in newspapers and television. Perhaps there were motivations other than profit in those industries at one point, but not any longer. This has absolutely nothing to do with censorship.
The real trouble, in my opinion, is that there is confusion at all between fact and entertainment. It is of critical importance when raising a child to teach them to figure out the difference.
Television, newspapers and magazines are for entertainment. Assuming that news has to 'come from' somewhere is an odd notion, in my mind. Where do facts come from?.
PS - Why the hell should burning some fabric be illegal? I love this country as much as the next raving patriot, but I'm not so confused to think that 'my country' is somehow actually in that flag. Now, if I burnt your flag, that'd be different...
Sony and Nintendo don't have the leverage of X-Box Live. Microsoft is the only first party manufacturer that also requires you to play on their servers, giving them a much larger Goon than the others. Third party game makers can still make games without an official license, but X-Box Live provides a very large bargaining chip for MS that the other players lack.
And don't be such a dick. It was a freakin' joke posted on slashdot...
Quartz is built on Display PostScript and the whole collection of drawing APIs are based on the NSBezierPath classes. You actually have to go out of your way if you don't want vector based drawing. This is assuming you mean actually drawing in Quartz as opposed to loading a bitmap from a file and just displaying it with NSImage. It has been this way from the beginning.
While agree with most of your assessment, I do have issue with a couple of the marks you assigned:
4. It shall be easy to write programs which process XML documents.
Grade: F
It is true that writing a proper XML parser is not an easy task. However, we are lucky enough to have sixteen bazillion different implementations readily available for use.
5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
Grade: F
Optional means you don't have to use them. For those who need them, there they are.
6. XML documents should be human-legible and reasonably clear.
Grade: F
What you say?! An F?! Are you suggesting that there is a more human readable format for arbitrarily structured data? Maybe you have an innate ability to scan real binary on the fly, but I don't.
9. XML documents shall be easy to create.
Grade: C
This one is more pedantic, but I'm on a roll. XML documents are easy to create. Tedious, yes - but hard?
10. Terseness in XML markup is of minimal importance.
Grade: A+
If only there were a grade higher than A+. Perhaps Z-?
To be honest, I hadn't looked at the state of GNUStep for a while - and I'm glad to hear that they are keeping current. Thanks for pointing it out and kudos to the GNUStep team!
and code written using POSIX libraries and Cocoa can be ported to other *NIX platforms and GNUstep very easily.
Whoa, there partner. Saying that porting from Cocoa to GNUstep is easy is stretching it a bit. True, as long as you stick with the Foundation classes - but as soon as you move into AppKit, you're not going to have an easy time porting. Cocoa and GNUstep have been diverging pretty heavily in the last few years.
On top of it, Apple keeps adding really nice touches to the core frameworks with each revision (ie, Cocoa Bindings, richer model objects in Tiger, etc), so even the Foundation classes are diverging.
<pedantic>
Actually, every piece of Apple hardware has a one year warranty. The 90 days is for free phone support.
</pedantic>
Re:And here are the more interesting posts:
on
Apple Releases Mac Mini
·
· Score: 2, Insightful
Exactly - Mac OS X isn't picky about any particular brand, it's just picky about shitty RAM.
I think I prefer my system to actually check (you know, in that POST portion of boot where it's supposed to check the RAM) that the RAM is at least reasonably sound and bail immediately than to just merrily chug along with a bad stick and bomb out later at a random time.
As if bundling a browser didn't look bad to a judge. As if bundling a media player didn't look bad to a judge. As if pulling support for the Mac BU and looking bad to a judge would actually hurt MS in any way.
That said, the profitability of the Mac BU would likely keep MS from dropping it entirely, so I'm not really disagreeing with you on that point. Based on previous moves made, though, they wouldn't care at all about the 'legal ramifications' of such an action.
On the other hand, MS isn't opposed to doing things for a loss in order to further some alternate agenda.
I believe the iWork moniker is intended to be the counterpart to the iLife package. Over the years, Apple has added new applications to the iLife bundle, and I assume they'll do the same with iWork. There were rumors running around about an app called Cells - which fits the naming scheme.
Apple is already firing a shot across Microsoft's bow with this - and firing two shots at once by releasing a word processor and spreadsheet might have been a bit much. Who knows - maybe Keynote and Pages are enough on their own to push MS out of the Mac market...
No idea if there's anything to permanently ignore a client that's pumping out nothing but junk, though - but on a busy tracker, it would get drowned out by all the others. Anyone know?
The BT protocol is designed to leave that choice up to the clients. Pretty much all the clients out there will shun a peer after a certain number of corrupt pieces. If there aren't enough peers, it may try again - but it's up to the client implementation.
The interesting part is that the protocol (or trackers) don't have to deal with those kind of decisions. The clients can each behave however they want, but you are rewarded for playing nice with better connectivity. Badly behaved clients end up with no peers willing to send them data.
There is nothing gained by writing a BT client that is an asshole to it's peers and nothing stopping you from trying. It will simply be ignored by the other peers that aren't assholes.
Yeah, I remember the good old days back in the 40s before we had a drug problem in this country.
Oh, wait. I forgot that we humans have had a drug problem for fucking ever. There will always be a portion of the population that uses drugs. It comes with the genes.
We've just been putting the poor saps in jail for over 40 years.
OS X's netinfo is fairly nice, too. A LDAP network directory like Netware's and MS's Active directory and Linux's OpenLDAP. In fact you can make it all work together if your admins are good enough.
Actually, Apple uses OpenLDAP as the storage with the schema defined by the OpenDirectory standard. There are additional schema defined to make OpenDirectory and ActiveDirectory live together in harmony as well as to provide some Apple specific features not in the spec.
NetInfo, on the other hand, is actually a wholly different mechanism and is deprecated as of Panther (10.3). If you upgraded from 10.2 or earlier, then your existing data is in NetInfo, but OpenDirectory will read it from there. With a 'fresh' 10.3 Server install, everything is stored with OpenDirectory and NetInfo proxies all requests into OD.
From the client perspective, it doesn't matter which mechanism is in use since they each proxy into the primary storage mechanism on the server side. Effectively, any services that use the older mechanism don't need to be upgraded and all new services are implemented with OpenDirectory.
For the record, OpenDirectory and ActiveDirectory are very similar, so integration wasn't that hard to pull off. It's the NetInfo/OpenLDAP integration that was the Cool Hack.
I think it really reflects the difference in culture between Mac OS and Windows - the Mac OS system level API is (and always has been) very stable and grows logically without breaking things. I suppose it's the difference between trying to 'win the war' and trying to build a good product.
Kazaa is only good for getting copies of what you already know.
And this is why BitTorrent was interesting to me and Kazaa used only once in a while on a whim. I've found a nice tracker with a nice community that only deals with non-RIAA music. Accounts are limited, the boards are active with similar interest discussion and the quality is high. The human element here is what really sets it apart from the previous generation of P2P 'search only' apps.
I remember forever ago (in intarweb years) when MP3s were first starting to become popular and there wasn't a Napster yet - but there was Hotline. It worked on a similar tracker based concept. You couldn't search for arbitrary content, but instead you would hunt around for a 'community' (server) run by someone who had similar interests. I made amazing artist/band discoveries on Hotline that didn't even make it to my (very excellent) local campus radio station for years!
When Napster (and offspring) showed up, Hotline and it's clones died off quickly (for various reason - no causal assertion here, but definitely related). I never got into that scene at all - because I don't know how to phrase a search request for something about which I am unaware!
BitTorrent and the communities it creates are a pleasant return to those days. I realize that I'm a bit of a niche player in this whole P2P thing and the bulk of users want to type in the name of the crap on their radio/TV and go.
That said, I'm sure if this 'new' approach removes the community aspects from the equation again, I'll lose interest. Again.
You've obviously never been to a rental house with a wife/girlfriend/significant other.
It works like this: You both pick a movie to watch, because you can never agree on anything. Then, when you get home you watch her movie and decide to save your movie for another night. This never actually happens. Finally, you take them back and get charged for having two late movies.
While it doesn't include much in the way of a client, there is another C++ based library called - um - libtorrent (as opposed to LibTorrent mentioned above - note the caps) released under the BSD license. It doesn't really include a client (just a 'demo' CLI client that shows how to use the lib), but this is slashdot and we should all be able to write our own clients using other peoples' libraries, right?
;)
When I started writing my OS X client (Shameless plug: Hurricane. Early beta.) I shopped around for BT libraries and found libtorrent to be better documented than LibTorrent (Sheesh - could that naming issue be any more confusing?). Also, the developer community seems very receptive and active - always a good thing!
Cool Features? Sure! It runs all torrents over a single port in a background thread, offers configuration and stats for damned near everything BT can do, 'fast resume' data for quickly restarting a download and various other niceties.
And great documentation - a rarity for an OSS project
And then you can pass it off to the design department for CSS prettification. Everybody just works on the parts they're good at.
Bullshit. The advent of mature and stable standards along with browsers that actually support them is opening up worlds of possibilities that didn't exist in the heyday of the browser wars.
I've been making web pages since '94, and DOM+ECMA+CSS is one of the most powerful things I've seen in quite a while. It's exactly what the web was supposed to be before the browser wars came along and screwed it all up with blink tags and other useless shit.
Take a look at Google Maps in a fully compliant browser and see what's possible. This is the dynamic web as it was meant to be. It's got nothing to do with which browser you prefer to use - but if you want to play with these amazing standards, then you need a browser that supports them.
Yes, you could do the same thing with Flash or ActiveX. I'll leave the reasoning behind why that is wrong as an exercise for the reader. You get a hint by looking at the TLD for each of the above links...
910? Those two numbers aren't that hard to add - even if they are in base 10.
Well, now they can.
There is no more news on TV. There is only entertainment. News has to do with dissemination of facts. Facts are often unpopular and therefore generate poor ratings. End of discussion.
Yes, the government will only make available the information it wants to. This is how governments work. We've created safeties like the FOIA to make it more transparent, but the government and the people are fundamentally at odds on this point - which is why we have a system built on checks and balances. This has absolutely nothing to do with entertainment.
Once upon a time there were people willing to dig up those unpopular and unknown facts (ie, news) and publish them in newspapers and television. Perhaps there were motivations other than profit in those industries at one point, but not any longer. This has absolutely nothing to do with censorship.
The real trouble, in my opinion, is that there is confusion at all between fact and entertainment. It is of critical importance when raising a child to teach them to figure out the difference.
Television, newspapers and magazines are for entertainment. Assuming that news has to 'come from' somewhere is an odd notion, in my mind. Where do facts come from?.
PS - Why the hell should burning some fabric be illegal? I love this country as much as the next raving patriot, but I'm not so confused to think that 'my country' is somehow actually in that flag. Now, if I burnt your flag, that'd be different...
Sony and Nintendo don't have the leverage of X-Box Live. Microsoft is the only first party manufacturer that also requires you to play on their servers, giving them a much larger Goon than the others. Third party game makers can still make games without an official license, but X-Box Live provides a very large bargaining chip for MS that the other players lack.
And don't be such a dick. It was a freakin' joke posted on slashdot...
Quartz is built on Display PostScript and the whole collection of drawing APIs are based on the NSBezierPath classes. You actually have to go out of your way if you don't want vector based drawing. This is assuming you mean actually drawing in Quartz as opposed to loading a bitmap from a file and just displaying it with NSImage. It has been this way from the beginning.
Wait, you were just making shit up, weren't you?
While agree with most of your assessment, I do have issue with a couple of the marks you assigned:
4. It shall be easy to write programs which process XML documents.
Grade: F
It is true that writing a proper XML parser is not an easy task. However, we are lucky enough to have sixteen bazillion different implementations readily available for use.
5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
Grade: F
Optional means you don't have to use them. For those who need them, there they are.
6. XML documents should be human-legible and reasonably clear.
Grade: F
What you say?! An F?! Are you suggesting that there is a more human readable format for arbitrarily structured data? Maybe you have an innate ability to scan real binary on the fly, but I don't.
9. XML documents shall be easy to create.
Grade: C
This one is more pedantic, but I'm on a roll. XML documents are easy to create. Tedious, yes - but hard?
10. Terseness in XML markup is of minimal importance.
Grade: A+
If only there were a grade higher than A+. Perhaps Z-?
To be honest, I hadn't looked at the state of GNUStep for a while - and I'm glad to hear that they are keeping current. Thanks for pointing it out and kudos to the GNUStep team!
On top of it, Apple keeps adding really nice touches to the core frameworks with each revision (ie, Cocoa Bindings, richer model objects in Tiger, etc), so even the Foundation classes are diverging.
Dead on for POSIX, though.
Actually, every piece of Apple hardware has a one year warranty. The 90 days is for free phone support.
</pedantic>
Exactly - Mac OS X isn't picky about any particular brand, it's just picky about shitty RAM.
I think I prefer my system to actually check (you know, in that POST portion of boot where it's supposed to check the RAM) that the RAM is at least reasonably sound and bail immediately than to just merrily chug along with a bad stick and bomb out later at a random time.
As if bundling a browser didn't look bad to a judge. As if bundling a media player didn't look bad to a judge. As if pulling support for the Mac BU and looking bad to a judge would actually hurt MS in any way.
That said, the profitability of the Mac BU would likely keep MS from dropping it entirely, so I'm not really disagreeing with you on that point. Based on previous moves made, though, they wouldn't care at all about the 'legal ramifications' of such an action.
On the other hand, MS isn't opposed to doing things for a loss in order to further some alternate agenda.
I believe the iWork moniker is intended to be the counterpart to the iLife package. Over the years, Apple has added new applications to the iLife bundle, and I assume they'll do the same with iWork. There were rumors running around about an app called Cells - which fits the naming scheme.
Apple is already firing a shot across Microsoft's bow with this - and firing two shots at once by releasing a word processor and spreadsheet might have been a bit much. Who knows - maybe Keynote and Pages are enough on their own to push MS out of the Mac market...
Yes, but what about the revolution? I want that televised, but they keep telling me it won't happen...
The interesting part is that the protocol (or trackers) don't have to deal with those kind of decisions. The clients can each behave however they want, but you are rewarded for playing nice with better connectivity. Badly behaved clients end up with no peers willing to send them data.
There is nothing gained by writing a BT client that is an asshole to it's peers and nothing stopping you from trying. It will simply be ignored by the other peers that aren't assholes.
Oh, wait. I forgot that we humans have had a drug problem for fucking ever. There will always be a portion of the population that uses drugs. It comes with the genes.
We've just been putting the poor saps in jail for over 40 years.
NetInfo, on the other hand, is actually a wholly different mechanism and is deprecated as of Panther (10.3). If you upgraded from 10.2 or earlier, then your existing data is in NetInfo, but OpenDirectory will read it from there. With a 'fresh' 10.3 Server install, everything is stored with OpenDirectory and NetInfo proxies all requests into OD.
From the client perspective, it doesn't matter which mechanism is in use since they each proxy into the primary storage mechanism on the server side. Effectively, any services that use the older mechanism don't need to be upgraded and all new services are implemented with OpenDirectory.
For the record, OpenDirectory and ActiveDirectory are very similar, so integration wasn't that hard to pull off. It's the NetInfo/OpenLDAP integration that was the Cool Hack.
I think it really reflects the difference in culture between Mac OS and Windows - the Mac OS system level API is (and always has been) very stable and grows logically without breaking things. I suppose it's the difference between trying to 'win the war' and trying to build a good product.
Wow! That's almost a full Shitabyte!
I remember forever ago (in intarweb years) when MP3s were first starting to become popular and there wasn't a Napster yet - but there was Hotline. It worked on a similar tracker based concept. You couldn't search for arbitrary content, but instead you would hunt around for a 'community' (server) run by someone who had similar interests. I made amazing artist/band discoveries on Hotline that didn't even make it to my (very excellent) local campus radio station for years!
When Napster (and offspring) showed up, Hotline and it's clones died off quickly (for various reason - no causal assertion here, but definitely related). I never got into that scene at all - because I don't know how to phrase a search request for something about which I am unaware!
BitTorrent and the communities it creates are a pleasant return to those days. I realize that I'm a bit of a niche player in this whole P2P thing and the bulk of users want to type in the name of the crap on their radio/TV and go.
That said, I'm sure if this 'new' approach removes the community aspects from the equation again, I'll lose interest. Again.
You've obviously never been to a rental house with a wife/girlfriend/significant other.
It works like this: You both pick a movie to watch, because you can never agree on anything. Then, when you get home you watch her movie and decide to save your movie for another night. This never actually happens. Finally, you take them back and get charged for having two late movies.
It's great!