Git Product home page Git Product logo

coordinate-canvas's Introduction

Hey there!

Hello, my name is Paulo, but everybody calls me Lete. I'm a Computer Engineering student in Spain and no, I cannot hack your ex's Facebook account.

Interests

I really, really like coding, as you can see in my GitHub profile. I've developed several projects ranging from simple progress bars to complete search algorithms playgrounds. My main goal is to explore computer science in a nice, interesting way.

All-time Statistics

Development skills

I've got a professional-ish level in Python programming. In fact, this was the first language I learned back in 2020. I can do almost anything with it, from data processing to API services management.

Since I'm a fan of UNIX-based systems, bash and zsh are fundamental languages for me as well. I can develop complex scripts in bash, yet I can never remember how to remove a file extension from a file name. That's sad, I know.

I also have some experience with languages such as Java, JavaScript (yes, I know they are not the same), C or C++, having developed some minor projects with them, but I must say I'm not a big fan of semicolons.

On a different line, I use Unreal Engine to develop 3D virtual reality environments, mainly for product showcase purposes.

Top Languages

Other skills

Some say I'm a good leader, others say I'm not, but one thing is for sure: I know how to work in a team. I believe communication is the standard requirement for successful teamwork, and I make a good job encouraging this good practice.

Furthermore, despite being from Spain, I speak English on a decent level (I currently have got a C1 language certificate).

Contact

You can contact me through any of the following alternatives:

coordinate-canvas's People

Contributors

erlete avatar juniors90 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

corbuntus

coordinate-canvas's Issues

Documentation, testing and coverage

This project requires documentation, testing procedures and coverage reports urgently. As of now, methods and classes are not tested, and this is a potential cause for unexpected issues.

The main difficulty regarding testing implementations is the nature of the project, which is designed for the user to interact with via click and key press events, which might be hard to replicate.

Inline instruction execution

The canvas should implement a functionality that allows the user to call the program from any Python script/interpreter as a function call, such as canvas.open(width, height, number_of_lines). The output could then be stored in a variable via return statement. After the coordinates have been generated, the program should continue execution.

Extended format support

The canvas should implement new per-line output formats, which could be chosen via command line argument, additional input or additional sources.

Proposed formats:

  • Split-component series: {"x": [x_1, ..., x_n], "y": [y_1, ..., y_n]}
  • Sequence of dictionaries: [{"x": x_1, "y": y_1}, ..., {"x": x_n, "y": y_n}]
  • Sequence of tuples: [[x_1, y_1], ..., [x_n, y_n]]
  • Sequence of Coordinate objects: [Coordinate(x_1, y_1), ..., Coordinate(x_n, y_n)]1

Furthermore, an output format selection procedure must be designed.

Footnotes

  1. the Coordinate class can be sourced from the bidimensional library and then extended in order to support output formats.

Coordinate removal support

An interesting functionality would be to be able to remove coordinates from the canvas. This operation could be performed in two ways:

  1. Last coordinate removal upon DEL key press (easiest to implement).
    • Certain limits must be taken into account, such as no coordinates left in the line.
  2. Any coordinate removal upon rigth-click press (hardest to implement).
    • This method must take into account a valid interaction area, since coordinates do not have "width" or "height" and thus do not represent areas to be clicked. Maybe a distance-to-coordinate function could be implemented to support this implementation.
    • Clicks must only be valid in a certain distance range to the coordinate, in order to avoid strange behavior.

Stored data retrieval

It would be great if stored canvas data (as of now, JSON files) could be passed as argument in order to be read1. This would allow the user to retrieve data and modify2 it as they wish.

Footnotes

  1. in order to read the data, a fixed set of valid formats should be considered. This directly implicates #6 in the issue.

  2. in order to modify the data (apart from only extending it), procedures specified during #8 development must be taken into account.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.