Utility Mill - My Latest Site - Feedback is Appreciated
utilitymill.com
utilitymill.com
<braindump>
You're gonna need to support more libraries. I'm making a util to turn a page of thumbnails into a page of inline full-sized images and am going to need re to do it. At the very least create a whitelist of allowed imports; I'd really like to be able to use urllib2, re, some HMTL/XML parsers, etc...
The best use of a service like this appears to me to be writing little web clients to interact with existing web services, kinda like you're writing shell scripts for the web. And branding aside, I think you're going to need a new definition for "utility." It's a little too ambiguous.
I think there's a lot of potential value here but am also wondering about possible revenue models. Maybe restrict system resources for free accounts or offer additional libraries for premium members? Seems like this would be a sub-optimal site to monetize through advertising.
</braindump>
There are allowed utilities currently: "calendar, datetime, difflib, math, random ,re, string, time, and urllib are already imported."
I did strip out things that connect to other websites though. I'm not sure how I could allow outgoing connections, and still prevent a malicious user from sending spam, or other bad things? But I'll add that down the road perhaps.
I'm aiming to change the security system so that the entire Python interpreter is open to users within a few weeks. (I'm still not sure about outgoing connections though).
Any ideas for the branding? Why is utility too ambiguous?
For revenue, so far I'm thinking having premium accounts someday with cool features like download desktop app version of any utility, or standalone CGI script.
That's a shame. I was wondering why openurl didn't work. Why import the module if you don't allow outgoing connections? You will have to address the spam issue eventually but really that's almost a problem of success; focus on it when you need to. Until then, disallowing outgoing connections is overly restrictive and cripples what could potentially be a really cool service.
I also noticed that try...except blocks are blocked as well. Why is that?
The security code I found doesn't allow try ..except, I'm not sure why. In any case, what I'm working on right now is a way to remove most or all of the restrictions. I'll let you know when that's up and running.
I kind of wish that when using a utility, basically the page feels like I'm just using that utility and that the focus isn't on utility mill itself. Think about how Gawker media positions itself in relationship to its blogs. If you put the main site aside and let the utilities be the forefront, you get bigger viral possibilities since people are likely to pass around a util just because it's handy (rather than passing around util mill). Some steps towards this would be giving utils nice, top level paths (no /utility/) and designing the page so that the non-utility stuff is in a non-imposing frame around it rather than being relatively large.
Data collection would be trickier since so far I'm seeing that as outside the scope of a utility. I'm trying to avoid making it into a general purpose build-a-web-app site since I don't want a huge learning barrier for new users. I could be wrong though, maybe that is what people want.
For the AJAX, how do you see that working? I guess you're talking about the input builder on the utility editing page?
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.
If you think this is a server error, please contact the webmaster. Error 500 utilitymill.com Tue Oct 2 19:07:13 2007 Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8c DAV/2 mod_fastcgi/2.4.2 PHP/5.2.3 SVN/1.4.4
When working correctly it should kill running code after 2 seconds of runtime. (Perhaps it needs a maximum response size too)
If the site gets more popular, I'd like to switch to running an unrestricted interpreter in a chroot jail so users will have access to the full power of Python and third party libraries like PIL.
FYI, I get a server error when I try the Run Utility example at http://www.utilitymill.com/help/api
I'll have to make some more screencasts when I get a chance, including the API.
BTW, I fixed the API error you were having. Sorry about that.
Sounds pretty similar to Yahoo Pipes. On the other hand, this site actually works.
Is it not obvious from the main page, or did you have something else in mind? I went with a more RESTful like approach than XML-RPC, basically copying the del.icio.us API design (XML and JSON)
This is a great site. I look forward to seeing it's progression.
Glad you like it.