1. raytracer

    Date: 04/24/08     Keywords: no keywords

    So, I'm once again writing a ray-tracer. So far the only objects it supports are planes and spheres. My intent to support only polygons. So, I'm curious. A low-polygon polygonal object is going to look, pretty.. well- polygony (if you know what I mean). My plan was to take the ray-polygon intersections and blur the collision normal, depth (somehow) and other information between adjacent polygons. I was planing on doing this using the dot-product between the collision-to-adjacent-polygons-far-edge vector and the collision-to-adjacent-polygons-near-edge vector as a bias for bluring. Is this how smoothing polygon-meshes is normally done? It seems like there'd be a better solution. What do you people think?

    Source: https://algorithms.livejournal.com/99145.html

  2. j

    Date: 04/01/08     Keywords: no keywords




    So this is kinda a simple technique that I think is pretty cool. For ever vertex find the vectors to it's neighbors and subtract the distance that should be between them, multiply by some small constant. Sum all them up and add it to the vertex. Rinse and repeat. I've stored it as an animated gif, it's about 3Mbytes so give it a second to download. I have two vertices that are going crazy with randomness. I think it looks creepy myself.

    Source: http://community.livejournal.com/algorithms/98899.html

  3. j

    Date: 04/01/08     Keywords: no keywords




    So this is kinda a simple technique that I think is pretty cool. For ever vertex find the vectors to it's neighbors and subtract the distance that should be between them, multiply by some small constant. Sum all them up and add it to the vertex. Rinse and repeat. I've stored it as an animated gif, it's about 3Mbytes so give it a second to download. I have two vertices that are going crazy with randomness. I think it looks creepy myself.

    Source: http://algorithms.livejournal.com/98899.html

  4. j

    Date: 04/01/08     Keywords: no keywords




    So this is kinda a simple technique that I think is pretty cool. For ever vertex find the vectors to it's neighbors and subtract the distance that should be between them, multiply by some small constant. Sum all them up and add it to the vertex. Rinse and repeat. I've stored it as an animated gif, it's about 3Mbytes so give it a second to download. I have two vertices that are going crazy with randomness. I think it looks creepy myself.

    Source: https://algorithms.livejournal.com/98899.html

  5. Debugged

    Date: 03/30/08     Keywords: programming

    Edit: Error was located and corrected. I love how programming can turn programmers temporarily blind :) I'll leave it here in the hope that perhaps others with the same problem can find it and think "OOOOooooOooh" before publically admitting to a community that they can't keep track of their pointers. :)

    Thank you all for your help to my previous post! I've started to pick up C syntax really quickly since, and I've been integrating my two programs; the one with the functions to push, pop and create arrays, with the program '[info]'lightning_rose suggested that I should write. So far my array seems to work and I'm sure that my push function is working, but when I ask it to print the contents of the stack, it prints 0. My aim isn't to iterate down the entire array, but to print that they've been pushed once they've been pushed.

    Here is the buggy bit - where I expect the error is:


    /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); }




    /* * **** HISTORY ***** * * Filename: test.c * Synopsis: test * * This is a simple program that will take input from the keyboard and then * print each line of input to screen. * Version 0.1 - Program simply returned a string of characters that had been * entered using printf. * version 0.2 - program differentiated between a string of characters and an * integer. * version 0.3 - Fixed a bug in the code that caused a 0 integer to be printed * after characters. Originally believed it to be a null byte, later discovered * that it was, in fact, a flaw in my if statements since I hadn't used else. * the use of else and else if in the testing area of the program are important * so that characters aren't printed as characters then passed down to be converted * into integers. * version 0.4 - program began to differentiate between characters, an operand * and the specific operators +, -, /, x and =. I was able to tell that the * differentiation had been made by asking the program to print out which each * was, for example: If I had entered: test 1 a + the program would output: * Integer: 1, Character: a, Symbol +. * version 0.5 - Array was defined from code that had been written in p3.c which was * written at an earlier date. This is where p3.c and test.c began to merge as * the final solution to p3.c with p3.c merging into test.c. */ #include #include /* * define is used to make modification of each easier. It is also good for readability. * Characters A - D will be assigned values that the user wishes to store so that they * can later be used by, for example, 2 A +. */ #define stack empty #define MemoryA A #define MemoryB B #define MemoryC C #define MemoryD D /* * I need to define my array that will be used in a similar way to how I understand a * stack. The type of array that I will use is a fixed-length array so that the program * size will have a limit of 20 elements. * See Page 112 - C In a Nutshell */ int top = 0; /*Pointer to keep track of where the top of the stack/array is*/ //int maxstack = 20; /*Allocates the maximum value of the stack-array */ int stack[50]; /*sets the array stack equal of the maximum value of the stack*/ void push(int x); /* * The push function will push a new entry onto the stack at the stack pointer "top". * Once the entry (passed in as x) has been assigned as an element to the stack the * "stack pointer" top will then increment by one so that it is pointing to the next * free space. */ void push(int x) { stack[top] = x; top ++; } int main (int argc, char *argv[]) { int i; int j = 0; for (i = 1; i < argc; i++) { for(j=0; j < strlen(argv[i]); j++) { /*This is a test to see if a the input is a * alphabetical number. If it is, then the * program will then check to see if it is * specifically A, B, C or D. */ if (isalpha(argv[i][j])) { printf("Character: %s\n", argv[i]); } /* These tests will test to see if input is an operand*/ else if (strcmp(argv[i], "+") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "-") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "/") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "x") == 0){ printf("Symbols: %s\n", argv[i]); } /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); } } } }

    Source: http://community.livejournal.com/algorithms/98764.html

  6. Debugged

    Date: 03/30/08     Keywords: programming

    Edit: Error was located and corrected. I love how programming can turn programmers temporarily blind :) I'll leave it here in the hope that perhaps others with the same problem can find it and think "OOOOooooOooh" before publically admitting to a community that they can't keep track of their pointers. :)

    Thank you all for your help to my previous post! I've started to pick up C syntax really quickly since, and I've been integrating my two programs; the one with the functions to push, pop and create arrays, with the program lightning_rose suggested that I should write. So far my array seems to work and I'm sure that my push function is working, but when I ask it to print the contents of the stack, it prints 0. My aim isn't to iterate down the entire array, but to print that they've been pushed once they've been pushed.

    Here is the buggy bit - where I expect the error is:


    /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); }




    /* * **** HISTORY ***** * * Filename: test.c * Synopsis: test * * This is a simple program that will take input from the keyboard and then * print each line of input to screen. * Version 0.1 - Program simply returned a string of characters that had been * entered using printf. * version 0.2 - program differentiated between a string of characters and an * integer. * version 0.3 - Fixed a bug in the code that caused a 0 integer to be printed * after characters. Originally believed it to be a null byte, later discovered * that it was, in fact, a flaw in my if statements since I hadn't used else. * the use of else and else if in the testing area of the program are important * so that characters aren't printed as characters then passed down to be converted * into integers. * version 0.4 - program began to differentiate between characters, an operand * and the specific operators +, -, /, x and =. I was able to tell that the * differentiation had been made by asking the program to print out which each * was, for example: If I had entered: test 1 a + the program would output: * Integer: 1, Character: a, Symbol +. * version 0.5 - Array was defined from code that had been written in p3.c which was * written at an earlier date. This is where p3.c and test.c began to merge as * the final solution to p3.c with p3.c merging into test.c. */ #include #include /* * define is used to make modification of each easier. It is also good for readability. * Characters A - D will be assigned values that the user wishes to store so that they * can later be used by, for example, 2 A +. */ #define stack empty #define MemoryA A #define MemoryB B #define MemoryC C #define MemoryD D /* * I need to define my array that will be used in a similar way to how I understand a * stack. The type of array that I will use is a fixed-length array so that the program * size will have a limit of 20 elements. * See Page 112 - C In a Nutshell */ int top = 0; /*Pointer to keep track of where the top of the stack/array is*/ //int maxstack = 20; /*Allocates the maximum value of the stack-array */ int stack[50]; /*sets the array stack equal of the maximum value of the stack*/ void push(int x); /* * The push function will push a new entry onto the stack at the stack pointer "top". * Once the entry (passed in as x) has been assigned as an element to the stack the * "stack pointer" top will then increment by one so that it is pointing to the next * free space. */ void push(int x) { stack[top] = x; top ++; } int main (int argc, char *argv[]) { int i; int j = 0; for (i = 1; i < argc; i++) { for(j=0; j < strlen(argv[i]); j++) { /*This is a test to see if a the input is a * alphabetical number. If it is, then the * program will then check to see if it is * specifically A, B, C or D. */ if (isalpha(argv[i][j])) { printf("Character: %s\n", argv[i]); } /* These tests will test to see if input is an operand*/ else if (strcmp(argv[i], "+") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "-") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "/") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "x") == 0){ printf("Symbols: %s\n", argv[i]); } /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); } } } }

    Source: http://algorithms.livejournal.com/98764.html

  7. Debugged

    Date: 03/30/08     Keywords: programming

    Edit: Error was located and corrected. I love how programming can turn programmers temporarily blind :) I'll leave it here in the hope that perhaps others with the same problem can find it and think "OOOOooooOooh" before publically admitting to a community that they can't keep track of their pointers. :)

    Thank you all for your help to my previous post! I've started to pick up C syntax really quickly since, and I've been integrating my two programs; the one with the functions to push, pop and create arrays, with the program lightning_rose suggested that I should write. So far my array seems to work and I'm sure that my push function is working, but when I ask it to print the contents of the stack, it prints 0. My aim isn't to iterate down the entire array, but to print that they've been pushed once they've been pushed.

    Here is the buggy bit - where I expect the error is:


    /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); }




    /* * **** HISTORY ***** * * Filename: test.c * Synopsis: test * * This is a simple program that will take input from the keyboard and then * print each line of input to screen. * Version 0.1 - Program simply returned a string of characters that had been * entered using printf. * version 0.2 - program differentiated between a string of characters and an * integer. * version 0.3 - Fixed a bug in the code that caused a 0 integer to be printed * after characters. Originally believed it to be a null byte, later discovered * that it was, in fact, a flaw in my if statements since I hadn't used else. * the use of else and else if in the testing area of the program are important * so that characters aren't printed as characters then passed down to be converted * into integers. * version 0.4 - program began to differentiate between characters, an operand * and the specific operators +, -, /, x and =. I was able to tell that the * differentiation had been made by asking the program to print out which each * was, for example: If I had entered: test 1 a + the program would output: * Integer: 1, Character: a, Symbol +. * version 0.5 - Array was defined from code that had been written in p3.c which was * written at an earlier date. This is where p3.c and test.c began to merge as * the final solution to p3.c with p3.c merging into test.c. */ #include #include /* * define is used to make modification of each easier. It is also good for readability. * Characters A - D will be assigned values that the user wishes to store so that they * can later be used by, for example, 2 A +. */ #define stack empty #define MemoryA A #define MemoryB B #define MemoryC C #define MemoryD D /* * I need to define my array that will be used in a similar way to how I understand a * stack. The type of array that I will use is a fixed-length array so that the program * size will have a limit of 20 elements. * See Page 112 - C In a Nutshell */ int top = 0; /*Pointer to keep track of where the top of the stack/array is*/ //int maxstack = 20; /*Allocates the maximum value of the stack-array */ int stack[50]; /*sets the array stack equal of the maximum value of the stack*/ void push(int x); /* * The push function will push a new entry onto the stack at the stack pointer "top". * Once the entry (passed in as x) has been assigned as an element to the stack the * "stack pointer" top will then increment by one so that it is pointing to the next * free space. */ void push(int x) { stack[top] = x; top ++; } int main (int argc, char *argv[]) { int i; int j = 0; for (i = 1; i < argc; i++) { for(j=0; j < strlen(argv[i]); j++) { /*This is a test to see if a the input is a * alphabetical number. If it is, then the * program will then check to see if it is * specifically A, B, C or D. */ if (isalpha(argv[i][j])) { printf("Character: %s\n", argv[i]); } /* These tests will test to see if input is an operand*/ else if (strcmp(argv[i], "+") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "-") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "/") == 0) { printf("Symbols: %s\n", argv[i]); } else if (strcmp(argv[i], "x") == 0){ printf("Symbols: %s\n", argv[i]); } /* else, it will be an integer.*/ else { int temp = atoi(argv[i]); push (temp); //int i = 0; printf("Stack: %d", stack[top]); //printf("Integer: %d\n",atoi(argv[i])); } } } }

    Source: https://algorithms.livejournal.com/98764.html

  8. C

    Date: 03/28/08     Keywords: programming, html, java

    I'm finding C difficult to understand. I'm working using two books: C in a Nutshell and I'm referencing with Comprehensive C (which is old but it was free.) The problem I'm trying to solve is to create a Reverse Polish Notation calculator. I'm using an array as a stack and the basic principle is:
    for input (from command prompt) 2 1 +
    Push 2 on the stack. Push 1 onto the stack. Meet operator, pop two and then push answer onto the stack.

    But I'm having problems with my main method, particularly with the C syntax. This is my main method so far:

    /*
     * I need a way for the program to read input separated by space, where a space will
     * indicate the end of a value. For example: 23 3 is the input twenty three and three,
     * not: two, three, three.
     *
     * When an integer operand is encountered, it will be pushed onto the stack. An operator
     * will cause two items of the stack of be popped then a push of the answer.
        argc = SIZE OF THE ARRAY
        argv = Array of strings that represents the command line entered.
     */

    int main (int argc, char *argv)

    {
        int i;
        for (i = 1; i < argc; i++)
        {
            if (x argv = int)
            {
                push(int x)       

                    //http://www.cppreference.com/stdstring/isdigit.html
                    //http://www.cppreference.com/stdstring/atoi.html
        }
    }

    The hyperlinks are a link to two methods from the library that I need to use: isdigit() and atoi(). Because the input is being entered from the command prompt it's my understanding that a character and an integer cannot be differentiated simply by their bit pattern. What I need to do with the input is take the "string", convert it to an integer and then check to see if it is an integer or not.

    Now, in Java I'd do something like x.isdigit().atoi() but... gah! There's a lot of true/false requirements in there and I don't think I actually fully understand exactly what I'm trying to do.

    This is what I'm planning to do, in English:

    If ( x is a character) {
        either return 0 as value
       or set next item to memory location [x]
    }
    if (x is an operator) {
       POP two from the stack
       use operator on two operands
       Push answer onto the stack again
          //error checking for condition that only one value has been pushed onto stack
    }
    //otherwise, fall through assuming that x is an integer
    convert x into an integer using atoi()
    Push (x)

    TADA!

    I'm planning on using if for error checking and converting everything else to case statements instead. I'm use to programming in java, though, so I'm scared that I'm java-ing too much :/

    Advice? Kicks? Clarifications?

    Source: http://community.livejournal.com/algorithms/98390.html

  9. C

    Date: 03/28/08     Keywords: programming, html, java

    I'm finding C difficult to understand. I'm working using two books: C in a Nutshell and I'm referencing with Comprehensive C (which is old but it was free.) The problem I'm trying to solve is to create a Reverse Polish Notation calculator. I'm using an array as a stack and the basic principle is:
    for input (from command prompt) 2 1 +
    Push 2 on the stack. Push 1 onto the stack. Meet operator, pop two and then push answer onto the stack.

    But I'm having problems with my main method, particularly with the C syntax. This is my main method so far:

    /*
     * I need a way for the program to read input separated by space, where a space will
     * indicate the end of a value. For example: 23 3 is the input twenty three and three,
     * not: two, three, three.
     *
     * When an integer operand is encountered, it will be pushed onto the stack. An operator
     * will cause two items of the stack of be popped then a push of the answer.
        argc = SIZE OF THE ARRAY
        argv = Array of strings that represents the command line entered.
     */

    int main (int argc, char *argv)

    {
        int i;
        for (i = 1; i < argc; i++)
        {
            if (x argv = int)
            {
                push(int x)       

                    //http://www.cppreference.com/stdstring/isdigit.html
                    //http://www.cppreference.com/stdstring/atoi.html
        }
    }

    The hyperlinks are a link to two methods from the library that I need to use: isdigit() and atoi(). Because the input is being entered from the command prompt it's my understanding that a character and an integer cannot be differentiated simply by their bit pattern. What I need to do with the input is take the "string", convert it to an integer and then check to see if it is an integer or not.

    Now, in Java I'd do something like x.isdigit().atoi() but... gah! There's a lot of true/false requirements in there and I don't think I actually fully understand exactly what I'm trying to do.

    This is what I'm planning to do, in English:

    If ( x is a character) {
        either return 0 as value
       or set next item to memory location [x]
    }
    if (x is an operator) {
       POP two from the stack
       use operator on two operands
       Push answer onto the stack again
          //error checking for condition that only one value has been pushed onto stack
    }
    //otherwise, fall through assuming that x is an integer
    convert x into an integer using atoi()
    Push (x)

    TADA!

    I'm planning on using if for error checking and converting everything else to case statements instead. I'm use to programming in java, though, so I'm scared that I'm java-ing too much :/

    Advice? Kicks? Clarifications?

    Source: http://algorithms.livejournal.com/98390.html

  10. C

    Date: 03/28/08     Keywords: programming, html, java

    I'm finding C difficult to understand. I'm working using two books: C in a Nutshell and I'm referencing with Comprehensive C (which is old but it was free.) The problem I'm trying to solve is to create a Reverse Polish Notation calculator. I'm using an array as a stack and the basic principle is:
    for input (from command prompt) 2 1 +
    Push 2 on the stack. Push 1 onto the stack. Meet operator, pop two and then push answer onto the stack.

    But I'm having problems with my main method, particularly with the C syntax. This is my main method so far:

    /*
     * I need a way for the program to read input separated by space, where a space will
     * indicate the end of a value. For example: 23 3 is the input twenty three and three,
     * not: two, three, three.
     *
     * When an integer operand is encountered, it will be pushed onto the stack. An operator
     * will cause two items of the stack of be popped then a push of the answer.
        argc = SIZE OF THE ARRAY
        argv = Array of strings that represents the command line entered.
     */

    int main (int argc, char *argv)

    {
        int i;
        for (i = 1; i < argc; i++)
        {
            if (x argv = int)
            {
                push(int x)       

                    //http://www.cppreference.com/stdstring/isdigit.html
                    //http://www.cppreference.com/stdstring/atoi.html
        }
    }

    The hyperlinks are a link to two methods from the library that I need to use: isdigit() and atoi(). Because the input is being entered from the command prompt it's my understanding that a character and an integer cannot be differentiated simply by their bit pattern. What I need to do with the input is take the "string", convert it to an integer and then check to see if it is an integer or not.

    Now, in Java I'd do something like x.isdigit().atoi() but... gah! There's a lot of true/false requirements in there and I don't think I actually fully understand exactly what I'm trying to do.

    This is what I'm planning to do, in English:

    If ( x is a character) {
        either return 0 as value
       or set next item to memory location [x]
    }
    if (x is an operator) {
       POP two from the stack
       use operator on two operands
       Push answer onto the stack again
          //error checking for condition that only one value has been pushed onto stack
    }
    //otherwise, fall through assuming that x is an integer
    convert x into an integer using atoi()
    Push (x)

    TADA!

    I'm planning on using if for error checking and converting everything else to case statements instead. I'm use to programming in java, though, so I'm scared that I'm java-ing too much :/

    Advice? Kicks? Clarifications?

    Source: https://algorithms.livejournal.com/98390.html

  11. DON'T CLICK ON THE LINK

    Date: 03/27/08     Keywords: virus, web

    The link in the previous post is a Trojan website that will attempt to install a virus on your computer.

    I repeat, DON'T CLICK ON THE LINK

    Source: http://community.livejournal.com/algorithms/98147.html

  12. DON'T CLICK ON THE LINK

    Date: 03/27/08     Keywords: virus, web

    The link in the previous post is a Trojan website that will attempt to install a virus on your computer.

    I repeat, DON'T CLICK ON THE LINK

    Source: http://algorithms.livejournal.com/98147.html

  13. DON'T CLICK ON THE LINK

    Date: 03/27/08     Keywords: virus, web

    The link in the previous post is a Trojan website that will attempt to install a virus on your computer.

    I repeat, DON'T CLICK ON THE LINK

    Source: https://algorithms.livejournal.com/98147.html

  14. C

    Date: 02/01/08     Keywords: programming, java

    Can anyone recommend a good beginners book on C?

    In a few weeks time I will be using C for low level programming to solve problems. (Low level programming being the class.) C will be my second language, I already understand the basics of java objects and ADT's so preferably a book that defines clearly why C isn't object oriented...

    Source: http://community.livejournal.com/algorithms/97535.html

  15. C

    Date: 02/01/08     Keywords: programming, java

    Can anyone recommend a good beginners book on C?

    In a few weeks time I will be using C for low level programming to solve problems. (Low level programming being the class.) C will be my second language, I already understand the basics of java objects and ADT's so preferably a book that defines clearly why C isn't object oriented... 

    Edit: I ended up buying "C in a Nutshell" because it is the course textbook and came highly recommended. It doesn't provide enough baby-step explanations for me, though, so I'm still finding C a damned difficult language to learn. Thank you all for your suggestions, I'm planning on buying the recommended book anyway in the hope that the developers of C will be better at explaining things.

    Source: http://algorithms.livejournal.com/97535.html

  16. C

    Date: 02/01/08     Keywords: programming, java

    Can anyone recommend a good beginners book on C?

    In a few weeks time I will be using C for low level programming to solve problems. (Low level programming being the class.) C will be my second language, I already understand the basics of java objects and ADT's so preferably a book that defines clearly why C isn't object oriented... 

    Edit: I ended up buying "C in a Nutshell" because it is the course textbook and came highly recommended. It doesn't provide enough baby-step explanations for me, though, so I'm still finding C a damned difficult language to learn. Thank you all for your suggestions, I'm planning on buying the recommended book anyway in the hope that the developers of C will be better at explaining things.

    Source: https://algorithms.livejournal.com/97535.html

  17. Minimizing various automata

    Date: 01/20/08     Keywords: google

    What work does there exist on the topic of minimizing non-'conventional' finite state automata? I mean everything but the commonest FSM's usually used for simple regular languages:
    - Pushdown automata
    - Automata with actions on transitions
    - Automata with extra internal state
    - ...

    So, which variants of FSM's can be minimized?

    I googled for something like 'minimizing automata' and found work on minimizing fuzzy automata (not that interesting for me), pushdown (http://www.labri.fr/perso/igw/Papers/igw-min-vis.pdf) and automata over infinite inputs. Also something named 'history dependent automata' (http://cometa.dimi.uniud.it/meetings/gioconople/pistore.pdf)

    What else does there exist?

    Source: http://community.livejournal.com/algorithms/96934.html

  18. New Computer Security Conference

    Date: 12/31/07     Keywords: software, technology, asp, security



    We are excited to announce SOURCE Boston, a new computer security conference taking place in Boston, Massachusetts on March 12-14, 2008. SOURCE combines business, technology, and software development, and provides security experts an opportunity to share ideas, insights and opportunities.

    SOURCE Boston will include the following:

    * An intimate setting provides opportunities for networking, focused conversations, opportunities to converse with speakers and industry thought leaders
    * Top keynote speakers, including Steven Levy, Dan Geer, and Richard Clarke.
    * Special VIP evening reception
    * First con to combine the edginess and creativity of hacking with the professionalism of the business environment.
    * First computer security conference to have a track devoted to application security
    * Combines industry and professional sessions with edgy fun approaches
    * First L0pht reunion in ten years
    * Business track will include talks from chief executives and other key members of the management community
    * SOURCE Boston is organized by key industry thought leaders, including former founders of @stake, professionally published security research experts, and former NSA employees
    * SOURCE Boston takes place the week before St Patrick’s Day – one of the most exciting times to be in Boston. Additionally, the Hyatt rate will be extended into the weekend so attendees can experience Boston’s St. Patrick’s Day celebrations.


    Additional speakers include:
    * Matthew Moynahan, CEO of Veracode
    * James Mobley, CEO of Neohapis and former CEO of @stake
    * Andy Jaquith, Yankee Group
    * Cedric Blancher, EADS
    * Robert Martin, MITRE
    * Senior Members and Founders oof Cult of the Dead Cow
    * Michael Rash, Author and Security Researcher

    Cost:
    $895 per person
    $195 student/volunteer rate

    We are also looking for volunteers to assist us during the con. Please email info@sourceboston.com for more information.

    HTTP://WWW.SOURCEBOSTON.COM

    Please go to http://www.regonline.com/Checkin.asp?EventId=167940 to purchase tickets.

    See you in March!

    Source: http://community.livejournal.com/algorithms/96641.html

  19. C to turing machine translation

    Date: 12/22/07     Keywords: no keywords

    Hi, im new here so first of all hi everyone!!!

    Now, i am looking for a C to turing translator, this is a program that takes a piece of code in C as an entry and outputs the representation of a turing machine that does the same. This is theoretically possible but i haven't found any real world implementations, does anybody know of such a thing?

    Thx :-)

    Source: http://community.livejournal.com/algorithms/96208.html

  20. The Labyrinth, and the Monster

    Date: 11/14/07     Keywords: asp

    Hello.

    Computation is the process of state transition. An algorithm is a permutation of those states in such a way as to produce a correct output. 'Correct' means that what was put in agrees with what came out, and everyone's perceptions of those things.

    "The fundamental problem of communication is that of reproducing at one point, either exactly or approximately, a message selected at another point." [Claude Shannon, "A Mathematical Theory of Communication"]

    The algorithm is communication. That idea has always meant something to me.



    So there's no use wasting words. I have an algorithm.

    A while back, I had to solve the common maze-running problem for a course. The instructor gave the usual depth-first and breadth-first search algorithms, but instead of implementing one of those, I spent an extra week or so developing my own algorithm, based on what is, as far as I know, an entirely novel idea.

    We have these assumptions:

    1. It is appropriate to represent the maze as a two-dimensional grid;

    2. Every place on the grid is either blocked (is a wall) or open (is a path);

    3. Both the starting and the ending point are known;



    Suppose you were actually lost in a maze, and that someone else was in there with you. If you were looking for one another, you might call out to them, "Hey, where are you?" and follow the sound of their voice when they answered. The trouble is that there might be a wall in the direction you wanted to go. The most intuitive thing would be to keep moving, tending in the direction of the sound whenever possible, and simply following the wall when you had to.

    The basic idea motivating the approach is that knowing the ending point is a very large advantage; it gives some vague notion of what direction to go in. The complicating factor is that the direction of the actual solution path (if there is one) may not agree with the direction of the end to the start "as the crow flies." The challenge, then, becomes one of striking a consensus between the intuitive sense of direction and the actual constraints of the solution path.

    Consider: if there is a path between the start and the end of the maze, then, if we iteratively build two lists of every (respective) open space adjacent to the start and (respectively) the end, eventually the two lists will have a common element. This element, represented as an ordered pair of coordinates, lies on the solution path.

    Below is a semi-formal, if flawed, pseudo-code implementation from my original program. It should be noted that the original involves a number of redundant operations and, as formulated, is not very efficient. (This is largely because I spent so much time coming up with a correct version of the algorithm that I had to rush the implementation to make the deadline.) Nonetheless, it should cover all the details:

    STEP 1: Input maze grid; set UP = {(START_ROW, START_COL)}, DOWN = {(END_ROW, END, COL)}, and ALL = {all open spaces in grid};
    
    STEP 2: while(UP intersection DOWN is empty AND new elements were added to UP or DOWN on the last iteration)
            repeat STEP 3 through STEP 5;
    
    STEP 3:     DOWN = {all elements located by PingDwn( )} union DOWN;
                DOWN = DOWN union {all elements of ALL adjacent to an element of DOWN};
    
    STEP 4:     UP = {all elements located by PingUp( )} union UP;
                UP = UP union {all elements of ALL adjacent to an element of UP};
    
    STEP 5:     ALL = ALL complement (UP union DOWN);
    
    STEP 6: if(the loop exited with no new elements added either to UP or DOWN)
              output NO SOLUTION;
              EXIT;
            else
              go to STEP 7;
    
    STEP 7: PATH = {(START_ROW, START_COL), (END_ROW, END_COL)} union (UP intersection DOWN);
    STEP 8: while(an element not in PATH could be pinged between any pair of points in PATH)
            repeat STEP 9;
    STEP 9: for(each pair of elements p1, p2 in PATH)
                repeat STEP 3 through STEP 5, subsituting p1 for START and p2 for END;
    
    STEP 10: output maze, description of the solution;
             EXIT;
    
    It also serves to more completely describe the "ping" operation; we do so for PingDwn only; the operation for PingUp
    is distinct only in that the directions are reversed, and '-' is substituted for '+'.
    
    STEP 1: Input START := (START_ROW, START_COL);
            DOWN = {START};
    
    STEP 2: while(elements could be added to DOWN)
            repeat STEP 3;
    STEP 3: for(each element (i, j) in DOWN)
                if((i + 1, j) is CLEAR)
                  add to DOWN;
                if((i, j + 1) is CLEAR)
                  add to DOWN;
    STEP 4: return the list DOWN;
    


    (excerpted from the original documentation

    Essentially, the start and the end work together and "meet half-way" to find a solution. Originally, I thought of two waves (as in a sound wave) emitted by both the start and the end and propagating through the maze (in this case as a diagonal in the grid) until they met; the point at which they met would then serve to locate a point on the solution path.

    Another interesting aspect of this approach is that the path is built (and correctly), but NOT in order. One failing of the above implementation is that it would be more natural (but again, I was sloppy due to time constraints) to recurse, as:

    solve(start, end, PathList){
    	if(start == end){
    		return NULL;	
    	}
    
    	else{
    		mid = ping(start, end);  /*meet half-way*/
    		if(NULL == mid){
    			NO SOLUTION;    /*if no common point, no solution*/
    			goto END;
    		}
    
    		insert(mid, PathList); /*else add mid-way to solution*/
    
    		solve(start, mid, PathList);
    		solve(mid, end, PathList);
    	}
    }
    




    The beauty of this approach is that it forgets the search; every point in the space cooperates to come together. In the old myth, Theseus found his way out of the Labyrinth not on his own, but with the help of Ariadne, on the outside. The cleverness of the labyrthin's engineer couldn't defeat the accord of two people. That's communication.

    Source: http://community.livejournal.com/algorithms/94758.html

Previous page  ||  Next page


antivirus | apache | asp | blogging | browser | bugtracking | cms | crm | css | database | ebay | ecommerce | google | hosting | html | java | jsp | linux | microsoft | mysql | offshore | offshoring | oscommerce | php | postgresql | programming | rss | security | seo | shopping | software | spam | spyware | sql | technology | templates | tracker | virus | web | xml | yahoo | home