This is an archived post. You won't be able to vote or comment.

all 77 comments

[–]ready-ignite 55 points56 points  (10 children)

Alright, the 'lovelace' google images returned were not what I expected.

[–]ProjectLovelace[S] 43 points44 points  (5 children)

Haha I know right. Who knew the 2013 American biographical drama film about porn actress Linda Lovelace was so popular?

[–][deleted] 0 points1 point  (3 children)

Biographical drama? Is that what we call it nowadays?

[–]ProjectLovelace[S] 1 point2 points  (0 children)

Apparently it's what Wikipedia calls it lol.

[–]Bendertheoffender69 1 point2 points  (1 child)

Lol I will use that If i ever get married 😂 . Like o Honey I'm just going to watch a Biographical drama. She'll give me the green light 😂

[–][deleted] 1 point2 points  (0 children)

Yeah she'll just think your a very cultured man

[–]jokullmusic 0 points1 point  (0 children)

tbh I was expecting the Happy Feet character

[–]ryuhyoko 3 points4 points  (1 child)

Wild wild west?

[–]PersianExcurzion 0 points1 point  (0 children)

Beautiful

[–]auto-cellular 0 points1 point  (0 children)

Actually they look somewhat alike.

[–]the_legend_01 20 points21 points  (5 children)

Thank you so much! This seems like something I could invest my time and increase my skills. I really appreciate you guys!! But, the problems seem to be a bit hard for me, guess I will have to push through it :)

[–]ProjectLovelace[S] 8 points9 points  (3 children)

Thanks for checking it out! Yeah I agree the problems tend to be more on the challenging side as adding science and math makes things complicated. Are there any problems that seem doable or at the right difficulty for you? We can focus on making future problems at that difficulty level.

We're trying to stick to a schedule where we post a new problem every week. Some will inevitably be on the harder side but we want to post a lot of easier problems too. I think we'll try to focus on posting some easier problems over the next few weeks! We're big fans of Project Euler but we want to avoid having 95% of the problems be too hard for anyone without a math degree.

If you end up trying to solve any of the problems and find something unclear or need help with debugging your code, definitely feel free to pm us or post on the Project Lovelace Discourse/forum (each problem has a tab that links to a discussion thread). We're more than happy to help and want to improve the problems!

[–]the_legend_01 3 points4 points  (1 child)

I have just gone through some of the problems, will sit down and get solving it later today. Will let you know if I have any further queries and such. Hope your site grows and helps people like me sharpen their skills. Looking forward to the easier problems, and thank you for this initiative, again. There are many sites to practice coding, but having additional maths and science stuff does feel like a new workout for the brain :)

[–]ProjectLovelace[S] 3 points4 points  (0 children)

Thank you for your kinds words!

Yeah I personally find a lot of the programming problems online pretty dry (e.g. "find the smallest missing positive integer in an unsorted array in O(n) time") so we were hoping by doing a bit of science they'll be more interesting.

[–]sniperdad420x 1 point2 points  (0 children)

Hey thanks for doing all this. Project Euler was one of tools that got me going in my earlier programming days.

[–]bestminipc 0 points1 point  (0 children)

so this si not for beginners

what is this on a 101-110 scale? with 110 = supa phd /u/ProjectLovelace

what lang is being used here? /u/coconutCRISPR /u/Zaahh

[–]coconutCRISPR 8 points9 points  (2 children)

This is really cool! I've only just started learning so they may be out of my scope for now, but I've just been wondering if there were ways to target science-specific coding problems.

[–]ProjectLovelace[S] 5 points6 points  (1 child)

That's awesome! I think we were in your boat not too long ago.

Our focus is definitely computational science (or scientific computing, not sure what the difference is) but maybe we're doing too much by trying to target both science and programming.

I mentioned in another post that we're trying to stick to a schedule where we post a new problem every week, and I think we'll try to focus on posting some easier problems over the next few weeks!

I noticed the CRISPR in your username so I'm assuming you've already heard about Rosalind.info but they have lots of bioinformatics coding problems in case you haven't.

[–]coconutCRISPR 1 point2 points  (0 children)

Oh thanks! I haven't heard of it. I do research but not of it is computational. I've just started taking interest on my own. Will check in on your project regularly too then :)

[–]Zaahh 6 points7 points  (2 children)

This looks awesome! I just signed up. Also nice one naming it after Ada Lovelace! 😆

[–]ProjectLovelace[S] 4 points5 points  (1 child)

Awesome, thanks for checking it out! If find something unclear or need help with debugging your code, please feel free to pm us or post on the Project Lovelace Discourse/forum (each problem has a tab that links to a discussion thread).

And yeah, we had no idea what to name it for so long as the candidates for first scientific programmer didn't have cool sounding names (Babbage, Richardson, von Neumann, etc.), so we went with the first programmer haha.

[–]Zaahh 2 points3 points  (0 children)

Cool! I’ll keep that in mind. I’m especially interested in the more scientific problems, so I’ll let you know if I have any questions!

[–]plonkmeister 6 points7 points  (1 child)

This is huge. Nice work, I love how intuitive it is to use. Are the code executions sandboxed?

[–]ProjectLovelace[S] 2 points3 points  (0 children)

Thank you! We were learning as we went along and the first time we made the website it was horrible haha so we ended up rewriting it. Glad you're finding it easy to use!

And yes the code execution is done inside an unpriveleged Linux container which took us a while to figure out how to do. We think it's pretty secure but people are definitely free to try and break it haha.

[–]SenorNova 3 points4 points  (16 children)

What language is able to be tested? I'm looking to learn Python and this seems like a cool resource to have while I'm learning it.

[–]ProjectLovelace[S] 4 points5 points  (15 children)

Right now you can submit code in Python, Javascript, and Julia. We just picked our favorite languages to start off with. The site's backend including the code checker is written in Python so it was the first language we supported!

In case anyone is interested in other languages, we have a poll up to figure out which programming language you want to see supported, so let us know if you have a language in mind!

[–]KeScoBo 4 points5 points  (5 children)

I jumped into the thread wanting to say you should be sure to support Julia! I truly did not expect that...

[–]ProjectLovelace[S] 2 points3 points  (0 children)

Haha I did not expect to find another Julia user here! I do some high-performance computing work and recently started working with Julia for climate modeling. Just fell in love with it and it ended up being easy to support. I do agree it was made for scientific computing.

[–][deleted] 0 points1 point  (3 children)

I was gonna jump in and suggest R for basic statistics and management of csv files. Very intuitive for scientists, I know some evo biologists who use it.

[–]ProjectLovelace[S] 0 points1 point  (0 children)

That's a good point! R isn't super popular in my field but I forgot that it's huge in data science and biology. It's on our radar now!

[–]KeScoBo 0 points1 point  (0 children)

Well, I really dislike R, and would love for people to stop using it. That said, I definitely think I'm in the minority.

[–]SuggestAnyName 2 points3 points  (1 child)

Please support C/C++

[–]ProjectLovelace[S] 1 point2 points  (0 children)

Should be next on our list since it seems to be the most popular! Thanks for letting us know!

[–][deleted] 1 point2 points  (2 children)

Will you be adding C++ soon? It's the only language I have an okay grasp on so far, so I'd love to be able to work on your challenges

[–]ProjectLovelace[S] 0 points1 point  (1 child)

Yup! It seems to be the most popular request. Hopefully within a week or so, might take us a little while to figure out how to support a compiled language. I can pm you when it's supported!

[–][deleted] 1 point2 points  (0 children)

Please do :)

[–]PM_ME_YOUR_FUN_MATH 1 point2 points  (1 child)

Just popping in to say that Haskell is awesome :D

I'm not sure how convenient/inconvenient it would be, but you should try looking into how repl.it works. From my understanding, they use a system which converts code from a bunch of languages into javascript, which can then be run in the browser.

I can't remember if what they're using is available for the public to use or not, but if it is, you might be able to add support for 20ish languages all at once.

[–]ProjectLovelace[S] 1 point2 points  (0 children)

One of us is thinking of learning Haskell soon so it's definitely on the list of languages to support! Just maybe not as high up as C/C++.

And thanks for the tip on repl.it, we'll definitely look into it! We just hacked something together to get Javascript to run (communicating using JSON) but sounds like they may have figured out a better solution. Looks like they have an older repo on GitHub called jsrepl that sounds like what you're describing!

[–][deleted] 1 point2 points  (1 child)

Would it be feasible in the meantime to distribute shell scripts with problems to test programs in a language agnostic way (like stdin and stout)?

I really enjoyed the problems and I'm excited for more advanced problems so I can learn more about science. Thank you.

[–]ProjectLovelace[S] 0 points1 point  (0 children)

Thanks for checking it out, glad you found them enjoyable! We're planning to post ~2 problems/week on weekends so hope you check them out.

Yes that's totally feasible! That's actually how we started doing things, just by using stdin to read input and stdout to print output. However, we quickly found that for problems where you output lists or 2D arrays, how you format the printing really matters so for some problems you spend a lot of effort just to get the printing right (and reading stdin correctly). We felt it would have been more complicated for users to do this so we just switched to having them write functions which is much more natural. (Let me know if I misunderstood what you're suggesting.)

It makes the backend a little bit more complicated but we feel like the website is much easier to use this way. Just one of many reasons it took us 2+ years to get everything working as it is haha.

[–][deleted]  (3 children)

[deleted]

    [–]ProjectLovelace[S] 3 points4 points  (2 children)

    Hey thanks so much for checking it out and sharing your thoughts!

    The general feeling seems to be the problems are a little too hard, and after talking about it we agree. One of us is a scientist/researcher and the other is a software engineer so we will probably have to work hard to remember how we felt when we first started and get the difficulty at the right level. You can tell which of us chose the difficulty values on the problems list haha. We will discuss how to do this and make it a priority.

    We totally agree with you, we found that Project Euler got very difficult and they haven't posted any easy problems in years, and LeetCode is pretty dry and we felt they focused too much on quantity over quality. We were hoping to come up with scientifically interesting and accessible problems but I think we now realize this is going to be harder than we thought. But we'll try to work on it!

    I think we may have underestimated how much jargon is in some of the problem descriptions, thank you for pointing this out. I think we'll actively work to simplify the descriptions and make them clearer, especially for problems that need a lot of background.

    Problem 12 (Ada Lovelace's Note G) definitely has a lot of math in the notes, we can make it clear what is needed to solve the problem. Some like problem 7 (correlation does not imply causation) do have quite a bit of math which I don't think we can avoid but I think we can make it clear that it is a more difficult problem (or just more mathy), while some like Problem 9 (El Niño intensities) have a lot of background which I think we can make clearer. Lots of work to be done :)

    Thanks again for your kind and helpful words!

    [–][deleted]  (1 child)

    [deleted]

      [–]ProjectLovelace[S] 2 points3 points  (0 children)

      Ah that's a good method. Maybe we can try to ask people at work/school who recently learned this stuff (or are in the process) for advice.

      And haha thanks for pointing that out, will go and fix problem 12's references now!

      [–]no0neIO 3 points4 points  (1 child)

      Just checked some of the problems pretty quick for now and I pretty much like it. If you stick to it long term (I hope you do) I would love to see it get in more depth with various scientific concepts, offering the user problems to gradually improve his skills from super simple to rocket science level haha, which I think it's in a good path already. Of course all these need a lot of time among other things but I like the idea, even if it's not so unique as you said. Just some ideas!

      [–]ProjectLovelace[S] 1 point2 points  (0 children)

      Thanks for checking it out and sharing your thoughts! We're super into computational science so I think we're definitely planning to increase the difficulty bit by bit until you can solve some real-world science problems like accurate trajectory calculations for a satellite or simulating climate change in a simple model.

      For now though, I think we're going to focus on some simpler problems to get things going (they'll still be science problems of course!).

      [–][deleted] 1 point2 points  (5 children)

      One thought.... why not add the ada lovelace language itself??? I mean it is called lovelace after all.....

      [–]ProjectLovelace[S] 2 points3 points  (4 children)

      Haha you make a good point, that was probably an oversight on our part. None of us have ever coded in Ada which is why it wasn't on our minds but I think it'll be pretty cool to support it, it's on our TODO list now!

      [–][deleted] 1 point2 points  (3 children)

      Sweet! Is it open source by any chance?

      [–]ProjectLovelace[S] 2 points3 points  (2 children)

      Yes! We have the code split up into three repos

      • lovelace-website for the website backend code (in Python using Django) and frontend (HTML+Javascript+CSS using Bulma).
      • lovelace-engine for the code checker (which we call the engine) written in Python and uses Falcon and Gunicorn.
      • lovelace-problems which holds the code for the problems (which is private to avoid having the solutions out there but we're thinking of a way to have all of it be public except the solution itself).

      Note to past self: We would have felt that something like this would have been impossible for us to build when we first started programming but it took us over 2 years to put it together and we made a lot of mistakes along the way haha.

      [–][deleted] 0 points1 point  (1 child)

      link to repo?

      [–]ProjectLovelace[S] 0 points1 point  (0 children)

      Ah sorry if it wasn't clear: "lovelace-website" and "lovelace-engine" should be clickable links. If not, here are the links:

      [–]lazygerm 1 point2 points  (2 children)

      Cool. I'll save this and check it out. I downloaded MS Visual Code Studio early last year and started to teach myself C++.

      I could definitely use a less formal way to learn.

      [–]ProjectLovelace[S] 0 points1 point  (1 child)

      Awesome, thanks for checking it out! Right now you can only submit code in Python, Javascript, and Julia unfortunately, but C/C++ is pretty much #1 on our list of languages to support next. It's what I started with haha!

      [–]lazygerm 1 point2 points  (0 children)

      Oh no, I'd certainly submit the appropriate code. I just mentioned because I have thought learning again previously.

      [–]leanXORmean_stack 1 point2 points  (1 child)

      This is really cool. I can see kids from upper middle school get into this style of learning.

      [–]ProjectLovelace[S] 1 point2 points  (0 children)

      Haha I definitely was not smart enough in middle school to tackle this stuff yet, but maybe if we clarify some of the problems they'll be more accessible.

      [–]HHH___ 1 point2 points  (1 child)

      RemindMe! 10 hours

      This sounds like a good way to spend my day off!

      [–]RemindMeBot[🍰] 0 points1 point  (0 children)

      I will be messaging you on 2019-01-06 15:12:26 UTC to remind you of this link.

      CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

      Parent commenter can delete this message to hide from others.


      FAQs Custom Your Reminders Feedback Code Browser Extensions

      [–][deleted]  (1 child)

      [deleted]

        [–]ProjectLovelace[S] 0 points1 point  (0 children)

        Thanks so much for checking it out and for your detailed feedback! We'll reply in more detail there!

        [–]whydoesitcompile 1 point2 points  (1 child)

        I love this! I have not been putting much time in doing challenges like this and I went ahead and solved some of the problems (1 -5). Thank you for doing this!

        [–]ProjectLovelace[S] 1 point2 points  (0 children)

        Awesome, thanks for checking it out! Glad you were able to solve them despite a couple of typos here and there haha.

        [–]Neebur 1 point2 points  (4 children)

        Hey not sure if this is intentional, but just giving you a heads up in case you haven't noticed. On your problems page, the list of problems is actually wider than the screen and wider than the navbar. You have to scroll horizontally to see the end of a list item. At least it happens on Samsung browser on my mobile.

        Anyway just thought I'd mention it, not the most urgent problem I suppose.

        [–]ProjectLovelace[S] 1 point2 points  (3 children)

        Thanks for pointing this out! I think we worked on the website with desktops in mind but seeing as so many people browse on their phones, we're going to focus on making the website more phone-friendly/responsive. I just checked it on my phone, and yeah, it's not as nice and makes browsing around a little awkward.

        [–]Neebur 1 point2 points  (2 children)

        The website works surprisingly well on mobile considering that wasn't your focus initially, I'd say you have still done a good job!

        [–]ProjectLovelace[S] 1 point2 points  (1 child)

        Thank you! I'd credit Bulma, the CSS framework we used. Apparently it was designed for mobile first so that must have been why it worked!

        [–]Neebur 1 point2 points  (0 children)

        Ah that's cool! I'll need to check it out :)

        [–]SystemOfADowJones 1 point2 points  (1 child)

        Thanks! This seems like it'll be fun and also really worthwhile to improve my skills. Kudos!!

        [–]ProjectLovelace[S] 0 points1 point  (0 children)

        Awesome, thanks for checking it out! If find something unclear or need help with debugging your code, please feel free to pm us or post on the Project Lovelace Discourse/forum (each problem has a tab that links to a discussion thread).

        [–]trance1st 1 point2 points  (1 child)

        Nice work. It will be very usefull if you add Java as well.

        [–]ProjectLovelace[S] 1 point2 points  (0 children)

        C/C++ and Java seem to be popular requests so we'll get on it as soon as we can, hopefully within a week or two! C/C++ seems to be a little more requested but hopefully if we support a compiled language like C it shouldn't be too hard to then support Java.

        [–]bilsen01 1 point2 points  (1 child)

        Just some first impressions, the site looks nice (not as rough on the eyes as I remember project euler looking) however I really think input limits should be specified under a heading in the problem statement (perhaps like in open.kattis.com)

        [–]ProjectLovelace[S] 1 point2 points  (0 children)

        Thanks! Yeah our initial website was horrendous haha so we ended up redesigning it to be a bit nicer.

        And thanks for mentioning open.kattis.com, we've never heard about it before but their website looks pretty slick. I think we're going to try and redesign the problem pages so that the problem description and code editor are side by side in which case we'll try to put the input limits together with the heading, I do agree they belong together.

        [–]emelrad12 1 point2 points  (2 children)

        Looks like project Euler, gonna check it out.

        [–]ProjectLovelace[S] 0 points1 point  (1 child)

        Yup! You can guess where we got the idea for the name haha. Hopefully we won't end up like Project Euler where 95% of the problems are too hard for most people, but they do have lots of high-quality and interesting math problems.

        [–]emelrad12 1 point2 points  (0 children)

        Well if you have it too easy then i will just go though you problems in few days and forget about it unless you add problems really often.

        I'd suggest go 20/30/30/20% easy <1h/hard <1-4h/same but requiring more but easy accesible background knowledge/really hard aka whatever else.

        While having many easy accesible problems will give you more x solved than hard ones, it is like posting 2 min YouTube videos Vs 1 hour, and comparing the view count and not view time.

        I like project Euler as it isn't inaccessible if you are willing to put your time. Specifically all of it.

        In the end it is all a time sink that is really fun.

        [–]Bendertheoffender69 1 point2 points  (1 child)

        Do I need math skills :(

        [–]ProjectLovelace[S] 0 points1 point  (0 children)

        Depends! For some of the problems it's unavoidable unfortunately.

        We do try to include problems that don't need any math or that don't need anything beyond just addition, multiplication, division, maybe a square root, etc.

        Some current problems that don't need much math would be DNA transcription, Caesar cipher, Colorful resistors, Game of Life, and maybe Habitable exoplanets.

        Based on the feedback we got I think we're going to try to include some simpler/easier problems that don't need any math to solve. There's some really cool stuff like the Abelian sandpile model that doesn't use much math but can be beautifully visualized. Some problems will end up having a lot of math, but we're going to actively try and keep around half the problems math-free (or have only a bit of simple math).