LESS vs Sass? It's time to switch to Sass - <AUTHOR> http://flippinawesome.org/2014/01/20/less-vs-sass-its-time-to-switch-to-sass/ <comment><USER2> None of those features matter if you're of the opinion that conditionals, loops, and functions don't belong in the styling system.

And I think that's a reasonable opinion to have, since we already have a language (JavaScript) that can do conditionals, loops, and functions much more naturally than some styling system on steroids. And of course you can use any other language to produce the markup in the first place. Do we really need to turn the styling system into yet another Turing-complete scripting language?

I'm waiting for the day when I can forget about both Sass and LESS, and just use vanilla CSS4, CSS5, or whatever comes next. Variables are coming soon. Proper nesting is probably next on the list. I may be wrong here, but I suspect that using LESS (which is closer to vanilla CSS) in the meantime will make it easier for me to transition to CSS4/5 later, because I won't be spoiled by all those fancy features that will probably never get implemented in vanilla CSS4/5.

<comment><USER3> I think this is a bit short-sighted.

It's not about Turing completeness. It's mostly about DRY and flexibility.

For instance, imagine using theme prefixes or conditionals.

For-loops are fantastic for grid systems.

The point of this article isn't "should you use a pre-processor" \- it's pointing to the fact that if you use one, SASS has more natural structures for common tasks like for-loops or conditionals, both of which are indeed useful.

<comment><USER4> It's not shortsighted at all. CSS is declarative because if its programmatic, you might as well generate it with a real language.

<comment><USER5> It's a superset of CSS language that provides an additional DSL that extends it in a number of ways that provide significant productivity and design benefits.

Exactly why would a "real" language make more sense than that?

</comment></comment></comment></comment><comment><USER6> This article actually misses one of the best features of Sass: It can access and read files. Why is that important? So you can easily reference and use images. Here's a mixin I use constantly:

        @mixin background-img($image, $width: image-width($image)/2, $height: image-height($image)/2 ) {
          display: block;
          background-image: image-url($image);
          background-size: $width $height;
          width: $width;
          height: $height;
        }

I can then do something like @include background-img("logo.appheader.png"); in my scss files with a retina-quality image. I don't have to think about image sizes, it just works.

As far as I know, something like this isn't possible in LESS.

<comment><USER7> That's not a Sass feature, it's from Compass.

[http://compass-style.org/reference/compass/helpers/image- dim...](http://compass-style.org/reference/compass/helpers/image-dimensions/)

<comment><USER6> Yes, the image functions are from Compass, but the underlying mechanics of mapping Sass functions to Ruby code is purely Sass's domain.

So, perhaps I misspoke: Sass's power is in its ability to tie it's functions to arbitrary Ruby code, which can then access and manipulate files.

</comment></comment></comment><comment><USER8> LESS plays nicer with languages other than Ruby (less dependencies).

LESS can be run in the browser (usually only for development, I hope) and in the server side.

LESS resembles vanilla CSS more.

(Purely personal) I like LESS' syntax better. So there.

Also, why should I ever use a loop in a style sheet? I've never ever felt the need. And I don't think I will in the near future.

Also, I dislike these articles which imply that one should switch to a technology because it's objectively better. It's never the case.

<comment><USER9> :nth-child() could be considered a form of a loop, a bit restricted loop though. You're looping through a collection and altering certain items in the collection based on a criteria.

</comment></comment><comment><USER10> I don't know.

While those are nice features, they are not game breakers. Yes, I would say to somebody that is new to pick up Sass. However, to change all our system from LESS to Sass based only on those features? I'll stay with LESS for a while.

<comment><USER11> I agree it's not really worth it to port LESS yet, but I would say that it's not worth it to write anything new with LESS.

<comment><USER10> If I was freelancing, I would indeed spin on a dime and change to SASS, but in an enterprise setting, we can't change all our structures to use LESS. Well, we could. But it takes some time, and time is money, right? I'm happy enough with LESS as it is.

</comment></comment></comment><comment><USER12> Interesting article. It sounds like SASS is more feature rich than LESS.

However, I don't need any of these extra features. It's good to know that they are there if I ever start to feel the constraints of LESS though.

</comment><comment><USER13> I disagree for two reasons.

1) It is good to have choice.

2) LESS is simpler and closer to the thing it compiles into: CSS. When dealing with complicated abstraction layers, it can be useful to not veer too far away from the target.

<comment><USER4> Less also has way more portability with its Javascript compiler.

<comment><USER14> Really? You'd never use that in production (I hope!) and libsass is available, so I'm not sure that's true.

</comment></comment></comment><comment><USER15> I've always viewed Sass as the css equivalent to coffeescript. Less has always been about enhancing css, while Sass is about replacing it with something better. Thus, it's natural that Sass has more features, but they come at a price.

There's a place for both. I find the entire genre of "Everybody must use the tool I'm using" blog posts to be a bit strange.

</comment><comment><USER16> Interesting - it looks like LESS takes a hint from functional languages, with recursion and guards, both of which I recognize from Erlang.

I can see that as being less popular than something closer to what most people know.

</comment><comment><USER17> In my company we have been using Sass/Compass for about two years now. Sure it's very cool, feature rich etc. But afaik we use only a small part of the possibilities. We don't need them all, cause we know how to properly write CSS.

Furthermore, for me it has two main drawbacks: Firstly, the dependency on Ruby. Not everyone works on a mac where it's easy to install. Sass/Compass plugins are cool (I love the syntax of Singularity) but they add a whole new dependency chain, fiddling around with Bundler and gemfiles. I don't want to install all this crap! Combined with the awesome (and necessary) nodejs tools grunt & bower there's almost more config files then project files in my working dir...

This ESPECIALLY becomes a problem now we are moving towards Continuous Integration. Try installing Ruby on one of the cloud sollutions for CI out there. The only one that supports it is Travis. But you only want to use that for open source projects, which we don't do. The business plans are ridiculous.

The second drawback is SPEED: Sass is insanely slow compared to the javascript driven (nodejs) Less. Even for small projects I have to wait 10-20 seconds after a save before autoreload kicks in. Less is near instant.

The basic features of Less and Sass are similar. LessHat will give you most of the mixins you need. Combined with the SPEED and PORTABILITY of Less, this makes me want to move from Sass to Less.

</comment><comment><USER18> Cached [http://flippinawesome.org.nyud.net/2014/01/20/less-vs- sass-i...](http://flippinawesome.org.nyud.net/2014/01/20/less-vs-sass-its- time-to-switch-to-sass/)

Original source [http://www.zingdesign.com/less-vs-sass-its-time-to-switch- to...](http://www.zingdesign.com/less-vs-sass-its-time-to-switch-to-sass/)

<comment><USER19> I'm having problems with your cached version. However, using Google's cached text-only page works fine: [http://webcache.googleusercontent.com/search?q=cache:flippin...](http://webcache.googleusercontent.com/search?q=cache:flippinawesome.org/2014/01/20/less- vs-sass-its-time-to-switch-to-sass/&espv=210&es_sm=119&strip=1)

</comment></comment><comment><USER3> For those of you who already use Grunt (if you aren't using Grunt, you can probably get used to the Ruby cli for SASS), there is indeed a relatively easy way to compile SASS: [https://github.com/gruntjs/grunt-contrib- sass](https://github.com/gruntjs/grunt-contrib-sass)

I plan on doing this for our team pretty soon.

<comment><USER20> Grunt only takes 10 minutes to set up (5 minutes to add it to package.json and copy a working gruntfile, another 5 to realise grunt-cli should also be in the list of dev dependencies).

</comment></comment><comment><USER21> I love sass because i can always use libsass to compile the code faster without the need to install ruby.

</comment><comment><USER22> An important point that was left out of the article is that LESS had much faster compilation than Sass, which was probably the deciding factor for it's use in Bootstrap.

Now, there is libsass; a C/C++ implementation of the Sass compiler which brings Sass compilation up to speed with other preprocessors.

My feeling is that the community has always regarded Sass as the better preprocessor, but easy of use and compilation speed matter held it back. But, as front-end build tools have become more accessible, and Sass getting up to speed with libsass (and dropping the Ruby dependency), I think it is becoming easier for projects like Bootstrap to start embracing Sass.

</comment><comment><USER23> Why do I need either?

If I wanted to improve CSS I'd remove things and tidy up the existing mess... but that my opinion.

My opinion is also that things like LESS and SASS only exist because CSS is in a poor state to start with... preprocessing in all of its forms is generally an evil to avoid if at all possible, and one that good design can utterly avoid - at least conceptually (if not in implementation where it might be beneficial).

I especially don't want to add to the towering stack of unreliable and buggy technology I need to fight with to work on the web... :/

</comment><comment><USER24> The single most convincing reason to use SASS is that it allows you to use the Compass Framework:

[http://compass-style.org](http://compass-style.org)

I can't make websites anymore without it.

<comment><USER4> I really don't see the major win in compass. When I used sass I tried to use compass, but browser they didn't cover all the edge cases I had, so I basically rewrote its scope for a wider browser range with higher level constructs in like half a day. Its a nice to have but hardly the winning card.

</comment></comment><comment><USER25> Here is a real world example of where I agree. There are times where you want to generate specific CSS based on some variables or what not. Say breakpoints or a grid system or other things like that. In those cases, it is way simpler to write a loop to do that than do it by hand for the exact same reasons we use loops in programming where it makes sense.

Do loops belong in your style? NO.

Do loops belong in the thing that generates your style? YES.

</comment><comment><USER26> Unless you're heavily into using Compass or Foundation I don't see any major reasons to favor it over Less as far as features go. Both are really powerful.

One advantage of using Less is the existence of (php) libs so you can compile on the server. If you're developing for WordPress users for example you can expose some variables (ie colour scheme) and recompile stylesheets with minimal fuss.

</comment><comment><USER27> I'm not going to set up ruby/gem which is a PITA on debian/ubuntu(especially if I need a newer version and keep them sane) just for the sake of SASS, sorry. unless that is, you have something like pip for python that I can install to a sandbox under my home directory _easily_, as easy as 'pip install sass', do we have one?

<comment><USER28> RVM takes three commands to set up. And I don't even know Ruby.

</comment></comment><comment><USER29> Suspect that most people use less because of one of a) bootstrap uses it, b) it's easy to run under node or c) you can just drop an existing CSS resource into less without modification. I suspect that even if SASS could address b) and c), a) would provide less with a large userbase.

<comment><USER30> Indeed, there is an official SASS port of bootstrap on the horizon:

[https://github.com/twbs/bootstrap-sass](https://github.com/twbs/bootstrap- sass)

(edit: tell that the port is official, i.e. by the maintainers of bootstrap)

</comment></comment><comment><USER31> I have a feeling that quite a lot of people use LESS because of Bootstrap. And it is my personal guess but looks like even Bootstrap is trying to move to Sass - [https://github.com/twbs/bootstrap- sass](https://github.com/twbs/bootstrap-sass).

</comment><comment> at-fates-hands I've used LESS and have been happy with it. It was so easy to get up and running, and most of the companies I've worked at use it instead of SASS.

Has anybody tested out Myth yet? [http://www.myth.io/](http://www.myth.io/)

</comment><comment><USER32> A related article from the author of the less-rails rubygem: [http://metaskills.net/2012/02/27/too-less-should-you-be- usin...](http://metaskills.net/2012/02/27/too-less-should-you-be-using-sass/)

</comment><comment><USER33> I'm actually happy that they didn't put a whole programming language in LESS, if I want that, I will use a real programming language, also having to install a ruby environment just or SASS is too much for me.

</comment><comment><USER34> AFAIK the only existing conversion tool is no longer maintained. So if you've got an existing less project, you might have to stick with it for now...</comment>


Debugging Lisp, Part 5 - <AUTHOR> http://malisper.me/2015/08/19/debugging-lisp-part-5-miscellaneous/

<comment><USER2> Thank you for writing these. I've found that a lot of the lisp materials out there are either completely introductory (lambda/map/reduce/filter) or seem like the artifacts of an alien civilization far beyond my comprehension. I've been following malisper for a little while and it's consistently quality material that's roughly at my level.

<comment><USER3> Agreed. What is it about lisp that creates blogs of these two types? Emacs is the same. Loads of articles on how to do simple stuff, a few on very low-level and nothing in-between.

I think other languages also have this pattern but in the lisp family it seems more stark.

</comment></comment><comment><USER4> trace is the thing I miss most when I'm not using Common Lisp.

<comment><USER5> I too miss trace a lot. Whenever I have worked on a common lisp project, trace has helped a ton to understand the application design, either for a new feature addition or a bug fix. Just knowing the starting function and tracing the package that it belongs to gets me going.

And using the Output Data View if I am using LW IDE is even more fun. [1]

trace also I think serves as a nice documentation if the functions are well documented in code, in that the output of trace to me reads like a doc!

[1] [http://www.lispworks.com/documentation/lw70/IDE-M/html/ide-m...](http://www.lispworks.com/documentation/lw70/IDE-M/html/ide-m-93.htm)

<comment><USER6> I'm learning CL and whetting my appetite debugging a sizeable project with SBCL/SLIME. When I trace a certain method the system goes nuts because it reports on _all_ methods of that name and they are called a lot. What I want is to trace just the method of my request and nothing more.

Instead I get flooded with useless information. Any recommendation?

<comment><USER7> With CLOS, I'd consider adding a specific :around method for tracing a particular specialized method.

<comment><USER6> do you mean to add an :around method on the one I'm interested and trace that instead?

<comment><USER7> I really meant more like a wrapper printing the trace-in before (call-next- method) and trace-out after. A bit cumbersome though.</comment></comment></comment></comment></comment></comment>


How to Mend Our Broken Electoral Process - <AUTHOR> https://bostonreview.net/politics-law-justice/reed-hundt-how-mend-our-broken-electoral-process <comment><USER2> Unfortunately I think there is no technical fix to the fact that our "representative" democracy exists really only to oppress, not represent, the people.

<comment><USER3> Hmm</comment></comment>


Choosing a Minimally Viable Co-Founder (2011) - <AUTHOR> https://www.onstartups.com/tabid/3339/bid/68846/Choosing-A-Minimally-Viable-Co-Founder.aspx <comment><USER2> > "They're exceptionally good at building something people want or they're > exceptionally good at selling something people may not know they want yet. > And by exceptionally good, I mean, they're one of the best you've ever met."

Of course, this goes both ways. _They_ have to be convinced that _you_ are one of the best they've ever met. If you're not exceptionally good, don't expect to find a co-founder who is.</comment>


Welcome to the World of Software Defined Radio (2016) - <AUTHOR> http://www.robertputt.co.uk/welcome-to-the-world-of-software-defined-radio.html <comment><USER2> DVB-T type devices such as the one referred to in this article are indeed remarkably flexible but keep in mind that they are only able to receive. In my case, that quite rapidly exhausted my curiosity.

I'm now eagerly awaiting delivery of a LimeSDR ([https://www.crowdsupply.com/lime- micro/limesdr](https://www.crowdsupply.com/lime-micro/limesdr)), one of several hacker-friendly radio peripherals that can both receive _and send_ (in the LimeSDR's case, in full duplex mode) because of course having a transceiver is a whole different ball-game. GnuRadio can serve as the logic of both receivers and transmitters.

Of course depending on country, frequency and transmitted power you may require licences to operate.

<comment><USER3> I recently read here that a Raspberry Pi can be turned into an SDR transmitter by attaching a wire to a pin. On paper, the specs look impressive (for a $20-$30 device), but I would love to know the RF quality of the resulting waveform.

I cannot find the discussion, but the info is here: [http://www.rtl- sdr.com/tag/rpitx/](http://www.rtl-sdr.com/tag/rpitx/)

<comment><USER4> As an Amateur Extra I've used a Pi to transmit WSPR 24/7 and was once heard in New Zealand from Ohio. No amplifiers even...

<comment><USER5> Just to triple-confirm, there was no additional hardware besides the Pi? I'm assuming at least some sort of antenna was involved...

Any links to write-ups/HOWTO's would be tremendously appreciated!

<comment><USER6> You will need a antenna that is resonant on the frequency you're transmitting on for any hope of the signal leaving the immediate proximity of the Pi. It would also be a very good idea to filter the signal coming out of the Pi to reduce the strength of any frequency spurs accompanying your Pi generated signal and to keep your transmission legal.

This is a pretty good write up of using the Pi as a wspr transmitter: [https://github.com/JamesP6000/WsprryPi](https://github.com/JamesP6000/WsprryPi)

</comment></comment></comment></comment></comment><comment><USER7> SDR and RF in general has always felt like black magic for me, but the availability of cheap hardware and wife software selection makes this accessible to everyone. For newcomers I recommend the RTL-SDR subreddit, plenty of great resources. My latest venture is a jam and replay attack on keyless entry systems eg vehicles, project page is here: [https://github.com/trishmapow/CC1101-FSK](https://github.com/trishmapow/CC1101-FSK)

<comment><USER8> Not gonna lie. As a radio guy, our terminology is messed up. My favorite though is using superlatives.

Low Frequency (LF), Medium Frequency (MF), High Frequency (HF).

You'd think that maybe HF is WiFi, but you gotta remember these terms were invented back in the early days of radio. HF is between 3 and 30 MHz.

You have Very High Frequency and Ultra High Frequency, but that only takes us to 3 GHz. 5 GHz Wifi is technically SHF -- or Silly High Frequency.

But we also refer to these frequency bands in terms of MHz, or if we feel like it, wavelengths. Since radio signals travel (effectively) at the speed of light (m/s), we can multiply Hz (1/s) by a distance and get wavelength. (c = f * l). 144 MHz then is the 2 meter band, or VHF as we call it.

Confused yet? Wait until we start talking about baseband and I/Q signals!

<comment><USER9> > 5 GHz Wifi is technically SHF -- or Silly High Frequency

For those curious, op's right and it actually is SHF, but it stands for Super High Frequency. I don't understand humour, only RF (and even that, barely).

[https://en.wikipedia.org/wiki/Super_high_frequency](https://en.wikipedia.org/wiki/Super_high_frequency)

Here's a fun semi-relevant science experiment you can do at home: running a microwave will kill nearby wifi and bluetooth connections. Isn't that strange?

Try it with a par of bluetooth headphones right now!

<comment><USER10> I really don't know much about radio, but I have never experienced that the microwave have noticeably affected wifi or bluetooth.

Is it something that is only likely to happen with older and less isolated microwaves?

<comment><USER9> Most people aren't using wifi near running microwaves, so it's hard to notice. Some microwaves leak more than others, but none of them are required by the fcc not to interfere with 2.4ghz wifi. The FCC says that they can actually leak an unlimited amount of radiation at that frequency [1], although obviously if it's high enough to start cooking people standing nearby other agencies than that the will get involved.

I bet ya an upvote that yours still leaks enough. One thing to try is to put your phone next to the microwave and place your bluetooth headphones or speaker riight at the limit of its range. Turn on the microwave and see what happens!

[1] [https://www.ecfr.gov/cgi-bin/text- idx?SID=c7be03a4f7b02514ce...](https://www.ecfr.gov/cgi-bin/text- idx?SID=c7be03a4f7b02514cea89421fc363794&mc=true&node=pt47.1.18&rgn=div5#se47.1.18_1305)

<comment><USER11> I once worked at a site that had the Wi-Fi access point for one side of the office in the break room. There was, of course, a microwave in the break room. There were frequently complaints around the lunch hour that the Wi-Fi didn't work well, though strangely it worked earlier and later in the day.

</comment></comment></comment></comment></comment></comment><comment><USER12> For a device that can transmit as well as receive, consider HackRF: [https://github.com/mossmann/hackrf/wiki](https://github.com/mossmann/hackrf/wiki)

It's been out for a while.

The newer option is LimeSDR, which just shipped: [https://www.crowdsupply.com/lime- micro/limesdr](https://www.crowdsupply.com/lime-micro/limesdr)

(Note that you need to comply with all local laws regarding transmitting).

</comment><comment><USER13> There is a glaring error at the beginning of this article under the "things you cannot do with SDR."

"Listening in on the conversations of Ham operators."

In the US at least, there are many VHF/UHF Ham bands easily received by SDR. I use an Airspy on Mac OS X, and although the software is terrible, there is plenty to listen to.

<comment><USER14> Maybe they were thinking HF (High Frequency), which is what's used for long distance/international contacts and what many people think when they think "ham radio". AFAIK the USB stick receivers can't receive HF. But that's a hardware limitation, not SDR limitation. There exist SDRs that can do HF, they just don't cost $15.

<comment><USER15> Actually the latest RTL-SDR has a software switch for direct sampling. Which isn't great quality, but with an indoor wire antenna in the basement (!) I received JT65 transmissions from 47 states in the course of a few evenings. Hawaii, Vermont, and Alaska are the ones I missed. However, I did hear Hawaii... On SSB!!

</comment></comment></comment><comment><USER16> This thread could use this link:

[http://websdr.ewi.utwente.nl:8901/](http://websdr.ewi.utwente.nl:8901/)

Basically, it is an SDR for multiple users and an online interface. It's RX only, of course. More options are available at websdr.org but the above is my favorite.

Caution, it can be a huge time sink.

</comment><comment><USER17> > mhz

Should be written using the proper SI prefix, MHz. There's a huge difference between the milli (m) prefix and mega (M).

</comment><comment><USER18> Relevant...

Listen to Radio from around the globe

[http://radio.garden/live/](http://radio.garden/live/) (drag the map to tune in)

<comment><USER19> This is really wonderful, thank you for the link. I'm enjoying now a radio broadcast from..Malawi. The diversity of voices around the world, the ease of moving and focusing on stations - one of the best things I've seen on the web.

</comment></comment><comment><USER20> Is there a similarly priced and sized SDR that can both receive and transmit?

Having received my ticket recently, I'd love to try some digital ham radio modes without spending a fortune.

<comment><USER6> There is the LimeSDR Mini that is currently being croudfunded[1]. For $140 USD you would be hard pressed to find anything like it that would give you full duplex across that frequency range. I own the full size LimeSDR device and it has been a great piece of hardware for playing around with.

1\. [https://www.crowdsupply.com/lime-micro/limesdr- mini](https://www.crowdsupply.com/lime-micro/limesdr-mini)

<comment><USER21> Lime has the best hardware/specs at their price points, but their software toolchain is atrocious; just trying to do simple tasks in GNURadio is so flaky/error prone

</comment></comment></comment><comment><USER22> ...wrong thread...

<comment><USER23> Wrong thread :)

<comment><USER22> Wow...no idea how that happened...

</comment></comment></comment><comment><USER24> Reminds me of this ye old project at MIT [http://www.sds.lcs.mit.edu/SpectrumWare/home.html](http://www.sds.lcs.mit.edu/SpectrumWare/home.html)</comment>


When TypeScripts' string enums don't quite get you there - <AUTHOR> https://firstname.lastname@example.com/static-type-checking-for-collections-of-string-constants-in-typescript-c95a073dd80c <comment><AUTHOR> During my research, I stumbled across people asking for something like this here and there but nobody has come up with this pattern yet. So I hope that this will reach some who also have to manage collections of string constants that can overlap. :)</comment>


Zuzu-AI Assistant for your workplace - <AUTHOR> https://chrome.google.com/webstore/category/extensions <comment><AUTHOR> Hi everyone, Zuzu is built with a vision of empowering customer-facing teams with an AI assistant which will help them save up to 65% of the wasted time in search of the right product answer. Would love to know your thoughts on this :)</comment>


The Frightening New Definition of Terrorism - <AUTHOR> http://sina.is/redefining-terrorism/

<comment><USER2> This is a definition from the London Metropolitan Police. I'd rather see a definition from a UK statute or a UK court decision. The police don't make the law.

<comment><USER3> Here's the relevant section of 2000 Terrorism Act in the UK - the police appear to be just using text from that

[http://www.legislation.gov.uk/ukpga/2000/11/section/1](http://www.legislation.gov.uk/ukpga/2000/11/section/1)

</comment></comment><comment><USER4> You might want to have a look at who 'they' thought the terrorists were before 9/11:

[http://web.archive.org/web/20010611142635/http://www.fbi.gov...](http://web.archive.org/web/20010611142635/http://www.fbi.gov/congress/congress01/freeh051001.htm)

Note how all the terrorist incidents of 1999 were by animal rights save the world types. Al-Qaeda gets a mention but it seems that the feds were annoyed by the 1999 'Seattle Riots' that went with the ruling elite meeting that went on there for some three-letter-acronymed body (IMF, WTO, who cares).

The Terrorism Act 2000 (UK) was introduced into the UK when terrorism wasn't widely regarded as a problem. However activities by the likes of Reclaim The Streets were a problem, hence the need for legislation that was so broad that domestic dissent could be criminalised as 'terrorism'. With the Miranda incident they had all the legislation they needed.</comment>


Unicode string crashes Chrome for Mac - <AUTHOR> https://code.google.com/p/chromium/issues/detail?id=468390

<comment><USER2> Running Chrome (my preferred browser) on a Mac (work machine), I clicked this link.

The page crashed.

I really don't know what else I expected. >_></comment>


This Is What Developing For Android Looks Like - <AUTHOR> http://techcrunch.com/2012/05/11/this-is-what-developing-for-android-looks-like/ <comment><USER2> > You know how all Android developers complain about fragmentation? Yeah, this > is what fragmentation looks like.

This is some of the most insulting garbage out there. I'm an Android developer. I don't complain about fragmentation. _Ever._ Don't you dare lump me into a group of people you hear complaining loudly. I'm not one of them!

I know it can be hard to get apps to work across all phones. The variety of available hardware is part of what makes the ecosystem so amazing. Of course there will be difficulties that arise from the range of devices (dynamically positioning text to align with a set image background across every screen size and resolution can be difficult, I'll admit) but those problems are not something to complain about, and frankly, they're not any kind of showstopper.

The variety in devices allows me to build apps like pressureNET, which uses barometers built in to some phones. I could never be building a groundbreaking, innovative weather network without different ideas and different manufacturers trying things out. As a developer, I _love_ the variety available in Android devices. It's what makes the ecosystem thrive and it's what makes me thrive as a developer.

I hate this "all Android developers complain about X" bullshit. It's wrong, insulting, and counter-productive to everyone who's trying to build the next great app. Stop it.

<comment><USER3> Hey, I'm the author of the article and I don't really have an agenda in the Android/iOS platform debate. Both are necessary platforms to build on at this point.

Yat also wasn't really complaining about the state of affairs on Android at all. He's happy to QA test with 400 devices and he thinks it's why his company performs well relative to other game developers who don't do as comprehensive a job.

I just thought it was a hilarious photo about the lengths that one Android developer will go to make their apps work. :)

<comment><USER4> Kimmai,

The way you wrote the headline suggests that you do have an agenda.

Unless you think Techcrunch should not be taken seriously, a lot of people would think that Android is such an awful platform to develop in and would stay away from it.

I've been an Android developer for 3+ years. I only test in 3 phones and my apps work in majority of devices. If a developer follow most best practices, a lot of fragmentation issues go away.

I understand that you are trying to be hilarious but it just contributes to FUDs on Android that has really not much basis.

<comment><USER3> Tks, it's a simple headline that gets a point across. I talk on a weekly basis with many of the top-grossing devs on both platforms so I try to listen to their issues.

This was not meant to be a warning for devs to stay away of Android, but doing more extensive QA testing is a reality of the platform.

What's your app? How many DLs does it have? How many DAU do you have?

<comment><USER4> The apps I built varies. Some have hundreds, some have 10K+.

But you know what's a better example? Netflix. They test on 10 phones & 4 tablets.

[http://techblog.netflix.com/2012/03/testing-netflix-on- andro...](http://techblog.netflix.com/2012/03/testing-netflix-on-android.html)

Netflix App has at least 10 million installs - [https://play.google.com/store/apps/details?id=com.netflix.me...](https://play.google.com/store/apps/details?id=com.netflix.mediaclient).

<comment><USER3> That's for basic testing. The post also says they still keep a long tail set of devices for more comprehensive testing.

"We figured out the optimal combination of devices to give us maximum coverage. We are able to reduce our daily smoke automation devices to around 10 phones and 4 tablets and keep the rest for the longer release wide test cycles."

<comment><USER4> Is it 400 devices? Or are you assuming that to justify your post?

"This was not meant to be a warning for devs to stay away of Android, but doing more extensive QA testing is a reality of the platform."

Your headline & picture suggest otherwise.

Honestly, is this a Techcrunch thing? Before you worked at Techcrunch, I can't remember you writing a post like this. Too much snark and mocking a platform (and hence, a community).

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Yes, indeed. All android developers have 400 phones (neatly and photogenically arranged on a conference room table, no less).

Look, fragmentation has costs. Outside the core APIs (and especially with hardware-facing interfaces) you need to expect to do some testing. Screens have different resolutions. PVR and Mali have different rendering bugs. Different cameras have different quirks. But to baldly pretend that this requires exhaustive testing on hundreds of devices is just sensationalist nonsense.

<comment><USER6> I agree. Hundreds of devices is ridiculous. But if you are trying to build an app that must work on as many possible you are still look at 10-20 tablets+phones. It's still very expensive.

</comment></comment><comment><USER7> Someone needs to take a picture of all the desktop PCs, laptop PCs, tablet PCs, netbook PCs and then say

"This is what developing for Windows looks like".

I'm sure it would be an order of magnitude bigger, maybe 2 or 3 depending on how far back you decide to go.

Or even add up all the mac models from the last 5 years. Heck, I have friends still using power PC macs.

<comment><USER8> Windows does a good job of abstracting the hardware away and preventing the OEMs from tweaking the APIs so this isn't an issue in most cases. The major exception is for the large game developers who have to buy tons of various configurations of GPUs and motherboards in order to test various configurations. Basic hardware accelerated graphics works well across platforms but AAA games use complex shaders and heavy optimizations which are based on the incomplete and broken implementations of GPU vendors.

<comment><USER9> > The major exception is for the large game developers who have to buy tons of > various configurations of GPUs

The same is also true for Android. Most (all?) of the valid complaint about how hard it is to target different Android devices comes from game developers struggling to get which version of OpenGL to use, which OpenGL API calls are bugged on which devices, how to circumvent low level GPU limitations on this or that device, etc. And afaik, those are usually based on incomplete and broken implementations by GPU vendors as well. Same as with windows.

Most of the regular utility app, which use normal Android layout and API instead of OpenGL, are doing fine just testing their app in different AVDs (instances of the emulator) just to make sure they're compatible with different devices.

(then of course, there's a few newbies who didn't spend 10 minutes reading the guide for running on different devices on d.android.com, then whine their app's font looks different on a friend's phone. But I'm counting those out)

</comment></comment></comment><comment><USER10> I'm not an android developer, but I am curious. Why is it that testing on dozens/hundreds of platforms is considered essential for cell phones, but not for PCs? Is android just that much worse at abstracting hardware than traditional OS'es?

<comment><USER11> Because it is early days for Android still (don't forget Android is less than 5 years old), and manufactures are still doing wacky things, and people are still uncovering bugs and edge cases.

In the early days of MS-DOS compatibility was a big problem too. Magazines used to use MS Flight Simultor to test how compatible PCs were - plenty failed that.

<comment><USER12> There is a difference though: The IBM PC was the undisputed gold standard for compatibility. Software typically listed the hardware requirements as "IBM PC or 100% compatible". (Some non-IBM-compatible DOS hardware was sold, but it died out pretty quickly).

It doesn't look like there any similar gold standard is emerging for phones.

<comment><USER11> That's not really true.

For non gaming apps, testing on Samsung & HTCs is usually enough to cover 90% of the market.

Gaming graphics makes that more complicated, but the truth is that people _still_ find driver and game bugs on _Windows_.

</comment></comment></comment></comment><comment><USER13> 400 devices is probably overkill, you can get by with far less if you want to cover 90%+ of the market.

This sounds about right from my experience: [http://techblog.netflix.com/2012/03/testing-netflix-on- andro...](http://techblog.netflix.com/2012/03/testing-netflix-on-android.html)

</comment><comment><USER14> As an Android developer I have about 5 phones and an extended group of friends with another dozen or so. Along with the emulator it's more than enough. This article is ridiculous flamebait.

</comment><comment><USER15> Techcrunch. Android. Linkbait bullshit. What's new?

</comment><comment><USER16> And (per the article) this is what using android looks like: "Unlike iOS users who throw up their hands in frustration, write bad reviews and just leave, Android users tend to be delighted when they find apps that work even if they have a glitch or two."

</comment><comment><USER17> I'm going on my 12th device this week and expect at least two more next month. My partner has 6 devices at his place.

Part of the problem is Google is releasing OSes faster than devices can keep up, and in a few cases I'm buying simply because the prior's OS is stuck yet I have to satisfy new devices users too. For example, I have Galaxy Tab from IO which is stuck on 3.1, but all new tablets use 4.0 and there's unexpected differences between them.

The killer reason for us is the dreaded 1-star review because we missed a particular combo (screen/OS). We have > 1M users between 2 apps w/ 4.2+ ratings each as a result.

Once you're making some good $$, you really can't afford not to have a device library.

<comment><USER18> > dreaded 1 star reviews

This is very obvious when looking at app ratings - users seem to blame model even if problem is entirely unrelated.

Hell, the Play Store ratings shows the user's model/device name under each user's review... that leads users to quickly blame their model type.

</comment></comment><comment><USER19> Opportunity for a web-based emulator including all devices.

<comment><USER20> Why a web-based emulator? Just use the one that's included with the Android SDK. You can simulate any combination of memory, screen size, screen resolution, and various hardware characteristics. Sure it can be slow, but it's getting better and is actually emulating the system you're developing for.

<comment><USER21> Is the emulator in the SDK usable now? Last time I tried Android programming it was slow as hell. Unusable even for a simple Phonegap app.

<comment><USER22> If you use the Android x86 system image it's not bad at all. ARM emulation is still slow as molasses.

<comment><USER23> Try enabling GPU emulation if you're dealing with ICS. It's much, much faster.

</comment></comment></comment></comment></comment><comment><USER24> Surely this is a quality assurance exercise of diminishing returns.

Why not test on the must common devices or top device in each main category?

Is fragmentation a real issue? First time I have heard about it. Is this like browser compatibility for web developers?

</comment><comment><USER22> As long as Android sales remain brisk this is only good news for HTML5.

</comment><comment><USER25> This is nonsense.

Yes, fragmentations make it a bit harder on developers, but that's why we get paid the big bucks.

Choice is good for users, you won't hear a lot of Android users complain about fragmentation.

</comment><comment><USER26> Some of the comments here have gotten me thinking about access to test devices. I've never worked on android, so I don't know if installation of lots of unfinished software would be logistically sane, but what about meetup groups where local devs could test out each other's beta apps on their phones and tablets?

<comment><USER27> That actally happens quite alos around here... Those "test" meetups were even sponsored by local service providers and Samsung.

</comment></comment><comment><USER28> If I develop software for a PC I don't have 1000+ PCs with every conceivable combination of CPU, graphics card, monitor, sound card, and Windows version. That would be absurd and unworkable. And yet that's what this article would have us believe you should do when developing for Android.

</comment><comment><USER29> So this is just the precursor to all app developing cycling back to the web right? I suppose it will take time for browser tech to catch up to what PCs have on offer and hardware apis but this is obviously what HTML exists for.

</comment><comment><USER30> Why are you supposed to test on all device types? Couldn't be possible to find the one or few devices that combined have all the properties that all other devices has and test on them only.

</comment><comment><USER31> Looks like a thriving ecosystem that fosters innovation, individuality, and competition. Seems great for consumers and developers alike.

</comment><comment><USER32> It looks like a wildly successful device ecosystem.

</comment><comment><USER6> I used to work for a large multinational who had a few popular Android apps. This is what we had to do as well.

It's surprisingly common place at enterprise companies who need to support a wide range of devices.</comment>


Tetris in 73 lines of Python - <AUTHOR> http://www.pygame.org/project-Tetris+in+73+Lines-800-.html

<comment><USER2> This doesn't impress me at all. Python code is supposed to look sexy, and it does, when well-written.

A code of 73 lines with inlined semi-collons is no better than a 200 lines code. In fact, the 200 lines is better if one wants to understand the code.

import pygame,time,random,sys,copy,os;from pygame.locals import _;t2=0;nor=0;pg=pygame;pd=pg.display;cdc=copy.deepcopy;pc=[[[1,1],[1,1]],[[1,0],[1,0],[1,1]],[[0,1],[0,1],[1,1]],[[1],[1],[1],[1]],[[0,1,1],[1,1,0]],[[1,1,0],[0,1,1]],[[1,1,1],[0,1,0]]];cols=[(0,0,0),(100,100,100),(10,100,225),(0,150,220),(0,220,150),(60,200,10),(180,210,5),(210,180,10),(100,200,170)];pg.init();pd.set_mode((320,240),FULLSCREEN);sk=pd.get_surface();f=[[1]+[0 for x in range(8)]+[1] for x in range(19)]+[[1 for x in range(10)]];of=cdc(f);s=12;brt=Rect((100,0,s,s));b=-1;p=[];lc=[-9,0];t=0;bt=60;pg.key.set_repeat(200,100);rh=0;cr=[];crs=pg.Surface((8_ s,s));crs.fill((255,0,0));crs.set_alpha(100);gv=-1;z=pg.font.Font("c.ttf",14);_=0;pg.mixer.music.load("t.ogg");pg.mixer.music.play(-1)

Is that a proper line of code? No.

<comment><USER3> > A code of 73 lines with inlined semi-collons is no better than a 200 lines > code

You mean: a program of 73 lines with inlined semi-colons is no better than a 200 lines program

Code is a mass noun (as is software, BTW). Program is a count noun.

<comment><USER4> As long as we're on a grammar correction theme, "... a 200 line program".

</comment></comment></comment><comment><USER5> I found an implementation of the entire jQuery API in a single line of javascript!

<http://code.jquery.com/jquery-1.7.2.min.js>

</comment><comment><AUTHOR> Took me a while to find a live copy, but here it is. [http://read.pudn.com/downloads118/sourcecode/windows/502418/...](http://read.pudn.com/downloads118/sourcecode/windows/502418/tetris.py__.htm)

<comment><USER6> not to be snarky but adding a few comments wouldn't have increased the LOC

(I'm aware that okal is not the author)

<comment><AUTHOR> I'm not the author, just something I found while browsing.

</comment></comment></comment><comment><USER7> I'd like to upvote this with all my heart, but: I wanted to browse the source with no downloading (ala Github so to speak), nope. Ok, let's follow this link to a zip file: <http://jordan.trudgett.com/tetris_73.zip> . 404. oh c'mon.

<comment><USER8> I agree, if you are showcasing code, it should be easy to view. Ideally without even having to download anything by letting people view it on Github.

</comment></comment><comment><USER9> Tetris in one line of BASIC: <http://survex.com/~olly/rheolism/dsm_rheolism/>

(This is BBC BASIC V as found on the Acorn Archimedes machines from way back when. Don't expect it to work in, say, Visual Basic.)

The description calls it "a Tetris-like game". I don't now remember how it diverges from strict Tetris (and don't have a machine handy on which I can check). I think it's very close.

</comment><comment><USER10> If one is going to deface one's Python by minifying it, it should at least be done properly: I can count at least 8 places where 2 lines can be compressed into 1, like

       if not t%5:
        gv-=1;f[9-gv]=[1]*10;f[10+gv]=[1]*10;t=1

and

       while c+lc[0]<1:
        lc[0]+=1

So the title could be "Tetris in 65 lines of Python"!

</comment><comment><USER11> Tetris in 256 bytes of binary (self-contained, no dynamic linking or libraries) handwritten in assembly: <http://pouet.net/prod.php?which=6951>

</comment><comment><USER12> Here's tetris in 33 lines of C++:

[http://www.gamedev.net/topic/51440-113-lines/#post_id_125427...](http://www.gamedev.net/topic/51440-113-lines/#post_id_1254272)

</comment><comment><USER13> I wrote this in 2008 (when I was 17) while I was bored. Check out nanosnake on the pygame website, it's better :P

</comment><comment><USER14> heh, <http://www.spoj.pl/SHORTEN/> \- 4all who love codegolfing.

</comment><comment><USER15> gist mirror: <https://gist.github.com/2464035>

<comment><USER16> reformatted: <https://gist.github.com/2464412></comment></comment>


S-Corp's vs. LLC's - <AUTHOR> http://www.feld.com/wp/archives/2006/02/s-corps-vs-llcs.html <comment><USER2> I incorporated as an S-Corp when I started. Two weeks ago I got into the fbFund incubator program, and the first thing they asked me to do is to convert to a C-Corp. I'm glad I started with an S-Corp because converting to C is a simple form I can do myself. It's also doable with LLC, but it's a lot more paperwork.

</comment><comment><USER3> The article doesn't really explain the differences in the two- he just says why he likes S-Corps better for early stage startups. I formed an LLC because I have no plans on taking any venture capitol.

</comment><comment><USER4> LLCs may have corporate investors and S-Corps cannot. My first startup was an LLC with a Fortune-500 investor. I don't recall the LLC being a big issue with them.

<comment><USER5> I don't know anything about corporate investors, but the frequently cited problem with LLCs is their ad-hoc structure. For example, there is no requirement to have shares, but such a construct can be defined in the operating agreement and would be needed to have investors.

</comment></comment><comment><USER6> Premature optimization?

<comment><USER7> More like good design practices avoid massive refactoring. The way the article puts it, choosing the wrong legal structure is like writing your webapp in hackish Perl, realizing it's becoming popular, and then scrapping your code and redoing the whole thing using a decent framework.</comment></comment>


Science's pirate queen - <AUTHOR> https://www.theverge.com/2018/2/8/16985666/alexandra-elbakyan-sci-hub-open-access-science-papers-lawsuit <comment><USER2> Frankly, scientific publishers represent institutionalised theft of tax payer money:

\- Academics (most often publicly funded via grants and university salaries) do the work for free.

\- They are expected to learn to use LaTeX and to typeset their work for free.

\- They are expected to copy-edit the papers for free, or else pay a copy editor themselves with, you guessed it, public funds.

\- Volunteer Academics (on university time and therefore, again, public money) are expected to review the work for technical accuracy and novelty. If done well this is _extremely_ time consuming.

\- Finally, the Journals have the temerity to charge the same universities who produce their product _millions_ of pounds a year in journal subscriptions and Open Access fees.

\- Finally finally, none of the Authors are _ever_ paid for their work. Not that it matters, because again: public funding should mean public access.

The most frustrating part is that Academics themselves are locked into this system by the career prospects conferred by prestigious journals/conferences.

I'm not normally one for beating the "nationalise them" drum, but if there has ever been a case for businesses to be dismantled and put in public hands it's these parasites.

Sincerely, a Scientist :-)

<comment><USER3> I agree, though a simpler solution than nationalization would be to legalize what Sci-Hub is already doing. It shouldn't be illegal to post a PDF on my website when the author wants it to be read freely and isn't going to to get paid for it anyway.

<comment><USER4> better yet, just abolish copyright and replace it with some automatic compensation system for the original author.

i don't know if "society" would exactly be better off if 100 film studios were all competing to make the best avengers movie, but it would certainly be good for creativity.

<comment><USER5> > better yet, abolish copyright

That's a serious argumentative leap to make. Do you really think that's the best solution for this case, or do you maybe have a pre-existing position on this issue which you believe this instance supports? The easiest option is likely to pass a law that publicly-funded research is publicly accessible.

> automatic compensation system

Could you detail this a little further? I'm not sure exactly for what you are advocating.

</comment></comment></comment></comment><comment><USER6> There's a reference to one of the 'value-add's of commercial journals being copy-editing:

> "For example, most of PLoS ONE's editors are working scientists, and the > journal does not perform functions such as copy-editing."

But, in fact, in my personal experience, the for-profit journals don't really do copy-editing anyway, but in fact _introduce_ new errors into the paper which then the author has to pain-stakingly track down (or not).

<comment><USER7> I have just submitted an article to an Elsevier journal. They have some non- functional web interface so that you can edit the article yourself. My biggest problem was fixing the tables, because they looked really bad after the automated copy editing. There was some text on the interface which said something like "This will not be the final version of the tables", or at least that's how I understood it. Well, I clicked submit and without any real editing from a human on their side the article was published. Now my article, which I have put so much effort in, has messed up tables.

<comment><USER8> Who cares, everyone interested will just read your pre-print. :)

<comment><USER6> Right. The reviewers who did the peer review were unpaid; readers will read the pre-print. What value does the publisher add?

</comment></comment></comment></comment><comment><USER9> The biggest problem for these sites is maintaining consistent domain names. But they always still seem to find a way.

The author also did a AMA/FAQ style post on their website about the background of Scihub: [https://engineuring.wordpress.com/2019/03/31/sci-hub-and- ale...](https://engineuring.wordpress.com/2019/03/31/sci-hub-and-alexandra- basic-information/)

<comment><USER10> Fortunately, there's [https://whereisscihub.now.sh](https://whereisscihub.now.sh)

<comment><USER6> Or look at the Sci-Hub Wikipedia page.

<comment><USER11> If you look at the source code of the linked site, you'll see that WikiData is its data source. It's just a more convenient interface.

(Tip: /go automatically redirects you.)

<comment><USER6> Right. The Wikipedia route is just convenient in not having to remember a particular address (e.g. in case you're not on your own machine).

</comment></comment></comment></comment></comment><comment><USER12> Clever hacker Aaron Swartz was hounded by authorities for doing something similar, contributing stress that lead to his suicide.

<comment><USER13> I used to have a much higher opinion of MIT.

<comment><USER12> Epstein another scandal tainting MIST's eternal begging for money.

</comment></comment></comment><comment><USER14> For anyone curious, she posted a few entries on her blog with corrections regarding The Verge's article.

[https://engineuring.wordpress.com/2018/02/16/corrections- to-...](https://engineuring.wordpress.com/2018/02/16/corrections-to-the-verge- article-about-sci-hub-part-3/)

Personally Sci-Hub was invaluable when doing some exploratory research on Free Space Optics.

</comment><comment><USER15> under the academic publishers' system, now that I'm out of school I don't even have access to a paper that I coauthored. very thankful for scihub and Elbakyan

<comment><USER6> Stealing your own work! Have you no shame!...

<comment> creative-coder That's not called stealing then, is it ? Have you no sense!...

<comment><USER6> At least one of us will need to check their sarcasm detectors.

</comment></comment></comment></comment><comment><USER16> She's a hero. Elsevier should be smothered, you can go spit on it's doorstep at Amsterdam Sloterdijk.

And they're here only because copyright royalties are undertaxed here in NL to "help the creative industry".... bloody perverse newspeak

</comment><comment><USER17> Alexandra Elbakyan is probably one of the individuals who did the most for science in the recent years. And she is considered a criminal. We live in a crazy timeline.

<comment><USER18> She's named a criminal by those who stand to lose money from Sci-Hub, aka the greedy publishers and suits who try to profit off the scientific community.

<comment><USER19> Nature, Science, et al. have two important jobs:

1) Being a good filter, increasing S:N, so you don't have to waste time sieving bullshit yourself

2) Choosing pretty fonts, promoting good stylistic standards and guidelines (which scientists, unfortunately, usually tend not to do great on if left to their devices)

It is I think an acceptable argument that charging an exorbitant price for articles is a bit of a scam, but I don't think it's fair to say that they should earn 0, or that the value they create is of 0 price. Consider that each of Science, Nature, Cell employ a couple hundred employees. If you want a good sieve, you've gotta hire talented editors, if you want articles that are easy to read and easy to understand, you've gotta hire talented graphics artists. Suddenly, this doesn't seem so easy and cheap.

<comment><USER20> Practically all computer science research is published openly in arxiv.

These papers are self edited and peer reviewed in public. I don't see much difference from when CS papers where in journals

<comment><USER11> There's not any filtering being done there though.

(Though full disclosure: I'm part of a project that aims to help identify the best preprints, so it's somewhat my thing.)

</comment></comment></comment></comment></comment><comment> phoe-krk Previous discussion: [https://news.ycombinator.com/item?id=16332139](https://news.ycombinator.com/item?id=16332139)

</comment><comment><USER21> There are few things that piss me off more then finding papers paywalled for research that was done using public funds.. There should be a law against that!

<comment><USER22> You're forgetting that it's the copyright owners who get laws passed.

That's how copyright began in the first place! It was "The Statute of Anne": Restrictions on book printing due to lobbying by the printers.

<comment><USER23> Was it the printers? I thought it was the church trying to crack down on the publication of the wrong variant of the Bible.

Even if it was the printers, they weren't copyright holders at the time because there was no such thing as copyright before the law was passed.

That aside, it would be the authors that were there copyright holders, not the printers. Copyright has always been about middle-men trying to control the flow of information.

If it has benefitted content creators, it has done so only incidentally-- because censorship laws are hard to stomach without a little sweetener.

</comment></comment></comment><comment><USER24> Elsevier, ACS and Co are just like patent trolls - pure harm and zero added value. Societal parasites.

</comment><comment><USER25> Technically, the authors are allowed to send you copies if you contact them directly.

Can't we outsource that to a service so authors can work on more important stuff?

<comment><USER26> That's basically what ResearchGate tried to do, you upload your pdfs and then get an email saying "Joe Bloggs has requested your article", you can then click accept and they get sent a download link for your paper.

Unfortunately they tried turning it into a linkedin and stackoverflow for scientists and it seems like a bit of a mess.

<comment><USER27> And now it's 20 clicks to get that article Free some serious dark anti- patterns

</comment></comment></comment><comment><USER28> Information is power. But like all power, there are those who want to keep it for themselves. The world's entire scientific and cultural heritage, published over centuries in books and journals, is increasingly being digitized and locked up by a handful of private corporations. Want to read the papers featuring the most famous results of the sciences? You'll need to send enormous amounts to publishers like Reed Elsevier.

There are those struggling to change this. The Open Access Movement has fought valiantly to ensure that scientists do not sign their copyrights away but instead ensure their work is published on the Internet, under terms that allow anyone to access it. But even under the best scenarios, their work will only apply to things published in the future. Everything up until now will have been lost.

That is too high a price to pay. Forcing academics to pay money to read the work of their colleagues? Scanning entire libraries but only allowing the folks at Google to read them? Providing scientific articles to those at elite universities in the First World, but not to children in the Global South? It's outrageous and unacceptable.

"I agree," many say, "but what can we do? The companies hold the copyrights, they make enormous amounts of money by charging for access, and it's perfectly legal — there's nothing we can do to stop them." But there is something we can, something that's already being done: we can fight back.

Those with access to these resources — students, librarians, scientists — you have been given a privilege. You get to feed at this banquet of knowledge while the rest of the world is locked out. But you need not — indeed, morally, you cannot — keep this privilege for yourselves. You have a duty to share it with the world. And you have: trading passwords with colleagues, filling download requests for friends.

Meanwhile, those who have been locked out are not standing idly by. You have been sneaking through holes and climbing over fences, liberating the information locked up by the publishers and sharing them with your friends.

But all of this action goes on in the dark, hidden underground. It's called stealing or piracy, as if sharing a wealth of knowledge were the moral equivalent of plundering a ship and murdering its crew. But sharing isn't immoral — it's a moral imperative. Only those blinded by greed would refuse to let a friend make a copy.

Large corporations, of course, are blinded by greed. The laws under which they operate require it — their shareholders would revolt at anything less. And the politicians they have bought off back them, passing laws giving them the exclusive power to decide who can make copies.

There is no justice in following unjust laws. It's time to come into the light and, in the grand tradition of civil disobedience, declare our opposition to this private theft of public culture.

We need to take information, wherever it is stored, make our copies and share them with the world. We need to take stuff that's out of copyright and add it to the archive. We need to buy secret databases and put them on the Web. We need to download scientific journals and upload them to file sharing networks. We need to fight for Guerilla Open Access.

With enough of us, around the world, we'll not just send a strong message opposing the privatization of knowledge — we'll make it a thing of the past. Will you join us?

Aaron Swartz

July 2008, Eremo, Italy

[https://archive.org/stream/GuerillaOpenAccessManifesto/Goamj...](https://archive.org/stream/GuerillaOpenAccessManifesto/Goamjuly2008_djvu.txt)

</comment><comment><USER29> 2018

<comment><USER18> Quite a feat for a story that's more than a year old to just make HN.

<comment><USER30> The stories been on HN a few times, in various fashions.

<comment><USER18> How does it reappear? Wouldn't the site catch the duplicate link?

</comment></comment></comment></comment><comment><USER31> This article is from last year. I thought it was new.

</comment><comment><USER32> kind of open source science that we need

</comment><comment><USER33> Dear all fully-baked "let's decentralize the internet" efforts,

Questions

1\. Is the entirety of sci-hub smeared across the edges of your network?

End Questions

</comment><comment><USER34> This is kind of disrespectful to Aaron Swartz:

>Headlines reduced her to a female Aaron Swartz

<comment><USER35> I think the implication is that calling her a female anything is skipping past her individual contributions as though she's the token female in this story, hence "reduction". I don't entirely agree that those headlines are a reduction, but that's what they meant I think.

Edit: maybe "the next Aaron Swartz" is slightly better

<comment><USER36> I don't mean to cast aspersions, but her accomplishments seem far more impactful then Aaron's.

<comment><USER6> I think the two both have important accomplishments, but they're not actually that similar in the details.

</comment></comment></comment></comment><comment><USER37> I have mixed feeling on Library Genesis and Sci-Hub. First and foremost, I recognize it's essential good in providing journal access for all and it's reformation of academic publishing. However, I can go to Library Genesis, and download just about any book I want, load it on a kindle, and am good to go! Does this hurt small time publishers and de-incentivise authoring niche technical works? Particularly for the niche technical topics, authoring a book is not possible as a full time job, and I wish there were a good mechanism to promote the creation of this type of work.

<comment><USER38> I think you'll find a few people on HN who have written such niche technical books. Ask them how much money these books made for them!</comment></comment>