• Welcome to SpeedSolving.com — the world’s largest puzzle community!

    You’re currently browsing as a guest, which means you have limited access to discussions, resources, member profiles, and community features.

    Join 50,000+ cubers and puzzle enthusiasts from around the world to ask questions, share solves, improve faster, and be part of the community.

    Registration is free, fast, and easy — create your account today.

    Already a member? Log in here to hide this message and start participating.

Introducing VisualCube - Dynamic Cube Images

Visualcube is a php script that allows the rendering of images.

Its code is open source, available (and recommended) for anyone to use, and all you need is access to an Apache web server with PHP and ImageMagick installed, and you can install the script it in like 1 minute: https://github.com/Cride5/visualcube

If anyone is to use it on a permanent or semi-permanent basis on their websites, other than create one image and save it, they should download the code and use it on their own websites, not point it to Conrad's website as that obviously creates a bandwidth problem to him if he receives a lot of calls and is a bit irresponsible to depend on a 3rd party like that.

So for all affected websites by crider.co.uk's offline status I say good riddance for their poor decisions/ignorance/unreliability.
 
Due to bandwidth restrictions on my web host I've implemented a limit of 3 images per minute on the service hosted at cube.crider.co.uk/visualcube.php

If embedding images generated by the service above, consider pre-generating the image(s) and hosting them on your web-server or cloud storage.

Apologies for any inconvenience.
 
Due to bandwidth restrictions on my web host I've implemented a limit of 3 images per minute on the service hosted at cube.crider.co.uk/visualcube.php

If embedding images generated by the service above, consider pre-generating the image(s) and hosting them on your web-server or cloud storage.

Apologies for any inconvenience.

You're tools are meant to be awesome and usable, not limited and (therefore) impractical.

The websites, who use visualcube, perform multiple requests for your images. Look at algdb as example, the STANDARD for looking up and learning new algs.

Though I understand your point, with the whole bandwidth restrictions.


To exit this dilemma, I see two ways:

1. Upgrade your hosting-plan and abbolish the limit. How much do you need for a better plan to grant a service like before the website crashed?

2. Instruct every user properly how to set up his own visualcube-host. Create a instruction-file with proper printscreens and good explanations. The point-after-point instructions on Github may cause problems (as they did, when I tried to install the host).



If one of this option sounds appliable, notify me, I'm sure there's a good way to solve the problem.

Greetings
PixelWizard
 
I've installed some real-time monitoring to better understand the situation. It appears that the service is currently receiving around 10 requests per minute, with bursts of around 100 per min. I've raised the limit to 10 requests every 2-minutes (per user). This should be sufficient for most needs.

The main use case that is blocked by this system is a gallery of cube images containing more than 10 cube images. To work around this I would encourage page authors to save generated images and host them with their own provider.


1. Upgrade your hosting-plan and abbolish the limit. How much do you need for a better plan to grant a service like before the website crashed?
Who is going to pay for the upgrade?

2. Instruct every user properly how to set up his own visualcube-host. Create a instruction-file with proper printscreens and good explanations. The point-after-point instructions on Github may cause problems (as they did, when I tried to install the host).
Unfortunately free time is in short supply these days. The readme instructions, along with the source are part of an open-source project which can be improved by anyone wishing to contribute.


Another solution for folks hosting image galleries would be to use the version deployed here on speedsolving.com. I expect the hosting is better set up for high volume traffic.
 
Last edited:
I've installed some real-time monitoring to better understand the situation. It appears that the service is currently receiving around 10 requests per minute, with bursts of around 100 per min. I've raised the limit to 10 requests every 2-minutes (per user). This should be sufficient for most needs.

Most needs require more than 5 images per request. Such a low limit is unsufficient. What is the absolute top-limit for your bandwith? 5 images per minute are 75KB (avg image size) * 5 = 375KB --> 375KB/ 60s --> 6.25KB/s. I doubt that you have such a low Bandwith... Even free hosters have significantly more.

The main use case that is blocked by this system is a gallery of cube images containing more than 10 cube images. To work around this I would encourage page authors to save generated images and host them with their own provider.

This may apply to "smaller" website, with non-dynamic generated images, but imagine saving 1304 images for all cases on algdb locally. This would be an enormous amount of work.


Who is going to pay for the upgrade?
Depends on the upgrade-cost.

Unfortunately free time is in short supply these days. The readme instructions, along with the source are part of an open-source project which can be improved by anyone wishing to contribute.
Once I figured out how to get it to work, I'll possibly create a proper Installation-Guide :tu

Another solution for folks hosting image galleries would be to use the version deployed here on speedsolving.com. I expect the hosting is better set up for high volume traffic.

I'll check it out :) Thanks for the hint though!
 
PixelWizard,

I get your point, but it's a bit inappropriate to feel so 'owed' by Conrad's service. He put something free out there, and it was (ab)used.
He certainly has no obligation to do *anything*.

Further, it's not really his job to solve my caching issue; I could certainly cache all of the images used by algdb some day :)


Conrad,

I suspect that I'm mostly the cause of your issues. I apologize for that.
I really should have taken the time to get a local copy of visualcube running.

If you are considering the upgrade, please feel free to contact me at [email protected].
I've appreciated your software for a while and am willing to put a bit of money where my mouth is.

Another option would be for me to host vcube for you on Azure. I have essentially unlimited credits, and they support PHP just fine.


Unfortunately due to the GPL licensing, I'm very deterred from helping with the actual code, otherwise I'd try to help there, too! :)
Any chance that this project could really be a MIT or similar license? Otherwise, I have been planning on entirely ditching vcube and creating my own library in the future.

Also, I suspect you may have a vested interested in alg databases, seeing as how you're the other algdb in my mind.
Later this month, my forever-promised upgrades are coming out, and I'd love to have algdb using vcube still at that point!

Stachu
 
PixelWizard,

I get your point, but it's a bit inappropriate to feel so 'owed' by Conrad's service. He put something free out there, and it was (ab)used.
He certainly has no obligation to do *anything*.

Further, it's not really his job to solve my caching issue; I could certainly cache all of the images used by algdb some day :)

Guess you're right. I'm sorry for that, Conrad :/ I was a little bit too harsh
No bad feelings :)

If you are considering the upgrade, please feel free to contact me at [email protected].
I've appreciated your software for a while and am willing to put a bit of money where my mouth is.

I'd also contribute if necessary :tu

Also, I suspect you may have a vested interested in alg databases, seeing as how you're the other algdb in my mind.
Later this month, my forever-promised upgrades are coming out, and I'd love to have algdb using vcube still at that point!

I'm really excited for the update! Cool to see it coming out soon :)
 
Stachu, VisualCube is licensed under LGPL which means that if you're using it as a library then your code can be licensed any way you like. For example, you could write your own alg database that uses VisualCube, and sell it commercially. You're free to also change, improve or fork VisualCube itself, but the restriction is that it must remain open source (LGPL).

In terms of hosting etc, I have absolutely no problem with people running VisualCube mirrors, or creating derived works. In fact I would encourage it. Unfortunately I find myself at a time of life where free time is at a premium so cannot invest the kind of time that I used to in open source projects.
 
Conrad,


Thank you very much for taking the time to respond, and further for clearing up LGPL licensing for me.
GPL has always seemed like such cancer to me, but you make LGPL in particular a bit less scary. :)


I will be playing with your code in the coming days, likely forking it on GitHub.


Further, I will host a copy of VisualCube for the general public to use at large.
I'll post a link once that's done.


Thank you,
Stachu
 
Unfortunately due to the GPL licensing, I'm very deterred from helping with the actual code, otherwise I'd try to help there, too! :)
Any chance that this project could really be a MIT or similar license? Otherwise, I have been planning on entirely ditching vcube and creating my own library in the future.
What exactly is wrong with the use of a GPL license that prevents you from wanting to help the actual code of something like a cube visualizer?
What sounds like you're saying is disappointing in my view.
 
My understanding of GPL may have been wrong.
I have no problems contributing to an open-source project.

I do have problems with a product being released as 'open source' but not being allowed to be used but either more-open or less-open sourced projects (projects released under MIT or on the other side, commercially)
 
Stachu, VisualCube is licensed under LGPL which means that if you're using it as a library then your code can be licensed any way you like. For example, you could write your own alg database that uses VisualCube, and sell it commercially. You're free to also change, improve or fork VisualCube itself, but the restriction is that it must remain open source (LGPL).

In terms of hosting etc, I have absolutely no problem with people running VisualCube mirrors, or creating derived works. In fact I would encourage it. Unfortunately I find myself at a time of life where free time is at a premium so cannot invest the kind of time that I used to in open source projects.

Hi Conrad. Thank you very much for creating VisualCube which I find incredibly useful!

After years of using the VisualCube website, I was unable to generate images at the weekend.

TL;DR - The ImageMagick step appears to be failing on your server and SVG is the only format that currently works.

Whilst installing / debugging VisualCube on my own web server(s), I also spotted a few minor glitches. I've created my own branch in GitHub, fixed the glitches and created a pull request.

Hopefully you'll pull them back into your master branch. :)
 
Hi Logiqx, I've merged your changes. Thanks for the contribution.

The recent interruption to the service is because of a migration. I had to do this because of an un-expected change with the original provider. I'm currently moving the service to modulus.io. A basic service (with version 0.5.3) is now running, but there is currently no raster (png/gif) image generation and no caching. These will should be fixed by the end of the week.

The good news is that there are no bandwidth limits with the new host, so the throttling has been now been removed.
 
Hi Logiqx, I've merged your changes. Thanks for the contribution.

The recent interruption to the service is because of a migration. I had to do this because of an un-expected change with the original provider. I'm currently moving the service to modulus.io. A basic service (with version 0.5.3) is now running, but there is currently no raster (png/gif) image generation and no caching. These will should be fixed by the end of the week.

The good news is that there are no bandwidth limits with the new host, so the throttling has been now been removed.

Thanks. I'm glad to have helped out albeit in a small way.

Great to see you are still around and good news about the new server. :)
 
Back
Top