Whatever happened to programming? - <AUTHOR> http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/ <comment><USER2> My biggest gripe with modern programming is the sheer volume of arbitrary stuff I need to know. My current project has so far required me to know about Python, Django, Google App Engine and it's datastore, XHTML, CSS, JQuery, Javascript, JSON, and a clutch of XML schema, APIs and the like.

Don't get me wrong, I'm grateful for all of it, but it just doesn't seem like what I was promised when I followed SICP for the first time. It just feels like I spend most of my time scouring through documentation and trying to remember umpteen different sets of syntax and class names rather than actually thinking in code.

Back in ye olden days, most programming tasks I performed felt quite natural and painless, just a quiet little chat between me and the compiler. Sometimes longwinded, sometimes repetitive, but I just sat and though and typed and software happened. The work I do these days feels more like being a dogsbody at the tower of babel. I just don't seem to feel fluent in anything much any more.

We talk about 'flow' quite a lot in software and I just have to wonder what's happening to us all in that respect. Just like a conversation becomes stilted if the speakers keep having to refer to their phrasebooks and dictionaries, I wonder how much longer it will be possible to retain any sort of flowful state when writing software. Might the idea of mastery disappear forever under a constant torrent of new tools and technologies?

<comment><USER3> _My current project has so far required me to know about Python, Django, Google App Engine and it's datastore, XHTML, CSS, JQuery, Javascript, JSON, and a clutch of XML schema, APIs and the like._

This is the price you pay for being able to work with other people. If you never wanted to reuse anyone else's code or talk to anything else on the Internet, you would not need to know any of this. To stand on the shoulders of giants, you need to speak their language.

<comment><USER4> I think you missed the main thrust of his complaint: back when everyone was hacking in FORTRAN and COBOL, you really didn't need to know much more than the language, its standard library, and stuff specific to the problem you were solving. At worst maybe you'd have to learn BLAS and LAPACK if you were doing numerical stuff. The APIs/overhead/junk memorization situation has been steadily worsening since then.

But at least now we don't have to take a stack of punched cards to the Priest with an Offering (bribe) and wait a day just to get a printout saying that the damn thing dumped core.

<comment><USER3> Nobody is forcing you to want to interact with the real world.

The reality is that "back in the day", computers weren't useful to very many people. Now they are.

<comment><USER4> You're taking a narrow definition of the "real world" by including webapps but excluding ATM machines.

I agree that all this "overhead" does have utility, I'm not saying we shouldn't have it -- but it's less pure/fun compared to the old stuff (IMO).

</comment></comment></comment></comment></comment><comment><USER5> Wow. I sympathize with this very, very strongly. I think this captures the root of the career frustration that I experience 70% of the time.

I seem to spend way too much time on what I call "guessing the magic password" - tracking down that one bit of punctuation in some obscure value in some xml configuration file that makes my whole system fail silently in one environment. I might spend 5 hours beating my head against a wall, only to finally figure out that this brittle system over here needed me to put some proprietary prefix on some host name in this one context. And at the end of it, I don't feel accomplished. I feel like I'm wasting my life! Figuring out which parameters to pass to which APIs in what order is a step above "guessing the magic password" - but it's not that big a step.

A few things come to mind. You can try to make sure you are one of the people writing the libraries. You can implement the next platform and use all the aesthetic sense you have in you to try to make it a joy for others to use. Put yourself in the position of the programmers who write the systems that make the rest of us age faster, and try to do a better job. Or content yourself with getting your programming joy from your elegant side-projects.

<comment><USER6> _I seem to spend way too much time on what I call "guessing the magic password"_

It's always been this way, but lately it's gotten worse and worse.

You need to fix a problem. Your friends tell you about technology X which seems exactly what you need. So you pick it up, take a quick look at the samples, and wham! Within minutes the thing is working exactly like it is supposed to!

Well almost. There's this little part that's broken that ruins the whole thing and then you spend hours or days (yes, perhaps weeks) digging up obscure configuration documentation and tweaking APIs in ancient Klingon, sacrificing turtles to Ba'al or whatever else it takes to get the damn thing working like it's supposed to.

Then it's on to something new.

The funny part of this whole story is -- when your friends ask you about how programming in X was, you are more than likely to brag about how easy it was to solve your problem. After all, the bulk of the problem was fixed almost instantly. Don't want to look like a dweeb. And so the cycle of pain continues.

</comment></comment><comment><USER7> Libraries were created so that you could focus on mastering new and unexplored territory, not to replace programmers.

As a beginner, I didn't appreciate big libraries (like Cocoa). I couldn't wrap my head around the idea of having tons of prewritten code and stitching it together - I understood programming as writing code - so I wanted to write my own damn code, not just manipulate massive libraries.

So I turned to PHP and developed my own webapp (a stripped down Google Docs), from scratch. I quickly stumbled upon the purpose of frameworks and libraries. After writing my 20th SQL query I realized I was wasting time. About 10 hours later, I made my own light PHP framework. Now I didn't have to worry about my SQL syntax (it was automated based on the data model variables) and I got to start working on really cool/interesting programming issues rather than the mundane blah code.

Now I've started to investigate Cocoa again and I realize that libraries and frameworks have not hurt programming, but dramatically catapulted it into the realm of science rather than plug-and-chug. Today, our software is more complex than ever and it will only get more complex in the future.

I think if you see programming as just "stitching libraries together", then you've lost your passion or never had any to begin with. Programming has evolved into a science where you have to learn the foundations (languages) AND the pre-existing solutions (libraries) in order to figure out what's been done for you so that you can focus on exploring new and more complex issues.

<comment><USER8> I think you need to really learn what sql is. It's a 4th generation language, higher level than php or other oo/procedural/functional langauges. If you're finding php and a framework to be better you're underestimating the power of sql.

<comment><USER7> By that example, I meant to highlight the DRY aspect of programming and how I realized, as an early beginner at the age of 15, that frameworks and libraries provide a good foundation so you can focus on more complex issues.

The SQL I kept repeating in that application was simple CRUD functions on MySQL tables. I know that SQL is so much more than that.

<comment><USER8> Sql isn't more than that. That's the whole beauty of relational programming, you only have to write queries and views, and this simple abstraction does most of the work that you need to do (with pl/sql or t-sql it is turing complete and you don't even need to leave the rdbms).

<comment><USER9> I don't get why some people keep praising SQL like this. SQL is great for complex queries that contain valuable logic, but it's not expressive at all when you want to do something trivial. Getting all the attributes of user X is so much more work, and harder to maintain, in SQL than it is in any ORM.

"select name, pass, hash, email, realname from user where id = ?"

versus

session.get("User", x)

<comment><USER3> SQL is not particularly nice for complex queries, either. The underlying model is good, but the particular syntax they chose is verbose, confusing, and non- portable.

<comment><USER9> I kind of agree, but I was conceding the most reasonable argument to the parent.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> The author captures the sentiments of a generation of programmers quite well. In the 80s, at the beginning of my 'professional' programming career, I wanted to not believe those who foresaw our careers as being like engine and automotive engineers of the early 20th century. That is, destined to become "parts changers".

Early-phase technology workers with those sophisticated machines were true 'engineers', and were paid well. Over time, things evolved (of course). That history confirmed and taught that as technology matures, it becomes commodity. Economies of scale emerge, markets develop, etc. make it such that the technology practitioners ultimately become installers and configure-ers. I think it started to go awry, in my timeline, when the term Application Programming Interface (API) hit the streets. :-)

However, the above is really only true in the 'application development' space. Most software development opportunities are in that space; and therefore, yes, most opportunities to develop software are boring, non-engineering jobs -- rather blue-collar, in fact. To one steeped in a true CS background, that's a real disappointment when considering a lifetime career. This is true for those in their 20s as well as their 40s.

So, I agree with other posters here: get creative! Reject the direction of the herd, if it seems fitting. Do it anyway, just to experience and learn.

</comment><comment><USER11> It seems the author of the article is stuck in a problemscape where all the problems he would find interesting are already solved.

One solution is to move to a new area of software development that offers challenging problems.

I am currently, like many others it seems, working with creating enterprise CRUD-apps and integrating them. I try to find joy in reaching for a skill level where I can produce solutions quickly, solutions that are easy to change, solutions that immediately lets you know where and why an error has occurred, solutions that are secure, solutions that scale, solutions ran in the cloud instead of on servers that it takes it operations months to set up etc. There really aren't that many people out there that can do all of the above well (me included) and there are lots of money to be saved for your employee/clients doing those things well. I think we would see a lot less attempts at off-shoring if more people in enterprise-it would strive for that kind of knowledge.

I guess what I'm trying to say is, maybe one shouldn't have too high expectations of the technical challenges in problemscapes that have been mostly solved already but that, at least in my area, there are still challenges to be found. They are just of another kind and maybe you can find them interesting? They keep me interested enough at least.

 _sigh_ Why am I posting on hacker news again?

</comment><comment><USER12> I think to do actual "programming" you need to work for a software company. Google and Facebook and other gargantuan sites have as much interesting CS stuff to work on as you could want. I'm sure many at Apple and Microsoft still get down and dirty with OS internals. There are a lot of companies springing up focused on machine learning over massive datasets.

If you are building applications for end users, though, it's hard to justify not leveraging libraries and frameworks that already supply much of what your users want. Especially if the software does not directly make money for your organization.

</comment><comment><USER13> What happened is the we finally hit "the dream" of building software out of large building blocks instead of having to reinvent screws and bolts for every project.

The lack of fun is, in my opinion, a side effect of using weak languages that force us to write boilerplate and ceremony along with using half-baked non- Turning complete XML languages (don't forget the "L" in "XML" stands for "language").

<comment><USER14> "screws and bolts... non-Turning (sic) complete"

Pun intended?

<comment><USER13> Heh... Pun not intended; just typing too fast.

</comment></comment></comment><comment><USER15> This is the promised land. Remember hearing how good code re-use is? Now it's here.

<comment><USER16> Hurray! Now we can focus on what's really making our application different. And it turns out to be boring.

Maybe we should be more creative in our application's core functionalities, should we not?

</comment></comment><comment><USER17> Is this an indictment of frameworks or merely an indictment of bad frameworks? I've worked with both. Trying to manhandle JAX-RS into marshalling your objects in exactly the right fashion such that the XML parser doesn't barf on them is not exactly uplifting work... but it _did_ get something done for my customer.

Working with well-designed frameworks, though, is a true joy. It means I spend a minimum of time on plumbing and spend the majority of my efforts solving problems for my customers or otherwise doing high-value work. I understand there are folks out there who love socket programming, but I've done socket programming, and I have no desire to _ever_ touch it again. Good HTTP clients, REST, etc make that _totally_ unnecessary for the types of problems I routinely have to solve. (Speaking of good frameworks versus bad frameworks -- even in Big Freaking Enterprise Java there is a titanic gulf between ways to implement web services. RestEasy is probably the best architechted framework I've ever seen -- it is so good you can forget you're using a web service at all.)

My next business will need to make telephone calls. There is a whole lot of very ugly coding necessary to make that happen. Happily, Twilio has apparently already done it for me. I'll just snap together Twilio and Rails to be able to make the customers' phone ring, and concentrate on delivering the smart part of the service, which is that making sure what happens after the phone rings solves a real problem that is preventing their business from making money.

<comment><USER18> I think it's more an ode to "plumbing". From your tone, I get that you don't see much value in or get much enjoyment from writing a parser, or doing pixel- level image manipulation, or writing extensions to your editor to gete it set up just perfectly, or trying to get your code to fit in a 64k segment, or debugging hardware drivers. But some of us do.

We're just different. For you, and most modern programmers, there isn't much value in that stuff, and you don't want to have to do it. And, in the modern world, the truth is we don't have to except in the rarest of circumstances.

In the modern world, developers (they aren't called "programmers" anymore, it seems) have the freedom to worry about prioritizing "high value work" to solve their customers' problems. But it wasn't always that way.

For some of us, that kind of sucks.

</comment></comment><comment><USER19> Everyone is tainted by their own experience, I suppose, but I feel like I get to work on plenty of interesting problems. What bothers me (and this author it seems) is having to spend your time learning arbitrary things, such as an XML format for a configuration file, or nuances of how different browsers handle different conditions.

However, we (web developers at least) are writing software that is supposed to run on just about any hardware / OS / browser combination, and making that happen and doing complex and interesting things in that context is going to involve lots of arbitrary details.

That being said, if I think back 10 years, this type of work has become _dramatically_ more pleasant thanks to a lot of open source software that has matured in that time.

If the complaint is that we can't all write our own virtual memory system or our own b-tree, I suppose I can't disagree that that is becoming less of a reality. However, solving interesting problems still requires an understanding of these things, and using existing libraries in my experience saves me time and allows me to have a bigger-picture view and solve larger problems. It is still very satisfying. If this article is written from the perspective of someone automating simple and mundane business processes, putting together forms, etc, then I believe the complaints are misdirected.

</comment><comment><USER20> The problem is not that libraries exist, but the incredible mental investment required to use them. Early libraries were just bundles of functions, but modern libraries are vast, complicated beasts that require years of experience to fully grok. But don't take too long, because they all exist in a state of perpetual churn, and hitching yourself to the wrong train could well destroy your career.

</comment><comment><USER21> the current trend of plugging together frameworks and libraries does lead to some pretty boring, frustrating work. And the unfortunate thing is that in many cases they don't even reduce the complexity of the solution. (They certainly don't simplify the /problem/)

There's a fascination with shiny new things and it's tempting to think that the latest and greatest download from some smart guy solves the problem you are solving. But after a couple years working in that manner I'm not so sure.

I think it's tempting to view frameworks and/or libraries as an implementation of software patterns, and also as a way to avoid learning your trade. That's probably not concious thought behind it, but you see it in so many things... if you just learn this framework or use this library, you won't have to learn html, or css, or sockets, or synchronisation, or searching and sorting, or...

</comment><comment><USER22> This has happened to many industries, not just programming

A Pharmacist (not sure what you call them in the US) spends years at Uni learning all about drug manufacture, how the body works etc, and now all they do is type script in the computer and hand over bottles of tablets

What does a signwriter do now? It used to be a skilled craft, now all it requires is typing text in a computer that then cuts the letters from a roll of vinyl sheet

Or Carpentry or any number of other trades?

</comment><comment><USER23> Internet happened. Internet has made sharing code extremely easy, and promotes code reuse which has led to current situation.

On the other hand, nobody is forcing you to follow this "glue libraries together" -method. Disconnect from the internet and just start coding. As a bonus you'll get rid of a lot of distractions (email/IM/twitter/whateva). It can be quite refreshing, and who knows, maybe you'll even create something _new_ and awesome.

</comment><comment><USER24> If you're just plugging libraries together it's a sign that the area of computing in which you're working has ceased to innovate.

</comment><comment><USER25> This was maybe the main reason why I switched to Ruby. The largest part of my time was spent on integrating other people's work. Don't get me wrong. It would take me more time to write the code from scratch and it would have introduced redundancy. But it just didn't feel right spending so much time on getting other people's stuff play together. I think the problem is that C/C++ and Java don't scale semantically.

</comment><comment><USER26> My comment I left on the post:

I guess it depends on your motivation. I don't program because I love creating complex data structures or innovative new algorithms, I program because I want to create innovative new applications that change how people live, think, work, learn, etc. I signed up for programming so I could change the world for the better in my own little way -- not improve how an electronic machine inputs and outputs binary input.

But to each their own. It seems everyone likes to work at different levels of abstractions. I think we can both agree that those electric engineers are weird :)

</comment><comment><USER27> The whole point of libraries and higher level languages is that they allow you to work at a higher level of abstraction.

As the languages and libraries improve, difficult problems become trivial, while impossible problems become merely difficult. Given enough time, problems eventually become trivial enough to be solved by non-programmers.

There will always be a frontier - problems that have barely just become solvable thanks to improvements and technology, and these 'very difficult' problems will be what the best and brightest will be drawn to.

Maybe the author is working on problems that aren't challenging enough.

<comment><USER28> I'd take the view that the emphasis has shifted from 'can we do this? / is it possible' to 'how shall we do this? / what will make our users happiest'. Both of these are great aims, but the former is probably more fun. There will still be edges where the emphasis is still on 'is it possible' but as the technology matures, you'll probably have to seek them out, rather than be there automatically.

</comment></comment><comment><USER29> A very interesting observation.. I tend to agree that the sheer number of frameworks and libraries makes programming into coping with flaws or badly documented "features". The other thing is that the programming world is much like an archipelago, where different islands develop their own programming culture, like .NET or JEE or PHP. And the islands are floating apart: It will become increasingly difficult to establish the better choice because of long learning curves. It is important to admit there are other cultures out there, that even might do a better job in particular areas. However, as much as frameworks get more sophisticated and cater to the programmers ideal of elegant and abstract formulation of the code, Managed Code, Reflection and even OO have a overhead cost in cycles and bytes, particularly when scaling up. As a 45+ programmer I sometimes weep about "elegant" code that drives your machine to the edge but only does a fairly simple job. Stacking API's and frameworks does certainly not always contribute to efficient and simple executables. Sometimes we just need to get back to the root, or at least understand what happens in the machine when we use a certain framework or library. For programmers that will remain a challenge, and fortunately will force us to reflect occasionally...

</comment><comment><USER3> Programming for the sake of programming and programming to solve real-world problems are two different things. The first is more fun, the second is more profitable. Since most people want money rather than fun, most programming is of the second type.

If you want to program something fun, nothing is stopping you. Thanks to the libraries, you can concentrate on what interests you, rather than the details of how some standards committee thinks the word "referrer" is spelled.

<comment><USER30> I think your comment hits the nail on the head. I've worked with web apps for a long time and I quickly learned that all I was doing was writing software for some business process. This isn't the sexiest work or the most interesting, but it has never stopped me from doing interesting things.

For example, I try constantly make less work for myself. So much of the code we write is boilerplate so I have various tools that generate as much code as possible. I have written mini languages that specify the important parts and then generate all of the plumbing around it. I won't run out of interesting problems until I can generate an application by specifying the important parts (to the business) and generating everything.

</comment></comment><comment><USER31> There is fun and exciting work to be done still. The fact that most of us chose to work on boring plumbing has little to do with programming having changed; it became a more diverse field a majority of which is 'commoditized'.

So why complain? Go do something interesting. If the problems you are solving as your daily routine are themselves boring why would the process of solving them be any more fun?

</comment><comment><USER32> Years of research and countless dollars have gone into making programming a systematic, controllable process. Old school managers frequently wish that a dev team would output like an assembly line.

Simultaneously, we're expected to be into the newest and coolest technologies.

Put these together, and we're supposed to systematically glue everything that's new.

Seriously, it's not all bad, though. I like being able to generate a test UI in under an hour or a basic web spider in one python file. The art's just different. It's no longer packing your entire logic into beautiful lines of BASIC. It's now more about choosing the right platform to do something that the user will appreciate.

If you're into the pre-library styles, I recommend looking at alternative hardware. When I wrote my first CUDA project, I had to figure out how to get random numbers with sufficient randomness for our physics simulation. You might also look at robots or embedded devices. There's plenty to tinker with on devices that don't have libraries available.

</comment><comment><USER33> It's a pity that so many friends of mine gave up programming after starting out with Java... But, at least MIT didn't ditch Scheme for Java @intro level. Better Python than Java any day :-)

</comment><comment><USER34> I've been feeling like this lately, every now and then there are some interesting problems to solve but more often than not it's all just plumbing...

<comment><USER35> Every now and again? What?! If you can't find problems with today's internet technology, you aren't looking hard enough.

</comment></comment><comment><USER36> GCC?! Real programmers use punch cards.

More seriously, abstraction is not the issue. The issue is poorly written libraries and languages that require you to worry about the small details. Your brain can handle many small details or a few big ones, but not both. I recommend picking the latter, and using libraries and languages that allow you to do so.

Hint: Lisp is really pretty swell.

<comment><USER3> Lisp has libraries?

</comment></comment><comment><USER37> I think the core of the problem that the OP is experiencing is that most API's are really bad. By bad, I mean the API gets in your face and becomes more hindrance than help. I say, choose your API's wisely, find what helps you and discard the rest.

</comment><comment> brown9-2 _I want to make things, not just glue things together. When people ask me what I like about my job, I always say the same thing: that its the thrill of starting with nothing and making something._

I couldn't agree with this more.

</comment><comment><USER38> Yep. I've been going and digging up old ACM and other programming contest problems just so that I don't forget how to actually code something from (near) scratch. I was disturbed to discover how rusty I was.

<comment><USER39> I started doing Project Euler problems for the same reason last year. I even sat up with friends one night working on a few problems, just to recapture that college feeling.

But I know writing algorithmically interesting problems are not likely to appear at work, and I've made my peace with that, along with the paycheck I get for writing enterprise systems.

</comment></comment><comment><USER40> boo hoo, the wild west days of roll your own everything are gone. except they aren't, you just have to be good enough that companies working on the forefront of non-standard (yet) hardware will hire you.

</comment><comment><USER41> I weep for the software industry.

Our lives are going to suck in 10 years.

<comment><USER42> I'm pretty sure this complaint has existed as long as there have been programmers.

If you want to program as they did in 1985, go work for a game company. Or find an investment bank looking for C++ developers; they're out there.

<comment><USER43> Last I checked, BOA in ATL couldn't find enough super good math/finance/C++ programmers, for instance.

<comment><USER3> It's because the people that are good with math, finance, and programming don't want to use C++ (or live in Atlanta). Remove the C++, and it becomes much easier to find people. Look at how successful companies like Jane Street Capital are in recruiting, for example, even though the pool of people that know OCaml is much smaller than the pool of people that know C++.

(My experience with people that know math and finance is that they do all their work in Excel. That's because simple programs become 100-file boilerplate monsters in C++ and Java, and someone told them that Perl and Python are not real programming languages. Sigh.

OTOH, turning spreadsheets into production software is profitable and enjoyable. Let the programmers program and let the finance people do finance.)

<comment><USER44> I'm good at math and programming and all the stuff required to work as a quant and I'd much rather write C++ than anything else.

<comment><USER43> Well then enjoy: [http://careers.bankofamerica.com/JobDetails.aspx?SearchPage=...](http://careers.bankofamerica.com/JobDetails.aspx?SearchPage=ASP&CountryId=1&JobId=0900037352)

</comment></comment></comment></comment></comment></comment><comment><USER45> It's just one of those things

</comment><comment><USER42> Javaschools, PHBs, and other failed attempts at the commoditization/regularization of the software engineer brought this about.

There are as many interesting problems today as there were in 1960 or 1985 or 1998. There will be demand for new languages (and new compilers for those languages). Operating systems may or may not be "solved" for now, but VMs are going to be of interest in the next 10 years.

The problem is that, outside of high-risk startups and possibly academia, it's very rare to get permission, resources, and support to attack the interesting problems. Blue-sky research is gone. This is because of the next-quarter mentality; there's a significant likelihood of failure if you're doing something interesting, and interesting projects cannot easily be done to deadline. And everyone wants to be on those projects. So a first-year programmer at an average company is not very likely to get to do an AI research project that may or may not lead to anything.

"Gluing" projects, on the other hand, can usually be completed in a predictable amount of time and have a high likelihood of achieving success for sufficiently mediocre definitions of "success".

<comment><USER46> > Javaschools, PHBs, and other failed attempts at the > commoditization/regularization of the software engineer brought this about.

Personally I am glad the same thing happened to other industries like shoemakers and car builders. They have been commoditized: so what? It's good for people who buy their product. The same is true of typical software engineering work.

Although I disagree about the extent to which our work has been commoditized. I don't think we're anything like factory workers yet, although it may someday come to that.

<comment><USER20> The problem with the software industry is that it isn't productized.

Probably the majority of programmers are working for internal corporate IT departments cranking out CRUD apps because the company mistakenly believes it's a precious, unique snowflake that couldn't possibly make do with off-the- shelf software for routine business processes, even though they derive no competitive advantage from custom software. Most of these jobs simply shouldn't exist.

The larger problem is that too many people profit from the dysfunctions of the software industry. From the empire-building CIO to the outsourcer in India, there are plenty of people who benefit from shovelling bad programmers at bad software, and would lose out if companies bought cheap, standardized software from independent companies.

<comment><USER47> The assumption that cheap, standardized software is either cheap or standardized is a false one. Take the content-management space. For a complex site serving millions of viewers with 100k+ pages, off-the-shelf solutions can be quite expensive (when you account for the initial investment, the time-to- learn, the internal development work required to implement customizations) and often you need to customize the solution.

In the end, you end up with a custom solution layered on top of a specific implementation (so, no standardization even if you started from the vanilla off-the-shelf). Implementing a tool that's specific to the needs of the company can turn out to be a reasonable decision.

<comment><USER20> How many internal corporate apps are serving millions of viewers?

<comment><USER47> Depends on how you look at it. I work on an internal CMS that has <100 users but powers large websites serving millions. The app is internal but the product goes to the external-facing websites.

</comment></comment></comment></comment></comment></comment><comment><USER8> Cool stuff isn't operating systems and compilers, cool stuff is getting your computer to do your job for you.

Why don't you use the knowledge you gained of prolog and lisp and metaprogram the tasks you're given to get your work done even faster.

This talk about crud is boring, libraries are boring, is almost ludicrous. There are 200 million jobs in the united states alone that can be automated by software. Try to automate those jobs - that's cool and lucrative stuff.

<comment><USER48> Grabbing libraries isn't fun when you first start out programming you really don't learn much and really can't do anything and I think that seems to be where everything is headed.

If you are programming for work sure its going to be easier to grab a library to do a certain task for you even if you have to mangle your task a little bit to use it but when you are learning or even when you are programming for fun that is dull and really really not fun.

<comment><USER49> I think part of the problem is having too many options. When all you had was moveto and lineto, simple programs with simple graphics was enough.

Now, such programs seem so lame and pale in comparison to the state of the art, while the amount you need to know and learn to match that standard is daunting, there must be a cost in terms of programmers lost to the profession at an early age.

</comment></comment></comment><comment><USER50> "For me, there is a sort of metallic flavour to most raw tuna;" - yes, it is called Mercury

<comment><USER20> If you can taste the mercury, you're in trouble.

<comment><USER50> That was the point! :)</comment></comment></comment>


Why Android Will Always Be Laggier Than IOS - <AUTHOR> http://www.cultofmac.com/133624/why-android-will-always-be-laggier-than-ios/

<comment><USER2> "because the UI elements weren't hardware accelerated until Honeycomb" That's a common misconception. Android has been using hardware acceleration since before 1.0. There have been more and more HA-backed new APIs with each releases or so but it has been here from the start. Also, things are not so simple that 'activate hardware acceleration' is the gold solution that solves drawing. In truth, many things can go wrong in the time between 2 frames.

</comment><comment><USER3> never say never. for example, (and somewhat analogously), remember the change beetween NT 3.5 and 4.0 to move graphics from the Win32 subsystem into the executive, with the resulting performance improvement.

</comment><comment><USER4> Article is from 2011.</comment>


Why don't developers write more secure code - <AUTHOR> https://softwaresecured.com/why-dont-developers-write-more-secure-code/ <comment><USER2> This free guide should help developers write more secure code.

[https://www.inversoft.com/guides/2016-guide-to-user-data- sec...](https://www.inversoft.com/guides/2016-guide-to-user-data-security)

</comment><comment><AUTHOR> Developers have been rapped in some circles for writing code with security flaws, but is such criticism justified?

P.S. Want to help developers write more secure software, join the mission firstname.lastname@example.com</comment>


Simple exploit completely bypasses Mac's malware Gatekeeper - <AUTHOR> http://arstechnica.com/security/2015/09/drop-dead-simple-exploit-completely-bypasses-macs-malware-gatekeeper/ <comment><USER2> Isn't this basically "working as intended"?

Gatekeeper is not meant to eliminate security bugs in third party applications: Anyone can sign anything, there's no review of your code by Apple. But if your app turns out to be malicious, Apple can revoke your certificate and now it's blocked.

In this case, the relevant app isn't malicious, but it will run arbitrary unsigned code that happens to be sitting next to it in its directory. It could just as well do something stupid like opening up an unprotected port and accepting shell commands.

It's up to Apple to decide whether this flaw is egregious enough to add the developer to the CRL.

The article implies they're investigating other mitigation strategies. I suppose there are options to block this particular scenario, but overall I can't see how they can ensure that developer-signed code is vulnerability- free.</comment>


Bitcoin perception in 2011 - <AUTHOR> http://slashdot.org/comments.pl?sid=2347448&cid=36869628

<comment><USER2> "Can I pay my utility bills with them? No. Can I may my mortgage with them? No. Can I go into most shops or online stores and buy stuff with them? No."

Still the same in 2013.

But at least there are companies emerging to tackle these problems.</comment>


Fundamentals of Electric Propulsion: Ion and Hall Thrusters (2008) [pdf] - <AUTHOR> https://descanso.jpl.nasa.gov/SciTechBook/series1/Goebel__cmprsd_opt.pdf <comment><USER2> If anyone is interested in further reading, I designed one of the smallest known Hall Thrusters while doing a research internship at Princeton University [1].

[1]: [https://www.dropbox.com/s/qd97lsm5iw3cvt3/CHT_Paper_Kennedy....](https://www.dropbox.com/s/qd97lsm5iw3cvt3/CHT_Paper_Kennedy.pdf?dl=0)

Abstract: Electric propulsion provides a significantly higher specific impulse that allows mass reduction for spacecraft when used in lieu of chemical propulsion. For micro and nano satellite applications, plasma thrusters should not only be miniaturized in mass and volume, but also capable of operating efficiently at very low power levels of a few watts or less. Research was conducted to determine theoretical limits and practical restrictions on materials and electrodes for miniaturization of cylindrical Hall thrusters (CHT). Analysis of the scaling relationships for plasma properties and thruster performance were derived and the thruster design, including the magnetic circuit, will be presented.

</comment><comment><USER3> how is it applicable for missions to mars and Moon ? Is there a reason why This technology not used in modern spaceships e.g. SpaceX etc

<comment><USER4> Waaaay too low thrust to be useful. Those kinds of engines work best in space for long-range missions, where their ability to keep low but constant acceleration for long periods of time means you can reach high velocities with little fuel. But for takeoff and landing, you need _high thrust_ , because you're fighting gravity - hence chemical rockets.

<comment><USER5> Indeed.

Just did a bit of stubby pencil work. Ignoring fuel and power supply mass, a modern 30kw hall thruster strapped to Voyager 2 and run continuously until today would have accelerated the vehicle to 7 million mph (.01c)

This would place the vehicle at around 1.2 trillion miles away from us (.2ly).

<comment><USER6> > 30kw hall thruster

Note that New Horizons has only 288 W and the Voyager probes had 480 W, so this really isn't a self-consistent scenario. (Solar power is much weaker still at those distances.)</comment></comment></comment></comment>


Show HN: Kickflip – Open Source Live Mobile Video Streaming SDKs - <AUTHOR> https://kickflip.io/blog/kickflip-live-mobile-video-streaming-sdk/

<comment><AUTHOR> Hey guys!

Rich from Kickflip here. We've been working really hard on this for a long time and are super happy to get to announce it today.

Kickflip is some really cool tech - we've lowered the cost of mobile video broadcasting by orders of magnitude, and we've opened it up to everybody!

If you've got any questions or feedback, let me know and I'll be happy to answer them.

Thanks very much!

<comment><USER2> Glad that someone is doing this. The last time I looked at it, it was hard to do hardware encoded video (out)streaming well on the iphone. The open API only allowed writing the compressed stream to a file. Pipelining or FIFO tricks did not work well because the file was not in a consistent state untill it had been closed. It appeared that the OS was not flushing key metadata until then. So the options seemed to be either have a quick cycle of starting and stopping recording on a ring buffer of files, this would drop frames; or parse and fix (with some second guessing) the compressed stream in the application. The first one was easier to implement but quality wasn't great, although software interpolation of the dropped frames might help some. The second seemed too much work.

Has the scenario on the open API changed ? I would guess not. Congrats for taking care of this.

<comment><USER3> Unfortunately Apple still doesn't expose the APIs that we need and are forced to use tricks to get the encoded frames. We based our hardware encoder wrapper on the technique described by Geraint Davies [1], but have modified and improved upon his method.

The main trick is to encode only video frames in your temporary .mp4 file, and to make an additional 1 frame .mp4 file for extracting the avcC record.

1\. [http://www.gdcl.co.uk/2013/02/20/iOS-Video- Encoding.html](http://www.gdcl.co.uk/2013/02/20/iOS-Video-Encoding.html)

</comment></comment></comment><comment><USER4> Can you share your experience of the typical delay for CDNed live stream? 5 sec? 10 sec?

<comment><AUTHOR> We found that Bambuser had a delay of around ~60s - ours is 10-20s, depending on the buffer size. It can be brought down to 5-10 by shortening the chunk size, but that increases the overhead somewhat. However, we're experimenting with this all the time, and optimizing based on the needs of our users, so hit us up via email if you have any specific requirements.

It is worth nothing that this is definitely a broadcast-first technology (at least for now), meaning that it's designed for delivering a high quality stream which will be seen by a large audience, rather than a low quality stream to an indivudual audience with a short amount of latency.

</comment></comment><comment><USER5> That's actually a double 720-flip, not a kickflip: [https://kickflip.io/](https://kickflip.io/)

<comment><AUTHOR> Well, that's because we're the only live video broadcasting SDK which can do 720p!

(Ok, it's actually just because it's an awesome trick. The 720p thing is just a coincidence.)

</comment></comment><comment><USER6> Very cool! I've recently open sourced a good portion of my game broadcasting SDK, which now has a few people using it for purely making camera apps to stream to RTMP services. Mine is not nearly as refined as this one, nor do I have any sort of CDN heh.

Congrats guys, looks awesome.

<comment><USER2> Hey [https://github.com/jamesghurley/VideoCore](https://github.com/jamesghurley/VideoCore) looks great, wish I knew about it earlier.

<comment><USER6> Thanks! It's a side-project but I try to fix any bugs as quickly as I can and I've got some new features planned/in development for the future.

</comment></comment></comment><comment><USER5> "python client source code" link is dead: [https://github.com/kickflip/kickflip- docs#api](https://github.com/kickflip/kickflip-docs#api)

<comment><AUTHOR> Nice catch! :)

The python library and client is still work in progress.

Still, I've open sourced the repo so those who are curious can take a peek, although there isn't much worth showing there yet. We'll make a larger announcement when that happens.. there's a lot of stuff we've got planned for the desktop yet.

Here's the fixed link: [https://github.com/Kickflip/python- kickflip](https://github.com/Kickflip/python-kickflip)

</comment></comment><comment><USER7> Transcoding on the client instead of in the cloud increases the amount of CPU and upstream bandwidth needed, and both are in short supply on phones.

To put this in perspective, three live encodes/ streams (360P, 540P, 720P) using Wirecast on a high end Macbook Pro pegs the CPU around 60% and requires at least 5MBPS upstream.

I understand the financial reasons for this architecture - cloud-based transcoders are crazy expensive - but from a customer satisfaction POV it's not an easy project.

<comment><AUTHOR> The CPU usage actually isn't a whole bunch, since we do the video stuff with the hardware encoders on the devices.

It does use more bandwidth, since the streams are higher quality than other methods, but that's . It's also configurable.. it doesn't _have_ to be higher quality. Implementers can choose to lower the resolution.

All in all, this is definitely a better solution for developers and clients.

<comment><USER7> This is definitely a _cheaper_ solution than outsourcing to a cloud transcoding service, which is $$$.

The streams are not higher quality than other methods. Your 720P is the same as everybody elses.

<comment><AUTHOR> But everybody else doesn't have 720p, precisely because cloud transcoding is so expensive. By default, Bambuser broadcasts at a measly 240 resolution with a low bitrate, and other streaming services were similar. In our test, our video quality was always much much higher.

This is a great opportunity for a future blog post in which we explore the differences you're bringing up!

</comment></comment></comment></comment><comment><USER8> Is the SDK going to allow a way to bypass all of the Kickflip infrastructure to allow the core streaming library to be used on your own maintained infrastructure?

On the product I work on, we already have our own house built media server and rtmp restreamer. As to not supporting RTMP, in our experience RTMP had much lower latency, which resulted in us switching away from HLS wherever possible.

<comment><USER3> RTMP support is on our roadmap (and actually exists inside the SDK in a disabled state), and our live transcoding backend will have the ability to restream to any arbitrary RTMP endpoint in addition to the other outputs.

<comment><USER8> That's good to hear. Is the plumbing the "cost" of using the open source sdk, which in turn technically requires you pay for the service, or is there a way to remove all of the kickflip infrastructure plumbing and rely on our own?

I don't actually work on the mobile streaming side of things, I work on the web side, particularly the video player.

</comment></comment></comment><comment><USER9> Very cool. This could be the holygrail for live streaming. Unfortunately Qik was retired. Good job.

</comment><comment><USER5> Besides using FFmpeg, are any novel optimizations/compression being offered?

<comment><AUTHOR> We actually don't use FFMpeg to do the compression, we use the hardware encoders, so it uses much less CPU. That's how we're able to broadcast at a much better resolution.

It's also bandwidth adaptive streaming, backed by a global CDN, and generates both Live and VOD HLS streams.

But, more importantly, we've designed it in such a way that as a developer, you don't even have to worry about that! The library just exposes a really simple API that does all of the video magic for you.

<comment><USER10> Nice work! What are the min hardware requirements for iOS & Android devices?

<comment><AUTHOR> Thanks!

Kickflip currently requires iOS 7 and works on any iOS device which supports iOS 7.

The Android requirements are a bit steeper, unfortunately: Android needs at least 4.3, as that's when the hardware encoder access API which we use was introduced.

</comment></comment></comment></comment><comment><USER11> I created an account but when trying to create an app it redirects to a blank page.

</comment><comment><USER12> Can you share the costs of streaming to 100Ks clients?

<comment><USER3> What do you mean by "share the costs"? Our pricing plans are based on usage tiers: [https://kickflip.io/pricing](https://kickflip.io/pricing)

</comment></comment><comment><USER13> is this some sort of hosted service and if so where is the pricing ?

<comment><USER3> Yep, we manage all of the infrastructure so you don't have to. We should make our pricing more up-front but here is a direct link: [https://kickflip.io/pricing](https://kickflip.io/pricing)

<comment><USER13> requires me to sign in before viewing the pricing ??</comment></comment></comment>


Apricity OS is now officially dead - <AUTHOR> http://news.softpedia.com/news/arch-linux-based-apricity-os-gnu-linux-distribution-is-now-officially-dead-515488.shtml <comment><USER2> original anouncement this reports on: [https://apricity- os.github.io/](https://apricity-os.github.io/)</comment>


Inside the World's Only Sourdough Library - <AUTHOR> https://www.atlasobscura.com/articles/sourdough-library <comment><USER2> I wouldn't call it the only sourdough library. There is an ongoing effort by scientists to study sourdough, called The Sourdough Project [0]. They are collecting samples from around the country.

This is work in progress, but I heard one of the scientists speak recently and he said the idea that starters differ based on location is not showing up in the data. Will be interesting to read updates as they learn more.

[0]: [http://robdunnlab.com/projects/sourdough/](http://robdunnlab.com/projects/sourdough/)</comment>


Ask HN: What are the best blogs and websites for mobile app developers? - <AUTHOR>

I'm looking for ways to get informed about mobile app development news, new services and and tutorials. (both iOS and Android) <comment><USER2> Check out [http://www.raywenderlich.com/](http://www.raywenderlich.com/). One of the very best tutorial sites out there for mobile app development! Appcoda is nice too, although it's only for iOS.

</comment><comment><USER3> I don't know if you're an iOS guy but I've been listening to the iPhreaks podcast. There have been a couple pretty enlightening ones.

</comment><comment><USER4> Also there is great good screencasts for iOS at nsscreencast.com

</comment><comment><USER5> I subscribe to objc.io, iosdevweekly.com and nshipster.com.

</comment><comment><USER6> Huh, all ios so far. Maybe me and my coauthors should start and Android developer blog.

<comment><USER7> There's actually such a thing. :D

[http://android-developers.blogspot.com/](http://android- developers.blogspot.com/)</comment></comment>


VEVO Execs Must Face Criminal Charges For Copyright Infringement - <AUTHOR> http://uncrunched.com/2012/02/09/vevo-execs-must-face-criminal-charges-for-copyright-infringement/2012/02/09/vevo-execs-must-face-criminal-charges-for-copyright-infringement/ <comment><USER2> _VEVO Execs Must Face Criminal Charges For Copyright Infringement_

Criminal charges are a serious business and I don't think it promotes healthy debate to sling around loose statements suggesting that they be pursued recklessly by the authorities, no matter how unattractive the party involved in the wrongdoing. No self-respecting prosecutor would even consider bringing charges where only a one-time incident is involved and where the alleged perpetrator claims (as here) that the incident was inadvertent (however lacking in credibility this may be, it is a classic "plausible deniability" excuse). Do we really want our government devoting substantial resources toward trying to prove guilt beyond a reasonable doubt in such a case? And does anyone seriously want this to be the standard by which criminal prosecutions for alleged copyright infringement are brought?

Since I would assume the answer to these questions is no, then the only point of this piece is to use an absurdly overstated headline to draw attention to itself.

I am against hypocrisy as much as the next guy, and I have no particular sympathy for the musical labels (or even for the sort of glitzy events at which this incident occurred), but it does not advance the cause of attaining sane copyright legislation to make "off with his head" demands that have no basis in reality.

Music industry hypocrisy is fair game for advocating against draconian copyright enforcement and in itself makes for a potent argument. The effect is much diluted, however, when the argument cannot be taken seriously. If instead this is not intended to be taken seriously but is rather a form of street theater intended to dramatize a point, then it is (in my view) just lame and ineffective.

This is a case of infringement by which the copyright holder can choose to take civil action or not as suits its purposes. If a cost-benefit legal analysis suggests that little damage in fact occurred and that the incident is non-recurring or plausibly explainable, then there is likely nothing worth pursuing. What the incident boils down to, then, is a horrible embarrassment for the music industry execs involved and, at the level, it does carry a sting. The rest is fluff.

<comment><USER3> Intentional infringement = criminal penalties. Sorry, but that's the rule of law, i.e., the very bed they made for themselves. Everyone knows the Superbowl is proprietary. The NFL says so during the broadcast.

<comment><USER4> That seems like an awfully arbitrary statement to make, especially when copyright infringement is largely a civil issue. Not to mention that grellas is an attorney, so I assume he knows what he's talking about. As I understand it, criminal charges are only warranted when the copyrighted material is sold commercially.

<http://www.copyright.gov/title17/92chap5.html#506>

<comment><USER5> From what I recall, sunchild is an attorney too. Your reference doesn't back up what you say; it's not restricted to material sold commercially. Merely for "purposes of commercial advantage" is sufficient.

Quoting from here: [http://www.justice.gov/usao/eousa/foia_reading_room/usam/tit...](http://www.justice.gov/usao/eousa/foia_reading_room/usam/title9/crm01851.htm)

"Emphasis should be placed on the word "purpose," because it is not necessary to prove that any profit was realized. See United States v. Taxe, 380 F. Supp. 1010, 1018 (C.D.Cal. 1974), aff'd, 540 F.2d 961 (9th Cir. 1976), cert. denied, 429 U.S. 1040 (1977). The drafting committee's purpose in retaining this requirement has been to exclude from criminal liability those individuals who willfully infringe copyrights solely for their own personal use. H.R. Rep. No. 997, 102 Cong., 2d Sess. 5 (1992). Evidence of discrete monetary transactions (i.e., the selling of infringing goods for a particular price) provides the clearest evidence of financial gain, but such direct evidence should not be a prerequisite to prosecution. Such a stringent requirement would ignore the plain wording of the statute, which requires only the showing of commercial or financial purpose."

<comment><USER3> For the record, I think criminal penalties for copyright infringement is bad policy. Whatever public interest there was in copyright protection has long since been overwhelmed by private interests that belong in civil courts.

</comment></comment></comment></comment></comment><comment><USER6> "The best way to get a bad law repealed is to enforce it strictly."

Apparently said by Lincoln, though I remembered the attribution going to Theodore Roosevelt.

</comment><comment><USER7> The message is very simple - if the content industry does manage to push their legislation wishlist through congress, then every single one of the content middlemen guys should better watch out for all their personal actions every single second for the remainder of their lives.

Because we will be watching. If they manage to criminalize what they're doing themselves, then they must reap what they sow. And they will.

We are legion. We do not forgive. We do not forget.

<comment><USER8> _We are legion. We do not forgive. We do not forget._

I never got this. It sounds catchy, but, holding a grudge forever sounds like a horrific way to live.

<comment><USER9> Agreed. It also sounds juvenile and a bit detached from reality.

<comment><USER10> And also completely wrong. Anonymous being a hivemind, they "forget" the moment they stop being entertained by the actions of their target.

Target of an anon raid? Ignore them completely. They will go away.

</comment></comment></comment></comment><comment><USER11> [http://techcrunch.com/2012/02/09/music-labels-joint- venture-...](http://techcrunch.com/2012/02/09/music-labels-joint-venture-vevo- shows-pirated-espn-game-at-sundance/)

 _Update, 2/10:: ESPN says it will not be pursuing legal action. A spokesperson gave us the following statement:_

 _"We're disappointed the exhibitor took this route, especially at a festival for an industry whose jobs are most at risk if we are not able to curtail stolen content."_

<comment><USER12> Correct me if I'm wrong (and IANAL), but I believe it doesn't matter if the injured party does or does not want to pursue criminal charges. That matters for civil charges, but not criminal charges. Those are made at the discretion of the District Attorney.

The injured party can _influence_ the DA's decision of course, but ultimately it's his/her call.

</comment></comment><comment><USER13> These guys probably have no idea what piracy is... They must've been very surprised when they learned that streaming a game is pirating content. Hopefully, they'll start thinking about it more and come up with better solutions (like, you know, making the damn paid content available anytime, anywhere, for anyone)...

</comment><comment><USER14> Can a citizen seek legal action in regards to an event which didn't directly involve them? For example, you saw a crime and want to sue because no one else will?

This can't just "go away".

<comment><USER15> Private prosecution in the US only appears to be permitted in the state of Virginia, and although IANAL, I think that even there, it would only apply to state statues and not federal ones. But you could petition the Attorney General's office to prosecute, and/or write to your Senators/Representative to ask them to advocate for a criminal prosecution.

<http://en.wikipedia.org/wiki/Private_prosecution>

</comment></comment><comment><USER16> Original Article: [http://techcrunch.com/2012/02/09/music-labels-joint- venture-...](http://techcrunch.com/2012/02/09/music-labels-joint-venture-vevo- shows-pirated-espn-game-at-sundance/)

Update, 2/10:: ESPN says it will not be pursuing legal action. A spokesperson gave us the following statement:

"We're disappointed the exhibitor took this route, especially at a festival for an industry whose jobs are most at risk if we are not able to curtail stolen content."

</comment><comment><USER17> Vevo is not a label. It is a JV that includes YouTube among labels.

<comment><USER18> Has the article been edited?

The headline over there is different and the first sentence calls Vevo a "music label joint venture."

EDIT: Also, what is YouTube's involvement, exactly? It appears to be run mostly by ex-big label guys (and one person from MySpace), then they host on YouTube and share advertising revenue. Or something like that. There are few details about this on Wikipedia[2], but you're the kind of person who probably knows more about them than most of us.

[1] <http://www.vevo.com/About/OurTeam> [2] <https://en.wikipedia.org/wiki/Vevo>

<comment><USER19> I remember some recent rumors that Vevo was thinking of moving to Facebook for the hosting part of their venture.

</comment></comment></comment><comment><USER20> Not to be pedantic, but Vevo would not face criminal charges for showing one stream to a few people at a bar. To create criminal liability they would need to be infringing on a commercial scale--like Frontrow.tv and TuTele.tv do by hosting the streams with ads next to them.

Vevo would be open to civil liability but it is up the copyright holder to decide whether it's worth pursuing.

<comment><USER14> I don't think this is correct. When you share/download torrents you aren't paying the user at the receiving end. Yet it is still illegal.

By your logic, I could stay in Times Square giving out copies of Avatar and Inception as long as I give it for free.

<comment><USER20> It's not just a question of legal/illegal. Some things that are illegal are not criminal--they create civil liability instead. If you lose, you owe money but you don't go to jail or have a criminal record.

Have any individuals been criminally prosecuted for their personal BitTorrent use? I've read a lot of stories of people being sued, but I can't remember a story of criminal prosecution. I guess it would be possible if the prosecutor could make the case that BitTorrent is a form of distribution, and the amount meets the criteria in the law:

<http://www.copyright.gov/title17/92chap5.html#506>

<comment><USER3> There is a whole bunch of legal jurisprudence in just about every country that deals with intentional infringement of copyrights.

In the US: Operation Gridlock, Operation D-Elite, etc., etc. Look it up.</comment></comment></comment></comment>


Mashable writes for pageviews. TechCrunch for drama. TNW writes for its readers. - <AUTHOR> https://twitter.com/#!/benln/status/163697808489189376 <comment><AUTHOR> That's my opinion. I'm a huge fan of The Next Web for a reason. They're not always chasing after pageviews or meddled in ridiculous drama. I want good content, a nice design and an amazing team on the blog that I read, and that's The Next Web...</comment>


10 Second Code Review - <AUTHOR> http://hamletdarcy.blogspot.com/2009/07/10-second-code-review.html

<comment><USER2> So you're saying your rate of code review is 6 lines every 10 seconds? ;-)</comment>


Here's de Blasio's logic for loving Amazon, but hating Walmart - <AUTHOR> https://nypost.com/2018/11/16/heres-de-blasios-logic-for-loving-amazon-but-hating-walmart/ <comment><USER2> Where I live, Wal-Mart sells groceries and other goods that are life- sustaining to lower-income customers.

We've got other stores (Kroger, etc.), some of their goods might even be of better quality. But the price difference is remarkable.

I don't see how de Blasio can really justify denying shutting Wal-Mart out while letting Amazon in.

</comment><comment><USER3> Seems like a false connection - putting a Walmart in NY creates additional competition for local retail. Putting an Amazon HQ-dot in NY has basically zero retail impact.</comment>


US prepares charges to seek arrest of Julian Assange - <AUTHOR> http://www.cnn.com/2017/04/20/politics/julian-assange-wikileaks-us-charges/ <comment><USER2> Absolutely ridiculous. What's the charge here? It's not illegal for third parties to disclose factual information about the government. If it was, the staff at almost every newspaper would be thrown in jail on a daily basis.

There is no concept of a journalist license. Wikileaks for better or worse is as legally engaged in journalism as anyone else. Any attempt to deny this by comparing them to large established news organizations is just an appeal to authority.

I get that a lot of people don't like them now because of their garbage politics, but are we seriously prepared to throw away protection of journalists for this? Who's next, Glenn Greenwald?

<comment><USER3> > The Justice Department has all but concluded it will not bring charges > against WikiLeaks founder Julian Assange for publishing classified documents > because government lawyers said they could not do so without also > prosecuting U.S. news organizations and journalists, according to U.S. > officials. [2013]

[https://www.washingtonpost.com/world/national- security/julia...](https://www.washingtonpost.com/world/national- security/julian-assange-unlikely-to-face-us-charges-over-publishing- classified- documents/2013/11/25/dd27decc-55f1-11e3-8304-caf30787c0a9_story.html)

</comment></comment><comment><USER4> All this proves -once again- is that US authorities are quite prepared to ignore their own laws and constitution.

<comment><USER5> This sadly applies to about every country, albeit to different degrees: laws and constitutions should be there to protect everyone's rights from everyone else wills, but in practice they are easily circumvented when they can limit powerful people or governments. One could even say they're there along with moral and religious value sets just to keep common people put.

</comment></comment><comment><USER6> Viva el Ecuador!

Julian Assange is a national hero and does not deserve, at the very least, to rot in an American prison.

May Ecuador continue to provide him safe keeping.

And may all the UK citizens out there elect a government that won't extradite him should he need to leave!!</comment>


Fashion industry suffers - <AUTHOR> https://filtercoffee.substack.com/p/fashion-industry-suffers <comment><USER2> Has anyone ever seen the luxury fashion items and where they come from? You find Chinese cramped up in small home shops, churning out the produce like bags with violation of all safety codes and they simply bribe the police in Italy.

Then luxuries Italian brands stamp their logo on top of it and it's ready to be sold in big city showrooms.

Heck, a lot of Italian shoe brands are buying their leather shoes from Uttar Pardesh, India.

Maybe not all luxury fashion brand production looks like this, but atleast some part does.

Come to India and buy your leather quality handmade shoes for less than $100 and let me know if you find any quality difference between $700 shoes and $100 shoes without lable.

<comment><USER3> > Heck, a lot of Italian shoe brands are buying their leather shoes from Uttar > Pardesh, India.

... any online stores giving a straight line to those Indian shoes? They cheaper than, say, Meermin? Asking for a friend^w^w myself.

<comment><USER4> Yeah, I like my (laced) leather moccasins (with a polymer sole on the underside, and not covering my ankles), but they tend to get a bit expensive. Last time I had to pay 140 EUR/pair, compared to regular prices in the 40-80 EUR range for normal non-designer shoes (I was forced to an upscale shoe store, as the normal stores had no suitable moccasins).

</comment></comment></comment><comment><USER5> Maybe it's time to hit the brakes on selling overpriced sweatshop made clothes with a luxury brand slapped on top and a 2000x markup.

<comment><USER6> How? It's the same problem as with spam: As long as there remain enough... erm... _special_ people who pay these scammers, the business will be profitable.

</comment></comment><comment><USER7> Fashion is one of the greatest symbols of unnecessary luxury, next to tourism. It being "hit" is not a surprise, but also really not worrisome. Individually, it's an issue for everyone working in fashion, but if the fashion industry went away and never returned, society wouldn't suffer.

<comment><USER8> How on Earth is tourism unnecessary? Maybe if you want people to be even more ignorant, sure.

<comment><USER7> Tourism is not education as evident by the fact that global tourism is at an all time high, yet people are extremely ignorant.

Teaching them to read again will be more fruitful than flying them around the globe if less ignorance is the goal.

<comment><USER9> I have a few counterpoints against your first sentence:

0\. Tourism isn't a cure for ignorance, but it helps in widening worldview and experiencing how other people live and see. However, today it is mostly about having some time away from your residence/work.

1\. Tourists are a small though non-negligible part of humanity as a whole

2\. A large part of the people who have traveled as tourists have traveled to tourist spots, places that are developed to cater to the _tourists_ and hence aren't an authentic representation of the local population.

I do agree with your second sentence.

<comment><USER7> I don't disagree, but I believe that it's not the traveling that's widening horizons, it's the readiness of the traveler to have their horizons expanded. Imho, modern tourism isn't leading people astray, it's giving them what they want. It's a tiny subset that wants something else, maybe we need a different term for them.

</comment></comment></comment></comment></comment><comment><USER10> Is fashion industry relevant? It's just producing garbage that's mean to be thrown out within a year, destroying the planet. That industry going under would be nothing but a positive.

</comment><comment><USER11> Good take, but I wouldn't consider Naval to be one of the best thinkers of our generation, not even by a long shot...</comment>


Space Tourism May Mean One Giant Leap for Researchers - <AUTHOR> http://www.nytimes.com/2011/03/01/science/space/01orbit.html?ref=science <comment><USER2> Single page: [http://www.nytimes.com/2011/03/01/science/space/01orbit.html...](http://www.nytimes.com/2011/03/01/science/space/01orbit.html?_r=1&ref=science&pagewanted=allhttp://www.nytimes.com/2011/03/01/science/space/01orbit.html?_r=1&ref=science&pagewanted=all)</comment>


All about the new for-of loop in ES6 - <AUTHOR> http://www.benmvp.com/2015/11/learning-es6-for-of-loop.html <comment><USER2> Should mention the for-of loop uses the iterator protocol and JITs produce far more code compared to a simple for () {}.</comment>


Students Say College's General Tso's Chicken Recipe Is 'Cultural Appropriation' - <AUTHOR> http://www.msn.com/en-us/foodanddrink/restaurantsandnews/students-say-colleges-general-tsos-chicken-recipe-is-cultural-appropriation/ar-BBnLkXE?ocid=ansmsnfood11 <comment><USER2> Do any of the students of oriental ancestry eat pizza? Spaghetti? Hamburgers? French fries?

Two can play that game. (Hopefully, one side only plays it to show that the other is being silly.) Though I suppose they'd have some explanation as to why the dominant culture is free for everyone to use, but the minority culture must be considered sacred ground...

<comment><USER3> I usually chalk this sort of stuff up to the bored fireman syndrome: Since we have no fires to fight, lets go start one.</comment></comment>


Is Google trying to conquer death? - <AUTHOR> http://beta.writiely.com/article.php?articleURL=is-google-trying-to-conquer-death-324 <comment><USER2> Coming soon: Live longer if you work at Google.

Everybody else, tough luck.

<comment><USER3> Also no longer any need to pay out retirement, if you live for 300 years, that 40 year retirement plan just ain't gonna cut it.</comment></comment>