6 ms·
Shortly: a Serverless Pastebin Service - All Data is Stored in the URL
- greenyoda 13y agoIs there a maximum length for the URL?
- nsmartt 13y agoThere is a maximum length for URLs in general. I think the maximum in IE is somewhere around 2000 characters. Edit; From the README: Different browsers have different limits of the total URL length, however around 2000 characters seems to be the recommended safe maximum. At the moment there is currently nothing to enforce the limit, however a checksum is added to check that we get all the data.
- Permit 13y agoYes and it's browser dependent. Generally once you're in the range of ~2,000 characters the URL is too long. http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers http://stackoverflow.com/questions/417142/what-is-the-maximu...
- mmahemoff 13y agoI found a while ago most shorteners seem to limit at 2000 characters too, like the de facto browser standard mentioned on SO. http://softwareas.com/the-url-shortener-as-a-cloud-database http://softwareas.com/the-url-shortener-as-a-cloud-database
- recursive 13y agoInstead of sharing shortly URLs, why not just share text?
- ecubed 13y agoIRC chat would be my guess. Since data isn't stored on a server/can't be taken down, this seems like this could be useful in the shadier IRC rooms sharing questionable content.
- jstanley 13y agoIf you're pasting the link, you may as well just paste the text. The link is really just an encoded form of the text anyway. EDIT: Not to shit on this project, it's just that pastebin's are typically used to reduce the amount of text that gets pasted in an IRC channel.
- bluedino 13y agoThey're probably working on an (small) image 'host' using this same idea.
- dools 13y agoThere are a range of issues with that but the few that spring to mind immediately are: 1) Pasting into an IRC channel as already noted by someone else and; 2) Pasting text where formatting is important (such as a code snippet) into an email The latter is of particular importance when sending through things like "tags" (ie. javascript snippets) to be embedded in HTML pages for things like analytics, conversion tracking, Wufoo forms, Wistia embeds and the like. If the formatting is off on a lot of that stuff because people have been copying and pasting it in and out of emails then they can end up not working at all. NOW ... the advantage for me over something like pastie.org or pastebin is that when I paste a snippet into a Basecamp todo list item, for example, I'm creating an external dependency on those services for some or all of the relevant data to the todo list item. By having a service which embeds the data into a URL that can then be decoded into it's original format without error, using something that I can reimplement myself if the original service should disappear, I end up with a much more "future proof" and reliable storage of that format sensitive information.
- jstalin 13y agoI would really love to see Shortly plus the Stanford Javascript Crypto Library to be able to create encrypted and password-protected serverless pastebins. http://crypto.stanford.edu/sjcl/ http://crypto.stanford.edu/sjcl/
- glomph 13y agoSomeone posted http://alfg.co/jot/ http://alfg.co/jot/ lower down that uses a javascript implementation of blowfish.
- fosap 13y agoJavascript crypto does not work. The server can the manipulate the JS to send back the text, so it could be server side in first place. And serverside crypto is worse than useless.
- jvictor118 13y agoWhy? This seemed like a good idea to me. I want to be able to decrypt messages sent client-side. My plan was to have a nodejs proxy that gets the data, encrypts it, and then I decrypt client side using this lib. Problem?
- fosap 13y agoIf you do not load the any executable code from the network not. It should be Javascript Crypto in the browser does not work. The problem is of course not specifiy to javascript. It should be "fat client crypto does not work".
- habosa 13y agoIn theory won't it now take just as long to transmit the link as it would to transmit the content itself? I get that this is cool from a "can't take it down" standpoint but I feel like if you're going to have to copy and paste a link containing the entire content you might as well just copy and paste the content. Then again, you could just offload the work to bit.ly and get around that issue.
- roryokane 13y agoShortly compresses the text using the DEFLATE algorithm (http://en.wikipedia.org/wiki/DEFLATE http://en.wikipedia.org/wiki/DEFLATE) followed by Base64 encoding (https://en.wikipedia.org/wiki/Base64 https://en.wikipedia.org/wiki/Base64) before storing it in the URL. Base64 increases the size of data by 33%, but DEFLATE usually decreases the size by more than that. Thus, the link will usually be shorter than the content.
- habosa 13y agoI'm sure it will be somewhat shorter than the content but it will definitely be in the same order of magnitude and likely within a factor of 2. A link that is half as long as its content is pretty unwieldy and will take non-trivial time to transmit at longer lengths. Sort of defeats the point of a link in the first place.
- calinet6 13y agoYes. You might as well just send a gzip'd file directly. It will be higher compression than Deflate (or if not, use BZip or 7zip), won't have the Base64 overhead, and (gasp) won't depend on a web service to decode. It also has the distinct advantage of not being really friggin annoying. In other words, this is entirely useless, except as an amusement. Because it's funny how useless it is.
- jychang 13y agoWell, no. To people, a pastebin.com/asdovnasdofnvopdsisadvasdfgv link is just as unmemorable as a base64 encode of an actual 1kb code data. However, nowadays, if I have a 1kb snippet I want fairly securely shared, sticking it in a chat box isn't a problem.
- tyilo 13y agoDoesn't work for me: Uncaught ReferenceError: $ is not defined
- jstalin 13y agoI tried pasting War and Peace... it created a 435 page URL but both bitly and goo.gl were unable to shorten it :( I'm able to paste the URL in firefox, but Chrome doesn't allow it.
- jtchang 13y agoStop trying to break the whole damn internet!
- edoloughlin 13y agoWhat happens if you paste some shortly links?
- syncerr 13y agoChrome will truncate a pasted URL, but you can navigate to it using a link's href (works the same way with long img src URLs).
- Already__Taken 13y agoThat's absolutely bizarre behaviour. I knew not all browser accept the same maximum length for a url but to truncate one?
- xSwag 13y agoI'm getting Uncaught ReferenceError: $ is not defined Chromium Version 25.0.1364.160 Debian 7.0 (186726)
- matchu 13y agoI did at first, but then it worked on refresh. Go figure.
- isalmon 13y agoPerhaps JQuery gets included at the bottom of the page, but then when you refresh - it's cached and the code is working
- RKearney 13y agoAll the scripts have the async property so they're not executing in sequence.
- lucaspiller 13y agoI'm the creator. Fixed now :)
- siliconc0w 13y agoFriend of mine made http://alfg.co/jot/ http://alfg.co/jot/ which supports encryption. I made the same observation re: just sending the message: https://github.com/alfg/jot/issues/1 https://github.com/alfg/jot/issues/1
- downandout 13y agoInteresting, but given the URL length issues, this isn't really useful for most applications that you would use pastebin for.
- jokoon 13y agookay now I think we really need to kill the web, and start to develop other techs.
- shawnz 13y agoThis is, of course, only serverless with regard to storage, not presentation. Is it feasible to also generate data: URIs that could be used offline? EDIT: Looks like another commenter has already developed a solution :)
- sciencerobot 13y agoHmmm.. Something like cat data.txt | ruby -ne 'require "uri"; print URI.escape($_)' > encoded.txt
- habosa 13y agoAbsolutely. See https://news.ycombinator.com/item?id=5696462 https://news.ycombinator.com/item?id=5696462. Basically just add some HTML and JavaScript to the link with the encoded content and you're good to go. But as I said in another comment, at that point you're just sending the text itself over the wire in a convoluted way without much space savings. At that point I'd just use some public key encryption and post the content directly (PGP?)
- shawnz 13y ago> at that point you're just sending the text itself over the wire in a convoluted way without much space savings Yes, in fact, with the solution linked, it's an increase in space requirements! In my experience, even with a traditional pastebin, the problem isn't being able to get the data over the wire -- it's formatting it. Also, this service opens up the possibility of (ab)using link shorteners for storage.
- roryokane 13y agoI’m sure it would be possible. You’d have to embed the CSS and JavaScript in https://github.com/lucaspiller/shortly https://github.com/lucaspiller/shortly into an HTML page, then represent that page as a data: URI. You could leave out the text-compression code and include only the decompression code, because the page only needs to decompress its embedded message. You would minify the code so there is less of it to store in the URL. You might even be able to shorten the URL by having the page bootstrap itself – DEFLATE all code except the code for INFLATEing, then INFLATE on the rest of the code for displaying the text, then run that code to INFLATE the text itself and display it. Alternatively, you could just give someone a Shortly link and write a note next to it saying “If that link doesn’t work, just run that URL’s hash fragment through Base64-decode followed by INFLATE”, relying on the user to search for suitable software in that case. That would not help a user who is offline, unless their OS comes with utilities for those algorithms, but it would help if you’re just worried about Shortly going down.
- mlreed328 13y agoSimply does not work for me.
- ontouchstart 13y agoI have been doing this for a while on my iPhone via twitter: http://twitter.com/ontouchstart http://twitter.com/ontouchstart
- taternuts 13y agoThis one is fun: http://t.co/Fa52L70CLN http://t.co/Fa52L70CLN
- ereckers 13y agoNo va w/ Chrome + Win7
- residualmind 13y agoAfter I saw this, I had to make something like it that's completely contained in the uri itself.. :D data:text/html;,<textarea id="txt" cols=80 rows=24>hello there</textarea><br><input value="get link" type=button onclick="(function(){document.location.href=(document.location.href.replace(/24\>.*<\/textarea>/,'24>'+document.getElementById('txt').value+'</textarea>')); }())">
- habosa 13y agoThis could be combined with whatever algorithm is being used on Shortly. This still needs the Shortly website for decoding ... your method would allow the embedding of the encoding/decoding function in the link itself which is more interesting imo. The added length of some obfuscated JavaScript will be very small compared to large-content links.
- residualmind 13y agoNow in Base64, which makes the link longer, but is in most modern browsers... I should really get back to work, this is just too much fun. data:text/html;base64,PHRleHRhcmVhIGlkPSJ0eHQiIGNvbHM9ODAgcm9 3cz0yND47byk8L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9ImdldCBsaW5r IiB0eXBlPWJ1dHRvbiBvbmNsaWNrPSIoZnVuY3Rpb24oKXtkb2N1bWVudC5sb 2NhdGlvbi5ocmVmPSdkYXRhOnRleHQvaHRtbDtiYXNlNjQsJysod2luZG93Lm J0b2Eod2luZG93LmF0b2IoZG9jdW1lbnQubG9jYXRpb24uaHJlZi5zdWJzdHI oMjIpKS5yZXBsYWNlKC8yNFw+Lio8XC90ZXh0YXJlYT4vLCcyND4nK2RvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCd0eHQnKS52YWx1ZSsnJmx0Oy90ZXh0YXJlY SZndDsnKSkpfSgpKSI+
- habosa 13y agoThis is awesome, that's exactly what I was talking about. This is truly "serverless" whereas Shortly is not. Also if the creator of Shortly is reading my comments, I apologize for the negativity I was mostly just thinking out loud. Kudos to you for making something interesting and putting it out there.
- residualmind 13y ago
- deleted 13y ago[deleted]
- onster 13y agoI don't understand it. Are you trying to compete with Google? http://www.google.com/webhp#q=%42%54%57%2c%20%74%68%65%20%6e%61%6d%65%20%53%68%6f%72%74%6c%79%20%69%73%20%71%75%69%74%65%20%69%72%6f%6e%69%63%2e http://www.google.com/webhp#q=%42%54%57%2c%20%74%68%65%20%6e...
- rorrr2 13y agoIE URL character limit = 2,083 http://support.microsoft.com/kb/208427 http://support.microsoft.com/kb/208427
- motyard 13y agoGood, but there is a limit. I once made this on same principle http://motyar.info/quotes http://motyar.info/quotes
- fidz 13y agosomehow, it doesn't work in my Chrome (Chrome 25)
- TheShadowFog 13y agoUgh. Ugly.
- InclinedPlane 13y agoStep 2: create a URL shortening service that uses the same scheme. Edit: Actually, now that I think of it, I might do that as a project.
- the1 13y agodoesn't work with unicode.
- jaredstenquist 13y agoIt didn't work with 5 paragraphs of lorem ipsum. There was no error from the site to tell me it was too long. It needs some basic validation
- prawn 13y agoTried it twice and it didn't work for me either, also without any noticeable error (Chrome/OSX).
- deleted 13y ago[deleted]
- dools 13y agoI love it! For me the big benefit here is that when I'm communicating code snippets that are often "format sensitive" through channels such as IRC, email or project management tools (like basecamp) I will almost always use a paste service in order to ensure that no crap creeps in throughout the process. I most frequently either use sprunge.us or pastie.org and grab the "raw" URL before pasting it in. This does, however, create an external dependency, and it has happened before that pastie.org was down and a bunch of tasks I had meticulously created couldn't be read by the person who was supposed to be doing them (it didn't last long but it was annoying). Sprunge.us is actually open source so you can grab and host your own, but that takes a little time and effort and I've never ended up bothering ... THIS, on the other hand, provides a handy way for me to create these little "pastes" and share them with my team, secure in the knowledge that if things bum out I can, at a pinch, get an alternative service live to read the formatted data in. Of course, this doesn't apply if the URL has been shortened ;) Speaking of which, you could stick a URL shortener in pretty easily based on the one I did for CueYouTube[1]. I used this library http://www.myjqueryplugins.com/jquery-plugin/jly1 http://www.myjqueryplugins.com/jquery-plugin/jly1 which has an API that works entirely on the client side. Kudos! [1]http://www.cueyoutube.com http://www.cueyoutube.com
- matb33 13y agoSo someone made one, cool! https://news.ycombinator.com/item?id=5051047 https://news.ycombinator.com/item?id=5051047
- orangethirty 13y agoHmm, this could work very well for search. Forking... (:
- mtthw 13y agoBEHOLD!!! data:text/html, your notesy stuff
- captn3m0 13y agoSimilar service, with link shortening and markdown support: http://hashify.me/ http://hashify.me/
- errnoh 13y agoYeah, pretty much same service (from couple years ago). Shortly does seem to have a bit larger character limit though.
- startswithaj 13y agoI have to fire the url twice in chrome in console I get uncaught ReferenceError: $ is not defined Is it firing some code before it can load Jquery?
- startswithaj 13y agoIt needs a $ on the first line of shortly.js (function() { >>>$(function() {
- lucaspiller 13y agoI'm the creator. Fixed now :)
- lucaspiller 13y agoHey, I'm the creator. I wondered why there were two issues raised within 24 hours, checked here, and well, that explains it... I've just fixed the async error (#4), so any of you having issues with "$ not defined" should have them solved now. This was originally covered here a year ago: https://news.ycombinator.com/item?id=3834643 https://news.ycombinator.com/item?id=3834643 Any questions, reply to me or raise an issue on GitHub! Thanks!
- Nux 13y agoHaha! This will piss off some people on Freenode who always send you to a pastebin if you have more than 2 lines of stuff to paste! :)
- nodata 13y agoHow is this serverless? Edit: shawnz already mentioned this.
- correnos 13y agoWhat advantage does this site give over just pasting the data directly? The shortened URL aspect is gone, so the only "advantage" I can see is obfuscation. And if you want that you can base64 your text directly.
- jvictor118 13y agoI got this: Please let me know if this isn't what you're looking for.