Berkeley CSUA MOTD:Entry 46013
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/05/24 [General] UID:1000 Activity:popular
5/24    

2007/3/19-22 [Science/Electric, Computer/SW/Languages/C_Cplusplus] UID:46013 Activity:nil
3/19    "Linked List Patented in 2006"
        http://yro.slashdot.org/yro/07/03/19/112247.shtml
        Was this a joke?
        \_ not a joke apparently: http://tinyurl.com/3bnwwv
2025/05/24 [General] UID:1000 Activity:popular
5/24    

You may also be interested in these entries...
2014/1/14-2/5 [Computer/SW/Languages/C_Cplusplus] UID:54763 Activity:nil
1/14    Why is NULL defined to be "0" in C++ instead of "((void *) 0)" like in
        C?  I have some overloaded functtions where one takes an integer
        parameter and the other a pointer parameter.  When I call it with
        "NULL", the compiler matches it with the integer version instead of
        the pointer version which is a problem.  Other funny effect is that
        sizeof(NULL) is different from sizeof(myPtr).  Thanks.
	...
2013/4/9-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Apps, Computer/SW/Languages/Perl] UID:54650 Activity:nil
4/04    Is there a good way to diff 2 files that consist of columns of
        floating point numbers, such that it only tells me if there's a
        difference if the numbers on a given line differ by at least a given
        ratio?  Say, 1%?
        \_ Use Excel.
           1. Open foo.txt in Excel.  It should convert all numbers to cells in
	...
2013/4/29-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Compilers] UID:54665 Activity:nil
4/29    Why were C and Java designed to require "break;" statements for a
        "case" section to terminate rather than falling-through to the next
        section?  99% of the time poeple want a "case" section to terminate.
        In fact some compilers issue warning if there is no "break;" statement
        in a "case" section.  Why not just design the languages to have
        termination as the default behavior, and provide a "fallthru;"
	...
2012/7/19-11/7 [Computer/SW/Languages/C_Cplusplus] UID:54439 Activity:nil
7/19    In C or C++, how do I write the code of a function with variable
        number of parameters in order to pass the variable parameters to
        another function that also has variable number of parameters?  Thanks.
        \_ The usual way (works on gcc 3.0+, Visual Studio 2005+):
               #define foo(fmt, ...) printf(fmt, ##__VA_ARGS__)
           The cool new way (works on gcc 4.3+):
	...
2011/3/7-4/20 [Computer/SW/Languages/C_Cplusplus] UID:54056 Activity:nil
3/7     I have a C question.  I have the following source code in two identical
        files t.c and t.cpp:
                #include <stdlib.h>
                int main(int argc, char *argv[]) {
                  const char * const * p1;
                  const char * * p2;
	...
2011/2/5-19 [Computer/SW/Languages/C_Cplusplus] UID:54027 Activity:nil
2/4     random C programming/linker fu question.  If I have
        int main() { printf("%s is at this adddr %p\n", "strlen", strlen); }
        and soda's /proc/sys/kernel/randomize_va_space is 2 (eg; on)
        why is strlen (or any other libc fn) at the same address every time?
        \_ I don't pretend to actually know the right answer to this, but
           could it have something to do with shared libraries?
	...
2010/2/12-3/9 [Computer/SW/Languages/C_Cplusplus] UID:53708 Activity:nil
2/12    I need a way to make a really big C++ executable (~200MBs) that does
        nothing.  No static initialization either.  Any ideas?
        \_ static link in lots of libraries?
        \_ #define a   i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0;
           #define b   a a a a a a a a a a
           #define c   b b b b b b b b b b
	...
2009/9/28-10/8 [Computer/SW/Languages/C_Cplusplus] UID:53409 Activity:nil
9/28    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
        Java is #1!!! Followed by C, PHP, C++, Visual Basic, Perl,
        C#, Python, Javascript, then finally Ruby. The good news is
        Pascal is going waaaay back up!
        \_ C is still more popular than C++?  I feel much better about myself
           now.
	...
2009/8/7-14 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Java] UID:53252 Activity:high
8/6     In C one can do "typedef int my_index_t;".  What's the equivalent in
        C#?  Thanks.
        \_ C#? Are you serious? Is this what the class of 2009 learn?
           \_ No.  I have to learn .NET code at work.  I am Class of '93.
           \_ python is what 2009 learns, see the motd thread about recent
              cal courses and languages
	...
2009/7/21-24 [Computer/SW/Languages/Java] UID:53168 Activity:moderate
7/20    For those who care btw, it looks like eclipse is now A Standard Tool
        at UCB ugrad cs, probably replaced emacs.  Furthermore, people get
        angry at seeing Makefiles, (since eclispe takes care of that).  I
        guess it's just a sign of the times.
        \_ The more people at my work use eclipse the less the code is
           managable in emacs.  I'm not sure which application's fault
	...
Cache (8192 bytes)
yro.slashdot.org/yro/07/03/19/112247.shtml
From the abstract, "A computerized list is provided with auxiliary pointers for traversing the list in different sequences. One or more auxiliary pointers enable a fast, sequential traversal of the list with a minimum of computational time. Such lists may be used in any application where lists may be reordered for various purposes." We should also give praise to the extensive patent review performed by Cochran Freund & Young LLP." Wednesday March 07, @08:51AM) Screw that I'm filing a patent on lodging patents. I'll make millions as gullible companies try to protect their "original" ideas. This guy will be required to pay me a fee for filing that patent. I've done make, make install, make clean, make menuconfig, make xconfig, make modules make modules install, but I've never done make cast... But obviously I've never compiled anything with a linked list in it anyhow, since this dude just barely invented them. To make the links, you take about 5-6 inches of reel-to-reel tape, wrap it around to form a loop, and then seal it with a bit of sticky tape. Then you take the next piece of reel-to-reel, and loop it through the first before sealing it, thus forming the link. The prior art the GPP mentioned is found in every school for five-year-olds in the country, around 15 December every year, and has been since long before your new-fangled punch cards were invented! Monday March 19, @11:35AM) Well, if your read the patent, it's for triply-linked lists, the purpose for which I can only fathom. Possibly, it's easier to sequence them for block encryption or somesuch. Though, I also imagine that the patent will get killed for its obviousness; adding a tertiary pointer when you need to access a list via another sequence is pretty damned obvious. Useful for replacing sparsely populated two-dimensional arrays. Or skip lists, which are rather nifty, though I've never had a real-world application for them beyond job-interview brainteasers. Hrm, I wonder if there's anything else patentable in my old Data Structures and Algorithms class notes... com/) Well, if your read the patent, it's for triply-linked lists True. So it is just slightly less ridiculous than the headline makes it out to be. For crying out loud, I implemented various sorting methods on my linked lists by adding multiple pointers to them two decades ago as a teenager, and I don't believe for a second that I was doing anything remarkable at all. Once you have heard of linked lists then doubly-linked lists, triply-linked lists or whatever-linked lists are pretty much obvious. Anyhow, what is really missing in all of this discussion is a response from the patent submitter or the persons in charge of accepting the patent; we never get this on Slashdot nor the stories referred to. Since the patent appears to be so unbelievable, I am very curious as to what their official response would be. Patenting an algorithm like this would be like me patenting, "A method of transportation involving the repeated placement of one foot in front of the other, thereby conveying motion upon the transportee." org/) I think the poster's original point is that it is not enough that there is prior art - these things shouldn't get to the point where prior art defense is necessary. We know the system is broken because a patent like this should never have been granted, while someone who is part of the system could say, "you see? Prior art is a defense if they try to enforce the patent on you. They never should have been given the ability to enforce the patent in the first place. Just to be clear, for people who might read this and have no idea what all this linked-list business is about, this ia a data structure that is taught in every 200-level com sci "algorithms and data structures" class, and is so ubituitous that it would certainly be on any exam based on that material. Put in terms in another domain, this would be like patenting "the use of horse hair for the application of water, oil, or acrylic-based substances in an effort to produce a visually aesthetic experience" - that is, a paint brush. Linked lists are in the basic toolset that software engineers use every day. If you are reading this post electronically, then there are probably hundreds of them swirling around inside your computers memory at this very second. Patenting a device that uses this to draw a line, that is different. Algorithms that describe basic ways of doing things are not novel. The biggest difference though is that with a device, if someone discovers some neat effect they can patent a certain way of doing it, but others can come an innovate on that device, inventing something that has the same effect but does it differently and is therefore not covered under the original patent. In software they are patenting the effect, here we have a mutli-way linked linked list, something that CS students have to do in freshman level classes. But now, we can't use it in any way without having to worry about defending ourselves. As someone who writes software for a living I would rather give up on ever getting a patent than having to worry for the rest of my life about implementing something someone else came up with and patented. The there is the issue that computer science moves along at such a clip that one company having a monopoly on an idea for the standard patent term could seriously stifle innovation in the field, which is directly against what the entire point of patents are. Monday March 19, @11:35AM) "I have yet to hear a convincing argument why Babbage's engine, which uses physical mechanical gears to implement an algorithm, is inherently more patentable than the same algorithm in software. Easy: Babbage had to design the gears, switches, etc, and the arrangement thereof to get the effect of calculation. The algorithm he intended to use it to accomplish is not; it's just an artifact of math, and subject to the natural laws clause. If you used an FPGA, you could patent the arrangement of gate-feilds, possibly, but the algorithm you're trying to achieve would (should) still not be patentable. org/) Finding compounds that are potentially active against some disease, especially compounds with relatively new mechanisms of action, is considered "basic research" - academia does a good job in this area, because it makes for good papers, PhD dissertations and academic plaudits. Taking those compounds and ensuring they are safe to administer in humans (rather than just animal models), and that they are as efficacious or more efficacious than other existing treatments is a costly, time-consuming process that requires managing a huge staff, coordinating clinics and hospitals, managing information systems, etc. This is not something universities or most research labs are set up to do properly. If you eliminated patents, you clearly wouldn't stop the scientists, but you'd put a huge damper on industry and financiers wanting to back the latter part of this process. This would result in far fewer drugs getting through the FDA approval process. It may be the case that there is a more societally efficient way to do this than the current system, but I'm not sure what it is. One problem with the current system is that one effect of it is that the US effectively subsidizes other countries drug availability, because drug companies expect to earn a large portion of their profits here, and have to deal with centrally negotiated pricing and other issues in foreign markets. But I don't see how you'd think that eliminating patents entirely would help the situation. Thursday April 27, @08:47AM) its nice that drug companies each invested $100m and more drug research, got their patents, and they are now selling the drugs for reasonable prices to public and drugs are accessible anywhere in the world. not only that, but they are also making discounts and providing easy access, and even giving out drugs in most poor and needy countries so that things like aids or other dangerous diseases do not spread out. oh wait - none of these are valid in this universe - all these are happening in alternate universes. Just as soon as you explain to me how, without patents, a drug comp...
Cache (7454 bytes)
tinyurl.com/3bnwwv -> patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=7028023&OS=7028023&RS=7028023
One or more auxiliary pointers enable a fast, sequential traversal of the list with a minimum of computational time. Such lists may be used in any application where lists may be reordered for various purposes. Ming-Jen (Colorado Springs, CO) Assignee: LSI Logic Corporation (Milpitas, CA) Appl. Description BACKGROUND OF THE INVENTION a Field of the Invention The present invention pertains to computerized lists and specifically to traversing computerized lists in different orders. b Description of the Background Lists of various sorts are commonplace within computer systems. For example, in input-output operations, requests for information, and the responses for the information may come in the form of lists. The lists may be in sequential order as determined by the sequence that various sectors of a disk were read. The list of information off of the disk may not be in the proper order for the intended request. In such a case, the list would need to be resorted to match the intended recipient. The conventional method of searching a list is sequential. This involves traversing the list to locate a specific item in the list. When a second item or record is needed, the searching may resume from the top of the list. The conventional method is time consuming and may require many computational cycles to find the necessary items in the proper sequence. Lists may be sorted so that the items may be accessed sequentially. Once the list is sorted into a particular sequence, the individual items may be accessed in order very quickly. However, there is substantial overhead in the reordering of the items into the desired order. In some cases, there is a need for the list to be presented in more than one order. In such a case, the list may have to be resorted, using more computational cycles. It would therefore be advantageous to provide a system and method for quickly traversing a sequential list in a second sequence. It would be further advantageous if the list could be quickly traversed in different sequences without resorting the list each time. SUMMARY OF THE INVENTION The present invention overcomes the disadvantages and limitations of the prior art by providing a system and method for traversing a list using auxiliary pointers that indicate the next item in a sequence. The sequential list may be created in one sequence, but used in a second sequence without having to resort the list. The present invention may therefore comprise a computerized list that may be traversed in at least two sequences comprising: a first sequence of items that comprise the list; and a primary pointer and an auxiliary pointer for each of the items of the list, the primary pointer being adapted to direct a computer program to a first following item and defining a first sequence to traverse the list, the auxiliary pointer being adapted to direct the computer program to a second following item and defining a second sequence to traverse the list. The present invention may further comprise a method of traversing a list having at least two sequential pointers comprising: providing the list to be traversed, the list comprising a plurality of items; for each of the items of the list, providing at least a primary pointer and a secondary pointer, the primary pointer being adapted to point to a first sequential item and defining a first sequence to traverse the list, the secondary pointer being adapted to point to a second sequential item and defining a second sequence to traverse the list; determining to use the second sequence to traverse the list; determining a starting item for traversing the list, the item being the current item; traversing the list to a new item indicated by the secondary pointer, the new item replacing the current item as the current item; and repeating the previous two steps at least one time to traverse the list. The present invention may further comprise a computer system capable of traversing a list having at least two sequential pointers comprising: the list to be traversed, the list comprising a plurality of items; at least a primary pointer and a secondary pointer for each of the items of the list, the primary pointer being adapted to point to a first sequential item and defining a first sequence to traverse the list, the secondary pointer being adapted to point to a second sequential item and defining a second sequence to traverse the list; the ability to determine to use the second sequence to traverse the list; the ability to determine a starting item for traversing the list, the item being the current item; the ability to perform an operation on the current item; the ability to traverse the list to a new item indicated by the secondary pointer, the new item replacing the current item as the current item; and the ability to repeat the previous two steps at least one time to traverse the list. The advantages of the present invention are that a list may be traversed in different sequences without resorting or sequentially traversing the list. The list 100 is comprised of item A 102, item B 104, item C 106, item D 108, and item E 110. Each item has a Next Pointer 112 and an Auxiliary Pointer 114. The next pointer 112 indicates the next item in the first sequence. In the present example, the items are in the sequence A B C D E The auxiliary pointer 114 indicates the next item in a second sequence that may or may not be the same sequence as the first sequence. In the present example, the items are in the sequence A C B E D By using either pointer, the list 100 may be traversed in either order with a minimum of searching for the next item in the sequence. For example, if the list 100 were generated by a disk drive in a response to a read request, the items may have been read from the disk in the series A B C D E However, the items may be needed by the host computer in the series A C B E D As the items are loaded into the list, an auxiliary pointer is kept for each item directing the disk system to the next item in the sequence. When the items are sent to the requestor, the auxiliary pointer may be used to access the items in the proper sequence. The list 200 is comprise of item A 202, item B 204, item C 206, item D 208, and item E 210. Each item has a next pointer 212, a first auxiliary pointer 214, and a second auxiliary pointer 216. The next pointers 212 may be used to access the list 200 in the order A B C D E When the first auxiliary pointers 214 are used, the order of the items is A E D B C When the second auxiliary pointers 216 are used, the order is A C B E D Those skilled in the arts will appreciate that multiple pointers may be used to create several predefined sequences for a particular list. The foregoing description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and other modifications and variations may be possible in light of the above teachings. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated. It is intended that the appended claims be construed to include other alternative embodiments of the invention except insofar as limited by the prior art.