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. Why do I listen to my sleep coding self?

Why do I listen to my sleep coding self?

Scheduled Pinned Locked Moved The Lounge
csharpdesignquestion
41 Posts 20 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.
  • OriginalGriffO Online
    OriginalGriffO Online
    OriginalGriff
    wrote on last edited by
    #1

    In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

    Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

    "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

    Kornfeld Eliyahu PeterK L A K Mike HankeyM 12 Replies Last reply
    0
    • OriginalGriffO OriginalGriff

      In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

      Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu Peter
      wrote on last edited by
      #2

      If you started to dream of coding you have only two options - doctor or vacation...

      I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)

      "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

      K 1 Reply Last reply
      0
      • OriginalGriffO OriginalGriff

        In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

        Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

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

        More times than I care to recall.

        1 Reply Last reply
        0
        • OriginalGriffO OriginalGriff

          In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

          Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

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

          OriginalGriff wrote:

          you can't have abstract static methods in C# this universe

          B P 2 Replies Last reply
          0
          • OriginalGriffO OriginalGriff

            In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

            Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

            A Offline
            A Offline
            AnnPandora
            wrote on last edited by
            #5

            Never happened to me (YET), however, what has happened and more frequently that what I would like is to spend an entire day trying to fix something to no success but the minute I step outside, I know the answer :doh:

            OriginalGriffO 1 Reply Last reply
            0
            • L Lost User

              OriginalGriff wrote:

              you can't have abstract static methods in C# this universe

              B Offline
              B Offline
              BobJanova
              wrote on last edited by
              #6

              It's actually a reasonable concept if you allow static inheritance (i.e. static virtual in C# speak), and that's a really useful concept that is missing in C#. How many times have you had to create an instanced service class, even though it has no state (so should be static), because you can't have static members in an interface or virtual static members in a base class?

              L P 2 Replies Last reply
              0
              • A AnnPandora

                Never happened to me (YET), however, what has happened and more frequently that what I would like is to spend an entire day trying to fix something to no success but the minute I step outside, I know the answer :doh:

                OriginalGriffO Online
                OriginalGriffO Online
                OriginalGriff
                wrote on last edited by
                #7

                That's actually part of why I spend time here: it breaks my concentration on a problem and lets me think about other things. That means I don't get "fixated" on "this must be why" and my subconscious is free to "bing" me and say "Try this, not that". Improves my creativity no end, just not concentrating on a problem! :laugh:

                Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                "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

                A M 2 Replies Last reply
                0
                • OriginalGriffO OriginalGriff

                  That's actually part of why I spend time here: it breaks my concentration on a problem and lets me think about other things. That means I don't get "fixated" on "this must be why" and my subconscious is free to "bing" me and say "Try this, not that". Improves my creativity no end, just not concentrating on a problem! :laugh:

                  Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                  A Offline
                  A Offline
                  AnnPandora
                  wrote on last edited by
                  #8

                  I agree and I try to do something similiar at times, trying to find a distraction but that would still be related to work, just to "unfocus" while still focused :-D But not always seen w/ good eyes around here :sigh:

                  OriginalGriffO 1 Reply Last reply
                  0
                  • B BobJanova

                    It's actually a reasonable concept if you allow static inheritance (i.e. static virtual in C# speak), and that's a really useful concept that is missing in C#. How many times have you had to create an instanced service class, even though it has no state (so should be static), because you can't have static members in an interface or virtual static members in a base class?

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

                    0 times. I've wished that interfaces could contain static methods so that T.someFunction could exist for generics (constrained to that interface), but that's a completely separate issue. (that can't work in C# of course) How is "static virtual" even a reasonable concept? No instance = no vptr = no dynamic dispatch.

                    B P S 3 Replies Last reply
                    0
                    • A AnnPandora

                      I agree and I try to do something similiar at times, trying to find a distraction but that would still be related to work, just to "unfocus" while still focused :-D But not always seen w/ good eyes around here :sigh:

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

                      :laugh: I work for myself, so I give myself special permission to "goof off". :laugh:

                      Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                      "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

                      A 1 Reply Last reply
                      0
                      • L Lost User

                        0 times. I've wished that interfaces could contain static methods so that T.someFunction could exist for generics (constrained to that interface), but that's a completely separate issue. (that can't work in C# of course) How is "static virtual" even a reasonable concept? No instance = no vptr = no dynamic dispatch.

                        B Offline
                        B Offline
                        BobJanova
                        wrote on last edited by
                        #11

                        You're thinking too much about the C++ style implementation. There's actually no reason why you can't have vtable entries for static methods, though, even using that model – they'd just get passed nothing for the instance parameter. You just have to choose a different way of determining the type that should get dispatched, instead of using the instance's dynamic type, for example the declaration type of the method which was originally called. Delphi goes some way towards this but it doesn't really work well because it doesn't sort out the dispatch properly.

                        L 1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

                          Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                          K Offline
                          K Offline
                          Kenneth Haugland
                          wrote on last edited by
                          #12

                          Well, sorry to say this to you, but you don't get paid for work done in your sleep, and theres a good reason for that :laugh:

                          1 Reply Last reply
                          0
                          • OriginalGriffO OriginalGriff

                            That's actually part of why I spend time here: it breaks my concentration on a problem and lets me think about other things. That means I don't get "fixated" on "this must be why" and my subconscious is free to "bing" me and say "Try this, not that". Improves my creativity no end, just not concentrating on a problem! :laugh:

                            Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                            M Offline
                            M Offline
                            Marco Bertschi
                            wrote on last edited by
                            #13

                            OriginalGriff wrote:

                            That means I don't get "fixated" on "this must be why" and my subconscious is free to "bing" me and say "Try this, not that".

                            And that's how I defend smoking a pack a day :laugh:

                            The console is a black place

                            OriginalGriffO 1 Reply Last reply
                            0
                            • OriginalGriffO OriginalGriff

                              In bed last night, I dreamt a wonderful improvement to the design of some software I'm working on. It would clean it up, move the code into it's appropriate classes, make it all beautiful. So I have just coded it. Or at least, I coded 3/4 of it. That was the point when I thought "Hang on a moment, you can't have abstract static methods in C#". :doh: Bugger. Note to self: don't listen to me when I'm sleepy. Anyone else done this? Constructed a massive edifice of beautiful code in your mind, only to find when you have got sufficient caffeine in your system that it has a fatal, fundamental, flaw?

                              Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                              Mike HankeyM Offline
                              Mike HankeyM Offline
                              Mike Hankey
                              wrote on last edited by
                              #14

                              Usually the code I dream about is good but occasionally I waste time on a bomb, depends what I had been drinking the night before? :)

                              If first you don't succeed, hide all evidence you ever tried!

                              K 1 Reply Last reply
                              0
                              • B BobJanova

                                You're thinking too much about the C++ style implementation. There's actually no reason why you can't have vtable entries for static methods, though, even using that model – they'd just get passed nothing for the instance parameter. You just have to choose a different way of determining the type that should get dispatched, instead of using the instance's dynamic type, for example the declaration type of the method which was originally called. Delphi goes some way towards this but it doesn't really work well because it doesn't sort out the dispatch properly.

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

                                BobJanova wrote:

                                There's actually no reason why you can't have vtable entries for static methods

                                Ok fair enough, obviously you can put anything in there, including random bytes, but that then brings us to:

                                BobJanova wrote:

                                You just have to choose a different way of determining the type that should get dispatched, instead of using the instance's dynamic type,

                                I don't really see any options there, but that might be because I don't understand exactly what you mean by this:

                                BobJanova wrote:

                                the declaration type of the method which was originally called.

                                B 1 Reply Last reply
                                0
                                • Mike HankeyM Mike Hankey

                                  Usually the code I dream about is good but occasionally I waste time on a bomb, depends what I had been drinking the night before? :)

                                  If first you don't succeed, hide all evidence you ever tried!

                                  K Offline
                                  K Offline
                                  Kenneth Haugland
                                  wrote on last edited by
                                  #16

                                  Quote:

                                  I waste time on a bomb

                                  Perhaps this is an indication of a flatulence problem in your sleep? :laugh:

                                  Mike HankeyM 1 Reply Last reply
                                  0
                                  • M Marco Bertschi

                                    OriginalGriff wrote:

                                    That means I don't get "fixated" on "this must be why" and my subconscious is free to "bing" me and say "Try this, not that".

                                    And that's how I defend smoking a pack a day :laugh:

                                    The console is a black place

                                    OriginalGriffO Online
                                    OriginalGriffO Online
                                    OriginalGriff
                                    wrote on last edited by
                                    #17

                                    That's what I used to do - take a cigarette break every hour. When I gave up, I realized I wasn't getting as much work done, because I wasn't taking a break! :laugh: So rather than take up smoking again (and having seen the price they are charging for them these days, I can think of much, much better things to do with the money) I take a break without the cancer-stick.

                                    Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)

                                    "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

                                    1 Reply Last reply
                                    0
                                    • K Kenneth Haugland

                                      Quote:

                                      I waste time on a bomb

                                      Perhaps this is an indication of a flatulence problem in your sleep? :laugh:

                                      Mike HankeyM Offline
                                      Mike HankeyM Offline
                                      Mike Hankey
                                      wrote on last edited by
                                      #18

                                      Kenneth Haugland wrote:

                                      Perhaps this is an indication of a flatulence problem in your sleep?

                                      When I can't sleep I don't count sheep I count... :)

                                      If first you don't succeed, hide all evidence you ever tried!

                                      1 Reply Last reply
                                      0
                                      • L Lost User

                                        BobJanova wrote:

                                        There's actually no reason why you can't have vtable entries for static methods

                                        Ok fair enough, obviously you can put anything in there, including random bytes, but that then brings us to:

                                        BobJanova wrote:

                                        You just have to choose a different way of determining the type that should get dispatched, instead of using the instance's dynamic type,

                                        I don't really see any options there, but that might be because I don't understand exactly what you mean by this:

                                        BobJanova wrote:

                                        the declaration type of the method which was originally called.

                                        B Offline
                                        B Offline
                                        BobJanova
                                        wrote on last edited by
                                        #19

                                        Ok so let's have an example.

                                        public static class BaseService {
                                        public static void LoadData() {
                                        Console.WriteLine(GetDataSource());
                                        }

                                        protected virtual static string GetDataSource();
                                        }

                                        public static class FileService : BaseService {
                                        protected override static string GetDataSource() { return "file.dat"; }
                                        }

                                        public static class DatabaseService : BaseService {
                                        protected override static string GetDataSource() { return "database"; }
                                        }

                                        ... and calling code

                                        void Run() {
                                        DatabaseService.LoadData();
                                        FileService.LoadData();
                                        }

                                        This would print "database" and "file.dat", because the class used for the vtable lookups would be taken from the data type used for the call (i.e. DatabaseService.LoadData). That would be resolved at compile time and based on the static declaration type used in the call, not dynamic object type lookups as with instance dispatch. A related good idea is the ability to pass service classes around and dispatch off them:

                                        void Run(Class<BaseService> service) {
                                        service.LoadData();
                                        }

                                        ... called like Run(DatabaseService) which would bake in the type for dispatch.

                                        L 1 Reply Last reply
                                        0
                                        • B BobJanova

                                          Ok so let's have an example.

                                          public static class BaseService {
                                          public static void LoadData() {
                                          Console.WriteLine(GetDataSource());
                                          }

                                          protected virtual static string GetDataSource();
                                          }

                                          public static class FileService : BaseService {
                                          protected override static string GetDataSource() { return "file.dat"; }
                                          }

                                          public static class DatabaseService : BaseService {
                                          protected override static string GetDataSource() { return "database"; }
                                          }

                                          ... and calling code

                                          void Run() {
                                          DatabaseService.LoadData();
                                          FileService.LoadData();
                                          }

                                          This would print "database" and "file.dat", because the class used for the vtable lookups would be taken from the data type used for the call (i.e. DatabaseService.LoadData). That would be resolved at compile time and based on the static declaration type used in the call, not dynamic object type lookups as with instance dispatch. A related good idea is the ability to pass service classes around and dispatch off them:

                                          void Run(Class<BaseService> service) {
                                          service.LoadData();
                                          }

                                          ... called like Run(DatabaseService) which would bake in the type for dispatch.

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

                                          Ok, I see what you mean.

                                          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