When is a batch class instantiated when you schedule it?Scheduling batch Apexis it possible to call a single batch job from multiple schedule apex?Batch job works when run through Database.executeBatch(), but doesn't when scheduledHow reliable is execution of batch jobs?Modify batch class already in scheduleSchedule Job does not executeHelp in converting my apex class to batch jobBug? Same Batch Can Be Run From Cron & Schedule ApexSchedule a apex batch class to run every 5 minScheduled job at a specific time is running at another time as scheduled as well

When is a batch class instantiated when you schedule it?

Do I need to leave some extra space available on the disk which my database log files reside, for log backup operations to successfully occur?

When two POV characters meet

Can the druid cantrip Thorn Whip really defeat a water weird this easily?

Time dilation for a moving electronic clock

Why does Deadpool say "You're welcome, Canada," after shooting Ryan Reynolds in the end credits?

Why do Australian milk farmers need to protest supermarkets' milk price?

Are there situations where a child is permitted to refer to their parent by their first name?

How to make readers know that my work has used a hidden constraint?

Excess Zinc in garden soil

Deleting missing values from a dataset

Time travel short story where dinosaur doesn't taste like chicken

Best mythical creature to use as livestock?

Who is our nearest neighbor

Want to switch to tankless, but can I use my existing wiring?

Single word request: Harming the benefactor

Giving Plot options defined outside of the Plot expression

Is going from continuous data to categorical always wrong?

Confusion with the nameplate of an induction motor

If the Captain's screens are out, does he switch seats with the co-pilot?

Should we release the security issues we found in our product as CVE or we can just update those on weekly release notes?

Straight line with arrows and dots

Is it illegal in Germany to take sick leave if you caused your own illness with food?

Running a subshell from the middle of the current command



When is a batch class instantiated when you schedule it?


Scheduling batch Apexis it possible to call a single batch job from multiple schedule apex?Batch job works when run through Database.executeBatch(), but doesn't when scheduledHow reliable is execution of batch jobs?Modify batch class already in scheduleSchedule Job does not executeHelp in converting my apex class to batch jobBug? Same Batch Can Be Run From Cron & Schedule ApexSchedule a apex batch class to run every 5 minScheduled job at a specific time is running at another time as scheduled as well













1















QUESTION: when you instantiate a class in a scheduled apex job, is the class instantiated at the time of the schedule, or at the scheduled time of execution?



Here's my situation...
I have a custom object called Blast, which schedules a bulk SMS send. That object record includes a DateTime field that designates when the blast will happen; for this example, let's say the blast happens next Tuesday at 1:00 pm.



The blast has some unknown number of recipients -- very possibly 20-50k, which are stored as CampaignMembers. So, at the designated time, I have a batch apex class that retrieves all of the recipient info from the CampaignMember records and makes the api call.



When a user creates/updates the Blast record today and sets status to "queued", I'm creating a scheduled apex job, instantiating my batch apex class and providing the blast record, from which it pulls necessary data.



I want to build into the batch apex class a check that verifies the blast record still exists before executing the blast. But I'm not clear on whether that class is instantiated today (when the job is scheduled), or next Tuesday at 1:00pm when it has been scheduled to run.










share|improve this question


























    1















    QUESTION: when you instantiate a class in a scheduled apex job, is the class instantiated at the time of the schedule, or at the scheduled time of execution?



    Here's my situation...
    I have a custom object called Blast, which schedules a bulk SMS send. That object record includes a DateTime field that designates when the blast will happen; for this example, let's say the blast happens next Tuesday at 1:00 pm.



    The blast has some unknown number of recipients -- very possibly 20-50k, which are stored as CampaignMembers. So, at the designated time, I have a batch apex class that retrieves all of the recipient info from the CampaignMember records and makes the api call.



    When a user creates/updates the Blast record today and sets status to "queued", I'm creating a scheduled apex job, instantiating my batch apex class and providing the blast record, from which it pulls necessary data.



    I want to build into the batch apex class a check that verifies the blast record still exists before executing the blast. But I'm not clear on whether that class is instantiated today (when the job is scheduled), or next Tuesday at 1:00pm when it has been scheduled to run.










    share|improve this question
























      1












      1








      1








      QUESTION: when you instantiate a class in a scheduled apex job, is the class instantiated at the time of the schedule, or at the scheduled time of execution?



      Here's my situation...
      I have a custom object called Blast, which schedules a bulk SMS send. That object record includes a DateTime field that designates when the blast will happen; for this example, let's say the blast happens next Tuesday at 1:00 pm.



      The blast has some unknown number of recipients -- very possibly 20-50k, which are stored as CampaignMembers. So, at the designated time, I have a batch apex class that retrieves all of the recipient info from the CampaignMember records and makes the api call.



      When a user creates/updates the Blast record today and sets status to "queued", I'm creating a scheduled apex job, instantiating my batch apex class and providing the blast record, from which it pulls necessary data.



      I want to build into the batch apex class a check that verifies the blast record still exists before executing the blast. But I'm not clear on whether that class is instantiated today (when the job is scheduled), or next Tuesday at 1:00pm when it has been scheduled to run.










      share|improve this question














      QUESTION: when you instantiate a class in a scheduled apex job, is the class instantiated at the time of the schedule, or at the scheduled time of execution?



      Here's my situation...
      I have a custom object called Blast, which schedules a bulk SMS send. That object record includes a DateTime field that designates when the blast will happen; for this example, let's say the blast happens next Tuesday at 1:00 pm.



      The blast has some unknown number of recipients -- very possibly 20-50k, which are stored as CampaignMembers. So, at the designated time, I have a batch apex class that retrieves all of the recipient info from the CampaignMember records and makes the api call.



      When a user creates/updates the Blast record today and sets status to "queued", I'm creating a scheduled apex job, instantiating my batch apex class and providing the blast record, from which it pulls necessary data.



      I want to build into the batch apex class a check that verifies the blast record still exists before executing the blast. But I'm not clear on whether that class is instantiated today (when the job is scheduled), or next Tuesday at 1:00pm when it has been scheduled to run.







      schedulebatch






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 2 hours ago









      PatMcClellan__cPatMcClellan__c

      791220




      791220




















          2 Answers
          2






          active

          oldest

          votes


















          3














          It's instantiated when new SomeBatchJobName() is called, then serialized when System.scheduleBatch(...) is called. So the data stored in the object will be from the moment of instantiation (now), not when it is eventually pulled from the queue and executed. This is also true for scheduled and queueable jobs, too.






          share|improve this answer























          • OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

            – PatMcClellan__c
            2 hours ago











          • @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

            – sfdcfox
            2 hours ago











          • Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

            – PatMcClellan__c
            1 hour ago











          • @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

            – sfdcfox
            1 hour ago











          • I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

            – PatMcClellan__c
            1 hour ago



















          0














          For the benefit of clarity, I'll share my revised code... the object is actually called Wave, not Blast.



          global class QueueWave implements Database.Batchable<SObject>, Database.Stateful {
          global String waveId;
          global String body;
          global String messageServiceLabel;
          global Integer recipientCount;
          global String emailAddress;
          global String waveName;
          global String userId;

          global QueueWave(String waveId)
          this.waveId = waveId;



          The constructor does nothing except store the recordId at the time this batch class is scheduled. I'm using try-catch, catching QueryException which aborts the job.



          global Database.QueryLocator start(Database.BatchableContext BC)
          if(Wave__c.SObjectType.getDescribe().isAccessible())
          try
          Wave__c wave = [
          SELECT [fields I need, which may have been updated since batch was scheduled]
          FROM Wave__c
          WHERE Id = :this.waveId
          LIMIT 1];

          //set global vars with data from the wave record
          . . .

          String query = // build my query string here
          return Database.getQueryLocator(query);

          catch(QueryException qe)
          System.debug('QueryException on ' + BC.getJobId() + ' ' + qe);
          System.abortJob(BC.getJobId());








          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "459"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f253757%2fwhen-is-a-batch-class-instantiated-when-you-schedule-it%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            It's instantiated when new SomeBatchJobName() is called, then serialized when System.scheduleBatch(...) is called. So the data stored in the object will be from the moment of instantiation (now), not when it is eventually pulled from the queue and executed. This is also true for scheduled and queueable jobs, too.






            share|improve this answer























            • OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

              – PatMcClellan__c
              2 hours ago











            • @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

              – sfdcfox
              2 hours ago











            • Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

              – PatMcClellan__c
              1 hour ago











            • @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

              – sfdcfox
              1 hour ago











            • I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

              – PatMcClellan__c
              1 hour ago
















            3














            It's instantiated when new SomeBatchJobName() is called, then serialized when System.scheduleBatch(...) is called. So the data stored in the object will be from the moment of instantiation (now), not when it is eventually pulled from the queue and executed. This is also true for scheduled and queueable jobs, too.






            share|improve this answer























            • OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

              – PatMcClellan__c
              2 hours ago











            • @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

              – sfdcfox
              2 hours ago











            • Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

              – PatMcClellan__c
              1 hour ago











            • @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

              – sfdcfox
              1 hour ago











            • I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

              – PatMcClellan__c
              1 hour ago














            3












            3








            3







            It's instantiated when new SomeBatchJobName() is called, then serialized when System.scheduleBatch(...) is called. So the data stored in the object will be from the moment of instantiation (now), not when it is eventually pulled from the queue and executed. This is also true for scheduled and queueable jobs, too.






            share|improve this answer













            It's instantiated when new SomeBatchJobName() is called, then serialized when System.scheduleBatch(...) is called. So the data stored in the object will be from the moment of instantiation (now), not when it is eventually pulled from the queue and executed. This is also true for scheduled and queueable jobs, too.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 2 hours ago









            sfdcfoxsfdcfox

            259k12204447




            259k12204447












            • OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

              – PatMcClellan__c
              2 hours ago











            • @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

              – sfdcfox
              2 hours ago











            • Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

              – PatMcClellan__c
              1 hour ago











            • @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

              – sfdcfox
              1 hour ago











            • I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

              – PatMcClellan__c
              1 hour ago


















            • OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

              – PatMcClellan__c
              2 hours ago











            • @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

              – sfdcfox
              2 hours ago











            • Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

              – PatMcClellan__c
              1 hour ago











            • @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

              – sfdcfox
              1 hour ago











            • I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

              – PatMcClellan__c
              1 hour ago

















            OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

            – PatMcClellan__c
            2 hours ago





            OK, thanks. That's what I thought would happen, just wanted to confirm. So that means any changes (between now and next Tuesday) to the data I use to instantiate the object will not be reflected. So... I'm thinking I need another class, that executes next Tuesday and instantiates the batch object then.

            – PatMcClellan__c
            2 hours ago













            @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

            – sfdcfox
            2 hours ago





            @PatMcClellan__c Without seeing your code, hard to say, but remember you can also do other stuff in your start method besides just providing a query locator. During the start method might be a perfect time to do any other calculations or queries you need to perform to see if you want to continue or not. You can also use System.abortJob in the start method if you want to cancel your job early (the job Id comes from the BatchableContext object).

            – sfdcfox
            2 hours ago













            Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

            – PatMcClellan__c
            1 hour ago





            Ah... I was wondering about that. So, instead of providing the entire blast record when I instantiate, I just provide the recordId. Then, in the start method, I do a soql search on it, pull the data at that point in time, or abort if the record no longer exists.

            – PatMcClellan__c
            1 hour ago













            @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

            – sfdcfox
            1 hour ago





            @PatMcClellan__c Yes, you should always query for the data you're going to work on as late as possible, especially when using asynchronous code that might not be called for a long time.

            – sfdcfox
            1 hour ago













            I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

            – PatMcClellan__c
            1 hour ago






            I can't find docs on how to pull the jobId while inside the start method. Would it be something like... BC.getJobId() ?

            – PatMcClellan__c
            1 hour ago














            0














            For the benefit of clarity, I'll share my revised code... the object is actually called Wave, not Blast.



            global class QueueWave implements Database.Batchable<SObject>, Database.Stateful {
            global String waveId;
            global String body;
            global String messageServiceLabel;
            global Integer recipientCount;
            global String emailAddress;
            global String waveName;
            global String userId;

            global QueueWave(String waveId)
            this.waveId = waveId;



            The constructor does nothing except store the recordId at the time this batch class is scheduled. I'm using try-catch, catching QueryException which aborts the job.



            global Database.QueryLocator start(Database.BatchableContext BC)
            if(Wave__c.SObjectType.getDescribe().isAccessible())
            try
            Wave__c wave = [
            SELECT [fields I need, which may have been updated since batch was scheduled]
            FROM Wave__c
            WHERE Id = :this.waveId
            LIMIT 1];

            //set global vars with data from the wave record
            . . .

            String query = // build my query string here
            return Database.getQueryLocator(query);

            catch(QueryException qe)
            System.debug('QueryException on ' + BC.getJobId() + ' ' + qe);
            System.abortJob(BC.getJobId());








            share|improve this answer



























              0














              For the benefit of clarity, I'll share my revised code... the object is actually called Wave, not Blast.



              global class QueueWave implements Database.Batchable<SObject>, Database.Stateful {
              global String waveId;
              global String body;
              global String messageServiceLabel;
              global Integer recipientCount;
              global String emailAddress;
              global String waveName;
              global String userId;

              global QueueWave(String waveId)
              this.waveId = waveId;



              The constructor does nothing except store the recordId at the time this batch class is scheduled. I'm using try-catch, catching QueryException which aborts the job.



              global Database.QueryLocator start(Database.BatchableContext BC)
              if(Wave__c.SObjectType.getDescribe().isAccessible())
              try
              Wave__c wave = [
              SELECT [fields I need, which may have been updated since batch was scheduled]
              FROM Wave__c
              WHERE Id = :this.waveId
              LIMIT 1];

              //set global vars with data from the wave record
              . . .

              String query = // build my query string here
              return Database.getQueryLocator(query);

              catch(QueryException qe)
              System.debug('QueryException on ' + BC.getJobId() + ' ' + qe);
              System.abortJob(BC.getJobId());








              share|improve this answer

























                0












                0








                0







                For the benefit of clarity, I'll share my revised code... the object is actually called Wave, not Blast.



                global class QueueWave implements Database.Batchable<SObject>, Database.Stateful {
                global String waveId;
                global String body;
                global String messageServiceLabel;
                global Integer recipientCount;
                global String emailAddress;
                global String waveName;
                global String userId;

                global QueueWave(String waveId)
                this.waveId = waveId;



                The constructor does nothing except store the recordId at the time this batch class is scheduled. I'm using try-catch, catching QueryException which aborts the job.



                global Database.QueryLocator start(Database.BatchableContext BC)
                if(Wave__c.SObjectType.getDescribe().isAccessible())
                try
                Wave__c wave = [
                SELECT [fields I need, which may have been updated since batch was scheduled]
                FROM Wave__c
                WHERE Id = :this.waveId
                LIMIT 1];

                //set global vars with data from the wave record
                . . .

                String query = // build my query string here
                return Database.getQueryLocator(query);

                catch(QueryException qe)
                System.debug('QueryException on ' + BC.getJobId() + ' ' + qe);
                System.abortJob(BC.getJobId());








                share|improve this answer













                For the benefit of clarity, I'll share my revised code... the object is actually called Wave, not Blast.



                global class QueueWave implements Database.Batchable<SObject>, Database.Stateful {
                global String waveId;
                global String body;
                global String messageServiceLabel;
                global Integer recipientCount;
                global String emailAddress;
                global String waveName;
                global String userId;

                global QueueWave(String waveId)
                this.waveId = waveId;



                The constructor does nothing except store the recordId at the time this batch class is scheduled. I'm using try-catch, catching QueryException which aborts the job.



                global Database.QueryLocator start(Database.BatchableContext BC)
                if(Wave__c.SObjectType.getDescribe().isAccessible())
                try
                Wave__c wave = [
                SELECT [fields I need, which may have been updated since batch was scheduled]
                FROM Wave__c
                WHERE Id = :this.waveId
                LIMIT 1];

                //set global vars with data from the wave record
                . . .

                String query = // build my query string here
                return Database.getQueryLocator(query);

                catch(QueryException qe)
                System.debug('QueryException on ' + BC.getJobId() + ' ' + qe);
                System.abortJob(BC.getJobId());









                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 30 mins ago









                PatMcClellan__cPatMcClellan__c

                791220




                791220



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Salesforce Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f253757%2fwhen-is-a-batch-class-instantiated-when-you-schedule-it%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

                    2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

                    Button changing it's text & action. Good or terrible? The 2019 Stack Overflow Developer Survey Results Are Inchanging text on user mouseoverShould certain functions be “hard to find” for powerusers to discover?Custom liking function - do I need user login?Using different checkbox style for different checkbox behaviorBest Practices: Save and Exit in Software UIInteraction with remote validated formMore efficient UI to progress the user through a complicated process?Designing a popup notice for a gameShould bulk-editing functions be hidden until a table row is selected, or is there a better solution?Is it bad practice to disable (replace) the context menu?