Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. An idea I just had to get out there before it dies

An idea I just had to get out there before it dies

Scheduled Pinned Locked Moved The Lounge
sysadmincomalgorithmssecurityregex
49 Posts 21 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

    Real programmers use butterflies

    F L W R D 18 Replies Last reply
    0
    • H honey the codewitch

      Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

      Real programmers use butterflies

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      Who's the "user"? Most can't formulate a SQL query. You'll wind up with "libraries" (somewhere) in any event.

      It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

      H 1 Reply Last reply
      0
      • H honey the codewitch

        Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

        Real programmers use butterflies

        F Offline
        F Offline
        Forogar
        wrote on last edited by
        #3

        Quote:

        There are two problems with this - complexity security and security.

        FTFY

        - I would love to change the world, but they won’t give me the source code.

        H C 2 Replies Last reply
        0
        • L Lost User

          Who's the "user"? Most can't formulate a SQL query. You'll wind up with "libraries" (somewhere) in any event.

          It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

          H Offline
          H Offline
          honey the codewitch
          wrote on last edited by
          #4

          The client software would deal with the complexity. Most of the dev end would be on the client code, since the service itself can be extended. I wouldn't expect a user to ever touch the bytecode

          Real programmers use butterflies

          1 Reply Last reply
          0
          • H honey the codewitch

            Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

            Real programmers use butterflies

            W Offline
            W Offline
            W Balboos GHB
            wrote on last edited by
            #5

            Your idea gave me an idea! I can use the lounge for a reminder board and ToDo list. Absolutely awesome! Thanks !

            Ravings en masse^

            "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

            "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

            H 1 Reply Last reply
            0
            • F Forogar

              Quote:

              There are two problems with this - complexity security and security.

              FTFY

              - I would love to change the world, but they won’t give me the source code.

              H Offline
              H Offline
              honey the codewitch
              wrote on last edited by
              #6

              With the VM you can give it access only to certain things. My memory is a managed byte array with clear bounds, my set of instructions are limited to the low level operations the server is capable of, so say you did this with a machine with like 4 tesla cards (or whatever they're calling them today), and the clients could offload rendering operations (not necessarily realtime, but quick) then your client wants to be able to say, motion blur something. You could write the transform for that in the bytecode. What instructions the VM takes depends on what the service does. But I don't think custom graphics filters for example, would pose much security risk. If all your instructions deal in math or pixels and polygons.

              Real programmers use butterflies

              OriginalGriffO 1 Reply Last reply
              0
              • W W Balboos GHB

                Your idea gave me an idea! I can use the lounge for a reminder board and ToDo list. Absolutely awesome! Thanks !

                Ravings en masse^

                "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                H Offline
                H Offline
                honey the codewitch
                wrote on last edited by
                #7

                It wasn't really a todo. It was intended to start a discussion about an idea. It has. I'm sorry if you feel my message shouldn't have been posted.

                Real programmers use butterflies

                W 1 Reply Last reply
                0
                • H honey the codewitch

                  It wasn't really a todo. It was intended to start a discussion about an idea. It has. I'm sorry if you feel my message shouldn't have been posted.

                  Real programmers use butterflies

                  W Offline
                  W Offline
                  W Balboos GHB
                  wrote on last edited by
                  #8

                  You have to lighten up in your interpretation, often ending up as self criticism. I was just making a funny - I usually forget to click any of the radio buttons for a post. It's the lounge.   Relax.   Take off your shoes. Burp   Phart   Make yourself comfortable. You're among friends, here.

                  Ravings en masse^

                  "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                  "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                  H OriginalGriffO 2 Replies Last reply
                  0
                  • W W Balboos GHB

                    You have to lighten up in your interpretation, often ending up as self criticism. I was just making a funny - I usually forget to click any of the radio buttons for a post. It's the lounge.   Relax.   Take off your shoes. Burp   Phart   Make yourself comfortable. You're among friends, here.

                    Ravings en masse^

                    "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                    "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                    H Offline
                    H Offline
                    honey the codewitch
                    wrote on last edited by
                    #9

                    sorry, i've gotten a lot of crap about what I post from other commenters here. i guess i read your post in the wrong light.

                    Real programmers use butterflies

                    1 Reply Last reply
                    0
                    • H honey the codewitch

                      With the VM you can give it access only to certain things. My memory is a managed byte array with clear bounds, my set of instructions are limited to the low level operations the server is capable of, so say you did this with a machine with like 4 tesla cards (or whatever they're calling them today), and the clients could offload rendering operations (not necessarily realtime, but quick) then your client wants to be able to say, motion blur something. You could write the transform for that in the bytecode. What instructions the VM takes depends on what the service does. But I don't think custom graphics filters for example, would pose much security risk. If all your instructions deal in math or pixels and polygons.

                      Real programmers use butterflies

                      OriginalGriffO Offline
                      OriginalGriffO Offline
                      OriginalGriff
                      wrote on last edited by
                      #10

                      The problem there is the same as most "exploits" on Windows (and other systems, including Linux based stand alone hardware): any tiny mistake can expose stuff you didn't expect to. Just think of the number of buffer overrun exploits you heard about a few years ago. Allowing "downloaded code" to run is always a security risk, even if you are pretty sure nothing can get outside the sandbox ...

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                      H 1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        The problem there is the same as most "exploits" on Windows (and other systems, including Linux based stand alone hardware): any tiny mistake can expose stuff you didn't expect to. Just think of the number of buffer overrun exploits you heard about a few years ago. Allowing "downloaded code" to run is always a security risk, even if you are pretty sure nothing can get outside the sandbox ...

                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                        H Offline
                        H Offline
                        honey the codewitch
                        wrote on last edited by
                        #11

                        :sigh: You're not wrong This is why we can't have nice things.

                        Real programmers use butterflies

                        OriginalGriffO 1 Reply Last reply
                        0
                        • H honey the codewitch

                          Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

                          Real programmers use butterflies

                          R Offline
                          R Offline
                          Rick York
                          wrote on last edited by
                          #12

                          It seems to me you are describing a stripped down version of sending something like java code somewhere to be executed on a virtual machine. To me, this raises the question of why bother stripping it down? In other words, it seems like a bit of a twist on the HTML browser-server model.

                          "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                          H 1 Reply Last reply
                          0
                          • R Rick York

                            It seems to me you are describing a stripped down version of sending something like java code somewhere to be executed on a virtual machine. To me, this raises the question of why bother stripping it down? In other words, it seems like a bit of a twist on the HTML browser-server model.

                            "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #13

                            I guess it kind of is. After i wrote the post i thought about javascript, and extending a Javascript machine to run on the server, but i think other commenters have talked me down from the edge of this particular cliff.

                            Real programmers use butterflies

                            1 Reply Last reply
                            0
                            • H honey the codewitch

                              :sigh: You're not wrong This is why we can't have nice things.

                              Real programmers use butterflies

                              OriginalGriffO Offline
                              OriginalGriffO Offline
                              OriginalGriff
                              wrote on last edited by
                              #14

                              Thomas Huxley:

                              The great tragedy of science - the slaying of a beautiful hypothesis by an ugly fact.

                              :sigh:

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                              H 1 Reply Last reply
                              0
                              • OriginalGriffO OriginalGriff

                                Thomas Huxley:

                                The great tragedy of science - the slaying of a beautiful hypothesis by an ugly fact.

                                :sigh:

                                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                H Offline
                                H Offline
                                honey the codewitch
                                wrote on last edited by
                                #15

                                Facts schmacts. Believe what is beautiful, but check your work. :-D

                                Real programmers use butterflies

                                1 Reply Last reply
                                0
                                • W W Balboos GHB

                                  You have to lighten up in your interpretation, often ending up as self criticism. I was just making a funny - I usually forget to click any of the radio buttons for a post. It's the lounge.   Relax.   Take off your shoes. Burp   Phart   Make yourself comfortable. You're among friends, here.

                                  Ravings en masse^

                                  "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                  "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                  OriginalGriffO Offline
                                  OriginalGriffO Offline
                                  OriginalGriff
                                  wrote on last edited by
                                  #16

                                  Oi! No pharting in the lounge please. That's what elevators are for.

                                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                  "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                  W 1 Reply Last reply
                                  0
                                  • OriginalGriffO OriginalGriff

                                    Oi! No pharting in the lounge please. That's what elevators are for.

                                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                    W Offline
                                    W Offline
                                    W Balboos GHB
                                    wrote on last edited by
                                    #17

                                    Yeah. I know. But how else can we tell you we like you so expressively?

                                    Ravings en masse^

                                    "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                    "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                    OriginalGriffO 1 Reply Last reply
                                    0
                                    • H honey the codewitch

                                      Message passing allows you to send something to another thread or perhaps process or machine(s), to be processed on the remote end. Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network? Doing that would allow your service to be extensible by its clients. As the clients upgrade their capabilities the server follows suit, sometimes without changing it at all. There are two problems with this - complexity and security. There is a solution to both - something like a Pike VM like this Regex as a Tiny "Threaded" Virtual Machine[^] Except with more than 7 or so instructions. It could be built up to be mini VM that understands say 20 different bytecode instructions. If you find that's eating up bandwidth add more instructions that do more complicated things, making them "chunkier", until the VM is mature. Once it gets there you can do like I said with the extensible service. This is either the dumbest idea I've had in the past two weeks to the best. I'm still not sure. Maybe coffee will clear it up. :-D

                                      Real programmers use butterflies

                                      D Offline
                                      D Offline
                                      dandy72
                                      wrote on last edited by
                                      #18

                                      honey the codewitch wrote:

                                      Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network?

                                      The first thought that crossed my mind when I read this was "ActiveX". I'll leave it at that.

                                      OriginalGriffO H 2 Replies Last reply
                                      0
                                      • D dandy72

                                        honey the codewitch wrote:

                                        Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network?

                                        The first thought that crossed my mind when I read this was "ActiveX". I'll leave it at that.

                                        OriginalGriffO Offline
                                        OriginalGriffO Offline
                                        OriginalGriff
                                        wrote on last edited by
                                        #19

                                        :shudder:

                                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                                        "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                                        D 1 Reply Last reply
                                        0
                                        • D dandy72

                                          honey the codewitch wrote:

                                          Usually, you have a fixed number of "messages" that the other side understands, but what if you could send *code* in the stream, even across process or network?

                                          The first thought that crossed my mind when I read this was "ActiveX". I'll leave it at that.

                                          H Offline
                                          H Offline
                                          honey the codewitch
                                          wrote on last edited by
                                          #20

                                          :laugh: To be fair they didn't use a VM but i hear you.

                                          Real programmers use butterflies

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups