Git Product home page Git Product logo

kniteditor's Introduction

kniteditor's People

Contributors

jainaman224 avatar maylea23 avatar niccokunzmann avatar niccokunzmann2 avatar paulheider avatar souravsingh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kniteditor's Issues

Create MacOSX intro tutorials

Like with Windows and Ubuntu, we need installation tutorials for the Mac operating system.

  • setup tutorial
  • run the tests tutorial

Hints:

  • You can view the other tutorials in this playlist
  • You can view installation instructions in the automated build folder
  • This should be done with a mac which does not have set up anything
  • If you are able to install brew and packages not as superuser but locally, this is a bonus.

UI freezes on resize

When loading the University of Tvente logo, the UI freezes when it is resized.
This can be after starting to knit or even before.

universityoftvente

  • find out why it freezes
  • remove freezing

Hints:

  • Maybe it does not freeze if you take away certain UI elements.

Installation instructions incomplete

Trying to install kniteditor in a virtualenv on a current Debian machine, I had to:

  • install kivy from source (as they used a function deprecated since 3.2 in a late-2020 release until it was removed in Python 3.9): pip install --upgrade 'git+https://github.com/kivy/kivy#egg=kivy'
  • pip install pygame
  • pip install oscpy
  • Find out that python3 -m kniteditor needs to be started manually, as no entry in the virtualenv's bin/ is created.

This got me far enough to run the program; I didn't follow any further because while I had hoped this to be an editor for manual knitting patterns, it turned out it is more a knitting machine driver that (if it has an actual editing part) won't let the user even get there without a connected knitting machine.

Create handknitting text

Create a package or sub-module which can transform knitting patterns into readable instructions.

  • create English text for each instruction
  • convert knittingpattern to English text
  • add internationalization
  • create a new repository. This is because AYABInterface can also work standalone, this should also work without the editor.

Also, after you decided, where to put it, add these issues to the repository:

Hints:

  • use the same interface as the AYABInterface.actions. This does not necessarily mean copy. Inspiration can flow in both directions.

Create .deb package

To package the Knit Editor for Ubuntu a .deb file can be created. There are various ways to create these.

  • create .deb file
  • integrate it in the automatic build
  • deploy to github using travis

Hints:

  • there are a lot of different ways to approach it. One is this. But there is a short way listed on stackoverflow. Maybe they work, maybe not.
  • Maybe use openbuildservice for it - this fixes it for a whole lot of other distributions as well.

Create .rpm file

To package the Knit Editor for Fedora .rpm file can be created. There are various ways to create these.

  • create .rpm file
  • integrate it in the automatic build
  • deploy to github using travis

Hints:

Reproduce and Fix Error

This error happened while knitting:

 Exception in thread Thread-1:
 Traceback (most recent call last):
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\threading.py", line 911, in _bootstrap_inner
     self.run()
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\threading.py", line 859, in run
     self._target(*self._args, **self._kwargs)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\__init__.py", line 278, in _parallel_receive_loop
     self.receive_message()
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\__init__.py", line 102, in receive_message
     self._message_received(message)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\__init__.py", line 82, in _message_received
     self._state.receive_message(message)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\states.py", line 51, in receive_message
     message.received_by(self)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\hardware_messages.py", line 355, in received_by
     visitor.receive_line_request(self)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\states.py", line 474, in receive_line_request
     self._next(KnittingLine, message.line_number)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\states.py", line 193, in _next
     self._communication.state = state_class(self._communication, *args)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\__init__.py", line 180, in state
     self._state.enter()
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\states.py", line 513, in enter
     self._communication.send(LineConfirmation, self._line_number)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\__init__.py", line 148, in send
     message.send()
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\host_messages.py", line 52, in send
     self._file.write(self.as_bytes())
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\host_messages.py", line 48, in as_bytes
     return bytes([self.MESSAGE_ID]) + self.content_bytes()
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\host_messages.py", line 145, in content_bytes
     return get_message(self._line_number)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\cache.py", line 67, in get_line_configuration_message
     line_bytes += bytes([self.is_last(line_number)])
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\cache.py", line 35, in is_last
     return self.get(line_number + 1) is None
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\communication\cache.py", line 26, in get
     self._get_cache[line_number] = self._get(line_number)
   File "C:\Users\cheche\Documents\programmiertes\kniitting\KivyInstaller\lib\site-packages\AYABInterface\interaction.py", line 88, in _get_needle_positions
     color_index = colors.index(color)
 ValueError: 'black' is not in list

Hints:

  • Interaction.colors only takes the first row into account

Solution:

The number of colors is required and useful for many applications.
In knittingpattern add the following methods:

  • Instruction.colors
  • Row.colors
  • KnittingPattern.colors
  • Make sure we return a list and not a set with a fixed order of colors.
    • Assume the colors are not order-able. List them in order of appearance.

Also,

  • Interaction.colors should be KnittingPattern.colors
  • use new versions in the kniteditor

Create GUI for Viewing and Editing Patterns

From @kirstin on June 21, 2016 13:8

Create a GUI for Viewing, Modifying and Creating Knitting Patterns based on meshes

Includes:

  • show knitting pattern
  • show knitting instruction library
  • show empty grid for creating pattern
  • tool to remove meshes from pattern
  • place knitting instructions in grid
  • mark area of meshes with mouse and apply something to them (insert also)
  • mark area of meshes and copy
  • select yarn colors and color meshes
  • optional: render view which shows what the pattern might look like when knit

Copied from original issue: AllYarnsAreBeautiful/ayab-desktop#67

Windows Tests fail

See here: https://ci.appveyor.com/project/AllYarnsAreBeautiful/kniteditor/build/master.177
A module cannot be imported:

[CRITICAL          ] [Camera      ] Unable to find any valuable Camera provider at all!
videocapture - ImportError: No module named 'VideoCapture'
  File "C:\Python34\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Python34\lib\site-packages\kivy\core\camera\camera_videocapture.py", line 15, in <module>
    from VideoCapture import Device
opencv - ImportError: No module named 'cv'
  File "C:\Python34\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
    fromlist=[modulename], level=0)
  File "C:\Python34\lib\site-packages\kivy\core\camera\camera_opencv.py", line 20, in <module>
    import cv

Performance issues when loading "big" images

In the current version (1.0.3), loading a somewhat "big" image (e.g. 160x30) causes a severe performance impairment on the GUI (gets stuck, is barely usable - I am using a Core i5).
Please check how to improve the performance when loading pictures of arbitrary size.

Create About Dialog

It should

  • show the version, if you click it, it opens a webbrowser to the releases
  • show the latest version, if you click it, it opens a webbrowser to the releases
  • have a link to the welcome site of the kniteditor
  • be possible to close the dialog
  • be possible to open it from the main menu

Use logo for kniteditor

The kniteditor has several places to use the logo #13

  • the editor window
  • the windows installer
  • the windows .exe
  • the mac osx .dmg file in various places

Hints:

  • we first need a logo #13

Start Download Automatically

Depending on whether you browse the download website from Windows or Mac, the download should start automatically with the latest build.

Hints:

  • The browser sends the information to the server in the user-agent header. Could be this is also accessible via JavaScript
  • in _data/binaries.yml you can find the place to specify what to look for to download automatically. It is ?? - replace it.

show increases and decreases in knitter

When knitting a new line is is important to know how many meshes are added and removed at the right and left. Examples:

  • "add X needles to the left"
  • "remove Y needles to the right"
  • "move a mesh"

Review Kniteditor Mockup

There is a mock-up of the kniteditor like here. It can be made prettier but there is no need to.

  • It should be reviewed in some forum liek strickforum or ravelry.
  • a new mockup is created based on the feedback

Put instructions in grid

  • The patterns should be movable and stick to a grid.
  • If other patterns are below, the row is shifted.
  • Some patterns are wider. The number_of_consumed_meshes is the width.

Create LongTask class

Some actions may last for a while. They should not block the UI.

Solution
Create a LongTask class. This class has the following properties:

  • Arguments to initialize
    • a function task() which is called in a separate thread and should have no side effects
    • a function complete() which is called in the main thread and has side-effects
  • method start()
  • method cancel() to cancel the task = the complete() function is not executed when task() ended,
  • when started, it opens a popup with a spinner and a cancel button
  • the cancel button cancels the LongTask
  • translate

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.