anujdhillxn's blog

By anujdhillxn, history, 2 years ago, In English

AGNOCPEED

Agnocpeed is an OS agnostic desktop app created using Electron + React. User can configure it with their favourite editors, languages (Currently supports C++ and Python) and templates. It is designed such that a competitive programmer can fully focus on problem solving and tries to reduce the barriers such as copying testcases, constantly opening standings page, worrying about the verdict of your latest submissions.

Build steps

Git, NodeJS and NPM must be installed. Then type the following in a terminal to generate a build for your OS.

git clone https://github.com/anujdhillxn/agnocpeed.git
cd agnocpeed
npm install
npm run electron:build

A Build will be generated in the dist folder. The dist folder will contain an installable as well as the installed app.

Usage

  • Run the executable generated by the build.
  • Read the settings section below.
  • Select a platform (Codeforces or Atcoder) or choose the practice mode.
  • Logging in or not logging in is upto you and some features won't work accordingly.
  • Enter a contest id. Future contest IDs are displayed in the table.

After start

Settings

  • Change the editor to the one that you currently have.
  • Make sure you have a template present for all the languages in the resources/extraResources/settings directory.
  • Make sure your system can support the run and compile commands that are mentioned.
  • Switch the headless property and you will understand what it means :P.

Actions

  • All actions have a hotkey combination which can be changed. Must be a valid list of hotkeys separated by '+'.

Statement

  • Only available in headless mode.

Test Cases

  • The verdict is judged by string comparison and treating all whitespaces as a single space, then trimming the string.
  • All run commands will be executed upto 'Time Limit' seconds property in settings.

Log

  • stdout or stderr of every command run by agnocpeed is displayed in the log.

Submissions

  • resources/extraResources/win.mp3 will be played when a new successful submission with a positive verdict is detected.
  • resources/extraResources/lose.mp3 will be played when a new successful submission with a negative verdict is detected.

Following features will be added if the app gains popularity.

  • Support for any other languages.
  • Support for Codechef.
  • Stress testing.
  • Interactive mode.

If really want this app to be actually useful to the competitive programming community and would love to answer any doubts. Please star the repo if you like my work. :)

  • Vote: I like it
  • +62
  • Vote: I do not like it

»
2 years ago, # |
  Vote: I like it +12 Vote: I do not like it

me using the played audio feature after a positive verdict.

  • »
    »
    2 years ago, # ^ |
    Rev. 2   Vote: I like it +8 Vote: I do not like it

    HAHA maybe you'll get used to it. If it feels distracting, removing .mp3 files from resources/extraResources/settings folder should work :)

»
2 years ago, # |
Rev. 2   Vote: I like it +9 Vote: I do not like it

Looks nice! Since you mentioned users can configure it with their favourite editors, how does it work with vim (as I can understand, there are some hotkeys)? Also, it seems like the npm installer also installs Chromium, so it'd be great if there is an estimate for the time and space required by the installation.

Edit: also facing weird issues while installation:

  • »
    »
    2 years ago, # ^ |
    Rev. 2   Vote: I like it +11 Vote: I do not like it

    So the files are opened by spawning child process with a command $$$editor$$$ $$$filename$$$. So far I have tried it with VSCode (code), Sublime (subl) and notepad. Maybe you can try changing the editor and see how it works in the case of vim.

    The app indeed becomes quite heavy after installation thanks to Electron, Puppeteer and PDFtron. The final installed app turns out to be around 1 GB on windows 10. The entire installation starting from cloning the repo might take around 8-10 mins.

    EDIT — Well the log says low on disk space. During installation lots of node modules are downloaded which take up around 1.7 GB (which are not needed after the build). Looks like you might need an SSD upgrade :P

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +8 Vote: I do not like it

      Honestly wasn't expecting the build to take this much space (maybe some other alternatives can reduce resource consumption a bit?). Managed to install, but got the following error instead:

      Error

      Maybe it is messing up some permissions somewhere.

      • »
        »
        »
        »
        2 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        The app is trying to create the folder where contest files are stored. Maybe running the app with administrator privileges can work. Sorry my linux tester bailed out on me and I assumed if it is working for Mac then it should be working for linux as well.

        • »
          »
          »
          »
          »
          2 years ago, # ^ |
            Vote: I like it +12 Vote: I do not like it

          I generally avoid running anything with administrator privileges unless I understand what exactly it needs to do, will wait for a fix instead.

»
2 years ago, # |
  Vote: I like it +3 Vote: I do not like it