qiskit-hackathon-korea-21 icon indicating copy to clipboard operation
qiskit-hackathon-korea-21 copied to clipboard

Write a set of quantum computing command-line utilities following the UNIX Philosophy

Open icepolarizer opened this issue 4 years ago • 12 comments

Abstract

Large toolboxes are useful. It helps beginners to learn, and experts to respond in many situations. However, sometimes our toolkit just requires some minimalism. If the program is small and it works well with other programs, it can be a building block of many other brilliant programs.

My thoughts about minimal and modular quantum software

Edit: I just made an example project. Quantum Password Generator

Description

Write a small but useful quantum computing commandline tool. Almost every kinds of computing started from that. Sometimes, less is more.

"The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development."

Here's the UNIX Philosophy:

  1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
  2. Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.
  3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
  4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.

TL;DR

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.

Members

  • @githubhandle
  • @githubhandle - Slack: @slackhandle email: [email protected]
  • Qiskit Coach: @icepolarizer

Deliverable

Set of commandline utilities related to quantum computing, mostly for linux and unix-based systems.

GitHub repo

icepolarizer avatar Feb 07 '21 16:02 icepolarizer

I am not sure how this fits within the scope of Qiskit? Are you advocating for modularizing a particular piece of Qiskit?

nonhermitian avatar Feb 08 '21 11:02 nonhermitian

I think Samuel's idea is pretty interesting :) I never thought of this kind of idea when I was an undergraduate freshman. I think Samuel's project will also be a good motivator for quantum computing beginners who are good at coding at a similar age with Samuel. As we can see, in this event, we have a lot of quantum computing beginners and developers. I hope you understand that we are trying hard for them.

0sophy1 avatar Feb 08 '21 14:02 0sophy1

I am just trying to understand what is proposed here. Are these independent command line tools? If so, then not sure if they are inline with a "Qiskit" hackathon. If they are calling Qiskit functionality then it seems like a reasonable proposal. However, in the latter case, I am not sure if I follow how that aligns with the proposed objectives?

nonhermitian avatar Feb 08 '21 15:02 nonhermitian

I understand your concern. Here's my example. Basically, I'm just suggesting some developers to write short(and useless in some perspective)programs frequently, so that we can see what is possible.

icepolarizer avatar Feb 08 '21 19:02 icepolarizer

Thanks for the example. Looks interesting, and is definitely in scope.

nonhermitian avatar Feb 08 '21 20:02 nonhermitian

Thanks. I like your profile pic, by the way.

icepolarizer avatar Feb 08 '21 21:02 icepolarizer

Our team want to join this idea! Here are our team members (Github ID/Slack Name) echo724/Eunchan Cho jwlk / KIM BOSEOK lonj7798 / jaewon TaehyukKo/TaehyukKo

echo724 avatar Feb 16 '21 03:02 echo724

Okay @echo724 if Team "echo Qiskit" wants to take this idea, please add details of this idea to your team dashboard on HackerEarth and Save Draft for now.

starktech23 avatar Feb 16 '21 03:02 starktech23

Select "Submit Idea" only if you're absolutely sure about the team composition and project idea. We recommend waiting till the Project Pitching session to discuss more about the project today :)

starktech23 avatar Feb 16 '21 04:02 starktech23

Hello I'm Makoto Nakai, (Slack:Makoto Nakai, GitHub: MakotoNakai) and I'm a coach (Qiskit Advocate) from Japan. Would you mind if I join in this team?

makotonakai avatar Feb 16 '21 08:02 makotonakai

Sure! Welcome :)

icepolarizer avatar Feb 16 '21 08:02 icepolarizer

Hi @echo724 ! Can you please remind @JWLK, @ionj7798 and @TaehyukKo to accept the invite link I sent them? I cannot add them unless they accept. https://github.com/qiskit-community/qiskit-hackathon-korea-21/invitations

veenaiyuri avatar Feb 17 '21 06:02 veenaiyuri