Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
140byt.es -- Click ↑↑ fork ↑↑ to play!

140byt.es

A tweet-sized, fork-to-play, community-curated collection of JavaScript.

How to play

  1. Click the Fork button above to fork this gist.
  2. Modify all the files to according to the rules below.
  3. Save your entry and tweet it up!

Keep in mind that thanks to the awesome sensibilities of the GitHub team, gists are just repos. So feel free to clone yours and work locally for a more comfortable environment, and to allow commit messages.

Rules

All entries must exist in an index.js file, whose contents are

  1. an assignable, valid Javascript expression that
  2. contains no more than 140 bytes, and
  3. does not leak to the global scope.

All entries must also be licensed under the WTFPL or equally permissive license.

For more information

The 140byt.es site hasn't launched yet, but for now follow @140bytes on Twitter.

To learn about byte-saving hacks for your own code, or to contribute what you've learned, head to the wiki.

140byt.es is brought to you by Jed Schmidt. It was inspired by work from Thomas Fuchs and Dustin Diaz.

function(){
// make sure
// to annotate
// your code
// so everyone
// can learn
// from it!
// see jed's entries
// for examples.
}
function(){/* Your entry, a useful, unique, and valid JavaScript expression that packs as much functionality into 140 bytes as possible. */}
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
{
"name": "theNameOfYourLibWhichMustBeAValidCamelCasedJavaScriptIdentifier",
"description": "This should be a short description of your entry.",
"keywords": [
"five",
"descriptive",
"keywords",
"or",
"fewer"
]
}
<!DOCTYPE html>
<body>
<div>Expected value: <b>undefined</b></div>
<div>Actual value: <b id="ret"></b></div>
</body>
<script>
// write a small example that shows off the API for your example
// and tests it in one fell swoop.
var myFunction = function(){ /* the code here should be identical to the entry. */ }
var ret = myFunction()
document.getElementById( "ret" ).innerHTML = ret
</script>
@mathiasbynens

This comment has been minimized.

Show comment Hide comment
@mathiasbynens

mathiasbynens May 18, 2011

Nit: Twitter allows more than 140 bytes. (Multi-byte characters still only count as one character.)

Nit: Twitter allows more than 140 bytes. (Multi-byte characters still only count as one character.)

@140bytes

This comment has been minimized.

Show comment Hide comment
@140bytes

140bytes May 18, 2011

Yeah, I wish they hadn't done that. CJK tweeters get an unfair advantage on Twitter.

Owner

140bytes commented May 18, 2011

Yeah, I wish they hadn't done that. CJK tweeters get an unfair advantage on Twitter.

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral May 21, 2011

Save your entry and tweet it up!

When tweeting up, is any particular manner recommended?

a) http://140byt.es/#gists/xxx #140bytes
b) the code #140bytes
c) just the code
d) ?

Save your entry and tweet it up!

When tweeting up, is any particular manner recommended?

a) http://140byt.es/#gists/xxx #140bytes
b) the code #140bytes
c) just the code
d) ?

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 21, 2011

@atesgoral

Until the site is properly up, a link to the gist with "+@140bytes" is good.

jed commented May 21, 2011

@atesgoral

Until the site is properly up, a link to the gist with "+@140bytes" is good.

@eliperelman

This comment has been minimized.

Show comment Hide comment
@eliperelman

eliperelman May 23, 2011

If the code is meant to be assigned to a variable, does the code need to be an self-invoked anonymous function that returns a function, or can the snippet just be a function?

For example:

var method = /* my code snippet injected here */;

var method = (function() {
    return function() {
        // functionality here
    };
})();

// OR:

var method = function() {
    // functionality here
};

If the code is meant to be assigned to a variable, does the code need to be an self-invoked anonymous function that returns a function, or can the snippet just be a function?

For example:

var method = /* my code snippet injected here */;

var method = (function() {
    return function() {
        // functionality here
    };
})();

// OR:

var method = function() {
    // functionality here
};
@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 23, 2011

@eliperelman the latter. you only need to do the former if you need to keep some kind of persisted state across calls. see the parseURL function for an example.

jed commented May 23, 2011

@eliperelman the latter. you only need to do the former if you need to keep some kind of persisted state across calls. see the parseURL function for an example.

@eliperelman

This comment has been minimized.

Show comment Hide comment
@eliperelman

eliperelman May 23, 2011

Thanks, where do you want completed URLs to be posted?

Thanks, where do you want completed URLs to be posted?

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 23, 2011

no need, all you need to do is fork and you'll show up there →

jed commented May 23, 2011

no need, all you need to do is fork and you'll show up there →

@joside

This comment has been minimized.

Show comment Hide comment
@joside

joside May 25, 2011

"(2) may be self-executing" ??? What's that?

joside commented May 25, 2011

"(2) may be self-executing" ??? What's that?

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 25, 2011

@joside this is a valid entry: function(){}()

jed commented May 25, 2011

@joside this is a valid entry: function(){}()

@joside

This comment has been minimized.

Show comment Hide comment
@joside

joside May 25, 2011

@jed sure this is valid, but this function is definitly not self executing.
Maybe it would be better to say this is a "function invoked directly after declaration"

joside commented May 25, 2011

@jed sure this is valid, but this function is definitly not self executing.
Maybe it would be better to say this is a "function invoked directly after declaration"

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 25, 2011

@joside cool, fixed!

jed commented May 25, 2011

@joside cool, fixed!

@Kambfhase

This comment has been minimized.

Show comment Hide comment
@Kambfhase

Kambfhase May 25, 2011

That pattern is called IIFE nowadays.

That pattern is called IIFE nowadays.

@p01

This comment has been minimized.

Show comment Hide comment
@p01

p01 May 29, 2011

The annoted. js and index.js in this gist can be misleading regarding function definition. As seen in https://gist.github.com/962814 , the 140byt.es gist can use a named function because such gist can perfectly be used in ways that do not leak in the global scope.

p01 commented May 29, 2011

The annoted. js and index.js in this gist can be misleading regarding function definition. As seen in https://gist.github.com/962814 , the 140byt.es gist can use a named function because such gist can perfectly be used in ways that do not leak in the global scope.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo May 31, 2011

This package.json is not JSON btw.

jo commented May 31, 2011

This package.json is not JSON btw.

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral May 31, 2011

I think the inclusion of a test.js to provide usage examples should be encouraged by the instructions.

I think the inclusion of a test.js to provide usage examples should be encouraged by the instructions.

@nesk

This comment has been minimized.

Show comment Hide comment
@nesk

nesk May 31, 2011

↑ I approve this message ! ↑

nesk commented May 31, 2011

↑ I approve this message ! ↑

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed May 31, 2011

cool, thanks for all the feedback. i've made some changes, let me know if there's anything i missed.

jed commented May 31, 2011

cool, thanks for all the feedback. i've made some changes, let me know if there's anything i missed.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo May 31, 2011

@jed, thats great!

jo commented May 31, 2011

@jed, thats great!

@mathiasbynens

This comment has been minimized.

Show comment Hide comment
@mathiasbynens

mathiasbynens Jun 1, 2011

How about adding a a doctype to test.html, if only to trigger standards mode?

<!DOCTYPE html> 
<title>Foo</title>
<div>Expected value: <b>undefined</b></div>
<div>Actual value: <b id="ret"></b></div>
<script>
  // write a small example that shows off the API for your example
  // and tests it in one fell swoop.

  var myFunction = function(){ /* the code here should be identical to the entry. */ }

  document.getElementById( "ret" ).innerHTML = myFunction()
</script>

How about adding a a doctype to test.html, if only to trigger standards mode?

<!DOCTYPE html> 
<title>Foo</title>
<div>Expected value: <b>undefined</b></div>
<div>Actual value: <b id="ret"></b></div>
<script>
  // write a small example that shows off the API for your example
  // and tests it in one fell swoop.

  var myFunction = function(){ /* the code here should be identical to the entry. */ }

  document.getElementById( "ret" ).innerHTML = myFunction()
</script>
@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Jun 1, 2011

Shouldn't there be a test.js that can be copy/pasted into any console (browser, Rhino, Node, etc) instead of constraining it to the browser with test.html?

Shouldn't there be a test.js that can be copy/pasted into any console (browser, Rhino, Node, etc) instead of constraining it to the browser with test.html?

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Jun 1, 2011

jed commented Jun 1, 2011

@mathiasbynens

This comment has been minimized.

Show comment Hide comment
@mathiasbynens

mathiasbynens Jun 1, 2011

@jed I see you’ve edited test.html, adding the doctype – thanks! However, you’re still closing the body before inserting the <script>, which is syntactically invalid. For inspiration, feel free to have a look at my proposed test.html in my comment above :) As you can see, you could just get rid of the opening and closing body tags, as long as there’s a body-only element (in this case, <div>) preceding the <script>. Alternatively, you could just move the closing </body> tag down.

@jed I see you’ve edited test.html, adding the doctype – thanks! However, you’re still closing the body before inserting the <script>, which is syntactically invalid. For inspiration, feel free to have a look at my proposed test.html in my comment above :) As you can see, you could just get rid of the opening and closing body tags, as long as there’s a body-only element (in this case, <div>) preceding the <script>. Alternatively, you could just move the closing </body> tag down.

@140bytes

This comment has been minimized.

Show comment Hide comment
@140bytes

140bytes Jun 1, 2011

cool, fixed.

Owner

140bytes commented Jun 1, 2011

cool, fixed.

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Jun 1, 2011

With a pure-JavaScript test bed, you could potentially allow running tests inline (within the same page that's displaying the gist) when 140byt.es is launched. Arbitrary HTML markup is not the most portable way to capture tests, but it probably wouldn't be a big deal to parse out the tests from HTML...

With a pure-JavaScript test bed, you could potentially allow running tests inline (within the same page that's displaying the gist) when 140byt.es is launched. Arbitrary HTML markup is not the most portable way to capture tests, but it probably wouldn't be a big deal to parse out the tests from HTML...

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 2, 2011

I propose to add another constraint:

  • the function should not access the global scope

This way the function would have to receive globals like document or window as parameter. With this seperation dogma 140bytes would be better testable, smaller and more reusable.

jo commented Jun 2, 2011

I propose to add another constraint:

  • the function should not access the global scope

This way the function would have to receive globals like document or window as parameter. With this seperation dogma 140bytes would be better testable, smaller and more reusable.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 2, 2011

I would also prefer a pure test.js. (And maybe it could be better called example.js.)

jo commented Jun 2, 2011

I would also prefer a pure test.js. (And maybe it could be better called example.js.)

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 2, 2011

@jed: thanks for starting this über awesome project!

jo commented Jun 2, 2011

@jed: thanks for starting this über awesome project!

@Kambfhase

This comment has been minimized.

Show comment Hide comment
@Kambfhase

Kambfhase Jun 3, 2011

the function should not access the global scope

thats I huge impact! It means I cannot even access Math or Object, without them getting passed to me first! I don't see how this will make entries more testable or smaller( well, maybe). They could be more reusable if you work with frames, and can pass in different docments.

I think this constraint is too much to ask for.

the function should not access the global scope

thats I huge impact! It means I cannot even access Math or Object, without them getting passed to me first! I don't see how this will make entries more testable or smaller( well, maybe). They could be more reusable if you work with frames, and can pass in different docments.

I think this constraint is too much to ask for.

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Jun 3, 2011

Can core JS objects (e.g. Math) be considered global? Also, does "access" imply "pollute" or does it really mean "read/write"?

Can core JS objects (e.g. Math) be considered global? Also, does "access" imply "pollute" or does it really mean "read/write"?

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Jun 3, 2011

given that Object === window.Object and so on for these things, i would definitely consider them global.

i'm mostly concerned with unintended side effects due to global pollution, such as leaving temporary variables everywhere.

jed commented Jun 3, 2011

given that Object === window.Object and so on for these things, i would definitely consider them global.

i'm mostly concerned with unintended side effects due to global pollution, such as leaving temporary variables everywhere.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 3, 2011

@Kambfhase: I admit I haven't thought of Math and Object and even forgot Date. Shame on me!
I totally agree that the existence those global objects should be implied. Could you agree with

  • the function should not presuppose global objects except the standard global objects

as listed in eg. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects#Standard_global_objects_(alphabetically)

I am especially focused on document and window which are not available outside the browser.

jo commented Jun 3, 2011

@Kambfhase: I admit I haven't thought of Math and Object and even forgot Date. Shame on me!
I totally agree that the existence those global objects should be implied. Could you agree with

  • the function should not presuppose global objects except the standard global objects

as listed in eg. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects#Standard_global_objects_(alphabetically)

I am especially focused on document and window which are not available outside the browser.

@Kambfhase

This comment has been minimized.

Show comment Hide comment
@Kambfhase

Kambfhase Jun 3, 2011

I am especially focused on document and window which are not available outside the browser.

true. But if a snippet uses document it most likely has no use outside the browser. And instead of using window, ppl can use self which is the very same, but shorter plus it doesnt fail in ES5 compared to this.

I am especially focused on document and window which are not available outside the browser.

true. But if a snippet uses document it most likely has no use outside the browser. And instead of using window, ppl can use self which is the very same, but shorter plus it doesnt fail in ES5 compared to this.

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Jun 3, 2011

there is still much to be done with the site, but for now i am still slammed with client work.

i had this idea, though, which may be relevant: provide a dependencies array in the package.json, which has the IDs of other entries. then, when we build an app containing several entries, your entry would be curried so that the first n arguments are the dependencies themselves.

jed commented Jun 3, 2011

there is still much to be done with the site, but for now i am still slammed with client work.

i had this idea, though, which may be relevant: provide a dependencies array in the package.json, which has the IDs of other entries. then, when we build an app containing several entries, your entry would be curried so that the first n arguments are the dependencies themselves.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 3, 2011

maybe you're right. My underlying intention had arising while trying to validate the gists server side. Maybe thats the only need for that constraint and has no use outside of that specific case.

Any ideas on how to perform server side validation for 140s using document?

jo commented Jun 3, 2011

maybe you're right. My underlying intention had arising while trying to validate the gists server side. Maybe thats the only need for that constraint and has no use outside of that specific case.

Any ideas on how to perform server side validation for 140s using document?

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 3, 2011

@jed, those dependencies are great!

jo commented Jun 3, 2011

@jed, those dependencies are great!

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Jun 3, 2011

Any ideas on how to perform server side validation for 140s using document?

@jo, Envjs might help.

Any ideas on how to perform server side validation for 140s using document?

@jo, Envjs might help.

@jo

This comment has been minimized.

Show comment Hide comment
@jo

jo Jun 3, 2011

@atesgoral: thank you, I will have a look

jo commented Jun 3, 2011

@atesgoral: thank you, I will have a look

@Kambfhase

This comment has been minimized.

Show comment Hide comment
@Kambfhase

Kambfhase Jun 3, 2011

Any ideas on how to perform server side validation for 140s using document?

Take the "selector function", it uses document. It mainly exists as a shim for older browsers. Is there even a use-case for it on the server? I highly doubt that.

I have mixed feelings about the dependencies array. I thought that each 140bytes entry should be monolithic. If you want to use a snippet you can then simply copy and paste it. Everything bigger can go to http://microjs.com/ .

Any ideas on how to perform server side validation for 140s using document?

Take the "selector function", it uses document. It mainly exists as a shim for older browsers. Is there even a use-case for it on the server? I highly doubt that.

I have mixed feelings about the dependencies array. I thought that each 140bytes entry should be monolithic. If you want to use a snippet you can then simply copy and paste it. Everything bigger can go to http://microjs.com/ .

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Jun 3, 2011

I have mixed feelings about the dependencies array.

I second that sentiment.

Once you start creating dependencies among libraries/modules, it can quickly turn into a maintenance nightmare. Some of these libraries are still in-flux: their interfaces, or even their behaviour may change. Also, it creates a barrier for newcomers: It creates a constant need to know what's available to use as dependencies. I also have other negative gut-feelings that I cannot articulate with words right now...

I also suggest introducing some kind of "140byt.es stamp" to certify gists as meeting the requirements and quality standards.

I have mixed feelings about the dependencies array.

I second that sentiment.

Once you start creating dependencies among libraries/modules, it can quickly turn into a maintenance nightmare. Some of these libraries are still in-flux: their interfaces, or even their behaviour may change. Also, it creates a barrier for newcomers: It creates a constant need to know what's available to use as dependencies. I also have other negative gut-feelings that I cannot articulate with words right now...

I also suggest introducing some kind of "140byt.es stamp" to certify gists as meeting the requirements and quality standards.

@mathiasbynens

This comment has been minimized.

Show comment Hide comment
@mathiasbynens

mathiasbynens Jun 11, 2011

There’s some trailing whitespace in the test.html file. Wasted bytes!

There’s some trailing whitespace in the test.html file. Wasted bytes!

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Jun 22, 2011

Could we somehow clear up the unfilled gists on the right side?

atk commented Jun 22, 2011

Could we somehow clear up the unfilled gists on the right side?

@Kambfhase

This comment has been minimized.

Show comment Hide comment
@Kambfhase

Kambfhase Jun 22, 2011

https://gist.github.com/1002999 or wait for the 140byt.es website

https://gist.github.com/1002999 or wait for the 140byt.es website

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Jul 1, 2011

I'd like to see something like "golf request" here where developers can enter small snippets with little more than 140bytes so the community can help them to get rid of the last remaining spare bytes.

atk commented Jul 1, 2011

I'd like to see something like "golf request" here where developers can enter small snippets with little more than 140bytes so the community can help them to get rid of the last remaining spare bytes.

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Jul 3, 2011

@atk

the best bet is to go ahead and submit a work in progress. entries don't need to be within 140 bytes right off the bat.

jed commented Jul 3, 2011

@atk

the best bet is to go ahead and submit a work in progress. entries don't need to be within 140 bytes right off the bat.

@xuyuanok

This comment has been minimized.

Show comment Hide comment
@xuyuanok

xuyuanok Aug 20, 2011

eeeeeeeeeeeee

eeeeeeeeeeeee

@tsaniel

This comment has been minimized.

Show comment Hide comment
@tsaniel

tsaniel Aug 23, 2011

I wonder if there is a 140bytes for css.

tsaniel commented Aug 23, 2011

I wonder if there is a 140bytes for css.

@p01

This comment has been minimized.

Show comment Hide comment
@p01

p01 Aug 23, 2011

@tsaniel: I'd love to see that. I made a couple of tweet-sized user CSS including a TurnOffTheLight for YouTube and Vimeo, and a "noise" filter for Facebook

p01 commented Aug 23, 2011

@tsaniel: I'd love to see that. I made a couple of tweet-sized user CSS including a TurnOffTheLight for YouTube and Vimeo, and a "noise" filter for Facebook

@tsaniel

This comment has been minimized.

Show comment Hide comment
@tsaniel

tsaniel Aug 27, 2011

@p01: I'd love to see that too. The 140bytes for javascript lets me learn lots of javascript tricks, I hope the css one will do so.

tsaniel commented Aug 27, 2011

@p01: I'd love to see that too. The 140bytes for javascript lets me learn lots of javascript tricks, I hope the css one will do so.

@tsaniel

This comment has been minimized.

Show comment Hide comment
@tsaniel

tsaniel Sep 2, 2011

I think we should remind people to name their gist's description.
As it's hard to know whether one really did something or just fork.

tsaniel commented Sep 2, 2011

I think we should remind people to name their gist's description.
As it's hard to know whether one really did something or just fork.

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Sep 2, 2011

i dunno, i think the tags on the 140byt.es site are probably good enough, since descriptions are truncated at a few words here anyway.

jed commented Sep 2, 2011

i dunno, i think the tags on the 140byt.es site are probably good enough, since descriptions are truncated at a few words here anyway.

@williammalo

This comment has been minimized.

Show comment Hide comment
@williammalo

williammalo Mar 30, 2012

uhhhhh... How do I get my gists on the 140byt.es website?
Is it automatic? My snippets aren't there :(

uhhhhh... How do I get my gists on the 140byt.es website?
Is it automatic? My snippets aren't there :(

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Mar 30, 2012

Since we don't want spam entries, jed usually updates them manually. Since he's currently rather busy as js1k judge, please be patient until he finds the time.

atk commented Mar 30, 2012

Since we don't want spam entries, jed usually updates them manually. Since he's currently rather busy as js1k judge, please be patient until he finds the time.

@Inkbug

This comment has been minimized.

Show comment Hide comment
@Inkbug

Inkbug Aug 1, 2012

@tsaniel

This comment has been minimized.

Show comment Hide comment
@tsaniel

tsaniel Aug 2, 2012

Nobody's around...

tsaniel commented Aug 2, 2012

Nobody's around...

@atesgoral

This comment has been minimized.

Show comment Hide comment
@atesgoral

atesgoral Aug 2, 2012

@tsaniel Every possible function that can fit into 140 characters has been written. Nothing more to see here...

@tsaniel Every possible function that can fit into 140 characters has been written. Nothing more to see here...

@Inkbug

This comment has been minimized.

Show comment Hide comment
@Inkbug

Inkbug Aug 2, 2012

@tsaniel @atesgoral What about my function (three comments up) - can anyone shrink it?

Inkbug commented Aug 2, 2012

@tsaniel @atesgoral What about my function (three comments up) - can anyone shrink it?

@williammalo

This comment has been minimized.

Show comment Hide comment
@williammalo

williammalo Aug 2, 2012

@atesgoral
NOOOOOOOOOO!!!!!!!

@atesgoral
NOOOOOOOOOO!!!!!!!

@tsaniel

This comment has been minimized.

Show comment Hide comment
@tsaniel

tsaniel Sep 27, 2012

I can't even reply to any gist, anyone knows what's going on?

tsaniel commented Sep 27, 2012

I can't even reply to any gist, anyone knows what's going on?

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Dec 13, 2012

The new layout breaks some of our concepts... :-(

atk commented Dec 13, 2012

The new layout breaks some of our concepts... :-(

@dvhk

This comment has been minimized.

Show comment Hide comment
@dvhk

dvhk Aug 2, 2013

Sorry, I don't use twitter, but here's a Lindenmayer system and some basic visualisation:

<title>L-system test</title> <script>

// A Lindenmayer system, see http://en.wikipedia.org/wiki/L-system
// Input:rules as a lookup table, start String, and iteration count. Outputs result String
// Example 1: Algae from the Wikipedia page above: f({"A":"AB","B":"A"},"A",3)
// Example 4, note that non-changing symbols also need rules: f({"F":"F+F-F-F+F","-":"-","+":"+"},"F",3)
function f(r,s,i){for(j=i;j--;){var a=s.split('');for(k=a.length;k--;){a[k]=r[a[k]];}s=a.join('');}return s;}

// A shorter-than-256-bytes simple turtle graphics SVG visualisation for the Lindenmayer system output String.
// Usage with Example 4 above: g( f({"F":"F+F-F-F+F","-":"-","+":"+"},"F",3) );
function g(s){var i=[0,3,0,-3],j=[-3,0,3,0],d=9,a=s.split(''),v='';for(k=a.length;k--;){if(a[k]=='F'){v+=' l'+i[d%4]+' '+j[d%4];}if(a[k]=='+'){d++}if(a[k]=='-'){d--}}document.body.innerHTML+="";}

</script>
Please enable JavaScript!

dvhk commented Aug 2, 2013

Sorry, I don't use twitter, but here's a Lindenmayer system and some basic visualisation:

<title>L-system test</title> <script>

// A Lindenmayer system, see http://en.wikipedia.org/wiki/L-system
// Input:rules as a lookup table, start String, and iteration count. Outputs result String
// Example 1: Algae from the Wikipedia page above: f({"A":"AB","B":"A"},"A",3)
// Example 4, note that non-changing symbols also need rules: f({"F":"F+F-F-F+F","-":"-","+":"+"},"F",3)
function f(r,s,i){for(j=i;j--;){var a=s.split('');for(k=a.length;k--;){a[k]=r[a[k]];}s=a.join('');}return s;}

// A shorter-than-256-bytes simple turtle graphics SVG visualisation for the Lindenmayer system output String.
// Usage with Example 4 above: g( f({"F":"F+F-F-F+F","-":"-","+":"+"},"F",3) );
function g(s){var i=[0,3,0,-3],j=[-3,0,3,0],d=9,a=s.split(''),v='';for(k=a.length;k--;){if(a[k]=='F'){v+=' l'+i[d%4]+' '+j[d%4];}if(a[k]=='+'){d++}if(a[k]=='-'){d--}}document.body.innerHTML+="";}

</script>
Please enable JavaScript!
@Revlin

This comment has been minimized.

Show comment Hide comment
@Revlin

Revlin Sep 29, 2013

Why did you call the gist LICENSE.txt? Is there a story behind that?

Revlin commented Sep 29, 2013

Why did you call the gist LICENSE.txt? Is there a story behind that?

@Revlin

This comment has been minimized.

Show comment Hide comment
@Revlin

Revlin Sep 29, 2013

Alright! I just re-enabled the javascript: uri thingy in firefox and tried https://gist.github.com/4275420

javascript:(function(){var a="-webkit-",b='transform:rotate(1turn);',c='transition:4s;';document.head.innerHTML+='<style>body{'+a+b+a+c+b+c})();

Cool!
hehehe!

Revlin commented Sep 29, 2013

Alright! I just re-enabled the javascript: uri thingy in firefox and tried https://gist.github.com/4275420

javascript:(function(){var a="-webkit-",b='transform:rotate(1turn);',c='transition:4s;';document.head.innerHTML+='<style>body{'+a+b+a+c+b+c})();

Cool!
hehehe!

@Revlin

This comment has been minimized.

Show comment Hide comment
@Revlin

Revlin Sep 29, 2013

Yeah, I'm new to this, but I have a bunch of ideas... I think a link to 140byt.es should be included in the tweets, because it gives some coherence to the tweeting, which are now totally random disconnected fragments of javascript that no one other than 140bytes participants will know what they're about or more importantly, where to go to find out what they're about. Yet, there are lots of js/es programmers out there that would be interested in this if they saw an entry tweet and were able to follow a link to the home page.

That's my argument, now the technical challenge: No matter what the size of a URI/URL twitter now minifies (or expands) it to 22 chars, allowing only 118 remaining for the actual code. I kind of think this is acceptable, because this 1) only make the challenge harder, which is the point, right, hardness? and 2) the chars reserved for the link can be considered part of the task, as it helps to promote the task(s) as a whole

Revlin commented Sep 29, 2013

Yeah, I'm new to this, but I have a bunch of ideas... I think a link to 140byt.es should be included in the tweets, because it gives some coherence to the tweeting, which are now totally random disconnected fragments of javascript that no one other than 140bytes participants will know what they're about or more importantly, where to go to find out what they're about. Yet, there are lots of js/es programmers out there that would be interested in this if they saw an entry tweet and were able to follow a link to the home page.

That's my argument, now the technical challenge: No matter what the size of a URI/URL twitter now minifies (or expands) it to 22 chars, allowing only 118 remaining for the actual code. I kind of think this is acceptable, because this 1) only make the challenge harder, which is the point, right, hardness? and 2) the chars reserved for the link can be considered part of the task, as it helps to promote the task(s) as a whole

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Sep 30, 2013

@Revlin: The point of this challenge is fun and learning. The difficulty of it is balanced between "too easy to be fun" and "too hard to do anything of interest". So making it harder will not improve the challenge, quite the opposite. In addition, I don't think that we need the promotion. We are here for our own entertainment, not for marketing purposes.

atk commented Sep 30, 2013

@Revlin: The point of this challenge is fun and learning. The difficulty of it is balanced between "too easy to be fun" and "too hard to do anything of interest". So making it harder will not improve the challenge, quite the opposite. In addition, I don't think that we need the promotion. We are here for our own entertainment, not for marketing purposes.

@Revlin

This comment has been minimized.

Show comment Hide comment
@Revlin

Revlin Sep 30, 2013

@atk Thanks, dude. I'll start over with all that in mind.

I guess I can be self-defeating and waste 22 chars on including the link myself, without that necessarily being a rule :)

So, according to the instructions all I have to do is fork this repo and my fork will show up on the main page (whether or not I've made any changes)? I'm a bit confused about that... how important is the package.json in this process?

Revlin commented Sep 30, 2013

@atk Thanks, dude. I'll start over with all that in mind.

I guess I can be self-defeating and waste 22 chars on including the link myself, without that necessarily being a rule :)

So, according to the instructions all I have to do is fork this repo and my fork will show up on the main page (whether or not I've made any changes)? I'm a bit confused about that... how important is the package.json in this process?

@Revlin

This comment has been minimized.

Show comment Hide comment
@Revlin

Revlin Sep 30, 2013

So I see a button on the main page, "Log in with GitHub," but clicking it has no effect. Is this the way to go to "Save your entry" as suggested in the instructions?

My first crack: https://gist.github.com/Revlin/6766557

Revlin commented Sep 30, 2013

So I see a button on the main page, "Log in with GitHub," but clicking it has no effect. Is this the way to go to "Save your entry" as suggested in the instructions?

My first crack: https://gist.github.com/Revlin/6766557

@atk

This comment has been minimized.

Show comment Hide comment
@atk

atk Oct 1, 2013

Since the last github change, Forks don't show up on the main gist (unless you select "Forks").

The automatical updates of the homepage (140byt.es) don't work. Jed and I never found out why. Also, we usually only include stuff that has an actual use or at least a cool effect. The package.json should be valid JSON, otherwise the importer will stop (again).

atk commented Oct 1, 2013

Since the last github change, Forks don't show up on the main gist (unless you select "Forks").

The automatical updates of the homepage (140byt.es) don't work. Jed and I never found out why. Also, we usually only include stuff that has an actual use or at least a cool effect. The package.json should be valid JSON, otherwise the importer will stop (again).

@jed

This comment has been minimized.

Show comment Hide comment
@jed

jed Oct 3, 2013

hey all. i don't think the rules need to be changed, but i understand that our UI isn't optimal in that case (the platform has changed underneath our feet a few times since launch two years ago).

as for stuff showing up on the site, it doesn't happen until one of the admins stars the gist. this is to prevent spam and make sure that entries are not dupes and are of sufficient quality/creativity.

jed commented Oct 3, 2013

hey all. i don't think the rules need to be changed, but i understand that our UI isn't optimal in that case (the platform has changed underneath our feet a few times since launch two years ago).

as for stuff showing up on the site, it doesn't happen until one of the admins stars the gist. this is to prevent spam and make sure that entries are not dupes and are of sufficient quality/creativity.

@dluciv

This comment has been minimized.

Show comment Hide comment
@dluciv

dluciv Nov 25, 2013

Hi!

Is tweet https://twitter.com/dluciv/status/404937670419161088 suitable to submit the gist, or I should reformat it in some other way?

dluciv commented Nov 25, 2013

Hi!

Is tweet https://twitter.com/dluciv/status/404937670419161088 suitable to submit the gist, or I should reformat it in some other way?

@xem

This comment has been minimized.

Show comment Hide comment
@xem

xem Dec 5, 2013

Hi all,

Last month, subzey and I invented a system allowing to execute 190 JS characters in one single tweet.

Gist: https://gist.github.com/xem/7086007

I described it in detail here: http://xem.github.io/?golfing

Though, It uses 140 characters, not 140 bytes...

So do you think this system is still suitable for 140byt.es entries?

xem commented Dec 5, 2013

Hi all,

Last month, subzey and I invented a system allowing to execute 190 JS characters in one single tweet.

Gist: https://gist.github.com/xem/7086007

I described it in detail here: http://xem.github.io/?golfing

Though, It uses 140 characters, not 140 bytes...

So do you think this system is still suitable for 140byt.es entries?

@ghost

This comment has been minimized.

Show comment Hide comment
@ghost

ghost May 24, 2014

Also you can count the bytes with http://mothereff.in/byte-counter

ghost commented May 24, 2014

Also you can count the bytes with http://mothereff.in/byte-counter

@ghost

This comment has been minimized.

Show comment Hide comment
@ghost

ghost May 24, 2014

I forked it and wrote a simple browser detection script in < 140bytes
https://gist.github.com/reza-farhadian/0d2e4f263aec898c5c67
tweet link: https://twitter.com/reza_farhadian/status/470131135922442243
👌

ghost commented May 24, 2014

I forked it and wrote a simple browser detection script in < 140bytes
https://gist.github.com/reza-farhadian/0d2e4f263aec898c5c67
tweet link: https://twitter.com/reza_farhadian/status/470131135922442243
👌

@Alexei-B

This comment has been minimized.

Show comment Hide comment
@Alexei-B

Alexei-B Aug 20, 2015

Am I missing something or is it really hard to make two forks of the same gist on github? I've been struggling with it for an hour now. Even used the github API to try and fork it to no avail.

Am I missing something or is it really hard to make two forks of the same gist on github? I've been struggling with it for an hour now. Even used the github API to try and fork it to no avail.

@aishikaty

This comment has been minimized.

Show comment Hide comment
@aishikaty

aishikaty Mar 21, 2017

As the original site is dead now I created a list of all forks with description. Any feedback is welcome!
https://aishikaty.github.io/140bytes/

As the original site is dead now I created a list of all forks with description. Any feedback is welcome!
https://aishikaty.github.io/140bytes/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment