Weekend scripting block challenge and $1,000 prize

@JonathanBowen

Thanks for the link to the wikipedia page about the Levenshtein Distance Algorithm! Having this algorithm will help me improve a long-term project that I am working on.

1 Like

Actually, it doesn’t. :wink: The more I think about this, the less sense it makes. And I consider myself one of the top 90% most intelligent people in the room.

That part I get, but this part isn’t as obvious:

{[fieldName] : "Value..."}

I’m old; hold my hand so I get through this and coronavirus.

It’s the exact same situation.

const fieldname = "Name";
let myFields = {[fieldName] : "Value..."};

is converted at runtime to

let myFields = {["Name"] : "Value..."};

which is the same as

let myFields = {"Name" : "Value..."};

I suppose it would be easier if the square brackets weren’t necessary, but then it would be impossible to tell if the key were an actual name, or a variable because

let myFields = {fieldName: "Value..."};

at runtime becomes

let myFields = {"fieldName": "Value..."};

If you want to continue this discussion, should we create a new topic?

1 Like

Thank you again everyone for your amazing submissions! Our team is going to review these and announce the winner at the end of the week.

2 Likes

@Jason Any idea when the next context will be? I finally got a script of my own to be entry-worthy, if a little late for this one.

@Kamille_Parks Not at the moment, but this assuredly won’t be our last scripting contest :slightly_smiling_face:

1 Like

Happy Friday! We’re ready to announce the winner for the $1,000 scripting prize. Drumroll please! :drum::drum::drum:

And the winner is… @Howard_Shaw for his project scheduler! Here are a few highlights of why we chose this script as the winner:

  • This was a complicated script that not only created multiple linked records but also made changes to each one based on a template system
  • It included business rules such as ensuring start and end dates were not on weekends and taking into consideration how task dependencies could affect the dates
  • Use of the Gantt chart block and the brand new flowchart block

Something particularly of note is the collaborative effort put into developing the script. The author mentioned not knowing how to do some things so he brought in someone else to lend a hand to move things forward. We want everyday users to feel empowered to create something really impactful, and find help and support from this community (and others) to go even further.

We wanted to say thank you again to everyone who submitted a script! We’re looking forward to unlocking even more functionality though this block.

4 Likes

Congrats Howard - it’s a great solution.

1 Like

Congrats @Howard_Shaw! Nice work!

1 Like

Congrats @Howard_Shaw. You had a great idea. I hope you share the prize with your brother.

You mentioned in your video that you were interested in feedback on your script. Let me know if you are interested in hearing my ideas.

1 Like

Hi everyone! While @Howard_Shaw had the winning submission, we were so impressed by the other amazing scripts and decided to award everyone who participated. For everyone that submitted we’re going to give a $250 prize :tada:.

Thank you @JonathanBowen, @openside, @kuovonne, @Jeremy_Oglesby, @Felicity_Evans, and @Anders_Solberg for the work and creativity you put towards your scripts!

I’ll be in touch separately to coordinate details. Hope everyone stays safe and has a great weekend.

6 Likes

@Jason Thank you very much for recognizing the effort put in by all the participants.

If there are future scripting contests, could we have a bit clearer guidelines on a few points?

  • How important is the duration of video walkthrough? It is very difficult to explain much in under two minutes as you asked in the original post, and most of the submissions had videos that were over two minutes.

  • Do you want the video walkthough to include walking through the code, as some people have been doing? Your original posting simply listed “explain what it does.” If you want a review of the code, could you increase the suggested video duration?

  • You recommend that people follow best practices for open sourcing a script and require that “Airtable is free to use submitted suggestions or feedback for any purpose.” What intellectual property rights are people allowed to retain for the scripts that they submit? For example, even though Airtable is free to use the script for any purpose, can the participant release the script with a different license for the general public. For example could participants release a script with an open source license that requires attribution, or a non-open-source license?

  • You require that scripts cannot have been already submitted to a previous contest. Does that apply to scripts that have been submitted to other non-Airtable contests?

  • How much of the script must be the unique work of the participant, and what level of copyright ownership must the participant have? You encourage script authors to get help from others. Also, as more and more scripts are written, it is more and more likely that really great scripts will leverage existing helper scripts written by other people.

absolutely. would love to keep making improvements. I’ll be working on making the documentation better and adding some flexibility for additional template fields this weekend, and would like to keep adding to it.

1 Like

Congratulations. A well-deserved win. I’m sure this will be incredibly useful for many people. Looking forward to seeing the developments you mentioned.

In your video, you asked about help for dealing with weekends. I wrote a function for calculating an end date that does not include weekends as part of the duration.

  • This function does not subtract 1 from the duration, unlike your script. This means that if a task takes 1 day, the end date will be the following date, not the same day.
  • This function is a bit verbose. It could be condenses a lot, but I kept it long to that it would be easier to understand the calculations.
  • Watch out for timezone issues, especially if the base displays dates and times with GMT time, but the date is parsed to a local time. Make sure the JavaScript date object passed to the function has the correct date/time. I find that sometimes it doesn’t match what the base displays depending on how JavaScript parses the date, and what the display settings are on my date field.

Let me know if you have any questions about this function.


Also when using your script, I noticed that if I accidentally mess up the order of the tasks in the template view, sometimes the script does not calculate the end dates properly.

Great questions! We’ll be sure to offer some more specific guidelines for further contests, but here are some thoughts for each of your questions:

  1. Video length isn’t the ultimate goal, but I can see how two minutes is short to fully explain what you built. We can definitely adjust the language though for future scripting challenges to give more of a suggested time range rather than a prescriptive length.
  2. I think the code itself could be pasted and shared outside of the video, but that is up to you. And similarly, we’ll be more suggestive rather than prescriptive in the future.
  3. You fully own whatever scripts you create, but we also want to be able to share them with others as well. You’re welcome to use scripts you developed wherever else you would like to.
  4. No, we specifically mean other contests ran by Airtable.
  5. I think best judgement on the part of participants is key here. While it’d be hard to determine exactly how much of a script someone did or didn’t write themselves, we trust our community to do the right thing.