Git Product home page Git Product logo

ringo's People

Contributors

ankitr avatar gmittal avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

Forkers

ankitr

ringo's Issues

Need to write a load balancer

Because this will be running across multiple Macs, will need to find a way to allocate a Mac ngrok url to the user session.

localtunnel is extremely unreliable -- switch back to ngrok

localtunnel tunnels tend to expire, but the load balancer doesn't catch these events. Instead of changing the load balancer/build-server to accommodate localtunnel's unreliable system, it would be a lot easier to switch back to ngrok.....

Running out of RAM with huge responses

Of course, the Mac server that will be actually running this code will have more double than the amount of RAM my development machine has, but this is a dangerous scenario.

Basically, when someone has a project that has a huge number of files or a set of super large files, pulling the file contents down from the server becomes risky. The response variable gets too large for the machine to store in RAM, and causes the node server to crash.

Maybe implement a way of storing the response in an external database (like Firebase, although the Firebase would probably run out of memory), and then respond with the contents of that database model later on?

Worth a shot, but this is definitely an issue that needs to be solved soon.

Need to set up Cloud Macs that'll scale to demand.

For now, the production version of Ringo is running on a single 2010 Mac mini. This Mac mini will not hold up forever, so I'll probably need to buy several cloud macs at some point.

Any free alternatives that might be more reliable?

Inefficiency within the /get-project-contents endpoint

Whenever a super huge project's file tree needs to be returned, a lot of the time is spent waiting for

  1. the data to get from the server to the client (I think from loadfiles)
  2. the /get-project-details endpoint to get the details (I think this partially has to do with it, but its probably the above)

Uncaught exception

No clue why this is happening. So far not proving to cause any major crashes or issues.

What the heck

Need to write a script that cleans out the build-projects directory

The build-projects directory will fill up pretty quickly, and Mac server don't have unlimited amounts of space. Should probably write a script that has a listener that watches the amount of space the build-projects directory is taking up, and probably delete the temporary projects every 24 hours or so (maybe more often depending on how fast it fills up).

Look at this madness

Code cleanup

This code used to break from every so often mainly because the API layer around the Xcode toolchain was written with some very bad Node.js code. Some of that was due to my lack of knowledge of Node's asynchronous handling at the time. The back-end needs a major rewrite and it should probably be written in Flask or some other similar synchronous framework for a more understandable codebase.

Overwrites existing files when creating a new file with the same name as an existing file

This is an issue, because not only are you overwriting a file (which may not be that big of a deal, especially if the user intended to do so), but the Xcode file adder bash script adds another file path to the .xcodeproj file. This is an issue because Xcode looks for two files that are in the same location, and as a result gets confused.

Need to add a way of preventing a user from creating a file that already exists.

Needs a way of deleting files

This is a problem. If a user generates a file that they do not want, they'll run into big problems because they won't be able to delete.

For now, I believe Xcode is fine if a file doesn't exist (simply rm -rf'ing a file should be enough to get rid of it without Xcode spitting out linker errors)

Still need to look into this, though.

Need to fix and localize all fonts

Some of the fonts are getting pulled from CDNs which are a little slow, and some fonts aren't even imported, such as Roboto Condensed. O_O

So many bugs. Needs to be fixed before production.

Need a way to view the .imageset files

Currently it just shows a ton of base64 encoded data within the editor, which is useless. The user should be able to see a preview of their image.

Need to implement this (and it should be easy to implement too).

Need better debugging

Currently, if I mess something up in Xcode, Xcode is very good about showing me the line that is causing the app to crash and gives me a shorthand or explicit error. This is very useful. Ringo currently prints out 99% of the other random logs that Xcode runs when debugging an app. This needs to be fixed soon.

This looks absolutely nasty

Todo: Needs a friendlier startup

Currently it just shows a file with some commented sections on how to use Ringo.

Two possible solutions that could make Ringo seem a lot friendlier to use on startup could be:

  1. An introduction modal that pops up the first time you use Ringo that has some nice greetings and some helpful tips and links on how to learn Swift, debugging, using Ringo, what each of the buttons do, etc.
  2. A landing page which describes some basics about Ringo, why it's been built, why it's so awesome, etc.

Probably both of these solutions should be implemented, but for now, these are just ideas.

Todo: Create a way of viewing the iOS apps on the Android emulator + Android phone

This shouldn't be that hard if you look at it from a hacker's perspective. Simply run the iOS app through either the Appetize simulator or your own native simulator, and then have the Ringo server generate an APK that has a webview linked to the Appetize/iOS simulator's stream.

It would be cool, and fairly easy to build. It would be useful for on-device testing purposes for those who don't have iPhones or Macs to build their iOS apps from.

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.