Domain: att.com
Stories and comments across the archive that link to att.com.
Comments · 1,491
-
reminds me crowd from AT&T research
This seems to be quite similar to crows.
Crowds is an idea from Michael Reiter and Avi Rubin at AT&T. The basic idea is to become anonymous by joining a crowd, and to pass browsing requests to a random member of your crowd. In effect, every member of the crowd runs a proxy server for the benefit of the eveyone else. Read all about it at AT&T crowd central.
acz -
crowds?
Does that mean they are implementing something like crowds? I just hope they do it right, because making anonymity work is a bit more complex than just shipping stuff through a bunch of intermediaries.
-
Re:Programs written in Unicode?There is an article by Bjarne Stroustrup about the future of C++ where he goes overboard on this idea.
It goes like this: He wants to overload whitespace, but recognizes that sometimes you want implicit whitespace overloading, such as ab==a*b. So, he proposes limiting all variables to one character. This is possible with unicode, he argues.
The article reads more like science fiction by the time you get to the end. 3-d editors, overloading whitespace along all three spatial axes, etc.
The guy is either a comic genius or completely off his rocker.
Bingo Foo
--- -
Re:What about making it a little less bloated?
Ok, so have a look at Bjarne Stroustrups paper "Learning Standard C++ as a new language"
Learning
where he shows some cases where C++ is *way* faster than plain old C. -
not as expensive as this though...!
Check out the AT&T coffee machine. This has been upgraded over the years, and now talks to some listening daeomon process via a serial line. The daemon has a CORBA interface, and... oh, just go read the link
;-). The stats are currently rather old - I'm not sure if the whole thing's still functional. -
Re:Stroustrup coming to Columbia on Thursday
His announced topic is "multi-paradigm programming in C++". You can read more about what he means by multi-paradigm programming on his excellent web page and FAQ -- Phil Gross
-
Possible Prior Art
Now, I'm no expert, but a quick Google search turned up the following things, which may or may not be of any use as prior art.
'It was here a minute ago!' - Archiving on the Net - Part 1 of 2: "The Internet Archive [http://www.archive.org/]
... also uses an 'MD5 checksum' to compare new pages with old ones." The article is copyright 1997, and the Archive has been crawling since 1996.IBM Agent Building Environment Developer's Toolkit: this manual, also copyrighted 1997, is documentation for using IBM's Java-based toolkit for writing automated agents, say, page-comparing and caching agents. Conveniently enough, they provide the following function: CheckMonitoredPagesForChanges, which states, "This effector will check all the web pages on the monitored-pages list for changes in the page... This function uses a checksum method against the content of the HTTP request to 'compare' the page content. Any difference in the checksums, or any change in the Last-Modified date in the HTTP header (if it exists), will cause a 'change' to be detected."
WebGUIDE: Querying and Navigating Changes in Web Repositories: This is an AT"T research paper. "The AIDE version repository is a centralized service that archives versions of pages... AIDE maintains a relational database containing meta-data about each page, each user, and the relationships between them. For each URL, it stores the following (among other information): Last modification date: This is used to find pages that have been modified since a user saw them... Checksum: This is used in case the last modification date is unavailable." This document is copyright 1993, 1994.
Another interesting note, is that Puma started out making synching software. They didn't acquire NetMind, what I'd gather would be the impetus for this patent, until 2000, over six years after that last AT"T URL, and PumaTech was founded.
--Vito
-
Re:Once upon a time ....No it wasn't. AT&T was the direct descendant of the Bell system. Bell was *the* phone company for decades.
If you are going to be pedantic, at least get it right before you correct others. According to the oficial history of American Telegraph and Telephone:
AT&T's roots stretch back to 1875 with founder Alexander Graham Bell's invention of the telephone. During the 19th century, AT&T became the parent company of the Bell System, the American telephone monopoly.
It is not surprising that people get confused between the Bell System and AT&T since AT&T was the holding company for the Bell system as well as the long distance arm since being founded in 1885.
Besides which the correction was entirely irelevant to the point made. The United States government accepted the idea that AT&T be a monopoly utility initially in a 1913 agreement known as the Kingsbury Commitment. As part of this agreement, AT&T agreed to connect non-competing independent telephone companies to its network and divest its controlling interest in Western Union telegraph.
The key phrase being 'non competing'. That in effect meant that the vast majority of operators were frozen out since they were 'competing' against Bell system companies. If the Bell system offered a customer service there was no obligation to interconnect a rival telco even if they were already established.
-
Technical solution
I've said it before and I'll say it again: the solution to SPAM is micropayments. If micropayments were universally accepted and standardized then it would be a trivial matter to confiure email clients to only accept email which came with an attached payment. The client could also trivially be configured to return that payment, but with a "Keep Payment" button which the recipient could push if the email were SPAM. Here is a technical artical on how to stop SPAM.
-
Does the screen really need to change?
If not (i.e. it is a collection of controls...) then I wonder if you could build/buy a prototype of what the people at the AT&T labs in cambridge use: a 'bat' which allows you to point and click anywhere.
OK, so you need some ultrasound receivers and some funky software, but you did ask slashdot, right? -
Re:ANOTHER grammar?
By the Great Spirit, do we really need another XML grammar?
It's a schema (unfortunately apparently just a DTD). Backgrounder (which is probably unnecessary for you but for others that will misread your message and assume you are implying that there's all these crazy "standards" for XML) : XML is merely the basic rules by which the data is encapsulated, but without agreeing on a standard set of data organization standards (schemas) you really haven't acheived much (and this is something that most XML zealots and detractors fail to understand). If I said "Give me your resume in that new whiz bang `XML format'" I will have achieved nothing and would get a huge mess of sloppy data piles that would have to be analyzed, etc. One might be a binary Word document enclosed in the root tag, while another one might be heirarchial with tonnes of attributes, etc ("object oriented"). If on the other hand I said "Give me your resume conforming to the schema blah blah (giving a namespace like http://www.hr-xml.org/blahblah.xsd) you will know EXACTLY the format that your data should be encapsulated in, that the xsd:timeInstant field is ISO 8601, that the character set can be encapsulated just so, that the character field must follow specific rules, that it must have this set of fields in this order : I can then build a validation engine (that will have a local copy of that schema obviously : I can't see any situation where you'd be working with remote schemas. At most you will view it as a namespace. Schemas once published become like a COM interface : immutable, and when I say that my program conforms to MonkeyShema 1.0 at the namespace location of blah blah then I have that intrinsincally in the logic of the program and noway would I do a get of that schema everytime I wanted to parse something) that says "Does this conform to the rules?" and from there it can parse through it sucking out the values into the HR database. XML + XSD is the standard, and an absolutely brilliant one, that despite the frothy rantings of critics, is incredibly valuable. XML+XSD+XSLT is offering a solution that the industry has never had, certainly not this evolved.
As mentioned though the true power of XML is really in the schemas : The standard way of defining the data (see http://www.w3.org/XML/Schema). When people have such a clearly defined, standard method of describing communications between two products that is of immeasurable value. The idea behind each of these schema standards is to do exactly that : Start agreeing on some basic standard schemas. See Biztalk.org for examples.
Your opposition sounds primarily to be fear of change (which is one of the most imposing software development problems). XML+XPath+XSLT+XSD is quite a load to learn, so firstly I take issue with your claim that XML is "simple" : Can it be simple to start into? Absolutely. Just like C can be easy to start into.
int main(int argc, char *argv[]) {
  printf("Hello world!\n\r");
};
Does that diminish the power of C? Not in the slightest. XML represents a great leap forward in our ability to describe the data that we pass back and forth, and the standards are of enormous value.
BTW: Obviously eventually some fully spec'd XML compression will be standardized, such as XMill. XML is heavily compressible : Often, paradoxically, moreso than the same data stored in a proprietary format. However it is usually a moot point because XML usually comes into play where no existing communications were taking place.
Cheers!
-
KSH93KSH93 has quite a number of features that make it pretty good. Here are some links:
Download: http://www.research.att.com/sw/download/
License: http://www.research.att.com/sw/license/ast-open.ht ml
LinuxJournal Article: http://www2.linuxjournal.com/lj-issues/issue27/127 3.html -
KSH93KSH93 has quite a number of features that make it pretty good. Here are some links:
Download: http://www.research.att.com/sw/download/
License: http://www.research.att.com/sw/license/ast-open.ht ml
LinuxJournal Article: http://www2.linuxjournal.com/lj-issues/issue27/127 3.html -
Re:Where is the video card?I think you need to look at VNC. It's a simple remote framebuffer protocol, inserted between the display driver and the actual video card. The server thinks it's writing pixels to a local video card, when in fact the driver ships the updates across the network to a remote viewer.
A benefit of this division of labour is the simplicity of the viewer. There are VNC viewers on many different platforms.
~
-
Re:Where is the video card?I think you need to look at VNC. It's a simple remote framebuffer protocol, inserted between the display driver and the actual video card. The server thinks it's writing pixels to a local video card, when in fact the driver ships the updates across the network to a remote viewer.
A benefit of this division of labour is the simplicity of the viewer. There are VNC viewers on many different platforms.
~
-
Re:My College uses AT&T CampusWide
AT&T Campuswide readers plug directly into our LAN
Are you sure? The specs for the stripe readers listed at the second link you provided describe the readers as communicating either throuch standard 9600bps serial or via RS-485 multidrop. RS-485 as a standard does not specify connector-type, and it is not uncommon to use twisted-pair cable and RJ-45 connectors for RS-485.
So your campus may have what LOOKS like a LAN connection for the stripe-reader, but is probably a separate circuit that goes direct to the VAX.
And a good thing, too. I could just imagine someone sniffing the traffic between the stripe-reading security system and the VAX
... spoofing card identities ... unlocking doors to restricted areas ... getting unlimited copies on the Xerox machine in the library ... adding large $ balances to their cards ...
-
OK, I'm gullible.
I was almost willing to believe it, despite the extraordinary unlikliness of it all (what can I say, I like unlikely things), until I saw the "infra-red photograph" of the Codex Udolphus.
Did anyone else notice that the "handwriting" is just a pasted-in snippet of the Voynich Manuscript? Clearly Ray Girvan is up on his obscure un-translated early renaissance alchemy texts, at least.
-
My College uses AT&T CampusWide
-
My College uses AT&T CampusWide
-
Are Customer Accounts Assets?Bankrupt digital subscriber line company NorthPoint Communications will sell substantially all of its assets to AT&T for $135 million in cash.
maybe I am dumb, but aren't the customer accounts counted as assets? so wouldn't the customers become AT&T customers?
But that is not what I get from their website.
Looks like they are mostly hardware, at least according to the AT&T press release.
Some business managers can be so dumb.
-
Virtual Network ComputingAT&T's research department released VNC, the Virtual Network Computing client under the GNU GPL. There's a short tutorial from the FreeBSD Zine explaining how to set up VNC, but for the most part, it applies to Linux also.
VNC is a real gem because it is truly platform independent, and can run on even the most nonUnix systems such as Windows. No need to install a bulky X server on the client machine just to run a few xterms or oclocks.
-
The Slashdot affect by another name?
in this interesting paper, they define an interesting thing, sounds a lot like the slashdot affect:
Flash crowds occur when a large number of users try to access the same server simultanesouly, overwhelming the available resources. In addition to the overload at the server itself, the traffic from such flash crowds can overload the network links and thereby interfere with other, unrelated users on the Internet. For example, degraded Internet performance was experienced during a Victoria's Secrets webcast and during the NASA Pathfinder mission.
So, how are the slashdot crowd any different than a bunch of script kiddies? (btw, for those with no sense of humor, that was supposed to be funny)
Going on means going far
Going far means returning -
Re:Olivetti on Discovery years agoYes, Active Badge goes back to 1989-1992, which uses infrared for location-determining. There is also the related Active Bat which uses ultrasonics.
The Sentient project extends this, it ties together the locator, the computer, the "model world" and communication systems.
BTW, To leave the system, simply leave your badge on your desk.
-
Re:Olivetti on Discovery years agoYes, Active Badge goes back to 1989-1992, which uses infrared for location-determining. There is also the related Active Bat which uses ultrasonics.
The Sentient project extends this, it ties together the locator, the computer, the "model world" and communication systems.
BTW, To leave the system, simply leave your badge on your desk.
-
Re:Bell Labs has been doing this for some time...
Sounds like ActiveBadge, also of AT&T Cambridge. Active Badge.
-
www.whydotheavatarshaveapenis.com
Looking at this screenshot I would guess that to the left of our Mr.RMC is actually the Coffee Pot.
Overall - Pretty scary idea, how would you like the %time spent in the bathroom appearing on your performance review, or within 5ft of the printer, or 5ft within the coffee pot.
Does anyone have to say "Big Brother"?
-
Re:true, but how do you update remotely?
Actually, I have some co-located boxes. I've been adminstering them using VNC for years. Now, finally W2K has Terminal Server, which is faster and easier.
-
Re:Check the docsIf you use the -share option then everyone one connecting to the same display will have control of the mouse and keyboard. If you don't use it then you will disconnect the current user of the display. You must use the -viewonly option if you don't want to use use the mouse and keyboard when using the -share option. You can set the options to -alwaysshared or -nevershared on the server side to override the viewer options.
I think you can connect to display 0 and share it or you could have the students run the server and connect to it locally full screen and they wouldn't know the difference. There is also an option to do reverse connections if you set it up. This would allow the server to view the viewer's display(s). You should be able to use VNC to solve your problem but there is always more than one way to solve a problem.
P.S. Yes I was reading the docs for the xserver and xviewer not the Win32.
-
Re:Check the docsIf you use the -share option then everyone one connecting to the same display will have control of the mouse and keyboard. If you don't use it then you will disconnect the current user of the display. You must use the -viewonly option if you don't want to use use the mouse and keyboard when using the -share option. You can set the options to -alwaysshared or -nevershared on the server side to override the viewer options.
I think you can connect to display 0 and share it or you could have the students run the server and connect to it locally full screen and they wouldn't know the difference. There is also an option to do reverse connections if you set it up. This would allow the server to view the viewer's display(s). You should be able to use VNC to solve your problem but there is always more than one way to solve a problem.
P.S. Yes I was reading the docs for the xserver and xviewer not the Win32.
-
Re:A monopoly can be more than one company
Oh dear. While the poster does a good job of explaining how collusive oligopolies can be thought of as monopolies, this post does not deserve a +5 score.
The problem is that cable companies don't acheive their monopolies through collusion but rather through spatial monopolies. For instance, here in Canada, there are a number of cable companies: Rogers, Shaw, Videotron, etc. However, my only choice in cable company is Rogers Cable or no cable.
The problem is that Shaw and Videotron only have cable running to people's houses in their territories. The situation is no different in the US (or for that matter, pretty much anywhere in the developed world). If you have AT&T you can't pick TW. This is a monopoly.
Are these monopolies dangerous? In some sense, because they do control the flow of information into households, this might be a problem. However, as time goes on, there are more and more sources of information (ie dialup internet, satellite TV & internet, not to mention newspapers, magazines, etc).
Oh, and BTW, check out AT&T's website. There you'll see that, far from being in danger of buying more cable networks, the US's largest cable system is actually selling off parts of it's network. -
AT&T is selling some broadband assets to Mediacom
story here
Basically, AT&T is in debt up to their eyeballs and need cash. I live in one of the markets being acquired, and can't wait. I don't use AT&T for broadband anymore, been with Qwest for a year on a buisness DSL plan and have been very happy. I still use AT&T for digital cable, but I hardly watch t.v. Besides, I'm pretty sure it would defy some law of the universe for Mediacom to charge more for less than what I'm currently getting from AT&T digital cable. -
Can we say RAID?
At a rate of 10MB/sec this can easily be stored on a RAID 5 system. With the advent of IDE RAID systems, one can build a 1+TB (terabyte) RAID system with ATA/100 drives for cheap. You can get them pre-built from vendors for a few thousand (U.S.) dollars or less. Or you can build your own for even cheaper. These systems not only have the necessary capacity, but also have more than enough speed.
To start with, you only need to record numbers for the beginning and end of each conversation, and note these systems can be expanded to many terabytes. If we have a 1TB system, we can store 104,857.6 seconds worth of data (1TB / (10MB/sec)). This is 1.21 days of continuous number recording.
You could also argue that you just increase the rate of generated random numbers until this becomes unfeasable, but then you encounter the limitations that the computer can recieve the numbers and process them to begin with. 10MB/sec is 10BaseT speeds, you could increase to 100MB/sec (fast ethernet). When you start getting into rates above this you start saturating the i/o bus, the equipment used to recieve data, and the cpu or other chip used to encrypt data, shy of spending tons more money, but even then you still get these limitations, just higher up. -
Re:A suggestion - two way anonymous web access
Crowds: http://www.research.att.com/projects/crowds/
Page linking to it, with various other things (anonymizing, peer-to-peer etc.): http://www.infoanarchy.org/?op=special&page=resou
r ces -
Proof positiveIts always possible to fake things if you keep it within a single government department. but these things always fall apart if you have to involve multiple departments.
On this basis, I should like to point readers to prrof positive of the moon landing: the US Customs Form which the Apollo 11 astronauts had to complete on their arrival back on earth.
-
Re:Remote administration
I'll assume you are talking about remotely controlling the computer so that the user can see what you are doing and interact with you (since otherwise telnet or better SSH would be the obvious answer). For remote X control, though, why not try out VNC? Basically, a free PCAnywhere type of client/server for Linx to PC, PC to Linux, Linux to Linux, etc. So wouldn't that bring the TCO of Linux down?
-
SSH and VNC -- secure, capable and free!!!
Forget that X-Windows source code rip with security issues (also known as "NT Terminal Server"
;-) and save some dough by just use a SSH client with port forwarding (like TeraTerm + TTSSH and VNC). It works great at my company, letting me support my notebook and other roaming users while they are on the road. TeraTerm+TTSSH is cake to setup, and you can configure it so all a user has to do is click an icon to connect with port forwarding.
-- Bryan "TheBS" Smith
-
Re:Remote administration
VNC
allows you to do this. It's similar to PCAnywhere but is platform-independent. -
Cost Effective Solution - Try thisIf you are after a cost effective solution then try this site
http://www.uk.research.att.com/vnc/
Although we have a closed network, so some security issues are hmmm, ignored, its a damn useful bit of kit.
-
Korn and CoorsSo Korn (the band) drinks Coors Light? I might have suspected...
For those of you wondering where that apparently idiotic non-sequitur came from, it refers to this picture on David Korn's web site. Roblimo, I appreciate your including my question but you could have edited out that line, especially if you're stripping out the HTML.
;-) -
KSH / other ATT tools not Free?http://www.research.att.com/~gsf/download/faq.lic
e nse.html
- Is the software OpenSource?
We believe that it conforms to the provisions of the Open Source Definitions (OSD), and have submitted the license for certification, but we have not heard back.
... perhaps since OSI isn't contacting them, they can choose a ready-made Free Software License -- there's 15 to choose from that will maximize the real ksh's availabilty, adoption, etc... - Is the software OpenSource?
-
Sun got it wrong all right, but that's not whySpeaking as a cross-platform developer, I beg to differ with you on the point that cross-platform code is unimportant.
I'd like you to understand why cross-platform code is incredibly important (note that this page quotes Judge Jackson of the MS vs. DOJ case as to why Microsoft felt it was so important to put a stop to cross-platform code as to break the law.)
But I think what we have lost sight of is maintaining both the usefulness of our code and our independence as programmers by not remembering how to write cross-platform code.
What Sun got wrong was not making Java cross-platform, but trying to bind us all into proprietary platform of Java while sweetly singing into our ears that it was platform independent. Sun did this and continues with it to serve its own marketing and political purposes, purposes which may not serve the interests of either the public or the independent developer.
You too can write cross-platform code, in almost any compiled language. Check out the ZooLib cross-platform application framework for C++, as well as the Boost C++ Libraries.
Jon Watte of Be, Inc. told me "Portable, to some people, means it builds on at least two linux distributions with several flavors of GCC".
Here's a list of a bunch of application frameworks, many of which are cross-platform, and many of which are open source - so there's more than just ZooLib to pick from.
Get off your duff and ship your executables for all platforms in common use - and not just ones with POSIX system call APIs!
And here's a hint for making your code buildable cross-platform - ever try to run "./configure" on a computer that doesn't have a command shell? Pretty hard. Makes folks like me struggle to write all the makefile's and config.h's by hand. But look at how many platforms the Independent JPEG Group's JPEG codec library builds on - DOS, MacOS, Cray, you name it, and it builds with both ANSI-C and old K&R c compilers (using macros for the function interfaces).
Kids these days... damn it makes me mad.
Michael D. Crawford
GoingWare Inc -
Java and XML bolted at hip? Try Xerces-C (C++)!I was pretty perplexed by Sun defending its statement that XML and Java are bolted at the hip.
Now don't take me for a Microsoft fan or anything. But until Sun releases the Java specification to a vendor-neutral international standards body I have no use for this large corporation trying to manipulate the market by winning developer mindshare. Remember your choice of development platform is a vote you make, either in favor of one company or another, but hopefully a choice you make with clear thought behind it.
What Sun basically said is that XML is platform independent, and Java is platform independent, so it makes a lot of sense to use XML with Java.
Now, I'm not arguing that there is lots of great XML software available for Java. But in my feeling (and Bjarne Stroustrup's opinion too) Java is not platform-independent, but a proprietary platform unto itself.
And in fact most of my actual working experience with XML has been in C++ using the platform-independent Xerces-C validating parser for DOM and SAX from the good folks at the Apache XML Project. (You can also use Xerces-C from Perl or Win32 COM with provided wrappers).
I used Xerces-C on MacOS and Win32 for the config files and user documents of a consumer GUI application after integrating it with the similarly cross-platform ZooLib cross-platform application framework - something that would have been really inappropriate to do in Java, as this was meant to be a free downloadable app for which tech support costs had to be near zero, and we could not expect our users to install a Java runtime.
According to its web page, the C++ version of Xerces works on:
- Win32
- Linux
- Solaris
- AIX
- HP-UX
- OS/390
- AS/400
- SGI IRIX
- Macintosh
- OS/2
- PTX
- "and more!"
If more powerful players than you want to trip each other up with competing initiatives - well, just let them, and go on about your business by using open source like Xerces-C.
BTW - the Win32 port listed on the web page says it builds with Visual C++, I think others have built it with Borland C++ and I was building it with Metrowerks Codewarror for both my Mac and Windows versions, and could cross-compile on each platform for the other.
Michael D. Crawford
GoingWare Inc -
Yes why be So exclusive?
switch abck to Linux.
Localization in Linux is improving, but how close is total Linux support for languages like Japanese and Hebrew that are difficult to fit into your normal, left-to-right, single byte character infrastructure?
So why the Linux adjenda? The origianl author went out of his/her way to NOT mention Linux.
FreeBSD's ports collection supports 400+ Japanese localizations, 70+ Chinese, 20+ Russian, 9+ Vietamese, 2 French and 2 Hebrew. There is a reason for $10 million in investments from Japan in FreeBSD in the past few months. Combined with the 15-20% of the Open Source OS market FreeBSD has, FreeBSD is making fine progress in internationalization, thank you very much.
The people who *WRITE* code need to think a far bigger picture than the closed-world Linux only mind-think of Cliff and dvk. Show that you are a 'think big' kinda coder. Read up on unicode, usage of I18N/L18N or even the physically impaired. Such is not done by most code authors.
WinterKnight, the computer is a tool for communication. So you have a choice: Use the tools you have, *OR* (re)write tools to do what you want to do. Contact Mozilla, and see who has expressed an interest in making hooks for hebrew. Pick the tools you need, then make ports happen to unicode. And, try to get authors of code to design for Unicode/physically hampered and to write portable software. Having a 2nd machine and using VNC so you have one display, a switchbox to the 2nd machine (one display, one keyboard), or using a product like VMware and running Windows as a virtual machine are other options besides multiboot. These solutions avoid the time multibooting takes. -
X over wireless? - you must be jokingX is an extremely inefficient protocol when it comes to network usage, it works great when the X server is on the same machine as the client, and works tolerably over a 10 megabit network, but even over broadband it is too slow, and over a wireless connection - you must be joking.
VNC works much better over slower connections than X, and there are clients for most popular platforms (although I am not aware of one for the Palm pilot).
--
-
Kind of a shell question...There's a lot of squabbling in the Linux world about how the Unix mentality of small apps communicating through standard input/output to form a pipeline should be maintained in the new whiz-bang, GUI environments. Do you think that it can/should be done? What should be the most important considerations for such a messaging system and how should a standard be established?
So Korn (the band) drinks Coors Light? I might have suspected...
-
This would be nice
I think that this would be a great service, and a way to even out the playing field, so to speak. Right now, you can get voice services over coax. Now the phone companies can expand into delivering video over coppper.
It would be even nicer if the subscriber could even go so far as to choose the channels they received :) -
Re:here's another one:One of my favorites: Encyclopaedia of Integer Sequences
and http://www.zdwebopedia.com/, and hell, http://directory.google.com/Top/
-
NO silver bullet but C++ multiparadigm is usefull!
The author is correct that OOP won't solve every problem. But he tosses the baby out with the bath-water! The author obviously hasn't read any of these great books/articles:
What is Object-Oriented Programming? (Link to papers, since I can't find the .pdf for this one)
Multiparadigm Design and Implementation in C++
Design and Evolution of C++
Now I'm not saying C++ is the end-all and be-all, but every language was designed to solve a certain problem. Use the right tool for the right job! If C++ lets you solve your problems quickly and efficeintly, then use it. If not, then use what works. -
NO silver bullet but C++ multiparadigm is usefull!
The author is correct that OOP won't solve every problem. But he tosses the baby out with the bath-water! The author obviously hasn't read any of these great books/articles:
What is Object-Oriented Programming? (Link to papers, since I can't find the .pdf for this one)
Multiparadigm Design and Implementation in C++
Design and Evolution of C++
Now I'm not saying C++ is the end-all and be-all, but every language was designed to solve a certain problem. Use the right tool for the right job! If C++ lets you solve your problems quickly and efficeintly, then use it. If not, then use what works. -
Working in such an env., 10GB+, NT/UNIX clients
I'm working in such an environment myself, Linux server (actually a NetApp filer hosts our repository now, but pserver still runs on the Linux box for NT clients) and NT, Linux and Solaris clients. As a startup, we could not afford a pricey, commercial VCS, and with what we do, CVS was a perfect fit (yes, I have used a number of different, "pricey" systems before). We are a fabless semiconductor firm, so we often have large, textual files (as well as small). CVS works very well for us, and is easy to administer once you get familiar with it. There is no issues with NT and UNIX clients, CVS handles them all of them from the server side, assuming you run CVS in pserver client/server mode (from at least for the NT clients).
Your sole documentation for CVS (other than the occassional Google search) will probably only need to be the Cederdqvist CVS Manual (here in HTML). If you aren't too familiar with CVS yet, you'll want to play around with a test repository while reading this manual for a month. Trust me, that is what I did the first time around.
In a nutshell, here are my recommendations for a CVS setup, with large files and a both NT and UNIX clients:
- Use a UNIX server, for both repository and pserver (client/server, runs on port 2401 by default, setup in
/etc/inetd.conf) daemon (recommend both be on the same system, although there are exceptions to this rule). The UNIX CVS server is just so much more flexible, although our SV office uses CVS on NT (but they are NT-only on the client side). Since most Linux distros come with the latest CVS software, stick with Linux for your server (the CVS server/repository should always have the same or later version than any client). - If performance is important, make sure your server has a lot of memory if you run pserver (again, client/server daemon on server's port 2401). When you do, the server needs 1.2-1.5x the memory of the largest file checked in, otherwise, thrasing will occur as you swap pages to/from memory. Again, I _highly_recommend_ you run pserver for access from NT clients.
- On the UNIX side of things, you don't have to use pserver. You can directly access the repository via NFS mounts. This is slower, but, for large files, you do not run into the thrasing issue on the server. In a nutshell, pserver puts all the burden (incl. memory usage) of the diff/commit on the server, whereas clients that access the repository directly do all the work. Even though you run pserver (for your NT clients), you can still access the repository directly on UNIX clients.
- Do *NOT* checkout via NT to the same directory as via UNIX. E.g., if
/home = \\server\home, do not try to checkout to /home via UNIX and then commit via NT from \\server\home, or vice-versa. The reason for this is that while the repository is OS-independent, the checked out working directories have OS-specific details (e.g., drive letters when checked out via NT, which the UNIX cvs client won't understand -- plus LF/CR issues where NT gets the later automatically added). Either adopt one of two philosophies (or both, depending on your user):- If you need to have working files accessable in the same place from both NT and UNIX (e.g.,
/home and \\server\home), then do all your cvs actions from the _UNIX_ side. The only issue you'll run into is any LF/CR that a Windows application would expect (since only LF will be used for line breaks since the working directory created/modified by UNIX). Since most of my Windows development tools don't mind LF-only breaks, I didn't have any problems with this. - The other philosophy involves a strict separation of working directories from NT and UNIX. Note, both clients still access the same, central repository and the same info. But when working, check out files via NT to a NT-only area and files via UNIX to a UNIX (possibly NT-also) area. This is what we also do with some people: Check out via NT to their local hard drive (which cuts down on network usage when they work), committing at the end of the day (for backup purposes), with other files being checked out to UNIX on the file server (and then accessable via both UNIX and, limited, NT over NFS/SMB shares -- which doesn't need to be committed at the end of the day since it gets backed up on the file server itself).
- The use of each will depend on your workflow, possibly a per-user thing.
- If you need to have working files accessable in the same place from both NT and UNIX (e.g.,
- Be cautious about what you modify the CVS respository directly, but don't be shy to do it occassionally when you absolutely need to. This is what I love about CVS over other VC systems, a very understandable repository setup. Don't do it unless you cannot get a cvs client command to do what you want, don't do it reguarly and manually log anything you do to the repository for future reference. After a year and a half at my job, I have probably gone into the repository about 2-3 dozen times and haven't had any issues yet. Again, I haven't had such good luck with commercial systems and direct repository modification (when required).
- Even if you are using a UNIX-only checkout environment, you can always use the nice, visual WinCVS client on the Windows side (provided you have a Samba share) to look at working file status (e.g., modified, current, etc...), but don't use to checkin/out UNIX working directories. If you are checking out via NT, then WinCVS will be a natural client choice. Just configure it for pserver, port 2401 and you'll be cooking.
[ Note, there is a TkCVS client for UNIX, but it is _way_outta_date_. So don't use it except for possibly looking a work file status as well. In the case of both WinCVS and TkCVS, there is a _lot_ to be said about sticking with the CLI CVS client when checking in/out files -- I don't trust the GUIs to be flexible enough with anything but "browsing" the working files, but that's me. ] - Don't forget to set some basic variables in all your user scripts (or in a global script called at login), e.g.:
- CVSUMASK 007 -- just like a regular umask, only for cvs checkouts
- CVSREAD 1 -- set if you want to force users to do a "cvs edit" before editing a file (great for keeping track of concurrent edits/development), unset (or don't set) if you don't.
- CVS_SERVER server and CVS_PASSFILE $HOME/private/.cvspass -- if you use pserver (client/server) access (or unset/don't set if you don't).
- CVSROOT
/home/cmroot/cvsroot or CVSROOT :pserver:$USER@server:/home/cmroot/cvsroot -- the former for direct repository access by client, the later to use pserver.
- Also get some basic aliases down for your UNIX clients, e.g.:
- alias cvs '/usr/local/bin/cvs -d
/home/cmroot/cvsroot' -- accesses CVS repository /home/cdroot/cvsroot directory - alias cvs '/usr/local/bin/cvs -d
:pserver:$USER@server:/home/cmroot/cvsroot' -- accesses CVS respository on SERVER at /home/cmroot/cvsroot via pserver (client/server) - alias noncvs "cvs -n -q update -I '! CVS' -r HEAD" -- List all non-current or unknown files in working directory from repository (I use this all the time)
- alias noncvsi "cvs -n -q update -r HEAD -- same as previous, except apply ignored file list (which are listed in file $CVSROOT/CVSROOT/cvsignore -- which you'll want to checkout and modify for your site).
- alias cvs '/usr/local/bin/cvs -d
- Do *NOT* make your server public. CVS is NOT a secure server, unless you use something like Kerberos client/server (instead of pserver, on a different port, I've never done this), or pserver with SSH as the remove shell. If you are going to run a publicly accessable CVS server, you'll want to run in at least pserver mode using SSH or, in the worst case, pserver with different usernames/passwords directly in the CVS admin files (rather than using the default of the local UNIX accounts). I highly recommend _against_ running a server that is both internally and externally accessable. If you need to, setup two separate servers, with two separate CVS repositories and run a cronjob to update the external server on a regular basis. Better yet, get familiar with "cvs export" on automating the export of files from the CVS repository (withOUT working CVS info) to archives, external servers, etc...
- Lastly, if you have not adopted Cygnus' Cygwin GNU environment as standard on your NT desktops, do it now. No need to pay others for UNIX tools on NT, Cygwin is all you need. Do it even if you don't use GCC, and do all your development via Visual Studio, etc... There are just too many good UNIX CLI tools to ignore in there and you'll wish you'd had them. A CVS client is included (or you can use WinCVS').
[ Side note: If your setup and workflow is anything like mine (e.g., either NT or dual-boot NT/Linux on desktop, Solaris workstations in a lab), and an X-Server for NT is too expensive, you'll probably want to investiage Virtual Network Computing (VNC). VNC on a UNIX server (as compared to just using it as a simple pcAnywhere type setup on Windows servers, as most people do), is powerful. It is how we have ~10 different engineers running full GUIs on a single Solaris or Linux workstation, each with their own X-session (:1,
:2, etc...). Then you simply connect from the Windows client and tada, a full X-session -- that even stays up when NT crashes! Or can be "shared" by Microsoft NetMeeting. Just thought I'd mention VNC since you probably have the same situation/setup I do. ]
-- Bryan "TheBS" Smith
- Use a UNIX server, for both repository and pserver (client/server, runs on port 2401 by default, setup in